第13章 Google AK-47的設(shè)計者

以下內(nèi)容學(xué)習、摘錄自《數(shù)學(xué)之美》


在所有輕武器中最有名的是AK-47沖鋒槍,全世界共制造了7500萬支,另外制造了一億支“兼容”的。因為它從不卡殼,不易損壞,可在任何環(huán)境下使用,可靠性好,殺傷力大并且操作簡單。

我認為,在計算機科學(xué)領(lǐng)域,一個好的算法應(yīng)該像AK-47沖鋒槍那樣:簡單、有效、可靠性好而且容易讀懂(或者說易操作),而不應(yīng)該是故弄玄虛。 Google Fellow、美國工程院院士阿米特·辛格博士(AmitSinghal)就是 Google AK-47的設(shè)計者, Goolge內(nèi)部的排序算法 Scorer里面的A便是他的名字首字母。

作者曾經(jīng)與辛格等人一同研究、解決網(wǎng)絡(luò)搜索中的作弊問題(Spam):絕大多數(shù)作弊的搜索都多少有些商業(yè)意圖,因為利益使然。因此,我們需要建一個分類器,準確區(qū)分一個搜索是否有商業(yè)意圖。我以前一直在學(xué)術(shù)界學(xué)習和工作,凡事力求完美的解決方案。設(shè)計一個可用的、漂亮的分類器對我來講不是難事,但是實現(xiàn)和訓(xùn)練卻要花上三四個月,當時 Google還沒有 Mapreduce這種并行計}算工具,復(fù)雜的機器學(xué)習非常耗時。而辛格認為找個簡單有效的辦法就行了,他問我實現(xiàn)一個最簡單可用的分類器大約需要多少時間,我說一個周末可能就夠了。周一我把分類器完成了,問他是否還需要花時間去實現(xiàn)一個完美的方案。辛格看了看結(jié)果說,“夠好了,夠好了,在工程上簡單實用的方法最好?!?/p>

當時我們和公司工程副總裁韋恩·羅森( WayneRosing)打了個賭,如果我們能減少40%的作弊,他就給我們發(fā)工程獎,送我們四個家庭(不止是四個員工)去夏威夷度假五天。這個反作弊的算法上線后,羅森真的履約了。這個分類器設(shè)計得非常小巧(占用內(nèi)存很?。疫\行速度非??欤◣着_服務(wù)器就能處理全球搜索的分類),至今運行得很好。

后來做一個全新的中、日、韓文搜索算法時,作者寫了一個效果雖然很好,但是占用內(nèi)存較多的算法,當然Google的服務(wù)器數(shù)量還沒有現(xiàn)在這么多,不可能為了中日韓這三個占總流量不到10%的語言額外增加一批服務(wù)器。辛格提出用一個擬合函數(shù)替代很耗內(nèi)存的語言模型,這樣不需要增加任何服務(wù)器。但是,這樣一來搜索質(zhì)量的提高幅度只有原來采用大模型時的80%。我對此多少有點不甘心。辛格解釋說,這樣我們至少可以提早兩個月將這個新算法提供給中國的用戶,而且用戶體驗也會有質(zhì)的提高,這是雪中送炭。我們暫時放棄掉的20%收益,對用戶而言不過是錦上添花。我接受了他的建議,在2003年初我發(fā)布了第一個專門為中日韓語言設(shè)計的搜索算法。一年后,Google的服務(wù)器數(shù)量也有所增加。我在模型壓縮上也有了進步,這時便發(fā)布了完整的中日韓語言搜索算法。辛格這種做事情的哲學(xué),即先幫助用戶解決80%的問題,再慢慢解決剩下的20%問題,是在工業(yè)界成功的秘訣之一。許多失敗并不是因為人不優(yōu)秀,而是做事情的方法不對,開始追求大而全的解決方案,之后長時間不能完成,最后不了了之。

