為什麼 Google 翻譯只重演算法不重語言學的語法結構和規則?

谷歌翻譯團隊的工作地點是在該公司位於矽谷的總部園區,這支隊伍的規模已經擴大了很多。在這個團隊中有幾位德國計算機科學家,但卻連一個純粹的語言學家也沒有,就連奧馳本人也並非真正有天賦的語言學家。相反的,奧馳說道:「我在學習語言時總會遇到麻煩,這也正是機器翻譯的美妙之處:最重要的事情是擅長數學和統計學,然後又會編程,那就可以了。」 via http://tech.qq.com/a/20130917/011394.htm


啊,這是自然語言處理界爭論了很久的問題了,所謂的理性主義(基於規則)和經驗主義(基於統計)之爭。

記得看過一本書上詳細的討論過這個問題,詳情可以移步這篇文章:http://www.52nlp.cn/the-advantages-and-disadvantages-of-the-rationalism-and-empiricism-in-nlp

總結來說,基於統計的方法有如下好處,基於大量數據基礎,有很好的魯棒性,不需要真正理解語言就可以做出相當好的結果。由於人類語言的複雜性,去枚舉一個語言的語法規則,是耗時費力的,以及魯棒性比較差。

就機器翻譯來說,現在的基於統計的平行文本技術已經能夠產生很好的結果了,而且演算法是獨立於語言的。Google用一個通用的演算法就可以在全世界各種語言中互相翻譯,而不需要專門為每一種兩兩語言互譯請專家來編寫系統。試想,人工去為中譯英制定規則,這需要考慮到詞詞對應,語法對應,以及考慮到上下文來解析詞語的二義性,這很難依靠基於規則的方法來實現。

另註:平時接觸到的當前自然語言處理系統中,真正由人編寫規則已經是相當相當少見了,絕大多數都是基於大規模文本庫訓練出來的,根據概率論自動獲取所需要的參數。而且我始終覺得自然語言處理的演算法中,機器不是嘗試去理解人類語言,而是去努力找出最符合人類語言習慣的答案。

再註:後來尋思了一下,似乎這所謂的兩個主義之爭,就只有在那本書上看過(有人提到過吳軍博士的《數學之美》也提到過這個),其他地方也沒記得提到過這個。我覺得吧,實際中,根本沒有這種所謂上綱上線站隊的,只是不同的研究團隊會從不同的角度出發(當然現在基於統計的還是主流),對於同一個問題提出解決方案,反正很多問題都是有硬性的測試集評判標準的,歡迎各種方法,學術界百花齊放得樂呵呵呢。


首先指出,語言學是以語言作為研究對象的一門學科,探索語言的結構和應用。

換言之,語言學是依附在人們常規的語言使用之上的。我們怎麼使用語言,語言學家只能試著去理解,而無法指導我們如何使用。制定規範也只能在一定範圍內影響語言的使用方法。

(下面的舉例僅僅針對中文和英文。)

比如印象最深刻的「明月半牆」,語言學無法給出一個固有結構來「套」這個用法,但所有人都能看懂這句話,語言學家就要去研究、解釋。

人對語言的使用本身也是基於經驗主義,同時在不斷更新詞庫和用法。記得當年第一次在聽到有人跟我說「記得簡訊我」時那種驚訝——原來還可以這麼說!

語言學裡的結構主義本來就是舶來品。大家熟知的(其實就是我)就是英語——嚴格的區分出了詞的角色,比如computer、compute、computation等。在中文裡,都不會依靠嚴格的形式來完成語義表達。

例如「餵豬了嗎」 「豬餵了嗎」 「餵了嗎豬」

新東方的范亞飛老師提到「英文是形合,中文是意合」。
現在看來,應該是說中文具備了面向對象的特徵。
例如上述餵豬的例子,在兩人對話情景中,是絕對不會理解為「豬喂人」,只會理解為「人餵豬」。豬有「進食」這個方法,人有「進食」、「飼餵」等方法,通過「喂」這個action連結在了一起。

為什麼不存在「豬喂人」?基於全文統計(也就是之前接觸過的所有場景),不存在豬具備「喂」這一方法,所以只能是豬被喂。
有「人被豬喂」嗎?有,比如特定小說里,也就是特定上下文場景形成的特定用法。在讀這麼一篇小說的時候,也許你會接受這麼一種所謂設定,但脫離開這種上下文環境,依然只有「人餵豬」。

