Machine Learning for Recommendation System — Part 1

Nut Chukamphaeng
2 min readDec 22, 2018

--

Image source

Recommendation System ถือได้ว่าเป็นเป็น 1 ใน application ที่ประสบความสำเร็จมาก ในการนำมาใช้สำหรับ Business และระบบนี้ในปัจจุบันก็มีอยู่แทบจะทุก application ไม่ว่าจะเป็น Facebook, Netflix, Google, Amazon, etc. ซึ่งในบทความนี้เรามาดูกันสิว่า ระบบนี้เขาเอามาใช้ทำอะไรกัน และมีวิธีการยังไงบ้าง

Image source

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

  • Amazon: เวลาเราเข้าไปซื้อของ เขาก็จะแนะนำสิ่งที่เราอาจจะอยากซื้อ บางทีเราแค่จะมาซื้อแค่ ชิ้นเดียว กลายเป็นติดไม้ติดมือไปหลายชิ้นเลย
  • Netflix: ระบบก็จะคอยแนะนำหนังที่เราอาจจะชอบมาให้เรา โดยดูจากพฤติกรรมการดูของเรา เทียบกับคนอื่นๆ
  • Spotify: ระบบก็จะมีการแนะนำเพลง หรือ playlist ต่างๆให้เรา จากการดูพฤติกรรมของคนที่เข้ามาใช้

Approaches

เรามาดูกันดีกว่า ว่า Recommendation System มันมีวิธีการยังไงบ้าง

Image source

Content-based ก็คือการเรียนรู้จาก item ที่มีอะไรคล้ายๆกัน เช่น การแนะนำหนังที่อยู่ในหมวดหมู่เดียวกัน หรือนักแสดงเดียวกัน

Collaborative filtering ก็คือการเรียนรู้จาก user ที่มีลักษณะคล้ายๆกัน เช่น ถ้านายเอกชอบดูหนัง A,B,C ส่วนนายโอม ชอบ A,B,D เราสามารถบอกคร่าวๆได้ว่า 2 คนนี้ชอบหนัง A, B เหมือนๆกัน แล้วนายเอกอาจจะชอบหนัง D เหมือนนายโอม หรือนายโอมอาจจะชอบหนัง C เหมือนนายเอก ก็เป็นไปได้

Hybrid approach ก็คือการนำเอาทั้ง 2 วิธีก่อนหน้านี้มาใช้ร่วมกัน ซึ่งใน Business ได้นำเอามาใช้อย่างแพร่หลาย แต่สำหรับบทความนี้จะยังไม่ขอพูดถึง

Algorithm

Image source

KNN K-Nearest Neighbors (Collaborative filtering) เป็นอัลกอริทึมที่เรียบง่าย โดยการหา item ที่คล้ายๆกัน k ชิ้น โดยใช้ Cosine similarity ในการวัดความใกล้เคียงของ item จากตัวอย่างจะเห็นได้ว่า Alice มีลักษณะการให้คะแนนของหนังคล้ายกับ John แปลว่าหนังบางเรื่องที่ John เคยดูแล้ว แต่ Alice ยังไม่เคยดู Alice อาจจะให้คะแนนหนังเรื่องนั้นๆ คล้ายกับ John

Image source

Matrix Factorization (Collaborative filtering) เราจะมี matrix 2 อัน users, items โดยเราบอกว่า matrix ของ user กับ item มี feature ที่จะบ่งบอกความชอบ หรือความใกล้เคียง (Latent Factor) แล้วพอนำมา dot matrix กันแล้วจะได้ความชอบของ user นั้นๆ ที่มีต่อ item นั้นๆ

การหา Latent Factor ก็คือเราให้ P คือ matrix ของ user และ Q คือ matrix ของ item และ R คือ ผลลัพธ์บางอย่างที่เรารู้จาก user ว่า ชอบ item นี้เท่าไหร่ ซึ่งเป้าหมายคือเราต้องการเติมค่า ในสิ่งที่เราไม่รู้จาก user นั้นๆ และเราก็ต้องการให้ผลต่างของสิ่งที่ทำนาย กับข้อมูลบางส่วนที่เรารู้แล้วนั้นมีค่าน้อยที่สุด

Image source

Association rules เป็นการดูความสัมพันธ์ของข้อมูล เช่น ถ้า item A ถูกซื้อ มักจะตามมาด้วย B, C, D หรือ ถ้า B, C ถูกซื้อมักจะตามมาด้วย A, D, F หลังจากทราบความสัมพันธ์ของ item แล้วเราก็จะคาดการณ์ได้ว่า ถ้า user ซื้อ item นี้ เราก็จะแนะนำ item ที่คนส่วนใหญ่มักจะซื้อตามมา

ก็หมดไปแล้วสำหรับพื้นฐาน Recommendation Systemในครั้งหน้าเรา จะมาพูดถึงในส่วนของ Hybrid กับการนำเอา Neural Network มาใช้ และอาจจะมีตัวอย่างของการ implement อย่างง่าย สำหรับใครที่สนใจไว้ติดตาม part 2 ต่อได้เลยครับ

--

--