ระบบผู้แนะนำ — คู่มือฉบับสมบูรณ์สำหรับโมเดลแมชชีนเลิร์นนิง

Nov 25 2022
ใช้ประโยชน์จากข้อมูลเพื่อช่วยให้ผู้ใช้ค้นพบเนื้อหาใหม่ ระบบผู้แนะนำ: ทำไมและอย่างไร ระบบผู้แนะนำเป็นอัลกอริทึมที่ให้คำแนะนำส่วนบุคคลสำหรับรายการที่เกี่ยวข้องกับผู้ใช้แต่ละคนมากที่สุด ด้วยการเติบโตอย่างมากของเนื้อหาออนไลน์ที่มีอยู่ ผู้ใช้จึงมีตัวเลือกมากมาย

ใช้ประโยชน์จากข้อมูลเพื่อช่วยให้ผู้ใช้ค้นพบเนื้อหาใหม่

ภาพถ่ายโดย Javier Allegue Barros บน Unsplash

ระบบผู้แนะนำ: ทำไมและอย่างไร

ระบบผู้แนะนำเป็นอัลกอริทึมที่ให้คำแนะนำส่วนบุคคลสำหรับรายการที่เกี่ยวข้องกับผู้ใช้แต่ละคนมากที่สุด ด้วยการเติบโตอย่างมากของเนื้อหาออนไลน์ที่มีอยู่ ผู้ใช้จึงมีตัวเลือกมากมาย ดังนั้น แพลตฟอร์มเว็บจึงจำเป็นอย่างยิ่งที่จะต้องให้คำแนะนำสินค้าแก่ผู้ใช้แต่ละคน เพื่อเพิ่มความพึงพอใจและการมีส่วนร่วมของผู้ใช้

YouTube แนะนำวิดีโอแก่ผู้ใช้ เพื่อช่วยให้พวกเขาค้นพบและรับชมเนื้อหาที่เกี่ยวข้องกับพวกเขาท่ามกลางเนื้อหาที่มีอยู่จำนวนมาก (ภาพโดยผู้เขียน)

รายการต่อไปนี้แสดงตัวอย่างแพลตฟอร์มเว็บที่มีชื่อเสียง ซึ่ง มีเนื้อหาที่มีอยู่จำนวนมากซึ่งต้องการระบบผู้แนะนำที่มีประสิทธิภาพเพื่อให้ผู้ใช้สนใจ

  1. ยูทูบ . ทุกนาทีมีคนอัปโหลดวิดีโอ 500 ชั่วโมงกล่าวคือ ผู้ใช้ 1 คนจะใช้เวลา 82 ปีในการดูวิดีโอทั้งหมดที่อัปโหลดในชั่วโมงสุดท้าย
  2. สป อติฟาย ผู้ใช้สามารถฟังเพลงและพอดแคสต์มากกว่า80ล้านเพลง
  3. เมซอน ผู้ใช้สามารถซื้อผลิตภัณฑ์ ต่างๆ ได้มากกว่า 350 ล้านรายการ

ข้อเสนอแนะที่ชัดเจนกับข้อเสนอแนะโดยนัย

ในระบบผู้แนะนำ โมเดลแมชชีนเลิร์นนิงใช้เพื่อทำนายคะแนนrᵤᵢของผู้ใช้uในรายการi ในเวลาอนุมาน เราแนะนำให้ผู้ใช้แต่ละรายuรายการที่มีคะแนนสูงสุดที่คาดการณ์ไว้rᵤ

ดังนั้นเราจึงจำเป็นต้องรวบรวมคำติชมของผู้ใช้ เพื่อให้เรามีความจริงพื้นฐานสำหรับการฝึกอบรมและการประเมินโมเดลของเรา ต้องมีการแยกความแตกต่างที่สำคัญระหว่าง ข้อเสนอแนะที่ ชัดเจนและ ข้อ เสนอแนะโดยนัย

ข้อเสนอแนะที่ชัดเจนและโดยนัยสำหรับระบบผู้แนะนำ (ภาพโดยผู้เขียน)

