倍可親

回復: 1
列印 上一主題 下一主題

看計算機舞文弄墨: 微軟對聯背後的故事

[複製鏈接]

2379

主題

7618

帖子

7011

積分

四級貝殼核心

Rank: 5Rank: 5

積分
7011
跳轉到指定樓層
樓主
廣南子 發表於 2008-11-4 05:09 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
        微軟對聯繫統第二版在2008年春節之前10天終於上線了。我非常高興地看到經過自然語言祖和創新工程組的同事們半年多的努力,網站以一個嶄新的界面加上一個水平更高的對聯繫統注1帶給用戶更加美好的體驗。我非常喜歡創新工程組同事鄒放設計的漂亮的界面,有兩個大紅燈籠,燈籠下面垂掛著兩行對聯:

新年納餘慶,嘉節號長春
        據說這是中國最早的一幅對聯,是五代的后蜀的國王孟昶寫的。從那時候起,對聯就逐漸開始流行了,成為中國文化的最典型的代表。為了配合上線,在微軟亞洲研究院的博客上,蔣龍在公共關係組的同事葛瑜的幫助下,投放了一篇「看計算機『舞文弄墨』」的博客注2。

          雖然我們並沒有做任何商業宣傳,但是上線當日就創造了單日獨立訪問人數5萬人次、每日頁面瀏覽量達50萬的「票房紀錄」。許多人發帖,呼籲大家使用這個新奇的軟體。在百度搜索一下「微軟對聯」,一下子就達到93萬的記錄。這對於一個研究項目來講,似乎是一個奇迹。

          用戶通過微軟對聯繫統,似乎在進行一次穿越中國文化的發現之旅,找尋中國文化滲透到每一個漢字,每一個詞,甚至每一個筆畫上面的千年沉澱。又似乎在跟電腦的默契配合,體現網際網路時代每一台計算機背後的骨子裡的一點點的創新、少許的幽默和對時弊的憤世嫉俗。

          我無聊的時候,總是愛到網上去看看有沒有什麼有趣的評語。這就像看著自己的孩子一天天地長大。下面摘錄兩則我看到的比較有意思的評論。

評論一:
          「微軟研究院的這套對聯機真的是很好很強大,那天是在大旗網外鏈的一個論壇上看到的,帖子很熱,人氣很旺,從上到下認真的看完每個對聯之後,對微軟的這套對聯繫統那真是佩服的五體投地。
          咱們可以先看看飽受好評的幾個對聯:上聯:毛林周劉華鄧江胡,下聯:秦漢晉隋唐宋元清,橫批:震古爍今;上聯:物價並不高,下聯:市場已經遠,橫批:對酒當歌。

評論二:
          我也從來沒有在家門貼春聯的習慣,但是老爸喜愛書法藝術,也略有小成,用著這套好玩的微軟對聯機,心想:趕著春節將至,不如編個春聯讓老爸寫寫,也蠻熱鬧喜慶的,即成上聯:木土杜家喜迎吉祥鼠,對聯機略做運算即成下聯:車干軒戶春接富貴人,橫批:駿業順風。」

          我常常在思考,這個微軟對聯繫統究竟有什麼值得總結的地方。看到微軟對聯,再看到這麼多網上的評論,我的腦海里就總象在放電影一樣,把這個歷程里出現的人物和有趣的事情一幕一幕地閃現出來。值此微軟研究院十周年之際,我想確實應該趁現在記憶還清晰的時候,把這段歷史好好地總結一下,以便讓十年、二十年之後的人們還能夠看到曾經發生的有趣的故事。

