หน้าก่อนหน้านี้อธิบายวิธีรวมเลเยอร์ Soft Max เข้ากับโครงข่ายประสาทแบบลึกสําหรับระบบการแนะนํา หน้านี้แสดงข้อมูลการฝึก ของระบบนี้อย่างละเอียดยิ่งขึ้น
ข้อมูลการฝึก
ข้อมูลการฝึกของ Softmax ประกอบด้วยฟีเจอร์การค้นหา \(x\) และเวกเตอร์ของรายการที่ผู้ใช้โต้ตอบด้วย (แสดงเป็นการกระจายความน่าจะเป็น \(p\)) โดยจะแสดงเป็นสีน้ําเงิน ในรูปต่อไปนี้ ตัวแปรของโมเดลคือน้ําหนักในเลเยอร์ต่างๆ และจะมีการทําเครื่องหมายเป็นสีส้ม ด้วยรูปต่อไปนี้ โมเดลมักจะได้รับการฝึกโดยใช้ตัวแปรแบบไล่ระดับแบบขั้นบันได
การสุ่มตัวอย่างเชิงลบ
เนื่องจากฟังก์ชันการสูญเสียจะเปรียบเทียบเวกเตอร์ความน่าจะเป็น 2 อัน \(p, \hat p(x) \in \mathbb R^n\) (ข้อมูลจากการสังเกตการณ์และเอาต์พุตของโมเดลตามลําดับ) การประมวลผลการไล่ระดับสีของการสูญเสีย (สําหรับคําค้นหาเดียว \(x\)) จึงอาจมีราคาแพงมากหากขนาดคอร์ปัส \(n\) มีขนาดใหญ่เกินไป
คุณสามารถตั้งค่าระบบให้คํานวณการไล่ระดับสีเฉพาะรายการเชิงบวกเท่านั้น (รายการที่ทํางานอยู่ในเวกเตอร์ข้อมูลจากการสังเกตการณ์โดยตรง) อย่างไรก็ตาม หากระบบฝึกเฉพาะคู่เชิงบวก โมเดลก็อาจประสบปัญหาในการพับได้ ดังที่อธิบายไว้ในด้านล่าง
โมเดลอาจเรียนรู้วิธีวางคําค้นหา/รายการที่ฝังของสีที่ระบุโดยสัมพันธ์กับกันและกัน (จับภาพความคล้ายคลึงกันอย่างถูกต้องภายในสีนั้น) แต่การฝังจากสีต่างๆ อาจบรรจบกันในภูมิภาคเดียวกันของส่วนที่ฝัง ปรากฏการณ์นี้ซึ่งเรียกว่าครึ่งหน้าบนอาจทําให้เกิดคําแนะนําที่ไม่ถูกต้อง เช่น ในเวลาสืบค้น โมเดลอาจคาดการณ์คะแนนสูงสุดสําหรับรายการหนึ่งจากกลุ่มอื่นอย่างไม่ถูกต้อง
ตัวอย่างเชิงลบคือรายการที่มีป้ายกํากับ "ไม่มีความเกี่ยวข้อง" ในการค้นหา การแสดงตัวอย่างโมเดลเชิงลบระหว่างการฝึกสอนจะสร้างโมเดลที่การฝังกลุ่มที่ต่างกันออกจากกัน
แทนที่จะใช้ข้อมูลทั้งหมดในการคํานวณการไล่ระดับสี (ซึ่งอาจแพงเกินไป) หรือใช้เฉพาะรายการเชิงบวก (ซึ่งจะทําให้โมเดลมีแนวโน้มที่จะพับได้) คุณสามารถใช้การสุ่มตัวอย่างเชิงลบ ระบบจะคํานวณการไล่ระดับสีให้แม่นยํามากขึ้นโดยใช้รายการต่อไปนี้
- รายการเชิงบวกทั้งหมด (รายการที่ปรากฏในป้ายกํากับเป้าหมาย)
- ตัวอย่างรายการเชิงลบ (\(j\) ใน \({1, …, n}\))
มีกลยุทธ์ต่างๆ ในการสุ่มตัวอย่างเชิงลบ ดังนี้
- คุณทําให้ตัวอย่างอาหารอยู่ในรูปแบบเดียวกันได้
- คุณมอบความน่าจะเป็นที่สูงกว่าให้แก่รายการ j ที่มีคะแนนสูงกว่าได้ \(\psi(x) . V_j\)พูดง่ายๆ ก็คือ ตัวอย่างเหล่านี้มีผลต่อการไล่ระดับมากที่สุด) ตัวอย่างเหล่านี้มักเรียกว่าคีย์เวิร์ดเชิงลบเชิงลบ
เกี่ยวกับเมทริกซ์การแยกตัวประกอบกับ Softmax
โมเดล DNN จะแก้ปัญหาหลายๆ ประการเกี่ยวกับการแยกตัวสะสมของเมทริกซ์ แต่มักจะแพงกว่าเมื่อฝึกและค้นหา ตารางด้านล่างจะสรุปความแตกต่างที่สําคัญ ระหว่างโมเดลทั้งสองนี้
การแยกตัวประกอบเมทริกซ์ | Softmax DNN | |
---|---|---|
ฟีเจอร์การค้นหา | ใส่ไม่ง่าย | รวมได้ |
การเริ่มแอปแบบ Cold Start | ไม่จัดการกับการค้นหาหรือคําศัพท์มากเกินไป ใช้วิธีการวิเคราะห์บางอย่างได้ (เช่น สําหรับการค้นหาใหม่ การฝังคําค้นหาที่คล้ายกันโดยเฉลี่ย) | จัดการการค้นหาใหม่ได้อย่างง่ายดาย |
บริการพับ | การพับจะลดลงได้ง่ายโดยการปรับน้ําหนักที่มองไม่เห็นใน WALS | มีแนวโน้มที่จะพับ ต้องใช้เทคนิค เช่น การเก็บตัวอย่างหรือแรงโน้มถ่วงเชิงลบ |
ความสามารถในการปรับขนาดการฝึก | ปรับขนาดได้ง่ายเป็นคลังเนื้อหาขนาดใหญ่มาก (อาจมีหลายร้อยล้านรายการขึ้นไป) แต่ในกรณีที่มีเมทริกซ์อินพุตเพียงน้อยนิด | หนักขึ้นเพื่อให้ปรับขนาดเป็นเนื้อหาขนาดใหญ่มาก เทคนิคบางอย่างอาจนํามาใช้ได้ เช่น การแฮช การสุ่มตัวอย่างเชิงลบ ฯลฯ |
ความสามารถในการปรับขนาด | การฝัง U, V เป็นแบบคงที่ และกลุ่มผู้สมัครต่างๆ จะคํานวณและจัดเก็บล่วงหน้าได้ | การฝังรายการ V เป็นแบบคงที่และจัดเก็บได้
โดยปกติแล้วจะต้องคํานวณการฝังคําค้นหา ณ เวลาสืบค้น ทําให้โมเดลแสดงราคาสูงขึ้น |
บทสรุปมีดังนี้
- การแฟกทอเรียลเมทริกซ์มักเป็นตัวเลือกที่ดีกว่าสําหรับคลังเนื้อหาขนาดใหญ่ ปรับสัดส่วนได้ง่ายขึ้น ถูกกว่า คําค้นหา และมีแนวโน้มที่จะพับได้น้อยกว่า
- โมเดล DNN จะบันทึกค่ากําหนดที่ปรับเปลี่ยนในแบบของแต่ละคนได้ดีกว่า แต่ฝึกมากกว่าและแพงกว่าเมื่อเทียบกับคําค้นหา โมเดล DNN แนะนําให้ใช้การแยกแบบเมทริกซ์เพื่อการให้คะแนน เนื่องจากโมเดล DNN สามารถใช้ฟีเจอร์มากกว่าเพื่อบันทึกความเกี่ยวข้องได้ดีขึ้น นอกจากนี้ โมเดล DNN มักจะพับได้ เนื่องจากคุณสนใจให้ความสําคัญกับกลุ่มผู้สมัครที่ได้รับการกรองในเบื้องต้นอยู่แล้ว ซึ่งถือว่ามีความเกี่ยวข้อง