LDA vs word2vec

39

Saya mencoba memahami apa persamaan antara Alokasi Dirichlet Laten dan word2vec untuk menghitung kesamaan kata.

Seperti yang saya pahami, LDA memetakan kata ke vektor probabilitas dari topik laten , sementara word2vec memetakannya ke vektor bilangan real (terkait dengan penguraian nilai singular dari informasi timbal balik yang saling berhadapan, lihat O. Levy, Y. Goldberg, "Penempelan Kata Saraf sebagai Faktorisasi Matriks Tersirat " ; lihat juga Bagaimana cara kerja word2vec? ).

Saya tertarik baik dalam hubungan teoritis (dapat dianggap sebagai generalisasi, atau variasi yang lain) dan praktis (kapan harus menggunakan satu tetapi tidak yang lain).

Terkait:

Piotr Migdal
sumber
Saya menemukan presentasi ini di tempat: slideshare.net/ChristopherMoody3/…
Piotr Migdal
Anda harus melihat Doc2vec (alias. Paragraf2vec). Vektor dokumen meringkas dokumen, bukan kata-kata.
sachinruk

Jawaban:

19

Jawaban untuk model Topik dan metode co-kejadian kata mencakup perbedaan (skip-gram word2vec adalah kompresi informasi timbal balik pointwise (PMI) ).

Begitu:

  • tidak ada metode yang merupakan generalisasi dari yang lain,
  • word2vec memungkinkan kita untuk menggunakan geometri vektor (seperti analogi kata, misalnya vkingvman+vwomanvqueen , saya menulis ikhtisar word2vec )
  • LDA melihat korelasi yang lebih tinggi dari dua elemen,
  • LDA memberikan topik yang bisa ditafsirkan.

Beberapa perbedaan dibahas dalam slide word2vec, LDA, dan memperkenalkan algoritma hybrid baru: lda2vec - Christopher Moody .

Piotr Migdal
sumber
1
Saya akan menolak pernyataan "LDA memberikan topik yang dapat ditafsirkan" untuk mengatakan bahwa topik LDA berpotensi ditafsirkan. Gagasan LDA tentang "topik" adalah konstruksi matematis murni yang tidak selalu memetakan apa yang dipikirkan manusia sebagai suatu topik.
Wayne
Konsep kunci yang Anda tinggalkan adalah bahwa LDA menggunakan pendekatan bag-of-words, sehingga hanya tahu tentang co-kejadian dalam dokumen, sementara word2vec (atau lebih tepatnya doc2vec) mempertimbangkan konteks kata.
Wayne
13

Kedua algoritma tersebut sedikit berbeda dalam tujuannya.

LDA ditujukan terutama untuk mendeskripsikan dokumen dan koleksi dokumen dengan memberikan distribusi topik kepada mereka, yang pada gilirannya memiliki distribusi kata yang ditugaskan, seperti yang Anda sebutkan.

word2vec terlihat menanamkan kata-kata dalam ruang vektor faktor laten, sebuah ide yang berasal dari representasi terdistribusi dari Bengio et al. Ini juga dapat digunakan untuk menggambarkan dokumen, tetapi tidak benar-benar dirancang untuk tugas tersebut.

Bar
sumber
1
Anda secara teoritis bisa mendapatkan sesuatu yang analog dengan emblem vektor vektor word2vec dengan menghitung P (topik | kata) dari LDA, tetapi seperti yang dikatakan @Bar model ini dirancang untuk tugas yang berbeda. Jika Anda membandingkan distribusi P (topik | kata) LDA dengan embeddings vektor word2vec, saya ragu mereka akan sangat mirip. LDA menangkap asosiasi tingkat dokumen sedangkan word2vec menangkap asosiasi yang sangat lokal.
Zubin
4

Topic2Vectogether with

D={w1:z1,...,wM:zM}ziwi

LCBOW(D)=1Mi=1M(logp(wi|wext)+logp(zi|wext))

LSkipgram(D)=1Mi=1Mkck,c0(logp(wi+c|wi)+logp(wi+c|zi))

COSINE SIMILARITY

Selain itu, Anda akan menemukan di dalam yang berfungsi beberapa frase seperti:

"probabilitas bukan pilihan terbaik untuk representasi fitur"

dan

"LDA lebih suka menggambarkan hubungan statistik kejadian daripada informasi semantik nyata yang tertanam dalam kata-kata, topik dan dokumen"

yang akan membantu Anda memahami lebih baik berbagai model.

Ricardo S.
sumber
2

Jawaban lain di sini mencakup perbedaan teknis antara kedua algoritma, namun saya pikir perbedaan inti adalah tujuannya: Kedua algoritma itu dirancang untuk melakukan hal-hal yang berbeda:

