การแยกตัวประกอบเมทริกซ์เป็นโมเดลการฝังแบบง่ายๆ เนื่องจาก เมทริกซ์ความคิดเห็น A โดยที่ คือ จำนวนผู้ใช้ (หรือคำค้นหา) และ คือจำนวนรายการ โมเดลจะเรียนรู้ว่า
- ผู้ใช้ฝังเมทริกซ์ ที่แถว i คือการฝังสำหรับผู้ใช้ i
- เมทริกซ์ที่ฝังรายการ โดยที่แถว j คือการฝังสำหรับรายการ j
ระบบจะเรียนรู้การฝังเพื่อให้ผลิตภัณฑ์ เป็น การประมาณที่ดีของเมทริกซ์ความคิดเห็น A สังเกตว่า รายการ ก็คือผลิตภัณฑ์แบบจุด ของการฝังของผู้ใช้ และรายการที่ต้องการ ซึ่งต้องอยู่ใกล้กับ
เลือกฟังก์ชันวัตถุประสงค์
ฟังก์ชันวัตถุประสงค์ทั่วไปฟังก์ชันหนึ่งคือระยะทางยกกำลัง 2 วิธีการคือ ลดผลรวมของข้อผิดพลาดยกกำลังสองของรายการที่สังเกตได้ทุกคู่:
ในฟังก์ชันวัตถุประสงค์นี้ คุณจะรวมได้เฉพาะคู่ที่สังเกตการณ์ (i, j) นั่นคือ มากกว่าค่าที่ไม่ใช่ 0 ในเมทริกซ์ความคิดเห็น อย่างไรก็ตาม การสรุปเพียงอย่างเดียว สำหรับค่าหนึ่งๆ ไม่ใช่แนวคิดที่ดี เมทริกซ์ของทุกค่าจะมี การสูญเสียน้อยที่สุดและสร้างโมเดลที่ไม่สามารถให้คำแนะนำที่มีประสิทธิภาพ และเป็นภาพรวมที่ไม่ดี
บางทีคุณอาจปฏิบัติต่อค่าที่ตรวจไม่พบว่าเป็น 0 และรวมทั้งหมด รายการในเมทริกซ์ ซึ่งสอดคล้องกับการลดขนาด โฟรเบเนียสยกกำลังสอง ระยะห่างระหว่าง ถึงค่าประมาณ :
คุณสามารถแก้โจทย์กำลังสองนี้ผ่าน การแยกค่าเดี่ยวๆ (SVD) ของเมทริกซ์ อย่างไรก็ตาม SVD ไม่ใช่โซลูชันที่ดีเช่นกัน เพราะในการใช้งานจริง เมทริกซ์ อาจมีปริมาณน้อย ตัวอย่างเช่น ลองนึกถึงวิดีโอทั้งหมด บน YouTube เทียบกับวิดีโอทั้งหมดที่ผู้ใช้รายหนึ่งเคยดู ผลเฉลย (ซึ่งสอดคล้องกับค่าประมาณของโมเดล ของเมทริกซ์อินพุต) ก็น่าจะอยู่ใกล้ 0 และนำไปสู่ การเพิ่มประสิทธิภาพโดยรวม
ในทางตรงกันข้าม การใช้แฟกเตอร์เมทริกซ์แบบถ่วงน้ำหนักจะแยกวัตถุประสงค์ ให้เป็นผลรวม 2 รายการต่อไปนี้
- ผลรวมของรายการที่สังเกตได้
- ผลรวมของรายการที่ตรวจไม่พบ (นับเป็น 0)
ในที่นี้ คือไฮเปอร์พารามิเตอร์ที่ถ่วงน้ำหนักคำทั้งสอง เพื่อให้วัตถุประสงค์ไม่ถูกควบคุมโดยฝ่ายใดฝ่ายหนึ่ง การปรับแต่งไฮเปอร์พารามิเตอร์นี้สำคัญมาก
โดยที่ คือฟังก์ชันของความถี่ของคำค้นหา i และรายการ j
ลดฟังก์ชันของวัตถุประสงค์ให้เหลือน้อยที่สุด
อัลกอริทึมทั่วไปที่ใช้ลดฟังก์ชันของวัตถุประสงค์ให้น้อยที่สุดมีดังนี้
การไล่ระดับสีแบบสโตแคติก (SGD) เป็นวิธีทั่วไปในการลดฟังก์ชันการสูญเสียข้อมูล
สี่เหลี่ยมจัตุรัสน้อยที่สุดแบบสลับแบบถ่วงน้ำหนัก (WALS) เหมาะสำหรับการตั้งค่านี้ วัตถุประสงค์ที่เฉพาะเจาะจง
วัตถุประสงค์คือกำลังสองในสองเมทริกซ์ U และ V (โปรดทราบว่า แต่ปัญหาจะไม่นูนขึ้นมาพร้อมกัน) WALS ทำงานโดยการเริ่มต้น ระบบจะฝังแบบสุ่ม จากนั้นจะสลับสับเปลี่ยนระหว่าง
- กำลังแก้ไข และแก้ปัญหาสำหรับ
- กำลังแก้ไข และแก้ปัญหาสำหรับ
แต่ละขั้นตอนสามารถแก้ได้อย่างแม่นยำ (ผ่านทางคำตอบของระบบเชิงเส้น) และสามารถ ที่จะนำไปเผยแพร่ เรารับประกันว่าเทคนิคนี้จะบรรจบกันเพราะแต่ละขั้นตอน สามารถลดการสูญเสียได้
SGD กับ WALS
SGD และ WALS มีข้อดีและข้อเสีย ตรวจสอบข้อมูลด้านล่างเพื่อดูการเปรียบเทียบ
SGD
ยืดหยุ่นมาก อาจใช้การสูญเสียอื่นๆ ได้ ฟังก์ชัน
โหลดพร้อมกันได้
ช้าลง - ไม่บรรจบกันเร็ว
ยากต่อการจัดการรายการที่ระบุไม่ได้ (ต้องการ เพื่อใช้การสุ่มตัวอย่างเชิงลบหรือแรงโน้มถ่วง)
WALS
ใช้ใน Loss Squares เท่านั้น
โหลดพร้อมกันได้
ผสานรวมเร็วกว่า SGD
จัดการรายการที่มองไม่เห็นได้ง่ายขึ้น