Topic modeling ดีกว่าเดิมได้ ด้วย Word Embedding


Share this article

Topic modeling คืออะไร

ลองจินตนาการว่าเรามีเอกสารที่เป็นข้อความจำนวนมากๆ ที่เราต้องทำการวิเคราะห์ เช่น เราเปิดร้านขายของออนไลน์ และต้องการวิเคราะห์รีวิวของลูกค้าเกี่ยวกับสินค้าของเรา แทบจะเป็นไปไม่ได้เลยที่เราจะอ่านข้อความทั้งหมด เพื่อแยกหมวดหมู่หาว่าลูกค้าคิดอย่างไรกับร้านค้าของเรา ดังนั้น Topic Modeling จะสามารถตอบโจทย์นี้ได้ โดยการช่วยแยกเอกสารเป็นกลุ่มๆ แล้วเราจึงเข้าไปดูว่าแต่ละกลุ่มคืออะไร เช่น เราตั้งค่าให้อัลกอริทึมหา 5 topics จากข้อความทั้งหมด หลังจากทำการสร้างโมเดลเสร็จ เราสามารถเข้าไปดูตัวอย่างเอกสารในกลุ่มนั้นๆ และดูคำสำคัญในแต่ละกลุ่ม เราอาจจะพบว่า topic ที่ 1 คือคำชมเกี่ยวกับการจัดส่งที่รวดเร็ว topic ที่ 2 คือข้อติเกี่ยวกับการแพ็คสินค้า อัลกอริทึมที่เทรนแล้วสามารถนำไปประยุกต์เพื่อสร้างระบบมอนิเตอร์รีวิวของลูกค้าอัตโนมัติ เราจะได้แก้ไขข้อบกพร่อง หรือเสริมจุดที่ลูกค้าชมได้
หมายเหตุ : topics ที่ได้จากการจัดกลุ่มอัตโนมัติ คำนวณมาจากสถิติการใช้คำ ไม่ได้หมายความว่าจะสามารถตีความ topic เหล่านั้นแบบมนุษย์ได้เสมอไป

Topic Modeling ทำงานยังไง

เดิมทีการจัดหมวดหมู่เอกสารแบบอัตโนมัติ (Topic Model) มักจะใช้เทคนิคที่ชื่อว่า Latent Dirichlet Allocation [1] หรือ เรียกสั้นๆว่า LDA ซึ่งอาศัยหลักการที่ว่า “เอกสารเรื่องเดียวกัน จะมีการใช้คำคล้ายกัน” โดยดูจากปริมาณการใช้คำต่างๆ ในเอกสารนั้นๆ โดยในบทความนี้เราจะอธิบายแนวคิดเบื้องต้น ไม่ลงลึกถึงวิธีการคิดทางคณิตศาสตร์และสถิติ เพื่อให้คนทั่วไปสามารถเข้าใจได้

 

 

จากรูปข้างต้น ทฤษฎีของ LDA ตั้งอยู่บนสมมุติฐานทางสถิติไม่กี่ข้อ ดังนี้

  1. Topic ประกอบด้วยการกระจายตัวของคำ (ส่วนซ้ายมือในภาพ) แต่ละ topic ประกอบไปด้วยลิสต์ของคำ และความน่าจะเป็นจะพบคำนั้นใน topic
  2. แต่ละเอกสารประกอบด้วยการกระจายตัวของ topic (กราฟทางขวาในภาพ) ในเอกสารหนึ่งประกอบไปด้วยหลายหัวข้อ และเราทราบความน่าจะเป็นที่จะพบหัวข้อนั้นในเอกสาร
  3. เราสามารถสร้างเอกสารจากสถิติในข้อ 1 และ 2 (ส่วน document ตรงกลางในภาพ) เมื่อมีการกระจายตัวของคำ และ topic แล้ว เราสามารถสร้างเอกสารโดยการสุ่มหยิบหนึ่ง topic ตามความถี่ของ topic proportion ทางขวาของรูป และสุ่มหยิบคำตามความถี่ของคำของ topic นั้นในด้านซ้าย

ไอเดียนี้อาจจะดูแปลกสำหรับคนที่เพิ่งเคยได้ทำความเข้าใจ วิธีนี้เรียกว่าเป็น generative model หรือโมเดลที่ถูกสร้างขึ้นมาจากสมมุติฐานทางสถิติของวัตถุที่เรากำลังโมเดล ซึ่งต่างกับวิธีที่เราคุ้นเคยใน machine learning ที่เป็นแนว clustering หรือ classification ที่สร้างโมเดลจากสถิติคุณลักษณะของข้อมูล

