A Dataset for Research on Short-Text Conversation

本文是一篇2013年的bot文章,題目是A Dataset for Research on Short-Text Conversation,作者來自中科大和華為諾亞方舟實驗室。

本文最大的貢獻在於release出一個大型短文本對話語料,並且提出了一種基於檢索的對話生成模型。到底是否是第一個用檢索的方式來解決bot問題我不得而知,可以確定的一點是很多現在活躍在市面上的「逗逼」bot都是基於這個模型做的。

語料的數據來自於新浪微博,大概的收集過程如下圖:

首先選擇10個NLP領域比較活躍的用戶,然後依次作為種子用戶,進行爬取,直到獲得3200與NLP和ML相關的用戶,然後抓取每個用戶的微博和下面的評論,時間跨度為2個月。這樣定向爬取的好處是選擇的用戶和所發表的微博涉及的領域比較窄,而不至於天馬行空什麼都有。

數據準備好了之後,就是模型部分。模型一共分為兩步,第一步是選擇出評論候選列表,第二步是在候選列表中進行排序。候選列表選擇一共分為三個baseline模型,如下:

1、Post-Response Semantic Matching

根據微博和評論之間的語義匹配程度選擇出10個候選評論。

2、Post-Response Similarity

根據微博和評論之間的相似度選擇出10個候選評論。

3、Post-Post Similarity

根據微博和微博之間的相似度選擇出10個候選評論,即用相似微博的評論作為候選評論。

給定一條微博之後,模型會通過三個baseline各選擇10條評論,構成一個<=30的評論候選列表,然後進行標註。標註工作是將評論分為兩類,即suitable和unsuitable,即正樣和負樣。判斷一個評論是否是suitable一共有三個準則:(1)semantic relevance,這個準則是判斷微博和評論是否語義相關;(2)logic consistency,這個準則是判斷微博和評論是否在邏輯上是一致的;(3)speech act alignment,這個準則是判斷微博和評論在act方面是否是對齊的。

接下來就是通過標註數據進行排序,排序學習的目標是讓正例的score比負例的score更大。

基於檢索的bot解決方案是一種常見的方案,這種方案的重點在於知識庫的質量,也就是那個database,一個query對應多個reply。如果只是簡單的對話,效果會不錯,而且如果知識庫很有特點的話,reply經常會有一些意想不到的好玩的話,小黃雞當年在人人網上火了好一陣子。但稍微複雜的問題,知識庫的應變能力差的缺點就暴露出來了,比如query中有named entity,並且這個entity在知識庫中沒有出現過,這時reply就會出現牛頭不對馬嘴的情況,解決單輪對話都存在很大的缺陷,那麼解決多輪對話就會更困難。雖然說,可以通過做query和reply、query和query之間語義層面相似度的計算,比如用一些成熟的deep learning技術來做。但根本上並沒有解決這種方法的弊端,倒是非常垂直的閉域bot可以考慮用這個方案加上一些策略來解決,比如企業客服bot,因為知識庫規模小,根據企業的資料和一些過往的用戶對話數據可以建設一個質量不錯的知識庫,從而得到質量不錯的bot。

一點思考,歡迎交流。

推薦閱讀:

PaperWeekly 第47期 | 開學啦!咱們來做完形填空:「訊飛杯」參賽歷程
Hey,在 MOOC 上你該這樣學習 | 論文訪談間 #11
嘿,朋友,老夫掐指一算你就是「水軍」 | 論文訪談間 #13
評測時如何構造訓練數據分布與測試數據分布一致
多輪對話之對話管理(Dialog Management)

TAG:自然语言处理 | 深度学习DeepLearning | 机器学习 |