1. 程式人生 > >【論文閱讀】Advances in Pre-Training Distributed Word Representations

【論文閱讀】Advances in Pre-Training Distributed Word Representations

《Advances in Pre-Training Distributed Word Representations》

Tomas Mikolov, Edouard Grave, Piotr Bojanowski, Christian Puhrsch, Armand Joulin,2017

Abstract

現在許多自然語言處理應用程式都依賴從大型文字語料庫(如新聞集、維基百科和網路爬取)預先訓練的詞向量表示。在本文中,我們展示瞭如何使用已知但很少組合使用的技巧來訓練高質量的單詞向量表示。我們工作的主要成果是一系列新的公開使用的預訓練模型,在許多工上大大優於現有的技術水平。

1. Introduction

預先訓練的連續詞彙表示已經成為許多自然語言處理(NLP)和機器學習應用的基本構建模組。這些預先訓練的表示提供了有關單詞的分佈資訊,這通常會提高在有限資料集上學習的模型的泛化能力。這些資訊通常來源於大量未標記的資料集。因此,訓練的一個關鍵方面是儘可能多的從豐富廣泛的資料來源中獲取儘可能多的資訊。

學習單詞表示的標準方法是根據word2vec和fast-Text中實現的Skip-Gram模型或CBOW連續詞袋模型體系訓練對數雙線性模型。在Skip-Gram模型中,給定一個目標詞預測附近的單詞,而在CBOW模型中,根據其上下文預測源單詞。這些體系結構及其實現已被優化,以產生高質量字表示從而轉移到更多工,同時保持足夠高的訓練速度來縮放大量的資料。

最近,word2vec表示已被廣泛應用於NLP來提高其效能,其效能表明他們正在獲取有關訓練語料庫的重要統計資料。可以看出,一個模型訓練得資料越多,其獲得的詞表示就能越好的轉移到其他NLP問題。在大規模資料來源(如Common Crawl)上訓練這樣的模型可能會很麻煩,許多NLP從業者更喜歡使用公開的預先訓練過的單詞向量來自行訓練模型。在這項工作中,我們提供了新的預先訓練的單詞向量,與當前已有的向量相比有了改進,並且會有更廣泛的使用。

對於標準的word2vec的基礎修改顯著提高了獲得的單詞向量的質量。我們主要關注已知的修改和資料預處理策略,他們很少一起使用:由Mnih and Kavukcuoglu (2013)

引入的位置相關特徵,Mikolov et al. (2013b)使用的短語表示和(Bojanowski et al., 2017)使用的子詞資訊。

我們使用標準的基準來衡量他們的質量:句法、語義和基於短語的類比(Mikolov et al., 2013b),稀有詞資料集(Luong et al., 2013),並且作為Squad question answering dataset的特徵(Rajpurkar et al., 2016; Chen et al., 2017)

2. Model Description

在這一部分,我們簡單的描述word2vec中使用的cbow模型,然後解釋幾個一致的改進方法,以學習更豐富的詞表示。

2.1. Standard cbow model

Mikolov et al. (2013a)中使用的cbow模型通過預測上下文的單詞來學習詞表示。上下文由包含周圍詞的對稱視窗所定義。更準確的說,給定 T 個單詞 w1,...,wT ,目標是最大化對數似然函式:

t=1Tlog p(wt|Ct)(1)
其中, Ct 是第 t 個詞的上下文,如單詞 wtc,...,wt1,wt+1,...,wt+c 是視窗大小為 2c 的上下文。現在,我們假設可以獲得一個詞 w 和它的上下文 C 的得分函式,用 s(w,C) 表示。這個評分函式稍後將通過單詞向量進行引數化。公式(1)中的條件概率可由關於詞彙中上下文和詞彙得分的softmax函式計算得到。但是這種選擇對於大量詞彙來說是不切實際的。另一種方法是泳獨立的二元分類器替換這個概率。學習正確的單詞與一組抽樣的負樣本對比。更確切的說,給定一個單詞 w 的上下文 C ,公式1的條件概率公式可以被替代為:
log(1+es(w,C))+nNClog(1+es(n,C))(2)
其中, NC 是從單詞表中取樣的負樣本的集合。目標函式可以被公式2替代:
t=1T[log(1+es(wt,Ct))+nNCtlog(1+es(n,Ct))]
該模型的自然化引數是用向量 vw 代表每個詞 w 。相似地,上下文可以由視窗內每個單詞 w 的平均向量 uw 表示。評分函式就是這兩個向量之間的點積:
s(w,C)=1|C|wCuTwvw(3)
注意,上下文中的單詞和預測的單詞使用不同的單數。

