1. 程式人生 > >華為李航 NLP 有 5 個基本問題,深度學習有4個做得很好

華為李航 NLP 有 5 個基本問題,深度學習有4個做得很好

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow

也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!

               

對於自然語言理解,有兩種定義。第一種是計算機能夠將所說的語言對映到計算機內部表示;另一種是基於行為的,你說了一句話,計算機做出了相應行為,就認為計算機理解了自然語言。後者的定義,更廣為採用。

為什麼自然語言理解很難?其本質原因是語言是一種複雜的現象。自然語言有5個重要特點,使得計算機實現自然語言處理很困難:

  1. 語言是不完全有規律的,規律是錯綜複雜的。有一定的規律,也有很多例外。因為語言是經過上萬年的時間發明的,這一過程類似於建立維基百科。因此,一定會出現功能冗餘、邏輯不一致等現象。但是語言依舊有一定的規律,若不遵循一定的規範,交流會比較困難;
  2. 語言是可以組合的。語言的重要特點是能夠將詞語組合起來形成句子,能夠組成複雜的語言表達;
  3. 語言是一個開放的集合。我們可以任意地發明創造一些新的表達。比如,微信中“潛水”的表達就是一種比喻。一旦形成之後,大家都會使用,形成固定說法。語言本質的發明創造就是通過比喻擴展出來的;
  4. 語言需要聯絡到實踐知識;
  5. 語言的使用要基於環境。在人與人之間的互動中被使用。如果在外語的語言環境裡去學習外語,人們就會學習得非常快,理解得非常深。

    這些現象都說明,在計算機裡去實現與人一樣的語言使用能力是一件非常具有挑戰性的事情。首先,語言的不完全規律性和組合性,就意味著如果在目前的計算機上去實現,會產生組合爆炸;還有,如果需要語言做比喻,去聯絡到實踐環境,就意味著要做全域性的、窮舉的計算。如果通過現代計算機來做,非常複雜,幾乎不太可能。所以,如果想讓計算機像人一樣使用語言,原理上需要完全不同的、與人腦更接近的計算機體系架構

其本質原因是,目前在計算機上去實現東西一定需要數學模型。換句話說,計算機能夠做的事情要通過數學形式化。但是,到目前為止,語言的使用還不清楚是否能夠用數學模型去刻畫。人工智慧的終極挑戰就是自然語言理解。現實當中,不能因為自然語言理解非常困難就放棄。我們還是希望能夠使計算機越來越智慧化,能夠部分使用語言。因此,就形成了所謂自然語言處理這一領域。我們叫自然語言處理,而不是自然語言理解,因為真正的理解是太難了。

自然語言處理做的第一件事情就是把問題簡化。比如,知識問答中,問姚明身高是多少?朋友告訴你是2米26。這是人與人之間的知識問答。那麼,這其中有哪些步驟呢?首先是聽,然後去理解問題,然後去做一定的推理,然後再去做資訊檢索,最後判斷怎麼去做回答,整個過程相當複雜。我們現在做自然語言處理時,也做這種知識問答,包括有名的IBM的Watson,其整個步驟也是簡化了自然語言處理的過程。一般而言,就是這幾個步驟,先分析一下問句,接著去檢索相關的知識或者資訊,然後產生答案。

目前,所有的自然語言處理的問題都可以分類成為五大統計自然語言處理的方法或者模型,即分類、匹配、翻譯、結構預測,馬爾可夫決策過程。各種各樣的自然語言處理的應用,都可以模型化為這五大基本問題,基本能夠涵蓋自然語言處理相當一部分或者大部分的技術。主要採用統計機器學習的方法來解決。第一是分類,就是你給我一個字串,我給你一個標籤,這個字串可以是一個文字,一句話或者其他的自然語言單元;其次是匹配,兩個字串,兩句話或者兩段文章去做一個匹配,判斷這兩個字串的相關度是多少;第三就是翻譯,即更廣義的翻譯或者轉換,把一個字串轉換成另外一個字串;第四是結構預測,即找到字串裡面的一定結構;第五是馬可夫決策過程,在處理一些事情的時候有很多狀態,基於現在的狀態,來決定採取什麼樣的行動,然後去判斷下一個狀態。我們也可以採用這樣的模型,去刻畫自然語言處理的一些任務。

分類主要有文字分類和情感分類,匹配主要有搜尋、問題回答、對話(主要是單輪對話);翻譯主要有機器翻譯,語音識別,手寫識別,單輪對話;結構預測主要有專門識別,詞性標註,句法分析,文字的語義分析;馬可夫決策過程可以用於多輪對話。我們可以看到,自然語言處理裡面有很多工,在現實中我們已經開始使用最基本這五種最基本的模型它都去可以去刻畫的。