ข้อเสนอแนะที่ชัดเจน คือการให้คะแนนอย่างชัดเจนโดยผู้ใช้เพื่อแสดงความพึงพอใจต่อรายการ ตัวอย่าง ได้แก่ จำนวนดาวในระดับตั้งแต่ 1 ถึง 5 ที่ได้รับหลังจากซื้อผลิตภัณฑ์ การให้นิ้วหัวแม่มือขึ้น/ลงหลังจากดูวิดีโอ ฯลฯ ข้อเสนอแนะนี้ให้ข้อมูลโดยละเอียดว่าผู้ใช้ชอบสินค้ามากน้อยเพียงใด แต่เป็นการยากที่จะ รวบรวมเนื่องจากผู้ใช้ส่วนใหญ่มักไม่เขียนรีวิวหรือให้คะแนนอย่างชัดเจนสำหรับแต่ละรายการที่ซื้อ

ในทางกลับกัน คำติชมโดยปริยายจะถือว่าการโต้ตอบระหว่างผู้ใช้กับรายการเป็นการบ่งชี้ถึงการตั้งค่า ตัวอย่างเช่น: การซื้อ/ประวัติการเข้าชมของผู้ใช้ รายชื่อเพลงที่ผู้ใช้เล่น เป็นต้น ข้อเสนอแนะนี้มีมากมายมหาศาลแต่ในขณะเดียวกันก็มีรายละเอียดน้อยกว่าและมีเสียงดังกว่า (เช่น บางคนอาจซื้อผลิตภัณฑ์เป็นของขวัญให้ คนอื่น). อย่างไรก็ตาม สัญญาณรบกวนนี้กลายเป็นเรื่องเล็กน้อยเมื่อเทียบกับขนาดที่แท้จริงของข้อมูลประเภทนี้ที่มีอยู่ และระบบผู้แนะนำสมัยใหม่ส่วนใหญ่มักอาศัยการตอบกลับโดยปริยาย

เมทริกซ์การให้คะแนนรายการของผู้ใช้สำหรับชุดข้อมูลความคิดเห็นที่ชัดเจนและข้อเสนอแนะโดยปริยาย (ภาพโดยผู้เขียน)

เมื่อเรารวบรวมความคิดเห็นที่ชัดเจนหรือโดยปริยายแล้ว เราสามารถสร้าง เมทริกซ์การ ให้คะแนนผู้ใช้และรายการrᵤᵢ สำหรับความคิดเห็นที่ชัดเจน แต่ละรายการในrᵤᵢเป็นค่าตัวเลข เช่นrᵤᵢ = "ดาวที่คุณมอบให้กับภาพยนตร์i "—หรือ "?" หากผู้ใช้ไม่ได้ให้คะแนนรายการi สำหรับการตอบกลับโดยปริยาย ค่าในrᵤᵢเป็นค่าบูลีนที่แสดงถึงการมีอยู่หรือขาดการโต้ตอบ เช่นrᵤᵢ = “ผู้ใช้คุณดูภาพยนตร์iหรือไม่” สังเกตว่าเมทริกซ์rᵤᵢมีน้อยมาก เนื่องจากผู้ใช้โต้ตอบกับบางรายการในเนื้อหาที่มีอยู่ทั้งหมด และพวกเขาตรวจสอบรายการน้อยลงด้วยซ้ำ!

แนวทางการกรองตามเนื้อหาเทียบกับแนวทางการกรองร่วมกัน

ระบบผู้แนะนำสามารถจำแนกตามประเภทของข้อมูลที่ใช้ในการทำนายการตั้งค่าของผู้ใช้เป็นตามเนื้อหาหรือการกรองแบบทำงานร่วมกัน

แนวทางการกรองตามเนื้อหาเทียบกับการกรองร่วมกันสำหรับระบบผู้แนะนำ (ภาพโดยผู้เขียน)

วิธีการตามเนื้อหา

วิธีการตามเนื้อหาจะอธิบายผู้ใช้และรายการ ตาม ข้อมูลเมตา ที่รู้จัก แต่ละรายการ iจะแสดงด้วยชุดแท็กที่เกี่ยวข้อง เช่น ภาพยนตร์ของแพลตฟอร์ม IMDbสามารถแท็กเป็น "แอ็คชั่น" "ตลก"เป็นต้น ผู้ใช้แต่ละคน uจะแสดงด้วยโปรไฟล์ผู้ใช้ ซึ่งสามารถสร้างจากข้อมูลผู้ใช้ที่รู้จัก— เช่น เพศและอายุ—หรือจากกิจกรรมที่ผ่านมาของผู้ใช้

