Data Quality

คุณภาพของ Data สำคัญกับการนำมาทำ Machine Learning อย่างไร

ปฏิเสธไม่ได้เลยว่า การใช้ “ข้อมูลที่มีคุณภาพ” สำหรับ Training Data หรือ ชุดข้อมูลในการสอน เป็นรากฐานสำคัญของการทำแบบจำลอง Machine Learning ที่มีคุณภาพ และ ความแม่นยำสูง

Training Data ถือเป็นองค์ประกอบ หลักในการสอนให้ระบบ เรียนรู้และจดจำแพทเทิร์น จากข้อมูล โดยการระบุ label กำกับข้อมูล จนกว่าแบบจำลองจะสามารถเรียนรู้รูปแบบ หรือแพทเทิร์นจากข้อมูลได้ เช่น เมื่อเราอยากให้ แบบจำลอง ML ของเราแยกภาพสุนัขและแมวออกจากกันได้ เราต้องสอนมันเสียก่อน โดยการใส่รูปสุนัขและแมวเข้าไป พร้อมกับระบุด้วยว่ารูปนั้นคือสุนัขหรือแมว (การให้ label ข้อมูล) เมื่อมีข้อมูลมากพอ แบบจำลอง ML จะสามารถเรียนรู้ได้เองว่า นั่นคือภาพสุนัขหรือแมว ซึ่งการที่เราใส่รูปสุนัขและแมวเข้าไปในตอนแรกนั้น หมายถึงการทำ Model Training นั่นเอง

ทุกวันนี้ทุกคนรู้จัก Machine Learning หรือ AI กันดีอยู่แล้ว เนื่องจากมีการนำมาใช้งานในหลายๆแอปพลิเคชั่น แต่นั่นก็ไม่ได้ช่วยให้เราทำ Machine learning ได้ง่ายขึ้นเลย 

ปัญหาเรื่องคุณภาพของข้อมูล (Data Quality) ไม่ได้เป็นเรื่องที่ใหม่เลย แต่เพิ่งได้รับความสนใจอย่างแพร่หลายเมื่อเกิด application ใหม่ๆ ที่มใช้ Machine Learning มากขึ้น

ระบบจะเรียนรู้และศึกษาความสัมพันธ์ของสิ่งต่างๆจากข้อมูลในอดีต และให้ผลลัพธ์ได้ดีนั้น เป็นผลมาจาก Training Data ที่มีคุณภาพนั่นเอง ดังนั้น ข้อมูลที่มีคุณภาพจึงมีความสำคัญกับการทำ Machine Learning Model เป็นอย่างมาก Model จะเก่งแค่ไหน ขึ้นอยู่กับ quality ของ training data ที่เราใส่เข้าไปใน Model

Data-centric vs Algorithm-centric อะไรดีกว่ากัน

Data-Centric หมายถึง การสร้าง ML โดยเน้นไปที่การทำให้ Data มีคุณภาพดี

Algorithm-Centric หมายถึง การสร้าง ML โดยเน้นไปที่การเลือกใช้ อัลกอลิธึม ที่มีความฉลาดสูง

เมื่อคุณทำ initial exploratory data analysis เสร็จและกำลังตื่นเต้นที่จะได้เห็น Performance ของ Model ของคุณ แต่กลับต้องผิดหวังเสียทุกครั้งไป (ซึ่งเป็นเรื่องที่เกิดขึ้นเป็นปกติในชีวิตของ Data Scienctist) เนื่องจากผลลัพธ์ที่ได้นั้นไม่ได้เป็นไปอย่างที่คิด แต่เราจะเลือกแก้ปัญหาด้วยวิธีไหนดี ?

  1. วิเคราะห์จากข้อมูลที่แบบจำลองทำนายผิด ว่ามีลักษณะหน้าตาของข้อมูลเป็นอย่างไร หรือเกิดปัญหาอะไรขึ้นในขั้นตอน data preparation หรือ data processing ข้อมูลกลุ่มนี้หรือไม่
  2. เลือกใช้แบบจพลอง ML ที่มีความซับซ้อน : เลือกใช้ Model ที่มีความฉลาดเข้ามาทำงานแทน Model ตัวเก่า

หรือจะพูดง่ายๆว่า โดยทั่วไปแล้ว การใช้ ML ขั้นสูงเพื่อให้ได้ความแม่นยำมากขึ้น อาจไม่ได้ให้ผลลัพธ์ที่ดีกับเราสักเท่าไหร่ หากข้แมูลที่เรานำมาสอน แบบจำลอง ML นั้นไม่ได้มีคุณภาพที่ดีพอ

Data Quality Assessment

