ทำไม Netflix ถึงเลิกใช้ฟีเจอร์ที่สร้างขึ้นด้วยมือ (hand-crafted features)
ตลอดประวัติศาสตร์ส่วนใหญ่ ระบบแนะนำ (recommendation pipeline) ของ Netflix พึ่งพาแอตทริบิวต์ที่กำหนดขึ้นด้วยมือหลายพันรายการ ซึ่งเป็นเวกเตอร์ตัวเลขที่อธิบายผู้ใช้ ชื่อเรื่อง และทุกการปฏิสัมพันธ์ระหว่างกัน วิศวกรต้องใช้เวลาหลายสัปดาห์ในการแปลงประเภทเนื้อหาใหม่ๆ เช่น กีฬาถ่ายทอดสด พอดแคสต์ หรือเกม ให้กลายเป็นชุดฟีเจอร์ใหม่ ก่อนที่ระบบจะเริ่มแนะนำได้ กระบวนการนี้มีต้นทุนสูง เปราะบาง และยากที่จะปรับให้ทันกับการขยายตัวอย่างรวดเร็วของแคตตาล็อก
โมเดลภาษาขนาดใหญ่ (LLMs) สำเร็จรูปนั้นไม่ได้ผลดีนักเมื่อนำมาใช้งานทันที เนื่องจากพวกมันมักจะโน้มเอียงไปทางชื่อเรื่องที่ได้รับความนิยมสูงสุด บางครั้งก็เกิดอาการหลอน (hallucinate) โดยสร้างรายการที่ไม่มีอยู่จริง และประสบปัญหาในการบังคับใช้กฎทางธุรกิจเพื่อให้การแนะนำมีความปลอดภัยและตรงประเด็น ด้วยเหตุนี้ Netflix จึงได้สร้าง pipeline ที่ใช้ LLM ขึ้นมาโดยเฉพาะ ซึ่งยังคงรักษาจุดแข็งของโมเดลภาษาไว้ในขณะที่ยังเคารพข้อจำกัดในการใช้งานจริง (production constraints)
เจาะลึก GenRec: pipeline การฝึกฝนแบบสองขั้นตอน
GenRec ประกอบด้วยสองขั้นตอนที่แตกต่างกัน:
- การทำ fine-tuning โมเดลพื้นฐาน – Netflix เริ่มต้นจากโมเดลภาษาแบบ open-weight และทำการ fine-tune ด้วยข้อมูลการรับชมภายใน วิธีนี้จะช่วยสอนโมเดลให้รู้จักคำศัพท์ในแคตตาล็อกและรูปแบบพฤติกรรมของผู้ใช้ โดยไม่ต้องเปลี่ยนสถาปัตยกรรมหลัก
- การจัดลำดับการแนะนำ (Recommendation ranking) – การฝึกฝนรอบที่สองจะเปลี่ยนโมเดลที่ผ่านการ fine-tune แล้วให้กลายเป็นตัวจัดลำดับ (ranker) ที่ทำหน้าที่ให้คะแนนชื่อเรื่องที่น่าจะเป็นไปได้สำหรับผู้ใช้แต่ละราย Netflix จะอัปเดตขั้นตอนนี้บ่อยครั้งเพื่อให้โมเดลทันสมัยต่อเนื้อหาใหม่ๆ และเทรนด์ที่เปลี่ยนแปลงไป
ความแตกต่างที่สำคัญจากระบบเดิมคือวิธีการป้อนประวัติของผู้ใช้เข้าสู่โมเดล แทนที่จะบีบอัดเซสชันการรับชมให้เป็นเวกเตอร์ที่มีความหนาแน่น (dense vectors) GenRec จะแปลงการปฏิสัมพันธ์แต่ละครั้ง เช่น ระยะเวลาการเล่น การกดถูกใจหรือถูกใจไม่ (thumbs-up/thumbs-down) หรือการเลิกดูเร็วเกินไป ให้กลายเป็นประโยคภาษาอังกฤษธรรมดา จากนั้นโมเดลจะอ่านเซสชันทั้งหมดเสมือนเป็นบทสนทนาสั้นๆ ทำให้สามารถตรวจจับการเปลี่ยนแปลงเล็กๆ น้อยๆ ในความชอบด้านแนวเพลงหรืออารมณ์ได้ โดยไม่ต้องทำ feature engineering อย่างชัดเจน
ประสิทธิภาพและผลลัพธ์ที่เพิ่มขึ้น
ในการทดลองเป็นเวลาสี่สัปดาห์ที่เปิดให้ผู้ใช้งาน Netflix 10% ได้ทดลองใช้ GenRec ระบบใหม่สามารถสร้างการเติบโตที่มีนัยสำคัญทางสถิติในสองกลุ่มตัวชี้วัด:
- การมีส่วนร่วมในระยะสั้น – อัตราการคลิก (click-through) และสัญญาณเวลาในการรับชม (watch-time) หลักที่ขับเคลื่อนการแนะนำรายวันเพิ่มขึ้น 0.115%
- ตัวชี้วัดหลักในระยะยาว – อัตราการรักษาผู้สมัครสมาชิก (subscriber-retention) และคะแนนความพึงพอใจโดยรวมซึ่งสำคัญที่สุดต่อธุรกิจ เพิ่มขึ้น 0.006%
ในการทดสอบแบบ offline คุณภาพการจัดลำดับบนชุดข้อมูลที่แยกไว้ (held-out dataset) ดีขึ้น 1.6% เมื่อเทียบกับเกณฑ์มาตรฐาน (baseline) ในระบบปัจจุบัน สิ่งที่น่าทึ่งยิ่งกว่าคือประสิทธิภาพด้านข้อมูล: ขั้นตอนการฝึกฝนที่สองใช้ตัวอย่างที่มีการติดป้ายกำกับ (labeled examples) เพียงประมาณ 1/40 ของที่ pipeline แบบดั้งเดิมต้องใช้เพื่อให้ได้ระดับประสิทธิภาพที่เท่ากัน
เพื่อควบคุมค่าใช้จ่ายในการประมวลผล Netflix รันโมเดลด้วย vLLM ซึ่งเป็น serving stack ที่ให้คะแนนผู้สมัครทุกคนในการผ่านข้อมูลเพียงรอบเดียว (single forward pass) แทนที่จะเป็นการสร้างข้อความ (text generation) นอกจากนี้ ระบบยังใช้การกรองข้อมูลอย่างเข้มงวดเพื่อให้เฉพาะเหตุการณ์ที่มีสัญญาณสำคัญ (high-signal events) เท่านั้นที่อยู่ใน context window ของโมเดล ซึ่งช่วยลดจำนวน token ที่ไม่จำเป็นและลดความหน่วง (latency)
การเปลี่ยนจาก "ฟีเจอร์" ไปสู่ "บริบท" หมายถึงอะไร
GenRec เป็นส่วนหนึ่งของความเคลื่อนไหวที่กว้างขึ้น ซึ่ง "context engineering" เข้ามาแทนที่การสร้างฟีเจอร์ด้วยมือ แทนที่จะออกแบบสถาปัตยกรรมเฉพาะสำหรับงานแนะนำแต่ละอย่าง วิศวกรจะตัดสินใจว่าจะใส่สัญญาณ (signals) ใดลงใน text prompt และปล่อยให้โมเดลภาษาใช้เหตุผลจากสัญญาณเหล่านั้น แนวทางนี้ช่วยให้การนำเนื้อหาประเภทใหม่ๆ เข้าสู่ระบบทำได้รวดเร็วขึ้น เช่น ตอนของพอดแคสต์หรือการถ่ายทอดสดเกมสามารถอธิบายได้ด้วยประโยคเดียวและเข้าร่วมในกลุ่มการแนะนำได้ทันที โดยไม่ต้องผ่านขั้นตอนการกำหนดฟีเจอร์ที่อาจใช้เวลาหลายเดือน
อุปสรรคที่ยังคงเหลืออยู่
ระบบแนะนำที่ใช้ LLM ไม่ใช่คำตอบสำหรับทุกปัญหา (silver bullet) แนวโน้มที่พวกมันจะให้ความสำคัญกับรายการยอดนิยมมากเกินไปยังคงทำให้เกิดความลำเอียง (bias) ในแคตตาล็อก และความต้องการ GPU ที่ทรงพลังก็ทำให้ต้นทุนการดำเนินงานสูงขึ้น แม้จะมี vLLM และการกรองข้อมูลอย่างเข้มงวด แต่การให้บริการโมเดลภาษาขนาดใหญ่ในระดับสเกลของ Netflix ก็ยังต้องอาศัยวิศวกรรมที่ละเอียดรอบคอบเพื่อให้บรรลุเป้าหมายด้านความหน่วง (latency)
