10月18日,今日頭條科學家、頭條實驗室總監李磊博士在世界人工智慧大會發表了題為「理解語言與妙筆生文的機器人」的演講,分享了人工智慧在自然語言理解方面的成果與挑戰。
以下是演講全文整理。
大家下午好!
很榮幸有機會在這裡和各位專家學者以及同行朋友們交流人工智慧在自然語言理解方面可以做到的一些成果。今天我會介紹一下用機器學習怎樣來做自然語言的理解,怎樣跟人對話、問答以及怎樣自動創作新聞;做到這些事情,我們需要哪些機器學習的工具,和哪些基礎的算法模塊;然後介紹三個方面,分別是對話機器人、問答機器人、自動創作新聞的機器人,具體是通過何種技術來實現的;最後介紹我們如何來實現通用的人工智慧,或者說目前的人工智慧技術還有哪些挑戰以及我的一些思考。
今年年初GOOGLE的DeepMind通過他們的圍棋機器人AlphaGO讓全世界幾乎所有的人都知道,機器學習可以在某些任務上達到甚至超過人類的智力水平。那圍棋的機器學習是怎樣來實現的?用了兩部分的算法,一部分深度學習,另一部分強化學習或者蒙特卡洛樹搜索。我後面介紹的內容與深度學習有關。從過去20年或者30年神經網絡以及深度學習發展的成功經驗裡都可以看到,深度學習解決一類問題是非常非常有效的,這一類問題是有監督學習。什麼叫有監督學習?就是你給一組數據X,希望對這組數據做一點預測,它是Y,你希望通過機器學習的方法找到從X到Y的映射函數f。
例如我們的輸入是一張圖片,我們的輸出是這張圖片的標記,它到底屬於哪個類別,是貓還是狗,這是圖像分類問題。如果我們的輸入是一句中文的語音,輸出是一句英文,那從中文到英文同樣是一個有監督的學習或者叫機器翻譯。第三個例子,我們給一個圖片,我們希望生成一段文字來描述這個圖片。大家知道我們小的時候會做看圖說話,是不是機器也可以做看圖說話?同樣,這就可以把它建模成一個有監督學習的問題。第四,輸入是一段語音,輸出是這段語音對應的文字,這個叫語音識別,同樣是有監督學習的問題。當然可以把這個問題反過來,輸入是一段文字,輸出是一段語音,這就是語音合成,同樣是一個有監督學習。深度學習在解決這樣一類有監督學習的問題時,只要數據充分、模型合適,可以做到非常好。
那麼深度學習究竟是如何來做的?深度學習或者人工神經網絡最早是從人腦的工作方式得到啟發。人腦由非常非常多的神經元組成,每個神經原元都只可以做非常簡單的事情,但把這些神經元連接起來就可以做一些比較複雜的事情。
從這裡得到啟發,我們的人工智慧先驅創作了人工神經元。人工神經元同樣有一些輸入,這個輸入經過非常簡單的方式加權求和,通過非線性的函數輸出一些結果,把很多個這樣的神經元組合起來,就可以做一些複雜的事情。
比如說輸入是一張圖片,要識別這個圖片裡面帶有的數字。這裡展示一個單隱層的神經網絡。當然也可以增加這個隱層的數量,可以把網絡的識別能力不斷提升。
這些深度學習跟今日頭條有什麼關係?今日頭條是一家為用戶提供信息資訊的分享閱讀平臺。整個環節當中有三部分非常重要,包括高質量的內容怎麼創作出來,這些內容怎樣分發給感興趣的用戶、讀者讀了這些文章、看了這些視頻之後怎樣去鼓勵他們圍繞這些內容進行討論和交流。這三方面的核心技術都需要人工智慧。
我今天會介紹這三個方面中的兩方面,包括內容創作以及內容討論——我們怎樣做機器人來跟人去討論以及做機器人自動創作。
我們要處理的問題主要是語言問題,和之前講的圖象問題有很大的區別,圖象的輸入是固定大小的,而語言的問題就比較複雜,一句話可長可短。這樣帶來一個問題,怎樣處理變長的輸入。我們創作的深度學習模型最基礎的就是要能夠處理可變長的輸入,最基本的想法就是增加記憶單元。在這個模型裡面有一些單元專門負責記錄歷史信息,它能夠記住較長時間內的信息,對未來做預測。
▲循環神經網絡(Recurrent Neural Networks)
比如說這裡有一個非常簡單的循環神經網絡模型,它的輸入是X1、X2、X3、X4,每個輸入都是一個向量,和傳統卷積神經網絡不同的地方就是它的輸出部分或者影像量的那部分,h在這裡,每個h不僅跟當前的位置輸入有關,還跟前面一個輸入有關,這樣可以把歷史信息結合進來,這是最簡單的形式。還有稍微複雜的一個形式叫Gated Recurrent Unit(GRU),像人腦學習加入了一些開關,可以選擇性對信息做記憶和遺忘。比如加入了一個開關叫Reset Gate,對信息做選擇性記憶,另外還有一個開關控制輸出,可以控制哪些部分是之前一個時刻之前一個位置留下來的信息,哪些信息需要保留到下一個位置。
通過這些帶有記憶單元的神經網絡,就可以構建出自動對話的機器人。比如說這裡我展示了一部分我們的機器人可以做的對話。
我們的機器人不僅可以跟人閒聊,還可以對用戶說的一些新聞做出帶有感情色彩的評判,甚至我們的機器人對於很長很長的輸入,也可以做出比較準確的回應。這裡有一段很有名的電影臺詞,機器也可以很好的回應。
到底怎麼生成這些對話中的回應?這裡有一個簡單的演示:從循環神經網絡出發,給它一個初始狀態,黃色的部分是它的初始狀態,從這個初始狀態出發生成下一個狀態,從當前隱含的信息出發可以去預測出當前這個位置需要輸出哪個文字。有了文字之後,我們再把這個文字信息作為下一個字需要輸入的需要信息輸入進去,綜合起來從第一個字生成第二個字生成第三個字生成第四個字,直到生成句子結束為止。
剛才說的是對話,如果沒有上句的輸入比較簡單,如果有上句的輸入,怎麼生成合理回應?同樣用循環神經網絡,會對前一句來建模,把上句輸入的每個字變成一個向量,把這個向量綜合起來處理,最後整句話變成一個向量表示,這個向量就作為我們下句生成回應的循環神經網絡的輸入,再用前一頁講到的方法來生成第一個字第二個字第三個字,通過這樣的方式來生成。
我之前還提到,我們的機器人不僅能夠生成這樣的對話,它還能夠帶有感情色彩,那感情色彩是怎樣出現的?我們對這個模型加入了額外的激勵,這個額外的激勵就是情感激勵。我們希望這個對話是高興的、開心的或者憤怒的或者悲傷的,我們可以給它加上額外的激勵,這個額外激勵加上去之後,它生成的內容就會帶有特定的感情色彩。剛才提到的還只是會閒聊的機器人,但他也不能夠回答一些帶有知識性的問題。
第二個我要講的是怎麼樣來做一個模型,讓它能夠回答一些知識類的問題。知識如何表示才能讓計算機理解,我們需要表示成結構化的方式。例如圍繞貝克漢姆這個人物,把知識表示成圖,圖裡面每個結點是一個實體,實體之間、結點之間有一些邊相連,這些邊代表了關係。比如說貝克漢姆的出生地是Leytonstone,我們把這些知識表達成三元組的形式,有它的主體、關係以及客體構成。
機器怎樣自動回答問題?要問貝克漢姆是在哪裡出生的,為了回答這個問題,我們就要從知識庫裡面找到相應的三元組知識,這條知識是<DavidBeckham, PlaceOfBirth, Leytonstone>,從而找出答案Leytonston。為什麼讓電腦回答這樣的問題非常非常難?首先我們的語言是非常複雜的,同樣一個意思可以有多種問法。比如我們可以問歐巴馬總統在哪裡出生的?也可以問歐巴馬總統出生地是哪裡。同樣的意思但有不同的問法,這是語言的多樣性和複雜性。第二個難點是歧義,同樣的名字在我們的知識庫裡面會有很多個實體很有同樣的名字,比如我們問麥可喬丹是誰,可能大家首先想到的是打籃球的麥可喬丹,但問機器學習領域的人會想到機器學習的大神麥可喬丹。這是指代的歧義性帶來的挑戰。第三個難點是由我們的數據稀疏性所帶來。我們的知識海量,即使經過我們的三元組篩選之後也有2200萬,這是在GOOGLE的FreeBase上得到的數據。我們一共有十萬標註好的問答對,但要通過十萬的標註數據回答2200萬裡面的問題,這是一個非常難的問題。
最近我們做了一個CFO系統,是一個基於深度學習的系統,它可以回答一些比較難的問題。比如說問Harry Potter在哪裡上的學?大家知道Hogwarts魔法學校,還有上魔法學校之前的一個小學不是很多人知道,但是機器可以回答出來。通過我們的評測,在由Facebook做的公開數據集上,我們的系統準確率達到了75.7%,相對之前由Facebook做的最好系統最好的結果是62.9%,也就是說我們已經比之前最好的系統要高了十幾個百分點。這是怎麼實現的?如何來做問答機器人?
舉個例子,拿到一個問題,Who created the character Harry Potter。首先要識別這個問題裡面的關鍵實體是哪個。Harry Potter。第二步,識別這個問題問的究竟是什麼樣的關係,Character_Created_By,找到了這兩個才能從知識庫裡面找到相應的答案。
我們通過序列標註的深度學習模型來對各種可能的實體打分,通過我們的模型就會發現David beckham問到的實體概率最大。我們通過另外一個類似的模型,這個模型裡面有雙向的循環神經網絡,通過疊加多層的雙向循環神經網絡對我們的輸入問題建模,最後對這個向量來預測到底實體庫裡面哪個實體跟這個問句是對應的,哪個關係跟這個問句是對應的。最後會發現這個問題問的實體是Harry Potter,這樣把實體找出來,把答案也找出來。
剛才講的是問答的機器人,最後要講的是可以自動寫新聞的機器人,名叫XiaomingBot。在奧運會之前開發的機器人,16天的時間寫了450篇新聞,圍繞桌球、羽毛球、足球、網球四個類別寫 。在短短16天內,讀者總計一百萬。後面通過數據分析發現,在同一時間由專業體育記者所寫的體育新聞閱讀率和XiaomingBot寫出的新聞閱讀率差不多,甚至XiaomingBot新聞閱讀率會更高一些。XiaomingBot既可以成比較短訊,也可以生成比較長的文章。比如女足的新聞比較長,描述的比賽過程比較詳細。相對之前研究的新聞機器人來對比,我們的XiaomingBot有一些不同的特點:比如說我們非常快,XiaomingBot在比賽結束的兩秒鐘之內就可以從生成到發布到讀者讀到,整個過程時間非常短,從創作到分發到自動推薦整個流程全都是機器來完成的,這也是我們今日頭條這個平臺的優勢。第二個特點是短長結合,既可以生成短內容,也可以形成長報導。另外XiaomingBot可以圖文結合,實時加上一些比賽的圖片,而且我們對比賽的描述符合比賽的時間線,尤其對於足球比賽的描述。我們的生成結合了文法生成技術以及機器學習,內容讀起來更像是專業記者所寫。
對話、問答、新聞生成的機器人,是不是我們的機器人已經無所不能?不是。那現在機器人還有哪些不足,還有哪些做不到?通過對話機器人非常容易發現,我們說一些話會讓機器人前言不搭後語;而我們的問答機器人雖然可以在知識類的問題上達到75.7%的準確率,但是它還不能處理更通用的問題,比如除了知識類以外,我們還有問原理性的、問步驟性的、以及問深度解釋類的問題。如果你問他人生的意義是什麼,很難回答你。我們對體育類的新聞生成是比較好的,但是如果把它推廣到所有品類做成非常通用的文本生成機器人還是有很長的路要走。為什麼機器人會有這些局限?首先一開始提到深度學習或者機器學習在解決有監督學習的問題是非常非常有效的,但是同時它的有效也帶來局限。它的有效是因為現在有大量的數據有複雜的模型,但恰恰是因為需要大量的數據,這對目前深度學習方法造成了一個很大局限,就是需要非常大的標註好的數據,而通常標註這些數據所需要的代價是非常非常大的。
其次,局限還在於通用性或者可擴展性。我們的問答機器人可以回答知識類問題,但很難再去回答其它的問題,這就是通用性和可擴展性的局限。怎麼實現通用的人工智慧或者說實現通用人工智慧我們還有哪些問題哪些大的挑戰需要去解決?這裡分享三個需要我們人工智慧學者、機器學習專家去研究的技術問題。
第一個問題,機器學習模型的可解釋性,深度學習模型在很多問題上做得非常好,可是有時候我們會發現模型做得好,但其實並不知道它為什麼做得好。或者我們的模型犯錯了,但我們並不知道它為什麼犯錯,這就是可解釋性的問題。我們的機器學習還需要更多地去研究一些模型一些方法,讓它能夠對自己的行為做一些預測和分析、解釋,當它做得不好的時候,它知道自己為什麼做得不好,就像人一樣,能夠分析自己的錯誤。這是第一點。
第二個問題,推理能力。應該能夠更多的跟周圍環境當中的物體去交互去推理,我們的機器學習目前做的離推理稍微有點遠,還只能做非常簡單的判別,比如說判別一個類別。但更複雜的推理實際上還是比較難的,所以我們還需要在這方面做更多的突破。
第三個問題,是我們之前可能忽略的。目前的研究更多的在關注模型、性能和準確率,但是我們並沒有注意這些超過人類的智能,達到比人水平還要高的圍棋機器人,實際需要非常非常多的計算資源,幾千臺機器,需要消耗非常多的能源。我們未來更好的算法是不是能夠在最少的能耗情況下去達到更高的智能。以上就是我的分享。
謝謝大家!
長按二維碼,勾搭頭條君
你關心的,才是頭條丨今日頭條