• Canate Dew

[สรุป] Recommendation System จาก Alex About Data


Recommendation System จาก Alex About Data
Recommendation System จาก Alex About Data

Recommendation System คืออะไร


Recommendation System คือระบบที่ช่วยแนะนำสินค้าและบริการให้กับผู้ใช้งาน บริษัทชื่อดังหลายที่ใช้ระบบแนะนำในการสร้างประสบการณ์ในการใช้แพลตฟอร์มที่ดีขึ้น อย่าง Amazon, Netflix, YouTube, Google เป็นต้น


จากในอดีตที่การขายของมีปัญหาพื้นที่ในการแสดงสินค้ามีจำกัด สู่ปัญหาร้านค้าออนไลน์ที่มีสินค้าและบริการมากเกินไปจนเกิดปัญหาว่าแล้วสินค้าแบบไหนที่ควรแนะนำให้ลูกค้าเพราะสินค้ามากมายเกินกว่าลูกค้าจะเห็นได้ทั้งหมดในเวลาที่มีจำกัด (ปัญหา Long Tail ที่สินค้าและบริการเยอะเกินไปแต่ต้องนำมาคำนวนได้) ตัวอย่างเคสธุรกิจที่น่าสนใจคือหนังสือ A 2 ปีขายไม่ออกไม่ดี จนกระทั่งมีหนังสือ B เป็นที่นิยมมากขายดีและระบบได้วิเคราะห์และแนะนำ A จนเป็นหนังสือขายดีกว่า B


หลักการเบื้องต้นสร้าง Utility Function R ของแมททริกซ์เรตติ้งของ ลูกค้า x สินค้า


ปัญหาหลักคือ

  1. การเก็บเรตติ้งเพื่อนำมาเป็นข้อมูลสำหรับวิเคราะห์ - การเก็บข้อมูลแบ่งเป็น 2 แบบ คือ Explicit Rating (Direct) คือการประเมินให้คะแนนมีทั้งคะแนนบวกและลบ Implicit Rating (Indirect)คือการดูจากสินค้าที่ขายได้เป็นต้น ไม่ได้มีการให้คะแนนโดยตรง

  2. ประมาณค่าเรตติ้งที่เราไม่ทราบจากข้อมูลที่มีอยู่ - เป็นข้อมูลที่ Sparse ที่มีข้อมูลที่เป็น 0 เยอะและปัญหา Cold Start เมื่อมีผู้ใช้ใหม่ที่ไม่มีข้อมูล หรือเป็นธุรกิจใหม่ที่ไม่มีข้อมูล

  3. การประเมินผลของการคำนวนสำหรับแนะนำสินค้า

Content-Based Recommendation System


Content-Based Recommendation System คือการใช้ข้อมูลสินค้าของลูกค้าที่เคยซื้อและให้คะแนนสูงในอดีตเพื่อนำมาแนะนำสินค้าใหม่ นำข้อมูลสินค้านั้นมาสร้าง

  • Item Profile - การแบ่งเป็นฟีเจอร์ต่างๆอย่างชื่อ สี รสชาติ รูปร่างเป็นต้น ตัวอย่างเช่น หนังใช้นักแสดงเป็นฟีเจอร์ (0,1) ในการสร้างโปรไฟล์หรือการเก็บข้อมูลเป็นคะแนน (1-5)

  • Text Feature - หาคำที่สำคัญในเอกสาร (TF-IDF, GNN)

  • User Profile - ข้อมูลการให้คะแนนแต่ละสินค้า หาสินค้าตัวไหนที่ผู้ใช้คะแนนเยอะได้ หาค่าเฉลี่ยของการให้คะแนนของผู้ใช้แต่ละคนได้ (Nomalized Rating of user)

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


ข้อเสียคือการเลือกฟีเจอร์ที่สำคัญในการนำมาสร้างโปรไฟล์ และบางทีการแนะนำอาจจะเฉพาะเจาะจงมากเกินไป (OverSpecialization) เพราะอาศัยข้อมูลของผู้ใช้หนึ่งคนในอดีตอย่างเดียวเท่านั้นและไม่สามารถแนะนำสินค้าที่นอกเหนือโปรไฟล์ได้ อีกทั้งการที่นำข้อมูล Unique user profile มาแนะนำสินค้านั้นนำไปสู่อีกหนึ่งปัญหาคือ Cold Start เพราะเมื่อไม่มีข้อมูลผู้ใช้งานก็ไม่สามารถแนะนำได้


Collaborative Filtering Recommendation System


