LDA vs word2vec


39

Latent Dirichlet Allocation ve word2vec arasındaki kelimelerin benzerliğini hesaplamak için benzerliğin ne olduğunu anlamaya çalışıyorum .

Anladığım kadarıyla, LDA sözcükleri gizli konuların bir olasılık vektörüne eşlerken, word2vec bunları gerçek sayıların bir vektörüne eşler (noktasal karşılıklı bilginin tekil değer ayrışmasıyla ilgili, bkz . O. Levy, Y. Goldberg, "Sinir Kelime Gömme" Örtük Matris Faktoringi olarak " ; ayrıca bkz . word2vec nasıl çalışır? ).

Hem teorik ilişkilere (biri genelleme olarak kabul edilebilir veya diğerinin varyasyonu olarak kabul edilebilir) hem de pratik (ne zaman ne zaman diğerini kullanmayacağımı) ilgileniyorum.

İlgili:


Bu sunumu yerinde buldum
Piotr Migdal

Doc2vec'e (yani. Paragraf2vec) bakmalısınız. Belge vektörleri, sözcük yerine belgeyi özetler.
sachinruk

Yanıtlar:


19

Konu modellerine ve kelime birlikte oluşma yöntemlerine verilen cevap farkı kapsar (atlama gram word2vec, nokta yönündeki karşılıklı bilgilerin sıkıştırılmasıdır (PMI) ).

Yani:

  • hiçbir yöntem bir başkasının genellemesi değildir,
  • vkingvman+vwomanvqueen
  • LDA iki elemandan daha yüksek korelasyonlar görüyor,
  • LDA yorumlanabilir konular verir.

Word2vec, LDA slaytlarında bazı farklılıklar tartışıldı ve yeni bir hibrit algoritma tanıtıldı: lda2vec - Christopher Moody .


1
LDA'nın konularının potansiyel olarak yorumlanabileceğini söylemek için "LDA yorumlanabilir konular verir" ifadesini hatırlıyorum . LDA'nın “konu” fikri, bir insanın her zaman bir konu olarak ne düşündüğü ile eşleşmeyen tamamen matematiksel bir yapıdır.
Wayne

Dışarıda bıraktığınız kilit bir kavram, LDA'nın bir sözcük torbası yaklaşımı kullanmasıdır, dolayısıyla word2vec (veya daha fazla karşılaştırılabilir şekilde doc2vec) bir kelimenin içeriğini göz önünde bulundururken, sadece bir belge içindeki eş-oluşumları bilir.
Wayne

13

İki algoritma, amaçları bakımından biraz farklılık gösterir.

LDA, daha önce de bahsettiğiniz gibi, onlara sözcük dağıtımı atanmış olan konu dağıtımlarını atayarak, dokümanları ve doküman koleksiyonlarını tanımlamayı amaçlamaktadır.

word2vec, kelimeleri Bengio ve arkadaşlarının dağıtılmış temsilinden kaynaklanan bir fikir olan gizli bir faktör vektör uzayına yerleştirmeyi amaçlamaktadır. Belgeleri tanımlamak için de kullanılabilir, ancak görev için gerçekten tasarlanmamıştır.


1
Teorik olarak LDA'dan P (konu | kelime) 'yi hesaplayarak word2vec'in vektör gömülmelerine benzer bir şey elde edebilirsiniz, ancak @Bar'ın söylediği gibi bu modeller farklı görevler için tasarlandı. LDA'nın P (topic | word) dağılımlarını word2vec'in vektör embeddings ile karşılaştırırsanız, çok benzer olduklarından şüpheliyim. LDA, belge düzeyinde ilişkilendirmeleri yakalarken, word2vec ise çok yerel olanları alıyor.
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 kelime ve konular arasında her biri için. konu daha yüksek benzerlik kelimeleri seçiyoruz ".

Ayrıca, bu çalışmanın içinde bazı ifadeleri bulacaksınız:

"Özellik gösterimi için olasılık en iyi seçenek değil"

ve

"LDA kelimeler, konular ve belgelere gömülü gerçek anlamsal bilgiler yerine olayların istatistiksel ilişkisini tanımlamayı tercih ediyor"

farklı modelleri daha iyi anlamanıza yardımcı olacak.


2

Buradaki diğer cevaplar, bu iki algoritma arasındaki teknik farklılıkları kapsar, ancak temel farkın amacı olduğunu düşünüyorum: Bu iki algoritma farklı şeyler yapmak için tasarlandı:

word2vecnihayetinde kelimelerle sabit uzunlukta bir vektör arasında bir eşleştirme sağlar . Bunu bilinen başka bir yaklaşımla karşılaştırmak isteseydik, aynı amaç için tasarlanan başka bir aracı kullanarak, Kelimeler Çantası (BOW modeli) gibi yapmamız daha mantıklı olurdu. Bu, aynısını yapar ancak istenen bazı özelliklerden yoksunword2vec sözcük sırasını kullanma ve sözcük temsilleri arasındaki mesafelere anlamsal anlam verme gibi .

LDAÖte yandan, çeşitli uzunluktaki bir belgeden bir vektöre haritalama oluşturur . Bu belge bir cümle, paragraf veya tam metin dosyası olabilir, ancak tek bir kelime değildir. doc2vecAynı işi yapan kişi ile karşılaştırmak daha mantıklı olacaktır ve Tomas Mikolov tarafından burada tanıtılmaktadır (yazar terimi kullanır paragraph vectors). Ya da bunun LSIiçin.

Yani iki sorunuzu doğrudan cevaplamak için:

  1. Hiçbiri diğerinin genellemesi veya değişmesi değildir.
  2. Bir belgeyi sabit uzunlukta bir vektöre eşlemek için LDA'yı kullanın . Daha sonra bu vektörü, bir belgeyi kabul eden ve örneğin duygusal bir etiketi öngören bir sınıflandırıcı gibi geleneksel bir ML algoritmasında kullanabilirsiniz.
  3. word2vecBir sözcüğü sabit uzunlukta bir vektöre eşlemek için kullanın . ML vektörlerini beslemek için bu vektörleri kullanabilirsiniz, örneğin girişler kelimelerdi, örneğin önceki kelimelere beslenen ve bir sonrakini tahmin etmeye çalışan bir otomatik tamamlayıcı geliştirirken.

1

Pratik bir bakış açısından ...

LDA, belgelerde hangi kelimelerin birlikte gerçekleştiğini düşünen, ancak kelimelerin içeriğine hemen dikkat etmeyen bir sözcük çantası girişi ile başlar. Bu, kelimelerin belgedeki herhangi bir yerde ve belirli bir düzeyde bilgi çıkaran herhangi bir sırada görünebileceği anlamına gelir. Buna karşılık word2vec, bir kelimenin kullanıldığı bağlamla ilgilidir - belki de kesin bir düzen olmasa da.

LDA'nın "başlıkları" matematiksel bir yapıdır ve bunları gerçek insan başlarıyla karıştırmamalısınız. İnsan yorumuna sahip olmayan konularla bitebilir - sürecin asıl konulardan çok eseri gibidirler - ve temelde aynı insan konusunu kapsayan konular da dahil olmak üzere farklı soyutlama seviyelerinde konularla sonuçlanabilir. Biraz çay yaprakları okumak gibi.

LDA'yı verileri araştırmak için faydalı buldum, ancak bir çözüm sağlamak için çok kullanışlı değil, ancak kilometreniz değişebilir.

Word2vec hiçbir zaman doğrudan konu oluşturmaz. Kelimeleri benzer kullanıma dayalı yüksek boyutlu bir uzaya yansıtır, bu nedenle, uzayda birbirinin yanında olabileceğini düşündüğünüz kelimeler açısından kendi sürprizlerine sahip olabilir.

Kelimelerin "benzer" olup olmadığını belirlemek için ikisini de kullanabilirsiniz. LDA ile: aynı konudaki kelimelerin benzer ağırlıkları var mı? Word2vec ile: gömme alanındaki yakınlar (bir ölçüme göre).

Belgelerin benzer olup olmadığını belirlemek için ikisini de kullanabilirsiniz. LDA ile benzer bir konu karışımı arayacaktınız ve word2vec ile belge kelimelerinin vektörlerini eklemek gibi bir şey yapacaksınız. ("Belge" bir cümle, paragraf, sayfa veya belgenin tamamı olabilir.) Doc2vec, belgelerin doğrudan karşılaştırılmasını sağlayan değiştirilmiş bir word2vec sürümüdür.

LDA, sözcük torba yaklaşımıyla bağlamsal bilgilerden bazılarını atarken, word2vec'in sahip olmadığı konulara (ya da "konulara") sahiptir. Bu nedenle doc2vec'i kullanmak için "Bana buna benzer belgeleri göster" derken, LDA'da "A konusunun belirgin olduğu belgeleri göster" deyin. (Yine, "A konusunun" belgelerinizdeki matematiksel bir süreçten ortaya çıktığını bilmek ve ardından en çok hangi insan konusuna karşılık geldiğini siz çözersiniz.)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.