เราปรับปรุงคุณภาพคำแนะนำในการขายปลีกออฟไลน์ได้อย่างมากอย่างไร

สวัสดีทุกคน! ฉันชื่อ Sasha เป็น CTO และผู้ร่วมก่อตั้ง LoyaltyLab เมื่อสองปีก่อน ฉันและเพื่อนก็เหมือนกับนักเรียนที่ยากจนทุกคนไปซื้อเบียร์ในร้านค้าใกล้บ้านเราในตอนเย็น เราเสียใจมากที่ผู้ค้าปลีกรู้ว่าเราจะมาเพื่อดื่มเบียร์ จึงไม่เสนอส่วนลดสำหรับมันฝรั่งทอดหรือแคร็กเกอร์ แม้ว่านี่จะสมเหตุสมผลก็ตาม! เราไม่เข้าใจว่าทำไมสถานการณ์นี้จึงเกิดขึ้นและตัดสินใจก่อตั้งบริษัทของเราเอง เป็นโบนัส ให้ส่วนลดตัวเองทุกวันศุกร์สำหรับชิปเดียวกันนั้น

เราปรับปรุงคุณภาพคำแนะนำในการขายปลีกออฟไลน์ได้อย่างมากอย่างไร

และทั้งหมดนี้ก็มาถึงจุดที่ฉันกำลังนำเสนอเนื้อหาด้านเทคนิคของผลิตภัณฑ์ NVIDIA GTC. เรายินดีที่จะแบ่งปันงานของเรากับชุมชน ดังนั้นฉันจึงเผยแพร่รายงานของฉันในรูปแบบของบทความ

การแนะนำ

เช่นเดียวกับคนอื่นๆ ในช่วงเริ่มต้นของการเดินทาง เราเริ่มต้นด้วยภาพรวมของวิธีการสร้างระบบผู้แนะนำ และสถาปัตยกรรมที่ได้รับความนิยมมากที่สุดก็กลายเป็นประเภทต่อไปนี้:
เราปรับปรุงคุณภาพคำแนะนำในการขายปลีกออฟไลน์ได้อย่างมากอย่างไร

ประกอบด้วยสองส่วน:

  1. การสุ่มตัวอย่างผู้สมัครเพื่อรับคำแนะนำโดยใช้แบบจำลองที่ง่ายและรวดเร็ว ซึ่งโดยปกติจะเป็นแบบจำลองการทำงานร่วมกัน
  2. การจัดอันดับผู้สมัครที่มีโมเดลเนื้อหาที่ซับซ้อนและช้ากว่า โดยคำนึงถึงคุณลักษณะที่เป็นไปได้ทั้งหมดในข้อมูล

ต่อไปนี้ฉันจะใช้คำต่อไปนี้:

  • ผู้สมัคร / ผู้สมัครเพื่อขอคำแนะนำ — คู่ผู้ใช้-ผลิตภัณฑ์ที่อาจรวมอยู่ในคำแนะนำในการผลิต
  • วิธีการสกัดผู้สมัคร/ผู้สกัด/วิธีการสกัดผู้สมัคร — กระบวนการหรือวิธีการแยก “ผู้สมัครที่ได้รับคำแนะนำ” ออกจากข้อมูลที่มีอยู่

ขั้นตอนแรกมักจะเกี่ยวข้องกับการใช้การกรองร่วมกันรูปแบบต่างๆ ที่นิยมมากที่สุด - ALS. เป็นเรื่องที่น่าแปลกใจที่บทความส่วนใหญ่เกี่ยวกับระบบผู้แนะนำจะเปิดเผยเฉพาะการปรับปรุงต่างๆ ของโมเดลการทำงานร่วมกันในระยะแรกเท่านั้น แต่ไม่มีใครพูดถึงวิธีการสุ่มตัวอย่างอื่นๆ มากนัก สำหรับเรา วิธีการใช้เฉพาะโมเดลการทำงานร่วมกันและการเพิ่มประสิทธิภาพต่างๆ ไม่ได้ผลกับคุณภาพที่เราคาดหวัง ดังนั้นเราจึงเจาะลึกการวิจัยในส่วนนี้โดยเฉพาะ และในตอนท้ายของบทความ ฉันจะแสดงให้เห็นว่าเราสามารถปรับปรุง ALS ซึ่งเป็นพื้นฐานของเราได้มากเพียงใด

ก่อนที่ฉันจะอธิบายแนวทางของเราต่อไป สิ่งสำคัญคือต้องทราบว่าในคำแนะนำแบบเรียลไทม์ เมื่อเป็นสิ่งสำคัญที่เราต้องคำนึงถึงข้อมูลที่เกิดขึ้นเมื่อ 30 นาทีที่แล้ว มีแนวทางไม่มากนักที่สามารถทำงานได้ในเวลาที่กำหนด แต่ในกรณีของเรา เราต้องรวบรวมคำแนะนำไม่เกินวันละครั้ง และในกรณีส่วนใหญ่ สัปดาห์ละครั้ง ซึ่งทำให้เราใช้แบบจำลองที่ซับซ้อนและปรับปรุงคุณภาพได้หลายเท่า

