• Uber ใช้ ETA สำหรับการคำนวณค่าโดยสาร การคาดการณ์เวลารับผู้โดยสาร การจับคู่ระหว่างผู้โดยสารกับคนขับ และการวางแผนเวลาในการจัดส่ง
  • เอนจิน ETA แบบดั้งเดิมจะแบ่งเครือข่ายถนนออกเป็นหน่วยย่อย ๆ แล้วคำนวณโดยกำหนดน้ำหนักลงบนกราฟ
    → ค้นหาเส้นทางที่เหมาะสมที่สุดด้วยอัลกอริทึมเส้นทางสั้นที่สุด แล้วเพิ่มน้ำหนักเข้าไป
  • แต่ "แผนที่ไม่ใช่ภูมิประเทศจริง" กราฟถนนเป็นเพียงโมเดลง่าย ๆ และไม่สามารถสะท้อนสถานการณ์จริงได้
  • อีกทั้งก็ไม่รู้ว่าผู้โดยสาร/คนขับจะเลือกเส้นทางใด
  • Uber จึงฝึกโมเดลแมชชีนเลิร์นนิงด้วยการผสานข้อมูลย้อนหลังและสัญญาณจริงเข้ากับการคาดการณ์บนฐานของกราฟถนน เพื่อหา ETA ที่ดีกว่า
  • ตลอดหลายปีที่ผ่านมา Uber ใช้ "Gradient-boosted decision tree ensembles" เพื่อปรับปรุงการทำนาย ETA
    → แต่ตอนนี้ได้ไปถึงข้อจำกัดที่ไม่สามารถขยายต่อได้แล้วด้วย Apache Spark + XGBoost
  • จึงเปลี่ยนมาใช้ดีปเลิร์นนิงเพื่อแก้ปัญหาหลัก 3 ข้อ
    • Latency : คำนวณ ETA ภายในไม่กี่มิลลิวินาที
    • Accuracy : ปรับปรุง MAE(Mean Absolute Error, ค่าคลาดเคลื่อนสัมบูรณ์เฉลี่ย) ให้ดีกว่าโมเดล XGBoost
    • Generality : ให้บริการการทำนาย ETA ทั่วโลกสำหรับทุกธุรกิจของ Uber
  • ทดสอบสถาปัตยกรรมโครงข่ายประสาทเทียม 7 แบบ
    → สุดท้ายพบว่า สถาปัตยกรรม Encoder-Decoder ที่ใช้ Self-Attention (Transformer) ให้ความแม่นยำดีที่สุด
    → แม้ความแม่นยำจะสูง แต่ความเร็วช้าเกินไป จึงเลือก Linear Transformer ที่ปรับปรุงการคำนวณให้เร็วขึ้น

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น