![]() | ![]() | ![]() |
คำแนะนำส่วนบุคคลนั้นใช้กันอย่างแพร่หลายสำหรับกรณีการใช้งานที่หลากหลายบนอุปกรณ์พกพา เช่น การดึงเนื้อหาสื่อ คำแนะนำผลิตภัณฑ์สำหรับช็อปปิ้ง และคำแนะนำแอพถัดไป หากคุณสนใจที่จะให้คำแนะนำส่วนบุคคลในแอปพลิเคชันของคุณโดยคำนึงถึงความเป็นส่วนตัวของผู้ใช้ เราขอแนะนำให้สำรวจตัวอย่างและชุดเครื่องมือต่อไปนี้
เริ่ม
เรามีแอปพลิเคชันตัวอย่าง TensorFlow Lite ที่สาธิตวิธีแนะนำรายการที่เกี่ยวข้องให้กับผู้ใช้บน Android
หากคุณกำลังใช้แพลตฟอร์มอื่นที่ไม่ใช่ Android หรือคุ้นเคยกับ TensorFlow Lite API อยู่แล้ว คุณสามารถดาวน์โหลดโมเดลคำแนะนำสำหรับผู้เริ่มต้นได้
เรายังจัดเตรียมสคริปต์การฝึกอบรมใน Github เพื่อฝึกโมเดลของคุณเองด้วยวิธีที่กำหนดค่าได้
ทำความเข้าใจสถาปัตยกรรมแบบจำลอง
เราใช้ประโยชน์จากสถาปัตยกรรมโมเดลตัวเข้ารหัสคู่ โดยมีตัวเข้ารหัสบริบทเพื่อเข้ารหัสประวัติผู้ใช้ตามลำดับและตัวเข้ารหัสฉลากเพื่อเข้ารหัสตัวเลือกคำแนะนำที่คาดการณ์ไว้ ความคล้ายคลึงกันระหว่างการเข้ารหัสบริบทและป้ายกำกับถูกใช้เพื่อแสดงโอกาสที่ผู้สมัครที่คาดการณ์ไว้จะตรงตามความต้องการของผู้ใช้
เทคนิคการเข้ารหัสประวัติผู้ใช้ตามลำดับที่แตกต่างกันสามแบบมีให้พร้อมกับฐานรหัสนี้:
- ตัวเข้ารหัส Bag-of-words (BOW): การเฉลี่ยการฝังกิจกรรมของผู้ใช้โดยไม่คำนึงถึงลำดับบริบท
- Convolutional neural network encoder (CNN): การใช้เครือข่ายประสาท convolutional หลายชั้นเพื่อสร้างการเข้ารหัสบริบท
- ตัวเข้ารหัสโครงข่ายประสาทเทียมแบบกำเริบ (RNN): การใช้โครงข่ายประสาทเทียมแบบกำเริบเพื่อเข้ารหัสลำดับบริบท
ในการสร้างแบบจำลองกิจกรรมของผู้ใช้แต่ละราย เราสามารถใช้ ID ของรายการกิจกรรม (อิงตาม ID) หรือฟีเจอร์หลายรายการของรายการ (อิงตามฟีเจอร์) หรือทั้งสองอย่างรวมกัน โมเดลตามคุณลักษณะที่ใช้คุณลักษณะหลายอย่างเพื่อเข้ารหัสพฤติกรรมของผู้ใช้โดยรวม ด้วยฐานรหัสนี้ คุณสามารถสร้างแบบจำลองตามรหัสหรือตามคุณลักษณะในลักษณะที่กำหนดค่าได้
หลังจากการฝึกอบรมแล้ว แบบจำลอง TensorFlow Lite จะถูกส่งออกซึ่งสามารถให้การคาดการณ์ระดับบนสุดจากตัวเลือกที่แนะนำได้โดยตรง
ใช้ข้อมูลการฝึกของคุณ
นอกจากโมเดลที่ได้รับการฝึกอบรมแล้ว เรายังมี ชุดเครื่องมือแบบโอเพนซอร์สใน GitHub เพื่อฝึกโมเดลด้วยข้อมูลของคุณเอง คุณสามารถทำตามบทช่วยสอนนี้เพื่อเรียนรู้วิธีใช้ชุดเครื่องมือและปรับใช้โมเดลที่ผ่านการฝึกอบรมในแอปพลิเคชันมือถือของคุณเอง
โปรดทำตามบทช่วย สอน นี้เพื่อใช้เทคนิคเดียวกับที่ใช้ในที่นี้เพื่อฝึกโมเดลคำแนะนำโดยใช้ชุดข้อมูลของคุณเอง
ตัวอย่าง
ตัวอย่างเช่น เราได้ฝึกอบรมแบบจำลองคำแนะนำด้วยวิธีการแบบอิงตาม ID และแบบอิงตามคุณลักษณะ โมเดลตาม ID จะใช้เฉพาะ ID ภาพยนตร์เป็นอินพุต และโมเดลตามฟีเจอร์ใช้ทั้ง ID ภาพยนตร์และ ID ประเภทภาพยนตร์เป็นอินพุต โปรดดูตัวอย่างอินพุตและเอาต์พุตต่อไปนี้
อินพุต
รหัสภาพยนตร์บริบท:
- เดอะไลอ้อนคิง (ID: 362)
- ทอย สตอรี่ (ID: 1)
- (และอื่น ๆ)
รหัสประเภทภาพยนตร์บริบท:
- แอนิเมชั่น (ID: 15)
- เด็ก (ID: 9)
- มิวสิคัล (ID: 13)
- แอนิเมชั่น (ID: 15)
- เด็ก (ID: 9)
- ตลก (ID: 2)
- (และอื่น ๆ)
ผลลัพธ์:
- รหัสภาพยนตร์ที่แนะนำ:
- ทอย สตอรี่ 2 (ID: 3114)
- (และอื่น ๆ)
มาตรฐานประสิทธิภาพ
ตัวเลขเปรียบเทียบประสิทธิภาพสร้างขึ้นด้วยเครื่องมือที่ อธิบายไว้ที่นี่
ชื่อรุ่น | ขนาดรุ่น | อุปกรณ์ | ซีพียู |
---|---|---|---|
คำแนะนำ (ID ภาพยนตร์เป็นอินพุต) | 0.52 Mb | Pixel 3 | 0.09ms* |
Pixel 4 | 0.05ms* | ||
คำแนะนำ (ID ภาพยนตร์และประเภทภาพยนตร์เป็นอินพุต) | 1.3 Mb | Pixel 3 | 0.13ms* |
Pixel 4 | 0.06ms* |
* ใช้ 4 เธรด
ใช้ข้อมูลการฝึกของคุณ
นอกจากโมเดลที่ได้รับการฝึกอบรมแล้ว เรายังมี ชุดเครื่องมือแบบโอเพนซอร์สใน GitHub เพื่อฝึกโมเดลด้วยข้อมูลของคุณเอง คุณสามารถทำตามบทช่วยสอนนี้เพื่อเรียนรู้วิธีใช้ชุดเครื่องมือและปรับใช้โมเดลที่ผ่านการฝึกอบรมในแอปพลิเคชันมือถือของคุณเอง
โปรดทำตามบทช่วย สอน นี้เพื่อใช้เทคนิคเดียวกับที่ใช้ในที่นี้เพื่อฝึกโมเดลคำแนะนำโดยใช้ชุดข้อมูลของคุณเอง
เคล็ดลับสำหรับการปรับแต่งโมเดลด้วยข้อมูลของคุณ
โมเดลที่ฝึกอบรมล่วงหน้าซึ่งรวมอยู่ในแอปพลิเคชันการสาธิตนี้ได้รับการฝึกอบรมด้วยชุดข้อมูล MovieLens คุณอาจต้องการแก้ไขการกำหนดค่าแบบจำลองตามข้อมูลของคุณเอง เช่น ขนาดคำศัพท์ การฝังตัวหรี่แสง และความยาวของบริบทอินพุต นี่คือเคล็ดลับบางประการ:
ความยาวบริบทอินพุต: ความยาวบริบทอินพุตที่ดีที่สุดจะแตกต่างกันไปตามชุดข้อมูล เราขอแนะนำให้เลือกความยาวบริบทของอินพุตโดยพิจารณาจากจำนวนเหตุการณ์ของป้ายกำกับที่สัมพันธ์กับความสนใจระยะยาวและบริบทในระยะสั้น
การเลือกประเภทตัวเข้ารหัส: เราขอแนะนำให้เลือกประเภทตัวเข้ารหัสตามความยาวของบริบทอินพุต ตัวเข้ารหัสแบบ Bag-of-words ทำงานได้ดีสำหรับความยาวของบริบทอินพุตสั้น (เช่น <10) ตัวเข้ารหัส CNN และ RNN ช่วยเพิ่มความสามารถในการสรุปสำหรับความยาวบริบทอินพุตที่ยาว
การใช้คุณสมบัติพื้นฐานเพื่อแสดงรายการหรือกิจกรรมของผู้ใช้สามารถปรับปรุงประสิทธิภาพของแบบจำลอง รองรับรายการใหม่ได้ดีขึ้น อาจเป็นการลดขนาดพื้นที่การฝังจึงลดการใช้หน่วยความจำและเป็นมิตรกับอุปกรณ์มากขึ้น