เคยสงสัยไหมว่า เวลาเราเล่นแพลตฟอร์มหนึ่งๆ ทำไมระบบแนะนำอะไรมาให้เราเรื่อยๆ ทั้งสินค้าหรือบริการต่างๆ ที่เราดูอยู่ในระบบนั้นๆ
ถ้านึกถึงการบริการ หรือแพลตฟอร์มดังๆ ที่เราคาดว่าจะต้องใช้ Algorithm มาแนะนำสินค้าหรือบริการ ก็ได้แก่ แพลตฟอร์มพวกนี้
แล้วระบบที่ว่านี้ เค้าใช้ข้อมูลอะไรมาแนะนำเราเรื่อยๆกันนะ บทความนี้จะพามาทำความรู้จักกับ Recommendation System กัน หลังจากที่เราทำ Thesis จนเรียนจบ ก็ยังคงแวะเวียนหา Data มาทำเรื่อยๆ กลัวจะลืมไปซะก่อน
เริ่มเลย
What is a recommendation system?
Recommendation System หรือเรียกสั้นๆว่า Rec Sys คือ ระบบการแนะนำสินค้าหรือบริการ นำเสนอสิ่งที่ผู้ใช้งานระบบน่าจะสนใจ หรือคาดว่าตรงกับความต้องการ เพื่อเป็นการเพิ่มโอกาสให้ผู้ใช้งานเลือกในรายการที่นำเสนอไปนั้น โดยระบบแนะนำนี้มีบทบาทอย่างมากในปัจจุบัน และได้มีการนำไปประยุกต์ใช้กับทุกภาคส่วนทั้งธุรกิจ ภาคบริการ รวมถึงทางการศึกษา
ระบบการแนะนำนี้ถูกคัดสรรมาเพื่อตอบโจทย์ตรงกับความต้องการของผู้ใช้งาน ช่วยให้ทำการค้นหาได้อย่างรวดเร็ว ลดระยะเวลาในการค้นหาได้ โดยใช้การอ้างอิงข้อมูลจากสิ่งที่ผู้ใช้สนใจและเรียนรู้ผ่านพฤติกรรมจากประวัติการใช้งานในระบบ และยังสามารถคาดเดาได้ว่าในอนาคต ผู้ใช้น่าจะสนใจสินค้าอื่นที่คล้ายคลึงกับสิ่งที่เคยเลือกมาก่อนหน้านี้แล้ว นอกจากนี้ประโยชน์ของระบบแนะนำ ช่วยขับเคลื่อนข้อมูลเชิงลึกและสร้างความภักดีต่อแบรนด์ได้อีกด้วย
Types of recommendation system
ระบบแนะนำมีการทำงานโดยใช้หลักการที่เป็นที่นิยม 3 วิธี ซึ่งได้แก่
- Content-based Filtering หรือ การกรองข้อมูลตามเนื้อหา ใช้เนื้อหาในข้อมูลรายการนั้นมาหาความสัมพันธ์ระหว่างสิ่งที่เราสนใจ
- Collaborative Filtering หรือ การกรองข้อมูลแบบพึ่งพาผู้ใช้ร่วม ทำการแนะนำข้อมูลให้กับเรา โดยใช้ข้อมูลจากผู้ใช้คนอื่นร่วมด้วย
- Hybrid Filtering หรือ การกรองข้อมูลแบบผสม
นอกจากนี้บางงานยังมีการใช้เทคนิคอื่นๆ เช่น
- Knowledge-based เป็นการแนะนำที่คล้ายกับวิธี Content-based Filtering แต่พิจารณาระหว่างข้อมูลคุณลักษณะของสินค้าหรือบริการเรื่องใดเรื่องหนึ่งที่ตรงกับลักษณะของผู้ใช้งานประกอบกัน เพื่อให้ได้คำแนะนำที่ตอบปัญหาและตรงกับความต้องการของผู้ใช้มากที่สุด มักใช้กับผลิตภัณฑ์หรือการบริการที่ไม่ได้ซื้อขายกันบ่อยนัก และมักมีเงื่อนไขที่ซับซ้อน เช่น การซื้อรถยนต์ บ้าน ตั๋วเดินทาง หรืองบประมาณที่จะซื้อ เป็นต้น
- Demographic-based คล้ายกับวิธี Collaborative Filtering แต่เปรียบเทียบความคล้ายของผู้ใช้งาน และใช้ลักษณะเฉพาะข้อมูลของตัวบุคคลเข้ามาร่วมด้วย เช่น อายุ เพศ เชื้อชาติ พื้นที่อยู่อาศัย เป็นต้น
มาดูวิธีการ หรือเทคนิคของแต่ละประเภทกัน
Content-Based Filtering
นำข้อมูลที่ได้จากเนื้อหาของข้อมูลรายการนั้นๆ มาหาความสัมพันธ์ระหว่างเนื้อหากับสิ่งที่ผู้ใช้งานสนใจ วิธีการนี้ให้ความสนใจกับคุณลักษณะของข้อมูลเป็นส่วนสำคัญ ตัวอย่างระบบการแนะนำภาพยนต์ ใช้ข้อมูลในส่วนของ คำอธิบายหนัง ผู้กำกับ นักแสดง Genres etc.
ตัวอย่าง ถ้าเราดู All Of Us Are Dead และเรื่องนี้เป็นประเภทเดียวกับเรื่อง Train To Busan หรือ Happiness สองเรื่องหลังนี้ ระบบจะ Recommend กลับมาเสนอให้เรา
นอกจากนี้ยังรวมถึง เพลง, การซื้อของ Shopping, ประเภทบทความที่อ่าน ก็ใช้หลักการเดียวกัน
แต่ข้อเสียของวิธีการ CB นี้จะพบว่าไม่มีความหลากหลาย แตกต่างจากเรื่องเดิมที่เคยดูมากนัก เพราะเหมือนเราดูหนังในแนวเดิม ไม่มีการแนะนำแนวใหม่ๆ เข้ามา และระบบต้องเตรียมข้อมูลรายละเอียดเยอะมาก ถ้าต้องการให้ทำการแนะนำได้ดี ข้อมูลต้องครบถ้วน
ส่วนเทคนิคการจะเอารายละเอียดที่เลือกมา เอามาสกัดหาความสำคัญ ง่ายๆ จะใช้วิธีการ Cosine Similarity หาจากรายละเอียดข้อมูลที่เราเลือก
นอกจากนี้การใส่ข้อมูลให้ตรงหมวดหมู่เป็นเรื่องดี หรือพวก Hashtag เป็นเรื่องดี ใส่ให้ตรง แต่อย่าใส่ซ้ำมาก เพราะมันจะลดความสำคัญลง กลายเป็นว่าคอนเทนต์ที่เราทำ อัลกอริทึมอาจไม่ได้มองว่าตรงกับหมวดหมู่ที่จัดไว้ มันอาจไปลดความสำคัญของคำนั้นๆ
Collaborative Filtering
ใช้ข้อมูลของผู้ใช้คนอื่นมาช่วยทำการแนะนำให้กับเรา โดยเป็นข้อมูลที่มาจากการดูหนังเรื่องที่เหมือนกัน หรือการให้คะแนน Rating ที่เรทคล้ายๆกัน
จากตัวอย่างสองคนนี้ดูเรื่องที่คล้ายกันซึ่งเป็นซีรีส์ย้อนยุค ระบบก็จะแนะนำ Moonshine เรื่องที่ผญ ให้กับ ผช ที่ยังไม่ดู
นอกจากนี้ Collaborative (CF) ใช้การแนะนำโดยอ้างอิงจาก Rating ที่เราให้ ว่าเหมือนกับผู้ใช้คนไหน ซึ่งบ่งบอกว่ามีรสนิยม หรือความชอบที่เหมือนกัน แล้วนำมาคำนวน Rate เรื่องที่เรายังไม่ได้ดู (Predict Rating) แต่คนที่มีรสนิยมเหมือนเราดูแล้ว และนำรายการนั้นมา Recommend (rate สูงจึง Rec)
จากรูปจะเห็นว่า 1,2 ดูคล้ายกันและให้ เรตสูง สองคนนี้จึงโดนจับให้อยู่กลุ่มเดียวกัน เนื่องจากชอบเรื่องเกี่ยวกับ Horror หรือพวก ซอมบี้ ส่วนคนที่ 3,4 ชอบแนวย้อนยุค ระบบก็จะแนะนำ Moonshine ให้กับคนที่ 3 และแนะนำ Mr.Queen ให้คนที่ 4 เพราะสองคนนี้มีรสนิยมคล้ายกัน
ทีนี้จะเห็นว่าพวกรีวิวต่างๆให้คะแนน 2/10 10/10 ว่าเค้าไม่ได้นะ เพราะเค้าอาจมีรสนิยมต่างกับเรา หรือชอบไม่เหมือนกับเรา การให้คะแนนก็เหมือนการกรองคนที่ชอบเหมือนกับเรา แนะนำรายการนั้นมาให้เรา เพราะเรายังไม่ได้ดู อยากเจอคนที่ใช่ ต้องให้ Rating ในระบบด้วย ซึ่งถ้ามี Algorithm ดี ระบบจะกรองมาให้เราเอง
Rating
มาดูประเภทของ Rating กันบ้าง
- Explicit คือการที่กด Like/Dislike หรือให้ Rating พวกนี้จะเอาคำนวนเลยว่าเราอาจเหมือนกับใคร หรือไอเทมไหนที่เหมือนกัน แล้วทำการจัดกลุ่ม
- Implicit เป็นการหา Rating ทางอ้อม อาจคิดจาก
1 = Click
2 = Like,Fav
3 = Share
4 = Add to Cart
5 = Pay
แล้วเอามาทำการคำนวณและ Rec
ซึ่งค่า Rating ทั้งหลายที่เราให้ หรือไปทำ Transaction ไว้ มันจะส่งผล Recommend กลับมานำเสนอรายการให้เราเห็นนั่นเอง
หลังจากศึกษามา ทุกวันนี้พยายามให้ Rating กับทุกแอพที่เป็นไปได้ เพื่อที่ระบบจะได้แนะนำอะไรใหม่ๆ มาให้เรา ตัวที่อยากรู้ที่สุดคือ Spotify มีการ Recommend ดีมาก แทบจะไม่เปลี่ยนเพลงเลย มันตรงกับ Personalize มาก ส่วน Netflix กับ iQiyi นี่มี ให้ Rating เหมือนกันนะ เผื่อระบบจะได้แนะนำเรื่องใหม่หรือแนวแปลกๆมาให้ดูบ้าง
บทความนี้ขอจบเท่านี้ก่อน ครั้งหน้าจะมาลงเทคนิคกันภายหลัง ^_^