เรามาใช้เป็นพื้นฐานว่าเมตริกใดที่ ALS เท่านั้นแสดงในงานคัดแยกผู้สมัคร ตัวชี้วัดหลักที่เราตรวจสอบคือ:

  • ความแม่นยำ - สัดส่วนของผู้สมัครที่เลือกอย่างถูกต้องจากกลุ่มตัวอย่าง
  • การเรียกคืนคือสัดส่วนของผู้สมัครที่เกิดขึ้นจากสัดส่วนที่อยู่ในช่วงเป้าหมายจริงๆ
  • F1-score - การวัด F คำนวณจากสองจุดก่อนหน้า

นอกจากนี้เรายังจะดูตัวชี้วัดของโมเดลสุดท้ายหลังจากการฝึกการไล่ระดับสีด้วยคุณสมบัติเนื้อหาเพิ่มเติม นอกจากนี้ยังมี 3 ตัวชี้วัดหลักที่นี่:

  • precision@5 - เปอร์เซ็นต์เฉลี่ยของผลิตภัณฑ์จาก 5 อันดับแรกในแง่ของความน่าจะเป็นสำหรับผู้ซื้อแต่ละราย
  • response-rate@5 - การแปลงลูกค้าจากการเยี่ยมชมร้านค้าเป็นการซื้อข้อเสนอส่วนตัวอย่างน้อยหนึ่งรายการ (ผลิตภัณฑ์ 5 รายการในข้อเสนอเดียว)
  • เฉลี่ย roc-auc ต่อผู้ใช้ - เฉลี่ย roc-auc สำหรับผู้ซื้อแต่ละราย

สิ่งสำคัญคือต้องทราบว่าการวัดทั้งหมดเหล่านี้มีการวัดผล การตรวจสอบข้ามอนุกรมเวลากล่าวคือ การฝึกเกิดขึ้นใน k สัปดาห์แรก และใช้ k+1 สัปดาห์เป็นข้อมูลทดสอบ ดังนั้นการเปลี่ยนแปลงตามฤดูกาลจึงมีผลกระทบน้อยที่สุดต่อการตีความคุณภาพของโมเดล นอกจากนี้ บนกราฟทั้งหมด แกน Abscissa จะระบุหมายเลขสัปดาห์ในการตรวจสอบข้าม และแกนพิกัดจะระบุค่าของหน่วยเมตริกที่ระบุ กราฟทั้งหมดอิงตามข้อมูลธุรกรรมจากลูกค้ารายหนึ่ง ดังนั้นการเปรียบเทียบระหว่างกันจึงมีความถูกต้อง

ก่อนที่เราจะอธิบายแนวทางของเรา ก่อนอื่นเราจะดูที่พื้นฐาน ซึ่งเป็นโมเดลที่ได้รับการฝึกอบรม ALS
ตัวชี้วัดการรับผู้สมัคร:
เราปรับปรุงคุณภาพคำแนะนำในการขายปลีกออฟไลน์ได้อย่างมากอย่างไร

ตัวชี้วัดสุดท้าย:
เราปรับปรุงคุณภาพคำแนะนำในการขายปลีกออฟไลน์ได้อย่างมากอย่างไร

ฉันถือว่าการใช้งานอัลกอริธึมทั้งหมดเป็นเพียงสมมติฐานทางธุรกิจบางประเภท ดังนั้น โดยคร่าวๆ แล้ว โมเดลการทำงานร่วมกันใดๆ ก็ตามถือได้ว่าเป็นสมมติฐานที่ว่า "ผู้คนมักจะซื้อในสิ่งที่คนที่คล้ายกับพวกเขาซื้อ" ดังที่ฉันได้กล่าวไปแล้ว เราไม่ได้จำกัดตัวเองอยู่แค่ความหมายดังกล่าว และนี่คือสมมติฐานบางส่วนที่ทำงานได้ดีกับข้อมูลในการขายปลีกแบบออฟไลน์:

  1. ซึ่งผมเคยซื้อมาแล้ว
  2. คล้ายกับสิ่งที่ฉันซื้อมาก่อน
  3. ระยะเวลาการซื้อที่ผ่านมานาน
  4. ยอดนิยมตามหมวดหมู่/แบรนด์
  5. การซื้อสินค้าที่แตกต่างกันสลับกันในแต่ละสัปดาห์ (เครือ Markov)
  6. ผลิตภัณฑ์ที่คล้ายกับผู้ซื้อ ตามคุณลักษณะที่สร้างโดยรุ่นต่างๆ (Word2Vec, DSSM ฯลฯ)

ก่อนหน้านี้คุณซื้ออะไรมาบ้าง?

ฮิวริสติกที่ชัดเจนที่สุดซึ่งใช้ได้ผลดีมากในการขายปลีกของชำ ที่นี่เราจะนำสินค้าทั้งหมดที่ผู้ถือบัตรสะสมคะแนนซื้อในช่วง K วันที่ผ่านมา (ปกติคือ 1-3 สัปดาห์) หรือ K วันเมื่อปีที่แล้ว เมื่อใช้วิธีนี้เท่านั้น เราได้รับหน่วยวัดต่อไปนี้:
เราปรับปรุงคุณภาพคำแนะนำในการขายปลีกออฟไลน์ได้อย่างมากอย่างไร

เห็นได้ชัดว่ายิ่งเราใช้เวลานานเท่าใด เราก็จะจำได้มากขึ้นและความแม่นยำก็น้อยลงและในทางกลับกัน โดยเฉลี่ยแล้ว “2 สัปดาห์ที่ผ่านมา” จะให้ผลลัพธ์ที่ดีกว่าแก่ลูกค้า

คล้ายกับสิ่งที่ฉันซื้อมาก่อน

ไม่น่าแปลกใจเลยที่การขายปลีกสินค้าอุปโภคบริโภค "สิ่งที่ฉันซื้อก่อนหน้านี้" จะทำงานได้ดี แต่การแยกผู้สมัครออกจากสิ่งที่ผู้ใช้ซื้อไปแล้วนั้นไม่เจ๋งนัก เนื่องจากไม่น่าจะทำให้ผู้ซื้อประหลาดใจด้วยผลิตภัณฑ์ใหม่ ดังนั้นเราจึงเสนอให้ปรับปรุงฮิวริสติกนี้เล็กน้อยโดยใช้โมเดลการทำงานร่วมกันแบบเดียวกัน จากเวกเตอร์ที่เราได้รับระหว่างการฝึกอบรม ALS เราสามารถรับผลิตภัณฑ์ที่คล้ายกับที่ผู้ใช้ซื้อไปแล้ว แนวคิดนี้คล้ายกับ “วิดีโอที่คล้ายกัน” มากในบริการสำหรับการดูเนื้อหาวิดีโอ แต่เนื่องจากเราไม่รู้ว่าผู้ใช้กิน/ซื้ออะไรในช่วงเวลาใดเวลาหนึ่ง เราจึงสามารถมองหาได้เฉพาะสิ่งที่คล้ายกับสิ่งที่เขาซื้อไปแล้วโดยเฉพาะ เนื่องจากเรารู้อยู่แล้วว่ามันใช้งานได้ดีแค่ไหน เมื่อใช้วิธีนี้กับธุรกรรมของผู้ใช้ในช่วง 2 สัปดาห์ที่ผ่านมา เราได้รับเมตริกต่อไปนี้
เราปรับปรุงคุณภาพคำแนะนำในการขายปลีกออฟไลน์ได้อย่างมากอย่างไร

ที่นี่ k — จำนวนผลิตภัณฑ์ที่คล้ายกันซึ่งดึงมาสำหรับผลิตภัณฑ์แต่ละรายการที่ผู้ซื้อซื้อในช่วง 14 วันที่ผ่านมา
แนวทางนี้ใช้ได้ผลดีเป็นพิเศษกับลูกค้าของเรา ซึ่งเป็นสิ่งสำคัญที่จะไม่แนะนำสิ่งใดก็ตามที่มีอยู่ในประวัติการซื้อของผู้ใช้อยู่แล้ว

ระยะเวลาการซื้อล่าช้า

ดังที่เราได้ทราบไปแล้ว เนื่องจากความถี่ในการซื้อสินค้าสูง วิธีแรกจึงใช้ได้ดีกับความต้องการเฉพาะของเรา แต่สินค้าอย่างผงซักฟอก/แชมพู/อื่นๆล่ะ นั่นคือด้วยผลิตภัณฑ์ที่ไม่น่าจะจำเป็นทุกๆ สัปดาห์หรือสองสัปดาห์ และวิธีการก่อนหน้านี้ไม่สามารถสกัดออกมาได้ สิ่งนี้นำไปสู่แนวคิดต่อไปนี้ - เสนอให้คำนวณระยะเวลาการซื้อของผลิตภัณฑ์แต่ละรายการโดยเฉลี่ยสำหรับลูกค้าที่ซื้อสินค้ามากกว่า k ครั้งหนึ่ง. จากนั้นแยกสิ่งที่ผู้ซื้อน่าจะหมดไปแล้ว คุณสามารถตรวจสอบระยะเวลาที่คำนวณสำหรับสินค้าด้วยตาของคุณเพื่อความเพียงพอ:
เราปรับปรุงคุณภาพคำแนะนำในการขายปลีกออฟไลน์ได้อย่างมากอย่างไร

จากนั้นเราจะดูว่าการสิ้นสุดระยะเวลาผลิตภัณฑ์อยู่ภายในช่วงเวลาที่คำแนะนำจะอยู่ในขั้นตอนการผลิตหรือไม่ และสุ่มตัวอย่างสิ่งที่เกิดขึ้น วิธีการนี้สามารถอธิบายได้ดังนี้:
เราปรับปรุงคุณภาพคำแนะนำในการขายปลีกออฟไลน์ได้อย่างมากอย่างไร

