37 คะแนน โดย xguru 2026-01-21 | 2 ความคิดเห็น | แชร์ทาง WhatsApp
  • ฟีด "For You" ของ X ใช้ ระบบแนะนำที่ขับเคลื่อนด้วยแมชชีนเลิร์นนิง ซึ่งพัฒนาขึ้นเพื่อยกระดับคุณภาพการแนะนำคอนเทนต์แบบเฉพาะบุคคล
  • ฟีดถูกประกอบขึ้นจาก 2 แหล่งคือ บัญชีที่ติดตาม (Thunder) และ คอนเทนต์นอกเครือข่ายที่ไม่ได้ติดตาม (Phoenix Retrieval)
  • โพสต์ผู้สมัครทั้งหมดจะถูกประเมินด้วย Phoenix ซึ่งเป็นโมเดล Transformer บนพื้นฐาน Grok เพื่อจัดอันดับสุดท้าย
    • โมเดลนี้คาดการณ์ความน่าจะเป็นของการมีส่วนร่วมกับแต่ละโพสต์
  • ระบบได้ถอดฟีเจอร์ที่ออกแบบด้วยมือทั้งหมดและฮิวริสติกอัลกอริทึมส่วนใหญ่ออกไป
  • วิเคราะห์ประวัติกิจกรรมของผู้ใช้ (ไลก์ ตอบกลับ แชร์) เพื่อค้นหาคอนเทนต์ที่เกี่ยวข้อง

สถาปัตยกรรมระบบ

  • Home Mixer เป็นชั้น orchestration ที่ประสานทั้งพายป์ไลน์
    • มีขั้นตอน Query Hydration สำหรับรวบรวมประวัติพฤติกรรมผู้ใช้และข้อมูลการติดตาม
    • จัดการลำดับขั้นตั้งแต่การดึงผู้สมัคร การเสริมข้อมูล การกรอง การให้คะแนน ไปจนถึงการคัดเลือกสุดท้าย
    • ส่งคืนโพสต์ที่เรียงลำดับตามผู้ใช้ผ่าน ScoredPostsService ที่ทำงานบน gRPC
  • Thunder เป็นพื้นที่เก็บข้อมูลแบบอินเมมโมรี ที่รวบรวมโพสต์แบบเรียลไทม์ผ่าน Kafka event stream
    • จัดการพื้นที่เก็บข้อมูลต่อผู้ใช้สำหรับโพสต์ต้นฉบับ การตอบกลับ/รีโพสต์ และโพสต์วิดีโอ
    • ให้ผู้สมัครโพสต์แบบ "In-network" จากบัญชีที่ผู้ใช้ร้องขอติดตามอยู่
    • ส่งมอบโพสต์ล่าสุดจากบัญชีที่ติดตามด้วยความหน่วงต่ำมาก
    • ทำให้ได้ ประสิทธิภาพการค้นหาระดับต่ำกว่ามิลลิวินาที โดยไม่ต้องเข้าถึงฐานข้อมูลภายนอก
  • Phoenix คือคอมโพเนนต์ ML หลักของระบบแนะนำ ประกอบด้วย 2 ขั้นคือ Retrieval และ Ranking
    • Retrieval: ใช้ โมเดล Two-Tower เพื่อคำนวณความคล้ายกันระหว่าง embedding ของคุณลักษณะ/ประวัติการมีส่วนร่วมของผู้ใช้กับ embedding ของโพสต์ แล้วดึงโพสต์ Top-K
    • Ranking: ใช้โครงสร้าง Transformer with Candidate Isolation เพื่อให้แต่ละผู้สมัครถูกประเมินอย่างเป็นอิสระ
      • รับอินพุตเป็นบริบทของผู้ใช้ (ประวัติการมีส่วนร่วม) และโพสต์ผู้สมัคร
      • คาดการณ์ ความน่าจะเป็นของหลายพฤติกรรม เช่น ไลก์ ตอบกลับ รีโพสต์ คลิก สำหรับแต่ละโพสต์
  • Candidate Pipeline เป็นเฟรมเวิร์กพายป์ไลน์แนะนำที่นำกลับมาใช้ซ้ำได้
    • กำหนด trait เช่น Source, Hydrator, Filter, Scorer, Selector
    • มีการทำงานแบบขนาน การจัดการข้อผิดพลาด และความสามารถด้าน logging ในตัว เพื่อรองรับการขยายและความเสถียร

