本文結構:
- 模型效果
- 模型的三個模塊
- 模塊細節
今天的論文是 《Assigning Personality/Identity to a Chatting Machine for Coherent Conversation Generation》
https://arxiv.org/pdf/1706.02861.pdf
當我們在和聊天機器人互動時,最開始往往很好奇的就是對方到底是人還是機器人呢,所以會問到一些關于對方身份的問題,這對于機器人能否通過圖靈測試還是很重要的問題之一。
這篇論文提前預設好機器人的身份檔案,并且做到在相關的問答中做到與設置的一致,就可以讓機器人在回答時能夠有一定的身份特征。和其他的區別是不用從對話中慢慢學習出個性。
模型效果:
假設機器人的預設檔案為:
本論文的模型與普通的 seq2seq 效果比較為:
模型由三個模塊組成:
- 一個檔案檢測器 Profile Detector,一是來決定是否要根據檔案來回答,二是根據哪個關鍵字答復。
- 一個雙向解碼器 Bidirectional Decoder,用于從選定的檔案值出發向前和向后生成答復。
- 一個位置檢測器 position detector,用于預測選定的檔案值后要從哪個位置開始解碼,把位置傳遞給 decoder。
整體:
- 給定一個提問后,先看是否需要用檔案內容回答,不需要的話,就用通常的 seq2seq 來生成回復;
需要的話,先用 Profile Detector 選擇合適的 key-value。 - 然后用 Bidirectional Decoder 以這個 value 為起點向前向后生成答復。
- position detector 用來改善 training,test 集的差異問題,只在模型訓練時用。
模型細節:
提問:x = x1x2···xn
, 被 Encoder 將 post 轉化后的向量 x = x1x2 · · · xn
。x 的隱藏層狀態由 GRU 獲得 h = (h1, h2, · · ·, hn)
。
檔案:{< ki, vi > |i = 1, 2, · · · , K}
回答:y=y1y2···ym
問題建模:
1. Profile Detector
1. 其中 P(z|x)
是根據提問 x,看需要用檔案來回答的概率,由 Profile Detector 計算出。
由訓練的二分類器得到 P (z|x) = P (z| h~) = σ(Wp h~)
,h~ 是所有 hj 的和,Wp 是分類器的參數。
βi = MLP([ h~, ki, vi]) =f(W ·[ h~;ki;vi])
,用來決定根據哪個關鍵字答復,其中 f 為 softmax 激活函數,選擇概率最大的那一組 key-value。
2. Bidirectional Decoder:
2. Pfr(y|x)
是根據 x 生成 y,由通常的 forward decoder 生成。
3. Pbi(y|x, {< ki, vi >})
是根據 x 和檔案生成 y,由 Bidirectional Decoder 生成:
即 y = (yb, v~, yf )
為生成的回復,v~ 是選中的 value:
先由 x,v~ 得到 yb,再由 x,v~,yb 得到 yf。
Pb,Pf
通過下式計算:
其中 sj
是 decoder 的相應狀態,cj
是語境的向量:
P fr
和 P bi
的參數不是共享的。
3. position detector:
因為用于訓練的問答句是從社交網站上獲得的,前面識別出來的 value 可能并不會出現在答復中,這樣 bidirectional decoder 就會不知道從哪個位置開始,所以在這一步會做相關的處理。
例如,
post x =“你-1 有-2 什么-3 特長-4 ?-5
response y =“我-1 非常-2 擅長-3 小提琴- 4
a profile key value pair “<特長, 鋼琴>
那么 “小 提 琴-4 ” 的位置會傳遞給 decoder,然后替換成“鋼 琴”。
用 P (j|y1y2 · · · ym, < k, v > )), 1 ≤ j ≤ m
來表示 yj 可以被 v 替換的概率。
計算方法用兩個單詞的距離:
P(j|y,< k,v >)) ∝ cos(yj,v)
損失函數:
由兩部分組成:
L = L1 + αL2
1. L1 是生成答復的,根據最開始的問題模型可以得到:
D( c) 是只有 post-response 對的,D(pr) 是 post,value-response 的。
2. L2 是 profile detector 預測是否用檔案及用哪個關鍵詞的,根據前面定義過的 P(z|x)
和 βi
:
z=0 不用,z=1 用, k^ 是鎖定的 key。
推薦閱讀 歷史技術博文鏈接匯總
http://www.lxweimin.com/p/28f02bb59fe5
也許可以找到你想要的:
[入門問題][TensorFlow][深度學習][強化學習][神經網絡][機器學習][自然語言處理][聊天機器人]