אלגוריתם שלא ראה גזע גבה 26% יותר מקבוצה מסוימת. Equity מאתרת משתני פרוקסי, בודקת לפי ארבע חמישיות של EEOC וחותמת חבילת ראיות ל-CID.
ממשל בינה מלאכותיתתמחור דינמיהוגנות אלגוריתמית

«הסרנו גזע והכנסה מהמודל» הוא המשפט שמפסיד בתיק התמחור הדינמי

Ashutosh SinghalAshutosh Singhal22 ביולי 202614 min

בדצמבר 2025 הגיעה ועדת הסחר הפדרלית (FTC) להסדר של 60 מיליון דולר עם Instacart בנוגע לניסויי התמחור של Eversight, וכתב התביעה תיעד פערים של עד 23% במחיר של פריטים זהים. ל-FTC לא היה צורך להוכיח מה הוזן לאלגוריתם; התביעה התבססה על המחירים שהוצגו בפועל לקונים שונים עבור אותו המוצר בדיוק.

המשפט שכל צוות תמחור נאחז בו הוא ההפך הגמור מטיעון מבוסס-תוצאות: הסרנו גזע והכנסה מהמודל. אני מאמין לצוותים שאומרים זאת. אך אני גם סבור שזהו המשפט שמפסיד את התיק בבית המשפט, ובמקום לטעון זאת באופן מופשט, בניתי מנוע תמחור שיכול לומר זאת בכנות על עצמו, ואז ביצעתי עליו ביקורת. המנוע הוא LinUCB contextual bandit עם שבע זרועות תמחור, שנוצר עם seed 42, ואומן להגיע לאופטימיזציית הכנסות על גבי אוכלוסייה סינתטית של 10,000 קונים שיצרתי עם מבנה משתני פרוקסי (proxies) שהוטמן בכוונה תחילה. כיניתי את חנות הקמעונאות הבדיונית בשם ShopMart. שום חנות אמיתית לא בוקרה ושום קונה אמיתי לא חויב ביתר, וזו בדיוק הסיבה שבגללה אני יודע את האמת המוחלטת (ground truth) ויכול להעריך את הביקורת מולה. השכבה העליונה היא לוח בקרה שכיניתי בשם Equity, שתוכנן לפעול מעל כל מנוע תמחור שכבר יש לקמעונאי; בגרסה זו, המנוע המבוקר הוא ה-bandit שלי. ההדגמה המלאה זמינה בכתובת veriprajna.com/demos/ai-pricing-compliance.

אותן אוזניות, ביקוש זהה, ו-26% יותר

הזנתי ל-bandit תשעה קלטים ואף לא אחד מהם הוא מאפיין מוגן: מדד הכנסה לפי מיקוד, רמת מכשיר, מקור הפניה, זמן שהייה, גודל עגלה, תדירות רכישות חוזרות, מספר ביקורים, חברות פרימיום ושעת היום, בתוספת אינטראקציות של הפניה וזמן שהייה, מכיוון שמנועים אמיתיים רבים כוללים אינטראקציות או עצי החלטה ורציתי שהמנוע שלי יוכל לשחזר כל מה שהמנועים שלהם מסוגלים לעשות. לאחר מכן הנחתי לו לתמחר מק"ט בודד (SKU), ה-Aura Wireless Earbuds, עם מחיר מחירון רשמי של 79.00 דולר, על פני כל 10,000 ההחלטות.

כרטיס ה-hero בלוח הבקרה הוא הדבר הראשון שמופיע על המסך לפני הרצה כלשהי. שתי קבוצות, מוצר אחד, ואותות ביקוש זהים. קבוצת החלטה A היא קבוצת המיקוד בעל ההכנסה הגבוהה והמכשיר החדש, 2,880 החלטות, המיוצגת בכרטיס באמצעות מיקוד של ה-Upper East Side ומכשיר iPhone חדש: המחיר המוצג 74.06 דולר. קבוצת החלטה B היא קבוצת המיקוד שבו רוב של בני מיעוטים ומכשיר ישן, 3,037 החלטות, המיוצגת באמצעות מיקוד של דרום הברונקס (South Bronx) ומכשיר Android ישן: 93.47 דולר. פער שנמדד: +26.2%. אלו ממוצעי קבוצות על פני כ-3,000 החלטות לכל אחת, כך שמדובר בהתנהגות שיטתית של המדיניות ולא בחוסר מזל של קונה יחיד, והמיקוד והטלפון בכל כרטיס הם הפרופיל המייצג של הקבוצה, ולא הגדרתה הבלעדית.

