ระบบผู้ช่วยแนะนำ(Recommender Systems) เรียบง่าย ใกล้ตัว กว่าที่คิด

Jest.
Super AI Engineer
Published in
2 min readJan 12, 2021

ในยุคที่ข้อมูลข่าวสารเติบโตอย่างรวดเร็ว (หรือ ยุค Big Data) ที่ไม่ว่าใครจะทำอะไร ล้วนทิ้ง ร่องรอยหลักฐานทางดิจิตอลเอาไว้ทั้งสิ้น ไม่ว่าจะเป็นการส่งข้อความหาเพื่อน กดไลค์คลิปวิดิโอที่ตนชื่นชอบ ซึ่งข้อมูลเหล่านี้ถูกนำไปใช้ประโยชน์ในด้านต่างๆ ทั้งในแง่ดี และแง่ร้าย เชื่อว่าท่านผู้อ่านหลายๆ ท่านคงจะมีประสบการณ์เจอกับโฆษณาสินค้าที่กำลังต้องการ หรือจะเป็นการดูวิดิโอใน Youtube ที่สามารถนั่งดูได้ทั้งวัน เพราะมีแต่วิดิโอประเภทที่ตนชื่นชอบู ฟังดูแล้วเหมือนแพลทฟอร์มเหล่านี้จะมีระบบอัจฉริยะที่รู้ใจเรามาก ทำงานอยู่เบื้องหลัง

ใบบทความนี้ผมจะพาท่านผู้อ่านมาทำความรู้จักกับเบื้องหลังของระบบอัจฉริยะนี้ แท้จริงแล้วมันเรียบง่ายเพียงใด และเราจะสามารถประยุกต์ใช้แนวคิดของระบบนี้ในชีวิตประจำวัน หรือแม้กระทั่งต่อยอดสร้างระบบแนะนำอัจฉริยะของตัวเองได้อย่างไร ระบบนี้มีชื่อว่า “ระบบผู้ช่วยแนะนำ” หรือ “Recommender Systems”

Recommender Systems ที่ใช้กันแบ่งได้เป็น 3 ประเภท หลักๆ ได้แก่

  1. Demographic Filtering: เป็นการคัดกรองที่เริ่มจากแนวคิดที่พื้นฐานที่ว่า หากสิ่งใดได้รับความนิยมโดยคนหมู่มาก โอกาสเป็นไปได้สูงที่จะผ่านเกณฑ์ความชอบเฉลี่ย ของคนทั่วๆ ไป ตัวอย่างเช่น มีคนแนะนำว่า “ซีรีย์เรื่อง Game of Thrones สนุกมากก! นายลองดูสิ” จริงๆ แล้วคนแนะนำอาจจะยังไม่เคยดู แต่คนส่วนมากบอกว่าสนุกจึงแนะนำเพื่อนต่อ (เพราะคิดว่าเพื่อนต้องชอบแน่)
  2. Content Based Filtering: เป็นการคัดกรองที่เริ่มจากเนื้อหาภายในข้อมูลนั้นๆ ที่มีความคล้ายคลึงกับพฤติกรรมของผู้บริโภค หรือผู้ใช้งานในอดีต ผมขอยกตัวอย่าง สถานการ์ณสมมุติ ที่ผมได้มีโอกาสแนะนำให้เพื่อนซื้อแผ่นเกมส์ PS4 โดยมี 4 เกมส์ เป็นตัวเลือก ได้แก่ 1.God of War 2.Diablo 3.Overcooked และ 4.Detroit: Become Human และสมมุติว่าในสถานการ์ณนี้ ทรัพยากรในกระเป๋าตังมีอยู่อย่างจำกัด ผมต้องเลือก 1 ตัวเลือก จาก 4 เกมส์ข้างต้น มาแนะนำ เพื่อให้เพื่อนประทับใจ และเล่นมันอย่างคุ้มค่า! ผมจึงสร้างระบบผู้ช่วยแนะนำของผมขึ้นมา ซึ่งเป็นตารางลักษณะดังนี้

ข้อสังเกตุ: จะเห็นว่าฟีเจอร์อธิบายเกมส์ส่วนใหญ่ ไม่ว่าจะเป็น คำบรรยายเกมส์ ความรุนแรง ระยะเวลาเคลียเกมส์ และอิสระในการเล่น ล้วนเป็นสิ่งที่ผมใส่ความเห็นของตนเองลงไป เพื่อใช้เป็นตัวคัดกรองในการทำระบบผู้ช่วยแนะนำ ดังนั้นในระบบ Content Based Filtering จะอาศัยความรู้ ความเชี่ยวชาญในเนื้อหาของข้อมูล

