สรุปคู่มือออกแบบ AI จาก People + AI โดย Google เรื่อง Data collection [ตอน 2]

Natk

Data collection + Evaluation และการจัดเก็บข้อมูลและการวิเคราะห์ข้อมูลก่อนนำไปใช้ในการเทรน AI

หากทุกท่านได้ติดตามบทความในตอนแรกไปแล้วที่มีชื่อว่า สรุปคู่มือออกแบบ AI จาก People + AI โดย Google (ตอน 1) เราได้พูดถึงเรื่องของ User Needs + Defining Success การตามหาความต้องการของผู้ใช้งานและการวัดผลความสำเร็จของโปรเจค AI ที่เราต้องการจัดทำ

ในบทความตอนที่สองนี้ เราจะมาต่อกันที่หัวข้อของ Data Collection + Evaluation วิธีการจัดเก็บข้อมูลและการวิเคราะห์ข้อมูล ดูว่าเราต้องการข้อมูลส่วนไหนบ้างที่สอดคล้องกับความต้องการของ User ของเรา

หมายเหตุ บทความนี้จะเหมาะสำหรับคนที่ทำงาน UX และ คนที่ทำงานฝั่ง Data เพื่อจัดเตรียมข้อมูลก่อนจะนำไปใช้งานในขั้นถัดไป โดยบทนี้มีคำศัพท์ที่ Jargon อยู่พอสมควร สำหรับมือใหม่มีคำแนะนำว่าให้ลองอ่านคำอธิบายในวงเล็บประกอบได้เลยนะคะ

  1. User Needs + Defining Success
  2. Data Collection + Evaluation
  3. Mental Models
  4. Explainability + Trust
  5. Feedback + Control
  6. Error + Graceful Failure
ai guidebook 2
ai guidebook 2

Data Collection + Evaluation

ในเนื้อหาตอนสองนี้ จะประกอบไปด้วยเรื่องของ

  • Dataset ของเรามีฟีเจอร์เพียงพอที่จะทำให้ AI ของเราตรงกับความต้องการของ Users หรือไม่ ?
  • เราควรใช้ Dataset ที่มีอยู่แล้วในตลาดเอามาฝึก AI ของเรา หรือว่าจะคิดค้นพัฒนาขึ้นมาใหม่เอง ?
  • เราจะมั่นใจได้อย่างไรว่าคนที่จะสอน Machine learning (Raters) จะไม่สอดแทรกข้อมูลที่ผิดพลาดหรือไบแอสไปที่ datasets ที่เรามีอยู่ตอนกำหนด labels ?

เรื่องที่ควรรู้เมื่อทำงานกับ AI

ขั้นตอนที่จะเริ่มการทำนายผล AI-driven products นั้นเราจะต้องเข้าใจก่อนว่า Machine learning model ของเราจะต้องจดจำ Pattern และ Correlations ประเภทต่าง ๆ ใน Data ของเราให้ได้เสียก่อน โดยตัว Data ที่เรากล่าวถึงนี้จะมีชื่อเรียกที่คนใช้งานกันว่าเทรนนิ่งดาต้า (Training data)

ตัวเทรนนิ่งดาต้าสามารถจัดเก็บเป็น รูปภาพ, วิดีโอ, ตัวหนังสือ, ไฟล์เสียง และอื่น ๆ ได้ โดยเราสามารถใช้ของที่เรามีอยู่เหล่านี้ หรือจะเก็บข้อมูลมาใหม่ก็ได้เพื่อนำมาใช้ในการเทรนตัวโมเดลของเรา ตัวอย่างเช่น อาจจะใช้ database รูปภาพสุนัขจากสถานที่อุปการะสุนัขมาใช้ในการเทรนโมเดลเพื่อให้โมเดลสามารถจดจำลักษณะและแยกประเภทของสุนัขแต่ละพันธุ์ได้

โดยข้อมูลที่เราจัดเก็บมานั้นหรือ data ที่เราทำ label (label คือการตั้งชื่อที่อธิบายถึงตัว Data นั้น ๆ) ไว้แล้ว จะหมายถึงข้อมูล output สิ่งที่จะออกมาจากระบบเราด้วย

การคิดเรื่องของ Data และการเทรนข้อมูลนั้นจะไม่สามารถเกิดขึ้นได้ ถ้าหากว่าเรายังไม่ผ่านขั้นตอนการคิดแบบ Human-centred design (จากตอนที่ 1) เพราะถ้าเราสร้าง AI ขึ้นมาโดยที่ไม่มีความต้องการของ user แล้วล่ะก็ การทำ AI ออกมานั้นก็จะไร้ประโยชน์ สร้างเสร็จแล้วก็อาจจะไม่มีผู้ใช้งานของเรา นั่นจึงเป็นเหตุผลที่เราจะต้องมาเรียนรู้กันต่อในตอนที่ 2 ว่าด้วยเรื่องของการแปลข้อมูลความต้องการของผู้ใช้งานออกมาเป็น dataset ที่จะสามารถนำมาใช้เทรน AI ของเราได้

