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