- 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 ที่ปรับปรุงการคำนวณให้เร็วขึ้น
ยังไม่มีความคิดเห็น