word2vecpada akhirnya menghasilkan pemetaan antara kata - kata dan vektor dengan panjang tetap. Jika kita membandingkannya dengan pendekatan terkenal lainnya, akan lebih masuk akal untuk melakukannya dengan menggunakan alat lain yang dirancang untuk maksud yang sama, seperti Bag of Words (model BOW). Yang ini melakukan hal yang sama tetapi tidak memiliki beberapa fitur yang diinginkan word2vecseperti menggunakan urutan kata-kata dan menetapkan makna semantik untuk jarak antara representasi kata.

LDAdi sisi lain membuat pemetaan dari dokumen dengan panjang bervariasi ke vektor. Dokumen ini bisa berupa kalimat, paragraf, atau file teks lengkap tetapi tidak satu kata pun. Akan lebih masuk akal untuk membandingkannya dengan doc2vecyang melakukan pekerjaan yang sama dan diperkenalkan oleh Tomas Mikolov di sini (penulis menggunakan istilah paragraph vectors). Atau dengan LSImasalah itu.

Jadi untuk langsung menjawab dua pertanyaan Anda:

  1. Tak satu pun dari mereka adalah generalisasi atau variasi yang lain
  2. Gunakan LDA untuk memetakan dokumen ke vektor dengan panjang tetap. Anda kemudian dapat menggunakan vektor ini dalam algoritma ML tradisional seperti classifier yang menerima dokumen dan memprediksi label sentimental misalnya.
  3. Gunakan word2vecuntuk memetakan a kata ke vektor dengan panjang tetap. Anda juga dapat menggunakan vektor-vektor ini untuk memberi makan model ML jika inputnya adalah kata-kata, misalnya ketika mengembangkan pelengkap otomatis yang memakan kata-kata sebelumnya dan mencoba untuk memprediksi yang berikutnya.
pilu
sumber
1

Dari sudut pandang praktis ...

LDA dimulai dengan masukan kata-kata yang mempertimbangkan kata-kata apa yang muncul bersama dalam dokumen, tetapi tidak memperhatikan konteks langsung kata-kata. Ini berarti kata-kata dapat muncul di mana saja dalam dokumen dan dalam urutan apa pun, yang menghapus tingkat informasi tertentu. Sebaliknya word2vec adalah tentang konteks di mana sebuah kata digunakan - meskipun mungkin urutannya tidak tepat.

"Topik" LDA adalah konstruksi matematis dan Anda tidak perlu bingung dengan topik manusia yang sebenarnya. Anda dapat berakhir dengan topik yang tidak memiliki interpretasi manusia - mereka lebih seperti artefak dari proses daripada topik aktual - dan Anda dapat berakhir dengan topik di berbagai tingkat abstraksi, termasuk topik yang pada dasarnya mencakup topik manusia yang sama. Ini seperti membaca daun teh.

Saya menemukan LDA berguna untuk mengeksplorasi data, tetapi tidak begitu berguna untuk memberikan solusi, tetapi jarak tempuh Anda mungkin beragam.

Word2vec tidak membuat topik sama sekali. Ini memproyeksikan kata-kata ke ruang dimensi tinggi berdasarkan penggunaan yang serupa, sehingga dapat memiliki kejutan sendiri dalam hal kata-kata yang Anda anggap berbeda - atau bahkan berlawanan - mungkin berdekatan satu sama lain dalam ruang.

Anda dapat menggunakan salah satu untuk menentukan apakah kata-kata "mirip". Dengan LDA: apakah kata-kata memiliki bobot yang serupa dalam topik yang sama. Dengan word2vec: apakah mereka menutup (dengan ukuran tertentu) di ruang embedding.

Anda dapat menggunakan salah satu untuk menentukan apakah dokumen serupa. Dengan LDA, Anda akan mencari campuran topik yang sama, dan dengan word2vec Anda akan melakukan sesuatu seperti menjumlahkan vektor kata-kata dokumen. ("Dokumen" bisa berupa kalimat, paragraf, halaman, atau seluruh dokumen.) Doc2vec adalah versi modifikasi dari word2vec yang memungkinkan perbandingan langsung dokumen.

Sementara LDA membuang beberapa informasi kontekstual dengan pendekatan kata-kata, ia memang memiliki topik (atau "topik"), yang tidak dimiliki word2vec. Jadi sangat mudah untuk menggunakan doc2vec untuk mengatakan, "Tunjukkan pada saya dokumen yang mirip dengan yang ini", sementara dengan LDA itu mudah untuk mengatakan, "Tunjukkan pada saya dokumen di mana topik A menonjol." (Sekali lagi, mengetahui bahwa "topik A" muncul dari proses matematis pada dokumen Anda dan Anda kemudian mencari tahu topik manusia apa yang paling sesuai dengannya.)

Wayne
sumber