แนะนำร้านให้แม่น ด้วยพลังของ Collaborative Filtering

แนะนำร้านให้แม่น ด้วยพลังของ Collaborative Filtering

Merchant Recommendation ด้วย Collaborative Filtering

แนวคิดหลักคือ

“ผู้ใช้ที่มีพฤติกรรมคล้ายกัน มักชอบร้านคล้ายกัน”
เรา ไม่ต้องรู้รายละเอียดร้าน ก็แนะนำได้ จากพฤติกรรมการใช้งาน

1) เตรียมข้อมูล

สร้างตารางพฤติกรรมการใช้งาน

user_id

merchant_id

interaction

U1

M1

5

U1

M2

3

U2

M1

4

U2

M3

5

interaction อาจมาจาก

  • จำนวนครั้งที่ใช้จ่าย
  • ยอดใช้จ่าย
  • การกดดู / คลิก / เซฟร้าน

2) สร้าง User–Merchant Matrix

แปลงเป็นเมทริกซ์


M1

M2

M3

U1

5

3

0

U2

4

0

5

U3

0

4

4

ค่าศูนย์ = ยังไม่เคยใช้

3) ใช้ Matrix Factorization (แก่นของ CF)

โมเดลจะเรียนรู้ latent factors

User Vector  ×  Merchant Vector  ≈  Interaction Score

เครื่องมือยอดนิยม

  • ALS (Implicit/Explicit)
  • LightFM
  • Surprise library

ผลลัพธ์คือได้ embedding ของ

  • ผู้ใช้แต่ละคน
  • ร้านแต่ละร้าน

4) การแนะนำทำยังไง

สำหรับผู้ใช้ U1

  1. เอา user vector ของ U1
  2. คูณกับ merchant vector ของทุกร้าน
  3. ได้คะแนนความน่าจะสนใจ
  4. ตัดร้านที่เคยใช้แล้วออก
  5. เลือก Top-N ร้านคะแนนสูงสุด
กลายเป็นร้านที่ “คนคล้าย U1 เคยใช้และชอบ”

5) ข้อดี

  • ไม่ต้องมีข้อมูลหมวดร้าน
  • ทราบถึงรสนิยมที่ซ่อนอยู่ได้ (เช่น คนชอบ ramen → ชอบชาเขียวพรีเมียม)
  • แม่นยำเมื่อมีข้อมูลเยอะ

6) ข้อจำกัด

  • ผู้ใช้ใหม่ -> แนะนำไม่ได้ (cold start problem)
  • ร้านใหม่ -> ยังไม่มีใครใช้ ก็ยังไม่ถูกแนะนำ
  • ไม่เข้าใจบริบทเวลา และ location

สรุป

ใช้พฤติกรรมผู้ใช้สร้างความคล้ายกัน แล้วแนะนำร้านที่ “คนรสนิยมใกล้กัน” เคยใช้ แต่ผู้ใช้นี้ยังไม่เคยใช้