語言處理,在一定程度上需要考慮技術上界和效能下界的關係。現在的自然語言處理,最本質是用資料驅動的方法去模擬人,通過人工智慧閉環去逼近人的語言使用能力。但是,這種技術並沒有真正實現人的語言理解機制。可能會有這樣的情況,這個技術的準確率(綠線)畫了一個上界。比如,語音識別的上屆是95%,我們希望不斷把這個技術做好,比如通過人工智慧閉環,更好的深度學習方法,從而使得上界不斷提高。但是,不可能一下子達到百分之百對,或者達到完全與人一樣的水平。每個應用,對於下界的要求是不一樣的。比如,在葡萄牙問路,對方也不會英語,我也不會葡萄牙語,交流非常困難,在這種環境下我其實就是聽懂幾個單詞,讓機器翻譯給我翻譯幾個單詞就行了,對效能的要求其實是比較低的,不需要去翻譯一大段話。我們可以看到,不同的應用,使用者對使用效能的要求不同,如果下界達到這個水平,使用者就用了。再比如網際網路搜尋中排序第一的準確率不高,60%多-70%多,大家往往覺得,網際網路搜尋引擎已經達到要求了。當然因為搜尋的時候,通過排序展示給使用者多個結果,使用者可以去逐個去看,一定程度上解決一些問題,這時候對效能要求下界相對就比較低。如果,現在的技術上屆達到了使用者要求的下界,就能夠使用。所以,哪些自然語言處理的技術未來能夠起飛,能夠真正實用化,就可以通過這種關係來看。還是要看具體的應用的場景。在一些特定場景下,準確率達到99%都不行。我們相信,自然語言處理的技術會不斷提高,但是是不是都能夠達到我們每一個應用要求的效能的下界,就不好說了,要看未來的發展了。這是自然語言處理技術整個發展情況。

下面,給大家一起看一下我們自然語言處理領域裡面都有哪些技術,有代表性的技術都大概達到什麼樣的水平,都是什麼樣的一些基礎。假設大家對深度學習有一定的瞭解,如果這方面的知識還不夠也沒關係,過後你可以去再去看書看論文,去了解一些相關的技術情況。

剛才,我介紹到站在一個很抽象的角度來看,自然語言處理就是五個問題。如果用各種方法包括深度學習把這五個問題做好了,就能夠把自然語言做得很好。現實當中,我們就是通過深度學習,達到自然語言處理技術比較好的水平。

首先,問答系統有很多,包括 IBM 的 Watson 也是一個問答系統,有大量的知識或者資訊放在知識庫。典型的辦法就是把問答用FAQ索引起來,與搜尋引擎相似,如果來了一個新問題,有一大堆已經索引好的FAQ,然後去做一個檢索(字元上的匹配),之後逐個去做匹配,判斷問句與回答的匹配如何。往往匹配的模型有多個,再去將候補做一個排序,把最有可能的答案排在前面,往往就取第一個作為答案返回給使用者。

這裡面牽扯到幾個技術,我們在線上的時候要做匹配和排序,現在最先進的技術都是用機器學習,用深度學習技術。就是把問句和回答的可能的候選,用向量來表示,問句的每一個單詞都可以用向量來表示。每一個詞的語義都可以用一個實數值向量賴表示,問句和候補都是實數值向量的序列。然後,用一個二維的卷積神經網路來判斷兩句話在語義上是不是相關,候選是否是很好的答案。通過二維卷積神經網路,可以判斷兩句話裡面哪一些詞語、片語是可以相互對應,最後可以做一個判斷這兩句話是不是相關的。整個模型的學習通過大量的資料、句對,去訓練。如果卷積神經網路的引數學好,就可以判斷任何給定的兩句話是不是能夠構成一輪問答。

這樣的模型不僅僅可以用到文字問答(知識問答)上,也可以用到影象檢索上面。給大家演示一個demo。

這種模型,可以跨模態的把文字和圖片聯絡起來。在深度學習技術出現之前的話,這件事情是不可能的。因為他們是不同的模態。一個是符號表示的資訊,一個是畫素表示的資訊,那麼我們可以用深度學習的模型去做這種跨模態的匹配。比如,左邊有一個卷積神經網路,他能夠抽出左邊圖片的語意表示,表示成一個向量;右邊也是一個卷積神經網路,能夠把一段文字的內容抽取出來,表示成為一個向量,還有一個網路判斷這兩個向量在語義上是否能夠匹配。這個模型可以通過大量的資料去訓練。假設每一個照片有3到5個人給出描述。我們用大量這樣的資料就可以學這樣的神經網路,神經網路可以幫助我們,就是說任何給定的一句話,要去查詢一個圖片的內容,它就可以在這個圖片庫裡幫你去匹配到最相關的圖片,給你返回來。這個技術也是在深度學習出現之前應用的,因為我們不知道怎樣把圖片和文字匹配到一起。有了深度學習技術,我們可以做這樣的事情。

自然語言對話是用另外一種技術,用生成式的模型去做自然語言對話。大量的聊天系統是這麼做的,輸入一句話,裡面準備了大量的FAQ,搜尋到一個最相關的回答,反饋給你。這叫做基於檢索的自然語言問答系統。

我們這裡看到是一種產生式,經過大量資料訓練之後,輸入一句話系統自動的產生一個回覆,理論上產生出無窮多的不同的回覆。下面先看一個實際系統的錄影。

這個系統,我們在微博上爬了四百萬的微博資料,微博資料可以看作是一種簡單的單輪對話。我們用400萬資料訓練了這樣一個系統能夠去自動產生對話。(系統演示)

理論上它可以回答任何你輸入的對話。用400萬的微博資料就可以訓練這樣一個模型。系統產生一句話的比例是96%,真正形成一個有意義的單輪對話的比例是76%左右。這個系統的一大特點是,可以回答沒有見過的一句話。

第二個特點是能夠記住訓練資料。發現深度網路有一個共同的特點就是能夠記住訓練資料,同時也有去泛化的能力,能針對未知的新見到的東西去自動組織出一句話,並返回給你。這種能力很令人驚歎,是否實用並不清楚。在一個很固定的場景裡,比如話務中心,如果話務員跟客戶之間的互動都是簡單的重複,大量的類似資料可以構建一個產生自動的回覆系統,而且跟人的回覆非常接近。