還有一個值得注意的現象是,網路中出現的新詞能否成為口語也取決於使用熱度(即頻率),例如「節操碎了一地」。「碎了一地」是一個基於我們以前常識的理解性用法或者說語料積累,節操本身屬於抽象概念,並不是實物,無法碎。但在我們不斷的口語化過程中,節操也具備了實物的特性,因此其他方法也就被支持了。例如「節操被狗吃了」、「節操掉了」,如果在這裡說「節操被放在牛仔褲口袋裡坐爛了」,大家也可以快速理解。

由此可以看出,單就漢語來說,我們的種種語言現象是基於經驗主義來學習和擴展而非結構主義

翻譯的本質是理解另一種語言所要表達的含義。而這種含義的映射其實也是基於經驗的積累實現。中國人把經常看到黃皮白壤的叫做「香蕉」,英國人把經常看到的黃皮白壤的叫「banana」。兩種人坐在一起瞎比劃一下,就在各自的小本子上記上「香蕉=banana」,也就形成這麼一種映射。

翻譯自始至終就是個統計的活,怎麼就跟語言學扯上關係了呢?

===========再補一個結構主義沒法解釋的問題===========
「三個包子我就吃飽了」
「三個包子就把我吃飽了」
「去了幾十號人,好不熱鬧」
「去了幾十號人,好熱鬧」


語法結構和規則,本身也是總結出來的,用來解釋現有語言的,並不具備更高的約束力。


從「研表究明,漢字的序順並不定一能影閱響讀」可以看出,我們理解語言不是按照語法,而是按照以前看到過的語句+常識進行組合,其中最先跳入腦海的組合就是我們對這句話的理解。

上面 @張瑞 提到的「明月半牆」,先天盲人就無法理解。「餘音繞梁」也無法被先天失聰者理解。

所以完美的翻譯必須有常識庫。

Google跳過常識庫,直接用描述同一場景的兩種語言文本進行關聯,類似羅塞塔石碑的做法。雖然失去了常識庫的聯想功能(比如明月半牆),但能完成基本語義的翻譯。

PS:英語似乎和中文不大一樣
After ziz fifz yer, ve vil hav a rel sensibl riten styl. Zer vil be no mor trubls or difikultis and evrivun vil find it ezi tu understand.
得讀出來才會搞混。大概這就是表音文字的特殊之處。


在現階段,谷歌翻譯的目的並不是為了取代人工翻譯,也不可能取代。
它現在通過機器學習和大數據來「不精確」的進行翻譯,而不去理會語言學的規則,確實可以一定程度提高翻譯的精準度。但是,這是有瓶頸的,如果它想更進一步提高翻譯的質量的話,不理會語言學本身而只靠大數據是不可能的。
其實從google的眾多行為來看,它總認為技術可以決定一切,希望它以後不會栽到這裡。


Google試圖用演算法來代替語言學家。
語言學家儘管水平高超,但是仍然難以用人的有限智力窮舉出一個完備的規則體系用於處理自然語言。
可以考慮計算機語言做個比較。計算機語言是非常規範的描述力受限的語言。就是這樣的語言,定義語言規範都是很麻煩的事情,一本列印出來的c++語言規範就是一本比史記還厚的書。
因此,由人類自己定義自然語言的規範是幾乎不可行的。所以,我們訴諸於統計學和機器學習理論,把這些複雜的語言細節隱藏在相對簡潔的模型里。


語法規則被假定為生成語言的函數。通過優化演算法去擬合這個函數也就是學習到了語法規則


Google沒有語言學家就是"不重語言學的語法結構和規則"?Google有一個項目就是和各大圖書館合作掃描圖書。此項目對於Google來說一舉三得:建立Google圖書項目;為驗證碼提供資源;以及最重要的,創建其他公司無法匹敵的語料庫


我每開除一名語言學家,我的語音識別系統錯誤率就降低一個百分點。
---------------------賈里尼克

這句話我也在吳軍的《數學之美》中看到過。

其實人們自然而然的都會想到用語法規則來優先處理語言識別問題。畢竟它是語言,有語言就有語法,而且我們在自然語言語法中走的時間更長、深度更大。

