Word2vec
Word2vec — це одна з методик обробки природної мови. Алгоритм word2vec використовує нейромережну модель для навчання пов'язаностей слів із великого корпусу тексту. Щойно її натреновано, така модель може виявляти слова-синоніми, або підказувати додаткові слова для часткового речення. Як випливає з її назви, word2vec представляє кожне окреме слово певним переліком чисел, званим вектором. Ці вектори ретельно підбираються таким чином, щоби проста математична функція (косинусна подібність векторів) вказувала на рівень семантичної подібності[en] між словами, представленими цими векторами. ПідхідWord2vec — це група пов'язаних моделей, які використовують для вкладання слів. Ці моделі є пласкими двошаровими нейронними мережами, тренованими відтворювати лінгвістичний контекст слів. Word2vec бере як вхід великий корпус тексту, й виробляє векторний простір, зазвичай з кількома сотнями вимірів, де кожному унікальному слову з цього корпусу призначено відповідний вектор у цьому просторі. Векторні представлення слів розташовуються в цьому векторному просторі таким чином, що слова, які поділяють спільний контекст у корпусі, розташовуються близько одне до одного в цьому просторі.[1] ІсторіяWord2vec було створено та опубліковано 2013 року командою дослідників від проводом Томаша Міколова[en] з Google. Їхні дві праці[2][3] було процитовано в науковій літературі 17231 та 21670 разів відповідно (Google Scholar, 2 серпня 2020 р.). Цей алгоритм запатентовано.[4] Інші дослідники зробили корисний аналіз та пояснення цього алгоритму.[5][6] Вектори вкладень, створені застосуванням алгоритму word2vec, мають деякі переваги в порівнянні з ранішими алгоритмами,[1] такими як латентно-семантичний аналіз. НТС та пропуск-грамиЩоби виробляти розподілене представлення слів, word2vec може використовувати будь-яку з двох архітектур моделей: неперервну торбу слів (НТС, англ. continuous bag-of-words, CBOW) та неперервний пропуск-грам (англ. continuous skip-gram). В архітектурі неперервної торби слів модель передбачує поточне слово з вікна слів навколишнього контексту. Порядок слів контексту не впливає на передбачування (припущення торби слів). В архітектурі неперервного пропуск-граму модель використовує поточне слово для передбачування навколишнього вікна слів контексту. Архітектура пропуск-граму надає словам найближчого контексту більшої ваги, ніж словам контексту віддаленішого.[1][7] Згідно зауваження авторів,[8] НТС є швидшою, тоді як пропуск-грам є повільнішим, але краще впорується з рідкісними словами. ПараметризаціяРезультати тренування word2vec можуть бути чутливими до параметризації. Нижче наведено деякі важливі параметри тренування word2vec. Алгоритм тренуванняМодель word2vec може бути треновано ієрархічною softmax та/або негативним вибиранням (англ. negative sampling). Для наближення умовної логарифмічної правдоподібності, яку модель прагне максимізувати, метод ієрархічної softmax використовує для зменшення обчислень дерево Гаффмана. Метод негативного вибирання, з іншого боку, підходить до задачі максимізації мінімізуванням логарифмічної правдоподібності вибраних негативних зразків. Згідно авторів, ієрархічна softmax працює краще для рідкісних слів, тоді як негативне вибирання працює краще для частих слів, і краще з векторами низької розмірності.[8] Зі збільшенням числа тренувальних епох ієрархічна softmax бути корисною перестає.[9] НедовибиранняВисокочастотні слова часто дають мало інформації. Щоби підвищувати швидкість тренування, слова з частотою, вищою певного порогу, можна недовибирати.[10] РозмірністьЯкість вкладання слів зі збільшенням розмірності зростає. Але після досягнення якоїсь точки гранична вигідність згасатиме.[1] Зазвичай розмірність векторів встановлюють у межах між 100 та 1 000. Вікно контекстуРозмір вікна контексту визначає, скільки слів перед та після заданого слова включатимуться як слова контексту для цього заданого слова. Згідно зауваження авторів, рекомендованим значенням є 10 для пропуск-граму та 5 для НТС.[8] РозширенняБуло запропоновано розширення word2vec для побудови вкладень цілих документів (а не окремих слів).[11] Це розширення зветься paragraph2vec або doc2vec, його було втілено в інструментах C, Python[12][13] та Java/Scala[14] (див. нижче), серед яких версії для Java та Python також підтримують висновування вкладень документів на нових, небачених документах. Векторні представлення слів для біоінформатики: БіоВекториРозширення векторного представлення слів для N-грамів у біологічних послідовностях (наприклад, ДНК, РНК та протеїнах) для застосувань у біоінформатиці було запропоновано Асґарі та Мофрадом.[15] Назване біо-векторами (БіоВек, англ. bio-vectors, BioVec) для позначування біологічних послідовностей в цілому, й протеїн-векторами (ПротВек, англ. protein-vectors, ProtVec) для протеїнів (послідовностей амінокислот) та ген-векторами (ГенВек, англ. gene-vectors, GeneVec) для послідовностей генів, це представлення можливо широко використовувати в застосуваннях машинного навчання в протеоміці та геноміці. Ці результати дозволяють припустити, що БіоВектори можуть характеризувати біологічні послідовності в термінах біохімічних та біофізичних інтерпретацій закономірностей, що лежать в їх основі.[15] Подібний варіант, dna2vec, показав, що існує кореляція між оцінкою подібності Нідлмана — Вунша та косинусною подібністю векторного представлення слів dna2vec.[16] Векторні представлення слів для радіології: розумне вкладання слів (РВС)Розширення векторного представляння слів для створювання щільного векторного представлення неструктурованих радіологічних звітів було запропоновано Банерджі та ін.[17] Одним із найбільших викликів, пов'язаних із word2vec, є те, як оброблювати невідомі або позасловникові слова та морфологічно подібні слова. Особливо це може бути проблемою в таких областях як медицина, де симптоми та пов'язані слова можуть використовувати залежно від стилю, якому віддає перевагу рентгенолог, і слова можуть бути вживаними нечасто у великому корпусі. Якщо модель word2vec не зустрічала певного слова раніше, її буде змушено використовувати випадковий вектор, що є загалом дуже далеким від його ідеального представлення. Для подолання головних викликів, пов'язаних із витягуванням інформації з клінічних текстів, до яких належать неоднозначність вільного переповідного стилю тексту, лексичні варіації, використання неграматичних та телеграфних фраз, довільне впорядкування слів, та часте трапляння абревіатур та акронімів, РВС (англ. Intelligent Word Embedding, IWE) поєднує word2vec з методикою семантично-словникового відображування (англ. semantic dictionary mapping). Особливо цікаво, що модель РВС (натренована на одному установчому наборі даних) було успішно перенесено на інший установчий набір даних, що показує добру узагальнюваність цього підходу над установами. АналізПричини успішного навчання вкладень слів у системі word2vec є погано вивченими. Ґолдберґ та Леві вказують, що цільова функція word2vec змушує слова, що трапляються в подібних контекстах, мати подібні вкладення (згідно вимірювань косинусної подібності), й зауважують, що це узгоджується з дистрибутивною гіпотезою Дж. Р. Ферта. Проте вони зауважують, що це пояснення є «дуже на пальцях», і стверджують, що краще було би мати формальніше пояснення.[5] Леві та ін. (2015)[18] показують, що більша частина чудової продуктивності в подальших задачах word2vec та подібних вкладань є результатом не самих цих моделей, а вибору конкретних гіперпараметрів. Перенесення цих гіперпараметрів на «традиційніші» підходи видає в подальших задачах подібні продуктивності. Арора та ін. (2016)[19] пояснюють word2vec та подібні алгоритми як такі, що виконують висновування для простої породжувальної моделі для тексту, до якого входить породжувальний процес випадкового блукання на основі логлінійної предметної моделі. Вони використовують це, щоби пояснити деякі властивості вкладань слів, включно з їхнім використанням для розв'язування аналогій. Збереження семантичних та синтаксичних зв'язківПідхід вкладання слів є здатним вловлювати декілька різних степенів подібності між словами. Міколов та ін. (2013)[20] виявили, що семантичні та синтаксичні закономірності можливо відтворювати застосуванням векторної арифметики. Такі закономірності, як «Man is to Woman as Brother is to Sister» (укр. «Чоловік» для «Жінка» це як «Брат» для «Сестра») можливо породжувати через алгебричні операції на векторних представленнях цих слів, так що векторне представлення «Brother» − «Man» + «Woman» виробляє результат, що в цій моделі є найближчим до векторного представлення «Sister». Такі зв'язки можливо породжувати для ряду як семантичних взаємовідношень (таких як Країна — Столиця), так і для синтаксичних (наприклад, теперішній час — минулий час). Оцінювання якості моделіМіколов та ін. (2013)[1] розробляють підхід до оцінювання якості моделей word2vec, який спирається на обговорені вище семантичні та синтаксичні закономірності. Вони розробили набір із 8 869 семантичних та 10 675 синтаксичних відношень, який вони використовують як еталон для перевірки точності моделі. Оцінюючи якість векторної моделі, користувач може спиратися на цю перевірку точності, втілену в word2vec,[21] або розробляти свій власний перевірний набір, що є змістовним для корпусу, який складає цю модель. Цей підхід пропонує привабливішу перевірку, ніж просто стверджування, що слова, найподібніші до заданого перевірного слова, є інтуїтивно вірогідними.[1] Параметри та якість моделіВикористання різних параметрів моделі та різних розмірів корпусу може сильно впливати на якість моделі word2vec. Точність можливо покращувати рядом шляхів, включно з вибором архітектури моделі (НТС чи пропуск-грам), збільшенням тренувального набору даних, збільшенням числа вимірів вектору, та збільшенням розміру вікна слів, які розглядає цей алгоритм. Кожне з цих вдосконалень пов'язано з витратами на збільшену обчислювальну складність, і відтак із подовженим часом породження моделі.[1] В моделях, що використовують великий корпус та високе число вимірів, пропуск-грамова модель видає найвищу загальну точність, та стійко виробляє найвищу точність у семантичних зв'язках, у той же час видаючи найкращу синтаксичну точність в більшості випадків. Проте НТС є менш обчислювально витратною, й відає результати подібної точності.[1] Точність загалом зростає зі зростанням числа використовуваних слів, і зі зростанням числа вимірів. Міколов та ін.[1] повідомляють, що подвоєння обсягу тренувальних даних призводить до зростання обчислювальної складності, еквівалентного подвоєнню числа вимірів вектору. Альтзайлер зі співавторами (2017) досліджували продуктивність word2vec у двох семантичних перевірках для різних розмірів корпусу.[22] Вони виявили, що word2vec має круту криву спроможності навчатися[en], перевершуючи іншу методику вкладання слів (ЛСА), коли її тренують з розмірами корпусу від середнього до великого (понад 10 мільйонів слів). Проте з малим тренувальним корпусом ЛСА показувала кращу продуктивність. Крім того, вони показують, що найкраще налаштування параметрів залежить від задачі та тренувального корпусу. Менше з тим, для пропуск-грамових моделей, тренованих на корпусі середнього розміру, з 50 вимірами, розмір вікна в 15 та 10 негативних зразків видаються добрим налаштуванням параметрів. Див. такожПримітки
Посилання
Втілення
|