ที่นี่เรามี 2 กรณีหลักที่สามารถพิจารณาได้:

  1. จำเป็นต้องสุ่มตัวอย่างสินค้าจากลูกค้าที่ซื้อสินค้าน้อยกว่า K เท่าหรือไม่
  2. จำเป็นต้องสุ่มตัวอย่างผลิตภัณฑ์หรือไม่ หากสิ้นสุดระยะเวลาก่อนถึงจุดเริ่มต้นของช่วงเป้าหมาย

กราฟต่อไปนี้แสดงผลลัพธ์ที่วิธีนี้ได้รับจากไฮเปอร์พารามิเตอร์ต่างๆ
เราปรับปรุงคุณภาพคำแนะนำในการขายปลีกออฟไลน์ได้อย่างมากอย่างไร
ft — รับเฉพาะลูกค้าที่ซื้อสินค้าอย่างน้อย K (ในที่นี้คือ K=5) ครั้ง
tm — รับเฉพาะผู้สมัครที่อยู่ภายในช่วงเป้าหมายเท่านั้น

ไม่น่าแปลกใจที่เขาสามารถทำได้ (0, 0) ที่ใหญ่ที่สุด จำ และเล็กที่สุด ความแม่นยำเนื่องจากภายใต้เงื่อนไขนี้ ระบบจะดึงข้อมูลผู้สมัครมากที่สุด อย่างไรก็ตาม ผลลัพธ์ที่ดีที่สุดจะเกิดขึ้นได้เมื่อเราไม่สุ่มตัวอย่างผลิตภัณฑ์ให้กับลูกค้าที่ซื้อผลิตภัณฑ์ใดผลิตภัณฑ์หนึ่งน้อยกว่า k ครั้งและแยกออกรวมถึงสินค้าซึ่งสิ้นสุดระยะเวลานั้นอยู่ก่อนช่วงเป้าหมาย

ยอดนิยมตามหมวดหมู่

แนวคิดที่ค่อนข้างชัดเจนอีกประการหนึ่งคือการสุ่มตัวอย่างผลิตภัณฑ์ยอดนิยมจากหมวดหมู่หรือแบรนด์ต่างๆ ที่นี่เราคำนวณสำหรับผู้ซื้อแต่ละราย ท็อป-เค หมวดหมู่/แบรนด์ "ชื่นชอบ" และแยก "ยอดนิยม" ออกจากหมวดหมู่/แบรนด์นี้ ในกรณีของเรา เราจะพิจารณา "รายการโปรด" และ "ยอดนิยม" ตามจำนวนการซื้อผลิตภัณฑ์ ข้อได้เปรียบเพิ่มเติมของแนวทางนี้คือการนำไปประยุกต์ใช้ในกรณีสตาร์ทเย็น นั่นคือสำหรับลูกค้าที่ซื้อสินค้าเพียงเล็กน้อยหรือไม่ได้ไปที่ร้านเป็นเวลานานหรือเพิ่งออกบัตรสะสมคะแนน สำหรับพวกเขา การสต็อกสินค้ายอดนิยมจากลูกค้าและมีประวัติจะง่ายกว่าและดีกว่า ตัวชี้วัดผลลัพธ์คือ:
เราปรับปรุงคุณภาพคำแนะนำในการขายปลีกออฟไลน์ได้อย่างมากอย่างไร
ตัวเลขที่อยู่หลังคำว่า "หมวดหมู่" ในที่นี้หมายถึงระดับการซ้อนของหมวดหมู่

โดยรวมแล้ว ก็ไม่น่าแปลกใจที่หมวดหมู่ที่แคบกว่าจะให้ผลลัพธ์ที่ดีกว่า เนื่องจากหมวดหมู่ที่แคบกว่าจะดึงสินค้าที่ "ชื่นชอบ" ออกมาได้แม่นยำยิ่งขึ้นสำหรับนักช้อป

สลับซื้อสินค้าที่แตกต่างกันในแต่ละสัปดาห์

วิธีการที่น่าสนใจที่ฉันไม่เคยเห็นในบทความเกี่ยวกับระบบผู้แนะนำนั้นค่อนข้างง่ายและในขณะเดียวกันก็ใช้วิธีทางสถิติของ Markov chains ในกรณีนี้เราใช้เวลา 2 สัปดาห์ที่แตกต่างกัน จากนั้นเราจะสร้างผลิตภัณฑ์คู่กันสำหรับลูกค้าแต่ละราย [ซื้อในสัปดาห์ที่ i]-[ซื้อในสัปดาห์ที่ j] โดยที่ j > iและจากที่นี่ เราจะคำนวณความน่าจะเป็นที่จะเปลี่ยนไปใช้ผลิตภัณฑ์อื่นในแต่ละผลิตภัณฑ์ในสัปดาห์หน้า นั่นคือสำหรับสินค้าแต่ละคู่ producti-productj เรานับจำนวนเป็นคู่ที่พบแล้วหารด้วยจำนวนคู่โดยที่ ผลิตภัณฑ์ อยู่ในสัปดาห์แรก เพื่อแยกผู้สมัคร เราจะนำใบเสร็จรับเงินล่าสุดของผู้ซื้อและแยกออกมา ท็อป-เค ผลิตภัณฑ์ถัดไปที่เป็นไปได้มากที่สุดจากเมทริกซ์การเปลี่ยนแปลงที่เราได้รับ กระบวนการสร้างเมทริกซ์การเปลี่ยนแปลงมีลักษณะดังนี้:
เราปรับปรุงคุณภาพคำแนะนำในการขายปลีกออฟไลน์ได้อย่างมากอย่างไร