כרטיס השוואת תוצאות התמחור ב-Equity: קבוצת החלטה A, קבוצת הייחוס של 2,880 החלטות המיוצגת על ידי מיקוד 10021 ו-iPhone חדש, ב-74.06 דולר; קבוצת החלטה B, הקבוצה החשופה של 3,037 החלטות המיוצגת על ידי מיקוד 10456 ו-Android ישן, ב-93.47 דולר; פער שנמדד של +26.2% על אותן Aura Wireless Earbuds, מחיר מחירון 79.00 דולר.
כרטיס ה-hero לפני הרצת הביקורת. אותו מק"ט, אותות ביקוש זהים, 74.06 דולר מול 93.47 דולר, פער של 26.2% על פני ממוצעי קבוצות של כ-3,000 החלטות סינתטיות כל אחת.

מה שהטריד אותי הוא שלא כתבתי שום דבר שניתן לכנותו כלל מפלה. כתבתי ממקסם הכנסות וסיפקתי לו אותות המנבאים נכונות לשלם. מיקוד מנבא הכנסה, הכנסה מנבאת רגישות למחיר, ו-Android ישן מנבא פחות השוואת מחירים. אף אחד מאלה אינו גזע. כולם נעים יחד איתו, ו-bandit שמתוגמל על הכנסות יזהה כל אחד ואחד מהם. ה-26% הוא המראה האמיתי של אופטימיזציית הכנסות כאשר האותות נושאים בתוכם את המאפיין הדמוגרפי.

הפרוקסי שמסתתר בין שני קלטים נקיים

תכננתי את הביקורת להעריך כל קלט בשלוש דרכים, כי בכל מבחן בודד שחשבתי עליו הייתה פרצה: מתאם פירסון לינארי מוחלט מול הקבוצה המוגנת (תווית שהביקורת עצמה לעולם אינה מקבלת), מידע הדדי מנורמל (NMI), והרצה נגדית (counterfactual replay). ההרצה הנגדית מחליפה את אותו קלט בודד עבור הקבוצה המוגנת בערך הייחוס של הקבוצה המועדפת, משאירה את כל שאר הקלטים קבועים, מריצה מחדש את מדיניות המנוע, ומודדת בכמה השתנה המחיר של הקבוצה המוגנת. ההרצה הנגדית אינה תלויה במודל: היא משנה את הקלט ובוחנת את הפלט, כך שלא משנה לה אם המנוע הוא bandit, עץ החלטה או קופסה שחורה של לקוח.

שתי השורות הראשונות בטבלת ביקורת הקלטים הן מה שכל אחד היה חוזה. מדד הכנסה לפי מיקוד: |r| של 0.95, MI של 1.00, השפעה נגדית של +7.8%, VIOLATION. הגיאוגרפיה מקודדת לחלוטין את הקבוצה המוגנת באוכלוסייה זו והמנוע מתמחר לפיה. רמת מכשיר: 0.32, 0.08, +2.9%, VIOLATION, אות ניטרלי לכאורה שעובר את סף המתאם של 0.30 ואת סף ה-MI של 0.05 שהגדרתי כגבולות בקוד.

ההפרה השלישית, VIOLATION, היא זו שביקורת של מאפיין בודד אינה מסוגלת לראות. מקור הפניה בפני עצמו: |r| של 0.00, MI של 0.00, PASS. זמן שהייה בפני עצמו: 0.17, 0.03, PASS. ביקורת של מאפיין בודד מאשרת את שניהם וממשיכה הלאה. שורת האינטראקציה, הפניה × זמן שהייה, מציגה |r| של 0.00, מידע הדדי משותף של 0.73, השפעה נגדית של +1.7%, VIOLATION. זהו רווח אינטראקציה של 0.71 מעל הרכיב הבודד הטוב ביותר.

