GH GambleHub

הנדסת תכונה ובחירת תכונה

1) מטרה ועקרונות

מטרה: לבנות תכונות יציבות, ניתנות לפרשנות וחסכוניות המוסכמות בין מחובר לרשת.

עקרונות:
  • Point-in-time: תכונות מחושבות מן הנתונים הזמינים בעת פתרון, ללא עתיד (anti-lapkage).
  • Domain-first: תכונות משקפות מכניקה עסקית (מרבצים, מפגשים, ז 'אנרי משחק, RG/AML).
  • Revise & Contracts: Feature Store, בעלים, נוסחאות ו-SLOs.
  • עלות מודעת: אנו שוקלים איחור ואת העלות של מחשוב/אחסון
  • תצפית: צג סחף/יציבות/כיול; מבחן מקוון/לא מקוון.

2) טקסונומיה אופיינית ל ־ iGaming

RFM/התנהגותי: recency/frequency/monitary by windows (10m/1h/1d/7d/30d).
הפעלה: משך זמן, הפסקה, שינוי התקן/ASN, מהירות פעולה.
פיקדונות/משיכות/מטענים, מניות של שיטות תשלום, נורמליזציה של FX.
משחקים: פרופילי ז 'אנר, תנודתיות ספקית, אשכולות RTP, רצף ניצחונות.
שיווק: ערוצים/UTM, תגובות קמפיין, רוויה/התקררות.
RG/AML: גבולות, דגלי הדרה עצמית, תבניות מהירות, שימוש חוזר ב-BIN/IP.
לוח שנה מקומי/חגים, שעת החגורה, ערב/לילה.
גרף: קישורי משתמש-כרטיס-התקן-ip, מרכזיות/רכיבים, טבעות הונאה.
NLP/טקסטים: נושאים וטון של כרטיסים/צ 'אטים; תלונות מפתח.
פעולות: שגיאות לאג/ספק, יציבות הפעלה (עבור מודלי SRE).


3) חלונות וצבירים (נקודה בזמן)

חלונות טיפוסיים: 10m/1h/24h/7d/30d. עבור כל חלון - ספירה/סכום/ממוצע/std/last/max/min, יחס וקצב.

תבנית SQL (30d פיקדונות, ללא עתיד):
sql
SELECT u.user_pseudo_id, t.asof,
SUM(CASE WHEN e.type='deposit'
AND e.event_time>=t.asof - INTERVAL '30' DAY
AND e.event_time< t.asof THEN e.amount_base ELSE 0 END) AS dep_30d,
COUNT(CASE WHEN e.type='bet'
AND e.event_time>=t.asof - INTERVAL '7' DAY
AND e.event_time< t.asof THEN 1 END) AS bets_7d
FROM silver.fact_events e
JOIN (SELECT user_pseudo_id, DATE(event_time) AS asof
FROM silver.fact_events GROUP BY 1,2) t USING(user_pseudo_id)
JOIN dim.users_scd u ON u.user_pseudo_id=t.user_pseudo_id
AND t.asof >= u.valid_from AND (u.valid_to IS NULL OR t.asof < u.valid_to)
GROUP BY 1,2;

4) קידוד קטגורי

One-Hot/Hashing: עבור קטגוריות נדירות/חשמן גבוה (משחקים, ספקים).
קידוד מטרות (TEE): המטרה ממוצעת עם K-fold/Leave-one-out ו-time-awards anti-likage.
פחים מונוטוניים עם שליטה בעירוי ויציבות.

TE (פסאודו-קוד, זמן מודע):
python for fold in time_folds:
train_idx, val_idx = split_by_time(fold)
te_map = target_mean(train[["provider_id","label"]])
val["provider_te"] = val["provider_id"].map(te_map).fillna(global_mean)

5) נורמליזציה וגלישה

Min-max/Russive/Z-Score - על ידי חלון אימונים; לשמור פרמטרים בחפצים.
יומן המרות עבור זנבות סכום/הימור ארוך.
בוקס-קוקס/יאו-ג 'ונסון - כאשר סימטריזציה נדרשת.


6) מאפיינים זמניים ועונתיים

לוח שנה: יום בשבוע, שעה, חופשת שוק (refres. board), יום תשלום.
תדירות: ממוצעי תנועה/אקספון. Smoofing (EMA), deltas (t - 1).
מבוסס אירוע: זמן מאז ההפקדה האחרונה/ניצחון/הפסד, ”קירור”.


7) תכונות גרף (הונאה/AML)