สิ่งที่เราต้องถามตัวเองในบทที่ 2 นี้ก็คือ

  1. ความต้องการของ User ตรงกับผลลัพธ์ของ AI ที่เราจะทำหรือไม่ (Align) ?
  2. ผลลัพธ์ของ AI นั้นมีความเชื่อมโยงกับ dataset ที่เราจะใช้เทรน AI หรือไม่ (Map) ?
  3. Dataset ที่เราจะใช้นั้น เราจะเอาข้อมูลมาจากไหน (Source) ?
    โดยข้อมูลนั้นจะต้องไม่มีความ bias, มีความหลากหลาย, มีความสมบูรณ์เพียงพอที่จะเอาไปเทรนโมเดลต่อได้
  4. จะปรับจูน AI โมเดลอย่างไรให้ได้ผลลัพธ์ที่ตรงกับความต้องการผู้ใช้งาน (Tune) ?

ตีความหมาย User needs ให้เป็น Data ที่เราต้องการจะใช้งาน

ความต้องการของ User ตรงกับผลลัพธ์ของ AI ที่เราจะทำหรือไม่ (Align) ?

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

กลับมาที่โปรเจค Google flights ของเรา

สิ่งที่ User ต้องการทราบมากที่สุดคือ “เวลาที่ฉันจะต้องจองตั๋วเครื่องบิน
“ราคามันจะขึ้นไปอีกมั้ยพรุ่งนี้ หรือว่าจะรอก่อนแล้วจะจ่ายทีหลัง”

ดังนั้นผลลัพธ์ของ AI (AI output) จึงต้องแสดงผลดังนี้

  • ราคาที่ดีที่สุดในปัจจุบัน
  • การคำนวนราคาในอนาคต
p2 data01 1
p2 data01 1

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

ผลลัพธ์ของ AI นั้นมีความเชื่อมโยงกับ dataset ที่เราจะใช้เทรน AI หรือไม่ (Map) ?

สำหรับคนที่เคยทำงานกับ Machine learning มาแล้วเนี่ย เราจะต้องคิดถึงเรื่องของ Structured data (ข้อมูลเชิงโครงสร้าง) ก่อนการนำไปใช้งาน ถ้าอธิบายคำนี้เพิ่มเติมอีกนิดนึง Structured data ก็คือข้อมูลแบบตารางที่มีการจัดเรียงอย่างมีรูปแบบชัดเจนและเป็นระเบียบ สามารถนำมาใช้วิเคราะห์ได้เลย

map dataset for machine learning model
Map data ภาพตัวอย่างการวางข้อมูลเพื่อนำไปใช้เทรนตัว Model ของเรา

โดยการใช้ข้อมูลแบบ Structured data ค่อนข้างเป็นที่นิยมในการนำไปใช้เทรนโมเดลประเภท Supervised learning

Structured datasets จะประกอบไปด้วย

  • Examples คือแถวของข้อมูลที่สำคัญที่สุด (สีฟ้า)
  • ในแต่ละ Example จะประกอบไปด้วย Features (สีเหลือง)
    คือข้อมูลที่ถูกจัดเรียงให้เป็นหมวดหมู่อยู่ใน Categories แล้วเรียบร้อย
  • Labels จะเป็นข้อมูลประเภท Qualitative (ข้อมูลเชิงคุณภาพ) ส่วนใหญ่จะถูกสร้างมาโดยมนุษย์ (สีเขียว)

➂ Dataset ที่เราจะใช้นั้น เราจะเอาข้อมูลมาจากไหน (Source) ?

google flight data collection
google flight dataset

กลับมาที่คำถามว่า แล้วถ้าเราจะเริ่มเทรนข้อมูล เราจะเอาข้อมูลจากไหนมาใช้งานกันนะ
สำหรับหลาย ๆ คน อาจจะไม่ได้มีข้อมูลที่มีจำนวนมากเหมือนกับที่ Google มี อ้าว แล้วทีนี้จะเอามาจากไหนกันล่ะ