จากตัวอย่างจริงในเมทริกซ์ความน่าจะเป็นของการเปลี่ยนแปลง เราเห็นปรากฏการณ์ที่น่าสนใจต่อไปนี้:
เราปรับปรุงคุณภาพคำแนะนำในการขายปลีกออฟไลน์ได้อย่างมากอย่างไร
ที่นี่คุณสามารถสังเกตเห็นการพึ่งพาที่น่าสนใจซึ่งเปิดเผยในพฤติกรรมผู้บริโภค ตัวอย่างเช่น ผู้ชื่นชอบผลไม้รสเปรี้ยวหรือนมยี่ห้อหนึ่งที่พวกเขามีแนวโน้มที่จะเปลี่ยนไปใช้อย่างอื่น จึงไม่น่าแปลกใจที่ผลิตภัณฑ์ที่มีความถี่ในการซื้อซ้ำสูง เช่น เนย ก็จะมาจบลงที่นี่เช่นกัน

หน่วยเมตริกในวิธีการที่มีลูกโซ่มาร์คอฟมีดังนี้:
เราปรับปรุงคุณภาพคำแนะนำในการขายปลีกออฟไลน์ได้อย่างมากอย่างไร
k — จำนวนผลิตภัณฑ์ที่ได้รับสำหรับผลิตภัณฑ์ที่ซื้อแต่ละรายการจากธุรกรรมล่าสุดของผู้ซื้อ
ดังที่เราเห็น ผลลัพธ์ที่ดีที่สุดจะแสดงโดยการกำหนดค่าด้วย k=4 การเพิ่มขึ้นอย่างรวดเร็วในสัปดาห์ที่ 4 สามารถอธิบายได้จากพฤติกรรมตามฤดูกาลในช่วงวันหยุด 

สินค้าที่คล้ายกันกับผู้ซื้อตามลักษณะที่สร้างขึ้นตามรุ่นต่างๆ

ตอนนี้เรามาถึงส่วนที่ยากและน่าสนใจที่สุดแล้ว - การค้นหาเพื่อนบ้านที่ใกล้ที่สุดโดยพิจารณาจากเวกเตอร์ของลูกค้าและผลิตภัณฑ์ที่สร้างขึ้นตามรุ่นต่างๆ ในงานของเราเราใช้ 3 รุ่นดังกล่าว:

  • ALS
  • Word2Vec (Item2Vec สำหรับงานดังกล่าว)
  • อสส

เราได้จัดการกับ ALS แล้ว คุณสามารถอ่านเกี่ยวกับวิธีการเรียนรู้ได้ ที่นี่. ในกรณีของ Word2Vec เราใช้การนำโมเดลไปใช้ที่รู้จักกันดี เจนซิม. โดยการเปรียบเทียบกับข้อความ เรากำหนดข้อเสนอเป็นใบเสร็จรับเงินการซื้อ ดังนั้น เมื่อสร้างเวกเตอร์ของผลิตภัณฑ์ แบบจำลองจะเรียนรู้ที่จะคาดการณ์ "บริบท" ของผลิตภัณฑ์ในใบเสร็จรับเงิน (ผลิตภัณฑ์ที่เหลืออยู่ในใบเสร็จรับเงิน) ในข้อมูลอีคอมเมิร์ซ ควรใช้เซสชันของผู้ซื้อแทนใบเสร็จรับเงิน พวกจาก โอโซน. และ DSSM ก็น่าสนใจกว่าในการแยกวิเคราะห์ เริ่มแรกเขียนโดยคนจาก Microsoft เพื่อเป็นต้นแบบในการค้นหา คุณสามารถอ่านรายงานการวิจัยต้นฉบับได้ที่นี่. สถาปัตยกรรมของโมเดลมีลักษณะดังนี้:
เราปรับปรุงคุณภาพคำแนะนำในการขายปลีกออฟไลน์ได้อย่างมากอย่างไร