所以在語言識別界的最初,科學家們都試圖採用這種方法。但是後來他們就發現語法規則很難用數學或者說編程語言描述,而且英語全部總結起來或許有超過十萬條規則,他們的應用範圍還都不一樣。所以這會導致識別系統的臃腫和錯誤率高。

後來科學家們發現了統計和概率應用到這上邊來省心而且效果不錯,所以就導致了現在的局面。

當然未來的發展趨勢,應該還是以演算法為重。不過也有其他的可能性。


推薦看一下吳軍的《數學之美》的幾個章節,大致把語言識別研究的發展給概述了一下,還講了基於概率的模型是如何神奇的提高正確率的,當然不可能完全識別。60、70年代的時候主要是做語言的語法、結構分析,但是當一個句子逐漸變得複雜以後,就很難再用語法分析了,不可能針對每一個句子都寫一條語法的。


謝謝邀請。我目前還沒有系統接觸語言學的學習,從翻譯實踐來講一點感性的東西吧。就我個人的學習和實踐來看,翻譯可以說是一種再創造。在跨語種的交流中,不同的人會有不同的翻譯風格,這也是我們為什麼會做翻譯鑒賞的原因。而往往精彩的翻譯和表達,甚至連語法和句法結構也可以適當忽略,因而我們也不用對機器翻譯抱有太大希望。即使是作為參考,個人認為Google翻譯仍然需要強大的腦補能力。最後,舉一個在語法上活用,但是我印象特別深的表達:【秋天,樹葉黃了。】→ →【Autumn yellows the leaves.】


同意
Bryan Zhu的「
低級參考 」的說法。只重演算法不重語法,是不能也,非不為也。
google翻譯也好,其他的一些在線翻譯也好,提供的不過是非常基礎的「對應」翻譯,只能用於簡單理解,只適合結構簡單或者意思簡單的短句子,不適合段落或者篇章的翻譯。 在線翻譯並不能提供準確,合乎語法以及語言習慣的句子,畢竟機器翻譯跟人工翻譯是不一樣的。做科技英語翻譯,常用multiterm或者trados軟體,都只是記憶軟體而已,就是把術語或者之前已經翻譯過的東西重新調出來進行提示,其實就是一個大資料庫而已。
讓在線翻譯去符合語言學的語法和規則,這就太難了。舉個例子,比如說謂語「是」這個詞,跟系和為兩個詞的意思是一樣的,可能適用語境文體不同。讓google翻譯先去判斷謂語就不一定行,可能會把系翻譯為tie,為翻譯為for,再讓它把整句話翻譯好,基本不指望。用機器處理語言學的語法和規則,這一工程之大不可想像。補充一點,像在翻譯時候遇到的其他詞語,比如「排放」可能是arrange的意思,也可能是discharge的意思,而像「打」這個字,打水,打毛衣,打架,打理等等,打的每個意思都不一樣,要想把這些都處理還,這讓google的團隊情何以堪。一個詞在「語言學的語法和規則」裡面算很小的元素了,處理起來都夠數據專家忙得了,再放到不同的句子,不同的篇章,不同的文體,我要是做數據的,立馬就哭了。
不過源語言越是規範完整,倒是使用在線翻譯的參考意義越大。像把一篇嚴格審核後通過的專利原文放到google翻譯,只要具備翻譯功底或者相關專業知識,還是基本能讀懂的,當然只是很基本很基本的。但要是放上文言文或者一首詩,估計就完全不知所云了。
目前google用數據統計來提供參考翻譯已經可以了,在詞語、短語和術語上方面還具備一定正確率,但是語言學方面就別指望google能完成了,畢竟語言學不是統計學。