大家如果熟悉深度學習的話,剛才說自然語言處理有很多問題都是翻譯的問題,即把一個文字的字元翻譯成另外一個文字字元,那麼單輪對話的產生也可以看成是機器翻譯。序列對序列學習,sequenceto sequence learning,可以用到這種單輪對話中。每個單詞其實是用一個實數值向量表示,就是編碼,之後用實數值向量分解成一個回覆的一句,叫做解碼。通過這種編碼、解碼這兩個過程的話,我們把原始的資料轉化成中間表示,再把中間表示,轉換成為應該回復的話,可以產生對話系統。

谷歌的神經機器翻譯系統是一個非常強大的系統,需要很多訓練資料和強大計算資源。這個seqto seq模型有八層的編碼器和八層的解碼器,整個網路非常深。它還用了各種這個新的技術,比如注意力技術,並行處理技術,還有模型分割和資料分割等。目前,翻譯的準確率已經超過了傳統的統計機器翻譯。

下面,再看一下未來自然語言處理技術發展的前景和趨勢。剛才我們看到技術上界和使用者對於效能要求的下界,碰到一起就看到技術的使用化。那麼,就預測一下未來自然語言處理技術的發展。目前,幾個最基本的應用,包括語音識別,就是一個序列對序列學習的問題,就是翻譯的問題,目前準確率是95%左右,那麼已經比較實用了。單輪對話往往可以變成一個分類問題,或者結構預測問題,就是通過手寫一些規則或者建一些分類器,可以做的比較準。很多手機上應用或者是語音助手像siri,就是用這樣的技術;多輪對話還很不成熟,準確率還遠遠達不到一般期待的要求,只有在特定場景下能做的比較好。單輪問答已經開始實用化,準確率一般來百分之七十八十,自動問答系統沒有超過80%的這個準確率的情況。去年,我有一個報告就講魯棒的自動問答或者知識問答,並不要求準確率是百分之百。單輪自動問答會馬上越來越實用化,因為我們看到很多成功的例子包括Alexa往往都是用單輪對話技術來做的。文字的機器翻譯水平在不斷提高,深度學習在不斷進步,越來越接近人的專業水平,但只是在一些特定場景下。完全去替代人,還是不太可能。人的語言理解是一個非常複雜的過程,序列對序列實際上是一種近似,現在這種技術能夠去無窮盡的逼近人,但是本質上還是跟人的做法不一樣的。即使是這樣,準確率可以達到百分之七八十。在某些場景下,使用者對效能要求並不是特別高。

總而言之,語音識別、機器翻譯已經起飛,大家現在開始慢慢在用,但是真正對話的翻譯還很困難,還有很長的路要走,但是也說不定能夠做得很好。並不是說序列對序列就沒有問題需要解決了,還有細緻的問題。一個典型的問題就是長尾現象。不常用的單詞、語音識別、翻譯還是做得不是很好。比如用中文語音輸入,人名、地名這種專有名詞識別率一下就下降,特殊的專業術語識也不好,講中文中間夾雜一些英文單詞也是一種長尾現象。因為現在機器學習的方法是基於統計的,原則上就是看到資料裡面的規律,掌握資料的規律。需要看到甚至多次重複看到一些東西,才能夠掌握這些規律。這塊相信有很多技術能幫助解決一些問題,使得機器翻譯或語音識別技術不斷提高,但是完全徹底的解決還是比較困難,因為這是這種方法帶來的一個侷限性。

單輪的問答,特別是場景驅動的單輪的問答,可能慢慢會開始使用。但是多輪對話技術還是比較難。馬爾可夫決策過程實際上是還是個統計學習模型,本質特點就是需要有大量的資料去學習。其實我們人在做多輪對話的時候,並不需要重複才能掌握這種天生能力。這些是否能夠用馬爾科夫決策過程去模擬或者近似還不是很清楚。還有一個重要的問題就是多輪對話的資料不夠,不能夠很好地去學習這樣的模型,去研究這些問題。即使是特定任務,多輪對話還比較困難,如果是任務不特定,比如聊天機器人就更難了,我們都不知道該怎麼去做,馬爾科夫決策過程都用不上。現實當中的一些聊天機器人就是用單輪技術堆起來,但是形成不了一個很自然合理的多輪對話,變成大家用起來覺得很奇怪的東西。總結起來就是多輪對話,在任務驅動的簡單場景,有了更多的資料,我們是有可能做的越來越好。

給今天的講座大概做一個總結,自然語言理解很難,自然語言處理現在用資料驅動的辦法去做,有五個最基本的問題,即分類、匹配、翻譯、結構預測和馬爾可夫決策過程。在具體的問題上,有了資料就可以跑AI的閉環,就可以不斷提高系統的效能、演算法的能力。深度學習在我剛說的五個大任務裡的前四個都能做得很好,特別是運用seq toseq的翻譯和語音識別。單論對話也能做的越來越好,但是多輪對話需要去研究和解決。

自然語言概括的那部分其實我也寫過一些文章,大家感興趣的話也可以去看一看,網上也能搜得到,然後還有就是我們相關的工作論文,包括谷歌的工作論文,我在這裡列出來了。

最後,歡迎大家加入我們的實驗室。方向有語音、語言處理、推薦搜尋、大資料分析、智慧通訊網路、計算機視覺、物聯網、智慧城市、智慧終端。謝謝大家。

李航 VS 雷鳴 對話部分

雷鳴:特別感謝李老師精彩的講座。今天這個講座基本上對自然語言的整個發展能解決什麼問題做了一個綜述,而且對於技術、挑戰和未來展望講得特別全面,以致於我想到一個問題,後面就已經在回答了,今天講得非常全面,非常仔細。我們想跟李航老師再探討一下應用方面,我們知道華為的諾亞方舟做了很多計算語言方面的工作,能大概講一下在落地方面做了哪些產品,大概現在處在一個什麼水平上嗎?

