چگونه Jobcase از Amazon Redshift ML برای توصیه محتوای جستجوی شغل در مقیاس استفاده می کند

گره منبع: 995072

این پست با Clay Martin و Ajay Joshi از Jobcase به عنوان نویسندگان اصلی نوشته شده است.

پرونده شغلی یک جامعه آنلاین است که به توانمندسازی و حمایت از کارگران جهان اختصاص یافته است. ما سومین مقصد بزرگ برای جستجوی کار در ایالات متحده هستیم و روزانه میلیون ها Jobcasers را به فرصت های شغلی مرتبط، شرکت ها و سایر منابع مرتبط می کنیم. توصیه در هر کاری که ما انجام می دهیم نقش اساسی دارد.

در این پست، دانشمندان داده های Jobcase در مورد چگونگی آن بحث می کنند Amazon Redshift ML به ما کمک کرد تا میلیاردها توصیه جستجوی شغل را در زمان بی سابقه و با ارتباط بهبود یافته ایجاد کنیم.

چالش: مقیاس بندی توصیه های شغلی

در Jobcase ما استفاده کرده ایم آمازون Redshift به عنوان انبار داده اولیه ما به مدت 8 سال. در طول سال‌ها، مقدار قابل‌توجهی از داده‌های متقابل جویای کار و محتوای شغلی تاریخی ایجاد کردیم که در جداول فشرده بسیار بهینه‌سازی شده ذخیره می‌شوند.

سیستم توصیه‌گر ما مدل‌های یادگیری ماشینی (ML) را برای این مجموعه داده‌های بزرگ اعمال می‌کند، که یک مشکل آشنا ایجاد می‌کند: مدل‌های داده و ML در یک خوشه‌های محاسباتی یکسان قرار نمی‌گیرند، که شامل جابجایی مقادیر زیادی داده در سراسر شبکه‌ها است. در بسیاری از موارد، در زمان استنتاج دسته‌ای، داده‌ها باید از انبار داده خارج شوند و در نهایت به آن بازگردانده شوند، که می‌تواند فرآیندی زمان‌بر، پرهزینه و گاهی مستعد خطا باشد. این همچنین به منابع مهندسی داده برای راه اندازی خطوط لوله داده نیاز دارد و اغلب به گلوگاهی برای دانشمندان داده تبدیل می شود تا آزمایش های سریع انجام دهند و ارزش تجاری را افزایش دهند. تا به حال، ثابت شده است که این مسئله هم‌مکانی داده‌ها/مدل مانع بزرگی برای اعمال ML به توصیه‌های دسته‌ای در مقیاس است.

چگونه Amazon Redshift ML به حل این چالش کمک کرد

Amazon Redshift ML، پشتیبانی شده توسط Amazon SageMaker Autopilot، ایجاد، آموزش و اعمال مدل های ML را با استفاده از دستورات SQL آشنا در انبارهای داده Amazon Redshift برای تحلیلگران داده و توسعه دهندگان پایگاه داده آسان می کند.

Amazon Redshift ML ثابت کرده است که یک راه حل عالی برای برخی از این مشکلات در Jobcase است. با قابلیت استنتاج محلی Amazon Redshift ML در پایگاه داده، ما اکنون استنتاج مدل را روی میلیاردها رکورد در عرض چند دقیقه، مستقیماً در انبار داده Amazon Redshift خود انجام می دهیم. در این پست، ما در مورد سفر خود به Amazon Redshift ML، تلاش های قبلی ما برای استفاده از ML برای توصیه ها و جایی که از اینجا می رویم صحبت می کنیم.

چیزی که ما سعی در حل آن داریم

