《A Knowledge-Grounded Neural Conversation Model》

abstract

如今的大多數模型均可以被應用在閒聊場景下,可是尚未證據代表他們能夠應用在更有用的對話場景下。這篇論文提出了一個知識驅動的,帶有背景知識的神經網絡對話系統,目的是爲了在對話中產生更有意義的回覆。以seq2seq模型爲基礎(傳統的seq2seq只能學習到句子的骨架而不包括有效的信息),用對話歷史和外界的facts去規範回答。模型具備通用性,能夠應用在open-domain。
1數據庫

introduction

這個模型不是像傳統的對話系統有明確的任務目標,經過少許數據去訓練在必定的回覆骨架下的預約義好的槽值填充,也不是傳統的沒什麼有用信息的閒聊,它的目標是和用戶一同完成一個目標不是特別明確,可是有信息含量的對話(上述兩種的綜合),外部數據的鏈接來自於網絡文本數據,不是數據庫裏的結構化數據,所以擴充外部數據更容易。 這是第一個大規模,徹底數據驅動的充分高效利用外部知識的神經網絡模型。網絡

background

構建徹底數據驅動的轉換模型的主要挑戰是,世界上大多數知識都沒有在任何現有的會話數據集中徹底表示。雖然得益於社交媒體的快速發展,這些數據集(Serban et al.2015)的規模已經大幅增加,但這些數據集仍然遠遠不能和維基百科,Foursquare,Goodreads,或IMDB相比。該問題極大地限制了現有數據驅動的會話模型的發展,由於它們必須如圖1中那樣迴避或偏向地響應,尤爲是對於在會話訓練數據中表現不佳的那些實體。另外一方面,即便包含大多數實體的會話數據可能存在,咱們仍然會面臨挑戰,由於這樣的大型數據集難以應用於模型培訓,而且數據中展現的許多會話模式(例如,對於相似實體)將會冗餘的。 論文的方法旨在避免冗餘,並嘗試更好地歸納現有的會話數據,如圖2所示。雖然圖中的對話涉及特定的場所,產品和服務,但會話模式是通常的,一樣適用於其餘實體,這樣的話對於以個新的場景,咱們只須要去擴充咱們的facts庫,而不用從新訓練整個模型。(傳統對話系統會利用預約義好的槽值去填充對話骨架(圖中的加粗文本))
2
學的是對話行爲,變化的是factsapp

model

3
根據句子中的關鍵詞在facts庫中檢索和本對話相關的facts。 模型的訓練使用multi-task學習,分爲兩部分:dom

  • 任務一:有外部信息的回覆,encoder的輸入是({f1,f2,...,S},R)
  • 任務二:hi的回覆:how are you之類無有效信息的閒聊回覆,encoder的輸入時(S,R)

分爲兩部分作有三個好處:學習

  • 當只基於對話歷史的encoder,decoder訓練完以後,再進行包括facts的encoder,decoder的訓練時,就能夠進行warm start training,
  • 不一樣數據集靈活應變
  • 若是將任務一的回覆替換爲某一fact(R= fi),這就使得任務一類似於一個自編碼器,進而使得產生的回覆更加有效。more informative
dialog encoder and decoder

encoder和decoder都使用RNN,cell is GRU測試

facts encoder

memory-network-model以及end-to-end memery networks演化而來(一個實體在對話中被提到了--以後基於用戶輸入和對話歷史對facts進行檢索,進而生成答案)this

datasets

  • twitter:conversational
    (no facts:key to learning the conversational structure or backbone.)
  • foursquare :non-conversational
    (tip date:comments left by customers about restaurants and other, usually commercial, establishments.)
  • 1M grounded dataset

tip爲foursquare中的詞,handles爲twitter上的對話中對應的多個tip的「slot」,例如在twitter中的某句話,@handle 很便宜,物美價廉。這裏的handle能夠對應的tip有不少,tip = ‘衣服’ or tip = ‘食品’。編碼

輪數爲兩輪的對話,依據foursquare中的tipdata,在twitter中找到相關的handles和其相關的包含foursquare中實體的對話。另外,這個對話中的第一輪包括一個商戶名字的句柄(用@表示)或者和句柄匹配的哈希標籤。由於對話目的是模擬真實用戶之間的對話,因此把那些包含,由用戶使用在foursquare中的句柄生成的回覆,的對話刪掉(也就是說這句話是用戶經過一些詞在軟件中讓軟件生成的,而不是他本身嘴裏說出來的)。lua

  • grounded conversation dataset: 對於每一個handle,有兩種打分function:
    • 基於全部包含這個handle的tips訓練的1-gram LM的困惑度
    • 卡方分數,用來測量每一個token包含的handle相關的內容有多少

經過這兩個分數和人工選擇,最後選出4k的對話數據做爲有效的數據集用來作validation dataset和測試集,這些對話須要從訓練數據中抽離。
15k(way1)+15k(way2)+15k(random)->10k(sampled)->4k(human-judge reranking)spa

實驗

  1. 多任務訓練:
  • FACTStask:We expose the full model to ({f1,...,fn,S},R)training examples.
  • NOFACTStask: We expose the model without fact en-coder to (S,R) examples.
  • AUTOENCODERtask: This is similar to the FACTStask,except that we replace the response with each of the facts,i.e., this model is trained on({f1,...,fn,S},fi)exam-ples. There arentimes many samples for this task thanfor the FACTStask.4
  1. decoding and reranking
    驗證集: This yields the following reranking score:
    logP(R|S,F) +λlogP(S|R) +γ|R|
  • the log-likelihoodlogP(R|S,F)according to the decoder;
  • word count;
  • the log-likelihoodlogP(S|R)of the source giventhe response.
    λ and γ are free parameters, which we tune on our development N-best lists using MERT (Och 2003) by optimizing BLEU.
  1. evaluation matrics
    BLEU automatic evaluation,perplexity,lexiel diversity
    Automatic evaluation is augmented with human judgments of appropriateness and informativeness

results

image
image image

  • ==SEQ2SEQ==: Trained on task NOFACTS with the 23M gen-eral conversation dataset. Since there is only one task, it is not per sea multi-task setting.
  • ==SEQ2SEQ-S==: SEQ2SEQ model that is trained on the NOFACTS task with 1M grounded dataset (without the facts)
  • ==MTASK==: Trained on two instances of the NOFACTS task, respectively with the 23M general dataset and 1M grounded dataset (but without the facts). While not an in-teresting system in itself, we include it to assess the effect of multi-task learning separately from facts.
  • ==MTASK-R==: Trained on the NOFACTS task with the 23M dataset, and the FACTS task with the 1M groundeddataset.
  • ==MTASK-F==: Trained on the NOFACTS task with the 23Mdataset, and the AUTOENCODERtask with the 1M dataset.
  • ==MTASK-RF==: Blends MTASK-F and MTASK-R, as it incorporates 3 tasks: NOFACTS with the 23M generaldataset, FACTSwith the 1M grounded dataset, and AU-TOENCODER again with the 1M dataset.
相關文章
相關標籤/搜索