【論文筆記】Question Answering over Freebase with Multi-Column Convolutional Neural Networks

版權聲明:本文爲博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/LAW_130625/article/details/78447156

一、概要
  該文章發於ACL 2015,作者提出了一個基於Freebase,使用multi-column convolutional neural networks(MCCNNs)的自動問答模型,分別從答案路徑(answer path), 答案背景信息(answer context), 以及答案類型(answer type) 來理解問題,並學習它們的分佈式表示(distributed representations),在不使用任何手動特徵及詞表等條件下在問答數據集WEBQUESTIONS 上取得了很好的結果。

二、模型方法
2.1 模型簡介
  假設存在問題q=w1...wn ,作者使用 Freebase Search API來找到問題中的命名實體,如果問題中不含有任何命名實體或者名詞,那麼就使用返回最相關的一個命名實體,然後使用其在知識庫中懸着候選答案,所有的2-hops 節點的實體和關係都視爲候選答案,表示爲Cq
  然後基於每一個候選答案a,根據模型訓練得到的答案路徑(answer path), 答案背景信息(answer context), 以及答案類型(answer type) 的vector representations,以及分別對應的問題的vector representations,即:f1(q)f2(q)f3(q) ,最後根據S (q, a)才選出答案,計算方法爲:

S(q,a)=f1(q)Tg1(a)+f2(q)Tg2(a)+f3(q)Tg3(a)

  其中fi(q)gi(a) 的維度相同,它們的計算方式爲內積,最後把三項相加而得。

這裏寫圖片描述

2.2 MCCNNs for Question Understanding
  MCCNNs使用了三個管道來學習問題表示和word embeddings,分別對應答案路徑,答案背景信息, 以及答案類型。假設存在問題q=w1...wn ,把每個詞使用lookup轉爲詞向量,即:wj=Wvu(wj)WvRdv×|V|u(wj) {0, 1}^|V| 爲詞wj 的one-hot representation,|V|爲詞表大小。
  那麼對於MCCNNs的第i個通道,表示問題q的n個向量的第j個的計算方法爲:

x(i)j=h(W(i)[wTjs...wTj...wTj+s]+b(i))

其中(2s + 1)爲滑窗大小,W(i)Rdq×(2s+1)dv 爲卷積層的權重矩陣,b(i)Rdq×1 爲偏置向量,h (·) 爲非線性函數,這裏與text-cnn稍微有一點點不同,這裏每個卷積計算後得到的是維度爲dq 的向量。最後再Max-pooling層得到MCCNNs第i個通道的向量表示,即:
fi(q)=maxj=1,...,n {x(i) }

2.3 Embedding Candidate Answers
  對於每個候選答案a,其三方面的Vector representations分別表示爲:g1(a),g2(a),g3(a) ,其學習方式分別如下:
  ①Answer Path,答案路徑表示爲知識庫中候選答案與問題中的實體節點之間路徑上的所有關係(relation)集合,如上圖的答案路徑爲:(film.film.release date s,film.film regional release date.release date),其ector representation g1(a) 計算方式爲:
g1(a)=1||up(a)||1Wpup(a)

  其中up(a)R|R|×1 爲維度大小爲|R|的向量,即如果在這個某個實體關係出現了,那麼該位置值爲1,否則爲0,|R|表示關係的個數,WpRdq×|R| 爲權值矩陣,·1 爲L1範數,所以這裏最終的意思可以解釋爲所有出現的關係(relation)的embedding的平均。
  ②Answer Context,所有與答案路徑直接相連的實體或關係都視爲答案上下文背景,其representation的計算方式爲:
g2(a)=1||uc(a)||1Wcuc(a)

  其中uc(a)R|C|×1 爲維度大小爲|R|的向量,即如果在這裏某個實體或關係出現了,那麼該位置值爲1,否則爲0,|C|表示在所有上下文中出現的實體和關係的個數,WcRdq×|C| 爲權值矩陣,·1 爲L1範數。
  ③Answer Type ,候選答案的類型是作爲問題答案的重要線索,其representation的計算方式爲:
g3(a)=1||ut(a)||1Wtut(a)

  其中ut(a)R|T|×1 爲維度大小爲|R|的向量,即如果在這個某個實體關係出現了,那麼該位置值爲1,否則爲0,|T|表示在所有類型的種類個數,WtRdq×|T| 爲權值矩陣,·1 爲L1範數。
2.4 Model Training
  在訓練集中,對於問題q的每一個正確答案aAq (一個問題的正確答案可能不止一個),隨機在候選答案Cq 中選擇k個錯誤的答案a ,其loss函數可以構造爲:
l(q,a,a=(mS(q,a)+S(q,a)+

  其中m爲margin parameter,(z)+ = max{0, z},那麼最終的loss函數可以表示爲:
minq1|Aq|aAqaRql(q,a,a

  其中|Aq| 表示每個問題正確答案的個數。
  因爲對於每一個問題,其對應的正確答案可能不止一個,所以設定了閾值m,即loss函數中的margin parameter,當通過下列公式來判別是否選爲正確答案:
{Aq ={ a|aCq and max{ S(q,a)−S(q,a) <m }

三、實驗結果


這裏寫圖片描述

  如上圖,可以看出作者提出的深度學習MCCNNs模型,其獲得的結果超過了當時衆多學者的結果。同時作者對不同的通道做了對比,如下左圖是分別去掉相應條件下取得的結果,可以發現answer path的信息是最重要的,因爲其充分獲取了問題和候選答案之間的信息,而answer context處理的信息太多,所以引入的噪聲相對也多,

這裏寫圖片描述

  上圖左是作者基於學到的問題表示f(q),計算問題中每個詞的重要性,例如存在問題q=wn1 ,其中第j個詞wj 的重要性計算方法爲:

ei(wj)=||fi(wn1)fi(w1wjwj)||2

  其中wj 爲替換掉wj 的詞,常用is, to, a等停用詞表示,從結果可以看出以wh-開頭的詞比較重要,另外依靠於wh-詞彙的動詞和名詞也比較重要。下圖是作者使用不同通道的問題表示f(q),根據每個問題的餘弦值計算相近問題得到的結果。

這裏寫圖片描述

四、結論與思考
  作者提出的multi-column convo- lutional neural networks (MCCNNs)模型,通過三個通道來分別針對答案路徑(answer path), 答案背景信息(answer context), 以及答案類型(answer type) 來學習理解問題,在數據集WEBQUESTIONS 上取得了很好地結果,作者基於結果對模型出現錯誤的地方進行了一下分析:
  ①Candidate Generation,由於使用Freebase Search API返回的候選答案中可能根本就不存在正確答案的情況,比如有些問題單詞使用了縮寫形式,所以很難捉住重點信息。
  ②Time-Aware Questions ,時間序列的問題,比如問題:who is johnny cash’s first wife?答案可能會返回第二任妻子的姓名,因爲first/second這樣的詞很難學習到相應的信息。
  ③Ambiguous Questions,問題有時很模糊,甚至有歧義,比如“what has anna kendrick been in”是在詢問她演過什麼電影,這句話中並沒有含有表達其意思的關鍵詞。

五、個人思考
  ①該模型可以說非常充分的考慮到了候選答案的各種信息,並基於深度學習取得了很好地效果,針對於作者後面所做的錯誤分析是可以突破的一些地方,同時在模型裏作者使用的是詞向量,可以嘗試基於字符向量做一定的改進。

參考文獻
  ①Li Dong,Furu Wei,Ming Zhou.Question Answering over Freebase with Multi-Column Convolutional Neural Networks

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