選自《In The Plex:How Google Thinks, Works, and Shapes Our Lives》Part1 Section 3,由天涯網友藏在雙眸後翻譯

  在Google的任務清單上比較靠前的另一件事情是翻譯,即把網路上數十億的文字翻譯成世界上任何用戶的母語。2001年,http://Google.com已經支持26種語言。Page和Brin相信像語言這種人工的障礙不應該阻擋人們使用信息。他們的想法和機器翻譯先鋒Warren Weaver異曲同工,他說,「當我看一篇用俄語寫的文章時,我說,『這就是用英語寫的,只是用一些奇怪符號進行了編碼,現在我要破解它。』」Google的想法就是破解這個星球上的任何一種語言。

  在在線翻譯方面之前有過不少嘗試,1995年第一次出現了一個叫做巴別塔之魚(Babel Fish)的服務,比較引人注意。Google自己的項目開始於2001年,核心翻譯系統是來自另外一個公司的授權——基本上和Yahoo和其他競爭者都是在用這套相同的系統。但是這個系統系統經常不準確,看起來被用來翻譯的詞像是從字典里擲標槍挑出來的。Sergey Brin在2004年的一個會議上強調了這個問題,當時他展示了Google對來自南韓一封信的翻譯,信是一個對Google搜索技術很有熱情的粉絲寫的,內容是,「生魚片穿著希望之鞋,Google綠色洋蔥樣!」(The sliced raw fish shoes it wishes. Google green onion thing!)

  其實在Brin對這封信的翻譯表示失望時,Googley已經確定了一個僱傭人選,他可以領導公司在翻譯方面的工作——這在某種意義上也加強了Norvig剛到Google時看到的重點。這個人就是Franz Och,他在家鄉德國的RWTH Aachen大學計算機科學學院攻讀博士學位時就關注機器翻譯,之後他在Southern California繼續他的工作。2003年他在Google進行了一次面談後,公司給了他offer,按時Och最大的擔心是Google主要是一個搜索公司,對機器翻譯的興趣可能只是玩玩。和Larry Page的一次談話消除了這些顧慮。Page告訴他,Google立志組織世界上所有的信息,而翻譯是一個必不可少的部分。Och不太確定Google在這個系統上能走多遠——你們真想做20種語言的結對互譯嗎?(換句話說,如果你的系統有20種語言,這個系統能把其中任何一種翻譯成另外任意一種嗎?)這將是空前的項目。Page讓他確信Google將會在這方面大力投入。「我說那好吧」,Och說,他在2004年4月加入了Google。「現在我們有506種語言結對互譯,所以看來這一切都很值得。」

  早期的機器翻譯通常在開始由對兩種語言都很懂語言專家參與,他們會整理每種語言的規則和結構,這樣就可以把原始輸入打散,在用第二種語言組合起來。「這很耗時,很困難,因為自然語言太複雜多變了,還有很多細微的差別」,Och說。不過在1980年代後期,一些IBM計算機科學家設計了一種新的方式,Och很喜歡。「基本想法是從數據中學習」,他解釋說,「給一個計算機大量的單語言文本,計算機應該能自己發現語言裡面的結構信息。」就是給計算機大量的數據,讓他(這裡用Och的人格代詞吧)去思考。本質上Google的系統為Och小組測試的每種語言創造了一個「語言模型」,下一步就是處理已經翻譯過的不同語言,讓計算機找到隱含的演算法,知道計算機把一種語言轉換成另一種。「有特定的演算法可以學習單詞和句子如何對應,文本中的細微差別,從而產生翻譯。關鍵在於,你擁有的數據越多,這個系統的質量越高。」Och說。

  最有用的數據是成對的文檔,其中一個已經很好地翻譯成了另外一種語言。在有Internet之前,這種翻譯材料的主要來源就是聯合國的文檔,這些文檔已經被翻譯成多種語言。但是Web造就了一個驚人的寶藏——Google的索引讓它的工程師很容易就可以挖掘出數十億的文檔,找到甚至是最隱晦的翻譯,比如把一些文檔和博客從一種語言翻譯成另外一種語言。甚至一個業餘的翻譯也能提供一定程度的知識,不過Gogole的演算法能夠發現那個翻譯最好,使用的還是Google用來確定網站重要性相同的原則。「在Google」,Och說,用最直白的表述,「我們有很多數據,也有相應所需的計算資源,這樣我們就能建造非常非常非常好的系統。」
  Och和一個小組一起,用2004年下半年到2005年初的時間建造了這個系統,做出了演算法。在後面幾年,實際上Google發布一些小的改進,並把機器學習中最好的思想整理在一起,本質上支持了後來成為公司人工智慧要塞的項目。Och的官方身份是Google研究小組的科學家,但是Google對研究的指導思想是,從科研到實際產品實現需要做到零距離。

  Och和他的同事知道他們可以使用空前數量的數據,他們從頭開始創建一個全新的翻譯系統。「我們做的一件事是構造非常非常非常大的語言模型,比人類歷史上任何人曾經構造的都要大。」然後他們開始訓練這個系統。要測量進展,他們使用了一個統計模型,給一系列單詞,系統可以預測下一個單詞是什麼。每次他們都把訓練數據加倍,在衡量結果中成功率的指標上他們得到了百分之零點五的進步。「所以我們就多次加倍數據量。」為了得到合理的翻譯,Och會說你可能需要給模型提供十億個單詞。但Google可不會止於十億。

  2005年中,Google的小組準備好參加國家標準和技術協會(NIST,National Institute of Standards and TEchnology)資助的年度機器翻譯比賽了。開始時,每個參賽小組會得到一系列文本,然後接下來的幾天讓他們的計算機進行翻譯,同時管理計算機對翻譯結果進行評估和打分。由於某些原因,NIST沒有把比賽搞成有衛冕冠軍的那種,所以Och小心翼翼地,避免說Google是勝者。相反,他說,「我們的得分」比任何其他組的得分都高。」測試中的一個語言結對包含阿拉伯語。「我們小組裡沒有說阿拉伯語的人,不過我們的機器翻譯做到了最好。」

  因為必須要相應說母語的人,Google可以自由地對最隱晦的語言結對提供翻譯。「你總是可以把法語翻譯成英語,或者英語翻譯成西班牙語,但是你能把北印度語翻譯成丹麥語,或者把芬蘭語翻譯成挪威語嗎?」