תיבת דו-שיח של תוצאות ביקורת Equity, ביקורת קלטים: אילו מאפיינים הם משתני פרוקסי דמוגרפיים? מדד הכנסה לפי מיקוד 0.95, 1.00, +7.8%, VIOLATION; רמת מכשיר 0.32, 0.08, +2.9%, VIOLATION; שורת אינטראקציה הפניה × זמן שהייה 0.00, 0.73, +1.7%, VIOLATION; חבר פרימיום 0.24, 0.04, ABSTAIN; הפניה, זמן שהייה, גודל עגלה, תדירות רכישות חוזרות, מספר ביקורים ושעה כולם PASS.
טבלת ביקורת הקלטים כשהסמן על שורת האינטראקציה. מקור הפניה וזמן שהייה עוברים כל אחד בנפרד; יחד, המידע ההדדי המשותף שלהם עם הקבוצה המוגנת מגיע ל-0.73.

הטמעתי את המבנה הזה בשיטת XOR. הפניה אורגנית עם זמן שהייה ממושך מסמנת את הקבוצה המוגנת. הפניה מאתר השוואה עם זמן שהייה קצר מסמנת אותה גם כן. הפניה אורגנית עם שהייה קצרה והשוואה עם שהייה ממושכת מסמנות את הקבוצה המועדפת. לא אופן הגעת הקונה ולא משך שהייתו מפרידים לבדם בין הקבוצות; הצמד עושה זאת. מתאם הוא כלי חד-ממדי ואינו מסוגל לראות זאת. מידע הדדי על הצמד מסוגל. תוכנית ציות שמבצעת ביקורת על קלטים אחד-אחד בודקת את הדבר הלא נכון, ולא מצאתי דרך להוכיח זאת מבלי לבנות אוכלוסייה שבה התשובה הבודדת שגויה בוודאות.

ההגנה שהייתי מציג בעצמי בעבר

הרצתי את ההגנה שבעבר הייתי מציג בעצמי לרגולטור, שהיא הוגנות מתוך אי-מודעות (fairness through unawareness): הסרת קלטי המיקוד והמכשיר, אימון מחדש של המנוע, ודיווח על התוצאה. ידעתי שהפרוקסי המורכב נמצא שם בפנים. מה שלא ידעתי הוא כמה מתוך ה-0.43 נבע מהמיקוד והמכשיר לבדם, וכמה נבע מהצמד שהחבאתי. הסרת המיקוד והמכשיר ואימון מחדש העבירו את יחס ארבע החמישיות מ-0.43 ל-0.59. עדיין כישלון, והפער הנותר הוא החלק ששורד כל בדיקה של מאפיין בודד. כרטיס המדד מסביר את הסיבה בארבע מילים: Compound Proxy Still Leaks.

תיבת דו-שיח של תוצאות מדד Equity, מדד אימות: קבוצת הערכה מתויגת. דיוק (precision) של 100%, כיסוי (recall) של 100%, 0 אותות לגיטימיים שסומנו בטעות, 1/1 אותות דו-שימושיים שנמנעו בצדק. קו בסיס: הוגנות מתוך אי-מודעות, הסרת קלטי מיקוד ומכשיר, יחס ארבע חמישיות של 0.59, Fails, סיבה Compound Proxy Still Leaks. אילוץ הוגנות של Equity עומד על 0.82, Pass, עלות הכנסות של -1.3%, וקו בסיס של תקרת מחיר קשיחה 0.59, Fails.
המדד המתויג על אותה קבוצה סינתטית. הסרת מיקוד ומכשיר מעבירה את היחס מ-0.43 ל-0.59 והוא עדיין נכשל; הביקורת איתרה 3 מתוך 3 משתני פרוקסי מוטמנים עם 0 התראות שווא.

התוצאה הזו שינתה את האופן שבו אני שומע את המשפט. המנוע מצא את הקבוצה בכל מקרה, באמצעות שני אותות שעוברים כל בדיקה של מאפיין בודד, והוא ימשיך למצוא אותה, כי מציאתה היא בדיוק מה שממקסם הכנסות מתוגמל עליו. קו הבסיס של אי-מודעות אינו עולה לצוות דבר כדי לומר אותו, אך הוא מעניק להם מספר שייאלצו להסביר מאוחר יותר בבית המשפט.