โดยจุดอ่อนของ LDA คือ โมเดลจะรู้จักคำเท่าที่อยู่ในข้อมูลที่ใช้เทรนเท่านั้น และมักจะถูกจำกัดจำนวนคำที่ใช้ในการเทรน ไม่สามารถรับมือกับคำใหม่ๆ ได้ เช่น เรามีรีวิวของลูกค้า 10000 รีวิว ประกอบด้วยคำศัพท์จำนวน 40,000 คำ เราอาจจะต้องจำกัดคำที่โมเดลจะทราบให้เหลือเพียง 20,000 คำ โมเดลจะไม่เข้าใจคำอื่นๆ เมื่อนำไปใช้จริง

Word Embedding คืออะไร

ก่อนที่จะมี word embedding เราเคยแทนค่าคำด้วย vector (ในที่นี้จะขอใช้เป็น array) กันมาก่อนด้วยวิธี one-hot encoding โดยจะขอเล่าเป็นตัวอย่างตามข้างล่างนี้

  • เรามี dictionary ขนาด 10,000 คำ
  • เราจำเป็นต้องสร้าง array ขนาด 10,000 ช่องเพื่อใช้แทนค่าคำหนึ่งคำ ([10,000 x 1] vector)
  • คำว่า “ดาต้า” อยู่ลำดับที่ 5000 ของ dictionary

เราจะต้องสร้าง array นี้เพื่อแทนคำว่า “ดาต้า” (สมมุติว่า array เริ่มนับที่ 0)

index 1 2 4999 5000 5001 5002 9999
value 1

จากตัวอย่างข้างต้น เราจะเห็นว่าการ encode วิธีนี้มีความสิ้นเปลืองเมมโมรี และขาดการสื่อความหมาย เช่นคำว่า “ดาต้า” และ “ข้อมูล” ต้องถูก encode ด้วย vector สองอันที่ไม่เหมือนกันเลย ทั้งๆ ที่ความหมายของสองคำนี้คล้ายกัน จึงมีการใช้ word embedding เพื่อแก้ข้อด้อยส่วนนี้

Word Embedding คือการแทนค่าคำศัพท์ด้วยเวกเตอร์ที่มีจำนวนมิติลดลง วิธีที่เป็นที่นิยมเรียกว่า Word2Vec [2] ซึ่งสร้างเวกเตอร์ของแต่ละคำขึ้นมา โดยดูจากความสัมพันธ์ระหว่างคำคำนั้น กับคำรอบข้าง (บริบท) โมเดลนี้สามารถกำหนดจำนวน dimension ของข้อมูลได้ ไม่ต้องใช้จำนวน dimension เท่ากับจำนวนคำเสมอไป

รูปข้างต้นแสดงตัวอย่างการสร้าง Word2Vec model โมเดลนี้รับ input เป็นคำรอบข้าง สร้างโมเดล (projection) ที่ให้ output ออกมาเป็นคำตรงกลางที่หายไปจาก input ตัวอย่างเช่น

  • เรามี dictionary ขนาด 10,000 คำ
  • ตัวอย่างประโยคในเอกสารที่จะโมเดล: เรา ไป กินข้าว เที่ยง กัน เถอะ
  • เราตั้งค่า embedding dimension 100 (โดยทั่วไปค่าจะอยู่ที่ 100-300)
  • ตัวอย่าง input: เรา, ไป, เที่ยง, กัน
  • ตัวอย่าง output: กินข้าว – โมเดลกำลังเรียนรู้คำว่ากินข้าว จากคำรอบข้าง (input) โดยโมเดลจะให้ output เป็นเวกเตอร์ขนาด [1 x 100] ที่ทดแทนคำว่า กินข้าว
READ  Predictive Maintenance: การทำนายหรือคาดการณ์การเสียของเครื่องจักร

หากเราสอนโมเดลแบบนี้ โดยเลื่อนตำแหน่งคำไปเรื่อยๆ มันจะสามารถเรียนรู้เวกเตอร์ขนาด 100 dimension ทั้งหมด 10,000 เวกเตอร์ แทนทุกคำที่มีใน dictionary

เมื่อเทรนโมเดล Word Embedding เสร็จแล้ว เราพบว่ามันสามารถเรียนรู้ความสัมพันธ์และความหมายของคำในเชิงเวกเตอร์ด้วย (semantic relationships) เช่น เวกเตอร์ของคำที่มีความหมายคล้ายกัน จะมีความคล้ายคลึงกัน และมีความสัมพันธ์กันในเชิงเวกเตอร์ด้วย ดังตัวอย่างในรูปข้างล่าง ถ้าเราพล็อตเวกเตอร์ที่แทนชื่อประเทศ และชื่อเมืองหลวง แล้วลากเส้นจากประเทศไปเมืองหลวงของประเทศนั้น จะเห็นเส้นที่ขนานกัน บ่งบอกว่าความสัมพันธ์เหล่านี้มีความคล้ายคลึงกันนั่นเอง

สร้าง Topic Model ที่ดีขึ้นได้ด้วย Word Embedding