جستجوی کار یک دامنه منحصر به فرد و چالش برانگیز برای طراحی و پیاده سازی سیستم توصیه گر است. متغیرهای خارق العاده ای وجود دارد که باید در نظر گرفته شود. به عنوان مثال، بسیاری از فرصت‌های شغلی فقط برای روزها یا هفته‌ها به طول می‌انجامند و باید در یک رفت و آمد معقول برای جویندگان کار باشند. برخی از مشاغل به مهارت هایی نیاز دارند که تنها زیرمجموعه ای از اعضای ما از آن برخوردارند. این محدودیت‌ها لزوماً در مورد توصیه‌های فیلم صدق نمی‌کنند. از سوی دیگر، ترجیحات شغلی نسبتاً پایدار است. اگر عضوی علاقه مند به شغل راننده کامیون در روز دوشنبه باشد، احتمال زیادی وجود دارد که او همچنان در روز سه شنبه علاقه مند باشد.

سیستم توصیه‌کننده Jobcase مسئول تولید محتوای جستجوی شغل برای بیش از 10 میلیون Jobcaser فعال در روز است. به طور متوسط، هر روز حدود 20 تا 30 میلیون لیست شغلی منحصر به فرد در مجموعه واجد شرایط برای توصیه ها داریم. این سیستم یک شبه کار می کند و پیش بینی هایی را در حالت دسته ای ایجاد می کند و انتظار می رود تا ساعات اولیه صبح تکمیل شود. این توصیه‌ها در طول روز برای تعامل با اعضای Jobcase از طریق کانال‌های ارتباطی مختلف مانند ایمیل، پیامک و اعلان‌های فشار استفاده می‌شوند.

سیستم توصیه ما

هر کانال ارتباطی دارای ویژگی‌های خاص و محدودیت‌های قابل تحویل است. برای رسیدگی به این محدودیت‌ها، سیستم توصیه‌گر ما به چند مرحله و فاز تقسیم می‌شود که در آن مرحله نهایی برای تنظیم دقیق مدل برای یک کانال خاص استفاده می‌شود. همه این داده‌های تعامل جستجوی کار چند کانالی در خوشه Redshift آمازون ما قرار دارند.

در مرحله اول، تکنیک‌های یادگیری بدون نظارت را برای کاهش مجموعه موارد نامزد به ازای هر عضو اعمال می‌کنیم. ما نمرات شباهت مورد-مورد را از تاریخچه تعامل اعضا محاسبه می‌کنیم و از این امتیازها برای تولید N مورد مشابه برای هر کاربر استفاده می‌کنیم. این مرحله فیلتر مشترک، یک مبادله مهم در طراحی ایجاد می کند: بسیاری از موارد نامزد مرتبط را فیلتر کنید، و تعامل اعضا کاهش یابد. تعداد بسیار کمی را فیلتر کنید، و استنتاج پایین دستی از نظر محاسباتی غیرممکن است.

مرحله دوم یک مرحله یادگیری تحت نظارت ویژه کانال است. از امتیاز شباهت فاز اول به همراه سایر معیارهای پیش‌بینی‌شده به عنوان ویژگی‌ها و ویژگی‌ها استفاده می‌کند و سعی می‌کند به طور مستقیم تعامل اعضا را برای آن کانال پیش‌بینی کند. در این مثال، فرض کنید ایمیل کانال است و تعامل اعضا توسط متغیر وابسته گرفته شده است. email click-through rate (CTR) = email clicks/email sends.

در اینجا ویژگی‌های جستجوی کار، مانند پیشرفت تحصیلی، اولویت‌های رفت‌وآمد، مکان، و غیره، و همچنین ویژگی‌های محتوای مورد یا شغل، مانند نرخ‌های تعامل محلی یا کلان تاریخی خاص کانال را نیز درج می‌کنیم. ایجاد پیش‌بینی برای بیش از 10 میلیون جوینده کار به همراه 200 تا 300 مورد در هر عضو، تنها برای یک کانال به 2 تا 3 میلیارد پیش‌بینی نیاز دارد.

ساده سازی ML از داخل آمازون Redshift بدون هیچ گونه جابجایی داده

