未登錄詞處理優秀論文——Pointing the Unknown Words

論文:
《Pointing the Unknown Words》
作者:
Caglar Gulcehre、Sungjin Ahn、Ramesh Nallapati、Bowen Zhou、Yoshua Bengio


這篇論文主要是解決低頻詞和未出現(在測試集中)詞的問題——統稱“未登錄詞問題”。
採用了注意力模型。本文的思想是在遇到未登錄詞時,不要簡單的將其記作:UNK,而是將未登錄詞分作兩種情況:

  • 第一種情況是可以在預設的詞表中找到相似的詞
  • 第二種情況是可以使用原語句中的某個詞進行替代(如下圖)

這裏寫圖片描述

所以根據這樣的假設,本文使用了兩個softmax層:

  • 一個用於預測原輸入語句中某個詞的位置,對應於用原語句中的某個詞替換,叫做location softmax
  • 另一個用於預測在預定詞表中的單詞,叫做shortlist softmax

文中提到一般對於未登錄詞的處理分爲三類:

  1. 提高softmax的計算速度,使得模型能夠擁有更大的詞表。 相關方法:層次softmax;重要性採樣;噪聲對比分析等。
    缺點:這種方式僅僅擴充了詞表,是有助於解決未出現的詞的問題,但是它依然存在低頻詞問題。
  2. 充分利用上下文信息。這篇論文使用的也是這個方法。大概的思路就是在輸入的原句中找到對應的詞的位置並將這個詞直接複製到目標句子中。但是之前的論文(Luong et, al, 2015)並沒有採用注意力機制,並且使用了固定的分類數目。
  3. 將輸入單元從單詞變爲更小的粒度,比如字母或者字節。
    缺點:因爲輸入粒度的降低使得模型需要處理的長度大大提升,會提升訓練難度。

論文使用的pointer softmax(PS)模型,具備兩個關鍵的特點:

  1. 在每個時間節點上預測是否需要Pointing 機制;
  2. 可以根據任意長度的輸入進行位置的確定,能夠處理輸入長度變化較大的場景。

在每個時間點,如果模型選擇使用shortlist softmax,則模型將從預設的詞庫中選擇出一個單詞w。
如果模型希望從上下文中選擇一個詞,則模型會輸出一個上下文的位置,並且將該位置的詞作爲需要的詞。

所以,這樣做的關鍵是:如何確定什麼時候用shortlist sotfmax什麼時候用 location softmax?!


爲了解決策略的選擇問題,論文提出了模型一部分——switching network。

這個網絡是用多層感知器組成的,輸入爲上下文句子,和該時間點之前的隱藏層狀態。該轉換網路的輸出爲0/1,代表了location softmax / shortlist softmax。

值得注意的是,當我們需要的詞既不在上下文中,也不在預設詞庫中的時候,模型會默認選擇shortlist softmax,並且預測其中的UNK類。
PS的流程圖如下:

這裏寫圖片描述

論文的目標,用最大似然化的思想:

這裏寫圖片描述

其中,因爲這個單詞w的來源有兩種方式:(1)上下文;(2)預設詞庫。所以上式可以分解爲:

這裏寫圖片描述

然後用貝葉斯函數可以將其轉換爲:(此處省略了輸入序列x,因爲它在所有情況下都是等概率的。)

這裏寫圖片描述

這裏寫圖片描述

其中:

這裏寫圖片描述

所以論文的目標就是在給定的N組(上下文與目標語句對)數據集,然後訓練最大似然函數:

這裏寫圖片描述

在模型的訓練過程中,使用到了large-vocabulary trick (Jean et al., 2014) 這個方法是限制瞭解碼器中的softmax的詞表爲2000, 並且這2000個詞是動態變換的,找到每個輸入batch的詞,和目標詞庫中最常用的詞,將其組合成2000個詞。

後面做了幾個實驗,命名實體識別和翻譯,此處略。


點擊查看論文模型地址

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章