誓與李敖比高低
          微軟對聯這個項目,跟前任院長沈向洋大有淵源。此事說來有點話長了。

          2004年底的時候,沈向洋把我叫去,說搞個自動對聯吧。所謂自動對聯,就是說人出上聯,由計算機對出下聯。他之前跟幾個人都聊過這個設想,所有的人都告訴他別想了,不可能做出來。他失望,不甘心,反覆提起來。「反正你是院長,你說做就做吧。」大家說。有點像傣族的潑水節,潑的都是冷水。

          他跟我說你能做也得做,不能做也得做。我說我肯定做,而且肯定能做出來。不過,要允許下聯有多個候選,還要允許人機交互。另外,我需要時間。我當時可說是窮困潦倒,自然語言組不足10人,有兩名骨幹即將轉到微軟別的部門去。還有幾個項目同時在做技術轉移,包括搜索引擎的拼寫檢查。大家還要趕寫很多文章。我就從清華大學中文系招了一位同學,他的名字是馬艷軍,聽上去像一個女孩的名字,人也是彬彬有禮的。

          我設計了一個簡單的模型,把對聯的生成過程看作是一個翻譯的過程。給定一個上聯,根據字的對應和詞的對應,生成很多選字和候選詞,得到一個從左到右相互關聯的詞圖,然後根據一個動態規劃演演算法,求一個最好的下聯出來。一個好的下聯其評價標準也很簡單,第一就是它跟上聯的對應程度,一般用詞和詞的對應概率來代表,第二就是生成對聯的語言模型,就是衡量它像不像一個對聯。馬艷軍在我的指導下,在兩個多月的時間裡,根據這個思路,就做了一個簡單的對聯生成系統出來。我於是向沈向洋報告進展,這也是沈向洋第一次審核這個項目。

          在他辦公室里,我給他看了這個簡單的系統輸出的幾個結果。他看過之後,很驚訝地說,看來我們有戲呀,繼續努力吧!馬艷軍三個月之後,導師要求他回去,我只好去找語音組幫忙提供新的學生。我曾經在語音組干過半年的經理,有點人緣。周健來很慷慨地介紹了吳法洲同學,他是清華軟體學院的研究生,曾經幫助健來做了手機上的輸入法。吳法洲同學來了之後不久,我又請我的實習生蔣龍同學加入。後來沈向洋讓他在北航的預定將來要讀他的博士的兩位實驗學院的大四同學加入這個研究小組。女孩子叫陶李天,男孩子叫蘇昊。我當時又請了北京大學中文系的兩位同學整理從網路上挖掘的對聯數據以及生成的對聯詞典。

          後來是每隔三個月,沈向洋就會安排一次評審。每一次都鼓勵說,大有進步。每一次都強調「要多挖數據呀,沒有數據不行啊」。為了加強數據挖掘,他特別請王堅派人幫助加強數據挖掘。王堅就派了陳偉柱來,我就請偉柱幫助從網路上挖掘更多的對聯數據。偉柱果真了不起,在兩個月的時間裡,很快挖掘了大批的對聯數據。有了更多的數據,系統的性能得到了大幅度的提升。然後大家就討論能不能把橫批做出來。蔣龍同學很聰明,在一次開會的時候提出了一個方案——通過語義距離計算來和已有的上聯、下聯的句子最佳匹配的橫批。蘇昊根據這個方案實現了橫批模塊。我們於是就盼望著下一次給沈向洋做彙報的時候給他一個驚喜。當時的院長助理李世鵬安排了時間。在五樓的一個會議室裡面,我給沈向洋和李世鵬演示了最新的對聯繫統。沈向洋出了一個上聯:「李敖對聯強」,電腦沉思了一毫秒,對出來「魯迅絕句多」。沈向洋說:「不錯,那麼橫批呢」。這時候我很忐忑,鬼才知道會對出來個爺爺還是奶奶。瞬間結果出來了,系統對出來的橫批是「語妙天下」。沈向洋一拍桌子,說「絕了!」。

          那個時候,沈向洋滿腦子都是要找李敖比一比。我一直不敢。他說不要怕,輸了就輸了,反正是電腦,也沒有什麼丟臉的。如果要是贏了,我們就賺大了。我說要是限定時間,比如1秒鐘之內,我們准贏。要是不限定時間,比如任意由李敖想,那我們准輸。當時,沈向洋甚至設想了比賽過程:請幾個評委出題,讓計算機和李敖比一比;搞一個圖靈測試,把電腦的結果和人的結果,讓用戶評價。如果用戶評價電腦結果好的次數比較多,則電腦就算贏了。那一年,沈向洋和洪小文、金俊等人到台灣訪問的時候,特意跟李敖一起吃飯,席間提起此事。李敖說,「我才不比,贏了沒有什麼了不起,要是輸了我一世的英名就完了。」李敖的聰明可見一斑。這件事也就只好掛起。

