Recommendation System
สำหรับบทความนี้ อยากจะพูดถึง Recommendation System in ML ตอนนี้หลายๆ คนน่าจะคุ้นชินกับการที่เราใช้ Social Media แล้วมีการแนะนำสินค้าต่างๆ ในระบบ หรือได้ยินจากร้านสะดวกซื้อหลายๆ แห่ง ว่า “customers who bought this, also bought this” จริงๆ แล้วเจ้าระบบแนะนำนี้ เป็นส่วนหนึ่งของ Algorithms ใน Data Analytics เลยนะ
Above image source from : https://www.xenonstack.com/use-cases/recommendation-system-deep-learning/
แล้วเจ้า Techniques หรือ Algorithms นี้มันดียังไง
1. ช่วยแนะนำสิ่งที่กลุ่มเป้าหมายจะสนใจ
นั่นเพราะว่าในโลกออนไลน์ตอนนี้มีสิ่งที่น่าสนใจอยู่มากมายมหาศาล จนจะให้มานั่งดูเองทั้งหมดคงยากมาก เปลืองทั้งเวลา เปลืองทรัพยากรด้วย แถมพอจะเข้ามาดูอะไรก็หาไม่เจอเพราะมันเยอะเกินไป แทนที่จะชอบใจกลับกลายเป็นเบื่อหน่ายกับเวปเราพอดี ดังนั้นถ้ามีเจ้าเทคนิคนี้เกิดขึ้น ก็จะทำให้เลือกนำเสนอแต่สิ่งที่กลุ่มเป้าหมายกำลังค้นหา แทนที่จะนำเสนอทุกสิ่งที่มี
2. เปิดโอกาสให้กลุ่มเป้าหมายใหม่ได้รู้จักกับสินค้าอื่น นอกเหนือจากที่สนใจอยู่ได้ด้วยนะ
>> ถ้าเราจะทำระบบนี้ เราต้องคำนึงถึงเรื่องไหนบ้าง
๐ Relevence ก็คือ การพยายามหาของที่คิดว่าผู้ใช้สนใจ ไม่นำเสนอของแบบสะเปะสะปะ เพราะมันจะทำให้กลุ่มเป้าหมายรู้สึกยุ่งยากในการค้นหาสิ่งที่ต้องการ
๐ Diversity ต้องมีความหลายหลายในการนำเสนอ มันคงไม่ดีแน่ ถ้าเราเข้าเวปมาแล้วเจอแค่ Youtube ที่แนะนำคลิปเดิมๆ จาก Channel เดิมๆ หรือใน IG ที่มีโหมดแนะนำอย่าง Reels ถ้าขึ้นแนะนำมาแต่ของเดิมๆ มันก็จะดูไม่น่าสนใจ ทำให้ไม่อยากใช้แอพนั้นอีก
๐ Novelty ต้องมีความใหม่ในการเสนอ ความหมายคืออะไร คือการที่เรานำเสนอในสิ่งที่กลุ่มเป้าหมายไม่รู้จักบ้าง เช่น แนะนำที่เที่ยวใหม่ๆ รีสอร์ตใหม่ๆ ร้านอาหารใหม่ๆ เป็นต้น
๐ Serendipity หาสิ่งที่นอกเหนือความคาดหมาย หรือ เป็นสิ่งไกลตัวของกลุ่มเป้าหมายแต่มีประโยชน์ต่อกลุ่มเป้าหมาย
>> Model ของ Recommondation System
จริงๆ แล้วโมเดลที่ใช้มีหลายวิธีมาก แต่ส่วนใหญ่ก็ยังคงอยู่ในรูปแบบของ utility function ของกลุ่มเป้าหมาย และสินค้า/บริการ ที่นิยมใช้กันคร่าวๆ ดังนี้
popularity based
classification based
content based
collaborative filtering
Hybrid models
โดยที่ว่า
๐ Popularity Based
เป็นวิธีการที่ง่ายที่สุดในการสร้างระบบแนะนำ คือจะดูความนิยมของสินค้า หรือบริการนั้นๆ จากจำนวนยอดขาย หรือจำนวนยอดการใช้งาน ตัวอย่างเช่น ร้านอาหารในแอพ foodpanda ที่ดูจากยอดการสั่งซื้อ
๐ Classification Based
วิธีการนี้จะนำเอาลักษณะของลูกค้า เช่น เพศ อายุ เป็นต้น กับลักษณะของสินค้า เช่น ราคา คุณภาพ มาใช้ในการทำนายความชอบของสินค้า หรือบริการของลูกค้ารายนั้นๆ โดยคำตอบที่ได้จากระบบแนะนำจะมีแค่ ชอบ หรือไม่ชอบ
๐ Content based Filtering
วิธีการนี้ก็เป็นวิธีการที่ง่ายๆ และตรงกับกลุ่มเป้าหมายมากๆ โดยจะพิจารณาจากข้อมูลย้อนหลังของผู้ใช้แต่ละคนว่าเคยดูหนังแนวไหน ซื้อของแบบไหนบ้าง ฟังเพลงแบบไหนบ้าง ก็จะแนะนำสินค้าหรือบริการแนวนั้นเพิ่มเติมให้
ข้อดีคือ จะได้สิ่งที่กลุ่มเป้าหมายต้องการ
ข้อเสียคือ ไม่มีความหลายหลายให้กลุ่มเป้าหมายได้รู้จักเพิ่ม
๐ Collaborative Filtering
ใช้หลักการง่ายๆ แค่ว่า ถ้ากลุ่มเป้าหมายชอบสินค้าแนวเดียวกัน ก็อาจจะสนใจสินค้าอื่นๆ เหมือนกันก็ได้
Collaborative Filtering สามารถแบ่งออกได้เป็น 2 ประเภท คือ
nearest neighbor
matrix factorization
=> Nearest Neighbor Collaborative Filtering
โดยระบบแนะนำประเภทนี้ จะใช้ความคล้ายคลึงมาเป็นตัวแนะนำ ที่พบเห็นจะมี 2 ลักษณะ คือ 1. ความคล้ายคลึงกันของลูกค้า (user based filtering) 2. ความคล้ายคลึงกันของสินค้า (item based filtering)
>> User-based Collaborative Filtering
เป็นการจัดกลุ่มเป้าหมายตามการซื้อสินค้า/บริการ โดยถ้าลูกค้ามีลักษณะการซื้อสินค้าชนิดที่ใกล้เคียงกัน ระบบก็จะจัดกลุ่มลูกค้าดังกล่าวไว้ในกลุ่มเดียวกัน และในลูกค้ากลุ่มเดียวกันนี้ ถ้าลูกค้าคนหนึ่งมีแนวโน้มที่จะชอบสินค้าและบริการอย่างหนึ่ง (ดูจากประวัติการซื้อย้อนหลัง) ระบบก็จะแนะนำสินค้าหรือบริการนั้นๆ ให้กับลูกค้าคนอื่นๆ ในกลุ่มด้วย
ตัวอย่างเช่น ใน Netflix ระบบพบว่ามีลูกค้า 2 คน ที่มีลักษณะดูหนังที่คล้ายกัน เช่น น้องบูม และน้องครีม มีประวัติการดูหนังต่างๆ ที่เหมือนกัน เช่น อะนิเมะ เรื่อง My Hero Academia , อะนิเมะเรื่อง Jujutsu Kaisen เป็นต้น โดยระบบจะจัดกลุ่มให้น้องบูม และน้องครึมอยู่ cluster เดียวกัน
ต่อมาน้องบูมได้อะนิเมะ โคนัน เพิ่ม ระบบก็จะแนะนำหนังเรื่องเดียวเดียวกันนี้ให้น้องครีมด้วย
>> Item-based Collaborative Filtering
เป็นการจัดกลุ่มสินค้าที่มีคุณลักษณะที่คล้าย หรือเกี่ยวเนื่องกัน เช่น ในเว็บไซด์ช็อปปิ้งออนไลน์แห่งหนึ่ง ดินสอและยางลบมักจะถูกลูกค้าซื้อพร้อมกันๆ เสมอ ดังนั้นดินสอและยางลบจึงถูกจัดให้อยู่ในกลุ่มสินค้าที่ใกล้เคียงกัน
=> Matrix Factorization Collaborative Filtering
เป็นการจัดกลุ่มลูกค้าตามการให้คะแนน (rating) ของสินค้า หรือบริการ โดยระดับคะแนนอาจอยู่ในช่วงตั้งแต่ 1- 10 คะแนน ในกรณีที่ยังไม่มีการให้คะแนนจะเท่ากับ 0
๐ Hybrid ก็คือ การเอาหลายๆ วิธีมาผสมผสานกัน
References:
1. https://madasamy.medium.com/introduction-to-recommendation-systems-and-how-to-design-recommendation-system-that-resembling-the-9ac167e30e95
2. https://medium.com/@cfpinela/recommender-systems-user-based-and-item-based-collaborative-filtering-5d5f375a127f












