北京大學嚴睿:虛火過旺?揭祕人機對話的技術現狀與挑戰

NO IMAGE
1 Star2 Stars3 Stars4 Stars5 Stars 給文章打分!
Loading...

摘要:隨著大資料和深度學習技術的發展,建立一個自動的人機對話系統作為我們的私人助理或聊天夥伴,將不再是一個幻想。而對話系統是否真的像媒體那樣報道的“未來已來”呢?目前人機對話系統在研究領域有哪些問題和挑戰呢?本文就帶你瞭解人機對話系統的技術現狀與挑戰。在《雲棲大講堂第三期|未來人機互動技術沙龍》上,北京大學助理教授嚴睿站在學者的角度做出瞭解答。

演講嘉賓簡介:

嚴睿,北京大學電腦科學與技術研究所研究員,北京大學助理教授,博士生導師,前百度公司資深研發,華中師範大學與中央財經大學客座教授與校外導師。主持研發多個開放領域對話系統和服務類對話系統,發表高水平研究論文近50篇,擔任多個學術會議(KDD, IJCAI, SIGIR, ACL, WWW, AAAI, CIKM, EMNLP等)的(高階)程式委員會委員及審稿人。

以下內容根據演講嘉賓PPT以及視訊整理而成(雲棲社群做了不修改原意的編輯)。

國內外對話系統的應用現狀

目前在國內,對話系統是非常熱門的,下圖中就列舉了一些對話系統,比如大型網際網路公司旗下的阿里小蜜、百度的度祕等,當然還有很多初創公司也都進軍了對話系統,比如比較知名的三角獸等。

國外的情況與國內大致相同,因為大家都明白對話系統是一塊大蛋糕,所以大家都希望能夠分到一杯羹。如今的市場上沒有任何一個公司能夠說自己的能力足夠吃下整塊蛋糕,所以各個公司都蜂擁而上,都希望在前沿風口上抓住可能的機會,抓住更多的使用者。國外的對話系統中,亞馬遜的echo做的相當不錯,可以說是點爆了智慧裝置的市場,當然還有微軟小冰團隊創造出的宅男女神可以說拯救了無數的單身男青年,而且目前已經在中國、日本、印尼等全球5個國家都有了本地版本,可以說小冰在把開放領域聊天機器人變現的這條路上走在了世界前列。

對話系統的問題定義

回到主題上來,既然要做一個對話系統,那麼首先需要了解對話的流程。對於對話流程最簡單的定義就是針對使用者的輸入,產生一個輸出。而產生怎樣的輸出則屬於演算法需要考慮的問題,比如需要用到哪些資訊作響應。因為對話是一個連續的過程,所以上下文是非常重要的,回覆的話需要考慮上下文的語境,此外還需要從知識庫中獲取資訊,這是因為如果對話系統不瞭解人類世界的知識,那就變成了胡說八道,這樣對話也無法繼續進行下去。當然,在對話的過程中還需要一些語義邏輯資訊,對話系統應該可以順著邏輯主線聊天,否則就會讓人覺得人格分裂。而以上這些問題就使得對話系統實現起來變得困難。

而為何對話系統突然在最近幾年的時間內變紅了呢?這可能是由於資料驅動的作用,如今可以獲得大量的資料,使得機器能夠學習出人類對話的模式。當然,現在有大量的機器以及強大的計算資源和高效的機器學習演算法作為支撐,這就使得人機對話成為了可能。

然而,對話系統源自於人類對於直覺行為的認知,而目前對話系統做的不夠好的原因是人類對於如何進行對話還沒有充分的認識。大家可以想象一下,人與人之間的對話基本上也都來自於直覺,很少會思考為什麼會產生這樣的回答,所以人類對於對話過程並不是很清晰,還處於一個認知的瓶頸期。對話系統也有一些需要考慮的任務點,比如現在能夠解決的比較好的相關性,目前至少產生的回答能夠與上下文是相關的,當然還有更多的點比如像趣味性,如果和機器聊天很無聊,那麼人就不會繼續聊下去了。此外還有資訊量,人與人之間聊天是希望達到資訊互動的過程,但是如果和對話機器人聊天,機器人提供的都是無營養的內容,可能聊天也就沒有了意義。以上這些問題就是在對話系統需要解決的問題,但是目前並沒有都被很好地解決。

對話系統分類

對話系統按照領域分類,可以分為開放領域和垂直領域。開放領域通常指的是聊天機器人,也就是隨便聊什麼都可以。而更符合應用性並且更具有變現潛質的則是垂直領域,比如在醫療、金融以及法律等領域的對話系統,它能夠解決各種問題的對話。但是值得注意的一點就是對於這些垂直領域而言,公開的資料比較難以獲取,當然雖然這裡存在瓶頸,但是並不意味著未來沒有其他方法能夠獲取垂直領域的資料。

