[發明專利]一種基于深度特征融合神經網絡的問題對匹配方法和裝置有效
| 申請號: | 201910323729.5 | 申請日: | 2019-04-22 |
| 公開(公告)號: | CN110032635B | 公開(公告)日: | 2023-01-20 |
| 發明(設計)人: | 鹿文鵬;張旭;禹繼國 | 申請(專利權)人: | 齊魯工業大學 |
| 主分類號: | G06F16/332 | 分類號: | G06F16/332;G06F16/33;G06F16/36 |
| 代理公司: | 濟南信達專利事務所有限公司 37100 | 代理人: | 孫園園 |
| 地址: | 250022 山東*** | 國省代碼: | 山東;37 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 深度 特征 融合 神經網絡 問題 匹配 方法 裝置 | ||
1.一種基于深度特征融合神經網絡的問題對匹配方法,其特征在于,該方法包括如下步驟:
S1、構建問題對知識庫:從互聯網問答社區爬取問題對,并對問題對進行預處理,初步構建問題對知識庫;
S2、構建問題對匹配模型訓練數據集:對于每個問題,在問題對知識庫中至少有一個與該問題相匹配的標準問題,將標準問題與該問題構建訓練正例;將除標準問題以外的問題與該問題構建訓練負例;
S3、構建問題對匹配模型:利用深度特征融合神經網絡構建問題對匹配模型,具體步驟如下:
S301、構建字符映射轉換表;
S302、構建輸入層:輸入層包括兩個輸入,從問題對知識庫中分別獲取question1、question2,將其形式化為:(question1,question2);再根據步驟S301中得到的字符映射轉換表將輸入數據中的字符轉化為數字表示;
S303、構建字符向量映射層;
S304、構建基于深度特征融合的神經網絡編碼層;具體步驟如下:
S30401、將步驟S303處理后的輸入文本進行編碼和語義提取;
S30402、使用兩個長短期記憶網絡LSTM分別對文本進行編碼,兩者語義特征進行加法操作;
S30403、同時使用兩個基于時間序列TimeDistribued的全連接Dense層對兩者語義特征進行加法操作,具體公式如下:
其中,i表示相應詞向量在句子中的相對位置;pi表示句子question1中每個字符的相應向量表示;表示經過其中一個LSTM編碼后的question1句子向量;表示經過另一個LSTM編碼后的question1句子向量;表示使用其中一個基于時間序列TimeDistribued的全連接Dense層編碼的句子向量;表示使用另一個基于時間序列TimeDistribued的全連接Dense層編碼的句子向量;表示兩個LSTM編碼層的輸出結果加法運算的結果;表示使用兩個基于時間序列TimeDistribued的全連接Dense層編碼的輸出結果加法運算的結果;
S30404、將步驟S30403中的兩種語義特征編碼結果進行連接,作為該問題的語義特征,公式如下:
其中,表示向量連接的結果,即為句子編碼的最終向量表示,使用vectorquestion1、vectorquestion2來具體表示對于question1、question2的編碼結果的最終向量;
S305、構建文本相似度匹配層;具體步驟如下:
S30501、根據步驟S304分別得到question1、question2的最終向量表示vectorquestion1、vectorquestion2;
S30502、針對步驟S30501中的兩個向量分別按照如下公式計算兩個向量之間的差異:
abs=|vectorquestion1-vectorquestion2|;
cos=cos(vectorquestion1-vectorquestion2);
mul=vectorquestion1*vectorquestion2;
其中,abs表示向量vectorquestion1、vectorquestion2逐元素之間求差取絕對值;cos表示向量vectorquestion1、vectorquestion2逐元素之間求差的余弦值;mul表示向量vectorquestion1、vectorquestion2逐元素之間求積;
S30503、將步驟S30502中的三個結果進行連接,作為問題對的相似度的全面表征,公式如下:
con=[abs,cos,mul];
其中,con表示將步驟S30502中的三個結果,即abs、cos和mul,進行連接后得到的相似度表征;
S30504、將步驟S30503中得到的相似度表征向量經過全連接層進行解碼,采用sigmoid函數進行相似度計算,得到處于[0,1]之間的相似度表示ypred,通過相似度的值判別問題對相似程度;
S4、訓練問題對匹配模型和標準問題選擇:在步驟S2所得的訓練集上對步驟S3構建的問題對匹配模型進行訓練;具體步驟如下:
S401、構建損失函數:為了解決在匹配過程中出現的過擬合問題,使模型在優化時將注意力更集中于難以分類的樣本,利用單位階躍函數來修正交叉熵損失函數,公式如下:
得到新的交叉熵損失函數,公式如下:
為了防止分類過于自信,使用修正的均方誤差損失函數來進一步改進Lnew(cross_entropy),得到:
其中,ypred為根據步驟S305得到的相似度計算結果;ytrue為兩個句子相似與否的真實表示,取值為0或1;m表示閾值,m∈(0.5,1);n為數據集大小,n∈N+;ones_like即使用數據1對于張量進行填充;
S402、構建優化函數:使用Adam算法作為模型的優化函數,學習率設置為0.002,超參數使用Keras中的默認值即可;
S403、問題對選擇:將一個新的問題與問題對知識庫中的所有候選的與之相匹配的問題組成輸入樣本;再分別利用步驟S3訓練完成的問題對匹配模型,計算問題與候選的與之相匹配的問題之間相似度的數值;最后從所有結果中選取相似度值最高的一組作為新問題最有可能匹配的問題并將該問題推送給用戶。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于齊魯工業大學,未經齊魯工業大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201910323729.5/1.html,轉載請聲明來源鉆瓜專利網。





