[#1 Journal club] ส่อง Recommendation System ของ Pinterest

Suraphan Laokondee
SCB TechX
Published in
3 min readAug 17, 2022

TechX Knowledge Sharing

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

ที่ TechX เราให้ความสำคัญกับ Knowledge Sharing เป็นอย่างมาก โดยมีทั้ง Internal Knowledge Sharing ด้วยความรู้จากการได้ทำงานจริงหรือการทดลองภายในองค์กร¹ หรือการเชิญบุคคลที่มีความรู้จริงในด้านนั้น ๆ เข้ามาแชร์ประสบการณ์และความรู้² ทำให้ชาว TechX ของเรามีความรู้ที่หลากหลาย โดยได้มุมมองที่มาจากทั้งภายในและภายนอกองค์กร

Internal knowledge sharing by P’Jo

เริ่มต้น Journal Club “Knowledge is the basis for innovation”

Paper: ItemSage: Learning Product Embeddings for Shopping Recommendations at Pinterest

SCB TechX Data Science Team ของเรานั้นแบ่งงานหลัก ๆ ออกเป็น

  • งานประมวลผลข้อมูลทำ Data Pipeline
  • งานวิเคราะห์หาข้อมูลเชิกลึกหา Insight
  • วิเคราะห์เพื่อทำ Report หรือ Dashboard
  • งานวิจัยและทำโมเดลต่าง ๆ หรือ Research Track ที่จะนำความรู้จากงานวิจัยมาทำให้เป็นโปรดักส์ที่ใช้งานได้จริง

ต้องยอมรับว่าการทำงานวิจัยนั้นเราจำเป็นต้องหาข้อมูลและอ่านเอกสารงานวิจัย Paper/Journal ค่อนข้างเยอะ การศึกษาและอ่าน Paper นั้นเป็นงานที่ยากและท้าทายเสมอ :) สิ่งนึงที่สามารถช่วยให้การทำวิจัยสนุกขึ้นได้และทำให้ทีมงานมีความรู้ที่ใหม่อยู่เสมอคือการนำเอางานวิจัยใหม่ ๆ มาคุยและแลกเปลี่ยนความคิดเห็นกันเพื่อหาแนวทาง ข้อดี ข้อเสีย และความเป็นไปได้ในการนำมาใช้กับงานของเรา อีกทั้งยังช่วยให้นักศึกษาฝึกงานในทีมได้มีประสบการณ์ในการอ่านงานวิจัย

เริ่มต้น Journal Club

TechX Data Science Team จึงเริ่มจัด Journal Club ทุก ๆ เดือนเพื่อให้เกิดการแลกเปลี่ยนความคิดและช่วยกันค้นคว้าหาข้อมูลนำเอางานวิจัยที่น่าสนใจมาคุยกัน โดยในปัจจุบันทีมวิจัยกำลังสนใจในหัวข้อการทำ Recommendation System โดยได้มีการค้นคว้าหางานวิจัยที่เกี่ยวข้อง จึงเลือก Paper แรกที่เราเลือกมาคุยกันคือ Itemsage³ จาก Pinterest เพราะเป็นแนวทางที่เราอาจจะได้นำความรู้ไปใช้ในงานจริง อีกทั้งเพื่อให้เกิดความเชื่อมั่นว่าความรู้ที่ทีมเอามาแลกเปลี่ยนกันนั้นจะไม่ถูกทิ้งไปและเป็นความสนใจของทีมจริง ๆ

Journal Club #1 — Recommendation System

หากใครคุ้นเคยกับการทำ Recommendation System อาจจะเคยได้ยินเกี่ยวกับเทคนิค Matrix Factorization, Collaborative Filtering, Content-Based Filtering ที่เป็นพื้นฐานและได้มีการนำไปใช้อย่างแพร่หลาย
ในปัจจุบันได้มีการพัฒนา Algorithm ที่หลากหลายมากขึ้นและเหมาะสมกับการนำไปใช้ในโปรดักส์ในสเกลที่ใหญ่ขึ้น เช่น Youtube Recommendations⁴ ด้วยการใช้ Deep Learning หรือการนำเอา Graph Convolution Network (GCNs)⁵ มาใช้เพื่อเพิ่มประสิทธิภาพ

Pinterest

หลาย ๆ คนน่าจะรู้จักกับ Pinterest เป็นอย่างดีเพราะเป็น Application ที่โด่งดังในเรื่องของการแสดงผลภาพที่สวยงาม ผู้ใช้จำนวนมากเข้าไปใช้งานเพื่อหาไอเดียในการตกแต่งบ้านหรือเข้าไปดูเทรนแฟชั่นและสิ่งที่ Pinterest แนะนำให้กับผู้ใช้งานนั้นค่อนข้างแม่นยำและตรงเป้าหมายกับกลุ่มผู้ใช้งานเป็นอย่างดี โดยส่วนมากจะแนะนำจากภาพของ Pin ที่ผู้ใช้กำลังดูหรือประวัติการดูของผู้ใช้งาน
Pinterest เองก็เป็นบริษัทหนึ่งที่ลงทุนในการพัฒนา Recommendation System มาอย่างต่อเนื่องและได้มีการตีพิมพ์ผลงานวิจัยที่เกิดขึ้นและใช้จริงใน Pinterest
โดย ItemSage เป็นตัวต่อยอดของ PinSage⁶ ที่ใช้ทำ Product Embedding ที่ใช้งานจริงบน Productionในขณะนี้