ในการฝึกโมเดลการเรียนรู้ของเครื่องด้วยวิธีนี้ เราสามารถใช้โมเดลk-NN ตัวอย่างเช่น หากเราทราบว่าผู้ใช้uซื้อสินค้าiเราสามารถแนะนำสินค้าที่มีคุณลักษณะคล้ายกับiมาก ที่สุดให้กับ คุณ

ข้อดี ของ แนวทางนี้คือสามารถทราบข้อมูลเมตาของรายการล่วงหน้าได้ ดังนั้นเราจึงสามารถนำไปใช้กับสถานการณ์ Cold-Startที่มีการเพิ่มรายการหรือผู้ใช้ใหม่ลงในแพลตฟอร์ม และเราไม่มีการโต้ตอบระหว่างผู้ใช้กับรายการเพื่อฝึกโมเดลของเรา . ข้อเสียคือเราไม่ได้ใช้ชุดที่สมบูรณ์ของการโต้ตอบระหว่างผู้ใช้กับรายการที่รู้จัก (ผู้ใช้แต่ละรายได้รับการปฏิบัติโดยอิสระ) และเราจำเป็นต้องทราบข้อมูลเมตาสำหรับแต่ละรายการและผู้ใช้

แนวทางการกรองร่วมกัน

วิธีการกรองแบบทำงานร่วมกัน จะไม่ใช้รายการหรือข้อมูลเมตาของผู้ใช้ แต่พยายามใช้ประโยชน์จากผลตอบรับหรือประวัติกิจกรรมของผู้ใช้ทั้งหมด แทน เพื่อคาดการณ์การให้คะแนนของผู้ใช้ในรายการที่กำหนดโดยการอนุมานการพึ่งพาระหว่างผู้ใช้และรายการจากกิจกรรมที่สังเกต

ในการฝึกโมเดลแมชชีนเลิร์นนิงด้วยวิธีนี้ เรามักจะพยายามจัดกลุ่มหรือแยกตัวประกอบของเมทริกซ์การให้คะแนนrᵤᵢเพื่อคาดการณ์คู่ที่ไม่ได้สังเกต ( u,i ) เช่น โดยที่rᵤᵢ = “?” ในบทความนี้เราจะนำเสนออัลกอริทึมการแยกตัวประกอบเมทริกซ์ซึ่งเป็นวิธีที่ได้รับความนิยมมากที่สุดในคลาสนี้

ข้อดี ของ วิธีนี้คือใช้การโต้ตอบระหว่างผู้ใช้กับไอเท็มทั้งชุด (เช่น เมทริกซ์rᵤᵢ ) ซึ่งโดยทั่วไปจะช่วยให้ได้รับความแม่นยำสูงกว่าการใช้โมเดลตามเนื้อหา ข้อเสียของแนวทางนี้คือต้องมีการโต้ตอบกับผู้ใช้เล็กน้อยก่อนที่จะสามารถติดตั้งโมเดลได้

แนวทางแบบผสมผสาน

สุดท้าย ยังมีวิธีการแบบผสมที่พยายามใช้ทั้งข้อมูลเมตาที่รู้จักและชุดของการโต้ตอบระหว่างผู้ใช้กับรายการที่สังเกตได้ วิธีนี้เป็นการรวมข้อดีของทั้งวิธีการกรองตามเนื้อหาและแบบทำงานร่วมกัน และช่วยให้ได้ผลลัพธ์ที่ดีที่สุด ในบทความนี้ เราจะนำเสนอLightFMซึ่งเป็นอัลกอริธึมที่ได้รับความนิยมมากที่สุดในบรรดาเมธอดประเภทนี้

การกรองร่วมกัน: การแยกตัวประกอบเมทริกซ์

อัลกอริทึมการแยกตัวประกอบของเมทริกซ์น่าจะเป็นวิธีการกรองแบบทำงานร่วมกันที่ได้รับความนิยมและมีประสิทธิภาพมากที่สุดสำหรับระบบผู้แนะนำ การแยกตัวประกอบเมทริกซ์เป็นแบบจำลองตัวประกอบแฝงโดยสมมติว่าสำหรับผู้ใช้แต่ละราย uและรายการ iมีการแทนเวกเตอร์แฝงpᵤ, qᵢ R ᶠ st rᵤᵢสามารถแสดงได้ไม่ซ้ำกัน — เช่น “แยกตัวประกอบ” — ในรูปของ pᵤและ qᵢ Python library Surprise นำเสนอวิธีการเหล่านี้ที่ยอดเยี่ยม

การแยกตัวประกอบเมทริกซ์สำหรับข้อเสนอแนะที่ชัดเจน

