สิ่งที่ได้จากงาน Tencent Open House #11: AI & Machine Learning

lukkiddd
lukkiddd
Published in
5 min readJun 28, 2018

ขออนุญาติสรุปเก็บไว้ให้ตัวเอง และคนที่สนใจอ่านนะครับ หากผิดพลาดตรงไหน หรือมีอะไรที่ผิด บอกได้เลยนะครับ

Sessions

  1. By Nart — Data Scientist at Agoda
    “Advances in nlp and image recognition with TensorFlow hub demo”
  2. By James — Data Scientist at Agoda & GDE in Machine Learning
    “Recommender Systems: from Classical Algorithms to Deep Learning”
  3. By Ta — Co-founder @Skooldio & GDE in Machine Learning
    “People + AI: Human Intelligence meets Machine Intelligence”

Session #1: “Advances in NLP and Image Recognition with TensorFlow hub”

Session มีประมาณ 3 เรื่องใหญ่ ๆ ครับ

  • Computer vision (Image recognition)
  • Natural Language Processing (Attention is all you need)
  • Tensorflow hub

1. Computer vision (Image recognition)

เริ่มมาตอนแรกก็จะพูดอธิบายเรื่อง Convolution ครับว่าทำงานอย่างไร

1.1 CNN (Convolutional Neural Network)
โดยการ convolution ภาพ มันคือการมองภาพเป็นเมตริกซ์ของ pixel เรียงต่อกัน อย่างตัวอย่างข้างล่าง เราอาจจะให้เลข 1 คือสีดำ เลข 0 คือสีขาว หลังจากนั้นเราก็จะใช้สิ่งที่เรียกว่า filter (สี่เหลี่ยมสีเหลือง ซึ่งก็คือ เมตริกซ์ ของค่า filter ขนาด 3x3) เอามาทำการ convolution กับภาพ แล้วก็จะได้ผลลัพธ์เป็นเมตริกซ์ สีแดง

ref: Convolutional Neural Network (Hacker noon)

สีเขียว * สีเหลือง = สีแดง (* = convolution)

1.2 Network Architectures
หลังจากนั้นพี่ Nart ก็พูดถึง Network Architecture หลายๆแบบเช่น

  • AlexNet
  • VGG
  • GoogleLeNet (Inception)
  • ResNet
  • DenseNet

1.3 NAS (Network Architecture Search)
จากเรื่องราวข้างต้น จะเห็นว่ามันมีรูปแบบ Network Architecture หลายแบบมากๆ เลยมีคนคิดค้น NAS (Network Architecture Search) มันคือการที่เราสร้าง Neural Network ตัวนึง มาให้มันเรียนรู้เพื่อสร้าง Network Architecture ที่เหมาะสมให้เราได้ ซึ่งจะใช้หลักการของ Reinforcement Learning อ่านเพิ่มเติมเรื่อง NAS

ซึ่ง NASNet ก็ได้มีการนำไปใช้ใน product ของ google ด้วยครับ นั่นคือ AutoML อ่านเพิ่มเติม AutoML for large scale image classification and object detection

2. Natural Language Processing (Attention is all you need)

ในส่วนนี้พี่ Nart ก็จะเริ่มจากการเกริ่น Architecture RNN(Recurrent Neural Network) ให้ฟังก่อนว่ามันเป็นยังไง

2.1 RNN(Recurrent Neural Network)
พี่ Nart เล่าว่า RNN เนี่ยมันทำงานในรูปแบบ Sequence หรือตามลำดับ ดังนั้นเวลาเอามาใช้กับงานด้าน NLP เนี่ย “ลำดับ” ก็คือ “ลำดับคำ” แปลว่าเราจะค่อย ๆ ใส่ข้อมูลเข้าไปใน Neural Network ของเราทีละคำ แล้วค่อยให้มัน Predict ออกมา อ่านเพิ่มเติม RNN

2.2 Seq2Seq model (Sequence to Sequence model)
ด้วยความสามารถจาก RNN ที่ทำให้เราสามารถเรียนรู้ข้อมูลที่เป็นลำดับได้นั้น Sequence to Sequence model ซึ่งจะทำการเรียนรู้ลำดับ A เพื่อแปลงเป็นลำดับ B ตัวอย่างที่ยกมาคืองานประเภท Machine Translation หรือการแปล ที่เรามักจะแปลงลำดับคำจากภาษาหนึ่ง ไปเป็นอีกภาษาหนึ่ง

ซึ่งพี่ Nart ก็บอกว่าข้อเสียที่เกิดขึ้นอย่างนึงคือการที่มันไม่สามารถจำ long-term dependency ได้ดีพอ เช่น

