使聊天機器人具有個性

本文結構:

  • 模型效果
  • 模型的三個模塊
  • 模塊細節

今天的論文是 《Assigning Personality/Identity to a Chatting Machine for Coherent Conversation Generation》

https://arxiv.org/pdf/1706.02861.pdf

當我們在和聊天機器人互動時,最開始往往很好奇的就是對方到底是人還是機器人呢,所以會問到一些關于對方身份的問題,這對于機器人能否通過圖靈測試還是很重要的問題之一。

這篇論文提前預設好機器人的身份檔案,并且做到在相關的問答中做到與設置的一致,就可以讓機器人在回答時能夠有一定的身份特征。和其他的區別是不用從對話中慢慢學習出個性。

模型效果:

假設機器人的預設檔案為:

本論文的模型與普通的 seq2seq 效果比較為:


模型由三個模塊組成:

  1. 一個檔案檢測器 Profile Detector,一是來決定是否要根據檔案來回答,二是根據哪個關鍵字答復。
  2. 一個雙向解碼器 Bidirectional Decoder,用于從選定的檔案值出發向前和向后生成答復。
  3. 一個位置檢測器 position detector,用于預測選定的檔案值后要從哪個位置開始解碼,把位置傳遞給 decoder。

整體:

  1. 給定一個提問后,先看是否需要用檔案內容回答,不需要的話,就用通常的 seq2seq 來生成回復;
    需要的話,先用 Profile Detector 選擇合適的 key-value。
  2. 然后用 Bidirectional Decoder 以這個 value 為起點向前向后生成答復。
  3. 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 frP 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][深度學習][強化學習][神經網絡][機器學習][自然語言處理][聊天機器人]

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 聊天機器人[http://lib.csdn.net/base/robot](也可以稱為語音助手、聊天助手、對話機器...
    mlion閱讀 2,813評論 1 11
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,923評論 18 139
  • 原本中秋假期想去浙西清涼山,結果查天氣預報下雨;突然想起來以前看過的一篇五臺山徒步的帖子,再看預報是好天氣,于是就...
    youngspring1閱讀 336評論 0 2
  • 大暑。婺江的天空,竟是新鮮飽滿的天藍色,比起深邃的蔚藍,這一抹天藍像一頑皮的孩子,在白云間雀躍涌動著,竟讓人心潮澎...
    靜默如梅閱讀 513評論 4 4
  • 坐在D367上,我開始了第一篇日記。不斷循環的列車通告還是讓人有些煩躁,不過念白中一次明顯的吞咽聲還是讓我不懷好意...
    DerrickWang閱讀 164評論 0 1