แนวคิดที่ง่ายที่สุดคือการสร้างแบบจำลองการโต้ตอบระหว่างผู้ใช้กับสินค้าผ่านแบบจำลองเชิงเส้น หากต้องการเรียนรู้ค่าของpᵤและqᵢเราสามารถลดการสูญเสีย MSE ที่ทำให้เป็นมาตรฐานให้เหลือน้อยที่สุด เหนือชุดKของคู่ ( u , i ) ที่รู้จักrᵤᵢ อัลกอริทึมที่ได้รับเรียกว่าการแยกตัวประกอบเมทริกซ์ความน่าจะเป็น (PMF )

การแยกตัวประกอบเมทริกซ์เชิงความน่าจะเป็น: แบบจำลองสำหรับฟังก์ชัน rᵤᵢ และการสูญเสีย

ฟังก์ชันการสูญเสียสามารถย่อให้เล็กสุดได้สองวิธี วิธีแรกคือการใช้stochastic Gradient Destination (SGD ) SGD นั้นง่ายต่อการใช้งาน แต่อาจมีปัญหาบางอย่างเนื่องจากทั้ง คู่ไม่รู้จัก pᵤและqᵢดังนั้นฟังก์ชันการสูญเสียจึงไม่นูนออกมา ในการแก้ปัญหานี้ เราสามารถแก้ไขค่าpᵤและqᵢและรับปัญหาการถดถอยเชิงเส้นนูนที่สามารถแก้ไขได้ง่ายด้วยกำลังสองน้อยที่สุดธรรมดา (OLS ) วิธีที่สองนี้เรียกว่ากำลังสองน้อยที่สุดสลับกัน (ALS)และช่วยให้สามารถขนานและเพิ่มความเร็วได้อย่างมาก

อัลกอริทึม PMF ได้รับการทำให้เป็นแบบทั่วไปในภายหลังโดยอัลกอริทึมการ สลายตัวของ ค่าเอกพจน์ (SVD)ซึ่งนำเงื่อนไขอคติ มาใช้ ในแบบจำลอง โดยเฉพาะอย่างยิ่งbᵤ และbᵢวัดความเบี่ยงเบนของคะแนนที่สังเกตได้ของผู้ใช้uและรายการiตามลำดับ ในขณะที่μเป็นคะแนนเฉลี่ยโดยรวม คำศัพท์เหล่านี้มักจะอธิบายถึงการให้คะแนนที่สังเกตได้ส่วนใหญ่rᵤᵢเนื่องจากบางรายการได้รับการให้คะแนนดีขึ้น/แย่ลง และผู้ใช้บางรายก็เอื้อเฟื้อมากขึ้น/น้อยลงอย่างสม่ำเสมอกับการให้คะแนนของพวกเขา

อัลกอริทึม SVD ซึ่งเป็นลักษณะทั่วไปของการแยกตัวประกอบเมทริกซ์ความน่าจะเป็น

การแยกตัวประกอบเมทริกซ์สำหรับการตอบรับโดยปริยาย

เมธอดSVD สามารถ ปรับ ให้ เข้ากับ ชุด ข้อมูลคำ ติชมโดยปริยาย แนวคิดคือการดูผลตอบรับโดยนัยเป็นการวัดความมั่นใจทางอ้อม สมมติว่าความคิดเห็นโดยปริยายtᵤᵢวัดเปอร์เซ็นต์ของภาพยนตร์iที่ผู้ใช้คุณเคยดู — เช่นtᵤᵢ = 0 หมายความว่าคุณไม่เคยดูi , tᵤᵢ = 0.1 หมายความว่าเขาดูแค่ 10% ของเรื่องนี้tᵤᵢ = 2 หมายความว่าเขาดู มันสองครั้ง โดยสัญชาตญาณแล้ว ผู้ใช้มักจะสนใจภาพยนตร์ที่พวกเขาดูซ้ำสองครั้ง มากกว่าที่จะดูหนังที่ไม่เคยดูมาก่อน เราจึงกำหนดก เมทริกซ์ความเชื่อมั่นcᵤᵢและเมทริกซ์การให้คะแนนrᵤᵢ ดังนี้

เมทริกซ์ความเชื่อมั่นและเมทริกซ์การให้คะแนนสำหรับข้อเสนอแนะโดยนัย

