計算機能 “理解” 多少我們的語言了?


編者按:本文作者為微軟亞洲研究院首席研究員周明博士,為我們詳解了計算機自然語言理解的歷史和現狀。

引用1770 年,庫克船長的 “努力號” 抵達澳大利亞昆士蘭海岸。他留下一些船員維修船隻,自己率領一支隊伍出發探險。遇上當地土著居民後,一個船員用手指着身體袋囊裏揣着幼崽跳來跳去的動物,問一個土著,這東西叫什麼?土著説:“Kanguru。”自那以後,庫克和他的手下便如此稱呼這種動物——袋鼠(後來寫作 Kangroo)。很久以後他們才明白, Kanguru 在土著語言中的意思是,“你説什麼?” ——Ted Chiang《你一生的故事》

在地球的任何一個角落,你都能發現在一起的兩個人,總會彼此交談。如果沒人能對談,人會自言自語,對貓兒狗兒説話,甚至對盆栽呢喃。

你或許並未察覺,閲讀這些文字時,自然界的奇蹟正在發生。你我都屬於有這種驚異能力的種族——我們能精確描繪彼此腦中的概念——這種能力就是語言。我們只要張開嘴,發出聲音,或者寫下文字,就能將彼此心中的意念準確地傳遞給對方。這個過程如此輕鬆自然,讓人意識不到它的存在。

然而對最強大的計算機來説,理解人類語言並非易事——這便是自然語言理解的研究領域——所謂 “自然語言理解” 就是人與計算機可以進行有效溝通,計算機能理解用户的意圖,執行命令或回答問題。而作為這個領域的研究人員,我們一直努力向這個目標邁進。

機器翻譯


(老彼得·布呂赫爾畫筆下的巴別塔)

《創世記》第 11 章記載,人類原本説着同一種語言,居住在與幼發拉底河相距不遠的示拿之地。人們利用河谷的資源建城築塔。高塔直達天堂,逼近上帝。上帝認為人類過於自信團結,一旦完成計劃將為所欲為,便決定變亂人們的口音和語言,並使他們分散各地。高塔於是停工,該塔被稱為 “巴別”。

如今,現代交通和網絡的發展令使用不同語言的人們合作和交流的機會比以往更多,因此對理解對方語言,人們有着迫切的需求。

而在 1940 年代,計算機剛剛出現,計算能力相當弱,但那時候就有研究者提出了使用計算機進行翻譯的想法,並進行了嘗試。不過第一次引起公眾關注要到 1954 年,那年 1 月 7 日,美國喬治城大學的研究者和 IBM 利用 6 條規則,250 個詞彙,完成了一次俄英機器翻譯演示——二戰後,蘇聯是美國的頭號對手,瞭解這個國度的一舉一動是那時政府的迫切需求,尤其是科學報告。

60 多條俄文短句,預先轉寫為拉丁字母,內容涵蓋有機化學、政治、法律、數學等領域,由一名不懂俄語的女操作員輸入一台 IBM 701 主機,幾秒鐘後打印出英文結果。這一項目的主要負責人 Leon Dostert 在演示後樂觀地預言:“再有五年,説不定也許三年,用計算機翻譯多種語言就將變成現實”。

這次成功的演示和公眾高漲的熱情為機器翻譯研究帶來了資金,掀起一陣計算機語言翻譯研究的熱潮。而當人們期望過高,承諾又無法兑現時,資助就縮減或取消了。就像那個時代人工智能領域的眾多分支一樣,研究者們低估了問題的難度。

  • “十年內,數字計算機將發現並證明一個重要的數學定理。”(H. A. Simon,Allen Newell,1958 年)
  • “二十年內,機器能完成人能做到的一切工作。”(H. A. Simon,1965 年)
  • “一代之內…… 創造‘人工智能’的問題將獲得實質解決。”(Marvin Minsky,1967 年)
  • “三到八年我們將得到具有人類平均智能的機器。”(Marvin Minsky,1970 年)

許多字詞不只有一個意思,想要正確翻譯一句話,計算機必須消除歧義,選出使句意最為通順的解釋,否則就容易犯荒唐的錯誤。一個有名的例子是 “the spirit is willing but the flesh is weak”(心有餘而力不足),用當時的翻譯系統譯成俄文再譯回英文就變成了“the vodka is good but the meat is rotten”(伏特加不錯,但肉已腐爛。spirit 有“烈酒” 的含義)。

