Collaborative Filtering (การกรองร่วมมือ)
Collaborative filtering เป็น variant ของ memory-based reasoning ที่เหมาะอย่างยิ่งสำหรับแอปพลิเคชัน personalized recommendations ระบบ collaborative filtering เริ่มจาก history ของ user preferences Distance function กำหนด similarity จาก overlap ของ preferences: คนที่ชอบสิ่งเดียวกัน = ใกล้กัน
นอกจากนี้ votes ถูก weighted โดย distances ดังนั้น votes ของ closer neighbors นับหนักกว่าสำหรับ recommendation กล่าวอีกนัยหนึ่ง เป็นแนวทางค้นหาเพลง หนังสือ ไวน์ หรือสิ่งอื่น ที่เข้ากับ current preferences ของคนเฉพาะ โดยใช้ judgments ของ peer group ที่เลือกมาจาก similar tastes เรียกว่า social information filtering
Collaborative filtering ทำ automatic กระบวนการใช้ word-of-mouth เพื่อตัดสินใจว่าจะชอบหรือไม่ การรู้ว่าหลายคนชอบอย่างนั้นไม่พอ ทุกคนให้ค่านิยม recommendations ต่างกัน แนะนำจากเพื่อนสนิทที่แนะนำถูกต้องก่อนหน้านี้ อาจพอทำให้คุณไปดูหนังใหม่แม้ genre ที่คุณมัก dislike
สามขั้นตอนสำหรับ recommendations ให้ new users
- สร้าง user profile โดยขอ new customer ให้ rate selection of items (หนัง, เพลง, ร้านอาหาร)
- เปรียบเทียบ new user profile กับ profiles ของ users อื่นๆ ด้วย similarity measure
- ใช้ combination ของ ratings ของ users ที่มี profiles คล้าย เพื่อ predict rating ที่ new user ให้กับ items ที่ยังไม่ได้ rate
ความท้าทาย: Sparse Profiles
มี items ให้ rate เยอะกว่าที่คนคนใดคนหนึ่งจะ experience หรือยินดี rate นั่นคือ profiles โดยทั่วไป sparse (เบาบาง) หมายถึง overlap น้อยระหว่าง users' preferences สำหรับสร้าง recommendations คิด user profile เป็น vector หนึ่ง component ต่อ item ใน universe ของ items ที่จะ rate แต่ละ element แทน rating ของ profile owner สำหรับ item นั้นบน scale -5 ถึง 5 (0 = neutral, empty = no opinion)
ถ้ามี components พันๆ ใน vector และแต่ละ user เลือก rate เอง profiles ของสอง users น่าจะมี overlaps น้อย ในทางกลับกัน บังคับให้ users rate specific subset อาจพลาดข้อมูลน่าสนใจ เพราะ ratings ของ obscure items อาจบอกเกี่ยวกับ user มากกว่า ratings ของ popular ones