จากนั้น เราสามารถจำลองrᵤᵢ ที่สังเกตได้ โดยใช้แบบจำลองเชิงเส้นเดียวกันกับที่ใช้สำหรับ SVD แต่มีฟังก์ชันการสูญเสียที่แตกต่างกันเล็กน้อย อันดับแรก เราคำนวณการสูญเสียของคู่ ( u , i ) ทั้งหมด — ซึ่งแตกต่างจากกรณีที่ชัดเจน หากผู้ใช้uไม่เคยโต้ตอบกับiเราจะได้rᵤᵢ = 0 แทนที่จะเป็นrᵤᵢ = “?” . ประการที่สอง เราให้น้ำหนักแต่ละคำที่สูญเสียตามความเชื่อมั่นที่คุณชอบ

ฟังก์ชันการสูญเสียสำหรับ SVD สำหรับข้อเสนอแนะโดยปริยาย

สุดท้าย สามารถใช้อัลกอริทึม SVD++ เมื่อเราสามารถเข้าถึงการตอบรับทั้งแบบชัดแจ้งและโดยนัย สิ่งนี้มีประโยชน์มาก เพราะโดยปกติแล้วผู้ใช้จะโต้ตอบกับหลายรายการ (= feedabck โดยปริยาย) แต่ให้คะแนนเพียงส่วนย่อยเล็กน้อยเท่านั้น (= ข้อเสนอแนะที่ชัดเจน) สมมติว่า สำหรับผู้ใช้แต่ละรายuชุดN(u) ของรายการที่ คุณ โต้ตอบด้วย จากนั้น เราถือว่าการโต้ตอบโดยปริยายกับไอเท็มjนั้นสัมพันธ์กับเวกเตอร์แฝงใหม่zⱼR อัลกอริทึม SVD++ แก้ไขแบบจำลองเชิงเส้นของ SVD โดยรวมการเป็นตัวแทนผู้ใช้ด้วยผลรวมถ่วงน้ำหนักของปัจจัยแฝงzⱼ เหล่านี้

SVD++ สำหรับข้อเสนอแนะแบบผสม (ชัดแจ้ง + โดยนัย)

วิธีไฮบริด: LightFM

วิธีการกรองร่วมกันตามการแยกตัวประกอบของเมทริกซ์มักจะให้ผลลัพธ์ที่ยอดเยี่ยม แต่ในสถานการณ์ที่เริ่มเย็น — ซึ่งมีข้อมูลการโต้ตอบเพียงเล็กน้อยหรือไม่มีเลยสำหรับรายการและผู้ใช้ใหม่ — พวกเขาไม่สามารถคาดการณ์ได้ดีเนื่องจากขาดข้อมูลที่จะประเมินปัจจัยแฝง แนวทางแบบผสมผสานแก้ปัญหานี้โดยใช้ประโยชน์จากรายการที่รู้จักหรือข้อมูลเมตาของผู้ใช้เพื่อปรับปรุงโมเดลการแยกตัวประกอบของเมทริกซ์ Python library LightFMใช้หนึ่งในอัลกอริธึมไฮบริดที่ได้รับความนิยมสูงสุด

ใน LightFM เราถือว่าผู้ใช้แต่ละรายuเราได้รวบรวมชุดคำอธิบายประกอบแท็กAᵁ(u) — เช่น“ชาย” , “อายุ < 30” , … — และเช่นเดียวกัน แต่ละรายการiจะมีชุดคำอธิบายประกอบAᴵ(i) — เช่น“price > 100 $” , “book” , … จากนั้นเราจะสร้างแบบจำลองแท็กผู้ใช้แต่ละแท็กโดยใช้ปัจจัยแฝงxᵁₐ R ᶠ และโดยใช้คำที่มีอคติbᵁₐ Rและเราถือว่าการแทนเวกเตอร์ผู้ใช้pᵤและอคติที่เกี่ยวข้องbᵤสามารถแสดงง่ายๆ เป็นผลรวมของเงื่อนไขเหล่านี้xᵁₐและbᵁₐตามลำดับ เราใช้วิธีการเดียวกันกับแท็กสินค้า โดยใช้ปัจจัยแฝงxᴵₐ ∈ Rᶠ และเงื่อนไขอคติbᴵₐ ∈ R เมื่อเรากำหนดpᵤ, qᵢ, bᵤ, bᵢโดยใช้สูตรเหล่านี้แล้ว เราสามารถใช้โมเดลเชิงเส้นเดียวกันของ SVD เพื่ออธิบายความสัมพันธ์ ระหว่างข้อกำหนดเหล่านี้กับrᵤᵢ