ดังนั้นเราจึงจะต้องย้อนมาถามตัวเองก่อนทุกครั้งว่า ข้อมูลของเรามีอะไรที่น่าเป็นห่วงหรือไม่ด้วยคำถามดังต่อไปนี้

  1. มี dataset ที่เปิดให้ใช้งานแบบ public หรือไม่ ? หรือว่าเราจะต้องสร้างขึ้นมาเองใหม่ทั้งหมด
  2. dataset ที่เรามีแล้ว มีความหลากหลาย (diversity) ที่เพียงพอที่จะได้ผลลัพธ์ที่ user ต้องการหรือไม่ ?
    ตัวอย่างเช่น ถ้าเราจะทำ Google flights เรามีข้อมูลสายการบินทั่วโลกมากพอหรือเปล่า เรารู้มั้ยว่าสายการบินนี้ขึ้นจากไหนไปไหน วันไหน ราคาเท่าไร ระยะทาง ซื้อตั๋วเวลาไหน etc.
  3. dataset ของเรามีเรื่องที่ต้องกังวลเรื่องของ privacy มั้ย, มี bias หรือเปล่า, ถูกต้องหรือไม่ ?

Google pairs team ยังมี tips และคลังข้อมูลจำนวนมากสำหรับการเตรียม Dataset มีเครื่องมือแนะนำด้วย Facets – Know your data

➃ จะปรับจูน AI โมเดลอย่างไรให้ได้ผลลัพธ์ที่ตรงกับความต้องการผู้ใช้งาน (Tune) ?

ขั้นตอนนี้จะเป็นขั้นตอนการปรับจูนตัว data คือการแก้ไขปรับเปลี่ยนข้อมูลให้เกิดความแม่นยำและเชื่อถือได้มากที่สุด

Google แนะนำหลักการคิดแบบภาพด้านล่างเข้ามาช่วยเช็คว่าข้อมูลของเรานั้นดีหรือยัง เพื่อให้ตอบโจทย์กับผู้ใช้งานมากที่สุดตามหลักของ Human centred design

คือ ถ้าการวัดผล [Metric] จาก [AI Tool] [มีอะไรที่สูงกว่าหรือต่ำกว่าระดับที่วางไว้] จะ [ทำอะไรสักอย่าง]

model tuning
model tuning

ตัวอย่างเช่น Flight insights

ถ้าเกิดว่าการวัดผลเรื่อง “การจองตั๋วเครื่องบิน” จากทูลที่ชื่อว่า “Flights insight” “มีคะแนนที่ลดลงต่ำกว่า X%” (คนก็จะเลิกใช้งานระบบนี้แน่ ๆ) ดังนั้นเราจึงจะต้องทำอะไรสักอย่างเพื่อให้ user เกิดความมั่นใจในข้อมูลมากยิ่งขึ้น

Screen Saexample model tuning - flights insightshot 2021 07 17 at 1.03.50 pm
example model tuning – flights insights

สรุป

สิ่งที่ทีม Data ทำในการจัดเตรียมข้อมูลเพื่อนำไปเทรน AI นั้นมีดังต่อไปนี้คือ

  1. ปรับผลลัพธ์ของ AI ให้ตรงกับความต้องการของ Users (Align)
  2. ปรับ dataset เพื่อให้ตรงกับเป้าหมายของเรา (Map)
  3. มีชุดข้อมูล Dataset ที่ไม่มีความ bias, มีความหลากหลาย, และมีความสมบูรณ์เพียงพอที่จะเอาไปเทรนโมเดลต่อได้ (Source)
  4. ปรับจูน AI โมเดลให้ตรงกับเป้าหมายของผู้ใช้งาน (Tune)
translate into data -  Data collection
translate into data

ในปัจจุบันตัวไฟล์ของ Pairs จะมีเพิ่มขั้นตอนมาอีกสอง 2 ก็จะเป็นทั้งหมด 6 ข้อ จะเพิ่มจากวิดีโอที่สรุปมาอีกนิดหน่อย
ดังนั้นเพื่อน ๆ สามารถอ่านข้อมูลฉบับเต็มล่าสุดได้จาก Pair.withgoogle.com เลยนะคะ :)


บทความนี้ต้องบอกเลยว่ามีคำศัพท์ที่ซับซ้อนและแปลกใหม่อยู่เยอะแยะเต็มไปหมด อาจจะต้องใช้เวลาในการทำความเข้าใจพอสมควรสำหรับคนที่ไม่คุ้นชินเรื่องของ Data collection มาก่อน

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

บทความที่เกี่ยวข้อง

ข้อมูลจาก

Natk

Natk

UI Specialist ซิดนีย์ ออสเตรเลีย | ประสบการณ์ทำงาน 11 ปี | สนใจเรื่อง User Interface, User Experience, Accessibility, Education | ผู้ก่อตั้งกลุ่มเฟซบุ๊ก Tech ไทยในออสเตรเลีย | ผู้ดูแลเว็บไซต์ Designil
บทความทั้งหมด