โมเดลโครงข่ายระบบประสาทเทียมระดับลึก

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

  • ความยากในการใช้คุณลักษณะด้านข้าง (หมายถึงคุณลักษณะใดๆ นอกเหนือจาก รหัสการค้นหา/รหัสสินค้า) ดังนั้น โมเดลจะสามารถค้นหาได้โดยใช้ ผู้ใช้หรือรายการที่มีอยู่ในชุดการฝึก
  • ความเกี่ยวข้องของคำแนะนำ ตามที่คุณเห็นใน Colab รายการยอดนิยมมักจะได้รับการแนะนำสำหรับทุกคน โดยเฉพาะเมื่อใช้ เห็นผลคูณเป็นการวัดความคล้ายคลึงกัน ควรใช้การจับภาพที่เจาะจง ความสนใจของผู้ใช้

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

Softmax DNN สำหรับคำแนะนำ

โมเดล DNN หนึ่งที่เป็นไปได้คือ softmax ซึ่งถือว่าเป็นโจทย์การคาดการณ์แบบหลายคลาสที่

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

อินพุต

อินพุตของ DNN ประกอบด้วย:

  • ฟีเจอร์ที่หนาแน่น (เช่น เวลาในการรับชมและเวลาในการรับชมตั้งแต่การดูครั้งล่าสุด)
  • ฟีเจอร์บางส่วน (เช่น ประวัติการดูและประเทศ)

ซึ่งต่างจากวิธีการแยกตัวประกอบเมทริกซ์ คุณสามารถเพิ่มฟีเจอร์ด้านข้าง เช่น อายุหรือประเทศ เราจะแทนค่าเวกเตอร์อินพุตด้วย x

วันที่ รูปภาพที่ไฮไลต์เลเยอร์อินพุตในโครงข่ายระบบประสาทเทียมระดับลึกของซอฟต์แม็กซ์
รูปที่ 1 เลเยอร์อินพุต x

สถาปัตยกรรมโมเดล

สถาปัตยกรรมโมเดลเป็นตัวกำหนดความซับซ้อนและการแสดงออกของโมเดล เพิ่มเลเยอร์ที่ซ่อนอยู่และฟังก์ชันการเปิดใช้งานแบบไม่เป็นเชิงเส้น (เช่น ReLU) โมเดลนี้สามารถบันทึกความสัมพันธ์ที่ซับซ้อนมากขึ้นในข้อมูล อย่างไรก็ตาม และจํานวนพารามิเตอร์ที่เพิ่มขึ้นมักจะทําให้โมเดล และมีราคาแพงกว่าในการให้บริการ เราจะแสดงเอาต์พุตของพารามิเตอร์ที่ซ่อนไว้ เลเยอร์ตาม \(\psi (x) \in \mathbb R^d\)

วันที่ รูปภาพที่ไฮไลต์เลเยอร์ที่ซ่อนอยู่ในโครงข่ายระบบประสาทเทียมระดับลึกของซอฟต์แม็กซ์
รูปที่ 2 เอาต์พุตของเลเยอร์ที่ซ่อนอยู่ \(\psi (x)\)

เอาต์พุต 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) ไปยังการแจกแจงความน่าจะเป็น

วันที่ รูปภาพแสดงการแจกแจงความน่าจะเป็นที่คาดการณ์ไว้ในโครงข่ายประสาทแบบลึกของซอฟต์แมกซ์
รูปที่ 3 การแจกแจงความน่าจะเป็นที่คาดการณ์ไว้ \(\hat p = h(\psi(x) V^T)\)

สูญเสียฟังก์ชัน

สุดท้าย ให้กำหนดฟังก์ชันการสูญหายที่เปรียบเทียบค่าต่อไปนี้

  • \(\hat p\), เอาต์พุตของเลเยอร์ Softmax (การแจกแจงความน่าจะเป็น)
  • \(p\)ข้อมูลจริงที่แสดงรายการที่ผู้ใช้มี โต้ตอบด้วย (เช่น วิดีโอ YouTube ที่ผู้ใช้คลิกหรือดู) ค่านี้สามารถแสดงเป็นการกระจายแบบ Multi-Hot แบบมาตรฐาน ( เวกเตอร์ความน่าจะเป็น)

ตัวอย่างเช่น คุณสามารถใช้การสูญเสียครอสเอนโทรปีเนื่องจากคุณกำลังเปรียบเทียบ การแจกแจงความน่าจะเป็นได้ 2 แบบ

วันที่ รูปภาพแสดงฟังก์ชันการสูญเสียในโครงข่ายระบบประสาทเทียมระดับลึกซอฟต์แมกซ์
รูปที่ 4 ฟังก์ชันการสูญหาย

การฝัง 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\)
วันที่ รูปภาพแสดงการฝังในระบบโครงข่ายประสาทแบบลึกซอฟต์แมกซ์
รูปที่ 5 การฝังรายการ \(j\), \(V_j \in \mathbb R^d\)

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}}\)