西湖邊上「秀」對聯
          我們的對聯非常榮幸地在三次二十一世紀計算大會上由我進行了演示。第一次2005年在杭州,第二次2006年在清華大學,第三次2007年在南京。據我所知,在所有的二十一世紀計算大會上,微軟對聯繫統是唯一一個三次演示的系統。確實令人驕傲。微軟對聯還被認為是基於數據和基於實施(deployment driven research)的研究戰略的經典。我這裡再給大家講一講在演示時發生的故事。

         第一次是2005年,在杭州大會堂。我們住在西湖蘇堤春曉旁邊的香格里拉飯店。沈向洋要求我演示微軟對聯。我心裡非常焦急,因為當時的系統非常脆弱,基本上還不敢隨便讓別人試,只能演示自己試驗過的例子。可是到了杭州,一定要有幾個跟杭州有關的例子。我吃過晚飯,就心思沉重地在西湖邊上漫步。大有唐代詩人賈島月下苦思「僧敲月下門」和」僧推月下門」孰好的架勢。我不經意地抬頭看到路邊暮色里蘇堤春曉的指示牌,知道到了蘇堤春曉。於是馬上想到蘇堤春曉,配上個「秀」字不正好是一個上聯嗎?馬上回旅館打開系統試驗,還真是對出來個「平湖秋月明、平湖秋月新、平湖秋月寒、平湖秋月香,還有麴院風荷清、麴院風荷新、麴院風荷美之類的。接著又發現了幾個另外跟西湖有關的不錯的例子。第二天在沈向洋的講座里,他邀請我上台演示微軟對聯。這是該系統第一次在公眾面前演示注3。第二天,很多報紙就相繼報道了微軟對聯繫統,其中杭州《東方早報》的記者劉文釗的報道寫得繞有趣味注4。

          我印象最深的是在2007年南京舉行的二十一世紀的計算大會。這是微軟對聯第三次在這樣的大會上演示。沈向洋在演講時,要求我演示微軟對聯注5。為了入鄉隨俗,當時在做對聯演示的時候,我想到了朱自清的一篇著名的散文《槳聲燈影里的秦淮河》,於是我將「秦淮河槳聲燈影」用做上聯,系統馬上生成了很多各具風格的下聯,在隨意選擇了其中一條「松花江水色月光」作為其下聯。接著,我們進一步選擇了橫批,於是一個「萬民同慶」非常貼切地印入眼帘。

          接著,我給系統出了一個「千江有水千江月」的上聯,這裡面有兩個字是重複的,一個「千」,一個「江」,對聯繫統則巧妙地對出了「萬里無雲萬里星」作為下聯,然後以一句「縱橫天下」作為橫批結束。

          其實這個對聯是我在此之前送給沈向洋的。因為他當時即將奉調回微軟總部擔任全球搜索技術開發的副總裁。他是南京人,對南京懷有深厚的家鄉情誼。這次他在南京的二十一世紀計算大會上的演講,流露出回到家鄉又要別離家鄉的感覺,所以,我於是特意演示了這個對聯,表達對他的深深的尊敬和祝福。

此外,在這次大會上,我們還展示了兩個比較絕的對聯:

對聯一:
上聯:鳳凰台上鳳凰游(選自李白詩)
下聯:蝴蝶泉邊蝴蝶夢
橫批:麟趾呈祥

對聯二:
上聯:此木為柴山山出(拆字聯)
下聯:白水做泉日日昌
橫批:景色怡人

快樂對聯快樂心
         微軟對聯完成之後,給我和很多人帶來了許多快樂。我們在聚會時候胡謅一些上聯,看看產生什麼下聯和橫批,因此產生很多熱烈的探討。有的同事離開北京到其他地方去生活,我也會生成一個對聯贈送給他。有人調侃說,這是世界上最便宜的卻又是最有紀念意義的禮物了。

          來自總部的印度朋友Raman Chandra,他參與馬可波羅計劃到微軟亞洲研究院訪問五個月。他的太太Koty Jane後來也來到北京。他們伉儷在北京度過了難忘的時光。

         在此期間,我和我太太還有女兒星美曾經在一起有過交流,吃飯,聊天,很投機。在他們離開中國之際,我感覺戀戀不捨,於是就用微軟對聯把他和他太太的名字輸入,對出一個橫批,作為離別禮物贈送給他們。

