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:
machine-learning
self-study
natural-language
latent-variable
word2vec
Piotr Migdal
sumber
sumber
Jawaban:
Jawaban untuk model Topik dan metode co-kejadian kata mencakup perbedaan (skip-gram word2vec adalah kompresi informasi timbal balik pointwise (PMI) ).
Begitu:
Beberapa perbedaan dibahas dalam slide word2vec, LDA, dan memperkenalkan algoritma hybrid baru: lda2vec - Christopher Moody .
sumber
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.
sumber
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.
sumber
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:
word2vec
pada 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 diinginkanword2vec
seperti menggunakan urutan kata-kata dan menetapkan makna semantik untuk jarak antara representasi kata.LDA
di 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 dengandoc2vec
yang melakukan pekerjaan yang sama dan diperkenalkan oleh Tomas Mikolov di sini (penulis menggunakan istilahparagraph vectors
). Atau denganLSI
masalah itu.Jadi untuk langsung menjawab dua pertanyaan Anda:
word2vec
untuk 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.sumber
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.)
sumber