《A Decomposable Attention Model for Natural Language Inference》閱讀筆記
原文鏈接:A Decomposable Attention Model for Natural Language Inference
來源:arxiv
問題介紹:
Natural language inference,自然語言推斷。其實就是文本蘊含任務(text entailment),任務的形式是:給定一個前提文本(premise),根據這個premise去推斷假說文本(hypothesis)與premise的關係,一般分為蘊含關係(entailment)和矛盾關係(contradiction),蘊含關係(entailment)表示從premise中可以推斷出hypothesis;矛盾關係(contradiction)即hypothesis與premise矛盾。
這篇論文的實驗是用的SNLI數據集。主要方法:
每個訓練數據由三個部分組成,,模型的輸入為,,分別代表前提和假說,表示a和b之間的關係標籤,C為輸出類別的個數,因此y是個C維的0,1向量。訓練目標就是根據輸入的a和b正確預測出他們的關係標籤y。
本文的模型主要分成三個部分:Attend,Compare,Aggregate。如下圖所示:
1.Attend首先對a和b中的每個詞計算它們之間的attention weights,計算公式如下:
這裡F是一個激活函數為RELU的前饋神經網路。然後用這個attention weights分別對a和b進行歸一化以及加權,
2.Compare該模塊的功能主要是對加權後的一個句子與另一個原始句子進行比較,
這裡[.,.]表示向量拼接,G()依舊是一個前饋神經網路。3.Aggregate
現在我們得到了兩個比較向量的集合,,,先分別對兩個向量集合進行求和,
然後將求和的結果輸入前饋神經網路做最後的分類。訓練用多分類的交叉熵作為損失函數,4.Intra-Sentence Attention(optional)
除了上述的基礎模型之外,可以在每個句子中使用句子內的attention方式來加強輸入詞語的語義信息,
這裡的依然是一個前饋神經網路,利用得到的權值f重新對詞進行加權,即得到self-aligned(自對應)的短語,這裡的表示當前詞i與句子中的其他詞j之間的距離偏差,距離大於10的詞共享一個距離偏差(distance-sensitive bias),這樣每一個時刻的輸入就變為原始輸入跟self-attention後的值的拼接所得到的向量,,
實驗結果:
1.SNLI數據集準確率
2.每一類關係的準確率
3.一些case
簡評:
這篇論文的核心就是alignment,即詞與詞的對應關係,文中的alignment用在了兩個地方,一個attend部分,是用來計算兩個句子之間的attention關係,另一個是compare部分,對兩個句子之間的詞進行比較,每次的處理都是以詞為單位的,最後用前饋神經網路去做預測。很明顯可以看到,這篇文章提到的模型並沒有使用到詞在句子中的時序關係,更多的是強調兩句話的詞之間的對應關係(alignment),正如文中Introduction提到的一個例子,
第一句是前提,後面是假說。第二句話中的Bob與第一句話中的Bob對應上,awake與cannot sleep對應上,從而來判斷說第一句跟第二句的entailment關係。再看第三句話,這裡的sunny與thunder,lightning對應上,從而判斷它們是contradiction的關係。本文利用這種直覺從而建立了基於alignment思想的模型。在SNLI任務上也取得了很好的效果,除此之外,本文還有一個亮點就是大大減少了模型的參數,有興趣的可以查看論文的第四章。
基於torch的模型實現:harvardnlp
推薦閱讀:
※BP神經網路優化方程式的推導
※Google黑科技系列 4:自動修正你的靈魂畫作autodraw.com
※可怕!斯坦福AI看臉即知性取向,國外媒體和網友都炸了
TAG:神经网络 |