تا به حال، حل مشکل مکان‌یابی داده/مدل ما از منظر هزینه و عملکرد چالش برانگیز بوده است. اینجاست که آمازون Redshift ML در بهبود قابل توجه سیستم توصیه‌کننده با فعال کردن میلیاردها پیش‌بینی مدل غیرخطی تنها در چند دقیقه نقش بسزایی داشته است.

قبل از Amazon Redshift ML، ما نیاز داشتیم که خطوط لوله داده سفارشی بنویسیم تا داده ها را از انبار داده خارج کنیم سرویس ذخیره سازی ساده آمازون (Amazon S3)، سپس به نمونه‌های استنتاج ML، و در نهایت پیش‌بینی‌های لوله به انبار داده برای مصرف برمی‌گردد. این تاخیر زمانی و هزینه اضافی را اضافه کرد. از لحاظ تاریخی، بهبود این مرحله یک چالش بوده است، و ما مجبور بودیم به مدل‌های خطی نسبتا ساده، بهینه‌سازی شده از طریق تست A/B و کدگذاری سخت در دستورات SQL تکیه کنیم.

با Amazon Redshift ML، ما توانستیم کلاس‌های مدل پیشرفته را با قابلیت‌های استنتاج محلی درون پایگاه داده مستقیماً به انبار داده خود بیاوریم. بنابراین، قدرت بیان مدل‌هایی که می‌توانستیم آن‌ها را بسازیم، بسیار افزایش یافت. نمودار معماری زیر نشان می دهد که چگونه خط لوله داده خود را با Amazon Redshift ML ساده کردیم.

داستان موفقیت ما با Amazon Redshift ML

ما قبلاً تلاش کرده‌ایم یک یا هر دو فاز سیستم خود را از Amazon Redshift خارج کنیم. برای بهبود فاز فیلتر کردن مشارکتی، سعی کردیم از کتابخانه های منبع باز استفاده کنیم ابر محاسبه الاستیک آمازون نمونه‌هایی (Amazon EC2) که الگوریتم‌های فاکتورسازی ماتریس و تکنیک‌های الهام‌گرفته از پردازش زبان طبیعی (NLP) مانند Global Vectors (GloVe) را پیاده‌سازی می‌کنند که نمایش‌های کلمه‌ای توزیع شده هستند. هیچ یک از این راه‌حل‌ها بهبود کافی از نظر مشارکت اعضا برای توجیه افزایش پیچیدگی خط لوله داده، تاخیرهای زمانی عملیاتی و هزینه‌های عملیاتی ایجاد نکردند. خطوط لوله برای بهبود امتیازدهی مورد نظارت شده کاربر مشکلات مشابهی داشتند.

وقتی Amazon Redshift ML در حالت پیش‌نمایش در دسامبر 2020 منتشر شد، ما یک خوشه کوچک Amazon Redshift ایجاد کردیم تا قابلیت‌های آن را در برابر موارد استفاده خود آزمایش کنیم. ما بلافاصله تحت تأثیر این واقعیت قرار گرفتیم که Amazon Redshift ML یک دستگاه مناسب می سازد XGBoost مدل یا شبکه عصبی فید فوروارد به آسانی نوشتن پرس و جوی SQL. وقتی آمازون Redshift ML شد GA در پایان ماه مه 2021، ما آن را در عرض یک روز راه اندازی کردیم و یک مدل تولیدی را ظرف یک هفته به کار بردیم. مدل زیر نمونه ای است که ما با Amazon Redshift ML آموزش داده و پیش بینی کرده ایم.

کد آموزشی زیر است:

CREATE MODEL
f_ml_predict_email_content1_ctr
FROM (SELECT * FROM
Email_content1_click_history)
TARGET is_click
FUNCTION f_ml_predict_email_content1_ctr
PROBLEM_TYPE REGRESSION
OBJECTIVE 'MSE';

