พอถึงวันหนึ่ง (ซึ่งอีกไม่นาน) Developer ทุกคนจะใช้ ML กันเป็นปกติ

Phong 3DS
PAM Developer Expert
2 min readJun 8, 2019

วันก่อนครับ ทีม Developer ของเราคุยกันเรื่องงานหนึ่งงานที่กำลังจะเอาเข้า Sprint โดยมีรายละเอียดงานประมาณนี้ครับ

จะมี Set ของคำวิ่งเข้ามาในระบบอย่างต่อเนื่อง โดยแต่ละ set มีความแตกต่างกัน ยกตัวอย่างเช่น

แล้วก็วิ่งแบบนี้ไปเรื่อยๆ ตลอดเวลา มากบ้างน้อยบ้างแล้วแต่ load ในขณะนั้น
โดยโจทย์ของเราคือ เราจะต้องจับคู่ Set แต่ละ Set ที่วิ่งเข้ามา คู่กันกับสินค้าใน Database ให้ได้อย่างน้อย Set ละ 1 Product เสมอ!

เพื่อนๆลองคิดตามดูนะครับ สมมุติว่า ถ้าเราจะใช้วิธีการ Programming แบบที่ไม่ใช้ ML (Machine Learning) เพื่อนๆลองคิดกันดูครับว่าจะแก้โจทย์นี้ยังไง
ที่ถามก็เพราะว่า ทีมเราก็เริ่มด้วยวิธีที่ไม่ใช้ ML แหละ แล้วก็คิดกันว่าจะทำอย่างไรถึงจะสามารถหาความสัมพันธ์ระหว่าง Set กับสินค้าใน Database ได้
ในวิธีแบบ Programming ธรรมดา เราก็จะไปจบลงที่ต้อง loop ผ่าน สินค้าทุกตัวเพื่อหาว่า สินค้าตัวไหน จะมี Keyword ตรงกับใน Set ที่ส่งมาบ้างหรือไม่

ซึ่งจะทำให้เราออกแบบ Algorithm มีประสิทธิภาพได้ยากถ้าจำนวนสินค้าใน Database มีจำนวนเป็นหมื่นหรือแสน นี่ยังไม่นับว่าต้องมาตรวจดูอีกนะว่า keyword ตัวไหนสำคัญกว่าตัวไหน และถ้ามีไม่ครบทุก keyword จะให้คะแนนอย่างไร

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

ดังนั้นแทนที่เราจะต้องใช้การ loop เพื่อตรวจสอบกับ Product แต่ละตัว เราก็ใช้วิธีสร้าง Model แล้วเอา Product ทุกตัว แปลงเป็น Set ของคำลักษณะเดียวกัน
แล้วเอา Set ของ product ทั้งหมด เข้าไป Train ใน Model แล้วจึงนำเอา Model ที่ถูกเทรนแล้วตัวนั้นมา Predict ข้อมูลของ Set ของคำที่วิ่งเข้ามา
ก็จะได้ความเหมือนของ Set ที่เข้ามา กับ Set ของ Product ใน Database เป็นตัวเลขจุดทศนิยม และเราก็จะเลือกตัวที่มีความเหมือนมากที่สุดมาเป็นคำตอบ

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

--

--