按回複方式進行分類,目前工業界的主流是檢索式對話系統,基本上就是獲取大量的人與人對話的語料,當系統接收到一句話,則判斷語料中是否存在類似的回答,如果存在則直接將回答返回即可。檢索式對話系統是比較可控的,因為語料庫中都是人類寫的回答。第二種就是生成式對話系統,這是目前的潮流和趨勢,但是該技術目前還不夠成熟。這種方式就是通過大量的語料學習出當接收到人發來的一句話應該如何回答,系統可能就會為這句話產生一個新的回答,而不需要一定是原來語料庫中包含的,這樣就是生成式對話系統。但是其中也存在一些問題,即便神經網路技術將生成式對話的水平向上提升了一大截,但是有時候獲得的結果還是不像人話。對話系統的可行做法就是將現有主流系統與未來系統進行結合,使得其可用。

按照場景進行分類,一般會分為單輪對話和多輪對話。單輪對話就是隻考慮當前的使用者輸入併產生相應的回答,通常在做初步研究的時候可以使用這種最簡單的假設,但是在實際應用的時候卻不應該採用這種假設,因為一般而言對話是連續的,也是多輪互動的。

按照方式分類則比較有意思,通常情況下現在的對話系統都是被動式的,接收到人發來的訊息之後,對話系統再產生一個回答。但是實際上人與人的對話不是這樣的,有可能某一方在對話中會帶節奏,也就是挑起一些新內容,在對話中加入主動因素,有意識地進行互動。

對話系統的簡易流程

學術界構建的流程相比於工業界是非常抽象的,大致就是來了語音輸入,先將其轉化為文字,進行對話管理以及意圖理解,轉化成回答然後輸出。學術界構建的流程不外如是這樣的抽象流程,而在工業界具體應用的時候就會做得非常細緻,每一個步驟都會進行詳細的設計和處理,這就是學術界和工業界的區別。

對話系統的架構
對話系統會有一個線下的過程,獲取資料以及建立檢索模型和深度模型都是線上下完成的。當然也會有線上過程,當使用者來了一句話就需要為其產生相應的回答並返回給使用者。

資料獲得
對於對話系統而言,資料很重要,所以首先分享一下學術界可以獲得的公開資料。學術界和企業不同,因為企業界有真實的使用者和日誌等資料,而學術界沒有,只能拿到一些公開的資料,比如新浪微博、豆瓣以及貼吧等的資料。這個過程是比較複雜的,首先要爬取人與人之間的對話資料,做過濾和清洗,抽取出對話對以及對話的模式。

檢索式對話

檢索式對話-背景

檢索式對話的思想非常簡單,無非就是來了一句輸入需要產生一個回答,也就是將對話進行匹配,只要兩者能夠匹配成功那就是一個好的回答。基本思想就是將輸入和候選輸出投射到一個語義空間中,判斷兩者是否相似,如果相似那就是好的,否則就不是好的回答。對於是否相似的計算而言,傳統方式就是基於One-hot,某一個詞出現就是1,不出現就是0,這是一個比較陳舊的表達方式。而當深度學習崛起之後,大家開始使用表示學習,也就是學習出一個embedding然後嵌入,無論是word embedding還是sentence embedding都是表示抽象的,也可以是基於抽象表示的相似度計算。

檢索式對話-典型匹配模式
下圖展現了華為早期做的判斷兩句話是否相似的工作,其提供了兩種比較好的Architecture,一種是將每句話單獨做成一個表示來計算相似度,另一種是在匹配的過程中通過更細膩的Intention來做相似度計算。這兩種Architecture在後面的檢索式對話都有上都有被沿用。

檢索式匹配-遞迴表達

在檢索式匹配裡面有一些比較有意思的點。通常情況下進行匹配是將一句話整個輸入完成之後得到最終狀態,之後計算其匹配,但是藉助計算機中常用的遞迴思想可以將中間的狀態拿下來進行匹配,這樣能夠拿到更多的證據來匹配,這樣就會有更多的自信來判斷兩者匹配的情況。此外還有兩種匹配方式,一種是基於LSTM的匹配,另外一種是基於GRU的匹配。

檢索式對話-多輪對話

