【論文閱讀】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),稀有詞資料集(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模型通過預測上下文的單詞來學習詞表示。上下文由包含周圍詞的對稱視窗所定義。更準確的說,給定
其中,
其中,
該模型的自然化引數是用向量
注意,上下文中的單詞和預測的單詞使用不同的單數。
Word subsampling: 標準文字語料庫中的詞語頻率分佈遵循Zipf分佈,這意味著大部分詞彙屬於整個單詞表的一個小的子集(Li, 1992)。考慮到平等地對待所有出現的詞,會導致模型在最頻繁出現的詞表示上發生引數過度擬合,而對其他詞則會欠擬合。Mikolov et al. (2013a)引入的一個策略是對頻繁的詞進行二次抽樣,用以下的概率對詞進行丟棄:
其中
2.2. Position-dependent Weighting
上面描述的上下文向量只是包含在其中的單詞向量的平均值。這種表示忽視了每個單詞的位置。對一個單詞和它的位置進行顯式編碼的表示將是不切實際的,容易過度擬合。Mnih and Kavukcuoglu (2013)引入一個簡單而有效的解決方案,是在單詞表示的上下文中,學習位置表示並使用它們來重新賦予單詞向量。這種依賴於位置的加權以最小的計算成本提供更豐富的上下文表示。
上下文視窗中的每個位置
其中
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-grams
3. Training Data
我們使用了幾種公開的文字資料來源和Gigaword資料集,如表1所示。我們使用從2017.6起的英文維基,其中使用元頁面存檔,導致文字語料庫超過90億字。此外,我們使用了2007年至2016年的所有來自statmt.org的新聞資料集,UMBC語料庫(Han et al., 2013),英語Gigaword以及2017年5月的通用網路爬取。
在Common Cra