PURE SQL RECOMMENDER SYSTEMS · NO PYTHON

Recommendation คือการตัดสินใจจัดอันดับ ไม่ใช่รายการสิ่งที่นิยมที่สุด

ระบบแนะนำเชื่อมหลักฐานเกี่ยวกับผู้ใช้ สิ่งของ เวลา และบริบท SQL สร้างความสัมพันธ์เหล่านี้ได้โดยตรง: Self-join สร้าง Graph, Aggregate เรียนสถิติ, Window จัดอันดับ Candidate และ CTE รักษาเส้นทางของเหตุผล

01 · CANDIDATEอะไรมีสิทธิ์ถูกแนะนำ
02 · EVIDENCEพฤติกรรมของใครสำคัญ
03 · SCOREประมาณ Relevance อย่างไร
04 · RANKConstraint ใดเปลี่ยนรายการ

SEVEN LIVE METHODS

Target User คนเดียว แต่ “เกี่ยวข้อง” ได้เจ็ดความหมาย

User 1 ให้ Space Odyssey = 5, Robot City = 4 และ Quiet Letters = 1 ทุกวิธีจัดอันดับ Candidate ที่ยังไม่เห็นสามรายการเดียวกัน นักศึกษาจึงเปรียบเทียบ Evidence ได้โดยไม่เปลี่ยน Dataset

Bayesian Popularity

GLOBAL · SHRINKAGE · COLD START

เฉลี่ยคะแนนโดยดึงค่ากลับเข้าหา Global Mean ตามจำนวนหลักฐาน ลดปัญหาสินค้าที่มีคะแนนดีเพียงหนึ่งครั้ง

target user = 1
EXECUTED SQL
Select Run recommender SQL.

Co-occurrence Graph

BASKET · EDGE · TRANSITION

ต่อยอดจาก KeyValue, graphview และ probview ในต้นฉบับ ให้ Positive Interaction เป็น Edge แล้วรวม Transition Score ของสิ่งที่ผู้ใช้เคยชอบ

target user = 1
EXECUTED SQL
Select Run recommender SQL.

Item-based Collaborative Filtering

ITEM × ITEM · ADJUSTED COSINE

ลบ User Mean ก่อนสร้าง Item Similarity แล้วใช้คะแนนของ Target User ถ่วง Item ที่ยังไม่เคยเห็น

target user = 1
EXECUTED SQL
Select Run recommender SQL.

User-based Collaborative Filtering

USER × USER · NEIGHBOR DEVIATION

หา Similar User จาก Item ที่ให้คะแนนร่วมกัน แล้วรวม Rating Deviation ของเพื่อนบ้านกลับเข้ากับ Target Mean

target user = 1
EXECUTED SQL
Select Run recommender SQL.

Content-based Profile

FEATURE VECTOR · COSINE

สร้าง Genre Profile จากคะแนนเหนือหรือต่ำกว่า Neutral แล้ววัด Cosine กับ Feature ของ Candidate

target user = 1
EXECUTED SQL
Select Run recommender SQL.

Time-decayed Ranking

RECENCY · HALF-LIFE · DRIFT

ให้น้ำหนักหลักฐานใหม่มากกว่าหลักฐานเก่าด้วย Exponential Decay เพื่อรองรับ Taste และ Inventory ที่เปลี่ยน

target user = 1
EXECUTED SQL
Select Run recommender SQL.

Hybrid Rank

POPULARITY × CONTENT · WEIGHTED RANK

รวม Rank ของ Popularity และ Content ด้วยน้ำหนักที่มองเห็นได้ เพื่อสอนว่าการผสม Model ต้องมีเหตุผลและการทดลองรองรับ

target user = 1
EXECUTED SQL
Select Run recommender SQL.

SHARED TEACHING DATA

เล็กพอให้ตรวจทุกคะแนน และมีความต่างพอให้แต่ละวิธีเห็นไม่เหมือนกัน

Dataset จงใจให้เล็ก นักศึกษาควรตาม Recommendation หนึ่งรายการย้อนกลับผ่านทุก Join และ Aggregate ได้ ก่อนขยาย Pattern ไปยัง Retail Event หรือ MovieLens

UserItemRating
115
124
131
214
225
241
335
344
354
412
434
455
524
545
564
ItemTitleContent features
1Space Odysseysci-fi, drama
2Robot Citysci-fi, action
3Quiet Lettersdrama
4Fast Trackaction
5Family Tabledrama, comedy
6Cosmic Jokesci-fi, comedy

KeyValue → graphview → probview → recommendation

SQL Retail ต้นฉบับลด Transaction เป็นคู่ CustomerID–StockCode ที่ไม่ซ้ำก่อน จากนั้น Self-join เพื่อนับสินค้าที่ปรากฏร่วม Item Occurrence เปลี่ยน Count เป็น Conditional Probability สินค้าที่ Target Customer มีอยู่จะเปิดใช้งาน Edge ขาออก และปลายทางที่ยังไม่มีถูกจัดอันดับด้วยผลรวม Probability

สิ่งที่ยังทรงคุณค่า

Graph อธิบายได้ ทุกคำแนะนำมี Path จากสิ่งที่ลูกค้าเคยเลือก

สิ่งที่หน้าใหม่เพิ่ม

Positive-event Policy, Evidence Count, CTE สมัยใหม่, Alternative Model และ Ranking Evaluation

SYSTEM ARCHITECTURE

Model Score เป็นเพียงหนึ่งขั้นของ Recommendation System

รายการที่ใช้ได้จริงยังต้องมี Eligibility, Deduplication, Inventory/Policy Constraint, Diversity, Exploration และ Logging หากไม่มีส่วนเหล่านี้ เรามีเพียง Model Demo ไม่ใช่ Recommender System

EVENTSview · rate · buy
CANDIDATESavailable · unseen
FEATURESuser · item · context
RANKERscore · blend · constrain
FEEDBACKimpression · action

EVALUATION & RESPONSIBILITY

ระบบแนะนำเปลี่ยนสิ่งที่ผู้ใช้มีโอกาสค้นพบ

การประเมินจึงต้องรวม Ranking Quality, System Behavior และผลต่อมนุษย์ CTR สูงอาจเกิดพร้อม Diversity ต่ำ ความล้า หรือ Exposure ที่ไม่เป็นธรรมได้

Offline ranking

TEMPORAL HOLDOUT

Precision@K · Recall@K · MAP · NDCG · MRR

Catalog behavior

BEYOND RELEVANCE

Coverage · diversity · novelty · serendipity · popularity concentration

Online outcomes

EXPERIMENT

CTR · conversion · revenue · retention · hide/dismiss rate

Guardrails

RESPONSIBLE RANKING

Exposure fairness · frequency caps · safety · inventory · latency

สามความผิดพลาดที่ SQL ป้องกันแทนเราไม่ได้

  • สุ่ม Future Interaction เข้า Training ทำให้ข้อมูลรั่ว ต้องใช้ Temporal Cutoff
  • หากไม่มี Impression Log คำว่า “ไม่คลิก” กำกวม เพราะผู้ใช้อาจไม่เคยเห็น Item
  • Optimize Click อย่างเดียวอาจเสริม Popularity Bias และทำให้ Catalog ที่ผู้ใช้พบแคบลง

CONTINUE

เข้าใจ Ranking ผ่าน SQL แล้วค่อยตัดสินใจว่าควรรันที่ใด

เชื่อมบทเรียนนี้กับ Pure SQL ML, Declarative ML และ Data Systems Labs