如果語言學的規則可以窮舉或者接近窮舉的話,那麼也不用Google實現了.Google做的應該是基於統計和機器學習等技術訓練和積累出一套語言學的規律,不精確,但是大部分情況下是合理的,並且會通過知識積累和演算法改進不斷增強.


說實在話,現在的階段,用語言學解決Google的問題確實不大現實。
語言是智能的包裝,因為語言一定程度上決定了一個人思考問題的方式。現在的智能的模擬主要還是採用概率模型。但是概率說白了是對問題的近似,也就是說我無法直接解釋某些問題,只能用概率來近似一個結果,所以說人工智慧離解決還很遙遠。同樣的,作為智能的包裝,語言,離解決也非常遙遠。在這種情況下,用語言學來進行Google的業務不大靠譜,只能用概率模型來繞個彎獲得好的結果。


因為語言學的語法結構本身也是人為從大量語言樣本中總結出來的。所以只要演算法足夠強大或者魯棒,效果是一樣的,甚至比人為更靈活些


人工翻譯需要考慮語境,很多意思都不能用機器語言直接替代的,在目前看來包括谷歌在內的幾乎所有翻譯工具都存在「誤差」。解決這個問題,也是目前人工智慧所研究的範疇。謝邀!


因為這句話嗎?

我每開除一名語言學家,我的語音識別系統錯誤率就降低一個百分點。
---------------------賈里尼克


就我粗淺的理解,語言學的規則是在語言層級之上的,它不是語言的基石,而是語言抽象提煉的產物,或者說是一種更高級的語言。事物總是由簡單到複雜,由低級到高級。基於統計和演算法的機器翻譯就是我們現階段能找到的在計算機中模擬出人類語言的基石。從根基開始好好生長,比本末倒置的只要空中樓閣要可行的多。


grammatical rules 能夠保證翻譯結果的一致性,但是無法處理exception。而在natural language中有太多exception。例如 : E-C x of y結構規則是x和y交換,EN:Use of service--MT: 服務的使用; 但是下面這個exception就無法處理:EN:which type of Auto-delivery content, MT: 自動交付內容的哪種類型。更加idiomatic的翻譯HT:哪種類型的自動交付內容。 但是Corpus base也存在很大問題--sparse data。所以雖然號稱演算法,很有可能也使用了一些基本的linguistic rule


推薦閱讀:

有誰可以解釋下word embedding?
深度學習應用在哪些領域讓你覺得「我去,這也能行!」?
如何評價季逸超、Peak Labs 和 Magi 搜索引擎?

TAG:演算法 | 自然語言處理 | Google 翻譯 |