อัลกอลิธึม ML เรียนรู้จากข้อมูลในรูปแบบ Flat-structure เช่น เราต้องการสอนแบบจำลอง ML ให้ทำนายว่าลูกค้าคนไหนจะซื้อของในอีก 2 สัปดาห์ข้างหน้าเป็นรายบุคคล แต่ข้อมูลตั้งต้นที่เราสามารถนำมาใช้ได้ อยู่ในระดับตะกร้าสินค้าของลูกค้าแต่ละคน จึงต้องมีขั้นตอนการจัดเตรียมข้อมูลหลายมิติดังกล่าว ให้อยู่ในระดับรายบุคคลเสียก่อนสอน แบบจำลอง Machine Learning ได้ แต่เนื่องจากโดยปกติแล้ว องค์กรส่วนใหญ่มีการเก็บข้อมูลจากหลายแหล่ง ทำให้การเตรียมข้อมูล โดยรวบรวมข้อมูลจากหลายๆ แหล่งนั้นเข้ามาเก็บไว้ในด้วยกัน (ตารางเดียว) เป็นขั้นตอนที่ใช้ทั้งเวลา ทรัพยากร (ทีมงานที่ต้องมีความเชี่ยวชาญเกี่ยวกับโดเมนนั้นๆ) และมีค่าใช้จ่ายค่อนข้างสูง

ขั้นตอนดังกล่าวในการ ดึงข้อมูล มาจากหลายแหล่ง หลายตารางเพื่อที่จะรวมเป็นตารางเดียว เป็นขั้นตอนที่มีโอกาสเกิดความผิดพลาดได้สูง ดังนั้นทั้งทีมควรมาช่วยกันตรวจสอบและรีวิวข้อมูล อีกครั้ง

มีไอเดียนึงที่ชาว Data Scientist นิยมใช้กัน นั่นก็คือ “ในการสร้าง Model นึงขึ้นมาเราควรให้เวลาและทุ่มเทกับขั้นตอนการทำ Data Preparation, Cleansing, และ Transformation” แทนที่เราจะประหยัดเวลาในขั้นตอนเหล่านี้ เพียงเพราะอยากเข้าสู่ขั้นตอนการสร้าง Model เร็วๆ จึงไม่ได้มีการทำในขั้นตอนที่สำคัญอย่างละเอียด อาจจะทำให้เราต้องเสียทั้งเวลา และทรัพยากรไปอย่างเปล่าประโยชน์ได้

Data Quality

เทคนิคที่ Data Scientist ทำเพื่อรักษาคุณภาพของ Data 

  1. Missing Data Imputation: เมื่อ Data มาไม่ครบทุก Field เราควรเติม Missing Value เข้าไป
  2. ​​Outlier detection: ข้อมูลที่ดูแปลกตาไป เช่น ใน data ของลูกค้า เราอาจจะเห็นได้ว่า average แล้วมีค่าใช้จ่ายอยู่ที่ประมาณ 100-1,000 บาท แต่กลับมีคนหนึ่งมีค่าใช้จ่ายสูงถึง 1,000,000 บาท เราอาจจะต้องหาวิธีการเพื่อแก้ไขข้อมูลที่ผิดพลาดนี้
  3. Data Transformation: เป็นการดัดแปลงรูปแบบของข้อมูล จากรูปแบบหนึ่งไปอีกรูปแบบหนึ่ง อาจจะเพื่อจุดประสงค์ที่ต้องการให้คุณภาพของข้อมูลดีขึ้น

แล้วทีนี้เราจะ Improve Data Quality อย่างไรได้บ้าง?

  1. Labelers: ในขั้นตอนการเตรียมข้อมูล และ label กำกับข้อมูล (อ้างอิงจากตัวอย่างข้อมูลรูปภาพ สุนัขและแมว label คือการที่เราติดป้ายให้กับภาพนั้นๆว่าเป็นภาพสุนัขหรือแมว) เราอาจจะต้องมีทีมงานสำหรับ  label ข้อมูลที่เราเก็บมาได้ ซึ่งอาจจะเกิดข้อผิดพลาดจากการ label ข้อมูลผิดได้ หรือ เช่น ในกรณีที่เราต้อง label ข้อมูล เป็น Rating เช่น กรณีความสวยของสุนัข หรือแมว ทีมงานบางคนอาจจะให้คะแนนเฟ้อ หรือกดคะแนนเกินไป และเมื่อนำข้อมูลมารวมกันแล้ว วิธีแก้ไขคือ การวางมาตรฐานในการ label ข้อมูลให้ชัดเจน
  2. Distinct Record: เป็นขั้นตอนที่เราต้องให้ Domain expert มาช่วยในการระบุว่า จากข้อมูลที่เรามี Filed ไหนใช้สำหรับระบุ หรือแยกหน่อย หน่วยของข้อมูลที่เราต้องการวิเคราะห์ และจะต้องจัดการในส่วนของข้อมูลที่ซ้ำซ้อน เช่น หากเราต้องการใช้ Data ในระดับลูกค้า เราจะใช้ Customer ID ในการแยกแยะข้อมูลลูกค้าแต่ละคน และดูว่ามีข้อมูลซ้ำไหม
  3. Missing Data: ข้อมูลที่หายไป เราจะจัดการกับมันอย่างไร? หากข้อมูลไม่ครบ หรือมีบาง column หายไป เราควรตรวจสอบก่อนว่าเกิดจากสาเหตุอะไร
    1. ข้อมูลผิดมาตั้งแต่แรก: อาจเพราะยังไม่มีการส่งข้อมูลเข้ามาตั้งแต่ขั้นตอนการเก็บข้อมูล เช่น ข้อมูลไม่ส่งมาจากหน้าเว็บไซต์ตั้งแต่แรก ก็ควรไปแก้ไขที่ระบบรับส่งข้อมูล
    2. เมื่อพบว่าข้อมูลหายไป เราไม่ควรลบทิ้งไปเลย เพราะอาจจะทำให้เกิด Bias ขึ้นได้ เช่น เรากำลังสอนให้แบบจำลอง ML เรียนรู้เกี่ยวกับ Credit Scoring และพบว่าข้อมูลของคนบางกลุ่มหายไป เราควรแก้ไขโดยการ Fill in ข้อมูลโดยใช้ค่ากลางเข้าไป เพราะหากเราลบออกเลย อาจทำให้ แบบตำลองของเราไม่ได้เรียนรู้จากข้อมูลของคนกลุ่มนั้น และทำให้เกิด error ในการทำนายผิดพลาด ตอนนำแบบจำลองไปใช้งานจริงก็เป็นได้