1964 年,美國國家科學研究委員會(National Research Council,NRC)開始關注這個領域長期未能取得進展的問題,進而成立了語言自動處理諮詢委員會(Automatic Language Processing Advisory Committee,ALPAC),調查機器翻譯的研究狀況。兩年後,ALPAC 發佈了一份改變整個領域的報告。報告對當時的機器翻譯持高度懷疑態度——認為當時的機器翻譯比人工更耗時、質量更糟,更燒錢,應當注重更基礎的計算機語言學(Computational Linguistics)研究,注重引入詞典、翻譯例句、人工等手段提升整體的翻譯質量。

這份務實的報告,對機器翻譯研究敲了警鐘。在 ALPAC 報告的影響下,不單 NRC 停止了對機器翻譯項目的資助,那些已建立的機器翻譯研究機構或遭遇行政阻礙,或經費困難,世界範圍內的機器翻譯熱潮突然消失,整個領域空前蕭條——這也是後來被稱為人工智能嚴冬(AI Winter)的開端。

儘管在那之後,個人計算機出現和電子詞典開始流行,讓基於規則的機器翻譯研究在部分國家有所復甦(例如日本各大電子廠商),但研究水平不高,僅在有的場合聊勝於無。

直到 1990 年代,基於數據驅動(譬如大規模雙語對照的數據,和大規模的單語數據)的統計機器翻譯開始興起,這個領域才又重新活躍起來。新思路靠自動學習概率化的翻譯規律(譬如詞對詞的翻譯,n-gram 之間的翻譯,或者短語之間、子樹之間、句型之間的翻譯)來實現翻譯系統。這個時期數據規模越來越大,尤其雙語對照的數據越來越多。那之後的二十餘年,這個領域的研究主流都基於統計機器學習方法。

機器翻譯的難點在於領域遷移和自適應。訓練機器翻譯系統的原始數據可能來自寬泛的各個領域,遇見某個具體領域生僻的詞語、句型時,如何快速遷移,以得到高水平的翻譯頗為不易,因為這些領域的語料庫掌握得少,遷移時知識不足。目前幾家著名的在線翻譯系統,新聞翻譯尚可勝任(因為新聞語料最多),但對銀行、法律這些語料稀缺的領域,自適應能力則薄弱許多。

另一個難點是口語翻譯,因為口語中夾雜着表達不連貫,語法順序顛倒,用詞不精準、重疊、省略等各種現象,而機器翻譯系統大多針對書面語訓練,突然用在口語裏,表現就會一塌糊塗。因此需要加強對口語現象的處理能力,以及對上下文的理解能力。另外,未來的機器翻譯需要與手機語音應用配合,提升對地圖、導航、購物、交友、郵件、新聞閲讀等的支持,在這個方向還有很長的路要走。

2012 年 10 月,微軟研究院的研究取得了階段性的重要成果,微軟研究院創始人 Rick Rashid 在天津的 “21 世紀的計算大會” 上公開演示了一個全自動同聲傳譯系統,他的英文演講被實時轉換成與他的音色相近、字正腔圓的中文,贏得了現場觀眾的掌聲。這項技術是由微軟亞洲研究院和雷德蒙研究院從事語音識別、合成和機器翻譯的很多同事共同開發的。

這一演示背後的關鍵技術——DNN(深層神經網絡)也隨之第一次進入了許多人的視野。在語音識別過程中,DNN 使準確率提升了 25%,而將這項技術應用於機器翻譯解碼優選過程,這項技術令翻譯的準確率又提高了 1-2 個百分點。


在這次成功演示之後的兩年多裏,我們微軟亞洲研究院和位於美國總部的微軟雷德蒙研究院共同努力,不斷地改進中英實時語音翻譯,於今年 4 月發佈了 Skype Translator 實時語音翻譯技術的中文預覽版,讓普通用户也能體驗到實時中英文語音翻譯。

Skype Translator 構建於一個 10 億對量級的超大規模雙語對照語料庫基礎之上,應用機器學習的方法,在海量的候選集中找到最佳的譯文。作為人與人之間的溝通工具,Skype Translator 針對口語對話中常見的問題進行了處理,並提供了許多具有本地語言特色的服務。

有人説,語音識別在過去兩年產生了質的飛躍,而機器翻譯雖然已有六十年的研究積累,但是在處理語音和口語方面則方興未艾,雖然我們用了大規模的語料訓練,但是方法還是十年以前的統計機器翻譯——它正期待着更大的突破。而其中探索利用深層神經網絡在翻譯解碼的有效方法(譬如利用 LSTM 把原文句子經過一箇中間表示向量轉換為目標語言的句子)引起了很多研究者的關注。

問答系統和聊天