קודקודים: משתמש/כרטיס/התקן/ip. קצוות: עסקאות/מפגשים/מאפיינים משותפים.
תכונה: גודל רכיב, מעלה, בינות, עבודת אלילים, שלישיות, הופעה מחודשת.
תבנית: אצווה לילית בונה גרף * שיבוץ/מרכזיות * מטמון מקוון.


8) תכונות NLP (תמיכה/צ 'אטים/ביקורות)

בסיסי: TF-ISF/NMF נושאים, רגש, אורך, תדירות תלונות.
מתקדם: שיבוץ (משפט-BERT) = ממוצע כרטיסים לחלון.
PII: מראש ולאחר מיסוך (דוא "ל, PAN, טלפונים) על ידי מדיניות.


9) GEO/ASN ומכשירים

IP * Geo/ASN: אנו מטמון ועדכון; אין לבצע בקשות סינכרוניות באינטרנט ללא פסק זמן/מטמון.
תכונות: יציבות ASN/SYBID, תדירות הזזה, מרחק בין לוגנים.


10) אנטי-דליפה ופיוס מקוון/לא מקוון

הצטרפות נקודתית, אין אירועים עתידיים בחלונות/תוויות.
קוד שינוי אחד (ספרייה) עבור מקוון מקוון.
מבחן השוואה: במדגם T, אנו משווים את הערכים המקוונים של התכונה עם offline (MAE/MAPE).

מאפיין מפרט YAML:
yaml name: deposits_sum_10m owner: ml-risk slo: {latency_ms_p95: 20, availability: 0.999}
offline:
source: silver.payments transform: "SUM(amount_base) OVER 10m BY user_pseudo_id"
online:
compute: "streaming_window: 10m"
tests:
- compare_online_offline_max_abs_diff: 0.5

11) בחירת מאפיינים

11. 1 מסנן

וריאציה/קורלציה: הסר קבועים,ρ>0. 95 כפילויות.
מידע הדדי (MI) - range יחסים לא לינאריים.
IV/KS: עבור מטרות בינאריות ב- AML/RG.

11. עטיפה 2

RFE/Sequential FS: על סטים קטנים/רגרסיה לוגיסטית.
בחירת יציבות: יציבות בדגימת אתחול.

11. 3 משובץ

L1/Lasso/ElasticNet: רענון.
עצים/GBDT: חשיבות/SHAP לבחירה ופרשנות עסקית.
קבוצה לאסו: בחירת קבוצה (סטים של תכונות סל של משתנה אחד).

צינור (סקיצה):
python
X = preprocess(raw)        # one-hot/TE/scale
X = drop_const_and_corr(X, thr=0.95)
rank_mi = mutual_info_rank(X, y)
keep1 = topk(rank_mi, k=200)
model = LGBMClassifier(...)
model.fit(X[keep1], y)
shap_vals = shap.TreeExplainer(model).shap_values(X[keep1])
keep2 = stable_topk_by_shap(shap_vals, k=60, bootstrap=20)
final = keep2

12) יציבות, סחיפה וכיול

סחיפה: PSI/KS עבור תכונות ומהירות; התראות כאשר הסף הוא חרג.
יציבות: שימו לב ל ”שברירי” TE/OOE (קרדינליות/משמרות).
כיול: פלאט/איזוטוני; דוחות אמינות.
ניתוח פרוסות: שווקים/ספקים/מכשירים - מדדים ועלות צפויה של טעויות.


13) עלות הנדסה וביצועים

עלות לכל תכונה (CPF): תקציב מודל מודל CPU/IO/רשת/אחסון.
התממשות: כבד לא מקוון, אור מקוון; TTL/מטמון לתכונות חמות.
חיפושים מרחוק: async + מטמון בלבד; p95 <20-30 ms על תכונה באינטרנט.
Chargback: חשבון עבור עלות של תכונה/הסקה על ידי פקודה.


14) חנות תכונה (גרעין עקביות)

רישום: שם, נוסחה, בעלים, SLO, בדיקות, גרסאות.
סינכרון מקוון/מקוון: קוד שינוי אחד, מבחן שוויון.
יומנים/ביקורת: מי שינה את הנוסחה; השפעה של גרסה על מדדי מודל.


15) דוגמאות