LightFM: การฝังผู้ใช้/รายการและอคติคือผลรวมของเวกเตอร์แฝงที่เกี่ยวข้องกับผู้ใช้/รายการแต่ละรายการ

ขอให้สังเกตว่ามีสามกรณีที่น่าสนใจของแนวทางแบบผสมผสานของ LightFM

  1. เริ่มเย็น หากเรามีไอเท็มใหม่iที่มีแท็กที่รู้จักAᴵ(i)เราก็สามารถใช้เวกเตอร์แฝงxᴵₐ (ที่ได้มาจากการติดตั้งโมเดลของเรากับข้อมูลก่อนหน้านี้) เพื่อคำนวณการฝังqᵢและดังนั้นจึงประเมินสำหรับผู้ใช้ใดๆuให้คะแนนrᵤᵢ .
  2. ไม่มีแท็กที่ใช้ได้ หากเราไม่มีข้อมูลเมตาที่รู้จักสำหรับรายการหรือผู้ใช้ คำอธิบายประกอบเดียวที่เราสามารถใช้ได้คือฟังก์ชันตัวบ่งชี้ กล่าวคือ คำอธิบายประกอบa ที่แตกต่างกัน สำหรับผู้ใช้แต่ละรายและแต่ละรายการ จากนั้น เมทริกซ์คุณลักษณะผู้ใช้และรายการจะเป็นเมทริกซ์ข้อมูลประจำตัว และ LightFM จะลดขนาดลงเป็นวิธีการกรองร่วมกันแบบคลาสสิก เช่น SVD
  3. ตามเนื้อหาเทียบกับไฮบริด หากเราใช้เฉพาะแท็กผู้ใช้หรือรายการโดยไม่มีคำอธิบายประกอบ LightFM เกือบจะเป็นโมเดลตามเนื้อหา ดังนั้น ในทางปฏิบัติ เพื่อใช้ประโยชน์จากการโต้ตอบระหว่างผู้ใช้กับรายการ เรายังเพิ่มคำอธิบายประกอบตัวบ่งชี้ที่แตกต่างจากผู้ใช้และแต่ละรายการไปยังแท็กที่รู้จัก
  • ระบบผู้แนะนำใช้ประโยชน์จากอัลกอริธึมการเรียนรู้ของเครื่องเพื่อช่วยให้ผู้ใช้มีตัวเลือกมากมายในการค้นหาเนื้อหาที่เกี่ยวข้อง
  • ข้อเสนอแนะที่ชัดเจนและโดยนัย : ข้อแรกใช้ประโยชน์ได้ง่ายกว่า แต่ข้อที่สองมีมากมายกว่า
  • โมเดล ตามเนื้อหาทำงานได้ดีในสถานการณ์ที่เริ่มเย็น แต่จำเป็นต้องทราบข้อมูลเมตาของ ผู้ใช้และรายการ
  • โมเดล การกรองร่วมกันโดยทั่วไปใช้การแยกตัวประกอบแบบเมทริกซ์: PMF, SVD, SVD สำหรับการป้อนกลับโดยปริยาย, SVD++
  • โมเดลแบบไฮบริดใช้ประโยชน์จากการกรองตามเนื้อหาและการทำงานร่วมกันได้ดีที่สุด LightFMเป็นตัวอย่างที่ดีของแนวทางนี้
  • วิกิพีเดีย ระบบ ผู้แนะนำ
  • “เซอร์ไพร์ส” เอกสารแพ็คเกจ Python
  • (S. Funk 2006), การอัปเดต Netflix: ลองสิ่งนี้ที่บ้าน
  • (R. Salakhutdinov 2007), การแยกตัวประกอบเมทริกซ์เชิงความน่าจะเป็น.
  • ( Y. Hu 2008), การกรองร่วมกันสำหรับชุดข้อมูล คำติชมโดยปริยาย
  • (Y. Koren 2009), เทคนิคการแยกตัวประกอบเมทริกซ์สำหรับระบบผู้แนะนำ .
  • (Y. Koren 2008) การแยกตัวประกอบตรงตามพื้นที่ใกล้เคียง: แบบจำลองการกรองร่วมกันหลายแง่มุม
  • ( M. Kula 2015), การฝังข้อมูลเมตาสำหรับผู้ใช้และคำแนะนำในการเริ่มเย็นของสินค้า