上聯:陳睿蒙
下聯:簡凱迪注6
橫批:展翼鵬程

          我還記得張亞勤曾欲送即將退休的微軟雷德蒙研究院前院長凌大任一個禮物。他的秘書要求我寫幾句古雅的中文以表心意,供亞勤參考。我絞盡腦汁,寫不出來。於是求助微軟對聯。我把凌大任名字嵌入到上聯里,輸入 「縱橫意氣凌大任」, 結果系統對出「上下春風倚青雲」,橫批是「錦繡江山」。

          在微軟深圳移動部門和微軟MSN部門同事的支持下,我們的系統很快實現了手機版本。通過簡訊或者彩信方式可以獲得下聯和橫批。2006年末,經理們到香港參加中文大學舉行的第一屆微軟亞洲研究院聯合實驗室會議。回來之後在珠海短暫停留兩日繼續討論公司業務。我因為要去探望我在深圳工作的哥哥,就又逗留了一日。李世鵬因為要去台灣做一個特邀報告,因此也逗留了數日。晚上的時候,我和李世鵬在蛇口的一家酒吧喝啤酒。酒吧在一個輪船上,坐在船上可看到一輪明月高高地掛在天際。水光澹澹,微風習習。遠處的香港如同海市蜃樓一般漂浮在海月之間。李世鵬詩興大發。出上聯:遠看香港朦朧燈景。他把上聯發用手機發簡訊給對聯的伺服器,馬上收到了系統回復的一個簡訊:「看看您的大作吧,上聯:遠看香港朦朧燈景,下聯:遙望神州寂寞月光。還滿意吧,回復88看更多內容。回復8+文字,重新出上聯。」世鵬又出上聯:「春花秋月何時了」。系統回復 「暮雨朝雲去不還」。這樣一唱一和,不覺夜色已深了。真有「不覺碧山暮,秋雲暗幾重」之境。

電腦對聯成功決
          我經常在想,為什麼這麼一個聽起來有點天方夜譚的項目居然獲得了如此大的成功?到底有哪些地方值得今後的工作借鑒呢?

          首先我認為,得益於沈向洋的匠心獨運的選題。在此之前,重慶大學陳廷槐教授曾經給我寫過一封信,尋求在計算機自動生成詩詞曲聯領域的合作。當時為此事跟沈向洋請教過。沈向洋認為這個題目太難了,最關鍵的一點就是生成的詩詞的意境和表達形式可能是發散的。很難說什麼是對的,什麼不對的,因此不能有效地評價,而能夠進行自動評價是關係到系統可持續發展的關鍵。我們認為對聯需要首先輸入上聯,然後輸出下聯。兩者已經要麼相對,要麼相合。在形式上,上聯、下聯要符合平仄,字數、詞數要相當,而且上下聯文字使用的規律要一致。譬如上聯出現了疊字則下聯一定要出現疊字,上聯出現了疊音則下聯一定要出現疊音。因此在形式上也有衡量的標準。而且,從機器學習的角度來講,輸入是上聯和輸出則是下聯,結構非常清晰,便於學習。

          我們也討論了項目的重要性。對聯的研究,看似小題目,卻牽扯大問題。首先,依靠網際網路和人工智慧技術幫助振興和普及數千年中華文化,於國於民都是大事。在學術研究上,因為涉及到自然語言處理,人工智慧、機器翻譯的重要演演算法的研究,對推動以上學科領域的發展也大有價值。

          第二,我認為本項目的成功,得益於微軟亞洲研究院的創新文化。微軟研究院歷來鼓勵創新,不怕失敗。因此,這樣一個大膽的項目得到了沈向洋院長和繼任的洪小文院長的大力支持,

          第三,這個項目涉及到自然語言處理、網路挖掘、網路服務、界面設計。需要上述種種領域的人才通力配合。微軟研究院各個方面的人才濟濟,而且大家配合默契。良好的組織管理和團隊精神,保證了這個項目的有條不紊地順利進行。同時這個系統也是許多來自不同學校的實習同學一起努力的結果。在此,特別向參加本項目的所有同事和同學表示誠摯的謝意。

          許多人問我下一步的計劃。我在想,利用微軟對聯技術,應該可以試一試絕句和律詩的自動生成了。但願能夠做出來,把中華文明發揚光大。