Collaborative Filtering Recommendation System คือการนำข้อมูลของสิ่งที่ใกล้เคียงมาทำนายคะแนนและแนะนำสินค้าที่ผู้ใช้ชอบได้ (ตัวอย่างเช่น ผู้ใช้ที่ใกล้เคียงกัน สินค้าที่ใกล้เคียงกัน เป็นต้น) เพราะฉะนั้นการหาความใกล้เคียง (Similarity) จึงมีความสำคัญในการแนะนำแบบนี้

  • Jaccard Similarity - ไม่ได้นำคะแนนของสินค้ามาคำนวนไม่เหมาะกับการมาใช้

  • Cosine Similarity - นำคะแนนของสินค้ามาคำนวนมีความถูกต้องขึ้นเมื่อเทียบกับ Jaccard Similarity แต่ก็ยังดีไม่พอเพราะข้อมูลที่เป็น 0 การคำนวนแบบนี้นับว่าเป็นคะแนนลบ

  • Centred Cosine Similarity (Pearson Correlation)- การนำคะแนนเฉลี่ยของแต่ผู้ใช้มาลบกับคะแนนที่ให้จริง สินค้าที่ไม่มีคะแนนจะนับเป็นค่าเฉลี่ยแทนคะแนนลบ สามารถจัดการปัญหา Tough Rater, Easy Rater ได้ดีอีกด้วยเพราะเป็นการเอาค่าเฉลี่ยของแต่ละคนมาคำนวน

เมื่อคำนวนหาความใกล้เคียงระหว่างผู้ใช้ได้แล้วก็สามารถทำนายได้


Collaborative Filtering Recommendation System สามารถแบ่งได้เป็น user to user, item to item ทั้งสองวิธีนี้มีการคำนวนที่คล้ายกันแต่ว่าการใช้ item to item นั้นมีผลในการทำนายที่ดีกว่าในหลายกรณีเพราะไอเทมมีความซับซ้อนน้อยกว่า เมื่อเทียบกับผู้ใช้ที่ความชอบที่หลากหลายและซับซ้อนสามารถเปลี่ยนไปตามการเวลาและบริบทได้ ในการคาดเดาจึงมีความผันผวนมากว่าการใช้ไอเทม สรุปคือแนะนำให้ใช้ Item-to-item Collaborative Filtering จะดีกว่า


ข้อดีคือไม่ต้องเลือกฟีเจอร์เองเหมือน Content-Based Recommendation System


ข้อเสียคือ Cold Start, Sparsity, First Rater, Popularity Bias, และ O(lUl) ที่ขึ้นอยู่กับขนาดข้อแมททริกซ์ยิ่งมีขนาดใหญ่ยิ่งใช้เวลาและทรัพยากรในการคำนวนมากเพราะฉะนั้นจึงควรทำ LSH, Clustering, หรือ Dimensionality Reduction ก่อนการนำข้อมูลไปคำนวนความใกล้เคียง (Similarity)


Hybrid Recommendation System

Hybrid Recommendation System คือการนำหลายระบบแนะนำมารวมกันอย่างเช่นนำ Collaborative Filtering + Content-Based สามารถจัดการปัญหาสินค้าใหม่ด้วยการสร้าง item profile และปัญหาลูกค้าใหม่ด้วยข้อมูลประชากรเป็นต้น หรือการนำ Global Baseline + Collaborative Filtering (ใช้ Linear Model เข้ามาช่วยในการทำระบบแนะนำ) เป็นต้น


Global Baseline สามารถนำไปรวมกับการคำนวน Collaborative Filtering เพื่อการคำนวนที่แม่นยำมากขึ้นในการทำนายผล ตัวอย่างการทำนายนาย ก. จะให้คะแนนหนังที่ไม่เคยดูหนังมาก่อน นายก. เคยให้คะแนนหนัง A (3.5)

  • การหาค่าเฉลี่ยของคะแนนของหนังทั้งหมด (3.7)

  • คะแนนเฉลี่ยของหนัง A (4.2) มากกว่าค่าเฉลี่ยอยู่ 0.5

  • นาย ก. ให้คะแนนน้อยกว่าค่าเฉลี่ยน 0.2

  • Global Baseline คือ 3.7+0.5-0.2 = 4


Dimensionality Reduction with SVD


Dimensionality Reduction with SVD คือการลดมิติข้อมูลด้วย Singular Value Decomposition ให้มีขนาดเล็กลง ช่วยหาเวคเตอร์ทำนายผลที่ดีที่สุดคำนวนจาก Min Sum of Square of Projection error เมื่อคำนวนแล้วสามารถตัดแถวที่มีความสำคัญน้อยได้ด้วยการเปลี่ยนให้มีค่าเป็นศูนย์ สามารถทำให้การคำนวน Collaborative Filtering Recommendation System ประหยัดเวลาและทรัพยากรมากขึ้น


สามารถดูเนื้อหาเต็มได้ที่

Recommender System - Alex About Data

Content-Based - Alex About Data

Collaborative Filtering - Alex About Data

ดู 566 ครั้ง0 ความคิดเห็น