ל-100% בכרטיס ההוא יש משמעות צרה ומדויקת. המדד בונה מחדש את אותה אוכלוסיית seed-42 ומדרג את הביקורת מול התוויות שהטמעתי, כך שדיוק וכיסוי של 100% פירושם 3 מתוך 3 משתני פרוקסי מוטמנים אותרו עם 0 התראות שווא על אותה קבוצה סינתטית מתויגת. זוהי בדיקה עצמית מול אמת מוחלטת ידועה מראש, ולא הייתי מצטט אותה כשיעור דיוק ביומני תמחור אמיתיים של חברה כלשהי, שבהם משתנים מתערבבים בדרכים שאינני יכול להטמין מלאכותית.

מה המשמעות של 0.43, ומדוע לא נתתי למודל להכריע לגביו

סירבתי להמציא מדד הוגנות פנימי משלי, משום שמספר שהמצאתי בעצמי הוא מספר שלרגולטור אין שום סיבה לכבד. השער ב-Equity הוא תקן משפטי חיצוני: כלל ארבע החמישיות של ה-EEOC, לפי 29 CFR 1607.4(D), שהותאם משיעורי קבלה לרמות מחיר. רמה מועדפת פירושה לא להיות ברמת המחיר הגבוהה ביותר. במנוע המקורי כפי שנמסר, 36% מהקבוצה המוגנת מקבלים את רמת המחיר המועדפת לעומת 83% מהקבוצה המועדפת. חלוקה של 0.36 ב-0.83 נותנת 0.43, הסף הנדרש הוא 0.80, והחוגה אדומה ומציגה Fail. לצידה: 64% מהקבוצה המוגנת ברמת המחיר הגבוהה ביותר, ותוספת מחיר ממוצעת של +15.6% לעומת הקבוצה המועדפת.

תיבת דו-שיח של תוצאות ביקורת Equity בגלילה לשער ההשפעה השונה: כלל ארבע החמישיות של EEOC. חוגה אדומה מציגה 0.43, יחס ארבע חמישיות (סף 0.80), Fail; אריחים מציגים 36% מהקבוצה המוגנת מקבלים את רמת המחיר המועדפת, 83% מהקבוצה המועדפת מקבלים את רמת המחיר המועדפת, 64% מהקבוצה המוגנת ברמת המחיר הגבוהה ביותר, +15.6% תוספת מחיר ממוצעת: מוגנת לעומת מועדפת. מעליהם, הערות בודק המאפיינים והטוען היריב.
השער. 36% מהקבוצה המוגנת ברמה המועדפת לעומת 83% מהקבוצה המועדפת נותן 0.43, מתחת לקו של 0.80, ולכן החוגה אדומה. הערת הטוען היריב מעליה מציגה את טיעון הנאמנות המסחרית עבור קלט ה-Premium Member שנמנע.

לוגיקת ההכרעה פועלת ב-NumPy טהור, מחוץ לשכבת הסוכנים, בסדר קבוע שאני יכול להקריא לכל עורך דין. האות הדו-שימושי נבדק לפני בדיקת ההפרה: Premium Member מתואם ב-0.24 עם הקבוצה המוגנת והוא גם אות נאמנות מסחרית לגיטימי, ולכן הקוד מחזיר ABSTAIN ומנתב אותו לבחינה משפטית במקום לסמנו כהפרה או לזכותו שרירותית, ושום תהליך בהמשך אינו רשאי לשדרגו להפרה. לאחר מכן נבדקים ספי ההפרה, טווח ההימנעות, ו-PASS. גודל עגלה, תדירות רכישות, ביקורים ושעה כולם עוברים בהצלחה. הביקורת אינה מסמנת הכל ללא אבחנה, וביקורת שמוצאת פגם בכל דבר חסרת תועלת מול דרישת חקירה אזרחית (CID) בדיוק כמו ביקורת שאינה מגלה דבר.