کد پیش بینی زیر است:

UPDATE email_content1_new_data
SET ctr_score = f_ml_predict_email_content1_ctr( feature1
,feature2, . . .
,feature_n)

اکنون چندین مدل در حال تولید داریم که هر کدام میلیاردها پیش‌بینی را در Amazon Redshift انجام می‌دهند. در زیر برخی از مزایای کلیدی که با Amazon Redshift ML متوجه شدیم آمده است:

  • اجرای پیش‌بینی‌های مدل در مقیاس، انجام میلیاردها پیش‌بینی در چند دقیقه، که قبل از اجرای Amazon Redshift ML نمی‌توانستیم به آن‌ها برسیم.
  • کاهش قابل توجه در چرخه توسعه مدل با حذف خطوط لوله داده
  • کاهش قابل توجه چرخه‌های آزمایش مدل با آزمایش اندازه‌های گروه بزرگ‌تر، که کمک کرد به سرعت به اهمیت آماری مورد نظر ما برسیم.
  • کاهش هزینه با استفاده از قابلیت استنتاج محلی Amazon Redshift ML که باعث صرفه جویی در هزینه در چارچوب های ML خارجی و هزینه محاسبه می شود.
  • بهبود 5 تا 10٪ در نرخ تعامل اعضا در چندین نوع قالب ایمیل مختلف، که منجر به افزایش درآمد می شود

نتیجه

در این پست، توضیح دادیم که چگونه Amazon Redshift ML به Jobcase کمک کرد میلیون‌ها شغل را با بیش از 10 میلیون عضو فعال Jobcase به طور روزانه مطابقت دهد.

اگر کاربر Amazon Redshift هستید، Amazon Redshift ML ارزش افزوده فوری و قابل توجهی را با استنتاج محلی در پایگاه داده بدون هزینه اضافی ارائه می دهد. این به دانشمندان داده توانایی آزمایش سریع بدون وابستگی های مهندسی داده را می دهد. Amazon Redshift ML در حال حاضر از انواع مدل‌های رگرسیون و طبقه‌بندی پشتیبانی می‌کند، اما همچنان می‌تواند به تعادل عالی بین سرعت، دقت، پیچیدگی و هزینه دست یابد.


درباره نویسندگان

کلی مارتین او یک دانشمند داده در Jobcase Inc است. او سیستم‌های توصیه‌کننده را طراحی می‌کند تا اعضای Jobcase را با مرتبط‌ترین محتوای شغلی مرتبط کند.

آجی جوشی مهندس نرم‌افزار ارشد در Jobcase Inc. Ajay از زیرساخت‌های تجزیه و تحلیل داده و یادگیری ماشین در Jobcase پشتیبانی می‌کند و به آنها کمک می‌کند تا انبارهای داده‌ای که توسط Amazon Redshift، Amazon SageMaker و سایر سرویس‌های AWS طراحی و نگهداری می‌شوند.

مناش دب یک معمار ارشد راه حل متخصص تجزیه و تحلیل در AWS است. او بیش از 15 سال بر روی ساخت راه‌حل‌های مبتنی بر داده‌ها در پایگاه داده‌های مختلف و فناوری‌های ذخیره‌سازی داده کار کرده است. او عاشق یادگیری فناوری‌های جدید و حل، خودکارسازی و ساده‌سازی مشکلات مشتری با راه‌حل‌های داده‌های ابری با کاربرد آسان در AWS است.

پاندا دبو، مدیر محصول اصلی در AWS، پیشرو در صنعت در زمینه تجزیه و تحلیل، پلت فرم برنامه و فناوری های پایگاه داده است و بیش از 25 سال تجربه در دنیای فناوری اطلاعات دارد.

منبع: https://aws.amazon.com/blogs/big-data/how-jobcase-is-using-amazon-redshift-ml-to-recommend-job-search-content-at-scale/

تمبر زمان:

بیشتر از AWS