李航:好的。我們在語音、語言這方面做了兩個應用,一個是機器翻譯,一個是自然語言對話。機器翻譯在我們公司內已經廣泛使用,沒有推到外面做產品。因為華為是一個非常國際化的公司,大概有不止三、四萬的非中國籍員工,所以中翻英,英翻中在公司內使用,我們的技術都應用在裡面。還有云對話的應用場景就是手機。

雷鳴:助手。

李航:對,助手。手機的東西一直在做,現在不太方便說,歡迎大家到我們實驗室訪問,我們可以做進一步介紹。

雷鳴:李航老師也組織一次北大、清華、中科院的同學一起去參觀,關起門來比較好說。提到對話這塊很有意思,比較早的商用系統是Siri,包括在《生活大爆炸》裡也看到調笑Siri的場景,最後發現也就是大家稍微玩一玩,後面就沒有後面了。我們發現比較實用化的對話系統反而是亞馬遜做的Echo,客觀地講亞馬遜在自然語言的技術積累以前沒有見太多,比起蘋果、谷歌、甚至百度都不那麼強,那為什麼它能先做出來一個特別落地化的東西?它走了一個什麼樣的路徑?對我們技術落地有什麼啟發?能大概解釋一下嗎?

李航:好。據我所知道的情況,亞馬遜收購了幾個公司,問答那部分是英國的劍橋做的,他們已經做了多年的這種問答,它們做得好的地方在於細節處理得非常好。也就是說問答的技術是亞馬遜買來的。還有麥克陣列那些好像也不是自己開發的,細節我不是很清楚。但是自動問答我很清楚,就是收購的技術。

問答,或者說是廣義的對話,剛才籠統地講,有三類不同的技術,他們之間其實並不是包含和被包含的關係,是相互獨立的。一種是分類或者結構預測,直觀來說就是人手寫規則,Siri或者以前典型的場景都是基於這種技術做的。寫好規則,這句話匹配上了,或者叫分類,分類對了,就去做了。還有一種技術就是問答,這種基於搜尋、檢索技術的比較多,有索引、排序這套東西,這你也是專家。再有就是多輪對話,比如說強化學習。這三套技術其實相互都比較獨立。

說到匹配的話,模板、規則,或者說分類比較適合命令型的東西,未來就是家居各種場景,包括手機的命令,這種場景裡面準確率相對也比較高,因為相對場景比較侷限,能夠達到百分之八、九十的識別準確率,甚至更高一些,應該是能夠比較多地實用化。我們看到未來這是一個很好的場景。還有就是你剛才講到Alexa的問答已經做得很好,這也是我覺得未來能夠去實用化的一塊,因為Alexa已經邁出非常好的一步了。它可以不斷地跑人工智慧閉環,收集更多的資料去把這個東西做得越來越好,就是內容不夠填內容。如果是說“理解”使用者的問法,還是用我們這種匹配、排序的技術,能看到哪個地方有問題就可以去改進,能夠不斷地把對話、問答這種東西做得越來越好。這兩塊我覺得都是未來能夠起飛,能夠用起來的技術。

多輪對話,剛才也說到,就是還需要很多研究了。資料也不夠,大家都沒有資料,是這樣的一個狀況。

雷鳴:可不可以理解為,他們雖然沒什麼積累,但是買的公司還挺厲害的。

李航:對,還挺厲害的。

雷鳴:有很牛的技術。第二點來講,它進入到家庭場景裡面,這個場景本身的限制導致說這個問題被降維了。

李航:對,就是實現做得比較好。

雷鳴:Siri 相當於一個開放式的,所以難度比較大一些。做到大家都滿意就比較難一些,因為技術並不是一步到位的,選擇技術能解決的問題去解決,解決實際問題然後再落地是更現實的事,可能會比較有挑戰。谷歌成立很久,其實為全球培養了大量的科學家,出來了無數的創業公司,但是到現在好像還沒有一個商業化成功的案例,所以他們走得有點兒太遠了。

李航:是的。

雷鳴:剛才李航老師講了好幾次關於人類的語言,就是自然語言這一塊它的複雜度是蠻高的,可能超過了用數學公式表達,或者是用概率就能搞定的。現在由於大量的資料積累,包括深度學習,使得在簡單的語言問題上我們看到一種可解性。面對將來複雜的語言問題,我們現在能不能看到一個路徑將來能夠走到那一天?比如說這個路徑大概是什麼樣子?現在在學術界,包括您這裡有什麼看法?比如說剛才講這個多輪對話是個非常有挑戰的問題,今天我們看到確實挺難的,多輪開放就更難了。但是有沒有一種方向性的東西使得我們能夠往那個方向走?

李航:這個問題問得很好,大家現在往往就是對人工智慧過於樂觀,包括自然語言處理也是一樣,整個人工智慧也是這樣,還需要很多努力,還有漫長的路要走。面向未來的話,我們諾亞方舟實驗室做研究一個大的方向就是怎麼把知識和深度學習這樣的技術結合起來。換一個角度就是說把符號處理symbolic processing和神經處理neural processing結合起來,這能夠幫助我們做很多事。不一定能解決你說的多輪對話的問題,但是能幫助我們人類做很多事情。