สรุป : การแก้เกมส์ในกรณีที่พบว่ามีข้อมูลหายไป เราควรเติมเข้าไป(ด้วยค่าเฉลี่ย) แทนที่จะลบออก

  1. Flatten Structure: พัฒนา Data Warehouse (ถัง Data Base ของข้อมูลที่ได้ถูก Transform หรือ Process มาแล้วในระดับนึง) สำหรับรวมศูนย์ข้อมูลสำหรับนำไปต่อยอดการทำ data analytics หรือ แบบจำลอง machine learning ต่อ

ประโยชน์ของการมี Data ที่ได้คุณภาพ

Data Quality


เมื่ออ่านกันมาถึงตรงนี้แล้ว เราอยากจะแนะนำการทำงานของทีม Data Scientist ที่ Predictive ให้ทุกคนรู้จักและเข้าใจเรามากขึ้นสักหน่อย

Data Scientist ที่ Predictive จะช่วยอะไรคุณได้บ้าง ?

เราสามารถช่วยสำรวจ และ ประเมินคุณภาพข้อมูล พร้อมวิเคราะห์ปัญหาด้าน Data Quality และ หา Insight ที่น่าสนใจจากข้อมูล พร้อมทั้งให้คำปรึกษา และวางแผนการจัดเก็บข้อมูลอย่างมีประสิทธิภาพ

ช่วยวางแผน และพัฒนา Data Warehouse สำหรับจัดเก็บข้อมูลเพื่อต่อยอดการทำ Data Analytics และ Machine Learning

ปัญหาแบบไหนที่มีแค่ DS ของเราเท่านั้นที่จะช่วยได้ ?

เรามีความชำนาญด้านการ Process และ Transform ข้อมูลจาก Google Analytics มากกว่าใคร ด้วยความชำนาญของทีมงานที่มีประสบการณ์มากกว่า 10 ปี

Use case ที่ผ่านมา

  • การทำ Customer Segmentation จากข้อมูลใน Google Analytics
  • การทำ Customer Segmentation จากข้อมูลที่มีใน Market Place ที่มีความหลากของโครงสร้างข้อมูล เช่น Shopee, Lazada, Owned channel
  • การทำ Predictive Model จากข้อมูลใน Google Analytics เช่น แบบจำลองทำนายการซื้อ หรือ การเกิด Conversion ของลูกค้า ในอนาคต

จากคอนเทนต์ในวันนี้ทุกคนอาจจะเห็นถึงความสำคัญของ Data Quality กันแล้ว เราอยากให้คุณลองสำรวจการเก็บข้อมูลของคุณดูว่ามีตรงส่วนไหนที่ยังมีข้อจำกัดอยู่หรือเปล่า ที่ต้องอาศับทีม Data Scientist ของเราเข้าไปช่วย สำหรับใครที่สนใจอยากสร้างมูลค่าเพิ่มให้กับธุรกิจด้วยเครื่องมืออย่าง Google Analytics 4 หรือ การทำ Machine Learning กับทาง Predictive สามารถสอบถามข้อมูลเพิ่มเติมได้เลย เรายินดีให้คำปรึกษาเบื้องต้นโดยไม่มีค่าใช้จ่าย สามารถติดต่อเข้ามาได้โดยคลิกที่ “ติดต่อ Predictive” ด้านล่างนี้เลย

Reference