【論文筆記】Learning to ask good questions: Ranking clarification questions using Neural Expected Value

這是ACL2018的一篇Best papers.
解決的是論壇提問中對posts的信息補全的問題
用到的數據是StackExchange的數據

場景

論壇求助中的一些posts並不完善,有些問題直接開問,並沒有包含如 自己系統版本號,環境 等信息的說明,這種問題很難得到確切的回答。

作者通過NN的方法想辦法去補全這些信息在問題中,應用場景可能就是,當作者要發佈的時候,系統會自動提示作者需要補全哪些信息。

大致思路

作者受到 EVPI 的啓發 (EVPI是衡量, 得到了信息X,會對我有多大的幫助的指標)
設計了這樣一個函數:

EVPI(qi|p)=ajAP[aj|p,qi]U(p+aj)

來衡量:
p 是 post, qi 是候選集 Q 中的一個問題, aj 是針對qi 的一個回答。

P[aj|p,qi] 是對於 p , qi , 得到答案aj 的概率。

U(p+aj) 是得到 aj , 對 p 有效的程度

生成候選集

作者先通過Lucene(一個文本檢索系統) 找到與目標post p 最相近的10個 posts, 看這些posts 下面有哪些 clarifying questions (就是發佈一個post之後,被問到的需要補全信息的問題,如what is the version of your os?) 組成一個問題集 Q
那對於一個問題, 其中有哪些是posts針對問題重新編輯了,這些編輯進去的信息也被組成一個集合 A , 稱爲答案集。

所以問題就是,一個post p 對應一個問題集Q
同時對於每個qi , 也對應一個答案集 A

以下一些數學標記,結合全文來看:
F() 就是一個前饋神經網絡,
^ 是指對text的所有詞向量平均得到的向量表示;
¯ 是對text的每個詞向量輸入lstm之後的隱藏狀態層做平均得到的向量表示

Answer modeling

因爲有候選集,所以就要衡量一下 對於p , qi , 得到答案aj 的概率。

dist(Fans(p¯,qi¯),aj^)=1cos_sim(Fans(p¯,qi¯),aj^)

這裏用 Fans(p¯,qi¯) 來做一個 answer 的 representation 來和真實的answer做距離,這裏其實我不太理解爲什麼這個函數能夠表徵一些答案的信息

這個的概率爲:
P[aj|p,qi]=exp(dist(Fans(p¯,qi¯),aj^))

這裏的值域也感覺有待商榷,好像不是 [0,1]

優化loss函數就是:

lossans(pi,qi,ai,Q)=dist(Fans(pi¯,qi¯),aj^)+λjQ(dist(Fans(pi¯,qi¯),aj^)cos_sim(qi^,qj^))

後半部分是把所有問題和當前問題qi 的相似度做權重考慮所有問題。

可用性計算

這裏直接用這個函數來衡量:

U(pi+aj)=σ(Futil(pi¯,pj¯,aj¯))

σ 表示概率的意思

其實這是一個有監督的二分類問題,就是: 有幫助(y=1 ),沒有幫助(y=0 ) 兩個類別。

所以這部分的損失函數就用交叉熵來衡量:
lossutil(yi,pi¯,qj¯,aj¯)=yilog(σ(Futil(pi¯,pj¯,aj¯)))

總損失函數

就是綜合考慮兩部分損失

ijlossans(pi¯,qi¯,ai¯,Qi)+lossutil(yi,pj¯,qj¯,aj¯)

理解

作者把問題分解爲兩部分,其實模型本身很簡單,也沒有用到複雜的NN,也只是LSTM,由於剛剛接觸,對QA這類問題也沒有很深的理解,只是記錄一下。

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