你們可以這樣想,計算機第一個是計算比咱們人類厲害,第二就是儲存比人厲害。現在有網際網路,各種資訊庫、知識庫,但是我們覺得用起來還不是很方便,很多問題不是簡單地通過搜尋引擎就能去做。一個關於symbolic neural processing就是神經符號處理的想法就是,給計算機大量的文字,都是用符號表示的知識和資訊,讓它不加休息地去讀,然後結合深度學習的技術,讓它學到更好的知識表示、語義表示。對於每個人來說就是一個智慧助手,幫助你去記憶各種東西,包括具體的資訊,包括知識,這對我們人的能力是一種更大的延伸。不一定是多輪,但是是簡單的多輪。實際上是把我們整個知識、資訊的獲取、檢索的這樣一個大的任務都解決,對我們每個人的能力是一種延伸。不光是知識,資訊也可以融合起來。比如說,上次我和雷老師見面談了什麼都可以很快地匯出來。這就擴大了我整個的能力,記憶的能力,儲存的能力。這方面我們看到一些可能性,不好說是不是能突破,這也是自然語言知識問答的延伸,目前還做不到,做得不好,我們正在往這個方向一步步走,這是我們希望有突破的。

今年1月份我們去蒙特利爾訪問了深度學習三大牛人之一Bengio,請教了他關於neuralsymbolic processing的看法,他也是比較認可。他認可這種意義的結合,但是在一般意義上,如在深度網路里加一些symbol,他認為是不對的。剛才說的這種意義上的結合他覺得還是有道理的,當然還有很多未知的問題,很多挑戰,但是是值得進一步去探索的。我們現實中也開始在做一些研究。

雷鳴:這個回答大家去品味一下,技術發展無止境,有些時候一些特定的技術方式能解決一些特定的問題,但有時候也不是完全通用的。今天深度學習雖然很火,但是現在也有些反思,它是不是能解決所有問題。不同的學者有不同的想法,大家要用自己的智慧去理解。

剛才李航老師講到 symbolic neural processing,從產業裡我們有時候會從工程看問題。比如說自然語言這方面,第一是從語音到文字,如語音識別,現在專門有人做這個,做得還不錯。第二就是從文字到語義,就是我知道你在說什麼。第三層就是response,就是我知道你在說什麼,我再給你一個有效的反饋。從這三層來看,第一層做得還不錯,第二層就是機器看到一段文字,到底理解沒理解這個是否有個定義,咱們待會兒探討一下。第三層就是來一個問題給一個正確的反饋,這和問題的理解層面糾纏有多深?因為我看到現在都是把問題和答案對著訓,把內涵加進去了。就比如說對牛彈琴有兩種,一個是它根本聽不懂你談的東西,第二是聽懂了但它不知道是什麼意思。聊天也一樣,對方說的每一個字我都懂,但是合起來不懂,或者說合起來說的我也都懂,但是不知道怎麼回答。從學術上看,剛才講到語音分開得比較清楚,就是語義理解和回答這兩塊的研究我看一體化比較嚴重,從長遠來看應該是分開還是合併的?每一塊有什麼挑戰?

李航:這個問題問得非常好。這就牽扯到自然語言處理的本質的問題。我個人觀點,說到人工智慧、自然語言處理還有很長的路要走的意思就在這兒。一個就是要任務驅動才能去做,撇開任務單純講語義這是很難的,包括回答。深度學習的好處就是我們現在能做端到端的學習,輸入、輸出,裡面都是黑箱,學習就好了。不好的地方就是中間發生什麼都不知道。你剛才說對應人的語義,這個都不知道。深度學習肯定就有侷限了。理想就是能夠把人的支援加進來幫助語義的理解。剛才講到Bengio也覺得這個事情不太好做,當然他也不一定絕對就對,但是這塊是挺有挑戰的,有太多不知道的事情了。

雷鳴:有一次我看到你提到谷歌的翻譯,他們做的其實還是很牛的。以前我們都是端對端,英漢、漢英訓練一個模型,諸如此類很多模型。但是谷歌是訓練了個挺通用的模型,比如說英中對譯訓好了,中法對譯訓好了,然後英法之間就直接可以開始對譯了。

李航:那是另外的一些工作,但是都是相通的。我今天介紹的不是太一樣。業內有這樣技術,有這樣的研究。

雷鳴:這個我覺得挺有意思的,核心是我們沒有訓過英法之間的對譯。這也就意味著,某種意義上來說,我們感覺機器在深度網路學習的時候對人類的語言做了一個內隱的表達。它在英中、中英、英法學習中間有個層面學會了英語的表達,然後就直接對上了。是不是說它找到了人類語言的某種內在表達方法?但是因為剛才說到的深度學習的特性導致我們讀不出來,可不可以這樣理解?

李航:我同意你的觀點。就是這是做了一種表達。比如人做翻譯其實也是一個很複雜的過程。你們有沒有觀察過專業的同聲翻譯,我只是從旁觀察或跟他們交流,發現他們其實不思考的,他們已經形成了一種模式訓練。不是所有外語好的人都能做同聲翻譯的,需要做一些特殊的訓練。我的解釋是他們其實是學了各種模式,但是他們很快,並不需要理解。他們就是有一種中間表示,很快就能轉換成目標語言,我們現在的深度學習多少有點兒像那樣一個機制,就是大量資料去訓練。但往往我們一般人做翻譯事實上是有語言的理解的,同聲翻譯至少區域性就是一個模式。所以我同意你的觀點,就是讓中法、中英這些都一起訓練,可能針對某些語言對映到內部有一些表示,對於語義的理解是比較universal的,就可以通用。

雷鳴:您剛才提到語義這一塊您想說一下。

李航:對。有一篇文章是《迎接自然語言處理新時代》裡面有寫這個事情。你剛才談到語音,語音只是人大腦裡的一個模組,語言處理是整個大腦都會參與的,所以說語言本身就是很複雜。語音就是一個模組,所以語音處理不是一個人工智慧完全的問題。語言處理是需要很多語言的知識模組參與在一起去做,而且大家可能也知道,腦區裡面負責語言的部分都不止一個,多個腦區同時參與做這個事情。

