問題描述
這個問題來自于SemEval-2015Task3: Answer Selection in Community Question Answering.
簡單的說就是從一堆問題和答案中找出他們之間的相關(guān)性。
這個Task包含兩個Subtasks:
1.給定一個問題和一些答案,將答案進行為3類:good/potential/bad。
2.給定一個判定問題(Yes/No/Unsure)和一些答案,判定該問題是Yes/No/Unsure。
這里主要討論subtask1。
詳見:http://alt.qcri.org/semeval2015/task3/
實現(xiàn)框架
整體實現(xiàn)框架如下圖所示:

簡單來說,分為一下幾個步驟:
1.預(yù)處理:通過一些基本的“詞”級別的處理,為特征提取準備規(guī)范數(shù)據(jù)。
2.特征提?。和ㄟ^對原始數(shù)據(jù)和預(yù)處理后的數(shù)據(jù)進行分析,并基于一定的假設(shè),確定選取特征,提取特征。
3.模型構(gòu)建:根據(jù)問題描述,選擇學(xué)習(xí)模型,構(gòu)建訓(xùn)練集,訓(xùn)練模型。
4.實驗評估:構(gòu)建測試集,對比各模型效果。
具體實現(xiàn)框架如下圖所示:

接下來詳細描述整個過程。
預(yù)處理
個人認為,特征選擇在實現(xiàn)上發(fā)生在預(yù)處理之后,但實則發(fā)生在預(yù)處理前后。
根據(jù)上述問題描述,和自己的先驗知識,先對該問題做了一定的假設(shè):
假設(shè)問題和答案是有相關(guān)性的。
假設(shè)問題和好的答案相關(guān)性更大,和不好的答案相關(guān)性更小。
假設(shè)問題和各種類別(good/potential/bad)的答案在“詞”的特征上,是有一定規(guī)律的。
假設(shè)問題和各種類別(good/potential/bad)的答案在語義上,是有一定規(guī)律的。
特征選擇
詞相似特征
1.Word cosine similarity:我們假設(shè)問題和好的答案詞相似,所以設(shè)計回答和問題的詞的相似度特征。構(gòu)建詞典,以詞典順序作為向順序,tfidf作為權(quán)重,統(tǒng)計每個回答和問題的空間向量,然后計算對應(yīng)的問題和回答之間的余弦相似度。
2.NE cosine similarity:關(guān)鍵詞通常是名詞實體,我們假設(shè)問題和好的回答的關(guān)鍵詞相近,所以我們構(gòu)建了問題與回答之間的名詞實體余弦。識別名詞實體,構(gòu)建名詞實體字典。以字典為順序,tfidf為權(quán)重,構(gòu)建每個問題和答案的名詞實體向量,并計算相應(yīng)的余弦值。
特殊詞特征
1.Special symbol feature:我們將訓(xùn)練數(shù)據(jù)各個類別的答案所出現(xiàn)的符號經(jīng)過統(tǒng)計分析發(fā)現(xiàn),有些特殊符號比如“>..<,!:(,:(,:-(”只出現(xiàn)在了bad類別的答案中,而“>,<”只出現(xiàn)在good類別的答案中,因此我們將此作為一維特征。定義:3表示出現(xiàn)good類符號;2表示不出現(xiàn)good和bad類符號;1表示出現(xiàn)bad類符號。
2.Bad words feature:我們假設(shè)某些詞傾向出現(xiàn)在壞的答案里或者好的答案里,根據(jù)經(jīng)驗,這樣的特征對識別壞的詞有幫助。所以我們統(tǒng)計僅出現(xiàn)在bad的回答的詞。問題中若是出現(xiàn)bad的詞,則這維特征記為1,否則記為0.
主題特征
1.Topic feature:我們假設(shè)問題的主題和回答的主題是相似的,所以這維特征計算問題和答案的主題相似度分數(shù)。我們借助gensim工具的LDA模型來訓(xùn)練主題模型。
我們訓(xùn)練10個主題的主題模型,然后拿到每條答案或者問題的主題向量(每條記錄屬于每個主題的分數(shù))。拿到每條記錄的主題向量之后,計算對應(yīng)的問題和答案的余弦相似度。從而得到問題與答案的主題相似度特征。
gensim的LDA方法詳見:https://radimrehurek.com/gensim/models/ldamodel.html
語義特征
1.Word alignment feature:這一維特征是通過Meteor工具來計算得到的,Meteor工具是用來評估兩句話在翻譯層面上的相似度。我們假定問題和對應(yīng)的好的答案之間應(yīng)該具有更高的相似度。因此我們將Meteor工具計算出來的問題與答案之間的score做為一維特征。
Meteor詳見:http://www.cs.cmu.edu/~alavie/METEOR/
2.word2vector?feature:我們假設(shè)問題和回答所用的詞在語義上是相似的,與問題的詞越是相似的越有可能是好的回答。我們借助gensim具來訓(xùn)練word2vec特征。這樣我們就得到每個詞的詞向量。然后借助以下公式拿到對應(yīng)問題與答案的詞向相似度得分。

其中wi是問題的第1個詞,wj是回答的第j個詞。n是問題的詞的個數(shù),m是回答的詞的個數(shù)。gensim的word2vec方法詳見:https://radimrehurek.com/gensim/models/word2vec.html
非文本特征
1.QA author feature:通過分析訓(xùn)練數(shù)據(jù)發(fā)現(xiàn),如果答案和問題來自同一個用戶,在很多情況下不是一個好的答案,因此我們將此作為一維特征。定義:0表示答案和問題來自不同用戶;1表示答案和問題來自同一用戶。
2.User posts feature:這個特征和知乎的大V原理有點類似,我們認為,一個用戶回答的問題越多,他(她)的答案越有可能是一個好的答案。因此我們將用戶提問和回答問題的數(shù)量作為一維特征。
模型訓(xùn)練
我們采用了一下三種模型,均采用sklearn工具包的默認方法,未設(shè)置任何超參數(shù)。
1.SVM
2.樸素貝葉斯
3.決策樹
效果評估
訓(xùn)練集:train,測試集:dev

訓(xùn)練集:train,測試集:test

訓(xùn)練集:train+dev,測試集:test

效果一般,正在進行后續(xù)調(diào)參改進,敬請期待文章更新。
數(shù)據(jù)分布
TRAINING:
QUESTIONS:
TOTAL: 2,600
GENERAL: 2,376 (91.38%)
YES_NO: 224 (8.62%)
COMMENTS:
TOTAL: 16,541
MIN: 1
MAX: 143
AVG: 6.36
CGOLD VALUES:
Good: 8,069 (48.78%)
Bad: 2,981 (18.02%)
Potential: 1,659 (10.03%)
Dialogue: 3,755 (22.70%)
Not English: 74 ( 0.45%)
Other: 3 ( 0.02%)
CGOLD_YN COMMENT VALUES (excluding"Not Applicable"):
yes: 346 (43.52%)
no: 236 (29.69%)
unsure: 213 (26.79%)
QGOLD_YN VALUES (excluding "NotApplicable"):
yes: 87 (38.84%)
no: 47 (20.98%)
unsure: 90 (40.18%)
DEVELOPMENT:
QUESTIONS:
TOTAL: 300
GENERAL: 266 (88.67%)
YES_NO:? 34 (11.33%)
COMMENTS:
TOTAL: 1645
MIN: 1
MAX: 32
AVG: 5.48
CGOLD VALUES:
Good: 875 (53.19%)
Bad: 269 (16.35%)
Potential: 187 (11.37%)
Dialogue: 312 (18.97%)
Not English: 2 ( 0.12%)
Other: 0 ( 0.00%)
CGOLD_YN COMMENT VALUES (excluding"Not Applicable"):
yes: 62 (53.91%)
no: 32 (27.83%)
unsure: 21 (18.26%)
QGOLD_YN VALUES (excluding "NotApplicable"):
yes: 16 (47.06%)
no: 8 (23.53%)
unsure: 10 (29.41%)
test:
QUESTIONS:
TOTAL: 329
GENERAL: 300(91.19%)
YES_NO:29(8.81%)
COMMENTS:
TOTAL: 1976
MIN: 1
MAX: 66
AVG: 6.01
CGOLDVALUES:
TOTAL: 1976
Good: 997(50.46%)
Bad: 362(18.32%)
Potential: 167(8.45%)
Not English: 15(0.76%)
Other: 0(0.00%)
QGOLD_YNVALUES:
yes: 18(62.07%)
no: 4(13.79%)
unsure: 7(24.14%)
參考文獻
[1]毛先領(lǐng),李曉明.問答系統(tǒng)研究綜述[J].計算機科學(xué)與探索, 2012, 6(3):193-207.
[2]Denkowski M, Lavie A. Meteor 1.3: automatic metric for reliable optimizationand evaluation of machine translation systems[C]// The Workshop on StatisticalMachine Translation. Association for Computational Linguistics, 2011:85-91.
[3]Quan H T, Tran V, Tu V, et al. JAIST: Combining multiple features for AnswerSelection in Community Question Answering[C] International Workshop on SemanticEvaluation. 2015:215-219.
[4]Matthew Hoffman, David M Blei, Francis Bach.Advancesin Neural Information Processing Systems.2010/1/2:856-864.
[5]MikolovT, Chen K, Corrado G, et al. Efficient Estimation of Word Representations inVector Space[J]. Computer Science, 2013.
[6]Goldberg Y, Levy O. word2vec Explained: deriving Mikolov et al.'s
negative-sampling word-embedding method[J]. Eprint Arxiv, 2014.