辛格堅持選擇簡單方案的另一個原因是:容易解釋每一個步驟和方法背后的道理,這樣不僅便于出了問題時查錯( Debug),而且容易找到今后改進的目標。隨著搜索引擎的不斷進步,現(xiàn)在幾乎所有的改進都非常細微:通常對一類搜索有改進的方法,會對另外某一類搜索產(chǎn)生稍稍負面的影響。這時候,必須很清楚“所以然”才能找出這個方法產(chǎn)生負面影響的原因和場景,并且避免它的發(fā)生。對于非常復(fù)雜的方法,尤其是像黑盒子似的基于機器學(xué)習的方法,這一點是做不到的。而如果每一項改進都是有得有失,甚至得失相差無幾,那么長期下來搜索的質(zhì)量不會有什么明顯提升。辛格要求對于搜索質(zhì)量的改進方法都要能說清楚理由,說不清楚理由的改進,即使看上去有效也不會采用,因為這樣將來可能是個隱患。

在 Google,辛格一直堅持尋找簡單有效的解決方案,因為他奉行簡單的哲學(xué)。但是這種做法在 Google這個人才濟濟的公司里常常招人反對,因為很多資深的工程師傾向于低估簡單方法的有效性。不少人試圖用精確而復(fù)雜的辦法對辛格設(shè)計的各種“AK-47”加以改進,后來發(fā)現(xiàn)幾乎任何時候,辛格的簡單方法都接近最優(yōu)解決方案,而且還快得多。

當然,辛格之所以總是能找到那些簡單有效的方法,不是靠直覺,更不是撞大運,這首先是靠他豐富的研究經(jīng)驗。辛格堅持每天要分析些搜索結(jié)果不好的例子,以掌握第一手的資料。這一點,非常值得從事搜索研究的年輕工程師學(xué)習。

辛格非常鼓勵年輕人要不怕失敗,大膽嘗試。有一次,一位剛畢業(yè)不久的工程師因為把帶有錯誤的程序推出到 Google的服務(wù)器上而惶惶不可終日。辛格安慰她說,你知道,我在 Google犯的最大一次錯誤是曾經(jīng)將所有網(wǎng)頁的相關(guān)性得分全部變成了零,于是所有搜索的結(jié)果全部都是隨機的了。后來,這位出過錯的工程師為 Google開發(fā)出了很多好產(chǎn)品。

我曾經(jīng)犯過的大錯是操作數(shù)據(jù)庫時,在沒有備份的情況下,執(zhí)行了錯誤的update...where...語句,結(jié)果所有的數(shù)據(jù)都錯誤了,花了2天時間才不完全恢復(fù)。從那以后,我再也不會在未備份的情況下直接操作數(shù)據(jù)庫。

2012年,辛格當選美國工程院院士,并出任主管 Google搜索的高級副總裁。同年他又把我召回到了 Google,他當時對我只有一個要求:啟動個能領(lǐng)先微軟五年的項目(霸氣)。

點擊這里可以查看《數(shù)學(xué)之美》的其它學(xué)習筆記。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,323評論 25 708
  • 不少人都知道Google的搜索排名算法使用200多個因素,但具體是什么呢? 除了Google的核心算法工程師,幾乎...
    凡的數(shù)據(jù)庫閱讀 3,936評論 0 15
  • 關(guān)于 “運營” 的認識 相信有很!多!人! 剛開始接觸運營和我當初有著一樣的困擾。 什么是運營??運營是干嘛的??...
    仿小鮮肉閱讀 307評論 0 1
  • 似乎越來越容易被外人秀的恩愛所傷到心 是因為我擁有不到我感到的幸福 還是我羨慕曾經(jīng)我擁有過比你們更深的愛人 現(xiàn)在 ...
    Yaaomm閱讀 629評論 0 0
  • 花樹少年,白衣淺笑。櫻散散兮落于肩,藏匿入發(fā)間。鄰家小女,垂髻無憂。于芬芳間巧笑銀鈴,點血眉間。年少不知愁,共倚窗...
    曾靜爾矣閱讀 389評論 0 0

友情鏈接更多精彩內(nèi)容