ไม่นานมานี้ มีงานวิจัยชิ้นใหม่ Topic Modeling in Embedding Space [3] ได้พัฒนาเทคนิคในการทำ Topic Modeling โดยใช้ชื่อว่า Embedded Topic Model (ETM) ด้วยการนำเทคนิค LDA มาประยุกต์เข้ากับ Word Embedding โดยการเรียนรู้เวกเตอร์ที่แทน topic และเวกเตอร์ที่แทน word ด้วย เทคนิคนี้อธิบาย generative process ภายในเอกสาร ด้วยผลคูณระหว่าง word vector และ topic vector แทนที่จะใช้ความถี่ที่พบเหมือน LDA

ข้อดีก็คือ โมเดลนี้สามารถรับมือกับคำใหม่ๆที่ไม่เคยพบมาก่อนในชุดข้อมูลที่ใช้ในการเทรน topic model (แต่ต้องเป็นคำที่เคยเจอมาแล้วในตอนที่สร้าง word embedding) หากคำใหม่ที่พบมีความหมายหรือบริบทใกล้เคียงกับคำเดิมที่เคยรู้จัก โมเดลก็มีแนวโน้มที่จะเข้าใจคำใหม่นั้นได้ นอกจากนี้โมเดลยังสามารถทำงานได้ดีเมื่อไม่มีการกรอง stop words (คำที่มักจะพบในข้อความทั่วไป และไม่สื่อความหมายเช่น a, an, the)

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

  1. Topic Coherence (TC): คือ CV score ของ Topic Coherence framework เพื่อวัดว่าในส่วนหนึ่งๆ ของเอกสารที่เอามาทดสอบ เจอคำใน topic เดียวกันอยู่ร่วมกันบ่อยขนาดไหน
  2. Topic Diversity (TD): คือค่าที่วัดว่าแต่ละหัวข้อที่ได้ มีคำไม่ซ้ำกัน โดยดูจากอัตราส่วนคำที่ไม่ซ้ำในลิสต์ 25 คำแรกของทุกหัวข้อ
  3. Topic Quality: คือผลคูณของ TC และ TD
  4. Intepretability: คือค่ายกกำลังของ Topic Quality
  5. Predictive Power: คือ log likelihood ของ document completion task เพื่อวัดว่าหากแบ่งเอกสารเป็นสองส่วน การกระจายตัวในส่วนที่สองจะคล้ายกับส่วนแรกขนาดไหน

 

 

ภาพนี้คือผลของการทดลอง โดยค่า V ในภาพคือจำนวนคำทั้งหมด และค่า Interpretability กับ Predictive Power ที่แสดงในภาพนี้ ได้มีการปรับอัตราส่วนด้วยการลบค่าเฉลี่ยระหว่างโมเดล (mean) และหารด้วยส่วนเบี่ยงเบนมาตรฐาน (SD)

 

 

จากตารางแสดงผลการทดลองเราจะเห็นได้ว่า pre-trained word embedding ร่วมกับเทคนิค ETM (ETM-PWE) โดยรวมแล้วทำงานได้ดีกว่าเทคนิคอื่นๆ สรุปแล้ว การนำเอาเทคนิค generative model มาผสมกับ word embedding ทำให้เราสามารถสร้าง topic model ที่เข้าใจภาษาคนได้มากขึ้น วิธีนี้สามารถนำไปประยุกต์ใช้ได้ในหลาย application ไม่ว่าจะเป็นการอ่านรีวิวลูกค้า การแยกแยะบทสนทนาในเว็บบอร์ด หรือการมอนิเตอร์ข่าวสารอัตโนมัติ

References
[1] D. M. Blei, A. Y. Ng and M. I. Jordan, “Latent Dirichlet Allocation,” Journal of Machine Learning Research, vol. 3, pp. 993-1002, 2003.

[2] T. Mikolov, G. Corrado, K. Chen and J. Dean, “Efficient Estimation of Word Representations in Vector Space,” Proceedings of the International Conference on Learning Representations, 2-4 May 2013.

[3] A. B. Dieng, F. J. R. Ruiz and D. M. Blei, “Topic Modeling in Embedding Spaces,” Transactions of the Association for Computational Linguistics, vol. 8, pp. 439-453, 2020.

[4] T. Mikolov, I. Sutskever, K. Chen, G. Corrado and J. Dean, “Distributed Representations of Words and Phrases and Their Compositionality,” Proceedings of the 26th International Conference on Neural Information Processing Systems, vol. 2, pp. 3111-3119, 5-10 December 2013.

READ  AI กับการเลี้ยงผึ้ง : การวิเคราะห์ข้อมูลการเกษตร

 


ลงทะเบียนรับข่าวสาร

ไม่พลาดทุกการอัพเดทจาก Big Data Experience Center

Big Data Experience Center (BX)

ชั้น 14 อาคาร Knowledge Exchange Center (KX)
110/1 ถนนกรุงธนบุรี, แขวงบางลำภูล่าง เขตคลองสาน กรุงเทพฯ 10600
อีเมล์: [email protected]
Tel: 097-941-9889

ABOUT

SERVICES