雷鳴:佔的面積也挺大的。

李航:對。現在大腦很多事情我們不知道。我們最早知道的一個有意思的事情是什麼呢,就是給猴子的premotor cortex插上電極,發現有一個腦細胞在猴子自己吃香蕉和看到別人吃香蕉時都會有反應,說明在猴子的前運動域有一個腦細胞對應吃香蕉這個概念。然後人去做核磁共振這個實驗,發現也是跟運動相關,比如說張開嘴或想象張開嘴,通過核磁共振去看腦區的反應的地方是一樣的。讓人去做某個動作和想象做某個動作是在大腦前運動皮質,而不是小腦,小腦是指揮你怎麼樣去運動,但是對應的大腦皮質有些運動的概念。有個假說就是有一個或多個腦細胞就是對應那個動作的概念。

現在有個我比較喜歡的假說,就是其實我們大腦皮質的一些細胞對應一些概念。比如喝水,看到人喝水,這個腦細胞可能就被啟用,讀小說讀到有人在喝水,這個腦細胞也會被啟用。所以說為什麼讀小說大家有身臨其境的感覺,就是說視覺刺激和文字刺激都能刺激那個腦細胞,那一個或多個腦細胞就是對應這個概念。每個人理解語言的時候肯定是不完全一樣的,因為每個人經驗不一樣。腦細胞被啟用的過程是,成長過程中你的經歷形成那些腦細胞啟用的機制,相關的一些概念容易被聯想出來,每個人容易聯想的事情肯定是不一樣的。但大家肯定有一些共性,如果差太多就沒法交流了。腦細胞表示的概念還有很多共性的東西,使得我們能夠做交流,能共同去做事情。既有共性,又有個性。

整個理解語言的過程就是啟用相關的所有腦細胞對應的概念,把它們聯絡起來,然後還有自身體驗的這種聯絡,這就是每個人對語言的理解。這個過程其實是非常複雜的。有人說意識佔我們大腦處理的2%,有個人極端的說法是下意識佔98%,就是說對語言的理解和處理實際上是在下意識中進行的,整個過程非常複雜,而且是並行處理,牽扯到到裡面的很多個模組,達到了所謂對語言的理解。說話、寫和看到的東西都是symbol,都是非常表層的東西。它背後牽扯到,產生或理解這個文字元號時背後的大部分東西都是在我們大腦裡無意識的情況下進行的。這是非常複雜的,怎麼去把它發掘出來,到底是怎麼一回事兒,非常複雜。本身大腦規模又非常大,大家知道大腦有10的11次方的個神經元,15次方的連線。

雷鳴:對,1000億的這麼一個複雜的系統。

李航:對,就是這麼一個複雜的系統,這麼一個複雜的現象,我們要去再現這種理解的過程,從現在的技術來說是非常困難了。

雷鳴:其實對大腦的研究現在在相當初級的階段,我也關注比較久,基本上就跟你說的一樣,大概到腦細胞啟用這個研究,只能對特別簡單的一些低等生物做一做,對人還是做一些腦區分化和相關性的一些研究。

其實深度學習的發展跟對大腦的理解有很大關係。現在不知道還算不算,一段時間以前我記得還有兩個派別,一個態度是說盡量要了解清楚大腦的結構,然後進入模擬大腦的過程,模擬得足夠快,就會產生通用智慧。還有一個就是說,造飛機不需要造出一個會扇翅膀的。我們大概瞭解清楚了,用機器的告訴照樣可以超過。我們不知道哪個是最終答案,但我覺得研究大腦的結構肯定能夠促進人工智慧的發展,人工智慧的發展反過來也會促進我們對大腦的研究,這是相輔相成的。

如果在座的大家對人工智慧感興趣的,還是比較建議大家去讀一讀神經生物學。神經的結構、大腦這些看一看會對大家很有幫助。大腦是怎麼做決策的,意識、直覺、痛苦,行動這些都會講到,挺有意思的。比如說我說一句話,不要想一個紅色的蘋果,你們腦子裡有沒有一個紅色的蘋果?所以勸人時不要說,你不要哭了,你別難受了,這完全起不到任何作用,因為他聽到的就是難受,就是哭。小小地講一下大腦很有意思的這一點。

雷鳴:自然語言研究裡還有很大一部分,叫做知識庫,就是嘗試建立一個知識表達。現在知識庫的研究在整個 NLP中處於一個什麼位置呢?在以深度學習方法為主流的NLP中,還會有它的位置嗎?

李航:這是很熱的一個領域,研究很多。但是這方面我看的東西不是特別多。我更關心的是結合應用。這跟你剛才提的另外一個問題相關,就是怎麼樣去定義知識。如果不是應用驅動的,而是純粹去定義知識的話,到目前為止我們看到的結果都不理想。你建完了很大的知識庫,也不知道該怎麼用。就是說,知識表示是不是合理,如果沒有一個明確的應用,就很難判斷。目前對人類語言機制的理解並不清楚。應用驅動、資料驅動是我們的主要想法,知識庫建設也應該是這樣。大家現在在朝這個方向走,有一個大趨勢。我不知道你們注意到沒有,大概4、5年前知識圖譜這個概念就很火。很多公司都在做。那時有些很有野心的專案,比如要做巨大的知識圖譜等等。這些專案後來基本都停頓了。大家發現,真正要做這種通用的知識庫還是很難的。就我瞭解的範圍內的共識,是說其實可以做一些領域知識庫,比如說醫療知識庫。又比如說我們在華為做了通訊領域知識庫。這是更現實的。在應用裡面去使用,能夠解決實際的問題。

