با استفاده از Amazon Personalize بدون کد PlatoBlockchain Data Intelligence، یک خط لوله توصیه دسته ای ایجاد کنید. جستجوی عمودی Ai.

با استفاده از Amazon Personalize بدون کد یک خط لوله توصیه دسته ای ایجاد کنید

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

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

اگرچه ارائه توصیه‌ها در زمان واقعی می‌تواند به افزایش تعامل و رضایت کمک کند، گاهی اوقات ممکن است واقعاً به این امر نیاز نباشد، و انجام این کار به صورت دسته‌ای بر اساس برنامه‌ریزی‌شده می‌تواند به سادگی یک گزینه مقرون‌به‌صرفه و قابل مدیریت باشد.

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

بررسی اجمالی راه حل

در این راه حل از MovieLens مجموعه داده این مجموعه داده شامل 86,000 رتبه بندی فیلم از 2,113 کاربر است. ما سعی می کنیم از این داده ها برای ایجاد توصیه هایی برای هر یک از این کاربران استفاده کنیم.

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

نمودار زیر این راه حل را نشان می دهد.نمودار معماری

ما این راه حل را با مراحل زیر می سازیم:

  1. برای تبدیل داده های خام ما با استفاده از چسب AWS، یک کار تبدیل داده بسازید.
  2. با مجموعه داده تغییر یافته، یک راه حل شخصی سازی آمازون بسازید.
  3. یک گردش کار توابع گام بسازید تا تولید استنتاج دسته ای را سازماندهی کنید.

پیش نیازها

برای این راهنما به موارد زیر نیاز دارید:

برای تبدیل داده های خام با چسب AWS، یک کار تبدیل داده بسازید

با Amazon Personalize، داده های ورودی باید طرح و فرمت فایل خاصی داشته باشند. داده‌های حاصل از تعامل بین کاربران و موارد باید در قالب CSV با ستون‌های خاص باشد، در حالی که فهرست کاربرانی که می‌خواهید برایشان توصیه‌هایی ایجاد کنید باید در قالب JSON باشد. در این بخش، ما از AWS Glue Studio برای تبدیل داده‌های ورودی خام به ساختارها و قالب‌های مورد نیاز Amazon Personalize استفاده می‌کنیم.

AWS Glue Studio یک رابط گرافیکی ارائه می دهد که برای ایجاد و اجرای آسان کارهای استخراج، تبدیل و بارگذاری (ETL) طراحی شده است. شما می توانید به صورت بصری بارهای کاری تبدیل داده را از طریق عملیات ساده کشیدن و رها کردن ایجاد کنید.

ابتدا داده های منبع خود را در آن آماده می کنیم سرویس ذخیره سازی ساده آمازون (Amazon S3)، سپس داده ها را بدون کد تبدیل می کنیم.

  1. در کنسول آمازون S3، یک سطل S3 با سه پوشه ایجاد کنید: خام، تبدیل شده، و انتخاب شده.
  2. دانلود مجموعه داده MovieLens و فایل فشرده نشده با نام user_ratingmovies-timestamp.dat را در سطل خود در زیر پوشه خام آپلود کنید.
  3. در کنسول AWS Glue Studio، را انتخاب کنید شغل ها در صفحه ناوبری
  4. انتخاب کنید تصویری با منبع و هدف، پس از آن را انتخاب کنید ساختن.
  5. اولین گره فراخوانی شده را انتخاب کنید منبع داده – سطل S3. این جایی است که داده های ورودی خود را مشخص می کنیم.
  6. بر ویژگی های منبع داده تب، انتخاب کنید مکان S3 و به فایل آپلود شده خود مراجعه کنید.
  7. برای قالب داده، انتخاب کنید CSV، و برای محدود کننده، انتخاب کنید برگ.
    AWS Glue Studio - S3
  8. برای بررسی اینکه طرحواره ستون ها را به درستی استنباط کرده است، می توانیم تب Output schema را انتخاب کنیم.
  9. اگر طرحواره با انتظارات شما مطابقت ندارد، انتخاب کنید ویرایش برای ویرایش طرحواره
    AWS Glue Studio - Fields

