0
本文作者: AI研習社-譯站 | 2018-08-08 10:47 |
雷鋒網(wǎng)按:本文為雷鋒字幕組編譯的研究博客,原標題 The Current Best of Universal Word Embeddings and Sentence Embeddings ,作者 Thomas Wolf。
翻譯 | 付騰、汪星宇 整理 | 凡江
插播一則小廣告:NLP領域的C位課程,斯坦福CS224n正在AI慕課學院持續(xù)更新中,無限次免費觀看!
詞與句的嵌入模型已經(jīng)是目前任何以深度學習為基礎的 NLP 系統(tǒng)的核心部件了。
它們將詞和句編碼成為固定長度的密度向量,以此來大幅提升文本數(shù)據(jù)的處理性能。
目前一個大趨勢就是:如何構建通用嵌入系統(tǒng)。通用嵌入系統(tǒng)是已經(jīng)在大量的文獻基礎上進行了訓練的系統(tǒng),這種訓練好的系統(tǒng)能夠被用于大量的下游任務模型當中(情感分析,分類,翻譯,等等),以此來自動提升這些任務模型的性能,因為通用嵌入系統(tǒng)已經(jīng)在大型的數(shù)據(jù)集上學習到了一些基本的詞/句的表征特點,來和任務模型進行配合。
這就是一種形式的遷移學習。
目前對句子的非監(jiān)督的表征學習已經(jīng)是一種常態(tài),并且持續(xù)了很長一段時間,但是在過去的幾個月里,尤其是在 2017 年末至 2018 年初,出現(xiàn)了很多有趣的可遷移的監(jiān)督學習和多任務學習方案。
目前通用詞/句嵌入模型的趨勢。在這片文章中,我們會介紹上圖中以黑色字體標識的模型。相關的具體文獻會在本文結尾列出。
這篇文章只是對目前最新的通用詞/句嵌入系統(tǒng)的大概介紹,此外,深入介紹了一些模型的細節(jié),包括:
性能好/速度快的基線模型: 比如 FastText,詞袋(BoW)
目前最新的模型:ELMo, Skip-Thoughts, Quick-Thoughts, InferSent, MILA/MSR’s General Purpose Sentence Representations & Google’s Universal Sentence Encoder
讓我們從詞嵌入模型開始吧。
在過去五年的時間里,很多可能的詞嵌入方法被提出。其中最常用的包括 Word2vec 和 GloVe,它們采用的都是非監(jiān)督的方法,也都是基于詞義分布理論 distributional hypothesis 來構建的(即某些詞如果出現(xiàn)于相同上下文中則它們可能具有相同或類似的意義)。
雖然同時期也有一些研究提出了結合傳統(tǒng)詞義和句法知識且基于非監(jiān)督的方法,但是在 2017 到 2018 年間,純粹的非監(jiān)督方法依然有可喜的進展,其中最受矚目的就是 FastText(word2vec 模型的擴展)和 ELMo(最新的基于上下文的詞向量模型)。
FastText 是 Tomas Mikolov 團隊的杰出作品,這引爆了對于通用詞嵌入模型的研究熱情。(Tomas Mikolov 同時也是在 2013 年提出 word2vec 架構的始作俑者。)
FastText 相對于原版的 word2vec 向量主要提升包括基于字符的 ngrams 的模型。這種模型可以讓詞嵌入模型計算出訓練數(shù)據(jù)當中沒有出現(xiàn)的詞的表征向量(即詞典之外的詞)。
FastText 向量 的訓練速度堪稱急速,并且提供基于 Wiki 百科和 Crawl 數(shù)據(jù)集的預訓練模型,支持多達 157 種語言。這些都是很重要的基準模型。
深度上下文詞表征 模型(ELMo)最近在詞嵌入方面的性能提升同樣引人側目。ELMo 是由 Allen AI 研究院提出并且開源,并且被 NAACL 2018 收錄,將會在 2018 年六月上旬大會期間進行展示。
ELMo 對于詞一級的上下文知道不少。
在 ELMo 模型當中,每個詞都被賦予一個表征,這個表征是一個函數(shù),代表它們所屬整個語料庫的語句的一個函數(shù)。從兩層雙向語言模型(LM)的內(nèi)部狀態(tài)計算嵌入,因此從語言模型命名為「ELMo」:Embeddings from Language Models。
ELMo 的具體特點:
ELMo 的輸入是字符而不是詞。這讓 ELMo 可以獲得 分詞單元 一級的優(yōu)勢,從而讓模型能夠為 詞典外單詞 計算出有意義的表征(與 FastText 類似)。
ELMo 是好幾層激活的 biLM 的 并列組合。不同層的語言模型編碼了相同單詞的不同信息(比如,POS 標識能夠被底層 biLSTM 很好的預測,同時高層的 biLM 模型能很好的完成詞義的消歧)。將所有層并列組合能夠?qū)⒋罅康男畔⒔Y合然后賦予詞表征向量,以此提高下游任務模型的性能。
接下來,讓我們看看通用句嵌入模型吧。
目前在句嵌入模型領域 有很多相互競爭的方案。簡單的基線模型比如 基于詞嵌入的平均方法就不斷的有更好的結果出現(xiàn),一些新奇的非監(jiān)督和監(jiān)督方法和一些多任務學習方案,在 2017 年末和 2018 年初出現(xiàn),并且引領了有趣的性能提升。
讓我們趕快看看目前較新的四類方法: 從簡單的詞向量平均基線模型到一些新奇的非監(jiān)督和監(jiān)督方法,和一些多任務學習方案(如前文所述)。
先說說在這個領域的共識,那就是最簡單的方法: 直接對一個句子中的詞嵌入向量求平均值(簡稱 BoW 方法),已經(jīng)能夠提供足夠好的基線性能,并且適合大部分下游任務。
計算此類基線方法中有一個比較好的算法,具體細節(jié)可以參考 Arora et al. 發(fā)表在 ICLR 2017 年的文章。標題是:A Simple but Tough-to-Beat Baseline for Sentence Embeddings。具體的實施方法就是使用任意一種詞嵌入,然后對句子當中的詞向量 進行線型加權的整合。然后對所得向量進行正常的成分移除(即 移除 向量在其第一主成分的低緯度方向上的 投影)。這個簡單的方法背后的理論動機深厚且強大。這個理論是基于生成模型的原理,就是利用話語向量的隨機游動來生成文本(此處我們就不討論理論細節(jié)了)。
這是一個 Hugging Face(一個社交對話 AI)對話的熱詞圖詞袋。詞袋(BoW)的 排序比較松散,但是卻很神奇的保存了大量的語義和句法 的內(nèi)容信息。這是一個有趣的結論,也是 Conneau 等人的成果,文章發(fā)于 ACL 2018。
超越簡單的求平均,第一個重要的提案就是利用非監(jiān)督來達到訓練目標。這也是 Jamie Kiros 及其同事在 2015 年 提出的 Skip-thoughts vectors 方法。
基于非監(jiān)督學習的句嵌入方案其實是一個副產(chǎn)品。而這個副產(chǎn)品的本來目標其實是希望模型能夠?qū)W會預測 一個連貫一致的句子,或者至少是一個連貫的句子摘要。這些方法(理論上)能夠利用任何文本數(shù)據(jù),只要文本數(shù)據(jù)中存在句子或者摘要,并且是連貫且并列的方式組織起來的。
Skip-thoughts vectors 模型就是一個典型的基于非監(jiān)督學習的句嵌入模型。它可以與另一種模型等價,那就是基于skip-gram 模型的句嵌入模型。這種模型的原型其實是基于 skip-gram 詞嵌入。它的的特點就是:與其預測某個具體單詞 的上下文可能出現(xiàn)的單詞,不如預測某個給定的句子的上下文可能出現(xiàn)的句子。這個模型包含一個 基于 RNN 的編碼-解碼器,而這個編碼-解碼器就是被訓練用來重構上下文句子的,前提是一個具體的句子已經(jīng)給定。
Skip-Thought 這篇文章有一個很有趣的結論,那就是詞匯擴展方案。Kiros 小組處理未出現(xiàn)生詞的方法,尤其是在模型訓練階段,就是 從 RNN 詞嵌入空間和另外一個大型的詞嵌入模型(比如 word2vec)之間的線性轉換當中學習到生詞的向量。
......
想要繼續(xù)閱讀,請移步至我們的AI研習社社區(qū):https://club.leiphone.com/page/TextTranslation/708
更多精彩內(nèi)容盡在 AI 研習社。
不同領域包括計算機視覺,語音語義,區(qū)塊鏈,自動駕駛,數(shù)據(jù)挖掘,智能控制,編程語言等每日更新。
手機端可以掃描二維碼訪問
雷鋒網(wǎng)雷鋒網(wǎng)
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權禁止轉載。詳情見轉載須知。