百度最早做了檢索式對話上下文敏感部分。最初的想法是比較簡單的,首先根據當前使用者輸入尋找一個候選的結果來判斷哪個更加合適,這時候叫做上下文無關的。之後還要看在給定上下文之後,哪一個候選更加合適,從而形成另外一個排序,這樣就能夠形成一個優化的排序,這樣最終的結果就既和查詢相關又和上下文相關。

後來多輪對話就變得更為細緻了。前面的工作中是將上下文整體地融合進去做一個判斷和匹配,後來發現上下文並不是同等重要的,有些話重要,但是有些話並不重要,所以通過對於上下文的重要性進行打分,通過打分結果對於當前使用者的輸入進行變形,然後使得產生的回答儘可能體現回答中去,並將結果進行整合和排序並得到最終的結果,這就是更細粒度的上下文使用方式。

下面展示的百度所做的工作,一開始對於句子的表示學習並沒有做任何層次化的區分,僅是從前往後進行順序化的編碼就可以得到一個結果。當然更新的想法就是將詞粒度作為一個級別並且把句子粒度作為一個級別,在兩個級別之上同時學習出表示出來,然後計算匹配,這也是一種比較不錯的嘗試。

而微軟小冰團隊將匹配這件事變得更為深刻了,一方面考慮了詞級別,另一方面還考慮了句子級別,並且通過不同級別進行匹配之後按照時間序列進行整合並輸出最終結果。

檢索式對話-對話提示

下圖展現的是北京大學所做的一些相關工作。檢索式對話的思想來自於資訊檢索,在資訊檢索裡面有一個有意思的概念叫做查詢提示,也就是使用者查詢了一些東西,系統給出反饋告訴使用者其他相關的東西或者更好的說法。所以在北大的工作中也借鑑了這樣的做法,就是使用者輸入一句話,系統會產生回答並且給出相應的建議,使用者可以順著這個建議繼續聊下去。這也是主動式對話的一個嘗試,也就是有意識地讓系統可以學習出引領使用者走下去的內容,目前這部分工作在學術界看來是很有意義的內容,但是具體實踐還需要工業界去嘗試。

生成式對話

生成式對話-背景

對於生成式對話而言,一般認為下圖所展示的三個模型是標配,分別是序列到序列模型,用於判斷輸入和輸出之間的對齊關係的注意力機制,以及雙向編碼機制。

生成式對話-序列到序列 注意力

下圖是華為的諾亞方舟實驗室做的生成式對話的早期工作,就是將序列到序列模型用到對話領域,並且加上了不同層次的注意力機制。

生成式對話-多輪對話
對話需要有上下文,那麼如何將上下文整合到生成式對話裡面去呢?最簡單的就是將上下文做一個生成式表示然後拼接到當前的輸入裡面去作為表示 表示的方式,然後進行解碼並得到一個回覆的結果。第二種方式就是加上了層次化的因素,加上了一箇中間狀態,每一輪都會有當前輪的資訊,當前輪的資訊會傳遞給全域性的表示,全域性表示會一直帶著資訊走,所以在後面產生回覆的時候是對上下文資訊有感知的。

生成式對話-話題資訊

微軟小冰團隊所做的工作就是希望一方面使得回答保持字面的相關性還不夠,還需要對於產生的回答保持話題相關性,這是比字面意義更加抽象的一層概念。可以看出下圖中左側是基於字面生成的概率,右側是基於話題的概率,這樣使得最終可以既考慮字面意義也考慮話題意義。這就是帶有話題資訊的生成式對話的語義模型。

生成式對話-主動對話

下圖展現的是北京大學所做的與主動對話相關的工作。大家在聊天的時候通常希望告訴對方一些資訊,往往是帶著一定的目的講話的,所以在回答裡面也會含有想要傳達的資訊,可以將這種資訊稱作約束。而約束又分為了幾種方式,當來了輸入的查詢之後判斷出什麼詞在回覆中一定要出現,然後將這個詞預先生成出來,並根據輸入的查詢從後往前生成半句話,根據這半句話進行補全,所以這樣就一定包含了強制約束的資訊。

但是強制約束看起來更像是“硬廣”,一定要某些東西出現可能有時候會讓人不舒服,所以一種想法就是做一些軟化工作,使得這個詞並不一定出現,而是讓相關的語義出現,所以可以將這個詞變成embedding表示,讓模型決定什麼時候體現這個詞的語義。

生成式對話-人格化

在對話中,每個人講話都是有不同的人物設定的,東北漢子和江南妹子肯定具有不同的人物設定。所以通常對話系統在人格上需要保持一些,不能出現人格分裂的情況。斯坦福大學做的工作就是將人格通過additional personal進行刻畫,在產生回覆的時候需要從personal中獲取資訊,使得回覆符合人物設定。