در مرحله بعد، این داده‌ها را به گونه‌ای تغییر می‌دهیم که از الزامات طرح برای Amazon Personalize پیروی کند.

  1. انتخاب تبدیل – اعمال نقشه برداری گره و روی دگرگون کردن برگه، کلید هدف و انواع داده ها را به روز کنید.
    Amazon Personalize حداقل انتظار ساختار زیر را دارد مجموعه داده های تعامل:
    • user_id (رشته)
    • item_id (رشته)
    • timestamp (طولانی، در قالب زمان یونیکس)
      AWS Glue Studio - نقشه برداری میدانی

در این مثال، فیلم‌های دارای رتبه ضعیف را در مجموعه داده حذف می‌کنیم.

  1. برای انجام این کار، آخرین گره به نام سطل S3 را بردارید و یک گره فیلتر روی آن اضافه کنید دگرگون کردن تب.
  2. را انتخاب کنید اضافه کردن شرط و داده ها را در جایی که امتیاز < 3.5 است فیلتر کنید.
    AWS Glue Studio - خروجی

اکنون خروجی را به آمازون S3 می نویسیم.

  1. گسترش هدف را انتخاب کنید و انتخاب کنید آمازون S3.
  2. برای مکان هدف S3، پوشه ای را که نام دارد انتخاب کنید transformed.
  3. را انتخاب کنید CSV به عنوان قالب و پسوند محل مورد نظر با interactions/.

در مرحله بعد، فهرستی از کاربرانی که می‌خواهیم برایشان توصیه‌هایی دریافت کنیم، خروجی می‌دهیم.

  1. انتخاب ApplyMapping دوباره گره بزنید و سپس آن را گسترش دهید دگرگون کردن را انتخاب کنید و انتخاب کنید ApplyMapping.
  2. همه فیلدها به جز برای user_id و نام آن فیلد را به userId. Amazon Personalize انتظار دارد که آن فیلد نامگذاری شود شناسه کاربری.
  3. گسترش هدف دوباره منو انتخاب کنید آمازون S3.
  4. این بار انتخاب کن JSON به عنوان فرمت، و سپس پوشه S3 تبدیل شده را انتخاب کنید و آن را با پسوند اضافه کنید batch_users_input/.

این تولید یک JSON لیست کاربران به عنوان ورودی برای Amazon Personalize. اکنون باید نموداری شبیه شکل زیر داشته باشیم.

AWS Glue Studio - کل گردش کار

ما اکنون آماده اجرای کار تبدیل خود هستیم.

  1. در کنسول IAM، نقشی به نام glue-service-role ایجاد کنید و خط مشی های مدیریت شده زیر را پیوست کنید:
    • AWSGlueServiceRole
    • AmazonS3FullAccess

برای اطلاعات بیشتر در مورد نحوه ایجاد نقش های سرویس IAM، به بخش مراجعه کنید ایجاد نقشی برای واگذاری مجوزها به یک سرویس AWS.

  1. به شغل AWS Glue Studio خود برگردید و آن را انتخاب کنید جزئیات شغل تب.
  2. نام شغل را به عنوان تنظیم کنید batch-personalize-input-transform-job.
  3. نقش IAM جدید ایجاد شده را انتخاب کنید.
  4. مقادیر پیش فرض را برای هر چیز دیگری حفظ کنید.
    AWS Glue Studio - جزئیات شغل
  5. را انتخاب کنید ذخیره.
  6. وقتی آماده شدید، انتخاب کنید دویدن و نظارت بر کار در اجرا می شود تب.
  7. وقتی کار کامل شد، به کنسول آمازون S3 بروید تا تأیید کنید که فایل خروجی شما با موفقیت ایجاد شده است.

ما اکنون داده های خود را در قالب و ساختاری که Amazon Personalize نیاز دارد، شکل داده ایم. مجموعه داده تبدیل شده باید دارای فیلدها و قالب زیر باشد:

  • مجموعه داده های تعامل – فرمت CSV با فیلدها USER_ID, ITEM_ID, TIMESTAMP
  • مجموعه داده ورودی کاربر – فرمت JSON با عنصر userId

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

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

  1. در کنسول شخصی سازی آمازون، را انتخاب کنید ساختن گروه داده.
  2. برای دامنه، انتخاب کنید سفارشی.
  3. را انتخاب کنید گروه داده ایجاد کنید و ادامه دهید.
    شخصی سازی آمازون - ایجاد گروه داده

بعد، مجموعه داده تعاملات را ایجاد کنید.

  1. نام مجموعه داده را وارد کرده و انتخاب کنید ایجاد طرح واره جدید.
  2. را انتخاب کنید مجموعه داده ایجاد کنید و ادامه دهید.
    شخصی سازی آمازون - مجموعه داده های تعاملی ایجاد کنید

