LSTM模型在问答系统中的应用 2017-06-27 21:03 在问答系统的应用中,用户输入一个问题,系统需要根据问题去寻找最合适的答案。 1:采用句子相似度的方式。根据问题的字面相似度选择相似度最
LSTM模型在問(wèn)答系統(tǒng)中的應(yīng)用
2017-06-27 21:03在問(wèn)答系統(tǒng)的應(yīng)用中,用戶輸入一個(gè)問(wèn)題,系統(tǒng)需要根據(jù)問(wèn)題去尋找最合適的答案。
1:采用句子相似度的方式。根據(jù)問(wèn)題的字面相似度選擇相似度最高的問(wèn)題對(duì)應(yīng)的答案,但是采用這種字面相似度的方式并不能有效的捕獲用戶意圖的能力有限。
2:IBM早期應(yīng)用在watson系統(tǒng)中的DeepQa算法。該算法通過(guò)人工抽取一系列的特征,然后將這些特征輸入一個(gè)回歸模型。該算法普適性較強(qiáng),并且能有效的解決實(shí)際中的問(wèn)題,但是準(zhǔn)確率和召回率一般。
3:深度學(xué)習(xí)算法。依然是IBM的watson研究人員在2015年發(fā)表了一篇用CNN算法解決問(wèn)答系統(tǒng)中答案選擇問(wèn)題的paper。通過(guò)深度學(xué)習(xí)算法不僅能夠避免了人工手動(dòng)抽取大量的問(wèn)題特征的麻煩,并且取得了比DeepQa更好的效果。
大量的實(shí)驗(yàn)證明,在大數(shù)據(jù)量的情況下,深度學(xué)習(xí)算法和傳統(tǒng)的自然語(yǔ)言算法相比可以獲得更優(yōu)的結(jié)果。并且深度學(xué)習(xí)算法無(wú)需手動(dòng)抽取特征,因此實(shí)現(xiàn)相對(duì)簡(jiǎn)便。
其中CNN算法被大量的研究和使用,CNN算法的優(yōu)點(diǎn)在于實(shí)現(xiàn)簡(jiǎn)單(卷積)、并且能夠捕獲數(shù)據(jù)位置(單字成詞情況下,一次窗口的卷積類似于一次切詞的操作)的特征信息。
但是對(duì)于時(shí)序的數(shù)據(jù),LSTM算法比CNN算法更加適合。LSTM算法綜合考慮的問(wèn)題時(shí)序上的特征,通過(guò)3個(gè)門函數(shù)對(duì)數(shù)據(jù)的狀態(tài)特征進(jìn)行計(jì)算,這里將針對(duì)LSTM在問(wèn)答系統(tǒng)中的應(yīng)用進(jìn)行展開(kāi)說(shuō)明。
2016年watson系統(tǒng)研究人員發(fā)表了“LSTM-BASED DEEP LEARNING MODELS FOR NON-FACTOID ANSWER SELECTION”,該論文詳細(xì)的闡述了LSTM算法在問(wèn)答系統(tǒng)的中的應(yīng)用,這里將針對(duì)文中所描述的算法進(jìn)行實(shí)驗(yàn)。
算法流程圖
實(shí)驗(yàn)步驟
1:本次實(shí)驗(yàn)采用insuranceQA數(shù)據(jù),實(shí)驗(yàn)之前首先對(duì)問(wèn)題和答案按字切詞,然后采用word2vec對(duì)問(wèn)題和答案進(jìn)行預(yù)訓(xùn)練(這里采用按字切詞的方式避免的切詞的麻煩,并且同樣能獲得較高的準(zhǔn)確率)。
2:由于本次實(shí)驗(yàn)采用固定長(zhǎng)度的LSTM,因此需要對(duì)問(wèn)題和答案進(jìn)行截?cái)?#xff08;過(guò)長(zhǎng))或補(bǔ)充(過(guò)短)。
3:實(shí)驗(yàn)建模Input。本次實(shí)驗(yàn)采用問(wèn)答對(duì)的形式進(jìn)行建模(q,a+,a-),q代表問(wèn)題,a+代表正向答案,a-代表負(fù)向答案。insuranceQA里的訓(xùn)練數(shù)據(jù)已經(jīng)包含了問(wèn)題和正向答案,因此需要對(duì)負(fù)向答案進(jìn)行選擇,實(shí)驗(yàn)時(shí)我們采用隨機(jī)的方式對(duì)負(fù)向答案進(jìn)行選擇,組合成(q,a+,a-)的形式。
4:將問(wèn)題和答案進(jìn)行Embedding(batch_size, sequence_len, embedding_size)表示。
5:對(duì)問(wèn)題和答案采用相同的LSTM模型計(jì)算特征(sequence_len, batch_size, rnn_size)。
6:對(duì)時(shí)序的LSTM特征進(jìn)行選擇,這里采用max-pooling。
7:采用問(wèn)題和答案最終計(jì)算的特征,計(jì)算目標(biāo)函數(shù)(cosine_similary)。
目標(biāo)函數(shù)
參數(shù)設(shè)置
1:、這里優(yōu)化函數(shù)采用論文中使用的SGD(采用adam優(yōu)化函數(shù)時(shí)效果不如SGD)。
2、學(xué)習(xí)速率為0.1。
3:、訓(xùn)練150輪,大概需要1天的時(shí)間,從訓(xùn)練日志觀察得到,100輪左右基本達(dá)到穩(wěn)定。
4、margin這里采用0.1,其它參數(shù)也試過(guò)0.05、0.2效果一般。
5、這里訓(xùn)練沒(méi)有采用dropout和l2約束,之前試過(guò)dropout和l2對(duì)實(shí)驗(yàn)效果沒(méi)有提升,這里就沒(méi)有采用了。
6、batch_size這里采用100。
7、rnn_size為300(繼續(xù)調(diào)大沒(méi)有明顯的效果提升,而且導(dǎo)致訓(xùn)練速度減慢)
8、目標(biāo)函數(shù)采用cosine_similary,實(shí)驗(yàn)時(shí)也試過(guò)歐幾里德距離,但是效果不佳。
實(shí)驗(yàn)效果對(duì)比
QA_CNN:0.62左右
QA_LSTM:0.66左右
QA_BILSTM:0.68左右
注:這里分別實(shí)驗(yàn)了單向的LSTM和雙向的LSTM算法。單向的LSTM算法只能捕獲當(dāng)前詞之前詞的特征,而雙向的LSTM算法則能夠同時(shí)捕獲前后詞的特征,實(shí)驗(yàn)證明雙向的LSTM比單向的LSTM算法效果更佳。
總結(jié)
以上是生活随笔為你收集整理的LSTM模型在问答系统中的应用 2017-06-27 21:03 在问答系统的应用中,用户输入一个问题,系统需要根据问题去寻找最合适的答案。 1:采用句子相似度的方式。根据问题的字面相似度选择相似度最的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 自动问答
- 下一篇: 主要推荐系统算法总结及Youtube深度