Word subsampling: 標準文字語料庫中的詞語頻率分佈遵循Zipf分佈,這意味著大部分詞彙屬於整個單詞表的一個小的子集(Li, 1992)。考慮到平等地對待所有出現的詞,會導致模型在最頻繁出現的詞表示上發生引數過度擬合,而對其他詞則會欠擬合。Mikolov et al. (2013a)引入的一個策略是對頻繁的詞進行二次抽樣,用以下的概率對詞進行丟棄:

pdise(w)=1t/fw(4)
其中 fw 是單詞 w 的詞頻, t>0 是一個引數。

2.2. Position-dependent Weighting

上面描述的上下文向量只是包含在其中的單詞向量的平均值。這種表示忽視了每個單詞的位置。對一個單詞和它的位置進行顯式編碼的表示將是不切實際的,容易過度擬合。Mnih and Kavukcuoglu (2013)引入一個簡單而有效的解決方案,是在單詞表示的上下文中,學習位置表示並使用它們來重新賦予單詞向量。這種依賴於位置的加權以最小的計算成本提供更豐富的上下文表示。

上下文視窗中的每個位置 p 都與一個向量 dp 相關聯。上下文向量是由其位置向量重新加權得到的上下文詞的平均值獲得的。即,由 P 表示上下文視窗中的一組相對位置 [c,...,1,1,...,c] ,單詞 wt 的上下文向量 vC 可表示為:

vC=pPdput+p(5)
其中 是指向量的逐點相乘。

2.3. Phrase representations

原始的cbow模型僅僅基於unigrams,其對單詞順序不敏感。我們用word n-gram來豐富這個模型,以獲取更豐富的資訊。將n-gram直接納入模型是非常具有挑戰性的,因為引數數量的大量增加導致模型內容不明確。 相反,我們遵循Mikolov et al. (2013b)的方法,通過迭代地將互資訊標準應用於bigrams來選擇n-gram。然後,在資料預處理步驟中,我們將所選n-gram中的單詞合併成單個token(片語)。例如,像“New York”這樣具有高度互資訊的詞彙被合併在一個雙重標記“New York”中。這個預處理步驟被重複幾次,以形成更長的n-gram標記,如“New York City”或“New York University”。在實踐中,我們重複這個過程5-6次來構建代表較長ngram的token。我們使用word2vec project2中的word2phrase工具。需要注意的是,互資訊量高的unigrams只能以50%的概率進行合併,因此我們仍然保留了大量的unigram事件。即使在應用中沒有進一步使用短語表示,它們也有效地提高了詞向量的質量,如實驗部分所示。

2.4. Subword information

標準的單詞向量忽略了單詞內部結構,而內部結構往往包含豐富的資訊。這些資訊可以用於計算罕見的或拼寫錯誤的單詞,以及豐富多彩的語言(如芬蘭語或土耳其語等)。一個簡單而有效的方法是用a bag of character n-gram vectors來豐富單詞向量,這些向量或者是從共生矩陣的奇異值分解得出的(Sch¨utze, 1993),或者是從大量的資料集中直接學習的(Bojanowski et al., 2017). 。在後者中,每個單詞被分解成它的特徵n-gram N ,每個n-gram n 由一個向量 xn 表示。詞向量可以簡單地由這兩種向量之和表示:

vw+1|N|nNxn(6)
實際上,n-grams N 的集合被限制為3到6個字元。儲存所有這些額外的向量是記憶體要求。我們使用雜湊技巧來規避這個問題 (Weinberger et al., 2009)

3. Training Data

我們使用了幾種公開的文字資料來源和Gigaword資料集,如表1所示。我們使用從2017.6起的英文維基,其中使用元頁面存檔,導致文字語料庫超過90億字。此外,我們使用了2007年至2016年的所有來自statmt.org的新聞資料集,UMBC語料庫(Han et al., 2013),英語Gigaword以及2017年5月的通用網路爬取

Table1

在Common Cra