ที่นี่ Q — ข้อความค้นหา ข้อความค้นหาของผู้ใช้ ด[ฉัน] — เอกสาร, อินเตอร์เน็ตเพจ. ข้อมูลเข้าสู่โมเดลคือคุณลักษณะของคำขอและเพจ ตามลำดับ หลังจากแต่ละเลเยอร์อินพุตแล้ว จะมีเลเยอร์ที่เชื่อมต่อกันอย่างสมบูรณ์จำนวนหนึ่ง (multilayer perceptron) จากนั้น โมเดลจะเรียนรู้ที่จะลดโคไซน์ระหว่างเวกเตอร์ที่ได้รับในเลเยอร์สุดท้ายของโมเดล
งานแนะนำใช้สถาปัตยกรรมเดียวกันทุกประการ แทนที่จะเป็นคำขอเท่านั้นที่มีผู้ใช้ และแทนที่จะเป็นเพจ กลับกลายเป็นผลิตภัณฑ์ และในกรณีของเรา สถาปัตยกรรมนี้จะถูกแปลงเป็นดังต่อไปนี้:
เราปรับปรุงคุณภาพคำแนะนำในการขายปลีกออฟไลน์ได้อย่างมากอย่างไร

ตอนนี้เพื่อตรวจสอบผลลัพธ์ ยังคงต้องครอบคลุมประเด็นสุดท้าย - หากในกรณีของ ALS และ DSSM เราได้กำหนดเวกเตอร์ผู้ใช้ไว้อย่างชัดเจน ในกรณีของ Word2Vec เราจะมีเพียงเวกเตอร์ผลิตภัณฑ์เท่านั้น ในการสร้างเวกเตอร์ผู้ใช้ เราได้กำหนดแนวทางหลักไว้ 3 แนวทาง:

  1. เพียงเพิ่มเวกเตอร์ จากนั้นสำหรับระยะโคไซน์ ปรากฎว่าเราเพียงเฉลี่ยผลิตภัณฑ์ในประวัติการซื้อ
  2. ผลรวมเวกเตอร์พร้อมการถ่วงน้ำหนักด้วยเวลา
  3. การชั่งน้ำหนักสินค้าด้วยค่าสัมประสิทธิ์ TF-IDF

ในกรณีของการถ่วงน้ำหนักเชิงเส้นของเวกเตอร์ผู้ซื้อ เราจะดำเนินการตามสมมติฐานที่ว่าผลิตภัณฑ์ที่ผู้ใช้ซื้อเมื่อวานนี้มีอิทธิพลต่อพฤติกรรมของเขามากกว่าผลิตภัณฑ์ที่เขาซื้อเมื่อหกเดือนที่แล้ว ดังนั้นเราจึงพิจารณาสัปดาห์ก่อนหน้าของผู้ซื้อด้วยอัตราต่อรอง 1 และสิ่งที่เกิดขึ้นต่อไปด้วยอัตราต่อรอง XNUMX/XNUMX, ⅓ ฯลฯ:
เราปรับปรุงคุณภาพคำแนะนำในการขายปลีกออฟไลน์ได้อย่างมากอย่างไร

สำหรับค่าสัมประสิทธิ์ TF-IDF เราทำเช่นเดียวกับใน TF-IDF สำหรับข้อความ เพียงแต่เราถือว่าผู้ซื้อเป็นเอกสาร และเช็คเป็นข้อเสนอ ตามลำดับ คำคือผลิตภัณฑ์ ด้วยวิธีนี้ เวกเตอร์ของผู้ใช้จะเปลี่ยนไปสู่สินค้าหายากมากขึ้น ในขณะที่สินค้าที่ใช้บ่อยและคุ้นเคยสำหรับผู้ซื้อจะไม่เปลี่ยนแปลงมากนัก วิธีการนี้สามารถอธิบายได้ดังนี้:
เราปรับปรุงคุณภาพคำแนะนำในการขายปลีกออฟไลน์ได้อย่างมากอย่างไร

ตอนนี้เรามาดูตัวชี้วัดกัน นี่คือลักษณะของผลลัพธ์ ALS:
เราปรับปรุงคุณภาพคำแนะนำในการขายปลีกออฟไลน์ได้อย่างมากอย่างไร
ตัวชี้วัดสำหรับ Item2Vec ที่มีรูปแบบที่แตกต่างกันของการสร้างเวกเตอร์ของผู้ซื้อ:
เราปรับปรุงคุณภาพคำแนะนำในการขายปลีกออฟไลน์ได้อย่างมากอย่างไร
ในกรณีนี้ จะใช้โมเดลเดียวกันทุกประการกับค่าพื้นฐานของเรา ข้อแตกต่างเพียงอย่างเดียวคือ k ตัวใดที่เราจะใช้ หากต้องการใช้เฉพาะโมเดลการทำงานร่วมกัน คุณต้องนำผลิตภัณฑ์ที่ใกล้เคียงที่สุดประมาณ 50-70 รายการสำหรับลูกค้าแต่ละราย

และหน่วยเมตริกตาม DSSM:
เราปรับปรุงคุณภาพคำแนะนำในการขายปลีกออฟไลน์ได้อย่างมากอย่างไร

จะรวมวิธีการทั้งหมดได้อย่างไร?