生成式對話-情感化

清華大學做了情感對話的相關工作。因為人在對話時會傳遞出自己的感情,如果對話系統的情緒完全不受控也是不合理的,如果你將一件很悲傷的事情向對話系統宣洩,但是它卻表示興高采烈,那麼可能你就會分分鐘想要關電腦。清華大學在自己的工作中加入了控制單元來判斷當前這句話需要產生什麼情感,這個情感是否能夠在產生的輸出裡面得到體現,使得最終的回覆體現了情感。

生成式對話-多樣性
對話多樣性也是很重要的問題,因為對話和其他語言任務不太一樣。對於機器翻譯而言,輸入英文產生中文,結果的大致意思是一致的,基本上只需要對照英文進行翻譯。而對於對話而言,輸入一句話可能有N種回覆,並且每種回覆都不一樣,但是每種回覆都是可以用的,這樣就有一個很強烈的多樣性的體現。但是僅依靠模型學習很難體現這樣的特徵,因為機器往往會學習出最有可能的那種,而最有可能的就是“我不知道”或者“哈哈”這樣的無關痛癢的回答,因為無論輸入什麼,都可以用“我不知道”或者“哈哈”回答。所以需要將一些經常出現的東西壓下去,把一些不經常出現的內容提上來,使得對話具有多樣性的特徵。

北京大學也在生成式對話中加上了行列式點過程,使得在回答時生成每個詞的時候都既考慮質量有考慮多樣性,並且在中間做了權衡。

生成式對話-增強學習
下圖展現的是斯坦福在生成式對話中使用增強學習所做的工作。類似於兩個對話機器人互相對話達到增強的效果,也就是左右手互搏的過程。其目標很明確就是選擇什麼樣的模式才能使得對話的過程儘可能長,儘可能選擇合適的對話模式。

生成式對話-GAN
GAN就是對抗生成神經網路,這個概念是比較火的,屬於左右手互搏的概念。就是生成假的資料讓系統進行判斷,GAN在2107年應用於語言方面,因為語言和圖片不一樣,圖片都是連續的資料,比較容易處理,但是語言卻是離散的資料,不太容易應用。而斯坦福大學加以改進實現了Seq2SeqGAN,使得生成的回答也需要做一次區分,判斷出是真的回答還是系統產生的回答,當區分器都無法判斷出來對話是人產生的還是系統產生的,就說明對話系統的能力已經很強大了。

哈工大和三角獸則從另一個角度應用GAN,通過評價的方式來判斷是否生成的足夠好。

結合式對話

北京大學提出了一個想法,而且該想法目前在阿里小蜜中已經應用了。大家都知道檢索式對話存在一定的瓶頸,資料永遠不會滿足“夠”的條件,而生成式對話的優點就是靈活,只要是學到了對話的模式,不一定要資料儲備也能夠回答。其問題就是有時候生成的回答不太可控,所以需要將檢索式對話和生成式對話進行結合,這個結合也在阿里小蜜的相關工作中發表出來了。

對話評測

對話的自動化評價也是大家所關心的,因為缺少評價就無法知道所做的東西是否夠好。對話的方式通常是從機器翻譯裡面來的,所以使用機器翻譯的評價指標其實是不太好用的,這是因為機器翻譯有一一對應關係,而對話卻沒有。所以蒙特利爾大學也做了相關的工作證明使用機器翻譯的評價指標來衡量對話系統是不科學的。

對話評測-學習方法
蒙特利爾大學提出了將所有輸入的查詢、上下文以及產生的回答都扔到神經網路中,讓神經網路和人工進行打分,以這種方式評判對話系統是否夠好,這是一種解決思路。但是會發現裡面存在另一個問題,這裡面需要人工打分,但是人工打分就可能不夠客觀。

對話評測-RUBER
北京大學也提出了一個工作來做對話評價,這時候就不需要人工打分了。這個工作出於兩種假設,一種是產生的回答能夠與真實的結果很像,那麼就是一個很好的結果;如果不像則去判斷回覆能否與查詢產生很好的匹配,如果能夠則也是很好的回覆,通過這樣的方式做對話評價,而不需要人工打分。

總結而言,人機對話看起來已經做得很好,媒體都在說“未來已來”,今天一個“重磅”,明天一個“號外”,讓民眾以為我們離“終結者”已經不遠了,但是當真正使用對話系統才會知道,其實技術上還存在很大的差距。

本文作者:嚴睿

原文連結

本文為雲棲社群原創內容,未經允許不得轉載。

相關文章

人工智慧 最新文章