ด้วย Pinterest มีการทำ Recommendation ในหลาย ๆ ส่วนของ Application (Surface) เช่นหน้า Home, Closeup, Search และรับข้อมูล Input ทั้งภาพ (Pin) และ Text (Multi-Modal) ซึ่งในแต่ละส่วนของ Application จะมี Recommendation Model เป็นของตัวเอง เช่น PinSage, SearchSage จึงทำให้ Pinterest เริ่มเจอปัญหาการดูแลและพัฒนาได้ช้าลง และมีค่าใช้จ่ายด้าน Infrastructure ที่สูง
อีกทั้งบริษัทต้องการเพิ่มสามารถในการรองรับการ Recommend ใน Shopping Product (Add to Cart, Checkout) เพิ่มจากเดิมที่จะสนใจแค่การแนะนำในสิ่งที่ลูกค้าน่าจะอยากดู (Click, Save) (Multi-task Learning) จึงทำให้เกิด แนวคิดที่จะทำ Recommendation โมเดลที่สามารถใช้ ได้ในทุกที่ใน Application

Screenshots of ItemSage being used for product recommendations on Home, Closeup and Search surfaces., ItemSage: Learning Product Embeddings for Shopping Recommendations at Pinterest (2022), figure 2.

Model Architecture

ตัวโมเดล ItemSage นั้นใช้ Transformer-based Architecture ที่สามารถทำการรวมข้อมูลทั้ง ภาพและข้อความ โดยจะใช้ข้อมูลนำเข้าเป็น Image 20 ภาพของแต่ละสินค้า และใช้ข้อมูล Text 12 ข้อมูล เช่น Title, Description, Category, Brand, Colors, etc. โดยเก็บข้อมูลจาก Closeup และ Search Engagement Logs มาทำการสอนโมเดล

ItemSage model architecture, ItemSage: Learning Product Embeddings for Shopping Recommendations at Pinterest (2022), figure 3.

Evaluation

สำหรับการวัดผล Pinterest นั้นได้ใช้การวัดผลทั้งในแบบ Offline ที่ใช้
Recall@k: k=10 เพราะต้องการให้ได้ Item ที่ Relevant มากที่สุดเท่าที่เป็นไปได้ และแบบ Online ที่ใช้การทำ A/B Testing บน Live Traffic เพื่อวัด Business Metrics ต่าง ๆ

Precision and Recall@K

หลาย ๆ คนที่เคยทำ Machine Learning Model มาอาจจะคุ้นเคยกับ Precision และ Recall แต่ในการวัดผลของการทำ Recommendation System นั้นจะแตกต่างไปเล็กน้อย โดยการคำนวณ Precision และ Recall นั้นจะคำนวณจาก

https://datascience.stackexchange.com/questions/92247/precisionk-and-recallk

โดยถ้าให้ Item ที่เราแนะนำไปให้ลูกค้าเห็นแทนเป็นตัวเลข 0 และ 1
ในลักษณะเป็น Item เรียงกัน 1 0 1 0 1 โดย 1 คือ Relevant และ 0 Irrelevant
เราจะสามารถคำนวนค่า Precision และ Recall@K ได้ตามตาราง

Result

โดยผลลัพธ์นั้น ItemSage มีประสิทธิภาพที่สูงขึ้นเมื่อเทียบกับ Model เดิมที่ Pinterest ใช้จากความสามารถของ Multi-task Learning ที่นำความรู้ของทั้ง Event Click และ Save มาใช้ร่วมกับ Event Add to Cart และ Checkout และมีความสามารถที่นำไปใช้งานได้หลากหลาย Use Case ทั้งในการ Recommend Pin, Shopping และ Search จึงช่วยให้ Pinterest สามารถลดค่าใช้จ่าย (Cost) ที่เกี่ยวกับ Infrastructure และ Maintenance Cost ได้เป็นอย่างดี

What we get from the Journal Club

การได้นำ Paper ItemSage มานำเสนอและแลกเปลี่ยนความคิดเห็นกันใน Journal Club ทำให้เกิดการแชร์ความรู้และทำให้ในทีมมีความเข้าใจในการทำระบบ Recommendation ขนาดใหญ่ได้ดีขึ้น นอกจากนี้ยังทำให้เกิดการต่อยอดและนำไปสู่การหยิบยก Paper อีกหลายอันที่เกี่ยวข้องขึ้นมาคุยกันอีกด้วย

Knowledge is the basis for innovation

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

References

[1] มาลองใช้ MLflow ช่วยทำ Machine Learning กันเถอะ
[2] TechX Sharing: Data for Everyone ที่ใครๆก็ใช้ Data และเป็น Data Analyst ได้
[3] ItemSage: Learning Product Embeddings for Shopping Recommendations at Pinterest
[4] Deep Neural Networks for YouTube Recommendations
[5] Graph Convolutional Neural Networks for Web-Scale Recommender Systems
[6] PinSage: A new graph convolutional neural network for web-scale recommender systems

--

--