問答系統的前生今世
一、前生
傳統的問答系統是人工智能(AI:Artificial Intelligence)領域的一個應用,通常局限于一個非常狹窄專門的領域,基本上是由人工編制的知識庫加上一個自然語言接口而成。由于領域狹窄,詞匯總量很有限,其語言和語用的歧義問題可以得到有效的控制。問題是可以預測的,甚至是封閉的集合,合成相應的答案自然有律可循。著名的項目有上個世紀60年代研制的LUNAR系統,專事回答有關阿波羅登月返回的月球巖石樣本的地質分析問題。SHRDLE 是另一個基于人工智能的專家系統,模擬的是機器人在玩具積木世界中的操作,機器人可以回答這個玩具世界的幾何狀態的問題,并聽從語言指令進行合法操作。
這些早期的AI探索看上去很精巧,揭示了一個有如科學幻想的童話世界,啟發人的想象力和好奇心,但是本質上這些都是局限于實驗室的玩具系統(Toy Systems),完全沒有實用的可能和產業價值。隨著作為領域的人工智能之路越走越窄(部分專家系統雖然達到了實用,基于常識和知識推理的系統則舉步維艱),寄生其上的問答系統也基本無疾而終。倒是有一些機器與人的對話交互系統 (Chatterbot)一路發展下來至今,成為孩子們的網上玩具(我的女兒就很喜歡上網找機器人對話,有時故意問一些刁鉆古怪的問題,程序應答對路的時候,就夸獎它一句,但更多的時候是看著機器人出丑而哈哈大笑。不過,我個人相信這個路子還大有潛力可挖,把語言學與心理學知識交融,應該可以編制出質量不錯的機器人心理治療師。其實在當今的高節奏高競爭的時代,很多人面對壓力需要舒緩,很多時候只是需要一個忠實的傾聽者,這樣的系統可以幫助滿足這個社會需求。要緊的是要消除使用者“對牛彈琴”的先入為主的偏見,或者設法巧妙隱瞞機器人的身份,使得對話可以敞開心扉。扯遠了,打住。)
二、重生
產業意義上的開放式問答系統完全是另一條路子,它是隨著互聯網的發展以及搜索引擎的普及應運而生的。準確地說,開放式問答系統誕生于1999年,那一年搜索業界的第八屆年會(TREC-8:Text REtrieval Conference)決定增加一個問答系統的競賽,美國國防部有名的DARPA項目資助,由美國國家標準局組織實施,從而催生了這一新興的問答系統及其community。問答系統競賽的廣告詞寫得非常精彩,恰到好處地指出搜索引擎的不足,確立了問答系統在搜索領域的價值定位。記得是這樣寫的(大體): 用戶有問題,他們需要答案 。搜索引擎聲稱自己做的是信息檢索(information retrieval),其實檢索出來的并不是所求信息,而只是成千上萬相關文件的鏈接(URLs),答案可能在也可能不在這些文件中。無論如何,總是要求人去閱讀這些文件,才能尋得答案。問答系統正是要解決這個信息搜索的關鍵問題。 對于問答系統,輸入的是問題,輸出的是答案,就是這么簡單 。
說到這里,有必要先介紹一下開放式問答系統誕生時候的學界與業界的背景。
從學界看,傳統意義上的人工智能已經不再流行,代之而來的是大規模真實語料庫基礎上的機器學習和統計研究。語言學意義上的規則系統仍在自然語言領域發揮作用,作為機器學習的補充,而純粹基于知識和推理的所謂智能規則系統基本被學界拋棄(除了少數學者的執著,譬如Douglas Lenat 的 Cyc)。學界在開放式問答系統誕生之前還有一個非常重要的發展,就是信息抽取(Information Extraction)專業方向及其Community的發展壯大。與傳統的自然語言理解(Natural Language Understanding)面對整個語言的海洋,試圖分析每個語句求其語義不同,信息抽取是任務制導,任務之外的語義沒有抽取的必要和價值:每個任務定義為一個預先設定的所求信息的表格,譬如,會議這個事件的表格需要填寫會議主題、時間、地點、參加者等信息,類似于測試學生閱讀理解的填空題。這樣的任務制導的思路一下子縮短了語言技術與實用的距離,使得研究人員可以集中精力按照任務指向來優化系統,而不是從前那樣面面俱到,試圖一口吞下語言這個大象。到1999年,信息抽取的競賽及其研討會已經舉行了七屆(MUC-7:Message Understanding Conference),也是美國DARPA項目的資助產物(如果說DARPA引領了美國信息產業研究及其實用化的潮流,一點兒也不過譽),這個領域的任務、方法與局限也比較清晰了。發展得最成熟的信息抽取技術是所謂實體名詞的自動標注(Named Entity:NE tagging),包括人名、地名、機構名、時間、百分比等等。其中優秀的系統無論是使用機器學習的方法,還是編制語言規則的方法,其查準率查全率的綜合指標都已高達90%左右,接近于人工標注的質量。這一先行的年輕領域的技術進步為新一代問答系統的起步和開門紅起到了關鍵的作用。
到1999年,從產業來看,搜索引擎隨著互聯網的普及而長足發展,根據關鍵詞匹配以及頁面鏈接為基礎的搜索算法基本成熟定型,除非有方法學上的革命,關鍵詞檢索領域該探索的方方面面已經差不多到頭了。由于信息爆炸時代對于搜索技術的期望永無止境,搜索業界對關鍵詞以外的新技術的呼聲日高。用戶對粗疏的搜索結果越來越不滿意,社會需求要求搜索結果的細化(More Granular Results),至少要以段落為單位(Snippet)代替文章(URL)為單位,最好是直接給出答案,不要拖泥帶水。雖然直接給出答案需要等待問答系統的研究成果,但是從全文檢索細化到段落檢索的工作已經在產業界實行,搜索的常規結果正從簡單的網頁鏈接進化到 highlight 了搜索關鍵詞的一個個段落。
新式問答系統的研究就在這樣一種業界急切呼喚、學界奠定了一定基礎的形勢下,走上歷史舞臺。美國標準局的測試要求系統就每一個問題給出最佳的答案,有短答案(不超過50字節)與長答案(不超過250字節)兩種。下面是第一次問答競賽的試題樣品:
- Who was the first American in space?
- Where is the Taj Mahal?
- In what year did Joe DiMaggio compile his 56-game hitting streak?
三、曇花
這次問答系統競賽的結果與意義如何呢?應該說是結果良好,意義重大。最好的系統達到60%多的正確率,就是說每三個問題,系統可以從語言文檔中大海撈針一樣搜尋出兩個正確答案。作為學界開放式系統的第一次嘗試,這是非常令人鼓舞的結果。當時正是 dot com 的鼎盛時期,IT 業界渴望把學界的這一最新研究轉移到信息產品中,實現搜索的革命性轉變。里面有很多有趣的故事,參見我的相關博文:《朝華午拾:創業之路》。
回顧當年的工作,可以發現是組織者、學界和業界的天時地利促成了問答系統奇跡般的立竿見影的效果。美國標準局在設計問題的時候,強調的是自然語言的問題(English questions,見上),而不是簡單的關鍵詞 queries,其結果是這些問句偏長,非常適合做段落檢索。為了保證每個問題都有答案,他們議定問題的時候針對語言資料庫做了篩選。這樣一來,文句與文本必然有相似的語句對應,客觀上使得段落匹配(乃至語句匹配)命中率高(其實,只要是海量文本,相似的語句一定會出現)。設想如果只是一兩個關鍵詞,尋找相關的可能含有答案的段落和語句就困難許多。當然找到對應的段落或語句,只是大大縮小了尋找答案的范圍,不過是問答系統的第一步,要真正鎖定答案,還需要進一步細化,pinpoint 到語句中那個作為答案的詞或詞組。這時候,信息抽取學界已經成熟的實名標注技術正好頂上來。為了力求問答系統競賽的客觀性,組織者有意選擇那些答案比較單純的問題,譬如人名、時間、地點等。這恰好對應了實名標注的對象,使得先行一步的這項技術有了施展身手之地。譬如對于問題 “In what year did Joe DiMaggio compile his 56-game hitting streak?”,段落語句搜索很容易找到類似下列的文本語句:Joe DiMaggio's 56 game hitting streak was between May 15, 1941 and July 16, 1941. 實名標注系統也很容易鎖定 1941 這個時間單位。An exact answer to the exact question,答案就這樣在海量文檔中被搜得,好像大海撈針一般神奇。沿著這個路子,11 年后的 IBM 花生研究中心成功地研制出打敗人腦的電腦問答系統,獲得了電視智能大獎賽 Jeopardy! 的冠軍(見報道《COMPUTER CRUSHES HUMAN 'JEOPARDY!' CHAMPS》),在全美觀眾面前大大地出了一次風頭,有如當年電腦程序第一次贏得棋賽冠軍那樣激動人心。
當年成績較好的問答系統,都不約而同地結合了實名標注與段落搜索的技術: 證明了只要有海量文檔,Snippet+NE 技術可以自動搜尋回答簡單的問題。
四、現狀
1999 年的學界在問答系統上初戰告捷,我們作為成功者也風光一時,下自成蹊,業界風險投資商蜂擁而至。很快拿到了華爾街千萬美元的風險資金,當時的感覺真地好像是在開創工業革命的新紀元。可惜好景不長,互聯網泡沫破滅,IT 產業跌入了蕭條的深淵,久久不能恢復。投資商急功近利,收緊銀根,問答系統也從業界的寵兒變成了棄兒(見《朝華午拾 - 水牛風云》)。主流業界沒人看好這項技術,比起傳統的關鍵詞索引和搜索,問答系統顯得不穩定、太脆弱(Not Robust),也很難 Scale Up, 業界的重點從深度轉向廣度,集中精力增加索引涵蓋面,包括所謂 Deep Web。問答系統的研制從業界幾乎絕跡,但是這一新興領域卻在學界發芽生根,不斷發展著,成為自然語言研究的一個重要分支。IBM 后來也解決了 Scale Up (用成百上千機器做分布式并行處理)和適應性培訓的問題,為贏得大獎賽做好了技術準備。同時,學界也開始總結問答系統的各種類型。一種常見的分類是根據問題的種類。
我們很多人都在中學語文課上,聽老師強調過閱讀理解要抓住幾個WH的重要性:Who/What/When/Where/How/Why(Who did what when, where, how and why?). 抓住了這些WH,也就抓住了文章的中心內容。作為對人的閱讀理解的仿真,設計問答系統也正是為了回答這些WH的問題。值得注意的是,這些 WH 問題有難有易,大體可以分成兩類:有些WH對應的是實體專名,譬如 Who/When/Where,回答這類問題相對容易,技術已經成熟。另一類問題則不然,譬如What/How/Why,回答這樣的問題是對問答學界的挑戰。簡單介紹一下這三大難題如下。
What is X?類型的問題是所謂定義問題,譬如 What is iPad II? (也包括作為定義的who:Who is Bill Clinton?) 。這一類問題的特點是問題短小,除去問題詞What與聯系詞 is 以外 (搜索界叫Stop Words,搜索前應該濾去的,問答系統在搜索前利用它理解問題的類型),只有一個 X 作為輸入,非常不利于傳統的關鍵詞檢索。回答這類問題最低的要求是一個有外延和種屬的定義語句(而不是一個詞或詞組)。由于任何人或物體都是處在與其他實體的多重關系之中(還記得么,馬克思說人是社會關系的總和),要想真正了解這個實體,比較完美地回答這個問題,一個簡單的定義是不夠的,最好要把這個實體的所有關鍵信息集中起來,給出一個全方位的總結(就好比是人的履歷表與公司的簡介一樣),才可以說是真正回答了 What/Who is X 的問題。顯然,做到這一步不容易,傳統的關鍵詞搜索完全無能為力,倒是深度信息抽取可以幫助達到這個目標,要把散落在文檔各處的所有關鍵信息抽取出來,加以整合才有希望(【立委科普:信息抽取】)。
How 類型的問題也不好回答,它搜尋的是解決方案。同一個問題,往往有多種解決檔案,譬如治療一個疾病,可以用各類藥品,也可以用其他療法。因此,比較完美地回答這個 How 類型的問題也就成為問答界公認的難題之一。
Why 類型的問題,是要尋找一個現象的緣由或動機。這些原因有顯性表達,更多的則是隱性表達,而且幾乎所有的原因都不是簡單的詞或短語可以表達清楚的,找到這些答案,并以合適的方式整合給用戶,自然是一個很大的難題。
可以一提的是,我來硅谷九年幫助設計開發 deploy 了兩個產品,第一個產品的本質就是回答 How-question 的,第二個涉及輿情挖掘和回答輿情背后的 Why-question。問答系統的兩個最大的難題可以認為被我們的深層分析技術解決了。
原文轉載自:李維的科學網博客 http://blog.sciencenet.cn/blog-362400-942989.html
來自: http://www.infoq.com/cn/articles/Past-present-Q-A-System