สัญชาตญาณของมนุษย์ที่อยู่เบื้องหลัง SVD ในกรณีของระบบแนะนำ

Aug 20 2020

สิ่งนี้ไม่ตอบคำถามของฉัน ฉันพยายามอย่างมากที่จะเข้าใจ SVD จากมุมมองเชิงเส้น - พีชคณิต แต่ในบางกรณีฉันเชื่อมต่อจุดไม่สำเร็จ ดังนั้นฉันจึงเริ่มเห็นการใช้ SVD ทั้งหมด เช่นระบบแนะนำภาพยนตร์ระบบจัดอันดับหน้า Google เป็นต้น

ตอนนี้ในกรณีของระบบแนะนำภาพยนตร์สิ่งที่ฉันมีเป็นภาพจิตคือ ...

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

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

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

คำตอบ

3 EricPerkerson Aug 20 2020 at 18:53

คุณกำลังสับสน SVD กับอัลกอริทึมการเติมเมทริกซ์ SVD ใช้เวลา$(m \times n)$ เมทริกซ์ข้อมูล $M$ และแยกตัวประกอบเข้าไป $M = U \Sigma V^\text{T}$ในขณะที่อัลกอริธึมการเติมเมทริกซ์จะใช้เมทริกซ์ที่มีรายการที่ขาดหายไปและเติมข้อมูลเหล่านั้นตามเกณฑ์บางอย่าง โดยเฉพาะอย่างยิ่ง SVD ไม่ใช่เทคนิคการกรองแบบทำงานร่วมกันสำหรับระบบคำแนะนำอย่างที่คุณกำลังพูดถึงและจะแยกเมทริกซ์ใด ๆ ออกเป็นสามเมทริกซ์ไม่ใช่สองเมทริกซ์และไม่สามารถยอมรับเมทริกซ์ที่มีรายการที่ขาดหายไปเป็นอินพุตได้

หากสิ่งที่คุณต้องการจริงๆคือสัญชาตญาณบางอย่างเกี่ยวกับอัลกอริทึมการเติมเมทริกซ์คุณต้องเข้าใจว่าสมมติฐานหลักที่อยู่เบื้องหลังคือสิ่งที่กำหนด $(m \times n)$ เมทริกซ์ $M$ มีอันดับต่ำซึ่งหมายความว่า $\text{rank}(M) < \min(m, n)$. ในกรณีของปัญหา Netflix เราคิดว่าลูกค้า Netflix ทั้งหมดตกอยู่ในกลุ่มใดกลุ่มหนึ่งซึ่งทั้งหมดให้คะแนนภาพยนตร์ในลักษณะเดียวกันโดยประมาณ หากเรามีภาพยนตร์เพียง 5 เรื่องที่อยู่ระหว่างการพิจารณาและลูกค้า 6 รายคุณอาจมีเมตริกซ์เรตติ้งเช่นนี้$$ \left[ \begin{matrix} 1 & 1 & 5 & 5 & 5 & 2\\ 2 & 2 & 1 & 1 & 1 & 1\\ 5 & 5 & 5 & 5 & 5 & 3\\ 5 & 5 & 4 & 4 & 4 & 4\\ 3 & 3 & 2 & 2 & 2 & 4 \end{matrix} \right] $$โดยที่แต่ละแถวสอดคล้องกับภาพยนตร์และแต่ละคอลัมน์สอดคล้องกับลูกค้า ลูกค้าแบ่งออกเป็นสามกลุ่มที่แตกต่างกันโดยลูกค้าที่ 1 และ 2 มีการให้คะแนนสำหรับภาพยนตร์ทั้ง 5 เรื่องที่เท่ากันลูกค้าที่ 3, 4 และ 5 มีการให้คะแนนสำหรับภาพยนตร์ทั้ง 5 เรื่องเท่ากันและลูกค้าที่ 6 มีกลุ่มเฉพาะของตัวเอง สิ่งนี้ทำให้เมทริกซ์มี$\text{rank}(M) = 3$เนื่องจากมีคอลัมน์อิสระเชิงเส้นเพียงสามคอลัมน์ หากนี่คือการให้คะแนนที่แท้จริงที่ลูกค้าแต่ละรายจะให้หากพวกเขาเห็นและให้คะแนนภาพยนตร์ทั้ง 5 เรื่องถ้าเราลบรายการเพื่อสร้างเมทริกซ์$$ \left[ \begin{matrix} 1 & 1 & 5 & 5 & 5 & 2\\ 2 & 2 & 1 & 1 & 1 & 1\\ 5 & 5 & 5 & * & 5 & 3\\ 5 & 5 & 4 & 4 & 4 & 4\\ 3 & 3 & 2 & 2 & 2 & 4 \end{matrix} \right] $$ ที่ไหน $*$ หมายถึงรายการที่ไม่รู้จักหรือถูกลบโดยรู้ว่า $\text{rank}(M) = 3$ มีข้อมูลเพียงพอที่จะกรอกข้อมูลในรายการที่ขาดหายไปเพราะถ้าเป็นอย่างอื่นที่ไม่ใช่ 5 อันดับของเมทริกซ์ก็จะเป็น 4 ไม่ใช่ 3

เพื่อให้เข้าใจโดยสังหรณ์ใจว่า SVD เกี่ยวข้องกับการแก้ปัญหานี้อย่างไรคุณต้องเข้าใจด้วยว่ารายการของเมทริกซ์ $\Sigma$ (เรียกว่าค่าเอกพจน์ของเมทริกซ์ $M$) ยังบอกคุณเกี่ยวกับอันดับของ $M$. เพื่อให้เฉพาะเจาะจง$\text{rank}(M) = \text{(the number of non-zero singular values)}$. อัลกอริธึมการทำให้เสร็จสมบูรณ์ของเมทริกซ์มีความซับซ้อนกว่าในความเป็นจริง แต่โดยพื้นฐานแล้วแนวคิดนี้ก็เหมือนกับในตัวอย่างง่ายๆนี้ด้วยรายการที่ถูกลบ

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

  1. อันดับของเมทริกซ์
  2. การสลายตัวของค่าลักษณะเฉพาะของเมทริกซ์ (สารตั้งต้นของ SVD)
  3. SVD
  4. เสร็จสิ้นเมทริกซ์