2011年3月2日 星期三

IBM 有部識得「撳錢」的電腦

如果有部電腦,輸入《撳錢》問題後自動給我找答案,我豈不是每晚只要安坐家中便會飛來橫財?這樣一個程式需要先進到什麼程度?

拿個例子想像一下。以下哪項公共設施,明天將不會開放?屯門游泳池、三棟屋博物館、沙田瀝源公共圖書館、花園街圖書館自修室。即使毫無頭緒,搜尋答案絕不困難,隨題「附送」的選擇把可能性大大縮窄,只要搜尋四地網址,不難找出開放時段,假若沒有四十五秒的時限,只需懂得上網,可說毫無難度。

對電腦而言,可不是這樣簡單。它首先要「明白」問題,「估計」哪些網頁載着相關資料,取得網頁後還要懂得「理解」文字;舉例,某處寫着「星期一休息」,這五個字與問題相干嗎?「明天」是否「星期一」?「休息」與「不會開放」是否同義?我們想當然的認知,電腦一竅不通。倘若設施名稱與選擇題不完全吻合,例如網頁只寫着「沙田公共圖書館」和「瀝源公共圖書館」,而沒有「沙田瀝源公共圖書館」,那究竟題目所指的是哪間圖書館?網頁上只有「花園街公共圖書館」,而沒有「花園街圖書館自修室」,怎辦?我們習以為常,電腦摸不着頭腦。

編寫一條能夠幫我「撳錢」的程式,差不多要將人類對語言的理解「移植」至電腦,工程之浩大非我一人能及。

IBM 卻有此能耐,經過四年研究,造出懂得玩問答遊戲的超級電腦,還擊敗了兩位人類參賽者。為紀念公司創辦人,此系統名為 Watson,由一百部 IBM Power 750 伺服器組成,運算力相當於二千八百部個人電腦,雖然不能上網找資料,但擁有 15 TB 記憶(即 15,000 GB,上網與否亦無關痛癢了)。

介紹一下這個問答遊戲,叫《Jeopardy!》,1984 年首播至今,在北美十分著名。說得準確一點,這是一個猜謎遊戲多於問答遊戲,主持人宣讀謎面,參賽者鬥快猜謎。像平時猜謎一樣,謎底屬於某些類別(如動物、人物、城市),且會預先宣佈,作為提示。讓我模仿《Jeopardy!》的謎語形式,拿本土事物舉例,以下兩則謎底的類別都是「香港大廈」。

謎面:這幢毫宅的名字,與法國某名勝同。
謎底:凱旋門

謎面:International Fried Chicken?
謎底:IFC

有點 IQ 題的味道,但不是全靠想像力,需要點常識。《Jeopardy!》謎語的範疇包羅萬有,參賽者必須歷史、文化、地理、天文、科學、音樂、法律樣樣皆曉;對 Watson 而言,記憶不是問題,難題在於理解謎面和謎語類別(學術性的說法是「natural language processing」),再從資料庫抽絲剝繭(「knowledge representation」),間中還要運用聯想力之類「非知識性」的解謎技巧。如此「人性化」的電腦程式,起初很多人都抱懷疑態度,但歷史告訴我們不要低估 IBM 這科技界巨無霸。回想十四年前,Deep Blue 擊敗當時世界棋王卡斯巴羅夫,這是很多前人認為不可能的事。IBM 就是有這種破舊立新的文化,並有足夠資源去做些「明知不可為而為之」的壯舉。

Watson 的解謎系統稱為 DeepQA,意指 Deep Question Answering,有深度的「有問必答」,它首先從問題抽出關鍵字,輸入資料庫,尋出一系列可能答案,再用上百種方法測試每個答案的可信性,某答案的可信性夠高,它便嘗試作答。如上面所說,這過程的關鍵在於理解文字,對電腦來說絕非易事,這裡再舉一例。假設謎面是「It was introduced by the Coca-Cola Company in 1963」,另一邊廂,Watson 在資料庫看見「Coca-Cola first manufactured Tab in 1963」(Tab 是一種汽水),Watson 必須懂得「introduce」和「manufacture」同義才能答對,然而兩字並非絕對等同,十分視乎上文下理,當你 introduce 你的太太給我認識,你絕不是 manufacture 你的太太,對嗎?

理解不是搬字過紙念口簧,對電腦來說絕對是一項挑戰。另一例,「John McCain ran for president」和「Usain Bolt ran 100m in 9.58 seconds」,一個「run」字,兩個意思,Watson 也要明白。

說了這麼久,Watson 究竟有幾勁?最好就是觀看它和人類比賽,今日篇幅所限,下星期才能概述賽程,現在讓我說說《Jeopardy!》的比賽形式,替下週埋個伏線。


三位參賽者面對一個大屏幕,屏幕分三十六格(六橫行乘以六縱行),最頂橫行顯示謎語類別,第二橫行是價值 $200 的謎語,第三橫行是價值 $400 的謎語,至最底橫行是價值 $1000 的謎語。抽籤決定誰人開局,開局者可以選擇揭開任何一格,謎面揭開後,主持人宣讀謎面,參賽者必須待謎面讀畢,才能撳掣。最快撳掣者,猜對便加錢,猜錯會扣錢(加減根據謎語的價值),容許補答。最終答中者可以選擇任何未揭的格子,重覆選格子/讀謎面/搶答的循環,直至完成所有謎語。

Watson 電腦一部,怎樣看見或聆聽謎面呢?屏幕揭示謎面時,亦即人類參賽者看見謎面的一刻,Watson 會收到相應的文字檔。有人說,人類閱讀謎面需時,電腦接收文字檔近乎即時,偏幫了 Watson,最公平的做法是替它裝上攝錄機,運用光學字母辨識技術「閱讀」謎面,或再輔以話音辨識解讀主持人話語,這樣 Watson 和人類參賽者才是「平起平坐」。我沒法洞悉 IBM 的想法,以下只是我的想法。據我所知,今日的話音辨識未足以準確解讀日常對話,字母辨識雖然成熟,但 Watson 不僅需要辨認字母,它需要分析眼前的整幅景象,包括那大屏幕會變的三十六格,難度又高一重。以今天的科技可能辦到嗎?我不肯定。無論從技術或市場推廣的角度,猜謎才是 Watson 計劃的「主菜」,對於周邊未臻完善的「伴碟」,IBM 捨難取易,無可厚非。

Watson 怎樣撳掣?當主持人讀畢謎面,亦即規例容許參賽者撳掣之時,一位操作員會給 Watson 打個電子訊號,指示可以撳掣,Watson 根據心目中答案的可信度決定撳掣與否,肯定的話,一隻機械指頭便會按下,像人類撳掣一樣。有個說法,人類可以預計主持讀畢謎面的一剎,Watson 不懂預計,只有等待操作員訊號,因此人類有搶答的優勢。

總的來說,比賽公平嗎?言人人殊,我沒興趣辯論,容我這樣說,IBM 和《Jeopardy!》已把 Watson 的賽內操作和盤托出,所有人類參賽者都是自願,「食得鹹魚抵得渴」吧。

兩星期前,Watson 在全美國電視觀眾面前擊敗兩位人類參賽者,二人絕非泛泛之輩,可說是《Jeopardy!》史上最優秀的兩位。Ken Jennings 保持最長勝紀錄,曾在 2004-2005 年連贏七十四仗,賺得超過二百五十萬美元獎金。Brad Rutter 是累積獎金最多的一人,曾在 2000、2001、2002、2005 年參賽,合共賺得超過三百二十萬美元獎金。

最強勁機器與最優秀人類的對決,雖然勝負已分,下週我會分析賽程,找出 Watson 的強項和弱點。

(2011 年 3 月 2 日 信報副刊)

Technology Review, Scientific American, New Scientist, IBM Research BlogIBM Research Blog 都有些賽前報導,談及猜謎的挑戰和採用的科技,頗值一讀。

Watson 和人類的對決勝負已分,全部在 YouTube。

第一日:Part 1Part 2
第二日:Part 1Part 2
第三日:Part 1Part 2

沒有留言:

張貼留言