揭開知識庫問答KB-QA的面紗7·深度學習下篇(二)
深度學習提升向量建模方法的大體框架都很接近:根據問題確定主題詞,根據主題詞確定候選答案,通過候選答案和問題的分散式表達相似度得分確定最終答案。而方法的核心在於學習問題和候選答案的分散式表達,其實相關的方法都是在這兩個部分做文章。這篇文章的想法在於,對於不同的答案,我們關注問題的焦點是不同的,我們根據候選答案的資訊,來引入注意力機制,對同一個問題提取出不同的分散式表達。
比如 對於問題 "who is the president of France?",其中之一的答案是實體“Francois Holland”,我們通過知識庫可以知道Francois Holland 是一個總統,因此我們會更加關注問句中的 “president” 和 “France” 單詞,而根據Francois Holland的型別person,我們會更關注問句中的疑問詞who。
(如果你之前沒有接觸過注意力機制也沒有關係,可以直接往下看,也可以看看關於注意力機制最經典的文章,Yoshua Bengio等人在2015年ICLR發表的Neural Machine Translation by Jointly Learning to Align and Translate
該方法的整體框架如下圖所示:
具體來說,可分為以下三個步驟:
1.將候選答案轉化為分散式表達
我們從多個方面考慮答案的特徵:答案實體、答案上下文環境(知識庫中所有與答案實體直接相連的實體)、答案關係(答案與問題主題詞之間的實體關係)、答案型別。每一種特徵都可以用維的multi-hot向量表示,即知識庫實體和實體關係的數量之和。我們通過Embedding矩陣將每一種特徵轉化為低維的分散式表達,我們就得到了四種關於答案的分散式表達(其中由於答案上下文環境涉及的實體較多,我們取這些實體的embedding均值作為上下文環境的embedding)。
2.將自然語言問題轉化為分散式表達
將問句中的每一個單詞經過Embedding矩陣轉化成word-embedding,使用雙向LSTM(bi-LSTM)提取問句特徵。bi-LSTM第時刻的輸出記作,使用bi-LSTM的好處在於既包含了第個單詞之前的資訊,又包含了該單詞之後的資訊。
3.在得分函式中引入注意力機制
我們希望我們問句的分散式表達對於四種不同的答案特徵有不同的表達(根據答案的特徵對於問題有不同的關注點),第種答案的分散式表達 對應的問句分散式表達記作,我們的得分函式定義為四種對應表達的點乘之和,即: