ส่วนก่อนหน้านี้แสดงวิธีใช้การแยกตัวประกอบเมทริกซ์เพื่อ เรียนรู้การฝัง ข้อจำกัดบางอย่างของการแยกตัวประกอบเมทริกซ์ ได้แก่
- ความยากในการใช้คุณลักษณะด้านข้าง (หมายถึงคุณลักษณะใดๆ นอกเหนือจาก รหัสการค้นหา/รหัสสินค้า) ดังนั้น โมเดลจะสามารถค้นหาได้โดยใช้ ผู้ใช้หรือรายการที่มีอยู่ในชุดการฝึก
- ความเกี่ยวข้องของคำแนะนำ ตามที่คุณเห็นใน Colab รายการยอดนิยมมักจะได้รับการแนะนำสำหรับทุกคน โดยเฉพาะเมื่อใช้ เห็นผลคูณเป็นการวัดความคล้ายคลึงกัน ควรใช้การจับภาพที่เจาะจง ความสนใจของผู้ใช้
โมเดลโครงข่ายระบบประสาทเทียมระดับลึก (DNN) สามารถจัดการกับข้อจำกัดของเมทริกซ์เหล่านี้ การแยกตัวประกอบ DNN สามารถผสานรวมฟีเจอร์การค้นหาและฟีเจอร์รายการได้อย่างง่ายดาย (เนื่องจากความยืดหยุ่นของเลเยอร์อินพุตของเครือข่าย) ซึ่งจะช่วย ดึงดูดความสนใจเฉพาะของผู้ใช้และปรับปรุงความเกี่ยวข้อง วิดีโอแนะนำ
Softmax DNN สำหรับคำแนะนำ
โมเดล DNN หนึ่งที่เป็นไปได้คือ softmax ซึ่งถือว่าเป็นโจทย์การคาดการณ์แบบหลายคลาสที่
- ข้อมูลที่ป้อนคือการค้นหาของผู้ใช้
- ผลลัพธ์คือเวกเตอร์ความน่าจะเป็นที่มีขนาดเท่ากับจำนวนของ รายการในข้อมูลภาษา ซึ่งแสดงความน่าจะเป็นที่จะมีการโต้ตอบ แต่ละรายการ เช่น ความน่าจะเป็นที่จะคลิกหรือดู วิดีโอ YouTube
อินพุต
อินพุตของ DNN ประกอบด้วย:
- ฟีเจอร์ที่หนาแน่น (เช่น เวลาในการรับชมและเวลาในการรับชมตั้งแต่การดูครั้งล่าสุด)
- ฟีเจอร์บางส่วน (เช่น ประวัติการดูและประเทศ)
ซึ่งต่างจากวิธีการแยกตัวประกอบเมทริกซ์ คุณสามารถเพิ่มฟีเจอร์ด้านข้าง เช่น อายุหรือประเทศ เราจะแทนค่าเวกเตอร์อินพุตด้วย x
สถาปัตยกรรมโมเดล
สถาปัตยกรรมโมเดลเป็นตัวกำหนดความซับซ้อนและการแสดงออกของโมเดล เพิ่มเลเยอร์ที่ซ่อนอยู่และฟังก์ชันการเปิดใช้งานแบบไม่เป็นเชิงเส้น (เช่น ReLU) โมเดลนี้สามารถบันทึกความสัมพันธ์ที่ซับซ้อนมากขึ้นในข้อมูล อย่างไรก็ตาม และจํานวนพารามิเตอร์ที่เพิ่มขึ้นมักจะทําให้โมเดล และมีราคาแพงกว่าในการให้บริการ เราจะแสดงเอาต์พุตของพารามิเตอร์ที่ซ่อนไว้ เลเยอร์ตาม \(\psi (x) \in \mathbb R^d\)
เอาต์พุต Softmax: การกระจายความน่าจะเป็นที่คาดการณ์ไว้
โมเดลจะจับคู่เอาต์พุตของเลเยอร์สุดท้าย \(\psi (x)\)ผ่าน softmax ไปยังการแจกแจงความน่าจะเป็น \(\hat p = h(\psi(x) V^T)\)โดยที่
- \(h : \mathbb R^n \to \mathbb R^n\) คือฟังก์ชัน Softmax ระบุโดย \(h(y)_i=\frac{e^{y_i}}{\sum_j e^{y_j}}\)
- \(V \in \mathbb R^{n \times d}\) คือเมทริกซ์น้ำหนักของ เลเยอร์ซอฟต์แมกซ์
เลเยอร์ Softmax จะจับคู่เวกเตอร์ของคะแนน \(y \in \mathbb R^n\) (บางครั้งเรียกว่า logits) ไปยังการแจกแจงความน่าจะเป็น
สูญเสียฟังก์ชัน
สุดท้าย ให้กำหนดฟังก์ชันการสูญหายที่เปรียบเทียบค่าต่อไปนี้
- \(\hat p\), เอาต์พุตของเลเยอร์ Softmax (การแจกแจงความน่าจะเป็น)
- \(p\)ข้อมูลจริงที่แสดงรายการที่ผู้ใช้มี โต้ตอบด้วย (เช่น วิดีโอ YouTube ที่ผู้ใช้คลิกหรือดู) ค่านี้สามารถแสดงเป็นการกระจายแบบ Multi-Hot แบบมาตรฐาน ( เวกเตอร์ความน่าจะเป็น)
ตัวอย่างเช่น คุณสามารถใช้การสูญเสียครอสเอนโทรปีเนื่องจากคุณกำลังเปรียบเทียบ การแจกแจงความน่าจะเป็นได้ 2 แบบ
การฝัง Softmax
ความน่าจะเป็นของรายการ \(j\) ระบุโดย เรียน\(\hat p_j = \frac{\exp(\langle \psi(x), V_j\rangle)}{Z}\) โดยที่ \(Z\) คือค่าคงที่มาตรฐานที่ไม่ขึ้นอยู่กับ \(j\)
กล่าวคือ \(\log(\hat p_j) = \langle \psi(x), V_j\rangle - log(Z)\) ดังนั้น บันทึกความน่าจะเป็นของแต่ละรายการ \(j\) (สูงสุดค่าคงที่การบวก) ผลคูณของจุดของเวกเตอร์ \(d\)มิติ 2 มิติ ซึ่งตีความได้ เป็นการฝังข้อความค้นหาและรายการ:
- \(\psi(x) \in \mathbb R^d\) เป็นเอาต์พุตของเลเยอร์ที่ซ่อนอยู่ล่าสุด เราเรียกสิ่งนี้ว่าการฝังข้อความค้นหา \(x\)
- \(V_j \in \mathbb R^d\) คือเวกเตอร์ของน้ำหนักที่เชื่อมต่อเลเยอร์ที่ซ่อนอยู่ล่าสุดกับเอาต์พุต j เราเรียกว่าการฝังรายการ \(j\)
DNN และการแยกตัวประกอบเมทริกซ์
ทั้งในโมเดลซอฟต์แมกซ์และโมเดลการแยกตัวประกอบเมทริกซ์ ระบบเรียนรู้เวกเตอร์ที่ฝัง \(V_j\) ต่อรายการ \(j\)สิ่งที่เราเรียกว่า เมทริกซ์การฝังรายการ \(V \in \mathbb R^{n \times d}\) ในเมทริกซ์ ตอนนี้การแยกตัวประกอบคือเมทริกซ์ของน้ำหนักของเลเยอร์ซอฟต์แมกซ์
อย่างไรก็ตาม การฝังการค้นหาจะแตกต่างกัน แทนที่จะต้องเรียนรู้ ฝัง 1 รายการ \(U_i\) ต่อคำค้นหา \(i\)ระบบจะเรียนรู้การแมป จากฟีเจอร์การค้นหา \(x\) ไปยังการฝัง \(\psi(x) \in \mathbb R^d\) คุณอาจมองว่าโมเดล DNN นี้เป็นการทำให้เมทริกซ์เป็นการทำให้ข้อมูลทั่วไป การแยกตัวประกอบ ซึ่งแทนที่การค้นหาด้วยคำที่ไม่ใช่แบบเชิงเส้น ฟังก์ชัน \(\psi(\cdot)\)
คุณสามารถใช้ฟีเจอร์รายการได้ไหม
คุณสามารถใช้แนวคิดเดียวกันนี้กับด้านรายการได้ไหม กล่าวคือ แทนที่จะเรียนรู้ การฝัง 1 รายการต่อรายการ โมเดลจะเรียนรู้ฟังก์ชันที่ไม่ใช่เชิงเส้นที่แมปได้หรือไม่ ฟีเจอร์รายการลงในการฝังหรือไม่ ได้ โดยใช้ 2 หอคอย โครงข่ายระบบประสาทเทียมซึ่งประกอบด้วยโครงข่ายประสาท 2 เครือข่าย ได้แก่
- ฟีเจอร์การค้นหาแผนที่โครงข่ายระบบประสาทเทียม 1 อย่าง \(x_{\text{query}}\) เพื่อค้นหาการฝัง วันที่\(\psi(x_{\text{query}}) \in \mathbb R^d\)
- ฟีเจอร์รายการแผนที่โครงข่ายระบบประสาทเทียม 1 รายการ \(x_{\text{item}}\) ไปยังการฝังรายการ วันที่\(\phi(x_{\text{item}}) \in \mathbb R^d\)
เอาต์พุตของโมเดลสามารถกำหนดเป็นผลคูณของจุดของ \(\langle \psi(x_{\text{query}}), \phi(x_{\text{item}}) \rangle\) โปรดทราบว่านี่ไม่ใช่รูปแบบ Softmax อีกต่อไป รูปแบบใหม่จะคาดการณ์ หนึ่งค่าต่อคู่ \((x_{\text{query}}, x_{\text{item}})\) แทนเวกเตอร์ความน่าจะเป็นสำหรับคำค้นหาแต่ละคำ \(x_{\text{query}}\)