הסוכנים בצוות (בודק המאפיינים והטוען היריב) כותבים טקסט ניתוחי; התפקיד השלישי, הממפה הרגולטורי, הוא טבלת בדיקה קבועה בגרסה זו ולא מודל. תפקידו של הטוען היריב הוא להגן על יתרונות נאמנות הלקוחות עבור הקלט שנמנע במלוא המרץ, והוא עושה זאת על המסך. אך אין ביכולתו לשנות את ה-0.24, להזיז פסק דין, או להחליט אם 0.43 נמוך מ-0.80. קבעתי את ההפרדה הזו מלכתחילה: סוכנים מייעצים, קוד מכריע, והמודל חופשי להיות משכנע ככל שירצה לגבי מספר שאסור לו לגעת בו.

התיקון שקיוויתי שיעבוד

התיקון הראשון שניסיתי היה תקרת מחיר, כי זהו הפתרון האוטומטי שכל צוות תמחור פונה אליו: לעולם אל תתמחר יותר מ-15% מעל מחיר הייחוס ההוגן. בניתי אותו כקו בסיס Hard-Cap Baseline מתוך ציפייה שיהיה הפתרון השקט והמספק. אך הוא עלה 0.2% מההכנסות ונכשל בשער עם 0.59. חתימת המניפולציה על הכרטיס מסבירה מדוע: 29% מהקבוצה המוגנת תומחרו בטווח של 1% מתחת לתקרה. פסק הדין קובע Gamed To The Boundary. התקרה זולה בדיוק מפני שהמנוע תמחר מחדש את הקבוצה המושפעת ממש מתחתיה – ופתרון זול וכושל הוא השילוב שנראה מושך בישיבות תקציב אך מתפרק בחקירה משפטית.

מנוע שממקסם הכנסות מתייחס לתקרה כאל יעד שיש להגיע אליו.
תיבת דו-שיח של תוצאות תיקון ב-Equity, אילוץ הוגנות: מגילוי ועד תיקון. ארבע חמישיות לפני תיקון 0.43, Fail, מנוע מקורי; ארבע חמישיות לאחר תיקון 0.82, Pass, עלות הכנסות -1.3%. עיצוב תגמול מודע להוגנות (Fairness-Aware Reward Shaping), בקרה מומלצת: 0.82 Pass, עלות הכנסות -1.3%, חתימת מניפולציה 2%, משקל משיכה 0.65. קו בסיס תקרת מחיר קשיחה (115% ממחיר הוגן): 0.59 Fail, עלות הכנסות -0.2%, חתימת מניפולציה 29% בתקרה, פסק דין Gamed To The Boundary.
שני תיקונים זה לצד זה. עיצוב תגמול עובר עם 0.82 בעלות של 1.3% מההכנסות וחתימת מניפולציה של 2%; בעוד שתקרת ה-115% הקשיחה עולה 0.2%, נכשלת עם 0.59, ודוחסת 29% מהקבוצה המוגנת לקצה התקרה.

הבקרה שהחזיקה מעמד היא עיצוב תגמול מודע להוגנות (Fairness-Aware Reward Shaping). במקום גבול קשיח, היא מושכת כל מחיר באופן רציף לעבר מחיר ייחוס נטול משתני פרוקסי – bandit שני שאומן ללא קלטי הפרוקסי ועם האותות הלגיטימיים – ומבצעת חיפוש בינארי למציאת משקל המשיכה המינימלי שעובר את 0.80. במנוע זה המשקל היה 0.65; צעד אחד נמוך יותר, ב-0.625, הגיע רק ל-0.778. יחס ארבע החמישיות לאחר מכן: 0.82, Pass. עלות הכנסות: 1.3%. חתימת מניפולציה 2%, משום שאין קצה שניתן לנצל. האותיות הקטנות בלוח הבקרה מבהירות שהשפעת ההכנסות ספציפית למנוע סינתטי זה, ואומר זאת בבירור: 1.3% הוא מדידה על אוכלוסיית בדיקה מסוימת, ולא אציג זאת כמחיר אוניברסלי ומוחלט של הוגנות.

המטרה האמיתית של חבילת הראיות