引用冬天能穿多少穿多少

夏天能穿多少是多少

上面的兩句話説明了語言的歧義性。人的言辭孤立地看,有時候有些模糊,不過和旁人講話,他們總能領會你的用意。設想你對配偶説:“知道鑰匙放在哪兒了嗎?”如果對方僅僅回答:“是的,我知道。”你一定不會滿意——因為你的真實意思是 “快告訴我,鑰匙放在哪裏了?” 這種相互理解就是所謂的“對上下文敏感”。

不過計算機對上下文可不那麼敏感。例如 “把香蕉給猴子,因為它們餓了” 和“把香蕉給猴子,因為它們熟透了”有同樣的結構,但代詞 “它們” 在第一句中指的是 “猴子”,在第二句中指的是“香蕉”。如果計算機不瞭解猴子和香蕉的屬性,就區分不開。媒體記者們早就開始根據搜索引擎的特點,在網絡文章的標題上儘量堆砌關鍵詞,而不是從讀者的角度來設計標題——他們寧可犧牲原本雅緻的筆觸,也要能夠適應“機械” 搜索引擎的特點。

由於人們使用語言的隨意性和多樣性,帶來了問題理解的困難。給定一個問題,電腦要理解問題的類型(事實類,定義類,選擇性,觀點類等)和答案的類型(人、地點、機構、定義、電影名字,文字序列等等)。比如:

  • 事實類問題:“誰是奧巴馬的夫人?”
  • 定義類問題:“什麼是操作系統?”
  • YES-NO 類問題:“薩達姆還活着嗎?”
  • 觀點類問題:“多數美國人對槍支管制的看法是什麼?”
  • 比較類問題:“諾基業手機和蘋果手機有什麼區別?”

問答系統可以是針對某一個封閉領域的,也可以是無領域限定的, 而後者的難度更大。為了理解問題,計算機需要語義解析,把用户輸入的問句轉換為一個有結構的語義表達式,然後到相關數據和知識庫中尋找答案。很多時候,可能會有多個看似可行的答案候選,問答系統需要根據一個基於機器學習獲得的排序系統進行優選。問答系統的答案可以從結構化的知識庫,或者非結構化的自然語言文檔集合來獲得,如 web,社會關係網絡,新聞等。

目前,我們實現了利用知識庫、web 和社會關係網絡的多種智能體來回答問題。知識庫適合回答事實類的問題,而基於 web 的問答系統,也就是把問題丟給搜索引擎,在搜索結果裏面直接抽取答案,適合於回答時效性很強的問題,如新聞類問題或很複雜的問題。社會關係網絡適合回答主觀類的問題,譬如 “如何考入哈佛大學”,“怎樣才能學好日語” 等。

由於這類問題在社區、社會關係網絡裏面有很多的討論,經過信息抽取和問題匹配之後,可以用來回答相同或者相似的問題。除了以上三種智能體之外,還可以考慮眾包智能,就是由系統把問題導引給該類問題的人(專家、附近的人、社會關係網絡的好友)來完成。如能巧妙利用多智能架構,即可大幅度提升問答系統的精確度和覆蓋面。

問答系統與機器翻譯看似並無明顯關聯,但是兩者實際上可以互相借鑑。機器翻譯的技術可以用於問答系統中,譬如轉述、語義解析等,也可以把問答系統變換為一個從問題到答案的翻譯過程。

我們後來發現,問答系統中使用的技術也恰能借鑑到機器翻譯中,令翻譯的質量明顯提高——過去,機器翻譯需提前在線下實現翻譯模型,而新做法是模仿基於 web 的問答系統,將原句直接拋給搜索引擎,利用搜索引擎的搜索結果動態得到詞彙或者短語的翻譯模型,以及目標語言的語言模型,以實現翻譯候選生成和排序,這種方式對處理新詞和領域自適應頗為有效。

目前幾乎所有的問答系統,僅僅考慮當前的輸入問句,並沒有考慮提問的場景、提問者的特性、以及時間和地點。讀者們大概都有過與微軟小娜、小冰聊天,Siri 或 Google Now 對話的經歷,用户期待當問答系統進入到這些應用時應考慮這些因素以體現個性化。

“個性化” 是對問答系統能力的大考驗——提出相同問題,但你我期望得到的答案卻可能千差萬別。問答系統需要依靠用户的歷史行為了解用户,包括性格、偏好、朋友圈、買過的商品、説過的話,都會影響系統對用户建模,進而決定給出怎樣的回覆才會讓用户感覺更貼心。不過,這些問題目前對問答系統來講還是一個巨大的挑戰。

