
基于大數據與深度學習的自然語言對話
我們在日常生活中經常使用自然語言對話系統,比如蘋果Siri?,F在的對話系統多數只能做單輪對話,可以幫助用戶完成一些簡單的任務,如問天氣,查股票(如果做多輪對話,也是在單輪對話的基礎上加一些簡單處理)。實現這些自然語言對話系統的基本技術可以分為兩大類,基于規則的和基于數據的。你也許想知道對話系統的基本原理是怎樣的?特別是如何用數據驅動的方式構建一個對話系統?
最近基于數據的自然語言對話技術取得了突破性的進展。我們發現,利用深度學習和大數據,可以很容易地構建一個單輪對話系統,自動生成對話,并且取得驚人的好效果。比如,用5百萬微博數據可以構建一個系統,用戶給出一句話,這個系統可以自動生成一句回答。用戶輸入“我想買一部三星手機”,系統回答“還是支持一下國產的吧”,等等。你也許想知道這是如何實現的?能達到什么樣的水平?
本文試圖系統地回答以上問題。首先指出,自然語言對話將是人們信息訪問的主要手段,信息檢索領域的主要研究范式。之后,定義自然語言對話任務,對相關技術進行分類,列舉主要技術挑戰。接著,詳細介紹如何構建基于數據的對話系統。最后,詳細介紹最新的基于深度學習的對話技術。當中也介紹深度學習在自然語言表示學習中的最新成果。
“科學的發展依賴于間斷性、革命性的變化”,這是科學哲學與科學史學家托馬斯·庫恩(Thomas Kuhn)的名言。庫恩認為科學的每個領域都有不同的“范式” (paradigm),它們有著不同的研究對象、基本概念、解決問題的手段,甚至不同的研究者群體,比如,在物理學領域,量子力學與牛頓力學就屬于不同的范式??茖W的發展不是連續的,而是間斷的,量子力學并不是在牛頓力學基礎上發展起來的。當一個領域發生革命性的變化的時候,一定有新的范式產生,庫恩稱之為范式轉移(paradigm shift)[1]。
信息檢索是計算機科學的一個分支,研究和開發計算機幫助用戶管理、訪問、使用信息的技術??v觀信息檢索幾十年來的發展歷程,可以看到它已經歷了兩個主要范式:圖書館搜索和互聯網搜索。七十年代研究的重點是如何幫助用戶在圖書館快速地查找文獻資料,有不少該領域基本技術被開發出來,比如向量空間模型。九十年代研究的重點是如何幫助用戶在互聯網上迅速地訪問想訪問的網頁,有許多創新,鏈接分析、排序學習、語義匹配、日志分析等技術被開發出來。
2011年蘋果公司發布了語音助手系統Siri,標志著一個新的時代的開啟。自然語言對話成了人們訪問信息的一個新的手段?,F在,移動設備成為個人計算的主流,越來越多的用戶通過移動設備訪問信息。在移動設備上,自然語言對話是人機交互最自然的,最有效的方式。另一方面,自然語言對話的技術,雖然達到了一定可用的水平,但還不成熟,不能很好理解用戶的意圖,不能充分滿足用戶的需求。這就意味著,圍繞自然語言對話有很多待解決的具有挑戰性的問題,它自然成為信息檢索領域研究的一個新的重點,一個新的范式。
自然語言對話可以形式化為以下問題。有一個計算機系統(對話系統),一個用戶。用戶通過自然語言,如中文、英文,與對話系統進行多輪交談,系統幫助用戶完成一個任務,特別是訪問信息的任務。
自然語言對話,即計算機和人通過人類的語言進行交互,是實現人工智能的標志,其研究與開發有著很長的歷史。迄今為止,有許多自然語言對話系統被開發出來,在受限的條件下,可以與用戶進行一定的對話,幫助用戶完成簡單的任務。
現在的對話系統大多只做單輪對話,如果做多輪對話,也是在單輪對話的基礎上做一些簡單的處理。技術主要包括基于手寫規則的,和基于數據驅動的。比如,六十年代就有著名的Eliza系統問世,基于手寫規則,能與用戶進行簡單的對話,使許多用戶感覺到好像是在跟真人進行交流。Siri之后,有許多對話產品出現,包括谷歌Now,微軟Cortana。國內有許多聊天機器人發布,如微軟Xiaobing,受到廣泛矚目。據我們所知,大部分的對話系統都是基于規則,或者基于數據的。
自然語言對話的研究與開發,雖然取得了一定的進展,但離實現人工智能的理想,甚至離實現在復雜場景下的實用化還有很大距離。自然語言對話有許多應用場景。比如,如果用戶能夠通過對話在智能手機上完成訂酒店之類的復雜任務,那么手機就會真正成為用戶的得力助手。這里的核心問題是如何“理解”用戶的語言,幫助用戶完成任務?,F在的語音助手還不能做到這一點。再比如,許多公司有呼叫中心,在電話上回答用戶提出的各種問題。如果能夠實現自動呼叫中心,機器來回答用戶的問題,就能大大提高服務的效率和質量。這里的核心問題也是自然語言對話。
必須指出,重要的是需要將自然語言對話作為科學問題研究,而不能停留在工程的技巧上。作為科學問題研究,應該有幾個特點:首先是建立數學模型解決問題,其次是實驗結果能夠再現,還有復雜的問題被還原成簡單的問題解決。
大數據時代為自然語言對話研究提供了一個新的機會,大量的對話數據可以從實際的場景獲得。一個重要的研究問題是,我們是否可以利用大數據,構建一個數據驅動的自然語言對話系統。比如,記錄呼叫中心話務員與客戶的對話,用這些數據,是否可以構建一個自動的呼叫中心。
計算機理解人的語言還是非常困難的,即使是可能的。一個克服這個挑戰的方法就是用數據驅動的方式構建對話系統。搜索技術的成功給我們的一個啟示,盡量避開自然語言理解,用數據驅動的方式解決問題,是人工智能技術實用化的一個有效途徑。我們可以把對話系統的主要部分用數據驅動的方式構建,另一方面,只實現輕量級的知識使用、推理、對話管理。
我們可以把自然語言對話分成單輪對話和多輪對話進行研究。單輪對話是基礎,也應該是研究的第一個重點。單輪對話可以是基于規則的,或基于數據的?;跀祿姆椒ㄓ挚梢苑殖苫跈z索的方式和基于生成的方式。下面作一簡單介紹。
圖1 基于檢索的對話系統
圖1是基于檢索的單輪對話系統。大量的單輪對話數據存儲在索引里,每一個實例包括一個信息和一個回復。用戶輸入一個信息,檢索模塊從索引中檢索相對相關的信息和回復,并將最適合的回復返給用戶,形成一輪對話。而檢索系統本身是通過機器學習構建的。
圖2 基于生成的對話系統
圖2是基于生成的單輪對話系統。學習模塊利用大量對話數據構建生成模塊。當用戶給定一個信息時,生成模塊針對該信息自動生成一個回復。
最近深度學習技術有了突飛猛進的發展,為語音識別、圖像識別、自然語言處理(包括自然語言對話),提供了強大的工具,為這些領域今后的快速發展提供了新的契機。事實上,若干個基于深度學習的對話系統已被開發出來,受到了廣泛矚目。
深度學習為自然語言處理帶來的本質突破是語句的語義表示學習,也是基于深度學習的對話技術的基礎,這里做一簡要介紹。
在自然語言處理領域,一個普遍使用的技術是用實數值向量來表示單詞的語義,其基本假設是單詞的語義可以由與其共現的其他單詞來決定。比如,統計每一個單詞與其它單詞在一個數據集的共現頻率,并將其表示為向量,這些向量能夠很好地表示單詞的語義相似性,兩個單詞向量的余弦相似度越大,兩個單詞的語義就越相近。
最近自然語言處理與深度學習的一個新發現是,我們可以通過深度學習用實數值向量來表示語句的語義。如圖3所示,兩句話“John loves Mary”和“Mary is loved by John”的語義向量就相近,而這兩句話的語義向量就與“Mary loves John”的語義向量相遠。
圖3 語句的語義可以由向量空間中的實數值向量表示
下面具體地講述四個深度學習方法:單詞嵌入(word embedding)、循環神經網絡(Recurrent Neural Network)、卷積神經網絡(Convolutional Neural Network)、遞歸神經網絡(Recursive Neural Network)的原理,它們是語句語義學習的強有力工具。
第一個工具是單詞嵌入,其中最常用的是稱為Word2Vec的工具[2]。如果僅僅基于一個單詞和其他單詞的共現信息構建該單詞的語義表示向量,那么就會得到一個高維稀疏的向量。這種高維的向量不適合用于語句語義表示的學習,因為它有過多的參數。我們的問題是如何將高維的單詞向量壓縮成為低維的單詞向量。Word2Vec提供了一個有效的方法,它對應著以下的非監督學習方法[3]。
假設在一個數據集上獲得單詞在不同上下文出現的互信息可以由一個矩陣來表示,每一行對應著一個單詞,每一列對應著一個上下文,每一個元素表示相應的單詞與上下文的互信息,表示該單詞與上下文共同出現的可能性大小。因為這個矩陣是稀疏的,可以對其進行矩陣分解,即將原來的矩陣近似地表示為兩個矩陣的乘積的形式。這時得到的左矩陣就可以作為單詞嵌入使用。它是一個低維稠密矩陣,每一行對應著一個單詞,每一列對應著一個話題。
圖4 循環神經網絡
第二個工具是循環神經網絡(RNN)[4]。RNN把一句話看成單詞的序列,每個單詞由一個向量表示,每一個位置上有一個中間表示,由向量組成,表示從句首到這個位置的語義。這里假設,每一個位置的中間表示由當前位置的單詞向量以及前一個位置的中間表示決定,通過一個神經網絡模型化。RNN把句末的中間表示當作整個句子的語義表示。參照圖4。RNN與隱馬爾可夫模型有相似的結構,但具有更強的表達能力,中間表示沒有馬爾可夫假設,而且模型是非線性的。加入長短期記憶(Long Short Term Memory,LSTM)機制, RNN可以處理遠距離依存關系,能夠更好地表示整句的語義。
圖5 卷積神經網絡
第三個工具是卷積神經網絡(CNN)[5,6]。CNN對句子進行掃描,抽取特征,選擇特征,最后組合成句子的語義表示。首先從左到右用一個滑動窗口對句子進行掃描,每個滑動窗口內有多個單詞,每個單詞由一個向量表示。在滑動窗口內,通過卷積(convolution)操作,進行特征抽取。這樣,在各個位置上得到一系列特征。之后再通過最大池化(max pooling)操作,對特征進行選擇。重復以上操作多次,得到多個向量表示,將這些向量連接起來得到整個句子的語義表示。參照圖5。同一卷積層內參數是共享的,也就是同一層的卷積操作是相同的,這也就保證了在局部領域進行相同的特征抽取。
圖 6 遞歸神經網絡
第四個工具是遞歸神經網絡(ReNN)[7]。ReNN假設對語句進行句法分析,得到句法樹。句法樹的每個節點上有一個向量中間表示。父節點的表示由其子節點的表示決定,通過神經網絡模型化。而根節點的表示就是整個句子的語義表示。參照圖6。句法樹上的中間表示可以在句法分析的過程中得到,比如在最大間隔分析(max margin parsing)。
華為諾亞方舟實驗室是最早用深度學習技術開發自然語言對話系統的研究機構之一,提出了若干個具有代表性的模型,這里做一簡單介紹。我們開發了基于檢索的單輪對話系統和基于生成的對話系統。
如圖1所示,基于檢索的方式將對話看作搜索問題。系統索引大量對話數據,每一個實例由單輪對話中的一對信息與回復組成。給定一個信息,系統從索引中找出相關的信息與回復對,計算輸入信息與檢索到的回復之間的匹配度,基于匹配度對回復進行排序,并將排在最前的回復返回。輸入信息與每一個回復之間的匹配度計算,由事先學好的多個匹配模型完成?;貜偷呐判蛴墒孪葘W好的排序模型決定。這里的關鍵問題是如何實現不同的匹配模型。我們提出了兩個基于深度學習的匹配模型。
圖7 匹配模型Deep Match CNN
第一個匹配模型稱為Deep Match CNN [5],如圖7所示。這個模型可以判斷給定的兩句話和是否可以成為一次單輪對話中的信息和回復。將兩句話輸入到CNN模型,可以得到它們的語義表示(實數值向量)和。之后,再將這兩個語義表示輸入到一個多層神經網絡,判斷兩句話語義的匹配程度。這就是Deep Match CNN模型的基本想法。如果有大量的信息和回復對的數據,那么就可以訓練這個模型。這里介紹的是最基本的模型,還可以對它進行擴展,這里不予介紹,詳見[5]。
圖8 匹配模型Deep Match Tree
第二個匹配模型稱為Deep Match Tree [8],如圖8所示。這個模型,基于句法分析結果,判斷兩句話是不是可以形成一輪對話中的信息和回復。先對兩句話和進行句法分析,得到兩個句法樹和,再看兩個句法樹的子樹是否滿足各種匹配模式。比如“how do you think about Hong Kong”與“the food in Hong Kong is great”就滿足匹配模式“how do you think about X”與“the Y in X is great”。之后將匹配結果輸入到一個多層的神經網絡,這個神經網絡的輸入層的每個神經元對應一個匹配模式。匹配模式事先從數據中挖掘出來,有上百萬個。如果輸入的兩句話能夠滿足某一模式,其對應的神經元取值為一,否則取值為零。神經網絡最后判斷兩句話的匹配程度。如果兩句話能夠滿足許多配模模式,那么這兩句話最終形成一輪對話的可能性就會很高。Deep Match Tree模型也可以通過大量信息與回復對的數據訓練得到。
如圖2所示,基于生成的方式將對話看作基于信息產生回復的問題。系統利用大量對話數據構建生成模型,給定一個信息,系統自動生成一個回復。這里的關鍵問題是如何實現這個生成模型。我們提出了一個基于深度學習的生成模型。
圖9 生成模型Neural Responding Machine
這個生成模型稱為Neural Responding Machine(NRM)[9],如圖9所示。NRM的基本想法是這樣的。將輸入的一句話看作一個單詞表示的序列,通過編碼器,是一個RNN模型,將轉換成一個中間表示的序列,再通過解碼器,是另一個RNN模型,將轉換成一個單詞的系列,作為一句話輸出。NRM模型也可以通過大量信息與回復對的數據訓練得到。
基于檢索的對話系統和基于生成的對話系統各有其特色。生成系統比檢索系統的準確率會高一些,在一個標準數據集上,檢索系統的準確率是70%,生成系統的準確率是76%。但檢索系統比生成系統會更安全一些,不會返回語法不通的句子。這里的準確率的定義是,人對返回結果做評價,如果回復可以成為一輪對話,就認為是正確,否則是錯誤。如何對自然語言對話系統進行客觀評價,仍然是一個需要進一步深入研究的課題。
同時指出,基于深度學習的生成模型比傳統的基于機器翻譯的模型在準確率上有大幅度的提升,從26%提高到76%[9]。深度學習在圖像處理、語音處理等領域有許多大幅度提升性能的實例,在自然語言處理領域這樣的事例還不多,在機器翻譯等任務上的提升往往沒有這么高。
令人驚訝的是,基于生成的對話系統可以返回許多有趣的回復,超出想象。表1給出一些系統生成的例子??梢钥闯?,在大部分情況下,系統能夠生成比較“自然”的句子,構成一個自然的對話。
生成系統產生的回復例如下:
本文介紹了利用大數據與深度學習構建自然語言對話系統的技術。最近的深度學習對話的一些進展確實令人振奮。我們還不知道能沿著這條路,是否能達到完全實現、或者局部實現自然語言對話的目標,但是至少我們面前出現了不少可以嘗試的路徑,不少可以期待的機會。
數據分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
解碼數據基因:從數字敏感度到邏輯思維 每當看到超市貨架上商品的排列變化,你是否會聯想到背后的銷售數據波動?三年前在零售行 ...
2025-05-23在本文中,我們將探討 AI 為何能夠加速數據分析、如何在每個步驟中實現數據分析自動化以及使用哪些工具。 數據分析中的AI是什么 ...
2025-05-20當數據遇見人生:我的第一個分析項目 記得三年前接手第一個數據分析項目時,我面對Excel里密密麻麻的銷售數據手足無措。那些跳動 ...
2025-05-20在數字化運營的時代,企業每天都在產生海量數據:用戶點擊行為、商品銷售記錄、廣告投放反饋…… 這些數據就像散落的拼圖,而相 ...
2025-05-19在當今數字化營銷時代,小紅書作為國內領先的社交電商平臺,其銷售數據蘊含著巨大的商業價值。通過對小紅書銷售數據的深入分析, ...
2025-05-16Excel作為最常用的數據分析工具,有沒有什么工具可以幫助我們快速地使用excel表格,只要輕松幾步甚至輸入幾項指令就能搞定呢? ...
2025-05-15數據,如同無形的燃料,驅動著現代社會的運轉。從全球互聯網用戶每天產生的2.5億TB數據,到制造業的傳感器、金融交易 ...
2025-05-15大數據是什么_數據分析師培訓 其實,現在的大數據指的并不僅僅是海量數據,更準確而言是對大數據分析的方法。傳統的數 ...
2025-05-14CDA持證人簡介: 萬木,CDA L1持證人,某電商中廠BI工程師 ,5年數據經驗1年BI內訓師,高級數據分析師,擁有豐富的行業經驗。 ...
2025-05-13CDA持證人簡介: 王明月 ,CDA 數據分析師二級持證人,2年數據產品工作經驗,管理學博士在讀。 學習入口:https://edu.cda.cn/g ...
2025-05-12CDA持證人簡介: 楊貞璽 ,CDA一級持證人,鄭州大學情報學碩士研究生,某上市公司數據分析師。 學習入口:https://edu.cda.cn/g ...
2025-05-09CDA持證人簡介 程靖 CDA會員大咖,暢銷書《小白學產品》作者,13年頂級互聯網公司產品經理相關經驗,曾在百度、美團、阿里等 ...
2025-05-07相信很多做數據分析的小伙伴,都接到過一些高階的數據分析需求,實現的過程需要用到一些數據獲取,數據清洗轉換,建模方法等,這 ...
2025-05-06以下的文章內容來源于劉靜老師的專欄,如果您想閱讀專欄《10大業務分析模型突破業務瓶頸》,點擊下方鏈接 https://edu.cda.cn/g ...
2025-04-30CDA持證人簡介: 邱立峰 CDA 數據分析師二級持證人,數字化轉型專家,數據治理專家,高級數據分析師,擁有豐富的行業經驗。 ...
2025-04-29CDA持證人簡介: 程靖 CDA會員大咖,暢銷書《小白學產品》作者,13年頂級互聯網公司產品經理相關經驗,曾在百度,美團,阿里等 ...
2025-04-28CDA持證人簡介: 居瑜 ,CDA一級持證人國企財務經理,13年財務管理運營經驗,在數據分析就業和實踐經驗方面有著豐富的積累和經 ...
2025-04-27數據分析在當今信息時代發揮著重要作用。單因素方差分析(One-Way ANOVA)是一種關鍵的統計方法,用于比較三個或更多獨立樣本組 ...
2025-04-25CDA持證人簡介: 居瑜 ,CDA一級持證人國企財務經理,13年財務管理運營經驗,在數據分析就業和實踐經驗方面有著豐富的積累和經 ...
2025-04-25在當今數字化時代,數據分析師的重要性與日俱增。但許多人在踏上這條職業道路時,往往充滿疑惑: 如何成為一名數據分析師?成為 ...
2025-04-24