کسبوکارها بهطور فزایندهای از یادگیری ماشینی (ML) برای تصمیمگیریهای تقریباً همزمان استفاده میکنند، مانند قرار دادن آگهی، اختصاص راننده، توصیه یک محصول، یا حتی قیمتگذاری پویا محصولات و خدمات. مدل های ML با توجه به مجموعه ای از داده های ورودی به نام پیش بینی می کنند امکاناتو دانشمندان داده به راحتی بیش از 60 درصد از زمان خود را صرف طراحی و ساخت این ویژگی ها می کنند. علاوه بر این، پیشبینیهای بسیار دقیق به دسترسی به موقع به مقادیر ویژگیها بستگی دارد که به سرعت در طول زمان تغییر میکنند و پیچیدگی بیشتری به کار ساخت یک راهحل بسیار در دسترس و دقیق میافزایند. به عنوان مثال، یک مدل برای یک برنامه اشتراکگذاری سواری میتواند بهترین قیمت را برای سفر از فرودگاه انتخاب کند، اما تنها در صورتی که تعداد درخواستهای سواری دریافتی در 10 دقیقه گذشته و تعداد مسافرانی که پیشبینی میشود در آینده فرود بیایند را بداند. 10 دقیقه. یک مدل مسیریابی در برنامه مرکز تماس میتواند بهترین عامل موجود را برای تماس دریافتی انتخاب کند، اما تنها زمانی مؤثر است که آخرین کلیکهای جلسه وب مشتری را بداند.
اگرچه ارزش تجاری پیشبینیهای ML در زمان واقعی بسیار زیاد است، معماری مورد نیاز برای ارائه آنها به طور قابل اعتماد، ایمن و با عملکرد خوب پیچیده است. راهحلها به بهروزرسانیهایی با توان عملیاتی بالا و بازیابی با تأخیر کم آخرین مقادیر ویژگیها در میلیثانیه نیاز دارند، چیزی که اکثر دانشمندان داده آماده ارائه آن نیستند. در نتیجه، برخی از شرکتها میلیونها دلار برای اختراع زیرساختهای اختصاصی خود برای مدیریت ویژگیها هزینه کردهاند. سایر شرکتها برنامههای کاربردی ML خود را به الگوهای سادهتری مانند امتیازدهی دستهای محدود کردهاند تا زمانی که فروشندگان ML راهحلهای جامعتری را برای فروشگاههای ویژگی آنلاین ارائه کنند.
برای رفع این چالش ها ، فروشگاه ویژگی آمازون SageMaker یک مخزن مرکزی کاملاً مدیریت شده برای ویژگیهای ML فراهم میکند، که ذخیره و بازیابی ایمن ویژگیها را بدون نیاز به ساخت و نگهداری زیرساختهای خود آسان میکند. Feature Store به شما امکان میدهد گروههایی از ویژگیها را تعریف کنید، از دریافت دستهای و دریافت جریانی استفاده کنید، آخرین مقادیر ویژگیها را با تأخیر میلیثانیهای تک رقمی برای پیشبینیهای آنلاین بسیار دقیق بازیابی کنید، و مجموعه دادههای درست نقطهدر زمان را برای آموزش استخراج کنید. بهجای ایجاد و حفظ این قابلیتهای زیرساخت، یک سرویس کاملاً مدیریت شده دریافت میکنید که با افزایش دادههای شما مقیاسپذیر میشود، امکان اشتراکگذاری ویژگیها را در بین تیمها فراهم میکند و به دانشمندان دادهتان اجازه میدهد تا بر ساخت مدلهای عالی ML با هدف موارد استفاده تجاری تغییردهنده بازی تمرکز کنند. اکنون تیمها میتوانند ویژگیهای قوی را یکبار ارائه دهند و بارها از آنها در مدلهای مختلفی که ممکن است توسط تیمهای مختلف ساخته شدهاند، دوباره استفاده کنند.
در این پست یک مثال کامل از اینکه چگونه میتوانید مهندسی ویژگی استریم را با Feature Store ترکیب کنید تا در زمان تقریباً واقعی تصمیمات مبتنی بر ML بگیرید، ارائه میشود. ما یک مورد استفاده از شناسایی کلاهبرداری کارت اعتباری را نشان میدهیم که ویژگیهای انبوه را از جریان مستقیم تراکنشها بهروزرسانی میکند و از بازیابی ویژگیهای با تأخیر کم برای کمک به شناسایی تراکنشهای جعلی استفاده میکند. با مراجعه به ما، خودتان آن را امتحان کنید GitHub repo.
مورد استفاده از کلاهبرداری کارت اعتباری
شماره های کارت اعتباری دزدیده شده را می توان به صورت انبوه در وب تاریک از نشت های قبلی یا هک سازمان هایی که این داده های حساس را ذخیره می کنند خریداری کرد. کلاهبرداران این لیست کارت ها را خریداری می کنند و سعی می کنند تا جایی که ممکن است تراکنش های بیشتری را با شماره های سرقت شده انجام دهند تا زمانی که کارت مسدود شود. این حملات کلاهبرداری معمولاً در یک بازه زمانی کوتاه اتفاق میافتند، و این را میتوان به راحتی در تراکنشهای تاریخی مشاهده کرد، زیرا سرعت تراکنشها در طول حمله به طور قابلتوجهی با الگوی معمول هزینههای دارنده کارت متفاوت است.
جدول زیر دنباله ای از تراکنش ها از یک کارت اعتباری را نشان می دهد که در آن دارنده کارت ابتدا یک الگوی خرج واقعی دارد و سپس یک حمله کلاهبرداری را تجربه می کند که از 4 نوامبر شروع می شود.
cc_num | trans_time | مقدار | برچسب_تقلب |
… 1248 | نوامبر-01 14:50:01 | 10.15 | 0 |
1248 پوند | نوامبر-02 12:14:31 | 32.45 | 0 |
1248 پوند | نوامبر-02 16:23:12 | 3.12 | 0 |
1248 پوند | نوامبر-04 02:12:10 | 1.01 | 1 |
1248 پوند | نوامبر-04 02:13:34 | 22.55 | 1 |
1248 پوند | نوامبر-04 02:14:05 | 90.55 | 1 |
1248 پوند | نوامبر-04 02:15:10 | 60.75 | 1 |
1248 پوند | نوامبر-04 13:30:55 | 12.75 | 0 |
برای این پست، ما یک مدل ML را آموزش میدهیم تا با ویژگیهای مهندسی که الگوی خرج کردن یک کارت را توصیف میکند، مانند تعداد تراکنشها یا میانگین مبلغ تراکنش از آن کارت در یک پنجره زمانی خاص، این نوع رفتار را تشخیص دهد. این مدل با شناسایی و مسدود کردن تراکنشهای مشکوک قبل از تکمیل پرداخت، دارندگان کارت را از تقلب در محل فروش محافظت میکند. این مدل پیشبینیهایی را در یک زمینه زمان واقعی و با تأخیر کم انجام میدهد و بر دریافت محاسبات بهروز ویژگی تکیه میکند تا بتواند به یک حمله کلاهبرداری مداوم پاسخ دهد. در یک سناریوی واقعی، ویژگیهای مربوط به الگوهای هزینه دارندگان کارت تنها بخشی از مجموعه ویژگیهای مدل را تشکیل میدهند و ما میتوانیم اطلاعاتی در مورد تاجر، دارنده کارت، دستگاه مورد استفاده برای پرداخت و هر داده دیگری که ممکن است وجود داشته باشد را شامل شود. مربوط به کشف تقلب
از آنجایی که مورد استفاده ما به پروفایل الگوهای خرج کردن یک کارت تکیه دارد، بسیار مهم است که بتوانیم کارت های اعتباری را در یک جریان تراکنش شناسایی کنیم. اکثر مجموعه دادههای کشف تقلب در دسترس عموم این اطلاعات را ارائه نمیدهند، بنابراین ما از پایتون استفاده میکنیم فاکر کتابخانه ای برای ایجاد مجموعه ای از تراکنش ها در یک دوره 5 ماهه. این مجموعه داده شامل 5.4 میلیون تراکنش است که در 10,000 شماره کارت اعتباری منحصر به فرد (و جعلی) پخش شده است و عمداً برای مطابقت با واقعیت کلاهبرداری کارت اعتباری نامتعادل است (تنها 0.25٪ از تراکنش ها تقلبی هستند). ما تعداد تراکنشهای روزانه به ازای هر کارت و همچنین مبالغ تراکنش را تغییر میدهیم. ما را ببینید GitHub repo برای جزئیات بیشتر.
بررسی اجمالی راه حل
ما میخواهیم مدل تشخیص کلاهبرداری خود را با توجه به انبوهی از تراکنشهای اخیر که به طور قابلتوجهی با الگوی هزینههای معمول دارنده کارت متفاوت است، تراکنشهای کارت اعتباری را طبقهبندی کند. به اندازه کافی ساده به نظر می رسد، اما چگونه آن را بسازیم؟
نمودار زیر معماری کلی راه حل ما را نشان می دهد. ما احساس می کنیم که همین الگو برای انواع موارد استفاده از تجمع جریان به خوبی کار خواهد کرد. در سطح بالا، این الگو شامل پنج قطعه زیر است:
- فروشگاه ویژگی - ما از Feature Store استفاده می کنیم تا مخزنی از ویژگی ها را با نوشتن با توان بالا و خواندن ایمن با تأخیر کم، با استفاده از مقادیر ویژگی که در چندین گروه ویژگی سازماندهی شده اند، ارائه دهیم.
- بلع دسته ای - جذب دسته ای تراکنش های کارت اعتباری تاریخی برچسب گذاری شده را انجام می دهد و ویژگی ها و نسبت های کل مورد نیاز برای آموزش مدل تشخیص تقلب را ایجاد می کند. ما از یک استفاده می کنیم پردازش آمازون SageMaker شغل و ظرف داخلی اسپارک برای محاسبه تعداد کل هفتگی و میانگین مبلغ تراکنش و وارد کردن آنها به فروشگاه ویژگی برای استفاده در استنتاج آنلاین.
- آموزش و استقرار نمونه - این جنبه از راه حل ما ساده است. ما استفاده می کنیم آمازون SageMaker برای آموزش یک مدل با استفاده از الگوریتم XGBoost داخلی بر روی ویژگی های انبوه ایجاد شده از تراکنش های تاریخی. این مدل در یک نقطه پایانی SageMaker، جایی که درخواستهای کشف تقلب در تراکنشهای زنده را مدیریت میکند، مستقر شده است.
- مصرف جریانی - یک تجزیه و تحلیل داده های آمازون کینزیس برای برنامه Apache Flink با پشتیبانی از موضوعات آپاچی کافکا در آمازون مدیریت استریم برای آپاچی کافکا (MSK) (Amazon MSK) ویژگی های جمع آوری شده را از یک جریان تراکنش محاسبه می کند و یک AWS لامبدا تابع فروشگاه ویژگی آنلاین را به روز می کند. آپاچی فلینک یک چارچوب و موتور محبوب برای پردازش جریان های داده است.
- پیش بینی های جریان – در نهایت، ما پیشبینیهای تقلب را در جریانی از تراکنشها انجام میدهیم و از لامبدا برای جمعآوری ویژگیها از فروشگاه ویژگیهای آنلاین استفاده میکنیم. ما از آخرین دادههای ویژگی برای محاسبه نسبت تراکنشها استفاده میکنیم و سپس با نقطه پایانی تشخیص تقلب تماس میگیریم.
پیش نیازها
ما ارائه می دهیم AWS CloudFormation قالبی برای ایجاد منابع پیش نیاز برای این راه حل. جدول زیر پشته های موجود برای مناطق مختلف را فهرست می کند.
در بخشهای بعدی، هر جزء راهحل خود را با جزئیات بیشتری بررسی میکنیم.
فروشگاه ویژگی
مدلهای ML متکی به ویژگیهای مهندسیشدهای هستند که از منابع دادههای مختلف به دست میآیند، با تغییراتی به سادگی محاسبات یا پیچیدهتر مانند خط لوله چند مرحلهای که ساعتها زمان محاسباتی و کدنویسی پیچیده را میطلبد. Feature Store استفاده مجدد از این ویژگیها را در بین تیمها و مدلها امکانپذیر میسازد، که بهرهوری دانشمند داده را بهبود میبخشد، زمان ورود به بازار را سرعت میبخشد و ثبات ورودی مدل را تضمین میکند.
هر ویژگی در فروشگاه ویژگی در یک گروه بندی منطقی به نام a سازماندهی شده است گروه ویژگی. شما تصمیم می گیرید که کدام گروه های ویژگی را برای مدل های خود نیاز دارید. هر یک می تواند ده ها، صدها یا حتی هزاران ویژگی داشته باشد. گروه های ویژگی به طور مستقل مدیریت و مقیاس بندی می شوند، اما همه آنها برای جستجو و کشف در میان تیم هایی از دانشمندان داده که مسئول بسیاری از مدل های مستقل ML و موارد استفاده هستند، در دسترس هستند.
مدلهای ML اغلب به ویژگیهایی از چندین گروه ویژگی نیاز دارند. یکی از جنبههای کلیدی یک گروه ویژگی این است که هر چند وقت یکبار مقادیر ویژگیهای آن برای آموزش یا استنتاج پاییندستی باید بهروزرسانی یا تحقق یابد. برخی از ویژگیها را بهصورت ساعتی، شبانه یا هفتگی بازخوانی میکنید و زیرمجموعهای از ویژگیها باید تقریباً در زمان واقعی به فروشگاه ویژگیها پخش شوند. پخش جریانی همه بهروزرسانیهای ویژگی منجر به پیچیدگی غیرضروری میشود و حتی میتواند کیفیت توزیع دادهها را با عدم امکان حذف موارد پرت کاهش دهد.
در مورد استفاده ما، یک گروه ویژگی به نام ایجاد می کنیم cc-agg-batch-fg
ویژگیهای کارت اعتباری جمعآوری شده بهصورت دستهای بهروزرسانی شدند و یکی فراخوانی شد cc-agg-fg
برای ویژگی های جریان
La cc-agg-batch-fg
گروه ویژگی هر شب بهروزرسانی میشود و ویژگیهای کلی را در یک پنجره زمانی ۱ هفتهای ارائه میکند. محاسبه مجدد تجمیعهای 1 هفتهای در تراکنشهای جریانی سیگنالهای معنیداری ارائه نمیدهد و باعث اتلاف منابع میشود.
برعکس، ما cc-agg-fg
گروه ویژگی باید به صورت جریانی به روز شود، زیرا آخرین تعداد تراکنش ها و میانگین مبالغ تراکنش را در یک بازه زمانی 10 دقیقه ای ارائه می دهد. بدون تجمیع جریان، نمیتوانستیم الگوی حمله کلاهبرداری معمولی را که شامل توالی سریع خرید میشود، تشخیص دهیم.
با جداسازی ویژگیهایی که هر شب دوباره محاسبه میشوند، میتوانیم توان انتقال را برای ویژگیهای پخش خود بهبود دهیم. جداسازی به ما امکان میدهد تا مصرف را برای هر گروه به طور مستقل بهینه کنیم. هنگام طراحی برای موارد استفاده خود، به خاطر داشته باشید که مدلهایی که به ویژگیهایی از تعداد زیادی از گروههای ویژگی نیاز دارند، ممکن است بخواهند چندین بار از فروشگاه ویژگیها به طور موازی بازیابی کنند تا از اضافه کردن تأخیر بیش از حد به گردش کار پیشبینی بلادرنگ جلوگیری کنند.
گروه های ویژگی برای مورد استفاده ما در جدول زیر نشان داده شده است.
cc-agg-fg | cc-agg-batch-fg |
cc_num (شناسه رکورد) | cc_num (شناسه رکورد) |
trans_time | trans_time |
num_trans_last_10m | num_trans_last_1w |
avg_amt_last_10m | avg_amt_last_1w |
هر گروه ویژگی باید دارای یک ویژگی باشد که به عنوان شناسه رکورد استفاده می شود (برای این پست، شماره کارت اعتباری). شناسه رکورد به عنوان یک کلید اصلی برای گروه ویژگی عمل می کند و امکان جستجوی سریع و همچنین پیوستن به گروه های ویژگی را فراهم می کند. یک ویژگی زمان رویداد نیز مورد نیاز است، که به فروشگاه ویژگی امکان می دهد تاریخچه مقادیر ویژگی را در طول زمان ردیابی کند. وقتی به وضعیت ویژگیها در یک مقطع زمانی خاص نگاه میکنیم، این مهم میشود.
در هر گروه ویژگی، تعداد تراکنشهای هر کارت اعتباری منحصربهفرد و میانگین مبلغ تراکنش آن را دنبال میکنیم. تنها تفاوت بین دو گروه ما، پنجره زمانی است که برای تجمیع استفاده می شود. ما از یک پنجره 10 دقیقه ای برای جمع آوری جریان، و یک پنجره 1 هفته ای برای تجمع دسته ای استفاده می کنیم.
با Feature Store، انعطافپذیری برای ایجاد گروههای ویژگی که فقط آفلاین، فقط آنلاین یا آنلاین و آفلاین هستند را دارید. یک فروشگاه آنلاین، نوشتن با توان بالا و بازیابی با تأخیر پایین مقادیر ویژگی را فراهم می کند، که برای استنتاج آنلاین ایده آل است. یک فروشگاه آفلاین با استفاده از ارائه شده است سرویس ذخیره سازی ساده آمازون (Amazon S3)، به شرکت ها یک مخزن بسیار مقیاس پذیر، با تاریخچه کاملی از مقادیر ویژگی، تقسیم بندی شده بر اساس گروه ویژگی، می دهد. فروشگاه آفلاین برای موارد استفاده از آموزش و امتیازدهی دسته ای ایده آل است.
وقتی یک گروه ویژگی را فعال میکنید تا فروشگاههای آنلاین و آفلاین را ارائه دهد، SageMaker بهطور خودکار مقادیر ویژگیها را با یک فروشگاه آفلاین همگامسازی میکند و بهطور مداوم آخرین مقادیر را اضافه میکند تا تاریخچه کاملی از مقادیر را در طول زمان به شما ارائه دهد. یکی دیگر از مزایای گروه های ویژگی که هم آنلاین و هم آفلاین هستند این است که به جلوگیری از مشکل آموزش و انحراف استنتاج کمک می کنند. SageMaker به شما امکان میدهد هم آموزش و هم استنتاج را با مقادیر ویژگیهای تغییر یافته یکسان تغذیه کنید و از ثبات برای پیشبینیهای دقیقتر اطمینان حاصل کنید. تمرکز در پست ما نشان دادن جریان ویژگی آنلاین است، بنابراین ما گروه های ویژگی فقط آنلاین را پیاده سازی کردیم.
بلع دسته ای
برای تحقق ویژگیهای دستهای خود، یک خط لوله ویژگی ایجاد میکنیم که به عنوان یک کار پردازش SageMaker به صورت شبانه اجرا میشود. این کار دو مسئولیت دارد: تولید مجموعه داده برای آموزش مدل ما، و پر کردن گروه ویژگی های دسته ای با به روزترین مقادیر برای مجموع ویژگی های یک هفته ای، همانطور که در نمودار زیر نشان داده شده است.
هر تراکنش تاریخی که در مجموعه آموزشی استفاده میشود با ویژگیهای جمعآوری شده برای کارت اعتباری خاص درگیر در تراکنش غنی میشود. ما به دو پنجره زمانی کشویی جداگانه نگاه می کنیم: 1 هفته قبل و 10 دقیقه قبل. ویژگیهای واقعی مورد استفاده برای آموزش مدل شامل نسبتهای زیر از این مقادیر تجمیع میشود:
- amt_ratio1 =
avg_amt_last_10m / avg_amt_last_1w
- amt_ratio2 =
transaction_amount / avg_amt_last_1w
- count_ratio =
num_trans_last_10m / num_trans_last_1w
به عنوان مثال، count_ratio
تعداد تراکنش های 10 دقیقه قبل تقسیم بر تعداد تراکنش های هفته گذشته است.
مدل ML ما میتواند الگوهای فعالیت عادی در مقابل فعالیت متقلبانه را از این نسبتها بیاموزد، نه اینکه بر تعداد خام و مبالغ تراکنش تکیه کند. الگوهای هزینه در کارت های مختلف بسیار متفاوت است، بنابراین نسبت های نرمال شده سیگنال بهتری را نسبت به خود مبالغ جمع شده به مدل ارائه می دهند.
ممکن است تعجب کنید که چرا کار دستهای ما محاسبه ویژگیها با نگاهی 10 دقیقهای است. آیا این فقط برای استنباط آنلاین مرتبط نیست؟ برای ایجاد یک مجموعه داده آموزشی دقیق، به پنجره 10 دقیقه ای در مورد تراکنش های تاریخی نیاز داریم. این برای اطمینان از سازگاری با پنجره پخش 10 دقیقه ای که در زمان تقریباً واقعی برای پشتیبانی از استنتاج آنلاین استفاده می شود بسیار مهم است.
مجموعه داده آموزشی حاصل از کار پردازش میتواند مستقیماً بهعنوان یک CSV برای آموزش مدل ذخیره شود، یا میتوان آن را به صورت انبوه در یک گروه ویژگی آفلاین که میتواند برای مدلهای دیگر و سایر تیمهای علم داده برای پرداختن به طیف گستردهای از موارد دیگر استفاده کرد، ذخیره کرد. موارد استفاده به عنوان مثال، می توانیم یک گروه ویژگی به نام ایجاد و پر کنیم cc-transactions-fg
. سپس کار آموزشی ما میتواند مجموعه دادههای آموزشی خاصی را بر اساس نیازهای مدل خاص ما، انتخاب محدودههای تاریخی خاص و زیرمجموعهای از ویژگیهای مورد علاقه، جمعآوری کند. این رویکرد چندین تیم را قادر میسازد تا از گروههای ویژگی استفاده مجدد کرده و خطوط لوله ویژگی کمتری را حفظ کنند، که منجر به صرفهجویی قابل توجهی در هزینه و بهبود بهرهوری در طول زمان میشود. این نمونه دفترچه یادداشت الگوی استفاده از Feature Store را به عنوان یک مخزن مرکزی نشان می دهد که دانشمندان داده می توانند مجموعه داده های آموزشی را از آن استخراج کنند.
ما علاوه بر ایجاد یک مجموعه داده آموزشی، از PutRecord
API برای قرار دادن تجمیع ویژگی های یک هفته ای در فروشگاه ویژگی های آنلاین هر شب. کد زیر نشاندهنده قرار دادن یک رکورد در یک گروه ویژگی آنلاین با توجه به مقادیر مشخصه ویژگی، از جمله شناسه رکورد و زمان رویداد است:
مهندسان ML اغلب یک نسخه جداگانه از کد مهندسی ویژگی برای ویژگی های آنلاین بر اساس کد اصلی نوشته شده توسط دانشمندان داده برای آموزش مدل می سازند. این می تواند عملکرد مطلوب را ارائه دهد، اما یک مرحله توسعه اضافی است و شانس بیشتری را برای آموزش و انحراف استنتاج معرفی می کند. در مورد استفاده ما، نشان میدهیم که چگونه استفاده از SQL برای تجمیعها میتواند یک دانشمند داده را قادر سازد تا کد یکسانی را هم برای دستهای و هم برای جریان ارائه کند.
مصرف جریانی
Feature Store بازیابی تک رقمی میلیثانیهای از ویژگیهای از پیش محاسبهشده را ارائه میکند، و همچنین میتواند نقش مؤثری در راهحلهایی که نیاز به جذب جریانی دارند ایفا کند. مورد استفاده ما هر دو را نشان می دهد. بازنگری هفتگی به عنوان یک گروه ویژگی از پیش محاسبه شده در نظر گرفته می شود و همانطور که قبلا نشان داده شده است، هر شب تحقق می یابد. اکنون بیایید نحوه محاسبه ویژگیهای جمعآوری شده در یک پنجره 10 دقیقهای را بررسی کنیم و آنها را برای استنتاج آنلاین بعدی در فروشگاه ویژگیها وارد کنیم.
در مورد استفاده ما، تراکنشهای کارت اعتباری زنده را به یک موضوع MSK منبع وارد میکنیم، و از Kinesis Data Analytics برای برنامه Apache Flink برای ایجاد ویژگیهای انبوه در موضوع MSK مقصد استفاده میکنیم. برنامه با استفاده از نوشته شده است Apache Flink SQL. Flink SQL توسعه برنامه های پخش جریانی را با استفاده از SQL استاندارد ساده می کند. اگر تا به حال با یک پایگاه داده یا سیستم مشابه SQL کار کرده باشید، یادگیری Flink آسان است و مطابق با ANSI-SQL 2011 باقی مانده است. به غیر از SQL، ما می توانیم برنامه های جاوا و اسکالا را در آنها بسازیم تجزیه و تحلیل داده های آمازون کینزیس با استفاده از کتابخانه های منبع باز مبتنی بر Apache Flink. سپس از یک تابع Lambda برای خواندن موضوع MSK مقصد استفاده می کنیم و ویژگی های انبوه را برای استنتاج در یک گروه ویژگی SageMaker وارد می کنیم. ایجاد برنامه Apache Flink با استفاده از API SQL Flink ساده است. ما از Flink SQL برای جمع آوری داده های جریان در مبحث MSK مبدا و ذخیره آن در موضوع MSK مقصد استفاده می کنیم.
برای تولید تعداد کل و مقادیر متوسط با نگاهی به گذشته در یک پنجره 10 دقیقه ای، از پرس و جو Flink SQL زیر در موضوع ورودی استفاده می کنیم و نتایج را به موضوع مقصد انتقال می دهیم:
cc_num | مقدار | زمان قرار | num_trans_last_10m | avg_amt_last_10m |
… 1248 | 50.00 | نوامبر-01,22:01:00 | 1 | 74.99 |
… 9843 | 99.50 | نوامبر-01,22:02:30 | 1 | 99.50 |
… 7403 | 100.00 | نوامبر-01,22:03:48 | 1 | 100.00 |
… 1248 | 200.00 | نوامبر-01,22:03:59 | 2 | 125.00 |
… 0732 | 26.99 | نوامبر 01، 22:04:15 | 1 | 26.99 |
… 1248 | 50.00 | نوامبر-01,22:04:28 | 3 | 100.00 |
… 1248 | 500.00 | نوامبر-01,22:05:05 | 4 | 200.00 |
در این مثال، توجه داشته باشید که ردیف نهایی دارای چهار تراکنش در 10 دقیقه آخر از کارت اعتباری است که با 1248 خاتمه مییابد، و میانگین مبلغ تراکنش معادل 200.00 دلار است. پرس و جوی SQL با پرس و جوی مورد استفاده برای ایجاد مجموعه داده آموزشی ما سازگار است و به جلوگیری از انحراف آموزش و استنتاج کمک می کند.
همانطور که در نمودار زیر نشان داده شده است، همانطور که تراکنش ها به تجزیه و تحلیل داده های Kinesis برای برنامه Apache Flink انباشته می شوند، برنامه نتایج انبوه را به تابع Lambda ما ارسال می کند. تابع Lambda این ویژگی ها را می گیرد و آن را پر می کند cc-agg-fg
گروه ویژگی
ما آخرین مقادیر ویژگی را با استفاده از یک تماس ساده به PutRecord API از Lambda به فروشگاه ویژگی ارسال می کنیم. در زیر قطعه اصلی کد پایتون برای ذخیره ویژگی های انبوه آمده است:
ما رکورد را بهعنوان فهرستی از جفتهای ارزش نامگذاریشده، از جمله زمان فعلی به عنوان زمان رویداد، آماده میکنیم. Feature Store API تضمین می کند که این رکورد جدید از طرحی پیروی می کند که هنگام ایجاد گروه ویژگی شناسایی کردیم. اگر سابقه ای برای این کلید اولیه قبلاً وجود داشته باشد، اکنون در فروشگاه آنلاین بازنویسی می شود.
پیش بینی های جریان
اکنون که دریافت جریانی را داریم که ذخیره ویژگی را با آخرین مقادیر ویژگی بهروز نگه میدارد، بیایید به نحوه پیشبینی تقلب نگاه کنیم.
ما یک تابع Lambda دوم ایجاد می کنیم که از مبحث منبع MSK به عنوان یک ماشه استفاده می کند. برای هر رویداد تراکنش جدید، تابع Lambda ابتدا ویژگی های دسته ای و جریانی را از Feature Store بازیابی می کند. برای تشخیص ناهنجاریها در رفتار کارت اعتباری، مدل ما به دنبال افزایش در مقادیر خرید یا دفعات خرید اخیر است. تابع لامبدا نسبت های ساده ای را بین تجمعات 1 هفته ای و 10 دقیقه ای محاسبه می کند. سپس نقطه پایانی مدل SageMaker را با استفاده از این نسبت ها برای پیش بینی تقلب، همانطور که در نمودار زیر نشان داده شده است، فراخوانی می کند.
قبل از فراخوانی نقطه پایانی مدل SageMaker، از کد زیر برای بازیابی مقادیر ویژگی در صورت تقاضا از فروشگاه ویژگی استفاده می کنیم:
SageMaker همچنین از بازیابی چندین رکورد ویژگی با a تک تماس، حتی اگر از گروه های ویژگی مختلف باشند.
در نهایت، با جمعآوری بردار ویژگی ورودی مدل، نقطه پایانی مدل را فراخوانی میکنیم تا پیشبینی کنیم که آیا یک تراکنش کارت اعتباری خاص تقلبی است یا خیر. SageMaker همچنین از بازیابی چندین رکورد با یک تماس پشتیبانی میکند، حتی اگر از گروههای ویژگی متفاوت باشند.
sagemaker_runtime = boto3.client(service_name='runtime.sagemaker')
request_body = ','.join(features)
response = sagemaker_runtime.invoke_endpoint( EndpointName=ENDPOINT_NAME, ContentType='text/csv', Body=request_body)
probability = json.loads(response['Body'].read().decode('utf-8'))
در این مثال، مدل با احتمال 98 درصد برگشت که تراکنش خاص تقلبی بوده است و میتوانست از ویژگیهای ورودی جمعآوری شده در زمان واقعی بر اساس آخرین 10 دقیقه تراکنش در آن کارت اعتباری استفاده کند.
محلول انتها به انتها را تست کنید
برای نشان دادن گردش کار کامل راه حل خود، ما به سادگی تراکنش های کارت اعتباری را به مبحث منبع MSK خود ارسال می کنیم. تجزیه و تحلیل خودکار دادههای Kinesis ما برای تجمیع Apache Flink از آنجا به دست میآید و نمای تقریباً واقعی تعداد و مبالغ تراکنشها را در فروشگاه ویژگیها، با یک پنجره بازبینی 10 دقیقهای کشویی حفظ میکند. این ویژگیها با ویژگیهای انبوه ۱ هفتهای ترکیب شدهاند که قبلاً بهصورت دستهای در فروشگاه ویژگیها وارد شدهاند، و به ما امکان میدهند در مورد هر تراکنش تقلب را پیشبینی کنیم.
ما یک تراکنش را از سه کارت اعتباری مختلف ارسال می کنیم. سپس یک حمله کلاهبرداری را بر روی کارت اعتباری چهارم با ارسال بسیاری از تراکنش های پشت سر هم در چند ثانیه شبیه سازی می کنیم. خروجی تابع Lambda ما در تصویر زیر نشان داده شده است. همانطور که انتظار می رود، سه تراکنش یکباره اول به صورت پیش بینی شده است NOT FRAUD
. از 10 تراکنش متقلبانه، اولین مورد به عنوان پیش بینی شده است NOT FRAUD
، و بقیه همه به درستی مشخص شده اند FRAUD
. توجه داشته باشید که چگونه ویژگیهای مجموع بهروز نگه داشته میشوند و به پیشبینی دقیقتر کمک میکنند.
نتیجه
ما نشان دادهایم که چگونه Feature Store میتواند نقش کلیدی در معماری راهحل برای گردشهای کاری عملیاتی حیاتی ایفا کند که نیاز به تجمع جریان و استنتاج با تأخیر کم دارند. با وجود یک فروشگاه ویژگی آماده سازمانی، میتوانید از مصرف دستهای و جذب جریانی برای تغذیه گروههای ویژگی استفاده کنید و به مقادیر ویژگیها در صورت تقاضا برای انجام پیشبینیهای آنلاین برای ارزش تجاری قابل توجه دسترسی داشته باشید. ویژگیهای ML اکنون میتوانند در مقیاس در میان بسیاری از تیمهای دانشمندان داده و هزاران مدل ML به اشتراک گذاشته شوند، که سازگاری دادهها، دقت مدل و بهرهوری دانشمند داده را بهبود میبخشد. فروشگاه ویژگی در حال حاضر در دسترس است، و شما می توانید آن را امتحان کنید نمونه کامل. به ما اطلاع دهید که چه فکر می کنید.
تشکر ویژه از همه کسانی که در این امر مشارکت داشتند پست وبلاگ قبلی با معماری مشابه: پل هارگیس، جیمز لئونی و آرونپراسات شانکار.
درباره نویسنده
مارک روی یک معمار اصلی یادگیری ماشین برای AWS است که به مشتریان در طراحی و ساخت راهحلهای AI/ML کمک میکند. کار مارک طیف گستردهای از موارد استفاده از ML را پوشش میدهد، با علاقه اولیه به فروشگاههای ویژگی، بینایی کامپیوتر، یادگیری عمیق، و مقیاسبندی ML در سراسر سازمان. او به شرکت ها در بسیاری از صنایع از جمله بیمه، خدمات مالی، رسانه و سرگرمی، مراقبت های بهداشتی، آب و برق و تولید کمک کرده است. مارک دارای شش گواهینامه AWS از جمله گواهینامه تخصصی ML است. قبل از پیوستن به AWS، مارک به مدت بیش از 25 سال، از جمله 19 سال در خدمات مالی، معمار، توسعه دهنده و رهبر فناوری بود.
راج راماسوبو یک معمار ارشد راه حل متخصص تجزیه و تحلیل است که بر روی داده های بزرگ و تجزیه و تحلیل و هوش مصنوعی با خدمات وب آمازون تمرکز دارد. او به مشتریان کمک می کند تا راه حل های بسیار مقیاس پذیر، کارآمد و ایمن مبتنی بر ابر در AWS را معمار و بسازند. راج بیش از 18 سال قبل از پیوستن به AWS، تخصص فنی و رهبری را در زمینه مهندسی داده، تجزیه و تحلیل داده های بزرگ، هوش تجاری و راه حل های علم داده ارائه کرد. او به مشتریان در بخش های مختلف صنعت مانند مراقبت های بهداشتی، تجهیزات پزشکی، علوم زندگی، خرده فروشی، مدیریت دارایی، بیمه خودرو، REIT مسکونی، کشاورزی، بیمه عنوان، زنجیره تامین، مدیریت اسناد و املاک کمک کرد.
پرابهاکار چاندراسهکاران یک مدیر ارشد حساب فنی با پشتیبانی AWS Enterprise است. Prabhakar از کمک به مشتریان در ساخت راه حل های پیشرفته AI/ML در فضای ابری لذت می برد. او همچنین با مشتریان سازمانی کار می کند که راهنمایی های فعال و کمک های عملیاتی ارائه می دهد و به آنها کمک می کند ارزش راه حل های خود را هنگام استفاده از AWS بهبود بخشند. پرابهاکار دارای شش AWS و شش گواهینامه حرفه ای دیگر است. پرابهاکار با بیش از 20 سال تجربه حرفه ای، یک مهندس داده و یک رهبر برنامه در فضای خدمات مالی قبل از پیوستن به AWS بود.
- محتوای مبتنی بر SEO و توزیع روابط عمومی. امروز تقویت شوید.
- پلاتوبلاک چین. Web3 Metaverse Intelligence. دانش تقویت شده دسترسی به اینجا.
- ضرب کردن آینده با آدرین اشلی. دسترسی به اینجا.
- منبع: https://aws.amazon.com/blogs/machine-learning/use-streaming-ingestion-with-amazon-sagemaker-feature-store-and-amazon-msk-to-make-ml-backed-decisions-in-near-real-time/
- : دارد
- :است
- $UP
- 000
- 1
- 10
- 100
- 11
- سال 20
- 2011
- 7
- 8
- a
- قادر
- درباره ما
- دسترسی
- حساب
- دقت
- دقیق
- در میان
- فعالیت
- اعمال
- Ad
- اضافه
- نشانی
- عامل
- تجمع
- کشاورزی
- AI / ML
- فرودگاه
- معرفی
- قبلا
- آمازون
- آمازون SageMaker
- آمازون خدمات وب
- مقدار
- مقدار
- علم تجزیه و تحلیل
- و
- دیگر
- هر
- آپاچی
- جدا
- API
- نرم افزار
- کاربرد
- برنامه های کاربردی
- روش
- معماری
- هستند
- AS
- ظاهر
- مونتاژ
- دارایی
- مدیریت دارایی
- کمک
- At
- حمله
- حمله
- خودکار
- بطور خودکار
- در دسترس
- میانگین
- AWS
- به عقب
- حمایت کرد
- مستقر
- اساس
- BE
- زیرا
- شود
- قبل از
- سود
- بهترین
- بهتر
- میان
- بزرگ
- بزرگ داده
- مسدود شده
- انسداد
- بلاگ
- بدن
- خریداری شده
- ساختن
- بنا
- ساخته
- کسب و کار
- هوش تجاری
- خرید
- by
- محاسبه
- محاسبه می کند
- محاسبات
- صدا
- مرکز تماس
- نام
- فراخوانی
- CAN
- قابلیت های
- ماشین
- کارت
- کارت ها
- مورد
- موارد
- مرکز
- مرکزی
- معین
- گواهی
- گواهینامه ها
- زنجیر
- چالش ها
- شانس
- تغییر دادن
- را انتخاب کنید
- طبقه بندی کنید
- ابر
- رمز
- برنامه نویسی
- ترکیب شده
- آینده
- شرکت
- کامل
- پیچیده
- پیچیدگی
- موافق
- بغرنج
- جزء
- جامع
- محاسبه
- کامپیوتر
- چشم انداز کامپیوتر
- محاسبه
- استوار
- شامل
- زمینه
- به طور مداوم
- کمک
- هسته
- متناظر
- هزینه
- صرفه جویی در هزینه
- میتوانست
- زن و شوهر
- پوشش
- را پوشش می دهد
- ایجاد
- ایجاد شده
- ایجاد
- ایجاد
- ایجاد
- اعتبار
- کارت اعتباری
- کارت های اعتباری
- بحرانی
- بسیار سخت
- جاری
- مشتریان
- لبه برش
- تاریک
- وب سایت تیره
- داده ها
- تجزیه و تحلیل داده ها
- علم اطلاعات
- دانشمند داده
- پایگاه داده
- مجموعه داده ها
- تاریخ
- روز
- تصمیم گیری
- تصمیم گیری
- عمیق
- یادگیری عمیق
- ارائه
- ارائه
- تقاضا
- نشان دادن
- نشان می دهد
- مستقر
- توصیف
- طرح
- طراحی
- مطلوب
- مقصد
- جزئیات
- جزئیات
- کشف
- توسعه
- توسعه دهنده
- پروژه
- دستگاه
- دستگاه ها
- تفاوت
- مختلف
- مستقیما
- کشف
- توزیع
- تقسیم شده
- سند
- مدیریت اسناد
- دلار
- آیا
- ده ها
- راندن
- راننده
- در طی
- بطور پویا
- هر
- پیش از آن
- به آسانی
- موثر
- قادر ساختن
- را قادر می سازد
- را قادر می سازد
- پشت سر هم
- نقطه پایانی
- موتور
- مهندس
- مهندسی
- مورد تأیید
- عظیم
- کافی
- غنی شده
- تضمین می کند
- حصول اطمینان از
- سرمایه گذاری
- شرکت
- سرگرمی
- املاک
- حتی
- واقعه
- تا کنون
- هر کس
- مثال
- انتظار می رود
- تجربه
- تجارب
- تخصص
- اکتشاف
- اضافی
- عصاره
- جعلی
- روش
- FAST
- ویژگی
- امکانات
- نهایی
- مالی
- خدمات مالی
- شرکت ها
- نام خانوادگی
- انعطاف پذیری
- تمرکز
- متمرکز شده است
- پیروی
- به دنبال آن است
- برای
- فرم
- چهار
- چهارم
- FRAME
- چارچوب
- تقلب
- کشف تقلب
- کلاهبرداران
- جعلی
- فعالیت متقلبانه
- فرکانس
- از جانب
- کامل
- کاملا
- تابع
- بعلاوه
- تولید می کنند
- دریافت کنید
- دادن
- داده
- دادن
- خوب
- بزرگ
- تا حد زیادی
- گروه
- گروه ها
- رشد می کند
- راهنمایی
- هک
- دستگیره
- رخ دادن
- آیا
- داشتن
- he
- بهداشت و درمان
- کمک
- کمک کرد
- کمک
- کمک می کند
- زیاد
- خیلی
- تاریخی
- تاریخ
- دارای
- ساعت ها
- چگونه
- HTML
- HTTP
- HTTPS
- صدها نفر
- ID
- دلخواه
- شناسایی
- شناسه
- شناسایی
- اجرا
- مهم
- بهبود
- ارتقاء
- بهبود
- in
- شامل
- از جمله
- وارد شونده
- به طور فزاینده
- مستقل
- به طور مستقل
- فرد
- لوازم
- صنعت
- اطلاعات
- شالوده
- ورودی
- در عوض
- بیمه
- اطلاعات
- از قصد
- علاقه
- معرفی می کند
- فراخوانی میکند
- گرفتار
- IT
- ITS
- جاوه
- کار
- پیوستن
- می پیوندد
- JPG
- json
- نگاه داشتن
- نگهداری
- کلید
- نوع
- دانستن
- شناخته شده
- زمین
- بزرگ
- نام
- تاخیر
- آخرین
- رهبری
- رهبر
- رهبری
- برجسته
- نشت
- یاد گرفتن
- یادگیری
- اجازه می دهد تا
- اجازه دادن
- سطح
- کتابخانه ها
- کتابخانه
- زندگی
- علم زندگی
- پسندیدن
- محدود شده
- فهرست
- لیست
- زنده
- منطقی
- نگاه کنيد
- به دنبال
- مطالب
- دستگاه
- فراگیری ماشین
- حفظ
- حفظ
- ساخت
- باعث می شود
- ساخت
- اداره می شود
- مدیریت
- مدیر
- تولید
- بسیاری
- علامت
- مارک
- بازار
- مسابقه
- ممکن است..
- معنی دار
- رسانه ها
- پزشکی
- بازرگان
- میلیون
- میلیون ها نفر
- ذهن
- دقیقه
- دقیقه
- ML
- مدل
- مدل
- بیش
- اکثر
- چندگانه
- تحت عنوان
- نیاز
- نیازهای
- جدید
- بعد
- طبیعی
- نوامبر
- عدد
- تعداد
- of
- ارائه
- پیشنهادات
- آنلاین نیست.
- on
- ONE
- مداوم
- آنلاین
- منبع باز
- قابل استفاده
- بهینه سازی
- سفارش
- سازمان های
- سازمان یافته
- اصلی
- دیگر
- ما
- تولید
- روی
- به طور کلی
- خود
- جفت
- موازی
- بخش
- گذشته
- الگو
- الگوهای
- پل
- پرداخت
- انجام
- کارایی
- دوره
- انتخاب کنید
- قطعه
- قطعات
- لوله
- خط لوله
- محل
- دادن
- افلاطون
- هوش داده افلاطون
- PlatoData
- بازی
- نقطه
- محبوب
- ممکن
- پست
- پیش بینی
- پیش بینی
- پیش گویی
- پیش بینی
- آماده
- آماده شده
- قبلی
- قیمت
- قیمت گذاری
- اصلی
- اصلی
- قبلا
- بلادرنگ
- مشکل
- در حال پردازش
- تولید کردن
- محصول
- بهره وری
- محصولات
- حرفه ای
- پروفایل
- برنامه
- پیش بینی
- اختصاصی
- ارائه
- ارائه
- فراهم می کند
- ارائه
- عمومی
- خرید
- خرید
- قرار دادن
- قرار دادن
- پــایتــون
- کیفیت
- به سرعت
- محدوده
- سریع
- نسبتا
- خام
- خواندن
- واقعی
- املاک و مستغلات
- دنیای واقعی
- زمان واقعی
- واقعیت
- اخذ شده
- دریافت
- اخیر
- توصیه
- رکورد
- سوابق
- مناطق
- مربوط
- مربوط
- باقی مانده
- برداشتن
- مخزن
- درخواست
- نیاز
- ضروری
- مسکونی
- منابع
- پاسخ
- پاسخ
- مسئولیت
- مسئوليت
- REST
- نتیجه
- نتیجه
- نتایج
- خرده فروشی
- استفاده مجدد
- سوار شدن
- تنومند
- نقش
- ROW
- حکیم ساز
- فروش
- همان
- پس انداز
- مقیاس پذیر
- مقیاس
- مقیاس ها
- مقیاس گذاری
- سناریو
- علم
- دانشمند
- دانشمندان
- به ثمر رساندن
- جستجو
- دوم
- ثانیه
- بخش
- امن
- ایمن
- انتخاب
- در حال ارسال
- ارشد
- حساس
- جداگانه
- دنباله
- سرویس
- خدمات
- جلسه
- تنظیم
- به اشتراک گذاشته شده
- اشتراک
- کوتاه
- نشان
- نشان داده شده
- نشان می دهد
- سیگنال
- سیگنال
- قابل توجه
- به طور قابل توجهی
- مشابه
- ساده
- به سادگی
- تنها
- شش
- سرخ کردن
- کشویی
- So
- راه حل
- مزایا
- برخی از
- چیزی
- منبع
- منابع
- فضا
- جرقه
- متخصص
- تخصص
- خاص
- سرعت
- خرج کردن
- هزینه
- صرف
- سنبله ها
- Spot
- گسترش
- پشته
- استاندارد
- راه افتادن
- دولت
- گام
- به سرقت رفته
- ذخیره سازی
- opbevare
- پرده
- ذخیره سازی
- ساده
- جریان
- جریان
- جریان
- جریان
- چنین
- عرضه
- زنجیره تامین
- پشتیبانی
- پشتیبانی از
- مشکوک
- سیستم
- جدول
- طول می کشد
- تیم ها
- فنی
- پیشرفته
- قالب
- با تشکر
- که
- La
- منبع
- دولت
- شان
- آنها
- خودشان
- اینها
- هزاران نفر
- سه
- از طریق
- توان
- زمان
- بار
- عنوان
- به
- موضوع
- تاپیک
- مسیر
- قطار
- آموزش
- معامله
- معاملات
- تحولات
- مبدل
- ماشه
- نوعی
- به طور معمول
- منحصر به فرد
- در جریان روز
- به روز شده
- به روز رسانی
- us
- استفاده کنید
- مورد استفاده
- استفاده
- آب و برق
- ارزش
- ارزشها
- تنوع
- مختلف
- VeloCity
- فروشندگان
- نسخه
- عمودی
- چشم انداز
- دید
- vs
- ضایعات
- وب
- خدمات وب
- هفته
- هفتگی
- خوب
- چی
- که
- WHO
- وسیع
- دامنه گسترده
- اراده
- پنجره
- با
- بدون
- تعجب کردم
- مهاجرت کاری
- مشغول به کار
- گردش کار
- با این نسخهها کار
- خواهد بود
- کتبی
- XGBoost
- سال
- شما
- شما
- خودت
- زفیرنت