這是知識庫方面的一個趨勢,或者說是動向吧。應該結合到實際的應用裡面。你建了知識庫無外乎就是希望大家去使用這些知識庫。我們希望,如果Neural Symbolic Processing 這種新的技術有突破的話,如果知識的獲取和檢索能夠解決的話,大家就能夠更好地去使用知識庫。這是最基本最重要的應用。從這一角度來看,我們沒有特別關注知識庫本身,而還是以應用驅動、資料驅動,看神經和符號的結合。

雷鳴:李航老師從科研界出來,在產業界摸爬滾了一段時間,觀點是典型的以應用為驅動。用得著的專案,我們就放進去用;用不著的,就先放在那裡,先慢慢研究。我也是這樣的人。(笑)

另外,剛才李航老師也說到,有一些我們認為很高大上的技術,現在作為通用的解決方案可能還非常困難。可能由於運算能力不夠、資料不夠,甚至是模型的複雜度不夠,或是理論模型還不能支撐。這時我們可以在一個小領域裡先應用它,降難度,限場景,先把它用起來,有時發現,在vertical的小領域裡面,它還是挺好用的。

好,下面我們看一下同學、觀眾在我們的微信群、公眾號和網上直播中提出的問題。一個同學問,主流的聊天機器人,比如小冰、小娜等等,現在主要是用什麼技術實現現在的結果的?

李航:不說具體的系統,聊天的技術一般來說主要還是基於檢索的。產生式的對話系統真正到了實用階段的我們還沒有看到,或者說看到的不多。因為有很多風險。有一個風險是,它說的話可能都是對的,但是它說的事實是錯的。比如你問它,姚明身高多少?它說,1米2。這種時候你還能判斷出它是錯的。但有時候無法判斷,就很碼放了。深度學習不知道怎麼去控制這個系統。不知道在什麼時候能讓它說出準確的答案。

我們現在其實也做了一些研究,還都是比較偏基礎的一些東西,到使用階段還有一些距離。即使聊天機器人,裡面也還不是一些實用的技術,基本上都是基於檢索的多輪對話的技術。簡單說就是上下文對齊、指代消歧,這樣的事情也能區域性地做一做,但缺少一個整體的多輪對話的模型。我剛才也說到,現在任務驅動的時候,有馬爾科夫決策過程,但如果是閒聊,是open 的,那麼都沒有一個很好的數學模型去刻畫這一過程。所以這還是非常難的一個事情。

雷鳴:下一個問題。為什麼國際會議上都是用英文的資料集,大家比來比去,為什麼中文的 NLP 研究相對就少一些?

李航:沒有啊,現在越來越多了。這是研究者的話語權的問題。現在做中文研究的學者越來越多,而且中文現在越來越重要。20年前,中文的資料就更少了,現在中文資料已經越來越多了。同時英語也是作為國際性的語言,大家更容易去用。這不是什麼大的問題。

雷鳴:好,有同學問,NLP 和創業相結合的話,有什麼比較值得做的東西?

李航:這是個很好的問題。人工智慧還是要跟具體的業務結合起來。自然語言處理也一樣。這是第一個要定。第二個要點我剛才其實也講到了,你需要去判斷,你做的NLP 系統其效能能達到的上界,和你面對的需求所要求的效能的下屆是否能對上?這是非常重要的一個判斷。如果你預測未來技術發展到某個階段,能使上界提高到滿足或超過需求下界的水平,就可以考慮結合實際的應用了。這個場景是非常多的。有很多場景裡,我們都可以使用NLP,來把它做得更好。其實我整晚的課都在強調這兩點:一個是應用驅動,或者說需求驅動;另一個就是這個上界下界的事情。

雷鳴:李航老師高屋建瓴。我對創業這塊比較熟悉一點。我們現在能看到 NLP 相關的創業,大體說有兩類。一類是指令式的,比如智慧家居,你下達指令,讓它開燈關燈;車載環境下也是指令類。車載環境真的不方便用手了,智慧用嘴去下達指令,你可能會說,給我老媽撥個電話,或是把剛剛收到的微信資訊讀一下。另一類是QA 類的,基本應用在客服上。這一塊最近用得非常多。大企業會自己做客服系統,藉助自身大量的客戶積累,去實現問題和回答的匹配。當然有一些中小企業和傳統企業,沒有這個能力,所以有一些創業公司就切進去了。這種情況也不少。另外還有一類,就是利用NLP 技術對以前積累的資料和知識進行分析和處理,比如文字構成的知識庫,像卷宗、病歷等等,用 Watson 這樣的系統去分析它,嘗試發掘一些規則的知識。

大體上來講,大公司,比如華為,有人力、財力、物力,再加上有資料,同時還有應用場景,你去跟它搶這個市場難度很大。也不是說完全沒有可能,但難度很大。而有一些行業,比如醫療,大公司也沒有資料,都要去搶。這相應來講還有一定機會。

再問一個問題。上節課上徐偉老師講過,有一個調研,調研了一百位科學家,這些人中有一半人都認為,2050年之前,強人工智慧有超過 50% 的可能性會實現。當然你可能不同意這種說法。顯然,通用人工智慧應該能理解人類語言。這是不是意味著自然語言處理在接下來的三十年間也會有很大的發展?或者說,到最後,NLP的問題會等價於通用人工智慧的問題?

