עסקים משתמשים יותר ויותר בלמידה חישובית (ML) כדי לקבל החלטות כמעט בזמן אמת, כגון פרסום מודעה, הקצאת נהג, המלצה על מוצר או אפילו תמחור דינמי של מוצרים ושירותים. מודלים של ML עושים תחזיות בהינתן קבוצה של נתוני קלט המכונה מאפיינים, ומדעני נתונים מבלים בקלות יותר מ-60% מזמנם בתכנון ובניית תכונות אלו. יתר על כן, תחזיות מדויקות ביותר תלויות בגישה בזמן לערכי תכונה המשתנים במהירות לאורך זמן, ומוסיפות עוד יותר מורכבות לעבודה של בניית פתרון זמין ומדויק ביותר. לדוגמה, דגם של אפליקציית שיתוף נסיעות יכול לבחור את המחיר הטוב ביותר לנסיעה משדה התעופה, אך רק אם הוא יודע את מספר בקשות הנסיעה שהתקבלו ב-10 הדקות האחרונות ואת מספר הנוסעים הצפוי לנחות בדקות הבאות. 10 דקות. מודל ניתוב באפליקציית מוקד טלפונית יכול לבחור את הסוכן הזמין הטוב ביותר לשיחה נכנסת, אך הוא יעיל רק אם הוא יודע את הקליקים האחרונים של הפעלת האינטרנט של הלקוח.
למרות שהערך העסקי של תחזיות ML כמעט בזמן אמת הוא עצום, הארכיטקטורה הנדרשת כדי לספק אותן בצורה מהימנה, מאובטחת ועם ביצועים טובים היא מסובכת. פתרונות זקוקים לעדכונים בתפוקה גבוהה ואחזור נמוך של ערכי התכונה העדכניים ביותר באלפיות שניות, דבר שרוב מדעני הנתונים לא מוכנים לספק. כתוצאה מכך, חלק מהארגונים הוציאו מיליוני דולרים בהמצאת תשתית קניינית משלהם לניהול תכונות. חברות אחרות הגבילו את יישומי ה-ML שלהן לדפוסים פשוטים יותר כמו ניקוד אצווה עד שספקי ML מספקים פתרונות מדף מקיפים יותר לחנויות תכונות מקוונות.
כדי להתמודד עם אתגרים אלה, חנות הפונקציות של אמזון SageMaker מספק מאגר מרכזי מנוהל במלואו עבור תכונות ML, מה שמקל על אחסון ואחזור מאובטח של תכונות מבלי לבנות ולתחזק תשתית משלך. Feature Store מאפשר לך להגדיר קבוצות של תכונות, להשתמש בהטמעת אצווה והטמעת סטרימינג, לאחזר את ערכי הפיצ'רים העדכניים ביותר עם זמן אחזור חד ספרתי של אלפיות שניות עבור חיזויים מקוונים מדויקים ביותר, ולחלץ מערכי נתונים נכונים לנקודת זמן לאימון. במקום לבנות ולתחזק את יכולות התשתית האלה, אתה מקבל שירות מנוהל במלואו שמתרחב ככל שהנתונים שלך גדלים, מאפשר שיתוף תכונות בין צוותים, ומאפשר למדעני הנתונים שלך להתמקד בבניית מודלים מעולים של ML שמטרתם מקרי שימוש עסקיים משנים משחקים. כעת צוותים יכולים לספק תכונות חזקות פעם אחת ולעשות בהן שימוש חוזר פעמים רבות במגוון דגמים שעשויים להיבנות על ידי צוותים שונים.
פוסט זה עובר על דוגמה מלאה לאופן שבו אתה יכול לשלב הנדסת תכונות סטרימינג עם Feature Store כדי לקבל החלטות מגובות ML בזמן כמעט אמת. אנו מציגים מקרה שימוש לאיתור הונאה בכרטיס אשראי שמעדכן תכונות מצטברות מזרם חי של עסקאות ומשתמש באחזורי תכונות עם אחזור נמוך כדי לסייע באיתור עסקאות הונאה. נסה את זה בעצמך על ידי ביקור שלנו GitHub ריפו.
מקרה שימוש בהונאה בכרטיס אשראי
ניתן לקנות מספרי כרטיסי אשראי גנובים בכמויות גדולות ברשת האפלה מהדלפות קודמות או פריצות של ארגונים המאחסנים את הנתונים הרגישים הללו. רמאים קונים את רשימות הכרטיסים הללו ומנסים לבצע כמה שיותר עסקאות עם המספרים הגנובים עד לחסימת הכרטיס. התקפות הונאה אלו מתרחשות בדרך כלל בפרק זמן קצר, וניתן לזהות זאת בקלות בעסקאות היסטוריות מכיוון שמהירות העסקאות במהלך ההתקפה שונה באופן משמעותי מדפוס ההוצאות הרגיל של בעל הכרטיס.
הטבלה הבאה מציגה רצף של עסקאות מכרטיס אשראי אחד שבו לבעל הכרטיס יש תחילה דפוס הוצאה אמיתי, ולאחר מכן חווה התקפת הונאה החל מה-4 בנובמבר.
cc_num | זמן_טרנס | כמות | תווית_הונאה |
... 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 לזהות סוג זה של התנהגות על ידי תכונות הנדסיות המתארות את דפוס ההוצאה של כרטיס בודד, כגון מספר העסקאות או סכום העסקה הממוצע מאותו כרטיס בחלון זמן מסוים. מודל זה מגן על מחזיקי הכרטיס מפני הונאה בנקודת המכירה על ידי זיהוי וחסימת עסקאות חשודות לפני השלמת התשלום. המודל עושה תחזיות בהקשר של זמן אמת עם אחזור נמוך ומסתמך על קבלת חישובי תכונה עדכניים כדי שיוכל להגיב למתקפת הונאה מתמשכת. בתרחיש של העולם האמיתי, תכונות הקשורות לדפוסי הוצאות של בעל כרטיס יהוו רק חלק ממערך התכונות של הדגם, ואנו יכולים לכלול מידע על הסוחר, בעל הכרטיס, המכשיר ששימש לביצוע התשלום וכל מידע אחר שעשוי להיות רלוונטי לאיתור הונאה.
מכיוון שמקרה השימוש שלנו מסתמך על פרופיל של דפוסי ההוצאות של כרטיס בודד, חיוני שנוכל לזהות כרטיסי אשראי בזרם עסקאות. רוב מערכי הנתונים לגילוי הונאה הזמינים לציבור אינם מספקים מידע זה, ולכן אנו משתמשים ב-Python Faker ספרייה ליצירת קבוצה של עסקאות המכסה תקופה של 5 חודשים. מערך הנתונים הזה מכיל 5.4 מיליון עסקאות הפרוסות על פני 10,000 מספרי כרטיסי אשראי ייחודיים (ומזויפים), והוא לא מאוזן בכוונה כדי להתאים למציאות של הונאה בכרטיסי אשראי (רק 0.25% מהעסקאות הן הונאה). אנו משנים את מספר העסקאות ליום לכרטיס, כמו גם את סכומי העסקאות. ראה שלנו GitHub ריפו לקבלת פרטים נוספים.
סקירה כללית של הפתרון
אנו רוצים שמודל זיהוי ההונאה שלנו יסווג עסקאות בכרטיס אשראי על ידי הבחין בפרץ של עסקאות אחרונות השונה באופן משמעותי מדפוס ההוצאות הרגיל של בעל הכרטיס. נשמע פשוט מספיק, אבל איך בונים את זה?
התרשים הבא מציג את ארכיטקטורת הפתרון הכוללת שלנו. אנו מרגישים שאותו דפוס זה יעבוד היטב עבור מגוון מקרי שימוש בצבירה של סטרימינג. ברמה גבוהה, התבנית כוללת את חמשת החלקים הבאים:
- חנות תכונות - אנו משתמשים ב-Feature Store כדי לספק מאגר של תכונות עם כתיבה בתפוקה גבוהה וקריאה מאובטחת עם זמן אחזור נמוך, תוך שימוש בערכי תכונה שמאורגנים בקבוצות תכונות מרובות.
- בליעת אצווה - קליטת אצווה לוקחת עסקאות היסטוריות עם תווית בכרטיס אשראי ויוצרת את התכונות והיחסים המצטברים הדרושים להכשרת מודל גילוי ההונאה. אנו משתמשים ב- עיבוד אמזון SageMaker העבודה וה מיכל Spark מובנה כדי לחשב ספירות שבועיות מצטברות וממוצעי סכומי עסקאות ולהכניס אותם לחנות התכונות לשימוש בהסקת מסקנות מקוונות.
- הדרכה ופריסה של מודל - היבט זה של הפתרון שלנו הוא פשוט. אנו משתמשים אמזון SageMaker להכשיר מודל באמצעות אלגוריתם XGBoost מובנה על תכונות מצטברות שנוצרו מעסקאות היסטוריות. המודל נפרס לנקודת קצה של SageMaker, שם הוא מטפל בבקשות לגילוי הונאה בעסקאות חיות.
- הזרמת בליעה - ניתוח נתונים של אמזון Kinesis עבור אפליקציית Apache Flink מגובה על ידי נושאי Apache Kafka ב אמזון ניהלה סטרימינג עבור Apache Kafka (MSK) (Amazon MSK) מחשבת תכונות מצטברות מזרם עסקאות, וכן AWS למבדה function מעדכנת את חנות התכונות המקוונת. אפצ'י פלינק הוא מסגרת ומנוע פופולריים לעיבוד זרמי נתונים.
- תחזיות סטרימינג - לבסוף, אנו עורכים תחזיות הונאה על זרם עסקאות, תוך שימוש ב-Lambda כדי למשוך תכונות מצטברות מחנות התכונות המקוונת. אנו משתמשים בנתוני התכונה העדכניים ביותר כדי לחשב יחסי עסקאות ולאחר מכן מתקשרים לנקודת הקצה לגילוי הונאה.
תנאים מוקדמים
אנו מספקים AWS CloudFormation תבנית כדי ליצור את המשאבים הדרושים לפתרון זה. הטבלה הבאה מפרטת את הערימות הזמינות עבור אזורים שונים.
בסעיפים הבאים, אנו בוחנים כל רכיב בפתרון שלנו ביתר פירוט.
חנות תכונות
מודלים של ML מסתמכים על תכונות מהונדסות היטב המגיעות ממגוון מקורות נתונים, עם טרנספורמציות פשוטות כמו חישובים או מסובכות כמו צינור רב-שלבי שלוקח שעות של זמן חישוב וקידוד מורכב. Feature Store מאפשר שימוש חוזר בתכונות אלו בין צוותים ומודלים, מה שמשפר את הפרודוקטיביות של מדעני הנתונים, מזרז את זמן היציאה לשוק ומבטיח עקביות של קלט המודל.
כל תכונה בתוך Feature Store מאורגנת בקיבוץ לוגי הנקרא a קבוצת תכונות. אתה מחליט אילו קבוצות תכונה אתה צריך עבור הדגמים שלך. לכל אחד מהם יכולים להיות עשרות, מאות או אפילו אלפי תכונות. קבוצות תכונות מנוהלות ומוגדלות באופן עצמאי, אך כולן זמינות לחיפוש וגילוי על פני צוותים של מדעני נתונים האחראים על מודלים רבים ומקרי שימוש עצמאיים של ML.
דגמי ML דורשים לעתים קרובות תכונות מקבוצות תכונות מרובות. היבט מרכזי של קבוצת תכונה הוא התדירות שבה צריך לעדכן או לממש את ערכי התכונה שלה לצורך אימון או מסקנות במורד הזרם. אתה מרענן תכונות מסוימות מדי שעה, לילה או שבועי, ויש להזרים קבוצת משנה של תכונות לחנות הפיצ'רים כמעט בזמן אמת. הזרמת כל עדכוני התכונות תוביל למורכבות מיותרת, ואף עלולה להוריד את איכות הפצות הנתונים בכך שלא תיתן לך את ההזדמנות להסיר חריגים.
במקרה השימוש שלנו, אנו יוצרים קבוצת תכונות בשם cc-agg-batch-fg
עבור תכונות כרטיס אשראי מצטברות המעודכנות באצווה, ואחת נקראת cc-agg-fg
עבור תכונות סטרימינג.
השמיים cc-agg-batch-fg
קבוצת התכונות מתעדכנת מדי לילה, ומספקת תכונות מצטברות במבט לאחור על פני חלון זמן של שבוע. חישוב מחדש של צבירות של שבוע אחד בעסקאות סטרימינג אינו מציע אותות משמעותיים, והוא יהיה בזבוז משאבים.
לעומת זאת, שלנו cc-agg-fg
יש לעדכן את קבוצת התכונות בצורה סטרימינג, מכיוון שהיא מציעה את ספירת העסקאות העדכנית ביותר וסכומי עסקה ממוצעים במבט לאחור על פני חלון זמן של 10 דקות. ללא צבירת סטרימינג, לא יכולנו לזהות את דפוס התקפת ההונאה הטיפוסי של רצף מהיר של רכישות.
על ידי בידוד תכונות שמחושבות מחדש מדי לילה, נוכל לשפר את תפוקת ההטמעה של תכונות הסטרימינג שלנו. ההפרדה מאפשרת לנו לייעל את הבליעה עבור כל קבוצה באופן עצמאי. בעת תכנון מקרי השימוש שלך, זכור שמודלים הדורשים תכונות ממספר רב של קבוצות תכונות עשויות לרצות לבצע שליפות מרובות ממאגר התכונות במקביל כדי למנוע הוספת זמן השהייה מופרז לזרימת עבודה של חיזוי בזמן אמת.
קבוצות התכונות עבור מקרה השימוש שלנו מוצגות בטבלה הבאה.
cc-agg-fg | cc-agg-batch-fg |
cc_num (מזהה רשומה) | cc_num (מזהה רשומה) |
זמן_טרנס | זמן_טרנס |
num_trans_last_10m | num_trans_last_1w |
avg_amt_last_10m | avg_amt_last_1w |
לכל קבוצת תכונות חייבת להיות תכונה אחת המשמשת כמזהה רשומה (עבור פוסט זה, מספר כרטיס האשראי). מזהה הרשומות משמש כמפתח ראשי עבור קבוצת התכונות, ומאפשר חיפושים מהירים כמו גם הצטרפות בין קבוצות תכונות. נדרשת גם תכונה של זמן אירוע, המאפשרת לחנות הפיצ'רים לעקוב אחר ההיסטוריה של ערכי תכונה לאורך זמן. זה הופך להיות חשוב כאשר מסתכלים אחורה על מצב התכונות בנקודת זמן מסוימת.
בכל קבוצת תכונה, אנו עוקבים אחר מספר העסקאות לכל כרטיס אשראי ייחודי וסכום העסקה הממוצע שלו. ההבדל היחיד בין שתי הקבוצות שלנו הוא חלון הזמן המשמש לצבירה. אנו משתמשים בחלון של 10 דקות לצבירה בסטרימינג, ובחלון של שבוע לצבירה אצווה.
עם Feature Store, יש לך את הגמישות ליצור קבוצות תכונות שהן במצב לא מקוון בלבד, מקוון בלבד, או גם מקוון וגם לא מקוון. חנות מקוונת מספקת כתיבה בתפוקה גבוהה ואחזורים עם אחזור נמוך של ערכי תכונה, וזה אידיאלי להסקת מסקנות מקוונות. חנות לא מקוונת מסופקת באמצעות שירות אחסון פשוט של אמזון (Amazon S3), המעניק לחברות מאגר ניתן להרחבה, עם היסטוריה מלאה של ערכי תכונות, מחולקים לפי קבוצת תכונות. החנות הלא מקוונת אידיאלית עבור מקרי שימוש בהדרכה ובניקוד אצווה.
כאשר אתה מאפשר לקבוצת תכונות לספק חנויות מקוונות והן לא מקוונות, SageMaker מסנכרן אוטומטית ערכי תכונות לחנות לא מקוונת, ומוסיף באופן רציף את הערכים העדכניים ביותר כדי לתת לך היסטוריה מלאה של ערכים לאורך זמן. יתרון נוסף של קבוצות תכונה שהן מקוונות והן לא מקוונות הוא שהן עוזרות להימנע מבעיית האימון והטיית ההסקה. SageMaker מאפשר לך להזין גם אימון וגם מסקנות באותם ערכי תכונה שהשתנו, מה שמבטיח עקביות כדי להניע תחזיות מדויקות יותר. ההתמקדות בפוסט שלנו היא להדגים סטרימינג של תכונות מקוונות, אז יישמנו קבוצות תכונות מקוונות בלבד.
בליעת אצווה
כדי לממש את תכונות האצווה שלנו, אנו יוצרים צינור תכונות הפועל כעבודת SageMaker Processing על בסיס לילי. לתפקיד יש שתי אחריות: הפקת מערך הנתונים להכשרת המודל שלנו, ואיכלוס קבוצת התכונות האצווה עם הערכים המעודכנים ביותר עבור תכונות מצטברות של שבוע אחד, כפי שמוצג בתרשים הבא.
כל עסקה היסטורית המשמשת בערכת ההדרכה מועשרת בתכונות מצטברות עבור כרטיס האשראי הספציפי המעורב בעסקה. אנו מסתכלים אחורה על שני חלונות זמן הזזה נפרדים: שבוע אחורה, ו-1 הדקות הקודמות. התכונות בפועל המשמשות לאימון המודל כוללות את היחסים הבאים של ערכים מצטברים אלה:
- amt_ratio1 =
avg_amt_last_10m / avg_amt_last_1w
- amt_ratio2 =
transaction_amount / avg_amt_last_1w
- יחס_מספר =
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 for Apache Flink כדי ליצור תכונות מצטברות בנושא MSK של יעד. האפליקציה נכתבת באמצעות Apache Flink SQL. Flink SQL מקל על פיתוח יישומי סטרימינג באמצעות SQL רגיל. קל ללמוד Flink אם אי פעם עבדת עם מסד נתונים או מערכת דמוית SQL על ידי השארת תואם ANSI-SQL 2011. מלבד SQL, אנו יכולים לבנות בתוכם יישומי Java ו-Scala ניתוח נתונים של אמזון Kinesis באמצעות ספריות קוד פתוח המבוססות על Apache Flink. לאחר מכן אנו משתמשים בפונקציית Lambda כדי לקרוא את נושא MSK היעד ולהטמיע את התכונות המצטברות לתוך קבוצת תכונות של SageMaker לצורך הסקה. יצירת אפליקציית Apache Flink באמצעות SQL API של Flink היא פשוטה. אנו משתמשים ב-Flink SQL כדי לצבור את הנתונים הזורמים בנושא המקור של MSK ולאחסן אותם בנושא MSK של יעד.
כדי לייצר ספירות מצטברות וסכומים ממוצעים במבט לאחור על פני חלון של 10 דקות, אנו משתמשים בשאילתת Flink SQL הבאה בנושא הקלט ומעבירים את התוצאות לנושא היעד:
cc_num | כמות | datetime | 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 Data Analytics עבור Apache Flink, האפליקציה שולחת את התוצאות המצטברות לפונקציית Lambda שלנו, כפי שמוצג בתרשים הבא. פונקציית Lambda לוקחת את התכונות הללו ומאכלסת את cc-agg-fg
קבוצת תכונות.
אנו שולחים את ערכי התכונות העדכניים ביותר לחנות התכונות מ- Lambda באמצעות קריאה פשוטה ל- PutRecord API. להלן חלק הליבה של קוד Python לאחסון התכונות המצטברות:
אנו מכינים את הרשומה כרשימה של צמדי ערכים בעלי שם, כולל השעה הנוכחית כשעת האירוע. ה-API של חנות התכונות מבטיח שהרשומה החדשה הזו עוקבת אחר הסכימה שזיהינו כאשר יצרנו את קבוצת התכונות. אם כבר קיימת רשומה עבור מפתח ראשי זה, היא נמחקת כעת בחנות המקוונת.
תחזיות סטרימינג
עכשיו, כשיש לנו קליטת סטרימינג כדי לשמור על חנות הפיצ'רים מעודכנת עם ערכי הפיצ'רים העדכניים ביותר, בואו נסתכל כיצד אנו מבצעים תחזיות הונאה.
אנו יוצרים פונקציית Lambda שנייה שמשתמשת בנושא המקור MSK כטריגר. עבור כל אירוע עסקה חדש, פונקציית Lambda מאחזרת תחילה את תכונות האצווה והסטרימינג מ- Feature Store. כדי לזהות חריגות בהתנהגות כרטיס האשראי, המודל שלנו מחפש זינוקים בסכומי הרכישה האחרונים או בתדירות הרכישה. פונקציית Lambda מחשבת יחסים פשוטים בין צבירות של שבוע אחד לצבירה של 1 דקות. לאחר מכן הוא מפעיל את נקודת הקצה של מודל SageMaker תוך שימוש ביחסים אלה כדי לבצע את חיזוי ההונאה, כפי שמוצג בתרשים הבא.
אנו משתמשים בקוד הבא כדי לאחזר ערכי תכונות לפי דרישה מחנות הפיצ'רים לפני קריאה לנקודת הקצה של דגם SageMaker:
SageMaker תומך גם באחזור רשומות תכונה מרובות עם א שיחה בודדת, גם אם הם מקבוצות תכונות שונות.
לבסוף, עם וקטור תכונת קלט המודל מורכב, אנו קוראים לנקודת הקצה של המודל כדי לחזות אם עסקה ספציפית בכרטיס אשראי היא הונאה. 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 Data Analytics עבור צבירה של Apache Flink משתלט משם, שומר על תצוגה כמעט בזמן אמת של ספירת העסקאות והסכומים ב- Feature Store, עם חלון מבט לאחור של 10 דקות. תכונות אלו משולבות עם התכונות המצטברות של שבוע אחד שכבר הוכנסו לחנות התכונות באצווה, מה שמאפשר לנו לבצע תחזיות הונאה בכל עסקה.
אנו שולחים עסקה בודדת משלושה כרטיסי אשראי שונים. לאחר מכן, אנו מדמים התקפת הונאה בכרטיס אשראי רביעי על ידי שליחת עסקאות רבות גב אל גב תוך שניות. הפלט מפונקציית Lambda שלנו מוצג בצילום המסך הבא. כצפוי, שלוש העסקאות החד פעמיות הראשונות צפויות כ NOT FRAUD
. מבין 10 עסקאות הונאה, הראשונה צפויה להיות NOT FRAUD
, והשאר מזוהים כהלכה כ FRAUD
. שימו לב כיצד התכונות המצטברות נשמרות עדכניות, ועוזרות להניע תחזיות מדויקות יותר.
סיכום
הראינו כיצד Feature Store יכול למלא תפקיד מפתח בארכיטקטורת הפתרון עבור זרימות עבודה תפעוליות קריטיות שזקוקות לצבירה של זרימה והסקת השהייה נמוכה. עם חנות תכונות מוכנה לארגון, אתה יכול להשתמש הן בהטמעת אצווה והן בהטמעת סטרימינג כדי להאכיל קבוצות תכונות, ולגשת לערכי תכונות לפי דרישה כדי לבצע תחזיות מקוונות לערך עסקי משמעותי. כעת ניתן לשתף תכונות ML בקנה מידה רחב על פני צוותים רבים של מדעני נתונים ואלפי מודלים של ML, תוך שיפור עקביות הנתונים, דיוק המודלים והפרודוקטיביות של מדעני הנתונים. Feature Store זמין כעת, ואתה יכול לנסות זאת דוגמה שלמה. ספר לנו מה אתה חושב.
תודה מיוחדת לכל מי שתרם ל פוסט בלוג קודם עם ארכיטקטורה דומה: פול הארגיס, ג'יימס ליאוני וארוןפראסאת' שנקר.
על הכותבים
מארק רוי הוא ארכיטקט למידת מכונה ראשי עבור AWS, שעוזר ללקוחות לתכנן ולבנות פתרונות AI/ML. עבודתו של מארק מכסה מגוון רחב של מקרי שימוש ב-ML, עם עניין עיקרי בחנויות תכונות, ראייה ממוחשבת, למידה עמוקה והרחבת ML ברחבי הארגון. הוא עזר לחברות בתעשיות רבות, כולל ביטוח, שירותים פיננסיים, מדיה ובידור, שירותי בריאות, שירותים וייצור. מארק מחזיק בשש הסמכות AWS, כולל הסמכת ML Specialty. לפני שהצטרף ל-AWS, מארק היה אדריכל, מפתח ומוביל טכנולוגיה במשך למעלה מ-25 שנים, כולל 19 שנים בשירותים פיננסיים.
ראג' רמסובבו הוא ארכיטקט פתרונות מומחה באנליטיקה בכיר המתמקד ב-Big Data ואנליטיקה ובינה מלאכותית/ML עם שירותי האינטרנט של אמזון. הוא עוזר ללקוחות לתכנן ולבנות פתרונות מבוססי ענן בעלי יכולת הרחבה, ביצועים ומאובטחים ב-AWS. Raj סיפקה מומחיות טכנית ומנהיגות בבניית הנדסת נתונים, ניתוח ביג דאטה, בינה עסקית ופתרונות מדעי נתונים במשך למעלה מ-18 שנים לפני ההצטרפות ל-AWS. הוא עזר ללקוחות בתחומים שונים בתעשייה כמו בריאות, מכשור רפואי, מדעי החיים, קמעונאות, ניהול נכסים, ביטוח רכב, REIT למגורים, חקלאות, ביטוח זכויות, שרשרת אספקה, ניהול מסמכים ונדל"ן.
Prabhakar Chandrasekaran הוא מנהל חשבונות טכניים בכיר עם תמיכה ארגונית של AWS. Prabhakar נהנה לעזור ללקוחות לבנות פתרונות AI/ML מתקדמים בענן. הוא גם עובד עם לקוחות ארגוניים המספקים הדרכה יזומה וסיוע תפעולי, ועוזר להם לשפר את הערך של הפתרונות שלהם בעת שימוש ב-AWS. Prabhakar מחזיק בשש AWS ושש הסמכות מקצועיות נוספות. עם למעלה מ-20 שנות ניסיון מקצועי, Prabhakar היה מהנדס נתונים ומוביל תוכנית בתחום השירותים הפיננסיים לפני הצטרפותו ל-AWS.
- הפצת תוכן ויחסי ציבור מופעל על ידי SEO. קבל הגברה היום.
- Platoblockchain. 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/
- :יש ל
- :הוא
- $ למעלה
- 000
- 1
- 10
- 100
- 11
- שנים 20
- 2011
- 7
- 8
- a
- יכול
- אודות
- גישה
- חֶשְׁבּוֹן
- דיוק
- מדויק
- לרוחב
- פעילות
- מעשים
- Ad
- תוספת
- כתובת
- סוֹכֵן
- - צבירה
- חקלאות
- AI / ML
- נמל תעופה
- תעשיות
- כְּבָר
- אמזון בעברית
- אמזון SageMaker
- אמזון שירותי אינטרנט
- כמות
- כמויות
- ניתוח
- ו
- אחר
- כל
- אַפָּשׁ
- בנפרד
- API
- האפליקציה
- בקשה
- יישומים
- גישה
- ארכיטקטורה
- ARE
- AS
- אספקט
- התאסף
- נכס
- ניהול נכסים
- סיוע
- At
- לתקוף
- המתקפות
- אוטומטי
- באופן אוטומטי
- זמין
- מְמוּצָע
- AWS
- בחזרה
- מגובה
- מבוסס
- בסיס
- BE
- כי
- הופך להיות
- לפני
- תועלת
- הטוב ביותר
- מוטב
- בֵּין
- גָדוֹל
- נתונים גדולים
- חסום
- חסימה
- בלוג
- גוּף
- קנה
- לִבנוֹת
- בִּניָן
- נבנה
- עסקים
- מודיעין עסקי
- לִקְנוֹת
- by
- לחשב
- מחשב
- חישובים
- שיחה
- מוקד טלפוני
- נקרא
- קוראים
- CAN
- יכולות
- מכונית
- כרטיס
- כרטיסים
- מקרה
- מקרים
- מרכז
- מֶרכָּזִי
- מסוים
- תעודה
- אישורים
- שרשרת
- האתגרים
- סיכוי
- שינוי
- בחרו
- לסווג
- ענן
- קוד
- סִמוּל
- משולב
- מגיע
- חברות
- להשלים
- מורכב
- מורכבות
- תואם
- מסובך
- רְכִיב
- מַקִיף
- לחשב
- המחשב
- ראייה ממוחשבת
- מחשוב
- עִקבִי
- מכיל
- הקשר
- ברציפות
- תרם
- ליבה
- תוֹאֵם
- עלות
- חיסכון עלויות
- יכול
- זוג
- כיסוי
- מכסה
- לִיצוֹר
- נוצר
- יוצר
- יוצרים
- יצירה
- אשראי
- כרטיס אשראי
- כרטיסי אשראי
- קריטי
- מכריע
- נוֹכְחִי
- לקוחות
- שיא הטכנולוגיה
- כהה
- אינטרנט אפל
- נתונים
- ניתוח נתונים
- מדע נתונים
- מדען נתונים
- מסד נתונים
- מערכי נתונים
- תַאֲרִיך
- יְוֹם
- להחליט
- החלטות
- עמוק
- למידה עמוקה
- למסור
- מספק
- דרישה
- להפגין
- מדגים
- פרס
- לתאר
- עיצוב
- תכנון
- רצוי
- יעד
- פרט
- פרטים
- איתור
- לפתח
- מפתח
- צעצועי התפתחות
- מכשיר
- התקנים
- הבדל
- אחר
- ישירות
- תגלית
- הפצות
- מחולק
- מסמך
- ניהול מסמכים
- דולר
- לא
- עשרות
- נהיגה
- נהג
- בְּמַהֲלָך
- באופן דינמי
- כל אחד
- מוקדם יותר
- בקלות
- אפקטיבי
- לאפשר
- מאפשר
- מה שמאפשר
- מקצה לקצה
- נקודת קצה
- מנוע
- מהנדס
- הנדסה
- מהנדסים
- עֲנָקִי
- מספיק
- מועשר
- מבטיח
- הבטחתי
- מִפְעָל
- חברות
- בידור
- אחוזה
- אֲפִילוּ
- אירוע
- אי פעם
- כולם
- דוגמה
- צפוי
- ניסיון
- חוויות
- מומחיות
- לחקור
- נוסף
- תמצית
- מְזוּיָף
- אופנה
- מהר
- מאפיין
- תכונות
- סופי
- כספי
- שירותים פיננסיים
- חברות
- ראשון
- גמישות
- להתמקד
- מרוכז
- הבא
- כדלקמן
- בעד
- טופס
- ארבע
- רביעית
- מסגרת
- מסגרת
- הונאה
- גילוי הונאה
- רמאים
- רמאי
- פעילות מרמה
- תדר
- החל מ-
- מלא
- לגמרי
- פונקציה
- יתר על כן
- ליצור
- לקבל
- לתת
- נתן
- נתינה
- טוב
- גדול
- מאוד
- קְבוּצָה
- קבוצה
- גדל
- הדרכה
- פריצות
- מטפל
- לקרות
- יש
- יש
- he
- בריאות
- לעזור
- עזר
- עזרה
- עוזר
- גָבוֹהַ
- מאוד
- היסטורי
- היסטוריה
- מחזיק
- שעות
- איך
- HTML
- http
- HTTPS
- מאות
- ID
- אידאל
- מזוהה
- מזהה
- לזהות
- יושם
- חשוב
- לשפר
- שיפורים
- שיפור
- in
- לכלול
- כולל
- נכנס
- יותר ויותר
- עצמאי
- באופן עצמאי
- בנפרד
- תעשיות
- תעשייה
- מידע
- תשתית
- קלט
- במקום
- ביטוח
- מוֹדִיעִין
- בכוונה
- אינטרס
- מציג
- מעורר
- מעורב
- IT
- שֶׁלָה
- Java
- עבודה
- הצטרפות
- מצטרף
- jpg
- ג'סון
- שמור
- שמירה
- מפתח
- סוג
- לדעת
- ידוע
- מדינה
- גָדוֹל
- אחרון
- חֶבִיוֹן
- האחרון
- עוֹפֶרֶת
- מנהיג
- מנהיגות
- מוביל
- דליפות
- לִלמוֹד
- למידה
- מאפשר לי
- לתת
- רמה
- ספריות
- סִפְרִיָה
- החיים
- מדעי החיים
- כמו
- מוגבל
- רשימה
- רשימות
- לחיות
- הגיוני
- נראה
- הסתכלות
- נראה
- מכונה
- למידת מכונה
- לתחזק
- שמירה
- לעשות
- עושה
- עשייה
- הצליח
- ניהול
- מנהל
- ייצור
- רב
- סימן
- של מארק
- שוק
- להתאים
- מאי..
- משמעותי
- מדיה
- רפואי
- סוחר
- מִילִיוֹן
- מיליונים
- אכפת לי
- דקה
- דקות
- ML
- מודל
- מודלים
- יותר
- רוב
- מספר
- שם
- צורך
- צרכי
- חדש
- הבא
- נוֹרמָלִי
- נוֹבֶמבֶּר
- מספר
- מספרים
- of
- הַצָעָה
- המיוחדות שלנו
- לא מחובר
- on
- ONE
- מתמשך
- באינטרנט
- קוד פתוח
- מבצעי
- מטב
- להזמין
- ארגונים
- מאורגן
- מְקוֹרִי
- אחר
- שלנו
- תפוקה
- יותר
- מקיף
- שֶׁלוֹ
- זוגות
- מקביל
- חלק
- עבר
- תבנית
- דפוסי
- פול
- תשלום
- לְבַצֵעַ
- ביצועים
- תקופה
- לבחור
- לְחַבֵּר
- חתיכות
- מקטרת
- צינור
- מקום
- הַצָבָה
- אפלטון
- מודיעין אפלטון
- אפלטון נתונים
- לְשַׂחֵק
- נקודה
- פופולרי
- אפשרי
- הודעה
- לחזות
- חזה
- נבואה
- התחזיות
- להכין
- מוּכָן
- קודם
- מחיר
- תמחור
- יְסוֹדִי
- מנהל
- קודם
- פרואקטיבי
- בעיה
- תהליך
- לייצר
- המוצר
- פִּריוֹן
- מוצרים
- מקצועי
- פרופיל
- תָכְנִית
- מוקרן
- קניינית
- לספק
- ובלבד
- מספק
- מתן
- בפומבי
- לִרְכּוֹשׁ
- רכישות
- גם
- מכניס
- פיתון
- איכות
- מהירות
- רכס
- מהיר
- במקום
- חי
- חומר עיוני
- ממשי
- מקרקעין
- עולם אמיתי
- זמן אמת
- מציאות
- קיבלו
- קבלה
- לאחרונה
- ממליץ
- שיא
- רשום
- אזורים
- קָשׁוּר
- רלוונטי
- נותר
- להסיר
- מאגר
- בקשות
- לדרוש
- נדרש
- מגורים
- משאבים
- להגיב
- תגובה
- אחריות
- אחראי
- REST
- תוצאה
- וכתוצאה מכך
- תוצאות
- קמעוני
- שימוש חוזר
- לרכוב
- חָסוֹן
- תפקיד
- שׁוּרָה
- בעל חכמים
- SALE
- אותו
- חיסכון
- להרחבה
- סולם
- מאזניים
- דרוג
- תרחיש
- מדע
- מַדְעָן
- מדענים
- מניה
- חיפוש
- שְׁנִיָה
- שניות
- סעיפים
- לבטח
- מאובטח
- בחירה
- שליחה
- לחצני מצוקה לפנסיונרים
- רגיש
- נפרד
- רצף
- שרות
- שירותים
- מושב
- סט
- משותף
- שיתוף
- קצר
- לְהַצִיג
- הראה
- הופעות
- לאותת
- אותות
- משמעותי
- באופן משמעותי
- דומה
- פָּשׁוּט
- בפשטות
- יחיד
- שישה
- מוטה
- החלקה
- So
- פִּתָרוֹן
- פתרונות
- כמה
- משהו
- מָקוֹר
- מקורות
- מֶרחָב
- לעורר
- מומחה
- התמחות
- ספציפי
- מהירויות
- לבלות
- הוצאה
- בילה
- קוצים
- מסחרי
- התפשטות
- ערימות
- תֶקֶן
- החל
- מדינה
- שלב
- גָנוּב
- אחסון
- חנות
- חנויות
- אחסון
- פשוט
- זרם
- מוזרם
- נהירה
- זרמים
- כזה
- לספק
- שרשרת אספקה
- תמיכה
- תומך
- חשוד
- מערכת
- שולחן
- לוקח
- צוותי
- טכני
- טכנולוגיה
- תבנית
- תודה
- זֶה
- השמיים
- המקור
- המדינה
- שֶׁלָהֶם
- אותם
- עצמם
- אלה
- אלפים
- שְׁלוֹשָׁה
- דרך
- תפוקה
- זמן
- פִּי
- כותרת
- ל
- נושא
- נושאים
- לעקוב
- רכבת
- הדרכה
- עסקה
- עסקות
- טרנספורמציות
- טרנספורמציה
- להפעיל
- טיפוסי
- בדרך כלל
- ייחודי
- עדכן
- מְעוּדכָּן
- עדכונים
- us
- להשתמש
- במקרה להשתמש
- מְשׁוּמָשׁ
- כלי עזר
- ערך
- ערכים
- מגוון
- שונים
- מְהִירוּת
- ספקים
- גרסה
- אנכיות
- לצפיה
- חזון
- vs
- לבזבז
- אינטרנט
- שירותי אינטרנט
- שבוע
- שבועי
- טוֹב
- מה
- אשר
- מי
- רָחָב
- טווח רחב
- יצטרך
- חלונות
- עם
- לְלֹא
- תוהה
- תיק עבודות
- עבד
- זרימות עבודה
- עובד
- היה
- כתוב
- XGBoost
- שנים
- אתה
- עצמך
- זפירנט