編者按:這是一篇對前 Facebook 工程師的采訪。在微信、微博等社交平臺上,我們感興趣的信息似乎總是被那些無關緊要的信息垃圾湮沒,怎么去過濾,怎么提升用戶體驗,F(xiàn)acebook 的新聞流排序或許能夠提供些許借鑒。本文經(jīng)授權轉載自微信公眾號峰瑞資本(freesvc)。
萬鴻姓徐,卻被所有人親切地稱呼為 “萬指導”。這位原先在 Facebook 新聞流排序組的資深工程師,2015年9月 回國出任神州專車 CTO。所謂新聞流排序(news feed ranking),指的是 Facebook 的一項看家本領:用戶每天會收到兩三千條新鮮事,卻只會閱讀前 50 至 100 條。利用機器學習將用戶最想看的內(nèi)容排到最前面,從而提高粘性和日活,這是萬指導在 Facebook 一直琢磨的事情。
這固然是一篇著重技術的文章,所在公司 Facebook 更是世界上最大的互聯(lián)網(wǎng)公司之一。但這并不妨礙創(chuàng)業(yè)者從中得到經(jīng)驗。利用 A/B 測試作為迭代方法,借助 Growth Hacking 的核心——數(shù)據(jù)來驅動開發(fā),新員工的入職宣講……這些做法都體現(xiàn)了這位社交之王不同維度的文化所在:精神層面注重實現(xiàn)夢想,統(tǒng)一目標;而這一目標下放到微觀層面,就是對于數(shù)據(jù)的尊重。
覃 = 覃超,峰瑞資本互聯(lián)網(wǎng)團隊成員,前 Facebook 工程師。
徐 = 徐萬鴻,神州專車 CTO,前 Facebook 工程師。
社交網(wǎng)絡信息垃圾,再見
覃:在 Facebook 工作時有什么印象深刻的事情?
徐:我第一次去的時候,當時專注于用戶增長的 VP 負責宣講。他說將來全球所有人都會使用 Facebook,這家公司將來會成為萬億美元的公司,給我印象很深刻。公司的所有人都很興奮,對設定的目標有非常大的信心。他們的工作使命感非常強,非常專注。
覃:你在 Facebook 里主要負責什么工作?
徐:我在 Facebook 的 site-integrity (站點完整性) 組工作了兩年。當時 Facebook 有很多的垃圾私信、垃圾信息,就像人人、微博上有各種廣告、垃圾鏈接。有些用戶的賬號被盜用了,會使用個人頁面發(fā)送垃圾短信、廣告、病毒,還有一些不受歡迎的朋友請求。我會處理所有類似這些涉及到影響用戶體驗的東西。
Facebook 使用了一個叫做 sigma 的系統(tǒng)來抵制這些垃圾信息。這個系統(tǒng)安裝在 2000 多臺機器上面,F(xiàn)acebook 用戶做的任何事情,都會經(jīng)過 sigma 系統(tǒng)分析處理,比如評論、鏈接、朋友請求,都會被這個系統(tǒng)進行判斷,是正常行為、濫用行為還是有問題的行為。
利用 Sigma 系統(tǒng),F(xiàn)acebook 會對垃圾信息進行過濾和清理。
舉個例子說,比如發(fā)送朋友請求,F(xiàn)acebook 的系統(tǒng)會自動判斷一下:如果這個人的朋友請求都被別人拒絕了,他再發(fā)送朋友請求是不會被批準的。如果一個人發(fā)送的朋友請求十個有九個都被拒絕了,那么他下一次的朋友請求就會被系統(tǒng)拒絕。當然這個系統(tǒng)還有其他的判斷信號。
它是一個機器學習系統(tǒng),通過你之前發(fā)的朋友請求拒絕概率高低來判斷你被拒絕的概率有多高。如果這個比率很高,F(xiàn)acebook 會讓你進行手機短信或其他方式認證,來驗證是軟件還是真人發(fā)送的,以此判斷你是不是真的要發(fā)送朋友請求,比如你發(fā)出的朋友請求對象與你沒有任何共同好友,那就可能是一個不合理的請求。
基本上,你在 Facebook 上做的任何事情,都會經(jīng)過這個系統(tǒng)來分析、預測、決定是否允許你發(fā)出信息,借此希望會減少生態(tài)圈中的騷擾行為。當時 Facebook 每天有上百億次的信息發(fā)生要通過這個系統(tǒng)進行判斷。
覃:能否介紹一下 Sigma 系統(tǒng)的工作原理?是使用機器學習嗎?
徐:這個系統(tǒng)中有些是人為規(guī)則也有機器算法,請求通過和拒絕就是一個迅捷數(shù)據(jù)組(Scrum)。任務通過,則說明這個任務是一個對機器學習來說的正樣本,被拒絕則是一個負樣本,很像 0 和 1。比如發(fā)送朋友請求如果被接受,y 值是 1,如果被拒絕就是 0。如果是評論和點贊,系統(tǒng)就能尋找 y 值,用戶發(fā)送的不當信息就會被刪除。
機器學習是整個 Sigma 系統(tǒng)的核心。
另外一個方法是通過一些異常行為的分析、數(shù)據(jù)挖掘的方法來分析用戶的異常行為。比如一個人發(fā)的同樣類型評論非常多,所有評論里都有一個相似鏈接,這就非常有問題。正常操作不會在不同人的主頁上留同樣的評論,這顯然屬于異常行為,我們不會允許。
“我已經(jīng)沒法看完所有朋友圈內(nèi)容了”
覃:可以解釋一下新聞流排序是什么意思?工作兩年之后為什么選擇去了這個組?
徐:“排序” 指的是信息流的順序。它決定了打開你的 Facebook 朋友圈,你的信息流是個什么樣子,信息的位置。每個人產(chǎn)生的內(nèi)容、新聞會有兩三千個,用戶只能看到 50-100 個。你需要把兩三千個最好地展示出來。有些我們不給用戶顯示,比如你喜歡游戲,你的朋友不喜歡。
我 2012 年剛去的時候,新聞流排序組只有五六個人,盡管這可能是公司最大的機器學習系統(tǒng),最核心的產(chǎn)品。每天有十億多人上線,每個用戶花 40 分鐘在 Facebook 上,其中一半時間都花在新聞流上。Facebook 大部分收入來自新聞流廣告。比如說,移動廣告收入占所有廣告的 70%,而其中所有的移動的廣告都來自新聞流。不管是從用戶的停留時間,還是收入來說,新聞流都是最重要的產(chǎn)品。
新聞流是 Facebook 最重要的產(chǎn)品,直接決定了用戶所看到的內(nèi)容。
做好新聞流排序是很難的問題,因為用戶在新聞流上的行為有很多種,不只是傳統(tǒng)廣告點擊或者不點擊這一種操作,用戶可以在新聞流里贊、評論、分享或者隱藏這個新聞流,也可以播放視頻。我需要理解用戶喜歡什么東西,評論、分享什么東西,想看什么樣的視頻。理解用戶的興趣所在,根據(jù)我們的訊息把最好的東西放在新聞流的最前面。
以國內(nèi)的社交媒體作對比來說,微信的朋友圈是所有內(nèi)容全部顯示,它不需要排序,是因為朋友圈容量不是特別多,大家可以看完所有的內(nèi)容。朋友越來越多的話,沒有時間把分享看完,排序是必然的事情。你會很容易漏掉很重要人的圖片,它們迅速埋沒在大部分你不感興趣的內(nèi)容了。
Facebook 之前也是全部顯示,慢慢到后來用戶是看不完所有的信息的。如果不做排序,把最好的服務挑出來的話,用戶不會愿意訪問新聞流,因為他看到很多不感興趣的東西,感興趣的部分他已經(jīng)沒有時間找出來了。從不排序到排序是必然的過程,你的朋友越來越多,公眾頁面越來越多,排序是必然的。
比如說新浪微博沒有做排序,有些細節(jié)雜亂無章。他們測試過,但是做得不太好。所以放棄了。微信的朋友圈也會到要做排序的階段。Facebook 不只是排序,還會隱藏用戶不感興趣的內(nèi)容,比如你的朋友玩過 Candy Crush 游戲,但可能你本身不玩任何游戲,關于這方面的信息就沒有意義。Facebook 就不會給你顯示這些內(nèi)容——“朋友們在玩什么游戲”。
社交媒體的碎片化已成事實。只有采取更好的排序手段,推送給用戶更精準的內(nèi)容,才能提高平臺停留時間,加強粘性。
覃:能簡要講一講新聞流排序的工作原理嗎?
徐:基本上,新聞流是從兩三千條內(nèi)容里面,挑出了 四五十 個。按照每個內(nèi)容打分,分高的內(nèi)容排在最前面。每個內(nèi)容、照片、分享或者狀態(tài),我們會預測一些概率值,比如你點贊的概率,評論、分享的概率。每個用戶的行為,比如點贊、分享、評論,系統(tǒng)都會給權值。評這些用戶行為概率是通過機器學習來系統(tǒng)計算的。如果用戶對某個內(nèi)容點贊、評論或者分享,說明用戶愿意看到這個內(nèi)容,對內(nèi)容產(chǎn)生了反饋。
舉個例子來說,比如你是我的好友,你上傳了 100 張照片,我點贊了 20 次,那么點贊概率就是 20%。我們知道每個用戶以前對哪些內(nèi)容點贊、評論,這些都是我們的訓練樣本。我們通過學習用戶的歷史行為,進行相同類型、相同個人的未來行為預測,因為用戶短期行為不會大幅變化,過去對哪些東西進行評論,將來也很有可能對相似內(nèi)容進行評論。
覃:有沒有可能針對用戶內(nèi)容來進行預測?比如分析用戶發(fā)了什么樣的文字或者圖片?
徐:可以。如果是圖片我們可以抽取圖片特點,對圖片進行模式識別,分析圖片的主題,打上相應的標簽,用機器來識別這些圖片?,F(xiàn)在在做相應的工作。Facebook 有 AI 實驗室,可以對圖片進行內(nèi)容識別。
覃:Facebook 怎么知道這套算法是否有效呢?以后要更新的話怎么進行迭代呢?
徐:通過 A/B 測試。我們抽取 1% 用戶進行新的算法,1%進行舊的算法。如果新的算法下用戶每天點贊、評論或者分享次數(shù)增長了,那說明新的算法更好。我們就把新的算法發(fā)布給所有的用戶。我們主要的核心目標是:讓日活躍用戶更多,停留時間更長,訪問 Facebook 更頻繁。
覃:你覺得這對國內(nèi)的創(chuàng)業(yè)公司有什么啟發(fā)嗎?
徐:A/B 測試是很好的迭代方法。建立起核心指標,進行 A/B 測試,看新的改動能否提高核心指標。提高就發(fā)布,沒有提高就不用發(fā)布。這很像 Growth hacking,當然最終目的還是提高 DAU。如果用戶喜歡你的新聞流,就會更頻繁訪問,最終目的還是在線時長和日活躍用戶。
A/B 測試是 Facebook 用來測試迭代可行性的手段。峰瑞資本所投資的吆喝科技,致力于讓初創(chuàng)企業(yè)也能使用這一技術。
覃:你對微信朋友圈有什么好的改進建議?
徐:我已經(jīng)沒法看完所有朋友圈內(nèi)容了。一種改進方法是排序,把最好的內(nèi)容放最前面。通過你以前點贊的內(nèi)容,來學習你關心的內(nèi)容,比如你女朋友發(fā)的東西你都會點贊。另外一種改進方法叫做 “內(nèi)容置頂”(Story bumped)。有時候我早上起來刷微信,會看不完,只看了一小部分。過一會兒再刷的時候,已經(jīng)沒有什么新的內(nèi)容了。
Facebook 的內(nèi)容置頂功能會把你沒有看完的東西再放到上面去再次推送給你。微信是知道哪些內(nèi)容你沒看過的,我有很多在美國的朋友,朋友圈會有很多內(nèi)容,上班前看不完只看了一部分。再刷新的時候就已經(jīng)沒有新的東西出來了,我也沒有關心沒看完的東西,朋友發(fā)的照片。Facebook 的 “內(nèi)容置頂” 把很重要的,還沒看,有點舊的內(nèi)容放在朋友圈前面,讓你再看一眼,怕你漏掉重要的內(nèi)容。
覃:最后一個問題,為什么選擇九月份會加入神州專車擔任 CTO?
徐:從事業(yè)角度來說,我希望把從 Facebook 學到的公司文化、技術帶回中國。中國在計算機行業(yè)上有很大的潛力。現(xiàn)在國內(nèi)的產(chǎn)品質量上和美國產(chǎn)品已經(jīng)相當了,比如微信,F(xiàn)acebook 的產(chǎn)品經(jīng)理也學習了微信里面的功能。再往后面看幾年的話,中國有機會趕上美國。
計算機學科已經(jīng)成熟,創(chuàng)造力在慢慢變好。很多初創(chuàng)企業(yè)嘗試不同的想法,中國的創(chuàng)業(yè)者是美國的好多倍,都在嘗試不同的想法,會誕生出成功的公司。技術上,中國正在逼近美國,甚至會超越美國。長遠來看,中國的計算機行業(yè)、互聯(lián)網(wǎng)行業(yè),應該是有潛力成為世界上互聯(lián)網(wǎng)行業(yè)最好的國家。