LDA กับ word2vec


39

ฉันพยายามที่จะเข้าใจความคล้ายคลึงกันระหว่างLatent Dirichlet Allocationและword2vecสำหรับการคำนวณความคล้ายคลึงกันของคำ

ดังที่ฉันเข้าใจ LDA จับคู่คำกับเวกเตอร์ของความน่าจะเป็นของหัวข้อแฝงในขณะที่ word2vec จับคู่คำกับเวกเตอร์ของจำนวนจริง (เกี่ยวข้องกับการสลายตัวตามตัวอักษรเอกพจน์ของข้อมูลร่วมกันแบบพอยต์ดูO. Levy, Y. Goldberg) ตามตัวประกอบเมทริกซ์โดยนัย " ; ดูเพิ่มเติมที่word2vec ทำงานอย่างไร? )

ฉันสนใจทั้งในด้านความสัมพันธ์ทางทฤษฎี (สามารถพิจารณาได้ว่าเป็นลักษณะทั่วไปหรือการเปลี่ยนแปลงอื่น ๆ ) และในทางปฏิบัติ (เมื่อใช้อย่างใดอย่างหนึ่ง แต่ไม่ใช่แบบอื่น)

ที่เกี่ยวข้อง:


ฉันพบว่างานนำเสนอนี้ตรงประเด็น: slideshare.net/ChristopherMoody3/ …
Piotr Migdal

คุณควรดู Doc2vec (aka. วรรค 2vec) เอกสารเวกเตอร์สรุปเอกสารแทนคำ
sachinruk

คำตอบ:


19

คำตอบของรูปแบบหัวข้อและวิธีการเกิดร่วมคำครอบคลุมความแตกต่าง (skip-gram word2vec เป็นการบีบอัดของข้อมูลร่วมกันแบบจุด (PMI) )

ดังนั้น:

  • ไม่ใช่วิธีการใด ๆ ที่เป็นลักษณะทั่วไป
  • word2vec อนุญาตให้เราใช้เรขาคณิตเวกเตอร์ (เช่นคำเปรียบเทียบ, เช่นโวลต์kผมnก.-โวลต์ม.an+โวลต์Wโอม.anโวลต์Qยูอีอีn , ฉันเขียนภาพรวมของ word2vec )
  • LDA เห็นความสัมพันธ์ที่สูงกว่าสององค์ประกอบ
  • LDA ให้หัวข้อที่ตีความได้

ความแตกต่างบางคนจะกล่าวถึงในสไลด์word2vec, LDA และแนะนำขั้นตอนวิธีไฮบริดใหม่: lda2vec - คริสมูดี้ส์


1
ฉันอยากจะชี้แจงว่า "LDA ให้หัวข้อที่ตีความได้" เพื่อบอกว่าหัวข้อของ LDA นั้นสามารถตีความได้ แนวคิดของ "หัวข้อ" ของ LDA คือโครงสร้างทางคณิตศาสตร์ล้วนๆที่ไม่ได้จับคู่กับความคิดของมนุษย์ในฐานะหัวข้อ
เวย์น

แนวคิดหลักที่คุณทิ้งไว้คือ LDA ใช้วิธีการเรียงคำศัพท์ดังนั้นจึงรู้ได้เฉพาะเรื่องที่เกิดขึ้นภายในเอกสารขณะที่ word2vec (หรือ doc2vec ที่เปรียบเทียบได้มากกว่า) พิจารณาบริบทของคำ
เวย์น

13

อัลกอริทึมทั้งสองแตกต่างกันเล็กน้อยในวัตถุประสงค์ของพวกเขา

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

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