“The animal didn’t cross the street because it was too tired.”

จากประโยคข้างต้น เราจะเห็นว่า it ในที่นี้หมายถึง animal ใช่ไหมครับ แต่ network อาจจะลืมคำว่า animal ไปแล้ว จากปัญหา long-term dependency ทำให้มันย้อนไปได้ไม่ถึง ผลลัพธ์ที่ได้เลยผิดพลาด

2.3 Attention is all you need
Attention Mechanism จะทำหน้าที่จำ context ไกลๆ ให้ครับ ทำให้ Network สามารถเรียนรู้ได้ว่า คำไหนแปลเป็นคำไหน ได้ไกลขึ้น

จากรูป สีเข้ม คือ attention สูง นะครับ จะเห็นว่าคำที่แปลออกมาจะสามารถเลือกได้ว่ามันควรจะแปลมาจากคำไหนบ้าง

อีกตัวอย่างหนึ่งคือการแปลงเสียงเป็นข้อความนะครับ จะเห็นว่า attention สามารถช่วยเราเรียนรู้ long-term dependencies ได้ดีขึ้น

หรืออีกตัวอย่างนึงครับ จะเห็นว่า network สามารถเรียนรู้ได้ว่า it แรกคือ animal เพราะมีคำว่า “too tired” แต่ it ที่สองคือ street เพราะมีคำว่า “too wide”

อ่านเพิ่มเติมเกี่ยวกับ Attention

หลังจากเกริ่นเรื่อง Attention มาแล้วพี่ Nart ก็พาเราเข้าสู่ Paper: Attention is all you need ครับ ใน paper นี้ เค้าพยายามจะบอกว่าการใช้ Attention เพียงอย่างเดียวก็สามารถที่จะมีประสิทธิภาพได้ดีเทียบเท่าหรือดีกว่าการใช้ Network architecture ที่วุ่นวายได้นะ โดยใน Paper ก็จะอธิบายวิธีที่เค้าใช้ทั้งหมดครับ ไม่ว่าจะเป็น Transformer, Self-Attention, Multi-head attention อันนี้พี่ Nart ได้อธิบายในงาน แต่ค่อนข้างลึก เอาเป็นว่าถ้าสนใจ สามารถไปอ่านเพิ่มเติมได้ที่ Paper: Attention is all you need หรือดู Live Tencent Open house #11 ประมาณนาทีที่ 42:00

2.4 Universal Sentence Encoder
สุดท้ายพี่ Nart ก็ปิดด้วยการเกริ่นถึง Universal Sentence Encoder ซึ่งมันคือการทำ embedding ระดับประโยค ซึ่งส่วนประกอบหลัก ๆ ของการทำ sentence embedding ใน paper นี้คือการใช้

สิ่งที่น่าสนใจคือ ในการทำ Transfer Learning วิธีนี้ (Sentence embedding) ค่อนข้างให้ผลลัพธ์ที่ดีกว่าการทำ Word embedding โดยใช้ปริมาณข้อมูลที่น้อยกว่า

ใครสนใจอ่านเพิ่มเติมตามไปอ่านที่ Paper ได้เลยครับ อ่านเพิ่มเติม Universal Sentence Encoder

3. Tensorflow hub

เรื่องสุดท้ายครับ จากที่พี่ Nart เล่ามาทั้งหมด ไอ Network Architecture หลายๆ แบบที่ว่ามานั้น ทั้งหมดนั้นเราไม่ต้องมานั่งหาข้อมูลจำนวนหลายล้าน หรือมานั่งเขียน model ต่อ network layer เองเลย ทั้งหมดนี้มีใช้ดึงมาใช้อยู่แล้วจาก Tensorflow hub ครับ

Tensorflow hub เป็น Online Repositories ที่นักพัฒนาคนไหนทำโมเดลเสร็จแล้ว ก็สามารถโยนโมเดล พร้อม Pretrained-weight ไปไว้บนนั้นได้ ทำให้คนอื่น ๆ เนี่ยสามารถดึงมาใช้ได้โดยง่าย แบบไม่ต้องไปนั่งทำใหม่ทั้งหมด

ซึ่งวิธีใช้ก็ง่ายแสนง่าย 3 ขั้นตอนจบ

  1. เลือก Module
  2. ใส่ Input ได้ features
  3. จะเอา features ไปทำอะไรต่อก็ครับ จะต่อ output layer ของเราเองก็ได้

เป็นอันจบ Session ที่ 1 ครับ

Session #2: “Recommender Systems: from Classical Algorithms to Deep Learning”

