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