ซึ่งก่อนหน้านี้ผมมีประวัติของเพื่อนว่า เพื่อนผมติดเกมส์มือถือ “Ragnarok Online (RO)” มาก่อน ซึ่งหากเรานำ RO เพิ่มเข้ามาในตารางเพื่อทำการเปรียบเทียบกับเกมส์อื่นๆ จะพบว่า…

เราจะสามารถสร้างระบบรวมคะแนนขึ้นจากฟีเจอร์ที่วัดผลได้ (ไม่รวมคอลัมม์ บรรยายเกมส์) โดยให้คะแนนความตรงกันเท่ากับ 1 เราจะวัดคะแนนความตรงกันของเกมส์ต่างๆ กับเกมส์ที่เพื่อนเคยเล่นได้ดังนี้

  • God of War มีความเหมือนกัน 1 ช่อง = 1 คะแนน
  • Diablo มีความเหมือนกัน 4 ช่อง = 4 คะแนน
  • Overcooked มีความเหมือนกัน 1 ช่อง = 1 คะแนน
  • Detroit: Become Human มีความเหมือนกัน 2 ช่อง = 2 คะแนน

สุดท้ายเราได้ข้อสรุปว่า เกมส์ที่เหมาะกับเพื่อนผมมากที่สุดคือเกมส์ “Diablo” และรองลงมาคือ “Detroit: Become Human”

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

3. Collaborative Filtering: อาจกล่าวได้ว่า ระบบนี้เป็นการคัดกรองที่ทำงานตรงข้ามกับระบบที่ 2 โดยจะดูจากบริบท แล้วค้นหาความสัมพันธ์ที่ซ่อนอยู่ ว่าผู้บริโภค หรือผู้ใช้งานมีแนวโน้มจะชอบอะไร ผมจะยกตัวอย่างการซื้อเกมส์อีกรอบ เพื่อให้เห็นภาพเปรียบเทียบที่ชัดเจนยิ่งขึ้น

ในกรณีนี้เราจะนำประวัติความชอบ ของคนที่เคยเล่นเกมส์ต่างๆ ได้แก่ โรเจอร์ ซาโบ้ ไคโด มัลโก้ และเพื่อนของผม มาเปรียบเทียบกัน จากตาราง จะเห็นได้ว่า ซาโบ้ และ มัลโก้ ชอบเล่นเกมส์ Ragnarok Online (ซึ่งคล้ายกันกับเพื่อนผม) ซึ่งทั้งสองยังชอบเล่นเกมส์ Diablo เหมือนกันอีกด้วย ดังนั้นจึงสรุปได้ว่า เพื่อนผมมีแนวโน้มที่จะชอบเกมส์ Diablo เหมือนกันกับสองคนนี้ หรือ

“เกมส์ Diablo กับ Ragnarok จะต้องมีอะไรภายในบางอย่างที่ทำให้ พวกเขาชอบมันเหมือนกัน”

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

หากสังเกตุดีๆ แท้จริงแล้วแนวคิดการสร้าง Recommender Systems นั้นมาจากตรรกะที่เรียบง่ายบวกกับประสบการณ์ในชีวิตประจำวันของเรา เพียงแต่ด้วยข้อมูลมากมายมหาศาลในปัจจุบัน ทำให้ความซับซ้อนของระบบผู้ช่วยแนะนำนั้นมากขึ้นตามไปด้วย และนั่นคือเหตุผลที่ทำให้ระบบผู้ช่วยแนะนำของเรามีความอัจฉริยะมากยิ่งขึ้น ซึ่งนอกเหนือจาก 3 ระบบข้างต้นแล้ว ยังมีการใช้ระบบผู้ช่วยแนะนำแบบลูกผสม หรือ Hybrid Recommender Systems เพื่อช่วยให้ผลแม่นยำและเป็นที่น่าพอใจมากขึ้นไปอีก ตอนนี้เชื่อว่าท่านผู้อ่านคงจะเข้าใจพื้นฐานของระบบผู้ช่วยแนะนำทั้ง 3 แบบแล้ว ซึ่งในบทความหน้าเราจะมาลองสร้างระบบผู้ช่วยแนะนำโดยการใช้ข้อมูลจริงกันดู . . .

ขอบคุณที่อ่านมาจนจบครับ

Jest.

Reference:

--

--