附錄
一、微軟對聯成長里程
1.2005年春節,申請專利(周明,沈向洋)
2.2005年杭州二十一世紀大會首次公開展示
3.2006年4月微軟亞洲研究院創新日展示,中央電視台報道。
4.2006年9月1日第一版公開上線(http://duilian.msra.cn
5.006年清華大學二十一世紀大會第二次公開展示
6.2007年南京二十一世紀大會第三次公開展示
7.2008年二月第二版問世(http://duilian.msra.cn),流量50萬PV,5萬獨立訪問。
8.2008年8月研究文章「基於統計機器翻譯的中文對聯生成系統在世界計算語言學大會Coling 2008大會宣讀(蔣龍,周明)

二、系統生成經典的對聯:
上聯:蘇堤春曉秀
下聯:平湖秋月明

上聯:預防禽流感
下聯:戒備艾滋病

上聯:滄海一聲笑
下聯:碧天萬里行

上聯:西子盛裝迎貴客
下聯:南國新月照上賓

上聯:月落烏啼霜滿天
下聯:風吹雁過雨連宵
註:此聯上句出自唐朝詩人張繼的「楓橋夜泊」。原詩為「月落烏啼霜滿天,江楓漁火對愁眠。姑蘇城外寒山寺,夜半鐘聲到客船。」

上聯:江山如此多嬌
下聯:風景這邊獨好
註:此聯上句出自毛澤東的「沁園春雪」。

上聯:西湖論劍吾迎盛世
下聯:東海看云何待春風

上聯:娃挖瓦中蛙
下聯:煙掩檐上燕

上聯:自強不息厚德載物
下聯:求實創新勵學敦行
橫批:愛我中華
註:此聯上句出自清華大學校訓。系我在2006年11月在清華大學舉行的二十一世紀計算大會上演示的例子

作者介紹
周明,從2001年至今,擔任微軟亞洲研究院自然語言處理組主任。從事自然語言處理有23年歷史。在1999年加入微軟之前,曾任清華大學計算機系自然語言處理研究組的負責人。他是中國第一個中英機器翻譯系統CEMT-1的研製者,在日本連續10年 (1998-2008) 市佔率超60%的中—日、日—中機器翻譯產品 「J-Beijing」的發明人。他領導的自然語言組在中文分詞、跨語言檢索,機器翻譯等國際競爭中均獲得第一名的佳績。目前他擔任《計算語言學》、《機器翻譯》、《亞洲自然語言信息處理》等國際學術期刊的編委,還曾任世界計算語言學會議、世界人工智慧大會的領域主席,亞洲信息檢索大會程序委員會主席。他的信念是第一要做對的事,第二要用簡單的方法,第三要做認真和執著的人。他業餘時間喜歡讀書,欣賞唐詩、宋詞,當然還有對聯。

注1,對聯繫統的第二版本部署在了微軟亞洲研究院中文網站上:http://duilian.msra.cn
注2,請訪問微軟亞洲研究院博客查看此篇文章:http://blog.sina.com.cn/msra
注3,演示文章鏈接,請參見:http://www.news365.com.cn/csj/csjyw/t20051102_705106.htm
注4,文章鏈接,請參見:http://news.ccidnet.com/art/2049/20051101/362655_5.html
注5,演示文章鏈接,請參見:http://tech.sina.com.cn/it/2007-10-31/17061825203.shtml
注6,Ramam的中文名字叫陳睿蒙, Koty的中文名叫簡凱迪。後者的中文名是周明幫忙取的。

1801

主題

9195

帖子

3363

積分

七星貝殼精英

文化沙龍版主

Rank: 4

積分
3363
沙發
NYLASH 發表於 2008-11-4 07:01 | 只看該作者
電腦,人腦,互相學習。
這個evaluation model 也可以作為學習古詩的好起點  
天行健,君子以自強不息;地勢坤,君子以厚德載物
回復 支持 反對

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 註冊

本版積分規則

關於本站 | 隱私權政策 | 免責條款 | 版權聲明 | 聯絡我們

Copyright © 2001-2013 海外華人中文門戶:倍可親 (http://big5.backchina.com) All Rights Reserved.

程序系統基於 Discuz! X3.1 商業版 優化 Discuz! © 2001-2013 Comsenz Inc.

本站時間採用京港台時間 GMT+8, 2025-8-13 16:50

快速回復 返回頂部 返回列表