เก็บตก LINE Developer Day 2019 — ฉบับ Data Science และ AI (Part 1)
Case Study การใช้ข้อมูลเพื่อพัฒนา LINE Messaging
ความเดิมตอนที่แล้ว
ยุคนี้ใครๆ ก็พูดถึง Data Science และ AI ฟังดูล้ำและง่ายไปหมด แต่เหล่า Data Scientist ทั้งหลายคงจะรู้กันดีอยู่แล้วว่า ไม่ใช่เลย! 🙅🏻♂️ จากข้อมูลมากมายมหาศาลกว่าจะหา Insights เจอ จนสามารถนำไปใช้พัฒนาผลิตภัณฑ์และมี Impact ทางธุรกิจได้นั้น ไม่ใช่เรื่องง่าย 🤦♀️ หรือการจะทำระบบ AI ขึ้นมาสักระบบ อย่างระบบแนะนำ (Recommender System) ที่แทบจะมีอยู่ในทุกเว็บหรือแอปดังๆ ก็มีรายละเอียดที่ซับซ้อนกว่าที่ทุกคนคิด การที่จะทำออกมาให้ระบบมีความแม่นยำสูงจึงไม่ใช่เรื่องง่ายอีกเช่นกัน 🤦🏻♂️
เริ่มตั้งแต่พาร์ทนี้ ผมเลยอยากจะหยิบเอาทอล์กที่ชอบมาก 3 อัน ที่ Speaker ได้มาเล่าถึง Process, Best Practice และ Practical Guide ในการทำงานด้าน Data มาเขียนให้ทุกคนได้อ่านกัน (สำหรับใครที่ขี้เกียจอ่านยาวๆ หรืออดใจรออันถัดๆ ไปไม่ไหว สามารถกดดูสไลด์ด้วยตัวเองได้เลยครับ)
- Data Science Drives Improvement of LINE Messenger (Taro Takaguchi)
- Feature as a Service at Data Labs (Chaerim Yeo)
- Timeline Post Recommender System (Jihong Lee)
การใช้ข้อมูลเพื่อพัฒนา Product
คนที่ควร(ส่งไปให้)อ่าน: Data Scientist/Analyst, Product Owner, Team Lead
Data Science มีคำว่า “Science” อยู่ เพราะจริงๆ แล้วกระบวนการทำงานของ Data Scientist ก็คือกระบวนการวิจัยหรือการทดลองทางวิทยาศาสตร์ที่พวกเราคุ้นเคยกัน เริ่มจากการตั้งสมมติฐาน ทำการทดลอง เก็บข้อมูล และนำมาวิเคราะห์สรุปผล
ที่ LINE กระบวนการในการพัฒนาโปรเจค สามารถแบ่งออกได้เป็น 5 ขั้นตอนย่อยๆ ดังภาพด้านล่างนี้ โดย Data Scientist ก็จะเข้ามามีส่วนร่วมในทุกๆ ส่วน
การทำ User Research ถือเป็นขั้นตอนที่สำคัญ ที่จะช่วยให้เราตั้งสมมติฐานได้ว่า User เค้าชอบอะไร ไม่ชอบอะไร? มีปัญหาการใช้งาน ณ จุดไหน? ซึ่งเค้าก็แนะนำว่าควรจะใช้วิธีอื่นๆ ที่นอกเหนือจากการเอา Log มาวิเคราะห์เฉยๆ ด้วย เช่น การออกไปสัมภาษณ์ผู้ใช้งานจริง เพื่อจะได้นำ Insights ที่ได้มา ไปใช้ในการวางแผนและออกแบบสิ่งที่จะพัฒนาเพื่อนำไปทดสอบต่อไป
💡จากประสบการณ์ส่วนตัว พบว่า Data Scientist มือใหม่หลายคน มัวแต่นั่งรอจะทำโมเดล ซึ่งนอกจากจะไม่ช่วยให้เราปิ๊งไอเดียว่าควรจะเอาข้อมูลไปช่วยแก้ปัญหาอะไรให้ผู้ใช้งานแล้ว ตอนจะทำโมเดลจริงๆ เราก็จะไม่ค่อยเข้าใจบริบทของปัญหา ไม่สามารถทำให้โมเดลทำงานดีขึ้นได้ (บทความแนะนำ: Best data scientists get out and talk to pelple, HBR)
งานอีกส่วนที่ Data Scientist เข้าไปมีบทบาทด้วยมากๆ ก็คือการทดสอบและเก็บ Feedback ซึ่งบริษัทเทคโนโลยีใหญ่ๆ ก่อนจะเปิดตัว Feature ใหม่ ก็มักจะต้องมีการทำ A/B Test กันหลายรอบ จนกว่าจะมั่นใจได้ว่ามันดีจริงๆ ซึ่ง Data Scientist ก็จะต้องเข้ามาช่วยตั้งแต่การออกแบบการทดลองว่าควรต้องใช้ Users ทั้งหมดกี่คน เพื่อให้สามารถสรุปผลทางสถิติได้อย่างเหมาะสม, Metrics ต่างๆ ที่จะใช้ในการวัดผล ซึ่งก็ต้องเลือกมาให้ครอบคลุมและสะท้อนการใช้งาน LINE ที่แตกต่างกันของ Users ทุกกลุ่ม ทุกประเทศด้วย รวมไปถึงการวิเคราะห์ผลการทดลองอย่างละเอียด เพื่อนำฟีดแบคที่ได้ ไปตั้งเป็นสมมติฐานในการทดสอบครั้งถัดไป
Case Study: “Create Group” Feature
ทุกคนมีกลุ่มเพื่อนหรือครอบครัว (Local Friend Networks) ที่มักจะต้องมีการสื่อสารกับคนทั้งกลุ่มอยู่ไม่มากก็น้อย Group Feature ช่วยให้ผู้ใช้งาน LINE สามารถส่งข้อความหาเพื่อนได้ทีละหลายๆ คน และกระตุ้นให้เกิดการสื่อสารกันในกลุ่มมากขึ้น …. แต่ …. การสร้าง Group ใน LINE นั้น มันไม่ได้ง่ายขนาดนั้น! 😅 ผมก็เป็นคนหนึ่งที่เสียเวลากับการสร้าง Group ใหม่ใน LINE ทุกครั้ง
หลังจากที่ทีมได้ทำ User Research ก็พบว่า ปัญหาหลักอย่างหนึ่งในการสร้าง Group ใหม่คือ Flow ที่ไม่เป็นธรรมชาติเท่าไหร่ User จะต้องทำการเลือก Group Icon และตั้งชื่อกลุ่มก่อน จึงจะกดเพื่อไปเลือกเพื่อนๆ เข้ากลุ่มต่อไป ทำให้ผู้ใช้งานหลายๆ คน สร้าง Group ไม่สำเร็จ
ทีมก็เลยลองทดสอบ Flow ใหม่ โดยสลับให้มีการเลือกเพื่อนเข้ากลุ่มก่อน
แต่พอไปทำการทดสอบ ผลกลับปรากฎว่า Design ใหม่ ไม่ได้ช่วยให้มีการสร้าง Group ได้สำเร็จเพิ่มมากขึ้นอย่างมีนัยสำคัญทางสถิติ 😢
ถึงตอนนี้ Data Scientist มือใหม่ อาจจะเริ่มเซ็งที่ผลไม่ได้เป็นไปตามคาด ทีม Engineer เก็บข้อมูลอะไรตรงไหนผิดหรือเปล่า หรืออาจจะล้มไอเดียไปเลย แต่สิ่งที่เราควรทำจริงๆ คือ ลองวิเคราะห์เจาะลึกเพิ่มเติม ตั้งคำถามในมิติอื่นๆ เพิ่มขึ้น เช่น
- ใครคือกลุ่มผู้ใช้งานที่สร้าง Group ใหม่ได้สำเร็จ คนที่สร้างไม่สำเร็จคือใคร
- ผลตอบรับของผู้ใช้งานในแต่ละประเทศ เหมือนหรือแตกต่างกันอย่างไร
- คนที่สร้างไม่สำเร็จ เค้าไปหยุดที่จุดไหน
ซึ่งพอทีมลองขุดคุ้ยละเอียดขึ้น ก็พบว่า Pain point ที่แท้จริง คือการเลือกเพื่อนเข้ากลุ่ม ผู้ใช้งานเป็นจำนวนมากยกเลิกการสร้าง Group ที่หน้าจอให้เลือกเพื่อน ไม่ได้กดไปถึงหน้าที่ให้ตั้งชื่อ Group และเลือก Group Icon
ในเวอร์ชันถัดไป ทีมพัฒนาเลยอยากจะทดสอบดูว่า ถ้าลองเอาชื่อเพื่อนที่เราเพิ่ง Chat ด้วยขึ้นมาแนะนำไว้ก่อน จะช่วยให้คนสร้าง Group สำเร็จมากขึ้นหรือไม่
ผลปรากฏว่าก็ยังไม่ช่วยให้มีการสร้าง Group ได้สำเร็จเพิ่มมากขึ้นอย่างมีนัยสำคัญทางสถิติอยู่ดี 😢
💡สำหรับ Data Scientist มือใหม่ ในกราฟด้านล่าง จะสังเกตได้ว่าหลายๆ แท่งจริงๆ แล้วมีค่า Positive แต่ไม่มีนัยสำคัญทางสถิติ ก็อย่าพยายามฝืนว่ามันมี effect หรือแอบปรับ Confidence level จาก 95% เหลือ 90% ให้มันมี 😤
อย่างไรก็ตาม เมื่อทีมลองไปดู Metric ที่วัดระยะเวลาที่ใช้ในการสร้าง Group ก็พบว่า เวลาที่ใช้ในการสร้าง Group นั้น ลดลงอย่างมีนัยสำคัญ!
เนื่องจากทีมยังไม่สามารถหาวิธีเพิ่มจำนวนการสร้าง Group ให้สำเร็จได้ ก็ต้องย้อนกลับมาทำ User Research กันใหม่ อีกปัญหาที่พบก็คือ ผู้ใช้งานส่วนใหญ่ไม่รู้ว่า ปุ่ม “Create Group” อยู่ไหน 😱😱😱 ตอนพรีเซนต์ตลกมาก เค้าให้ตัวเลือกมา 4 ข้อให้ทุกคนเดา และคนในห้องก็เดากันไปคนละทิศคนละทางตามความคุ้นชินในการใช้งานของตนเอง และมีอีกจำนวนไม่น้อยที่เลือก D) No idea 😂 ซึ่งอันที่จริงแล้ว ในตอนนี้ผู้ใช้งานสามารถสร้างกรุ๊ปจากหน้าจอไหนก็ได้แล้ว A), B), หรือ C)
จากการทำ User Research พบว่า ถึงแม้ว่าผู้ใช้งานส่วนใหญ่จะไม่รู้ว่าปุ่ม “Create Group” อยู่ที่ไหน แต่ทุกคนคุ้นเคยกับปุ่มสร้าง Chat เป็นอย่างดี ทีมพัฒนาก็เลยมีไอเดียที่จะให้สร้าง Group ผ่านช่องทางนั้นได้
ในที่สุดการทดลองในรอบนี้ก็มีผลทำให้ผู้ใช้งานสร้าง Group ใหม่ได้สำเร็จมากขึ้น!! สิ่งที่น่าสังเกตคือ ผลการทดลองไม่ได้เป็นไปในทิศทางเดียวกันในทุกประเทศที่มีผู้ใช้งาน LINE อยู่ ซึ่งเป็นสิ่งที่ทีม Expect อยู่แล้ว เพราะผู้ใช้งานในแต่ละประเทศก็มีพฤติกรรมการใช้งานที่แตกต่างกันออกไป
💡ในทางปฏิบัติ ถ้าเราวิเคราะห์ผลของทุกประเทศรวมกัน ก็มีโอกาสเป็นไปได้ว่า ผลจะออกมาว่าไม่แตกต่างอย่างมีนัยสำคัญทางสถิติ ในขณะเดียวกัน เราก็ไม่ควรจะทำการทดลองไปก่อน แล้วค่อยมานั่งหาว่าจะเอาตัวแปรไหนมาแบ่ง เพื่อจะได้ผลที่มีนัยสำคัญทางสถิติ หรือที่เรียกกันว่าการทำ p-hacking (บทความแนะนำ: We are all p-hacking now, Wired)
นอกจากนี้ Data Scientist ที่ดี ก็ควรจะต้องระวัง Confirmation Bias ในการวิเคราะห์ข้อมูล นั่นคือ เมื่อเราได้ผลลัพธ์ที่ตรงตามที่เราต้องการ ก็ไม่ควรหยุดอยู่แค่นั้น เนื่องจากมันอาจจะมีรายละเอียดอื่นๆ ที่ถูกละเลยไป
ในเคสนี้ ทีมก็ได้มีการวิเคราะห์เพิ่มเติมว่าที่จำนวน Group ถูกสร้างเพิ่มขึ้น ไม่ได้มีส่วนทำให้ Metrics อื่นๆ มีค่าลดลงจนเกินผลเสียกับธุรกิจ
- ทีมพบว่าจำนวน Chat ที่ถูกสร้างมีจำนวนลดลง เนื่องจากคนเลือกกดสร้าง Group มากขึ้น หลังจากกดปุ่มสร้าง Chat ในหน้า Chat แล้ว แต่อย่างไรก็ตามในภาพรวม ผู้ใช้งานสร้าง Group หรือ Chat รวมกันมากขึ้นกว่าในกลุ่มควบคุม
- นอกจากนี้ ทีมยังไล่ดูอีกหลายๆ Metrics เช่น ปริมาณการแอดเพื่อน (คนอาจจะไม่แอด Friend หากได้ไปอยู่ใน Group เดียวกันแล้ว) หรือ ปริมาณการกดปุ่ม Chat ว่าไม่ได้รับผลกระทบจากการทดลองนี้
หน้าที่ของ Data Scientist ในการทำ A/B Testing
สิ่งที่ Data Scientist ต้องทำ ในการทำ A/B Testing แต่ละครั้ง เริ่มตั้งแต่การวิเคราะห์ทางสถิติ เพื่อหา Sample Size ที่เหมาะสม (หลักๆ จะต้องรู้ว่า Metrics ที่เราอยากจะขยับมันมีความแปรปรวนมากน้อยแค่ไหน และ Effect Size ที่มี Practical Significance คือเท่าไหร่) และเลือกกลุ่มผู้ใช้งานที่จะทำการทดลองด้วย
เมื่อเริ่มทำการทดลองแล้ว ก็จะต้องมีการ Monitor ตัวเลขต่างๆ ผ่านทาง Dashboard เช่น บางครั้งผลอาจจะออกมาแปลกๆ เนื่องจากปัญหาทางเทคนิค ก็จะต้องรีบทำการแก้ไข และสุดท้ายก็จะต้องมีการวิเคราะห์และทำรายงานผลการทดลองให้กับทีม
ซึ่งภายใน LINE ก็ได้มีการพัฒนาเครื่องมือหลายๆ ตัวขึ้นมา เพื่อช่วยให้การทำงานของ Data Scientist กับทีมนั้น เป็นไปได้อย่างมีประสิทธิภาพสูงสุด ตามภาพด้านล่างนี้เลย
#ฝากร้าน ใครที่สนใจอยากศึกษาเพิ่มเติมเรื่องการนำข้อมูลไปใช้ในการออกแบบผลิตภัณฑ์ ตามไปดูคอร์สฟรีด้านล่างได้เลย!
เดี๋ยวจะรีบมาเล่าอีก 2 ทอล์คให้ฟังในพาร์ทถัดไปนะครับ 😊✌🏻