為了實現自然語言的人機對話,除了問答系統,還要有一個聊天系統。問答系統用於回答問題或者理解了問題之後完成一定的任務。而聊天系統是一個非正式的社會交往需求,用於情感交流與連接。人們在交流過程中,聊天、問答的技能是穿插進行的。同時,為了體現多樣性,答案所採用的句式,以及聊天的回覆風格要根據場景和用户的特點發生變化。

微軟小冰是我們建立自然的人機自然語言對話的重要嘗試。在小冰中,我們除了需要建立問答系統和聊天系統之外,還要根據用户輸入的句子,決定是進入聊天還是進入問答。比如:

引用人: 你都不理我了。(聊天)

小冰: 我怎麼不理你。(聊天)

人: 榮耀 6plus 多少錢? (問答)

小冰: 京東大哥説過是 2,899 元哦。(問答)

人: 你知道的真多呀。(聊天)

小冰: 我應該的呀。(聊天)

人: 你知道李敏鎬嗎 (問答)

小冰: 【一張李敏鎬的圖片】(問答)

而小冰的回覆不僅僅要看當前的句子,還要看聊天的歷史。比如另外一個例子:

引用人:請推薦一款手機。

小冰:你看看這款如何? 華為榮耀 3X 暢玩版,1099 元。

人:我不要華為的,我要 iPhone 的。(系統需要知道產品類別沒變,但是品牌變化)

小冰:那你看看這款 iPhone 如何呢?iPhone6, 5988 元,64GB,金色。

人:我要能支持 128G 存儲空間的。(系統要知道產品類別和品牌沒有變化)

小冰:我看看。那你看看這款?iPhone6, 6488 元,128GB。

人:算了,我還是要華為的吧。(系統需要知道產品類別沒變,但是品牌變化)

小冰:那麼這款華為 P8,最新款,3800 元。怎麼樣?

此外,系統需要對用户的輸入進行理解以判斷用户的意圖。比如:“給我推薦一款性價比高的手機,要諾基亞的。”

User Intent = Recommendation

Product = Select ?ID

Where

{

?ID Category 手機 (cellphone)

?ID Brand 諾基亞 (Nokia)

?ID Facet 性價比高 (cost-effective)

}

在對用户意圖的理解基礎上,要進行必要的對話,以便確認所有必要的信息,來決定接下來的動作,比如推薦,搜索,聊天還是問答。綜合利用聊天和問答技術來形成一個聰明的對話系統,是一件非常有意思的事情。不過這個問題挑戰也很大,它是目前自然語言理解的最核心的問題。我們需要耐心地循序漸進地推進研究。

機器人作家

機器翻譯的應用還遠不止文字翻譯和問答系統,讓我們先看看這兩篇體育報道的開頭:

引用“週日,天使隊在第九局中落後兩分時,情況看來不妙,但憑藉弗拉迪米爾 · 葛雷諾贏得的關鍵一分,洛杉磯天使隊挽回敗局,在芬威球場以七比六擊敗波士頓紅襪隊。”

“週六下午(4 月 24 日),密歇根大學棒球隊在威爾彭棒球場——具有歷史意義的雷 · 費舍爾體育場的所在地,通過贏得四分的第五局比賽,扭轉局勢,最終以七比五贏得了與愛荷華棒球隊在週末舉行的三場比賽中的最後一場。”

如果你無法分辨哪篇是由人類寫的,那你不是唯一一個 ——《紐約時報》

今年 3 月,美聯社宣佈,它們將用軟件自動生成的文字來報道 “大學體育” 這個它們之前未曾涉足的領域。而這些報道背後的寫手,是 Automated Insights 公司推出的一款名為 Wordsmith 的軟件,它不僅能在賽後根據技術統計寫成綜述文章,甚至能根據比賽數據實時評論。這位機器人作家去年創作了 10 億篇文章,每秒鐘就能寫出 2000 篇故事。

不單是體育新聞,去年《洛杉磯時報》在當地地震後僅幾分鐘後,用軟件自動生成了第一篇報道。機器人作家還能解讀枯燥的商業報表、個人健康數據,變成更適合人們理解的文字——或者反過來,將宂長的文章濃縮成一小段摘要。

為了完成摘要,程序首先要蒐集關於相同主題的文章。通常關於一個主題,會有來自多個渠道的文章。然後,提取每篇文章中最重要的詞。算法一般通過詞頻和倒序詞頻來判斷——如果一個詞重要,它在文中出現的頻率就高。但另一些詞,如 “the”、“a” 出現的頻率頗高,但是因為每篇文章都出現,所以對單篇文章的內容則表徵能力不強,反而不重要,算法需要綜合考慮這些特徵。

