อยากทำ ≠ ควรทำ
ใช้ Machine Learning อย่างไรให้เกิดประโยชน์กับธุรกิจ
ลูกค้า 💬
“บริษัทเรามีข้อมูลเยอะมากเลย อยากจะลองเอา Machine Learning / AI มาทำนาย … ให้มันแม่นยำขึ้น เห็นอีกเจ้านึงเค้าทำได้แล้ว”ผม 💬
“เคสนี้ผมว่าไม่ต้องใช้ Machine Learning ก็ได้นะครับ ไม่น่าจะคุ้ม”
นี่คือบทสนทนาที่เกิดขึ้นบ่อยครั้งเวลาผมเข้าไปสอนหรือให้คำปรึกษากับองค์กรต่างๆ
แม้แต่ใน Best Practices ของการทำ Machine Learning ที่ Google รวบรวมเอาไว้ ก็ยังแนะนำว่า กฎข้อแรกของการทำ Machine Learning คือ การไม่ใช้ Machine Learning
Rule #1: Don’t be afraid to launch a product without machine learning
แล้วเราจะรู้ได้อย่างไรว่า Data Project ไหน ควรทำหรือไม่ควรทำ? วันนี้ผมจะมาแนะนำ 3 ขั้นตอนที่จะช่วยให้คุณเข้าใจประโยชน์ที่จะได้รับจากการนำ Machine Learning มาใช้ในโปรเจคมากยิ่งขึ้น
1. Know your baseline
ก่อนจะบอกได้ว่าถ้านำ Machine Learning มาใช้แล้วจะมีประโยชน์แค่ไหน เราต้องบอกให้ได้ก่อนว่าปัญหาของเรายากง่ายยังไง? การตัดสินใจทุกวันนี้(แบบที่ยังไม่ได้มีการใช้โมเดล)ผิดพลาดมากน้อยแค่ไหน? ถ้าใช้แค่ Heuristic หรือกฎง่ายๆ ในการทำนายผลลัพธ์จะพอใช้งานได้หรือไม่?
หลายๆ คนมักจะเริ่มจากการยัดทุกอย่างเข้าโมเดล แล้วก็เอาค่า Error หรือ Accuracy มาดู ตัวเลขเหล่านี้ถึงแม้จะช่วยบอก Performance ว่าโมเดลเราตอนนี้ทำนายถูกผิดมากน้อยอย่างไร แต่มันไม่ได้บอกว่าโมเดลของเรา “ช่วย” ให้การทำนายดีขึ้นมากแค่ไหน
ตัวอย่างเช่น บางครั้งค่า Error ออกมาค่อนข้างน้อย แต่จริงๆ เป็นเพราะว่าเรากำลังแก้โจทย์การทำนายที่ค่อนข้างง่าย ผลลัพธ์ที่ต้องการทำนายไม่ได้มีความแปรปรวนมากนัก ซึ่งในกรณีนี้การทำนายโดยใช้ค่าเฉลี่ยง่ายๆ ก็อาจจะให้ค่า Error ที่น้อยเช่นกัน และเราอาจจะไม่จำเป็นต้องใช้ Machine Learning ก็ได้ หรือในทางตรงกันข้าม ค่า Error อาจจะออกมาสูงมาก จนดูเหมือน Machine Learning ไม่น่าจะช่วยอะไรได้ แต่อันที่จริงแล้วปัญหาที่เรากำลังทำนายเป็นโจทย์ที่ค่อนข้างยาก และการที่ Error มีค่ามาก ไม่ได้แปลว่าโมเดลของเราไม่สามารถ “ช่วย” ทำนายได้เลย (หรือไม่มี Explanatory Power)
ด้วยเหตุนี้เอง ก่อนจะเริ่มทำโปรเจค Machine Learning อะไรก็ตาม เราควรที่จะต้องหา “Baseline Performance” ให้ได้ก่อน หากเป็นปัญหาที่มีการตัดสินใจโดยมนุษย์อยู่แล้ว อาจจะลองเอาข้อมูลการทำนายในอดีตมาลองวัดผลดูว่าตัวเลขที่เคยทำนายไว้ในอดีตคลาดเคลื่อนมากน้อยแค่ไหน หากเป็นปัญหาที่ยังไม่เคยทำนายมาก่อนก็ลองคิดวิธีการทำนายง่ายๆ เช่น การใช้ค่าเฉลี่ย การใช้ค่าก่อนหน้า (t-1) ในการทำนายค่าปัจจุบัน (t) สำหรับปัญหา Time-series หรือการใช้โมเดลที่เป็น Rule-based ง่ายๆ โดยอาศัย Insights จากผู้เชี่ยวชาญ
ต่อไปนี้เวลามีใครมาถามลอยๆ ว่า “กำลังทำโมเดลอยู่ ได้ Accuracy ที่ x% ถือว่าดีหรือยัง” จงตอบไปว่า “ไม่รู้ ” เพราะมันอาจจะเป็นโมเดลดีมากหรือแย่มากก็ได้ ขึ้นอยู่กับโจทย์ที่กำลังต้องการทำนาย
2. Identify what matters
บ่อยครั้งที่การทำ Machine Learning ไม่ได้จบที่แค่การทำนายค่า ผลลัพธ์ที่ได้จากการทำนายมักจะถูกนำไปใช้เพื่อประกอบการตัดสินใจทางธุรกิจ ดังนั้นต่อให้ผลการทำนายจากโมเดลของเราจะแม่นยำมากขึ้นแค่ไหน หากสุดท้ายการตัดสินใจไม่ได้เปลี่ยนไปจากเดิม การนำ Machine Learning มาใช้ ก็อาจจะไม่สร้างประโยชน์ทางธุรกิจมากนัก
ตัวอย่างเช่น การทำ Demand Forecast เพื่อจัดการสินค้าคงคลัง สำหรับบางธุรกิจการสั่งสินค้าต้องสั่งเป็นล็อตใหญ่ เช่น ครั้งละ 1,000 ชิ้น การที่โมเดลทำนายแม่นขึ้นในระดับหนึ่ง จากเดิมทำนายว่ามีความต้องการซื้อสินค้า 720 ชิ้น เป็น 897.35 ชิ้น (~ 25% diff) อาจจะไม่ได้ส่งผลต่อการตัดสินใจว่าจะสั่งสินค้าเข้ามาทั้งหมดกี่ล็อตมากนัก การใช้การทำนายแบบเดิมๆ (หรือเรียกว่า “ประมาณ” อาจจะดีกว่า) ก็อาจจะตอบโจทย์อยู่แล้ว อย่างไรก็ตาม ถ้าโมเดลของเราสามารถทำนายความต้องการสินค้าที่มากหรือน้อยผิดปกติได้ดีด้วย นี่คือสิ่งที่อาจจะส่งผลต่อการตัดสินใจ และ “matter” สำหรับธุรกิจ
ฉะนั้นการตั้งเป้าหมายในการทำ Machine Learning ไม่ใช่แค่ให้โมเดลของเรามี Overall Performance ของการทำนายที่ดีขึ้น เราอาจจะต้องโฟกัสมากขึ้นว่าเราอยากให้โมเดลของเรามีพฤติกรรมอย่างไร ทำนายเคสไหนได้ดีเป็นพิเศษ
แค่ไหนเรียกว่า “matter” ก็อาจจะแตกต่างกันไปในแต่ละธุรกิจ บางองค์กรยอดขาย 100 ล้าน 1,000 ล้าน การตัดสินใจได้แม่นยำมากขึ้นเพียง 1% ก็เพิ่มรายได้ให้กับธุรกิจได้มหาศาล แต่ถ้าธุรกิจของคุณไม่ได้ใหญ่มาก ก็อาจจะต้องจัดลำดับความสำคัญดีๆ ให้ Data Scientist ค่าตัวราคาแพงของคุณลงแรงกับปัญหาที่ “matter” จริงๆ
3. Close the gap
หลังจากที่เรารู้ Baseline Performance และเป้าหมายที่ “matter” สำหรับธุรกิจแล้ว ก็ถึงเวลาเอา Machine Learning มาใช้ให้เกิดประโยชน์กับธุรกิจจริงๆ ซึ่งปัจจัยที่สำคัญมากๆ อย่างหนึ่งก็คือ “ข้อมูล” ที่จะเอามาเป็น Input ของโมเดล
สิ่งที่คอมพิวเตอร์ทำได้เก่งกว่ามนุษย์ คือ การหา pattern ที่ซ่อนอยู่ในข้อมูลขนาดใหญ่ ถ้าเราใช้ข้อมูลชุดเล็กๆ ที่มีตัวแปรแค่ไม่กี่ตัวเหมือนกับที่มนุษย์ใช้ในการตัดสินใจ โมเดลก็คงจะทำนายได้ดีกว่ามนุษย์ที่เป็นผู้เชี่ยวชาญไม่มากนัก ใครที่เคยลองทำ Machine Learning มาบ้าง ก็คงจะรู้ว่า Data สำคัญกว่า Algorithm มาก หากชุดข้อมูลเราขาดตัวแปรที่มีความสามารถในการทำนายหรือ Predictive power สูงๆ ไปสักตัว ไม่ว่าจะใช้โมเดลซับซ้อนแค่ไหน ก็สู้กับโมเดลง่ายๆ ที่มีข้อมูลเยอะกว่าไม่ได้
ดังนั้นการที่เราจะขยับจาก Baseline ไปให้ถึงเป้าหมายของเรา อยากให้ลองวิเคราะห์ดูว่าตอนนี้เคสที่เราตัดสินใจผิดเกิดจากสาเหตุอะไร เราต้องการข้อมูลอะไรเพิ่มเติมเพื่อช่วยให้เราทำนายเคสเหล่านี้ได้แม่นยำและนำไปสู่การตัดสินใจที่ถูกต้อง ตัวอย่างเช่น การทำนายราคาหุ้น หากเราใช้แค่ราคาหุ้นในอดีตมาทำนายราคาในอนาคต ก็ไม่ต่างอะไรมากกับการพล็อตกราฟแล้วลากเส้นต่อจุด แต่ถ้าเราอยากจะซื้อขายหุ้นได้ถูกจังหวะจริงๆ โมเดลเราก็อาจจะจำเป็นที่ต้องรู้ข้อมูลสภาพเศรษฐกิจ ข่าวสาร และเหตุการณ์สำคัญต่างๆ ที่อาจส่งผลต่อราคาหุ้นได้
หวังว่าบทความนี้จะช่วยให้คุณไม่เสียเวลากับ Data Project ที่(หัวหน้า) “อยากทำ” แต่ “ไม่ควรทำ” อีกต่อไปนะครับ 😎