Session นี้มี 3 เรื่องครับ คือ

  • What is recommenders system
  • Classical approach
  • Neural network approach

1. What is recommender system

พี่ James บอกว่า Recommender system คือ

Estimate utility function to predict how user like them.

2. Classical Approach

  1. Content-based
    เลือกจาก item ที่มีคุณสมบัติคล้ายๆ กัน เช่น สมมติ user A ชอบดูหนัง Action งั้นก็แนะนำหนัง Action ให้ user A เลย
  2. Collaborative filtering
    เลือกจากความชอบที่คล้าย ๆ กันของ user เช่น
    - user A ชอบหนัง A B C
    - user B ชอบหนัง A B D
    เราเลยแนะนำ D ให้ user A และ แนะนำ C ให้ user B เพราะมีความชอบคล้าย ๆ กันนั่นเอง

2.1 Feedback
พี่ James มีพูดถึงเรื่องของ Feedback นิดหน่อยว่ามีสองประเภท

  1. Explicit feedback
    - users rating (ให้คะแนนมาก = ชอบมาก, คะแนนน้อย = ชอบน้อย)
  2. Implicit feedback
    - clicks, bookings (วิธีนี้จะไม่มี Negative feedbacks หมายถึงถ้า user ไม่ได้ click หรือไม่ได้ จอง ไม่ได้แปลว่า user ไม่ชอบ)

2.2 Collaborative filtering
พี่ James บอกว่ามันคือการ Fill in the blank เลย แล้วมันก็มีหลายวิธีนะ

  1. Similarity (คำนวณโดยใช้ Cosine Similarity)
  2. Matrix Factorization

ข้อเสียของ Classical approach

  1. เราจะรวม implicit data จากหลาย ๆ แบบยังไง? (click, booking)
  2. action ที่เพิ่งเกิดขึ้น ควรจะมี weight เยอะกว่า
  3. จะเอาข้อมูล context (user’s location, day of the week, hour of the day) มาใช้ยังไง?
  4. ทำ Incremental learning ยังไง (เรียนรู้เพิ่มเรื่อย ๆ เช่น ระหว่างที่แนะนำสินค้าหรือบริการอยู่ หาก user ทำการคลิกเข้าไปดู สินค้า A เราก็ควรจะแนะนำสินค้าใหม่ได้เลยทันที เพราะมีข้อมูลใหม่แล้ว)

3. Neural Network Approach

พี่ James ก็บอกว่าเค้ามองเป็นโจทย์ Sequence predictions คือทำนายว่า ถ้า user จองโรงแรม A แล้ว click ดูเว็บไปเรื่อย ๆ (ดูโรงแรม B, C, D) แล้วสุดท้าย user จะจองโรงแรมอะไรต่อไป

ซึ่ง Neural Network ที่นำมาใช้ก็คือ RNN (Recurrent Neural Network) โดยมี input เป็นลำดับของ action ในเว็บ แล้วก็ต่อด้วย Fully connected เพื่อให้ network เรียนรู้ user’s feature แล้วสุดท้ายก็ต่อด้วย softmax layer เพื่อทำ classification ว่าจะทำอะไรต่อ

คราวนี้แล้วจะใช้ context ยังไง

  1. ใช้เป็น Initial state ของ RNN
  2. เอามา Concatenate กับผลลัพธ์ของ RNN ก่อนเข้า Fully connected layer
  3. ทำทั้งสองแบบด้านบนเลย

ซึ่งข้อดีของ Neural Network Approach ก็คือ

  1. สามารถ Capture sequential information ได้
  2. สามารถรวม action types (clicks, booking) หลายๆ แบบได้
  3. สามารถเรียนรู้ context ของ user ได้
  4. สามารถ adapt ตาม user actions ได้ (incremental learning)

4. Recommended Reading

สุดท้ายพี่ James ก็ปิดด้วย Reading list ที่น่าสนใจครับ

Session #3: “People + AI: Human Intelligence meets Machine Intelligence”

ส่วน session นี้ อ่านที่ blog นี้เลยคร้าบ สรุปโดย Data Scientist Finnomena ครับ

ส่งท้าย

ต้องขอขอบคุณวิทยาการทุกท่าน สถานที่ และ tencent thailand ที่จัดงาน open house ดีดีแบบนี้ครับ สุดท้ายนี้ หากตรงไหนตกหล่นหรือผิดพลาดประการใด บอกได้เลยนะครับ หากใครต้องการดูย้อนหลังสามารถดูได้ที่ Tencent Thailand Open House #11 นะครับ

--

--