1
ในทางทฤษฎีคุณสามารถรับบางสิ่งที่คล้ายคลึงกับการวางเวกเตอร์ของ word2vec โดยการคำนวณ P (topic | word) จาก LDA แต่ในขณะที่ @Bar กล่าวว่าโมเดลเหล่านี้ถูกออกแบบมาสำหรับงานที่แตกต่างกัน หากคุณเปรียบเทียบการแจกแจง P (หัวข้อ | คำ) ของ LDA กับการฝังภาพเวกเตอร์ของ word2vec ฉันสงสัยว่าพวกเขาจะคล้ายกันมาก LDA กำลังจับภาพการเชื่อมโยงระดับเอกสารขณะที่ word2vec กำลังจับภาพสิ่งที่อยู่ในท้องถิ่น
Zubin

4

Tโอพีผม2Vอีเสื้อโอก.อีเสื้อชั่วโมงอีR Wผมเสื้อชั่วโมง

D={W1:Z1,...,WM:ZM}ZผมWผม

LCBOW(D)=1MΣผม=1M(บันทึกพี(Wผม|Wอีxเสื้อ)+บันทึกพี(Zผม|Wอีxเสื้อ))

LSkผมพี-ก.Raม.(D)=1MΣผม=1MΣ-kk,0(บันทึกพี(Wผม+|Wผม)+บันทึกพี(Wผม+|Zผม))

COSผมยังไม่มีข้อความE SผมMผมLARผมTY

ยิ่งกว่านั้นคุณจะพบข้างในที่ใช้วลีเช่น:

"ความน่าจะเป็นไม่ใช่ตัวเลือกที่ดีที่สุดสำหรับการแสดงคุณลักษณะ"

และ

"LDA ชอบอธิบายความสัมพันธ์ทางสถิติของเหตุการณ์มากกว่าข้อมูลความหมายจริงที่ฝังอยู่ในคำหัวข้อและเอกสาร"

ซึ่งจะช่วยให้คุณเข้าใจรุ่นต่าง ๆ ได้ดีขึ้น


2

คำตอบอื่น ๆ ที่นี่ครอบคลุมความแตกต่างทางเทคนิคระหว่างอัลกอริธึมทั้งสอง แต่ฉันคิดว่าความแตกต่างหลักคือจุดประสงค์ของพวกเขา: อัลกอริธึมทั้งสองนั้นออกแบบมาเพื่อทำสิ่งต่าง ๆ :

word2vecท้ายที่สุดจะให้การจับคู่ระหว่างคำกับเวกเตอร์ที่มีความยาวคงที่ ถ้าเราจะเปรียบเทียบมันกับแนวทางที่เป็นที่รู้จักกันดีมันจะสมเหตุสมผลมากกว่าถ้าใช้เครื่องมืออื่นที่ออกแบบมาเพื่อจุดประสงค์เดียวกันเช่น Bag of Words (โมเดล BOW) อันนี้ทำเหมือนกัน แต่ขาดคุณสมบัติที่ต้องการบางอย่างword2vecเช่นการใช้ลำดับของคำและการกำหนดความหมายเชิงความหมายให้กับระยะทางระหว่างการแทนคำ

LDAในอีกทางหนึ่งสร้างการแมปจากเอกสารความยาวที่หลากหลายไปยังเวกเตอร์ เอกสารนี้สามารถเป็นประโยคย่อหน้าหรือไฟล์ข้อความแบบเต็ม แต่ไม่ใช่คำเดียว มันจะเข้าท่ามากกว่าที่จะเปรียบเทียบกับงานdoc2vecที่เหมือนกันและได้รับการแนะนำโดย Tomas Mikolov ที่นี่ (ผู้เขียนใช้คำนี้paragraph vectors) หรือด้วยLSIสำหรับเรื่องที่

