LDA vs word2vec


39

Я намагаюся зрозуміти, що схоже між латентним розподілом Діріхле і word2vec для обчислення схожості слів.

Як я розумію, LDA карти слів вектора ймовірностей латентних тим, в той час як word2vec відображає їх у вектор дійсних чисел (пов'язаних з сингулярного розкладання точкової взаємної інформації см О. Леві, Ю. Голдберг, «Neural Слово Вбудовування як непряма факторизація матриці " ; див. також Як працює word2vec? ).

Мене цікавлять як теоретичні відносини (можна вважати узагальненням, чи варіацією інших), так і практичні (коли використовувати одне, а не інше).

Пов'язані:


Я знайшов цю презентацію на місці: slideshare.net/ChristopherMoody3/…
Piotr

Ви повинні подивитися на Doc2vec (ака. Para2vec). Вектори документа підсумовують документ замість слів.
sachinruk

Відповіді:


19

Відповідь на тематичні моделі та методи спільного виникнення слова охоплює різницю (пропуск-грам word2vec - стиснення точкової взаємної інформації (PMI) ).

Так:

  • жоден метод не є узагальненням іншого,
  • word2vec дозволяє використовувати векторну геометрію (наприклад, аналогія слів, наприклад, vкiнг-vман+vшоманvqуеен , я написав огляд word2vec )
  • LDA бачить вищі кореляції, ніж двоелементні,
  • LDA дає інтерпретаційні теми.

Певна різниця обговорюється в слайдах word2vec, LDA та введенні нового гібридного алгоритму: lda2vec - Крістофер Муді .


1
Я б зауважував твердження "LDA дає інтерпретаційні теми", щоб сказати, що теми LDA потенційно можна інтерпретувати. Ідея LDA про "тему" - це суто математична конструкція, яка не завжди відображає те, що людина думає як про тему.
Уейн

Ключова концепція, яку ви пропустили, - це те, що LDA використовує підхід «пакетів слів», тому він знає лише про спільне виникнення в документі, тоді як word2vec (або порівняно doc2vec) розглядає контекст слова.
Уейн

13

Два алгоритми за своїм призначенням досить сильно відрізняються.

LDA орієнтована здебільшого на опис документів та колекцій документів шляхом присвоєння їм розподілів тем, які, у свою чергу, призначають розподіли слів, як ви вже згадуєте.

word2vec шукає вбудовувати слова у векторний простір прихованого фактора, ідею, що походить від розподілених уявлень Bengio та ін. Він також може бути використаний для опису документів, але насправді не розроблений для виконання завдання.


1
Теоретично ви могли отримати щось аналогічне вкладкам вектора word2vec, обчисливши P (тему | слово) від LDA, але, як сказав @Bar, ці моделі були розроблені для різних завдань. Якщо ви порівнювали розподіли P (тему | слово) LDA з векторними вкладками word2vec, я сумніваюся, що вони були б дуже схожими. LDA фіксує асоціації рівня документа, тоді як word2vec захоплює дуже локальні.
Зубін

4

Тоpic2Vеcтогетгодеr шiтгод

D={ш1:z1,...,шМ:zМ}ziшi

LСБОW(D)=1Мi=1М(журналp(шi|шехт)+журналp(zi|шехт))

LSкip-гrам(D)=1Мi=1М-кcк,c0(журналp(шi+c|шi)+журналp(шi+c|zi))

СОSЯNЕ SЯМЯLАRЯТY

Більше того, ви знайдете всередині цієї роботи деякі фрази, такі як:

"ймовірність не найкращий вибір для представлення функцій"

і

"LDA вважає за краще описувати статистичну залежність подій, а не реальну смислову інформацію, вкладену у слова, теми та документи"

що допоможе вам краще зрозуміти різні моделі.


2

Інші відповіді тут стосуються технічних відмінностей між цими двома алгоритмами, однак я думаю, що основна різниця полягає у їхньому призначенні: ці два алгоритми були розроблені для того, щоб робити різні речі:

word2vecв кінцевому рахунку виходить відображення між словами та вектором фіксованої довжини. Якби ми порівнювали його з іншим добре відомим підходом, було б більше сенсу зробити це за допомогою іншого інструменту, який був розроблений з таким же наміром, як Сумка слів (модель BOW). Це робить те саме, але йому не вистачає деяких бажаних особливостей, word2vecяк-от використання порядку слів та присвоєння смислового значення відстаням між поданнями слів.

LDAз іншого боку, створює відображення від документа різної довжини до вектора. Цей документ може бути пропозицією, абзацом або повнотекстовим файлом, але це не одне слово. Було б більше сенсу порівнювати його з , doc2vecщо робить ту ж роботу і вводиться Томас 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 просто сказати: "Покажіть мені документи, де тема А є видною". (Знову ж таки, знаючи, що "тема А" виникає з математичного процесу у ваших документах, і ви потім з'ясовуєте, якій людській темі це найбільше відповідає.)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.