การฝึก Softmax

หน้าก่อนหน้านี้อธิบายวิธีรวมเลเยอร์ Soft Max เข้ากับโครงข่ายประสาทแบบลึกสําหรับระบบการแนะนํา หน้านี้แสดงข้อมูลการฝึก ของระบบนี้อย่างละเอียดยิ่งขึ้น

ข้อมูลการฝึก

ข้อมูลการฝึกของ Softmax ประกอบด้วยฟีเจอร์การค้นหา \(x\) และเวกเตอร์ของรายการที่ผู้ใช้โต้ตอบด้วย (แสดงเป็นการกระจายความน่าจะเป็น \(p\)) โดยจะแสดงเป็นสีน้ําเงิน ในรูปต่อไปนี้ ตัวแปรของโมเดลคือน้ําหนักในเลเยอร์ต่างๆ และจะมีการทําเครื่องหมายเป็นสีส้ม ด้วยรูปต่อไปนี้ โมเดลมักจะได้รับการฝึกโดยใช้ตัวแปรแบบไล่ระดับแบบขั้นบันได

รูปภาพที่เน้นการฝึกโครงข่ายประสาทแบบลึกของ Softmax

การสุ่มตัวอย่างเชิงลบ

เนื่องจากฟังก์ชันการสูญเสียจะเปรียบเทียบเวกเตอร์ความน่าจะเป็น 2 อัน \(p, \hat p(x) \in \mathbb R^n\) (ข้อมูลจากการสังเกตการณ์และเอาต์พุตของโมเดลตามลําดับ) การประมวลผลการไล่ระดับสีของการสูญเสีย (สําหรับคําค้นหาเดียว \(x\)) จึงอาจมีราคาแพงมากหากขนาดคอร์ปัส \(n\) มีขนาดใหญ่เกินไป

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

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

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

ตัวอย่างเชิงลบคือรายการที่มีป้ายกํากับ "ไม่มีความเกี่ยวข้อง&quot ในการค้นหา การแสดงตัวอย่างโมเดลเชิงลบระหว่างการฝึกสอนจะสร้างโมเดลที่การฝังกลุ่มที่ต่างกันออกจากกัน

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

  • รายการเชิงบวกทั้งหมด (รายการที่ปรากฏในป้ายกํากับเป้าหมาย)
  • ตัวอย่างรายการเชิงลบ (\(j\) ใน \({1, …, n}\))

มีกลยุทธ์ต่างๆ ในการสุ่มตัวอย่างเชิงลบ ดังนี้

  • คุณทําให้ตัวอย่างอาหารอยู่ในรูปแบบเดียวกันได้
  • คุณมอบความน่าจะเป็นที่สูงกว่าให้แก่รายการ j ที่มีคะแนนสูงกว่าได้ \(\psi(x) . V_j\)พูดง่ายๆ ก็คือ ตัวอย่างเหล่านี้มีผลต่อการไล่ระดับมากที่สุด) ตัวอย่างเหล่านี้มักเรียกว่าคีย์เวิร์ดเชิงลบเชิงลบ

เกี่ยวกับเมทริกซ์การแยกตัวประกอบกับ Softmax

โมเดล DNN จะแก้ปัญหาหลายๆ ประการเกี่ยวกับการแยกตัวสะสมของเมทริกซ์ แต่มักจะแพงกว่าเมื่อฝึกและค้นหา ตารางด้านล่างจะสรุปความแตกต่างที่สําคัญ ระหว่างโมเดลทั้งสองนี้

การแยกตัวประกอบเมทริกซ์ Softmax DNN
ฟีเจอร์การค้นหา ใส่ไม่ง่าย รวมได้
การเริ่มแอปแบบ Cold Start ไม่จัดการกับการค้นหาหรือคําศัพท์มากเกินไป ใช้วิธีการวิเคราะห์บางอย่างได้ (เช่น สําหรับการค้นหาใหม่ การฝังคําค้นหาที่คล้ายกันโดยเฉลี่ย) จัดการการค้นหาใหม่ได้อย่างง่ายดาย
บริการพับ การพับจะลดลงได้ง่ายโดยการปรับน้ําหนักที่มองไม่เห็นใน WALS มีแนวโน้มที่จะพับ ต้องใช้เทคนิค เช่น การเก็บตัวอย่างหรือแรงโน้มถ่วงเชิงลบ
ความสามารถในการปรับขนาดการฝึก ปรับขนาดได้ง่ายเป็นคลังเนื้อหาขนาดใหญ่มาก (อาจมีหลายร้อยล้านรายการขึ้นไป) แต่ในกรณีที่มีเมทริกซ์อินพุตเพียงน้อยนิด หนักขึ้นเพื่อให้ปรับขนาดเป็นเนื้อหาขนาดใหญ่มาก เทคนิคบางอย่างอาจนํามาใช้ได้ เช่น การแฮช การสุ่มตัวอย่างเชิงลบ ฯลฯ
ความสามารถในการปรับขนาด การฝัง U, V เป็นแบบคงที่ และกลุ่มผู้สมัครต่างๆ จะคํานวณและจัดเก็บล่วงหน้าได้ การฝังรายการ V เป็นแบบคงที่และจัดเก็บได้

โดยปกติแล้วจะต้องคํานวณการฝังคําค้นหา ณ เวลาสืบค้น ทําให้โมเดลแสดงราคาสูงขึ้น

บทสรุปมีดังนี้

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