以這些關鍵詞為種子,便能抽取包含它們的語句,再次篩選這些句子,挑選最重要的幾句話,就能代表所有文檔的摘要了,這種方式稱為 “抽取式摘要”——沒對文字再加工,只把重要的句子抽取出來。還有一種稱為“生成式摘要” 的技術,會對文字進行再整理,將這幾句話揉成一句,還能保留原始信息。不過目前 “生成式摘要” 技術還不成熟,通常我們所見的案例都來自抽取式摘要。

如何判斷摘要算法的優劣?目前的做法是先以人工方式對文章做摘要,再與機器摘要做對比,詞語吻合度越高,算法相對越好。但這種判斷方式並不絕對有效,雖然從原文 “抽取的摘要” 大多數通順,但前後銜接是否連貫,差別很大,用這種測評體系還無法判斷。

對了,關於這節開頭的兩段報道,第一段是計算機,第二段是人類作家的作品。

我們的生活正悄然被自然語言處理技術改變。在寫這篇文章時,我常常一口氣輸入一整句文字的拼音,但很少需要選字。而在幾年前,用拼音輸入法,一次還只能輸入單字或詞組,那時 “整句輸入” 只是個美好的願望。假如單詞出現了拼寫錯誤,或有語法問題,計算機也會提示我修改。在未來,或許你我只用先完成一句話,或一個詞,計算機就能理解你的意圖,告訴你有哪些參考資料,擴展你的寫作思路,成為你的寫作助手。

而我個人與自然語言計算的 “緣分” 或許源自我小時候偶然在別人家發現的一本《唐詩三百首》,由於我非常喜愛所以就借回家天天背,身為地質工程師的父親見我有這方面愛好,便為我訂閲了詩刊。從此我愛上了文學,甚至大學都想考取文科,只是在父親“學會數理化,走遍全天下” 的建議下,才改學理科。但我總琢磨着,計算機應該也可以做與文字有關的事——自然語言處理就正是其用武之地。

2004 年,時任微軟亞洲研究院院長、現任微軟全球執行副總裁沈向洋博士讓我帶領團隊試着搞個自動對聯,立足中國傳統文化做一些創新。我們的研究從機器翻譯入手,把對對聯當作翻譯問題來解決——把輸入上聯對下聯想象成輸入一種語言,再翻譯出另一種語言的過程,只不過是同語言翻譯。在設計模型的時候,我們加入了對聯的語言學約束,譬如平仄和對仗。

我們收集了古今中外的 160 萬對名聯,運用了大數據和翻譯技術,基於機器學習進行自動建模。這個對聯繫統(duilian.msra.cn)於 2005 年推出,用户可以輸入上聯,系統會自動對出數個下聯、並生成恰當的橫批供用户選擇。後來我們做的絕句生成,也借鑑了對聯技術,用户給定創作的主題,系統經過一個交互過程,逐句生成一首詩。跟對聯不同的地方是,在生成某一句的時候,不僅僅要看上一句,還要看前面的所有句子,使得生成的句子前後連貫。

另外,今年我們推出的微軟字謎與對聯以及剛剛發佈的微軟絕句也有異曲同工之妙,它針對字形謎,由謎面迅速分析給出謎底,還可以根據用户的謎底迅速生成謎面。因為謎面和謎底是一個映射和聯想的過程,研發也是基於互聯網平台,對大數據進行蒐集、利用統計機器學習方法自動學習建立智能模型。

在對聯和詩詞基礎上,我們也在考慮如何用計算機輔助一般的文章寫作,就像前面的新聞寫作一樣。比如,給定一個主題,電腦自動形成文章的大綱,然後對每一要點,綜合已有的大規模數據庫和領域知識庫,生成候選句子,作者可以根據需要進行修改。這樣便可大大提高寫作的效率。

在冷冰冰的科技外表之下,自然語言處理技術也能為我們帶來恍然大悟和會心一笑。在大數據、機器學習和互聯網的推動下,語言的理解、機器翻譯、自然語言對話系統、文本生成取得了令人激動的進步,也預示了電腦認知能力可期待的未來。然而人工智能依然任重道遠,通過堅忍與淡泊的研究,不斷地逼近自然語言理解的極限,並將它巧妙地應用在現實系統中連接廣大用户,是與我一樣的研究者們畢生的追求。


資料來源:愛範兒(ifanr)
作者/編輯:愛範兒

如果喜歡我們的文章,請即分享到︰