בית ClickHouse: צבירה הימורים דקה:
sql
CREATE MATERIALIZED VIEW mv_bets_1m
ENGINE = SummingMergeTree()
PARTITION BY toDate(event_time)
ORDER BY (toStartOfMinute(event_time), user_pseudo_id)
AS
SELECT toStartOfMinute(event_time) AS ts_min,
user_pseudo_id,
sum(stake_base) AS stake_sum_1m,
count() AS bets_1m
FROM stream.game_events
GROUP BY ts_min, user_pseudo_id;
ירידה נגד קורלציה (רעיון SQL):
sql
-- вычислить корреляции и удалить пары с     ρ    >0.95, сохранив более «дешевую» фичу
הוי בינינג (סקיצה):
python bins = monotonic_binning(x, y, max_bins=10)
woe = compute_woe(bins)
iv = compute_iv(bins)

16) תהליכים ו ־ RACI

R (אחראי): Data Eng (צינורות/Feature Store), Data Science (תכונת עיצוב/מבחר/מטריצות).
א '(אחראי): ראש הנתונים/CDO.
C (ייעוץ): ציות/DPO (PII, תושבות), סיכון/AML/RG (מדיניות), SRE (SLO/עלות), אבטחה.
אני (מושכל): מוצר/שיווק/מבצעים/תמיכה.


17) מפת דרכים

MVP (3-5 שבועות):

1. קטלוג של 50 התכונות הטובות ביותר (תשלומים/משחק) עם נוסחאות נקודתיות בזמן.

2. Feature Store v1 (מקוון/לא מקוון) + aqualence test.

3. בחירה בסיסית: קבועים/קורלציות # MI # L1/SHAP רשימה קצרה (עד 60 תכונות).

4. מאפייני סחיפה מעקב ולוחות מחוונים עלות.

שלב 2 (5-10 שבועות):
  • TE/אוי עם אימות מודע זמן, גרף ותכונות לוח שנה.
  • ניתוח פרוסות והוגנות, כיול הסתברות.
  • התממשות של תכונות לא מקוונות כבדות, מטמון מקוון, מכסות.
שלב 3 (שבועות 10-16):
  • דור אוטומטי של תיעוד, בחירת יציבות במודיעה.
  • ביטול אוטומטי של תכונות ”יקרות וחסרות תועלת” (CPF laught, vklad auth).
  • A/B השוואה של ערכות תכונה, דיווחים בעלות צפויה.

18) רשימת בדיקות לפני המכירה

[ ] לכל המאפיינים יש מפרט (בעלים, נוסחה, גרסאות, SLO).
[ ] עברו בדיקות מקוונות/לא מקוונות.
[ ] Filter # משובץ (SHAP/L1) * היציבות הושלמה.
[ ] סחיפה ניטור ואמינות מוגדרים; הסף וההתראות כן.
[ ] CPF/Latency מתאים לתקציב; תכונות כבדות התממשו.

מדיניות [ ] PII נפגשה (CLS/RLS, tokenization, תושבות).

[ ] תיעוד ושימוש במקרים נוספו לקטלוג.

19) אנטי דפוסים וסיכונים

Lakage (אירועים עתידיים/פרומו תוצאות).
נוסחאות לא עקביות באינטרנט/לא מקוונות.
יותר מדי חם מקטגוריות של חשמן גבוה ללא חשיש/TE.
תכונות ”יקרות” ללא עלייה מדידה באיכות.
חוסר ניתוח פרוסה/הגינות - השפלה נסתרת.
TE/HOE ללא אימות צולב מודעת זמן.


20) השורה התחתונה

הנדסת תכונה היא משמעת מנוהלת: נקודה בזמן, חוש עסקי, רבייה, ניטור וכלכלה. תכונות חזקות + בחירה קפדנית (מסנן/עטיפה/משובץ) וחנות Feature Store אחת מעניקות מודלים יציבים, מתורגמים וזולים שמשפרים את הכנסות הרשת, מפחיתים הונאה ותומכים ב-RG - באופן שקוף וצמוד.

Contact

צרו קשר

פנו אלינו בכל שאלה או צורך בתמיכה.אנחנו תמיד כאן כדי לעזור.

התחלת אינטגרציה

Email הוא חובה. Telegram או WhatsApp — אופציונליים.

השם שלכם לא חובה
Email לא חובה
נושא לא חובה
הודעה לא חובה
Telegram לא חובה
@
אם תציינו Telegram — נענה גם שם, בנוסף ל-Email.
WhatsApp לא חובה
פורמט: קידומת מדינה ומספר (לדוגמה, +972XXXXXXXXX).

בלחיצה על הכפתור אתם מסכימים לעיבוד הנתונים שלכם.