李航:有一個說法我比較認可,就是未來的5年、10年,我們可以預測。20年的話,基本上就不能預測了。2050年的事情,真的誰都很難預測了。返回頭說,十年前我們能預料到語音識別會達到現在的水平嗎?十年前可能沒有人能夠預測得到。很多東西不好預測,預測未來是一個挺難的事情。尤其是現在技術突飛猛進,發展這麼快,各種路數都出來,你知道哪邊突破了?這都很難說。

還有,通用人工智慧也沒有一個準確的定義。在我看來,通用人工智慧會在未來10年、20年在一定程度上有突破,我也持這種觀點。如果我們把通用人工智慧定義為把語言、視覺、聽覺等所有這些能力綜合起來的一種能力,那麼是完全有可能的。因為傳統上認為人工智慧太難了,所以大家把它分而治之,研究視覺的,研究聽覺的,等等。現在如果說要通過類似深度學習的方法把這些串起來,這是可能的。比如說你把影象識別和語言處理放在一起做。其實人在成長過程中,學習最基本概念的時候,影象、語言等等也是同時來學習的。從這種意義上說,未來甚至不用那麼長的時間,就能看到一些成功的案例了。現實中我們已經看到一些多模態的智慧結合了。但是這還不能說是達到語言理解了。我覺得從這個意義上說,語言理解就更難了。

雷鳴:對。上一次我跟徐偉探討時,也說到了通用人工智慧的定義問題。我們當時有一個簡單的小共識,認為它不是用解決什麼問題來定義的,而是可能要看它的學習能力。比如說跟我們人類一樣的通用人工智慧,你讓它學開車,人用一個月學會,它也可以用一個月學會;然後還是同樣的一段程式,去讓它學圍棋,它和人類一樣,花了三年時間,變成了業餘幾段。從學習能力來考察,可以認為它是實現了通用人工智慧。

李航:對對,這個我同意。可以從學習能力來判斷。

雷鳴:對,就是同一套程式,幹啥都行。這是蠻有意思的探討。

李航:對,我同意。

雷鳴:未來的事情確實真的都不好說,你剛才說返回頭看,其實就算往回推一年,去年的4月份,誰也不知道 AlphaGo 能贏人啊。那時候大部分人認為還是贏不了的。

再問一個問題的,剛才咱們也提了關於知識的問題。我們知道,神經網路沒有一個明確的儲存,雖然它存起來了,但不知道存在哪裡了。現在有一種網路,叫memory network,裡面加了記憶體。未來發展它的潛力會不會比較大?加了 memory 之後,包括推理、自然語言處理等方面的能力會不會有一個比較大的提升?還是說現在看也就是一個架構而已?

李航:剛才我說的神經符號處理,就是其中一部分,我覺得這個東西是非常非常重要的。時間關係我今天不能講太多。我今年還會做一兩個報告來講這個事情。人的一個很重要的特點是能夠把過去的事情都記憶起來,可以把記憶裡面這些知識和事實的資訊都能夠串聯起來。機器現在就沒有這樣的能力。AlphaGo就沒有一個記憶的能力。如果能夠把知識、資訊不斷往裡儲存,根據需要檢索,如果有了這個能力,對機器智慧來說是非常大的提升。

雷鳴:我們現在看不到 neural network 裡顯式的記憶點在哪裡,但是我們發現它是有隱式的記憶的。就像你剛才說的,問答在它的裡面跑了幾回,它就記住了,好像是記在什麼地方了。那麼是不是一定要顯式的記憶才會有效?還是說只要網路足夠的複雜,其實它也通過網路結構實現了記憶呢?

李航:是這樣的,它在記語言的使用模式的時候,比如句法啊、回答問題的反式啊,等等,隱式記憶也許是可以的。但像知識啊、資訊啊,這種事實性的東西,我們還是希望它是顯式的,讓人能夠看到,能夠檢驗。

雷鳴:有可解釋性。

李航:對,它需要是可解釋的。如果長期記憶這種機制成功的話,神經網路能夠不斷去記住新的東西,那它就會越來越強大。

我再多說一句,好萊塢電影裡面會有人和機器人談戀愛。那太遙遠了。第一步,機器首先需要有自己的意識。意識有很多定義,一個最基本的定義,是說如果一個系統能對外界的變化產生反應,那就是一種意識。最簡單的意識,比如說溫度計,或者向日葵,都可以看做是有最基本的意識的。

雷鳴:這麼說人工智慧已經有意識了?

李航:從這個意義上說,是的。但人工智慧沒有自我意識。它不知道自己是誰。第一,有了意識;第二,如果你能有記憶,你就又進一步了;第三,如果你有自我意識,你就有可能以此為基礎生髮出情感。這樣才可能和人類戀愛。所以說,目前的人工智慧可以說已經有了最基本的意識了;如果它現在又有了記憶,它就能夠把它整個的歷史串起來了,我想這是整個智慧機器在朝著自我意識的方向上又進化了一步。這件事是很激動人心的。

雷鳴:也有一點嚇人(笑)。好,感謝李航老師的分享!

視訊回放連結:http://www.iqiyi.com/l_19rrcceoer.html 
課程介紹

“人工智慧前沿與產業趨勢”課程由北京大學開設,並面向公眾開放。課程由人工智慧創新中心主任雷鳴老師主持,共14節,每節課邀請一位人工智慧領域頂級專家和行業大咖作為主講嘉賓,就人工智慧和一個具體行業的結合深度探討,分析相應技術的發展,如何影響產業,現狀及未來趨勢、對應挑戰和與機遇。所有課程相關資訊、通知都會在下方的公眾號釋出。

           

給我老師的人工智慧教程打call!http://blog.csdn.net/jiangjunshow

這裡寫圖片描述