ส่วนก่อนหน้านี้แสดงวิธีใช้การแยกตัวประกอบเมทริกซ์เพื่อ เรียนรู้การฝัง ข้อจำกัดบางอย่างของการแยกตัวประกอบเมทริกซ์ ได้แก่
- ความยากในการใช้คุณลักษณะด้านข้าง (หมายถึงคุณลักษณะใดๆ นอกเหนือจาก รหัสการค้นหา/รหัสสินค้า) ดังนั้น โมเดลจะสามารถค้นหาได้โดยใช้ ผู้ใช้หรือรายการที่มีอยู่ในชุดการฝึก
- ความเกี่ยวข้องของคำแนะนำ ตามที่คุณเห็นใน Colab รายการยอดนิยมมักจะได้รับการแนะนำสำหรับทุกคน โดยเฉพาะเมื่อใช้ เห็นผลคูณเป็นการวัดความคล้ายคลึงกัน ควรใช้การจับภาพที่เจาะจง ความสนใจของผู้ใช้
โมเดลโครงข่ายระบบประสาทเทียมระดับลึก (DNN) สามารถจัดการกับข้อจำกัดของเมทริกซ์เหล่านี้ การแยกตัวประกอบ DNN สามารถผสานรวมฟีเจอร์การค้นหาและฟีเจอร์รายการได้อย่างง่ายดาย (เนื่องจากความยืดหยุ่นของเลเยอร์อินพุตของเครือข่าย) ซึ่งจะช่วย ดึงดูดความสนใจเฉพาะของผู้ใช้และปรับปรุงความเกี่ยวข้อง วิดีโอแนะนำ
Softmax DNN สำหรับคำแนะนำ
โมเดล DNN หนึ่งที่เป็นไปได้คือ softmax ซึ่งถือว่าเป็นโจทย์การคาดการณ์แบบหลายคลาสที่
- ข้อมูลที่ป้อนคือการค้นหาของผู้ใช้
- ผลลัพธ์คือเวกเตอร์ความน่าจะเป็นที่มีขนาดเท่ากับจำนวนของ รายการในข้อมูลภาษา ซึ่งแสดงความน่าจะเป็นที่จะมีการโต้ตอบ แต่ละรายการ เช่น ความน่าจะเป็นที่จะคลิกหรือดู วิดีโอ YouTube
อินพุต
อินพุตของ DNN ประกอบด้วย:
- ฟีเจอร์ที่หนาแน่น (เช่น เวลาในการรับชมและเวลาในการรับชมตั้งแต่การดูครั้งล่าสุด)
- ฟีเจอร์บางส่วน (เช่น ประวัติการดูและประเทศ)
ซึ่งต่างจากวิธีการแยกตัวประกอบเมทริกซ์ คุณสามารถเพิ่มฟีเจอร์ด้านข้าง เช่น อายุหรือประเทศ เราจะแทนค่าเวกเตอร์อินพุตด้วย x
สถาปัตยกรรมโมเดล
สถาปัตยกรรมโมเดลเป็นตัวกำหนดความซับซ้อนและการแสดงออกของโมเดล เพิ่มเลเยอร์ที่ซ่อนอยู่และฟังก์ชันการเปิดใช้งานแบบไม่เป็นเชิงเส้น (เช่น ReLU) โมเดลนี้สามารถบันทึกความสัมพันธ์ที่ซับซ้อนมากขึ้นในข้อมูล อย่างไรก็ตาม และจํานวนพารามิเตอร์ที่เพิ่มขึ้นมักจะทําให้โมเดล และมีราคาแพงกว่าในการให้บริการ เราจะแสดงเอาต์พุตของพารามิเตอร์ที่ซ่อนไว้ เลเยอร์ตาม
เอาต์พุต Softmax: การกระจายความน่าจะเป็นที่คาดการณ์ไว้
โมเดลจะจับคู่เอาต์พุตของเลเยอร์สุดท้าย ผ่าน softmax ไปยังการแจกแจงความน่าจะเป็น โดยที่
- คือฟังก์ชัน Softmax ระบุโดย
- คือเมทริกซ์น้ำหนักของ เลเยอร์ซอฟต์แมกซ์
เลเยอร์ Softmax จะจับคู่เวกเตอร์ของคะแนน (บางครั้งเรียกว่า logits) ไปยังการแจกแจงความน่าจะเป็น
สูญเสียฟังก์ชัน
สุดท้าย ให้กำหนดฟังก์ชันการสูญหายที่เปรียบเทียบค่าต่อไปนี้
- , เอาต์พุตของเลเยอร์ Softmax (การแจกแจงความน่าจะเป็น)
- ข้อมูลจริงที่แสดงรายการที่ผู้ใช้มี โต้ตอบด้วย (เช่น วิดีโอ YouTube ที่ผู้ใช้คลิกหรือดู) ค่านี้สามารถแสดงเป็นการกระจายแบบ Multi-Hot แบบมาตรฐาน ( เวกเตอร์ความน่าจะเป็น)
ตัวอย่างเช่น คุณสามารถใช้การสูญเสียครอสเอนโทรปีเนื่องจากคุณกำลังเปรียบเทียบ การแจกแจงความน่าจะเป็นได้ 2 แบบ
การฝัง Softmax
ความน่าจะเป็นของรายการ ระบุโดย เรียน โดยที่ คือค่าคงที่มาตรฐานที่ไม่ขึ้นอยู่กับ
กล่าวคือ ดังนั้น บันทึกความน่าจะเป็นของแต่ละรายการ (สูงสุดค่าคงที่การบวก) ผลคูณของจุดของเวกเตอร์ มิติ 2 มิติ ซึ่งตีความได้ เป็นการฝังข้อความค้นหาและรายการ:
- เป็นเอาต์พุตของเลเยอร์ที่ซ่อนอยู่ล่าสุด เราเรียกสิ่งนี้ว่าการฝังข้อความค้นหา
- คือเวกเตอร์ของน้ำหนักที่เชื่อมต่อเลเยอร์ที่ซ่อนอยู่ล่าสุดกับเอาต์พุต j เราเรียกว่าการฝังรายการ
DNN และการแยกตัวประกอบเมทริกซ์
ทั้งในโมเดลซอฟต์แมกซ์และโมเดลการแยกตัวประกอบเมทริกซ์ ระบบเรียนรู้เวกเตอร์ที่ฝัง ต่อรายการ สิ่งที่เราเรียกว่า เมทริกซ์การฝังรายการ ในเมทริกซ์ ตอนนี้การแยกตัวประกอบคือเมทริกซ์ของน้ำหนักของเลเยอร์ซอฟต์แมกซ์
อย่างไรก็ตาม การฝังการค้นหาจะแตกต่างกัน แทนที่จะต้องเรียนรู้ ฝัง 1 รายการ ต่อคำค้นหา ระบบจะเรียนรู้การแมป จากฟีเจอร์การค้นหา ไปยังการฝัง คุณอาจมองว่าโมเดล DNN นี้เป็นการทำให้เมทริกซ์เป็นการทำให้ข้อมูลทั่วไป การแยกตัวประกอบ ซึ่งแทนที่การค้นหาด้วยคำที่ไม่ใช่แบบเชิงเส้น ฟังก์ชัน
คุณสามารถใช้ฟีเจอร์รายการได้ไหม
คุณสามารถใช้แนวคิดเดียวกันนี้กับด้านรายการได้ไหม กล่าวคือ แทนที่จะเรียนรู้ การฝัง 1 รายการต่อรายการ โมเดลจะเรียนรู้ฟังก์ชันที่ไม่ใช่เชิงเส้นที่แมปได้หรือไม่ ฟีเจอร์รายการลงในการฝังหรือไม่ ได้ โดยใช้ 2 หอคอย โครงข่ายระบบประสาทเทียมซึ่งประกอบด้วยโครงข่ายประสาท 2 เครือข่าย ได้แก่
- ฟีเจอร์การค้นหาแผนที่โครงข่ายระบบประสาทเทียม 1 อย่าง เพื่อค้นหาการฝัง วันที่
- ฟีเจอร์รายการแผนที่โครงข่ายระบบประสาทเทียม 1 รายการ ไปยังการฝังรายการ วันที่
เอาต์พุตของโมเดลสามารถกำหนดเป็นผลคูณของจุดของ โปรดทราบว่านี่ไม่ใช่รูปแบบ Softmax อีกต่อไป รูปแบบใหม่จะคาดการณ์ หนึ่งค่าต่อคู่ แทนเวกเตอร์ความน่าจะเป็นสำหรับคำค้นหาแต่ละคำ