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

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

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

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

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

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

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

อินพุต

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

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

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

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

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

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

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

เอาต์พุต Softmax: การกระจายความน่าจะเป็นที่คาดการณ์ไว้

โมเดลจะจับคู่เอาต์พุตของเลเยอร์สุดท้าย ψ(x)ผ่าน softmax ไปยังการแจกแจงความน่าจะเป็น p^=h(ψ(x)VT)โดยที่

  • h:RnRn คือฟังก์ชัน Softmax ระบุโดย h(y)i=eyijeyj
  • VRn×d คือเมทริกซ์น้ำหนักของ เลเยอร์ซอฟต์แมกซ์

เลเยอร์ Softmax จะจับคู่เวกเตอร์ของคะแนน yRn (บางครั้งเรียกว่า logits) ไปยังการแจกแจงความน่าจะเป็น

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

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

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

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

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

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

การฝัง Softmax

ความน่าจะเป็นของรายการ j ระบุโดย เรียนp^j=exp(ψ(x),Vj)Z โดยที่ Z คือค่าคงที่มาตรฐานที่ไม่ขึ้นอยู่กับ j

กล่าวคือ log(p^j)=ψ(x),Vjlog(Z) ดังนั้น บันทึกความน่าจะเป็นของแต่ละรายการ j (สูงสุดค่าคงที่การบวก) ผลคูณของจุดของเวกเตอร์ dมิติ 2 มิติ ซึ่งตีความได้ เป็นการฝังข้อความค้นหาและรายการ:

  • ψ(x)Rd เป็นเอาต์พุตของเลเยอร์ที่ซ่อนอยู่ล่าสุด เราเรียกสิ่งนี้ว่าการฝังข้อความค้นหา x
  • VjRd คือเวกเตอร์ของน้ำหนักที่เชื่อมต่อเลเยอร์ที่ซ่อนอยู่ล่าสุดกับเอาต์พุต j เราเรียกว่าการฝังรายการ j
วันที่ รูปภาพแสดงการฝังในระบบโครงข่ายประสาทแบบลึกซอฟต์แมกซ์
รูปที่ 5 การฝังรายการ j, VjRd

DNN และการแยกตัวประกอบเมทริกซ์

ทั้งในโมเดลซอฟต์แมกซ์และโมเดลการแยกตัวประกอบเมทริกซ์ ระบบเรียนรู้เวกเตอร์ที่ฝัง Vj ต่อรายการ jสิ่งที่เราเรียกว่า เมทริกซ์การฝังรายการ VRn×d ในเมทริกซ์ ตอนนี้การแยกตัวประกอบคือเมทริกซ์ของน้ำหนักของเลเยอร์ซอฟต์แมกซ์

อย่างไรก็ตาม การฝังการค้นหาจะแตกต่างกัน แทนที่จะต้องเรียนรู้ ฝัง 1 รายการ Ui ต่อคำค้นหา iระบบจะเรียนรู้การแมป จากฟีเจอร์การค้นหา x ไปยังการฝัง ψ(x)Rd คุณอาจมองว่าโมเดล DNN นี้เป็นการทำให้เมทริกซ์เป็นการทำให้ข้อมูลทั่วไป การแยกตัวประกอบ ซึ่งแทนที่การค้นหาด้วยคำที่ไม่ใช่แบบเชิงเส้น ฟังก์ชัน ψ()

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

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

  • ฟีเจอร์การค้นหาแผนที่โครงข่ายระบบประสาทเทียม 1 อย่าง xquery เพื่อค้นหาการฝัง วันที่ψ(xquery)Rd
  • ฟีเจอร์รายการแผนที่โครงข่ายระบบประสาทเทียม 1 รายการ xitem ไปยังการฝังรายการ วันที่ϕ(xitem)Rd

เอาต์พุตของโมเดลสามารถกำหนดเป็นผลคูณของจุดของ ψ(xquery),ϕ(xitem) โปรดทราบว่านี่ไม่ใช่รูปแบบ Softmax อีกต่อไป รูปแบบใหม่จะคาดการณ์ หนึ่งค่าต่อคู่ (xquery,xitem) แทนเวกเตอร์ความน่าจะเป็นสำหรับคำค้นหาแต่ละคำ xquery