本文結(jié)構(gòu):
- 模型效果
- 模型的三個(gè)模塊
- 模塊細(xì)節(jié)
今天的論文是 《Assigning Personality/Identity to a Chatting Machine for Coherent Conversation Generation》
https://arxiv.org/pdf/1706.02861.pdf
當(dāng)我們?cè)诤土奶鞕C(jī)器人互動(dòng)時(shí),最開(kāi)始往往很好奇的就是對(duì)方到底是人還是機(jī)器人呢全释,所以會(huì)問(wèn)到一些關(guān)于對(duì)方身份的問(wèn)題射窒,這對(duì)于機(jī)器人能否通過(guò)圖靈測(cè)試還是很重要的問(wèn)題之一机久。
這篇論文提前預(yù)設(shè)好機(jī)器人的身份檔案,并且做到在相關(guān)的問(wèn)答中做到與設(shè)置的一致浊闪,就可以讓機(jī)器人在回答時(shí)能夠有一定的身份特征。和其他的區(qū)別是不用從對(duì)話中慢慢學(xué)習(xí)出個(gè)性。
模型效果:
假設(shè)機(jī)器人的預(yù)設(shè)檔案為:
本論文的模型與普通的 seq2seq 效果比較為:
模型由三個(gè)模塊組成:
- 一個(gè)檔案檢測(cè)器 Profile Detector尘分,一是來(lái)決定是否要根據(jù)檔案來(lái)回答,二是根據(jù)哪個(gè)關(guān)鍵字答復(fù)丸氛。
- 一個(gè)雙向解碼器 Bidirectional Decoder培愁,用于從選定的檔案值出發(fā)向前和向后生成答復(fù)。
- 一個(gè)位置檢測(cè)器 position detector缓窜,用于預(yù)測(cè)選定的檔案值后要從哪個(gè)位置開(kāi)始解碼定续,把位置傳遞給 decoder。
整體:
- 給定一個(gè)提問(wèn)后禾锤,先看是否需要用檔案內(nèi)容回答私股,不需要的話,就用通常的 seq2seq 來(lái)生成回復(fù)恩掷;
需要的話倡鲸,先用 Profile Detector 選擇合適的 key-value。 - 然后用 Bidirectional Decoder 以這個(gè) value 為起點(diǎn)向前向后生成答復(fù)黄娘。
- position detector 用來(lái)改善 training峭状,test 集的差異問(wèn)題,只在模型訓(xùn)練時(shí)用逼争。
模型細(xì)節(jié):
提問(wèn):x = x1x2···xn
, 被 Encoder 將 post 轉(zhuǎn)化后的向量 x = x1x2 · · · xn
优床。x 的隱藏層狀態(tài)由 GRU 獲得 h = (h1, h2, · · ·, hn)
。
檔案:{< ki, vi > |i = 1, 2, · · · , K}
回答:y=y1y2···ym
問(wèn)題建模:
1. Profile Detector
1. 其中 P(z|x)
是根據(jù)提問(wèn) x誓焦,看需要用檔案來(lái)回答的概率羔巢,由 Profile Detector 計(jì)算出。
由訓(xùn)練的二分類器得到 P (z|x) = P (z| h~) = σ(Wp h~)
,h~ 是所有 hj 的和竿秆,Wp 是分類器的參數(shù)启摄。
βi = MLP([ h~, ki, vi]) =f(W ·[ h~;ki;vi])
,用來(lái)決定根據(jù)哪個(gè)關(guān)鍵字答復(fù)幽钢,其中 f 為 softmax 激活函數(shù)歉备,選擇概率最大的那一組 key-value。
2. Bidirectional Decoder:
2. Pfr(y|x)
是根據(jù) x 生成 y匪燕,由通常的 forward decoder 生成蕾羊。
3. Pbi(y|x, {< ki, vi >})
是根據(jù) x 和檔案生成 y,由 Bidirectional Decoder 生成:
即 y = (yb, v~, yf )
為生成的回復(fù)帽驯,v~ 是選中的 value:
先由 x龟再,v~ 得到 yb,再由 x尼变,v~利凑,yb 得到 yf。
Pb嫌术,Pf
通過(guò)下式計(jì)算:
其中 sj
是 decoder 的相應(yīng)狀態(tài)哀澈,cj
是語(yǔ)境的向量:
P fr
和 P bi
的參數(shù)不是共享的。
3. position detector:
因?yàn)橛糜谟?xùn)練的問(wèn)答句是從社交網(wǎng)站上獲得的度气,前面識(shí)別出來(lái)的 value 可能并不會(huì)出現(xiàn)在答復(fù)中割按,這樣 bidirectional decoder 就會(huì)不知道從哪個(gè)位置開(kāi)始,所以在這一步會(huì)做相關(guān)的處理磷籍。
例如适荣,
post x =“你-1 有-2 什么-3 特長(zhǎng)-4 ?-5
response y =“我-1 非常-2 擅長(zhǎng)-3 小提琴- 4
a profile key value pair “<特長(zhǎng), 鋼琴>
那么 “小 提 琴-4 ” 的位置會(huì)傳遞給 decoder,然后替換成“鋼 琴”院领。
用 P (j|y1y2 · · · ym, < k, v > )), 1 ≤ j ≤ m
來(lái)表示 yj 可以被 v 替換的概率弛矛。
計(jì)算方法用兩個(gè)單詞的距離:
P(j|y,< k,v >)) ∝ cos(yj,v)
損失函數(shù):
由兩部分組成:
L = L1 + αL2
1. L1 是生成答復(fù)的,根據(jù)最開(kāi)始的問(wèn)題模型可以得到:
D( c) 是只有 post-response 對(duì)的栅盲,D(pr) 是 post汪诉,value-response 的。
2. L2 是 profile detector 預(yù)測(cè)是否用檔案及用哪個(gè)關(guān)鍵詞的谈秫,根據(jù)前面定義過(guò)的 P(z|x)
和 βi
:
z=0 不用扒寄,z=1 用, k^ 是鎖定的 key拟烫。
推薦閱讀 歷史技術(shù)博文鏈接匯總
http://www.reibang.com/p/28f02bb59fe5
也許可以找到你想要的:
[入門問(wèn)題][TensorFlow][深度學(xué)習(xí)][強(qiáng)化學(xué)習(xí)][神經(jīng)網(wǎng)絡(luò)][機(jī)器學(xué)習(xí)][自然語(yǔ)言處理][聊天機(jī)器人]