เจ๋งเลยคุณพูด แต่จะทำอย่างไรกับชุดเครื่องมือสกัดผู้สมัครจำนวนมากเช่นนี้? จะเลือกการกำหนดค่าที่เหมาะสมที่สุดสำหรับข้อมูลของคุณได้อย่างไร? ที่นี่เรามีปัญหาหลายประการ:

  1. มีความจำเป็นต้องจำกัดพื้นที่การค้นหาสำหรับไฮเปอร์พารามิเตอร์ในแต่ละวิธี แน่นอนว่ามันไม่ต่อเนื่องกันทุกที่ แต่จำนวนคะแนนที่เป็นไปได้นั้นมีมาก
  2. เมื่อใช้ตัวอย่างวิธีการเฉพาะจำนวนจำกัดกับไฮเปอร์พารามิเตอร์เฉพาะ คุณจะเลือกการกำหนดค่าที่ดีที่สุดสำหรับเมตริกของคุณได้อย่างไร

เรายังไม่พบคำตอบที่ถูกต้องสำหรับคำถามแรก ดังนั้นเราจึงดำเนินการดังต่อไปนี้: สำหรับแต่ละวิธี จะมีการเขียนตัวจำกัดพื้นที่การค้นหาไฮเปอร์พารามิเตอร์ ขึ้นอยู่กับสถิติบางอย่างของข้อมูลที่เรามี ดังนั้นเมื่อทราบระยะเวลาเฉลี่ยระหว่างการซื้อจากผู้คน เราก็สามารถเดาได้ว่าจะใช้วิธี "สิ่งที่ซื้อไปแล้ว" และ "ระยะเวลาการซื้อที่ผ่านมานาน" ในช่วงเวลาใด

และหลังจากที่เราพิจารณารูปแบบต่างๆ ของวิธีการต่างๆ ในจำนวนที่เพียงพอแล้ว เราจะสังเกตสิ่งต่อไปนี้: การใช้งานแต่ละครั้งจะแยกตัวเลือกจำนวนหนึ่งและมีค่าเมตริกหลักที่แน่นอนสำหรับเรา (เรียกคืน) เราต้องการได้ผู้สมัครจำนวนหนึ่งทั้งหมด โดยขึ้นอยู่กับพลังการประมวลผลที่อนุญาตของเรา พร้อมด้วยตัวชี้วัดสูงสุดที่เป็นไปได้ ที่นี่ปัญหาพังทลายลงในปัญหากระเป๋าเป้สะพายหลังอย่างสวยงาม
เราปรับปรุงคุณภาพคำแนะนำในการขายปลีกออฟไลน์ได้อย่างมากอย่างไร

ในที่นี้ จำนวนผู้สมัครคือน้ำหนักของแท่งโลหะ และวิธีการเรียกคืนคือมูลค่าของมัน อย่างไรก็ตาม มีอีก 2 ประเด็นที่ควรคำนึงถึงเมื่อใช้อัลกอริทึม:

  • วิธีการอาจมีทับซ้อนกันในผู้สมัครที่พวกเขาดึงข้อมูล
  • ในบางกรณี จะใช้วิธีหนึ่งสองครั้งด้วยพารามิเตอร์ที่แตกต่างกันจะถูกต้อง และผลลัพธ์ที่เป็นตัวเลือกจากวิธีแรกจะไม่ใช่สับเซตของวิธีที่สอง

ตัวอย่างเช่น หากเราใช้วิธี "สิ่งที่ฉันได้ซื้อไปแล้ว" โดยมีช่วงเวลาในการดึงข้อมูลต่างกัน ชุดผู้สมัครก็จะซ้อนกันอยู่ภายในกัน ในเวลาเดียวกันพารามิเตอร์ที่แตกต่างกันใน "การซื้อเป็นระยะ" ที่ทางออกไม่ได้ให้จุดตัดที่สมบูรณ์ ดังนั้นเราจึงแบ่งวิธีการสุ่มตัวอย่างด้วยพารามิเตอร์ที่แตกต่างกันออกเป็นบล็อกต่างๆ เพื่อให้จากแต่ละบล็อก เราต้องการใช้วิธีการแยกตัวอย่างด้วยไฮเปอร์พารามิเตอร์เฉพาะเพียงหนึ่งวิธี ในการทำเช่นนี้คุณต้องฉลาดเล็กน้อยในการนำปัญหาเป้ไปใช้ แต่ซีมโทติกส์และผลลัพธ์จะไม่เปลี่ยนแปลง

การผสมผสานที่ชาญฉลาดนี้ช่วยให้เราได้รับหน่วยวัดต่อไปนี้เมื่อเปรียบเทียบกับโมเดลการทำงานร่วมกัน:
เราปรับปรุงคุณภาพคำแนะนำในการขายปลีกออฟไลน์ได้อย่างมากอย่างไร
ในการวัดสุดท้าย เราจะเห็นภาพต่อไปนี้:
เราปรับปรุงคุณภาพคำแนะนำในการขายปลีกออฟไลน์ได้อย่างมากอย่างไร

อย่างไรก็ตาม คุณจะสังเกตเห็นว่ามีจุดหนึ่งที่ไม่เปิดเผยสำหรับคำแนะนำที่เป็นประโยชน์สำหรับธุรกิจ ตอนนี้เราเพิ่งได้เรียนรู้วิธีคาดการณ์สิ่งที่ผู้ใช้จะซื้อได้อย่างดีเยี่ยม เช่น สัปดาห์หน้า แต่การให้ส่วนลดกับของที่เขาจะซื้ออยู่แล้วนั้นไม่เจ๋งนัก แต่ก็เป็นเรื่องดีที่จะเพิ่มความคาดหวังให้สูงสุด เช่น เมตริกต่อไปนี้:

  1. มาร์จิ้น/มูลค่าการซื้อขายตามคำแนะนำส่วนตัว
  2. การตรวจสอบลูกค้าโดยเฉลี่ย
  3. ความถี่ในการเข้าชม

ดังนั้นเราจึงคูณความน่าจะเป็นที่ได้รับด้วยค่าสัมประสิทธิ์ต่างๆ และจัดลำดับใหม่เพื่อให้ผลิตภัณฑ์ที่ส่งผลต่อเมตริกด้านบนขึ้นไปอยู่ด้านบน ไม่มีวิธีแก้ปัญหาแบบสำเร็จรูปว่าควรใช้แนวทางใดดีที่สุด เรายังทดลองกับค่าสัมประสิทธิ์ดังกล่าวโดยตรงในการผลิต แต่นี่คือเทคนิคที่น่าสนใจซึ่งส่วนใหญ่มักให้ผลลัพธ์ที่ดีที่สุดแก่เรา:

  1. คูณด้วยราคา/กำไรขั้นต้นของผลิตภัณฑ์
  2. คูณด้วยใบเสร็จรับเงินโดยเฉลี่ยที่สินค้าปรากฏ ดังนั้นสินค้าจะเกิดขึ้นโดยที่พวกเขามักจะเอาอย่างอื่นไปด้วย
  3. คูณด้วยความถี่เฉลี่ยของการเข้าชมโดยผู้ซื้อผลิตภัณฑ์นี้ โดยอิงตามสมมติฐานที่ว่าผลิตภัณฑ์นี้กระตุ้นให้ผู้คนกลับมาซื้อผลิตภัณฑ์นี้บ่อยขึ้น

หลังจากทำการทดลองด้วยค่าสัมประสิทธิ์แล้ว เราได้รับเมตริกต่อไปนี้ในการผลิต:
เราปรับปรุงคุณภาพคำแนะนำในการขายปลีกออฟไลน์ได้อย่างมากอย่างไร
ที่นี่ การแปลงผลิตภัณฑ์โดยรวม — ส่วนแบ่งของผลิตภัณฑ์ที่ซื้อจากผลิตภัณฑ์ทั้งหมดในคำแนะนำที่เราสร้างขึ้น

ผู้อ่านที่สนใจจะสังเกตเห็นความแตกต่างที่สำคัญระหว่างการวัดแบบออฟไลน์และแบบออนไลน์ ลักษณะการทำงานนี้อธิบายได้จากข้อเท็จจริงที่ว่าไม่ใช่ทุกตัวกรองแบบไดนามิกสำหรับผลิตภัณฑ์ที่สามารถแนะนำได้เมื่อฝึกโมเดล สำหรับเรา เป็นเรื่องปกติที่ผู้สมัครครึ่งหนึ่งที่ดึงมาสามารถกรองออกได้ ความเฉพาะเจาะจงนี้เป็นเรื่องปกติในอุตสาหกรรมของเรา

ในแง่ของรายได้ได้รับเรื่องราวต่อไปนี้ชัดเจนว่าหลังจากเปิดตัวคำแนะนำรายได้ของกลุ่มทดสอบเติบโตอย่างแข็งแกร่งขณะนี้รายได้ที่เพิ่มขึ้นโดยเฉลี่ยตามคำแนะนำของเราคือ 3-4%:
เราปรับปรุงคุณภาพคำแนะนำในการขายปลีกออฟไลน์ได้อย่างมากอย่างไร

โดยสรุป ฉันอยากจะบอกว่าหากคุณต้องการคำแนะนำที่ไม่ใช่แบบเรียลไทม์ คุณภาพที่เพิ่มขึ้นอย่างมากสามารถพบได้ในการทดลองโดยแยกผู้สมัครเพื่อรับคำแนะนำ การใช้เวลาจำนวนมากในการผลิตทำให้สามารถรวมวิธีการดีๆ มากมายเข้าด้วยกัน ซึ่งโดยรวมแล้วจะให้ผลลัพธ์ที่ยอดเยี่ยมสำหรับธุรกิจ

ฉันยินดีที่จะพูดคุยในความคิดเห็นกับใครก็ตามที่พบว่าเนื้อหาน่าสนใจ สามารถสอบถามส่วนตัวได้ที่ โทรเลข. ฉันยังแบ่งปันความคิดของฉันเกี่ยวกับ AI/สตาร์ทอัพในของฉันด้วย ช่องโทรเลข - ยินดีต้อนรับ :)

ที่มา: will.com

เพิ่มความคิดเห็น