اکنون داده های تعاملی را که قبلا ایجاد کرده بودیم وارد می کنیم.

  1. به سطل S3 بروید که در آن مجموعه داده CSV تعاملات خود را ایجاد کردیم.
  2. بر ویرایش برگه، سیاست دسترسی سطل زیر را اضافه کنید تا Amazon Personalize دسترسی داشته باشد. خط‌مشی را به‌روزرسانی کنید تا نام سطل شما را نیز درج کند.
    {
       "Version":"2012-10-17",
       "Id":"PersonalizeS3BucketAccessPolicy",
       "Statement":[
          {
             "Sid":"PersonalizeS3BucketAccessPolicy",
             "Effect":"Allow",
             "Principal":{
                "Service":"personalize.amazonaws.com"
             },
             "Action":[
                "s3:GetObject",
                "s3:ListBucket",
                "s3:PutObject"
             ],
             "Resource":[
                "arn:aws:s3:::<your-bucket-name>",
                "arn:aws:s3:::<your-bucket-name> /*"
             ]
          }
       ]
    }

به Amazon Personalize برگردید و انتخاب کنید کار وارد کردن مجموعه داده خود را ایجاد کنید. مجموعه داده های تعاملات ما اکنون باید به Amazon Personalize وارد شود. قبل از ادامه به مرحله بعد، منتظر بمانید تا کار واردات با وضعیت Active تکمیل شود. این باید حدود 8 دقیقه طول بکشد.

  1. در کنسول شخصی سازی آمازون، را انتخاب کنید بررسی اجمالی در قسمت ناوبری و انتخاب کنید راه حل ایجاد کنید.
    شخصی سازی آمازون - داشبورد
  2. نام راه حل را وارد کنید
  3. برای نوع محلول، انتخاب کنید توصیه مورد.
  4. برای دستور العمل، انتخاب aws-user-personalization دستور آشپزی.
  5. را انتخاب کنید ایجاد و آموزش راه حل.
    شخصی سازی آمازون - راه حل ایجاد کنید

این راه حل اکنون با مجموعه داده های تعاملی که با دستور شخصی سازی کاربر وارد شده است، تمرین می کند. نظارت بر وضعیت این فرآیند در زیر نسخه های راه حل. قبل از ادامه، صبر کنید تا کامل شود. این باید حدود 20 دقیقه طول بکشد.
شخصی سازی آمازون - وضعیت

ما اکنون کار استنتاج دسته ای خود را ایجاد می کنیم، که توصیه هایی را برای هر یک از کاربران موجود در ورودی JSON ایجاد می کند.

  1. در قسمت ناوبری، در زیر منابع سفارشی، انتخاب کنید کارهای استنتاج دسته ای.
  2. نام شغل و برای را وارد کنید راه حل، راه حل ایجاد شده قبلی را انتخاب کنید.
  3. را انتخاب کنید ایجاد کار استنتاج دسته ای.
    شخصی سازی آمازون - کار استنتاج دسته ای ایجاد کنید
  4. برای پیکربندی داده های ورودی، مسیر S3 را وارد کنید که در آن batch_users_input پرونده واقع شده است.

این فایل JSON است که حاوی آن است userId.

  1. برای پیکربندی داده های خروجی مسیر، مسیر انتخاب شده را در S3 انتخاب کنید.
  2. را انتخاب کنید ایجاد کار استنتاج دسته ای.

این فرآیند تقریباً 30 دقیقه طول می کشد. هنگامی که کار به پایان رسید، توصیه هایی برای هر یک از کاربران مشخص شده در فایل ورودی کاربر در محل خروجی S3 ذخیره می شود.

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

یک گردش کار توابع مرحله بسازید تا گردش کار استنتاج دسته ای را هماهنگ کند

برای تنظیم خط لوله خود، مراحل زیر را انجام دهید:

  1. در کنسول Step Functions، را انتخاب کنید ماشین حالت ایجاد کنید.
  2. انتخاب کنید گردش کار خود را به صورت بصری طراحی کنید، پس از آن را انتخاب کنید بعدی.
    توابع مرحله AWS - گردش کار را ایجاد کنید
  3. کشیدن CreateDatasetImportJob گره از سمت چپ (شما می توانید این گره را در کادر جستجو جستجو کنید) روی بوم.
  4. گره را انتخاب کنید و باید پارامترهای API پیکربندی را در سمت راست ببینید. ARN را ضبط کنید.
  5. مقادیر خود را در آن وارد کنید پارامترهای API جعبه متن