בניתי את חבילת הראיות אחרונה, משום שכל מה שקדם לה חסר ערך אלא אם עורך דין יכול להגיש זאת לבית המשפט. כאשר מגיעה דרישת חקירה אזרחית (CID), חברה שלא תיעדה את הנתונים הנכונים מבלה חודשים בחילוץ נתונים פורנזי. Equity חותמת את מה שהביקורת הפיקה לתוך חבילת JSON עם גרסת HTML הניתנת להדפסה: שם המנוע וגרסתו, 10,000 ההחלטות שבוקרו, שער האימות, הפער המייצג, הממצאים והנימוקים לכל קלט, תוצאת התיקון, וסיכום SHA-256 של גוף החבילה כהוכחה לחסינות מפני שינויים. כל VIOLATION מקושרת לחמישה משטרי חקיקה: כלל ארבע החמישיות של EEOC, חוק גילוי תמחור אלגוריתמי של ניו יורק (בתוקף מ-10 בנובמבר 2025, קנס אזרחי של עד 1,000 דולר לכל הפרה), חוק ה-AI של קולורדו (SB 24-205, בתוקף מ-30 ביוני 2026), סעיפים 13 ו-14 של חוק ה-AI האירופי (חובות לסיכון גבוה מ-2 באוגוסט 2026), וסעיף 5 לחוק ה-FTC. הקלט שנמנע מקושר לשורת בדיקה משפטית פרטנית.

המיפוי הרגולטורי הוא טבלה סטטית. קל היה לתת למודל לכתוב אותה, אך החלטתי נגד זאת: כל VIOLATION מקבלת תמיד את אותן חמש שורות חוק, ההימנעות מקבלת שורת בדיקה, ואף מילת פרוזה אינה מיוצרת עבור המיפוי. מודל שמסיק איזה חוק חל ישנה את הסבריו בגרסה הבאה – וחבילה שהאפיון המשפטי שלה משתנה עם המודל תתפרק בפני מומחה של הרגולטור. התיאור המילולי בחבילה נכתב על ידי המודל ונשמר במטמון; המספרים, פסקי הדין והמיפוי המשפטי נובעים מקוד דטרמיניסטי. החבילה נותרת כשירה להגשה משפטית ללא קשר לזהות המודל שנמצא מתחתיה. הסקירה המלאה, עם המחשה של החבילה על המסך, זמינה בכתובת veriprajna.com/demos/ai-pricing-compliance.

חברת Veriprajna אינה קובעת מחירים, אינה מחליפה את Pricefx, PROS, Zilliant או Competera, ואינה מנפיקה פסקי דין משפטיים. מנוע הלקוח ממשיך לתמחר; אני מספק את הראיות האובייקטיביות, והצוות המשפטי שלהם מקבל את ההחלטה הסופית.

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

אני תמיד חוזר למשפט של צוות התמחור, כי הוא נכון עובדתית: גזע והכנסה אינם במודל. אך במנוע שבניתי, המשפט הכן הזה ניצב לצד פער מחירים של 26% על אותן אוזניות בדיוק, שער שעומד על 0.43, ותקרת מחיר שנכשלה בעודה נראית כאילו פעלה. איש לא גילה למנוע מיהו הקונה. תגמול הכנסות היה די והותר, כי ניחוש זהות הקונה היה ההערכה הרווחית ביותר האפשרית – והביקורת מדדה בדיוק עד כמה רחוק הניחוש הזה הגיע. המשפט שמחזיק מעמד בבית המשפט תובעני בהרבה: ידענו שהמנוע מסוגל למצוא את הקבוצה הדמוגרפית ללא הכוונה, מדדנו עד כמה רחוק הוא הגיע, וזה מה שעלה לנו לעצור אותו.

מחקר קשור

פורסם גם ב

בנו את ה-AI שלכם בביטחון.

שותפו עם צוות בעל ניסיון עמוק בבניית הדור הבא של AI ארגוני. אנו נסייע לכם לתכנן, לבנות ולהטמיע אסטרטגיית AI שתוכלו לסמוך עליה.

Veriprajna ייעוץ דיפ-טק מתמחה בבניית מערכות AI קריטיות לבטיחות עבור תחומי הבריאות, הפיננסים והרגולציה. הארכיטקטורות שלנו מאומתות מול פרוטוקולים מבוססים ומלוות בתיעוד ציות מקיף.