วิธีการทำงาน

  • ขั้นตอนของพายป์ไลน์

    • 1. ดึงข้อมูลคำขอ : นำประวัติกิจกรรมล่าสุดและเมทาดาทาของผู้ใช้ (เช่น รายการติดตาม) มาใช้
    • 2. ค้นหาผู้สมัคร : ค้นหาโพสต์ผู้สมัครจากแหล่งต่อไปนี้
      • Thunder : โพสต์ล่าสุดจากบัญชีที่ติดตาม (ภายในเครือข่าย)
      • Phoenix Retrieval : โพสต์ที่ค้นพบด้วยแมชชีนเลิร์นนิงจากคลังคอนเทนต์ทั่วโลก (นอกเครือข่าย)
    • 3. Hydration ผู้สมัคร โดยใช้ข้อมูลต่อไปนี้ :
      • ข้อมูลหลักของโพสต์ (ข้อความ สื่อ ฯลฯ)
      • ข้อมูลผู้เขียน (ชื่อผู้ใช้ สถานะยืนยันตัวตน)
      • ความยาววิดีโอ (สำหรับโพสต์วิดีโอ)
      • สถานะการสมัครสมาชิก
    • 4. ตัวกรองก่อนให้คะแนน : นำโพสต์ที่ตรงตามเงื่อนไขต่อไปนี้ออก
      • ซ้ำกัน
      • เก่าเกินไป
      • เป็นของผู้ชมเอง
      • มาจากบัญชีที่ถูกบล็อก/ปิดเสียง
      • มีคีย์เวิร์ดที่ถูกปิดเสียง
      • เคยเห็นมาก่อนหรือเพิ่งถูกเสิร์ฟไปไม่นาน
      • เป็นคอนเทนต์ที่ไม่สามารถสมัครรับได้
    • 5. วิธีให้คะแนน : ใช้ตัวให้คะแนนหลายตัวตามลำดับ
      • Phoenix Scorer : ดึงผลการคาดการณ์จากแมชชีนเลิร์นนิงด้วยโมเดล Phoenix Transformer
      • Weighted score calculator : รวมผลการคาดการณ์เพื่อคำนวณคะแนนความเกี่ยวข้องสุดท้าย
      • Author diversity score calculator : ลดผลกระทบของคะแนนจากผู้เขียนซ้ำ เพื่อเพิ่มความหลากหลาย
      • OON scorer : ปรับคะแนนสำหรับคอนเทนต์นอกเครือข่าย
    • 6. การคัดเลือก : เรียงตามคะแนนแล้วเลือกผู้สมัคร Top K
    • 7. ขั้นตอนหลังการคัดเลือก : ตรวจสอบขั้นสุดท้ายกับโพสต์ผู้สมัคร
  • การให้คะแนนและการจัดอันดับ

    • รวมค่าคาดการณ์ของโมเดล Phoenix ด้วย วิธี weighted sum
    • ให้น้ำหนักสูงกับพฤติกรรมเชิงบวก (ไลก์ แชร์ ฯลฯ) และหักคะแนนสำหรับพฤติกรรมเชิงลบ (บล็อก รายงาน ฯลฯ)
  • การกรองสองชั้น

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

หลักการออกแบบสำคัญ

  • ตัดการทำฟีเจอร์เอนจิเนียริงด้วยมือออก ให้ Transformer เรียนรู้จากลำดับพฤติกรรมผู้ใช้โดยตรง
  • Candidate Isolation เพื่อให้ได้คะแนนที่สม่ำเสมอและทำ caching ได้ง่าย
  • Hash-based embedding ใช้ฟังก์ชันแฮชหลายตัวในการดึง embedding ทั้งในขั้น retrieval และ ranking
  • Multi-Action Prediction คาดการณ์หลายพฤติกรรม แทนคะแนน "ความเกี่ยวข้อง" เพียงค่าเดียว
  • สถาปัตยกรรมพายป์ไลน์แบบโมดูลาร์
    • แยกการรันและมอนิเตอร์พายป์ไลน์ออกจากตรรกะทางธุรกิจ
    • รองรับการทำงานแบบขนานของแต่ละขั้นและการจัดการข้อผิดพลาดอย่างเหมาะสม
    • เพิ่มแหล่งข้อมูลใหม่ การทำ hydration ตัวกรอง และตัวให้คะแนนใหม่ได้ง่าย

ลิขสิทธิ์

2 ความคิดเห็น

 
pmc7777 2026-01-21

"Rust 62.9%"

 
nemorize 2026-01-21

트위터의 추천알고리즘을 오픈소스로 공개
อันนี้จะเป็นอีกอย่างหนึ่งหรือเปล่านะครับ? ไว้สุดสัปดาห์ต้องหาเวลาอ่านดูแล้ว...