این به نام ایجاد شده API با مقادیر پارامتری که شما مشخص می کنید.

گردش کار توابع مرحله AWS

  1. کشیدن CreateSolutionVersion گره روی بوم
  2. پارامترهای API را با ARN راه حلی که یادداشت کردید به روز کنید.

این یک نسخه راه حل جدید با داده های تازه وارد شده با فراخوانی ایجاد می کند CreateSolutionVersion API

  1. کشیدن CreateBatchInferenceJob روی بوم گره بزنید و به طور مشابه پارامترهای API را با مقادیر مربوطه به روز کنید.

مطمئن شوید که از آن استفاده می کنید $.SolutionVersionArn نحو برای بازیابی پارامتر نسخه راه حل ARN از مرحله قبل. این پارامترهای API به CreateBatchInferenceJob API

گردش کار توابع مرحله AWS

ما باید یک منطق انتظار در گردش کار توابع مرحله بسازیم تا مطمئن شویم که کار استنتاج دسته ای توصیه قبل از تکمیل گردش کار به پایان می رسد.

  1. یک گره Wait را پیدا کرده و بکشید.
  2. در پیکربندی برای صبر کنيد، 300 ثانیه را وارد کنید.

این یک مقدار دلخواه است. شما باید این زمان انتظار را با توجه به مورد استفاده خاص خود تغییر دهید.

  1. انتخاب CreateBatchInferenceJob دوباره گره بزنید و به مسیر بروید مدیریت خطا تب.
  2. برای کشتی خطا، وارد Personalize.ResourceInUseException.
  3. برای حالت بازگشتی، انتخاب کنید صبر کنيد.

این مرحله ما را قادر می سازد تا به صورت دوره ای وضعیت کار را بررسی کنیم و تنها زمانی که کار کامل شد از حلقه خارج می شود.

  1. برای ResultPath، وارد $.errorMessage.

این در واقع به این معنی است که وقتی استثنای «منبع در حال استفاده» دریافت می‌شود، کار برای x ثانیه منتظر می‌ماند و سپس دوباره با همان ورودی‌ها تلاش می‌کند.

گردش کار توابع مرحله AWS

  1. را انتخاب کنید ذخیره، و سپس انتخاب کنید اجرا را شروع کنید.

ما با موفقیت خط لوله توصیه دسته ای خود را برای Amazon Personalize تنظیم کرده ایم. به عنوان یک مرحله اختیاری، می توانید استفاده کنید پل رویداد آمازون برای برنامه ریزی یک محرک این گردش کار به طور منظم. برای جزئیات بیشتر مراجعه کنید EventBridge (رویدادهای CloudWatch) برای تغییرات وضعیت اجرای توابع مرحله ای.

پاک کردن

برای جلوگیری از تحمیل هزینه‌های آتی، منابعی را که برای این راهنما ایجاد کرده‌اید حذف کنید.

نتیجه

در این پست، نحوه ایجاد یک خط لوله توصیه دسته ای را با استفاده از ترکیبی از چسب AWS، Amazon Personalize و Step Functions بدون نیاز به یک خط کد یا تجربه ML نشان دادیم. ما از چسب AWS برای آماده سازی داده های خود در قالبی که Amazon Personalize نیاز دارد استفاده کردیم. سپس از Amazon Personalize برای وارد کردن داده‌ها، ایجاد راه‌حل با دستور شخصی‌سازی کاربر و ایجاد یک کار استنتاج دسته‌ای استفاده کردیم که بر اساس تعاملات گذشته، پیش‌فرض ۲۵ توصیه را برای هر کاربر ایجاد می‌کند. سپس این مراحل را با استفاده از توابع مرحله تنظیم کردیم تا بتوانیم این کارها را به طور خودکار اجرا کنیم.

برای مراحل بعدی، تقسیم‌بندی کاربر یکی از دستور العمل‌های جدیدتر در Amazon Personalize است که ممکن است بخواهید برای ایجاد بخش‌های کاربر برای هر ردیف از داده‌های ورودی، آن را بررسی کنید. برای جزئیات بیشتر مراجعه کنید دریافت توصیه های دسته ای و بخش های کاربر.


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

ماکسین وی

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

تمبر زمان:

بیشتر از آموزش ماشین AWS