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

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

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

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

Softmax DNN สําหรับคําแนะนํา

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

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

อินพุต

ข้อมูลที่ป้อนไปยัง DNN อาจรวมถึง

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

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

รูปภาพไฮไลต์เลเยอร์อินพุตในเครือข่ายประสาทเทียมระดับลึก Softmax
รูปที่ 1 เลเยอร์อินพุต x

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

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

รูปภาพไฮไลต์เลเยอร์ที่ซ่อนอยู่ในเครือข่ายประสาทเทียมระดับลึก Softmax
รูปที่ 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

เลเยอร์ Softmax จะแมปเวกเตอร์ของคะแนน \(y \in \mathbb R^n\) (บางครั้งเรียกว่า ตรรกะ) กับการกระจายความน่าจะเป็น

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

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

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

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

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

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

การแยกตัวประกอบ DNN และ Matrix

ทั้งในโมเดล Softmax และรูปแบบแฟกทอเรียลเมทริกซ์ ระบบเรียนรู้เวกเตอร์แบบฝัง 1 รายการ \(V_j\) ต่อรายการ \(j\)เราเรียกสิ่งนี้ว่าเมทริกซ์การฝังรายการ \(V \in \mathbb R^{n \times d}\) ในรูปแบบที่แบ่งเป็นเมทริกซ์ ซึ่งตอนนี้คือเมทริกซ์ของน้ําหนักของเลเยอร์ Softmax

แต่การค้นหาจะต่างกัน แทนที่จะเรียนรู้ การฝัง 1 รายการต่อ \(U_i\) การค้นหา \(i\)ระบบจะเรียนรู้การจับคู่จากฟีเจอร์การค้นหา \(x\) ไปยังการฝัง \(\psi(x) \in \mathbb R^d\) ดังนั้น คุณอาจมองว่าโมเดล DNN นี้เป็นรูปแบบทั่วไปของการแยกประเภทเมทริกซ์ไว้ ซึ่งคุณจะแทนที่ฝั่งการค้นหาด้วยฟังก์ชันที่ไม่ใช่แบบเชิงเส้น \(\psi(\cdot)\)

คุณสามารถใช้ฟีเจอร์รายการได้ไหม

คุณสามารถใช้แนวคิดเดียวกันกับฝั่งรายการได้ไหม กล่าวคือ แทนที่จะเรียนรู้ การฝัง 1 รายการต่อรายการ โมเดลจะเรียนรู้ฟังก์ชันที่ไม่ใช่เชิงเส้นซึ่งจะแมปฟีเจอร์รายการกับการฝังไหม ได้ โดยใช้เครือข่ายระบบประสาท ซึ่งมี 2 หอคอย ซึ่งประกอบด้วยเครือข่ายระบบประสาท 2 เครือข่ายดังนี้

  • ฟีเจอร์ระบบเครือข่ายแบบแมปเดียวจะแมปฟีเจอร์การค้นหา \(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 อีกต่อไป โมเดลใหม่จะคาดการณ์ 1 ค่าต่อคู่ \((x_{\text{query}}, x_{\text{item}})\) แทนเวกเตอร์ความน่าจะเป็นสําหรับคําค้นหาแต่ละรายการ \(x_{\text{query}}\)