ดังนั้นเพื่อตอบคำถามสองข้อของคุณโดยตรง:

  1. ไม่มีของพวกเขาเป็นลักษณะทั่วไปหรือการเปลี่ยนแปลงของอื่น ๆ
  2. ใช้ LDA เพื่อจับคู่เอกสารกับเวกเตอร์ที่มีความยาวคงที่ จากนั้นคุณสามารถใช้เวกเตอร์นี้ในอัลกอริทึม ML แบบดั้งเดิมเช่นตัวแยกประเภทที่ยอมรับเอกสารและทำนายเลเบลทางอารมณ์เช่น
  3. ใช้word2vecเพื่อแมปคำกับเวกเตอร์ที่มีความยาวคงที่ คุณสามารถใช้เวกเตอร์เหล่านี้ในทำนองเดียวกันในการป้อนข้อมูลโมเดล ML คืออินพุตคือคำเช่นเมื่อพัฒนาตัวแปลอัตโนมัติที่ป้อนคำก่อนหน้าและพยายามคาดเดาตัวถัดไป

1

จากมุมมองเชิงปฏิบัติ ...

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

"หัวข้อ" ของ LDA เป็นโครงสร้างทางคณิตศาสตร์และคุณไม่ควรสร้างความสับสนให้กับหัวข้อมนุษย์ที่แท้จริง คุณสามารถจบลงด้วยหัวข้อที่ไม่มีการตีความโดยมนุษย์ - มันเป็นเหมือนสิ่งประดิษฐ์ของกระบวนการมากกว่าหัวข้อจริง - และคุณสามารถจบลงด้วยหัวข้อในระดับที่แตกต่างกันของสิ่งที่เป็นนามธรรมรวมถึงหัวข้อที่ครอบคลุมหัวข้อมนุษย์แบบเดียวกัน มันเหมือนกับการอ่านใบชา

ฉันพบว่า LDA มีประโยชน์ในการสำรวจข้อมูล แต่ไม่เป็นประโยชน์สำหรับการแก้ปัญหา แต่ระยะทางของคุณอาจแตกต่างกันไป

Word2vec ไม่ได้สร้างหัวข้อโดยตรงเลย มันฉายคำลงในพื้นที่มิติสูงขึ้นอยู่กับการใช้งานที่คล้ายกันดังนั้นจึงสามารถมีความประหลาดใจของตัวเองในแง่ของคำที่คุณคิดว่าแตกต่างกัน - หรือตรงข้าม - อาจอยู่ใกล้กันในอวกาศ

คุณสามารถใช้เพื่อกำหนดว่าคำนั้น "คล้ายกัน" หรือไม่ ด้วย LDA: คำเหล่านี้มีน้ำหนักใกล้เคียงกันในหัวข้อเดียวกันหรือไม่ ด้วย word2vec: พวกเขาปิด (โดยวัด) ในพื้นที่ฝัง

คุณสามารถใช้เพื่อกำหนดว่าเอกสารมีลักษณะคล้ายกันหรือไม่ ด้วย LDA คุณจะมองหาหัวข้อที่คล้ายกันและด้วย word2vec คุณจะต้องทำอะไรบางอย่างเช่นการบวกเวกเตอร์ของคำในเอกสาร ("เอกสาร" อาจเป็นประโยคย่อหน้าหน้าหรือเอกสารทั้งหมด) Doc2vec เป็น word2vec รุ่นที่แก้ไขซึ่งอนุญาตให้ทำการเปรียบเทียบเอกสารโดยตรง

ในขณะที่ LDA ทิ้งข้อมูลเชิงบริบทบางส่วนด้วยวิธีการแยกคำ แต่มีหัวข้อ (หรือ "หัวข้อ") ซึ่ง word2vec ไม่มี ดังนั้นตรงไปตรงมาที่จะใช้ doc2vec เพื่อพูดว่า "แสดงเอกสารที่คล้ายกับเอกสารนี้" กับ LDA ในขณะที่ตรงไปตรงมาเพื่อพูดว่า "แสดงเอกสารที่หัวข้อ A เด่น" (รู้อีกครั้งว่า "หัวข้อ A" เกิดขึ้นจากกระบวนการทางคณิตศาสตร์ในเอกสารของคุณแล้วคุณจะรู้ว่าหัวข้อที่เกี่ยวข้องกับมนุษย์ส่วนใหญ่เป็นอย่างไร)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.