楊震原:各位朋友下午好,很高興今天在這里有機會與大家分享今日頭條。剛剛聽了知乎李申申給我們介紹了知乎在這方面的實踐,他前面講了故事,但是只投了PPT,但是沒有用中文翻譯出來,特別遺憾。
首先介紹一下什么是今日頭條,今日頭條是一個媒體平臺。它擁有超大的用戶量,我們累計激活用戶達到2.9億,各端DAU超過2700萬,每天使用超過40分鐘,這個是非常大的量。它是信息分發(fā)的平臺,與各個媒體、政府機構(gòu)、自媒體作者合作。今日頭條現(xiàn)在擁有超過3.5個頭條號,并且這個數(shù)據(jù)每天還在增加。這些作者每天會在上面發(fā)布它的文章,創(chuàng)作它的文章。今日頭條是一個基于機器學(xué)習(xí)的個性化推薦引擎。我們在大數(shù)據(jù)方面投入了非常多的精力做研發(fā),我們希望能把新聞或者是用戶感興趣的內(nèi)容通過這樣的方法,越來越精準(zhǔn)的推薦給用戶。
簡單列一下數(shù)據(jù)。今日頭條每天訓(xùn)練數(shù)據(jù)達到100T,每日日志行數(shù)100億條。特征組合數(shù)每天750億,線上model330億。這個數(shù)字非常大的。今日頭條服務(wù)器增長也非常,目前公司已經(jīng)有四千臺服務(wù)器。之前很難想象一個做媒體的公司,怎么可能有這么多的服務(wù)器。今日頭條今天已經(jīng)不止是做一個服務(wù)的公司,更多是做媒體的公司。
今日頭條為什么產(chǎn)生出來。這要介紹一下張一民(音)創(chuàng)建今日頭條的理念。主要是這三個方面,介質(zhì)的變化,機器學(xué)習(xí)的發(fā)展和個性化的需求。手一我們來看一下介質(zhì)的變化,介質(zhì)的變化是雖這技術(shù)發(fā)展而持續(xù)發(fā)生變化的。這個是驅(qū)動人們獲取信息方式很重要的原因。為什么這么說呢?你想想一下早些年,早很久,大家怎么看貼墻的公告?大家會在墻上刷一個告示。后來一個很偉大的發(fā)明,造紙。于是有了報紙,人們可以單向的閱讀信息,報紙一直到今天還有巨大的生命力。然后是廣播,這個也是單向的。然后電視不僅僅可以得到音頻,還可以得到視頻,但是你無法跟創(chuàng)作者交互?;ヂ?lián)網(wǎng)時代不僅僅可以看到內(nèi)容,還可以討論,參與發(fā)布內(nèi)容。這一些發(fā)生了很大的變化。移動互聯(lián)網(wǎng)其實這個變化的幅度,可能會超過人們的想象。
我預(yù)計接下來的幾年里,人們獲取信息的方式還會發(fā)生一輪巨大的劇變。因為手機發(fā)生的時候,已經(jīng)個性化到你自己了,手機在你身邊,它的id更加的穩(wěn)定、唯一,它會記錄你身上的發(fā)生的事情,你的行為都會被記錄。它與人的對應(yīng)關(guān)系會非常的穩(wěn)定。所以這種介質(zhì)的變化,肯定會導(dǎo)致傳媒的變化,導(dǎo)致信息分發(fā)方式的變化,包括新聞的變化。有了介質(zhì)變化這個前提之后,后面很重要的一點,就是機器學(xué)習(xí)技術(shù)的發(fā)展。早一些年,知識是透過人們總結(jié)、撰寫成書,接下來人們根據(jù)書里面的內(nèi)容研究、探索,進一步的發(fā)展。
到今天,機器學(xué)習(xí),就像人不斷生長的大腦。其實技術(shù)也經(jīng)歷了一些階段,它是分成幾個方面的。首先技術(shù)的發(fā)展,因為數(shù)據(jù)規(guī)模的變大。我之前也很認(rèn)可剛剛李申申講的一點,大數(shù)據(jù)規(guī)模下用簡單的方法會得到很好的結(jié)果。所以說數(shù)據(jù)的規(guī)模的變化,帶來了質(zhì)變的問題。第二個是硬件的變化。我們都知道現(xiàn)在存儲技術(shù)成本不斷的在下降,帶寬成本也在下降。變化最小的是算法方面的變化。目前非常牛的算法,比如邏輯回歸,已經(jīng)不知道是多久之前的算法了,但是因為到了現(xiàn)在,我們可以用以前一萬倍一億倍的數(shù)據(jù)來做。它的威力是不一樣的了。神經(jīng)網(wǎng)絡(luò)算法,它是1989年就開始使用了。現(xiàn)在跟以前其實沒有本質(zhì)的變化。更主要是因為,現(xiàn)在有了更大的存儲計算的能力,擁有了更多的數(shù)據(jù),才使這些算法發(fā)揮了它以前完全沒有發(fā)揮得效果??傮w來講,通過這些變化,機器學(xué)習(xí)這些年有了突飛猛進的變化。
有的人說機器學(xué)習(xí)會不會進化成一個人類?我覺得短期內(nèi)還看不到。相反它在很多細(xì)分分類會出現(xiàn)垂直的上帝。比如搜索、閱讀、導(dǎo)航、交易、天氣預(yù)測領(lǐng)域,它們有很多數(shù)據(jù),可以分析出結(jié)果,大規(guī)模的抹平信息鴻溝。
第三點,個性化推薦的需求,不可否認(rèn)移動端人們是越來越懶的。所以說,信息在移動時代是大量的過剩的,人們通常只想看我感興趣的,比如你看你的朋友圈,比如你看微博,經(jīng)有一些很有意思的內(nèi)容,你關(guān)注它了,但是當(dāng)它攢夠一定量的用戶之后,就會大量的發(fā)廣告。人們希望給我看到的信息是最好的信息,我不喜歡的信息,不要給我看。所以基于推薦引擎這種模式,前面講了,有了介質(zhì)的變化,有了機器學(xué)習(xí)的發(fā)展,推薦引擎就應(yīng)運而生,這種模式可以很好的創(chuàng)作分發(fā)和互動。因為首先有了創(chuàng)作,內(nèi)容分發(fā)的效率提升了,就會更高效的刺激創(chuàng)作,更高效的分發(fā)會讓用戶體驗變好,用戶會聚集在這個平臺上,進而會產(chǎn)生互動,互動又會刺激內(nèi)容創(chuàng)作。所以這個模式是未來很有發(fā)展前景的一個模式。
這種前提下,為什么今日頭條產(chǎn)生了。今日頭條大概是2012年三月公司成立的,三年時間累計下載2.5億的用戶,日活躍踴躍兩千七百萬,這是非常驚人的數(shù)字。
這張圖是我們系統(tǒng)的架構(gòu)。不是很清晰,我今天沒有那么多時間來講我后面會著重講一下今日頭條實踐方面的總結(jié)。第一個盡量全面的記錄用戶的行為。簡單來說,record more,這個非常重要。用戶喜歡不喜歡這篇文章?是點擊嗎?是閱讀時長嗎?是點贊嗎?比如兩個用戶,同樣他在這個文章中停留了100秒,其中一個用戶每刷一次停15秒,刷了六七次,另外一個是在一直位置停留了一百秒,然后就推出了,這個是完全不同的。我們把這些信息記錄完整,哪怕是微弱的信息,這個在未來非常有用。所以我們希望盡可能多的記錄用戶的行為?,F(xiàn)在有很多然軟件可以記錄。比如我們把記錄程序?qū)懺诋?dāng)中。
大數(shù)據(jù)情況下,大量的微弱信號也非常有價值。就像我剛剛說的,每一刷都非常重要。這樣對于用戶的體驗改進非常有幫助。單看一個信號沒有價值的,但是大量的數(shù)據(jù),它的統(tǒng)計意義就會非常的顯著。現(xiàn)在的技術(shù)是完全能用得起來這些弱信號的。
重塑目標(biāo),這件事情,很多人不知道它的意義是什么。目標(biāo)在一個機器學(xué)習(xí)系統(tǒng)中是很重要的實行,因為很多時候你要想清楚你的目標(biāo)是什么。比如廣告系統(tǒng)中,你希望用戶有更高的點擊更高的出價。我們希望能很好的把握到底什么是用戶真正感興趣的。這件事情就是,我以前跟很多廠商的朋友聊過。他們公司會設(shè)一些部門,比如叫大數(shù)據(jù)部,我的目標(biāo)是做什么?他說我的目標(biāo)要做用戶畫像,以后可能會游泳。這件事情可以做,但是會非常困難。當(dāng)你目標(biāo)想清楚的時候,這個價值會更加大。我問他到底用戶畫像做什么有用,他說我在手機平臺上做廣告推廣更有用。我說你有沒有分析這個場景,也許你沒有考慮到時間,他沒有看不是因為不喜歡,而是因為他在開會。如果他晚上沒有看,才是真的不喜歡。所以當(dāng)你做一個系統(tǒng)的時候,你要想清楚,你的系統(tǒng)目標(biāo)到底是什么。有了明確的目標(biāo),要進一步的分析,才是更有效的方式。當(dāng)你對于基礎(chǔ)目標(biāo)很清楚的時候,再花專門的人力做基礎(chǔ)數(shù)據(jù),這樣事半功倍。
和原因相比,結(jié)果更重要,其實這個目標(biāo)是反人類的,但是我要講一下。我為什么這么提呢?現(xiàn)在的機器學(xué)習(xí)的算法已經(jīng)很好了,大家不一定要非常苛求原因,比如我還在講新聞推薦的例子,我們希望用戶在平臺上,擁有更長的停留時間,更好的滿意度,我們目標(biāo)不是想知道他到底喜歡釣魚還是到底喜歡什么,因為他喜歡的因素非常多,可能是組合的因素,比如他某個時間非常喜歡,可能這個喜好變成像樣化的表示,人就更不容易讀了。我們不能因為這件事情不能解釋就不做這件事情。當(dāng)你有足夠多的數(shù)據(jù),當(dāng)你的目標(biāo)足夠多的時候,我們要大膽的敢使用,相信它的結(jié)果。
統(tǒng)一團隊,統(tǒng)一模型,多用原始數(shù)據(jù)。這也是非常重要的事情,其實在做算法的工程師,尤其是算法很資深的工程師,通常有一些自己的流派的,對于一個公司來講,我們希望這個公司在這方面的人才,是擁有較為一致較為有效率的方式,所以算法團隊、工程團隊以及產(chǎn)品,要與產(chǎn)品有耦合一致的目標(biāo)。我跟很多公司聊過,很多時候他們力量是不一致的,非常影響效率。所以要有一個比較統(tǒng)一的團隊,其中關(guān)鍵團隊要對業(yè)務(wù)有了解,對算法要了解,對于工程團隊要了解,其實機器學(xué)習(xí)這一些年,算法上沒有突飛猛進,反而在工程上有突飛猛進。所以當(dāng)你把算法問題工程問題真正結(jié)合起來。要找好的人,統(tǒng)一思路,快速迭代,往往你把業(yè)務(wù)分成很多個部門效率要高太多。
第二是統(tǒng)一模型。統(tǒng)一模型是什么意思呢?其實這個更多是一個算法問題,很多時候當(dāng)你的目標(biāo)比較明確的時候,統(tǒng)一模型就意味這,你剩下一個較為統(tǒng)一的模型,開發(fā)者或者是工程師們會再一個框架下不斷提交新的想法。一個團隊算價值深度怎么怎么樣子,這個中間,往往很難達到好的效果的。如果你有統(tǒng)一團隊的情況下,可以做更好的梳理。這樣可以得到更好的效率。
對于問題要深入的理解,不僅僅是工具。當(dāng)你有很強的人的時候,就可以這樣做,因為我也聽過很多這樣的公司,比如它的數(shù)據(jù)一個筆記本就存下,它堅持用很多庫,為什么呢?他說很多庫比較流行。我也見過很多公司,你的數(shù)據(jù)量可能并不需要,他說斯巴格(音)比較流行。就是要了解你的問題是什么,這類問題通常有哪一些算法,這些算法對基礎(chǔ)架構(gòu)對于工程的要求是什么。是隨機訪問還是帶寬密集,還是什么。要用更有效的資源達到目標(biāo),當(dāng)然開源是非常廣泛的使用的。我覺得不僅僅把它當(dāng)成工具來使用,適合什么領(lǐng)域也要有更如的理解。
最后一點,充分優(yōu)化核心工程。我們核心推薦的模型或者是例子。這樣的例子還有很多,比如我們的推送系統(tǒng)。以這個例子來講,我們把用戶所有的行為都記下來,這個數(shù)據(jù)在30天的里面,大概會積攢1.25PB。我們用120臺機器,這個系統(tǒng)架構(gòu)是這樣來做的,任務(wù)的調(diào)度。在這個價位之下,我們20個小時就可以把1.25PB的數(shù)據(jù)梳理完。如果用通用的系統(tǒng)根本不可能實現(xiàn)的。因為新聞的變化太快了,我們需要非??斓募词垢逻@些數(shù)據(jù),用戶數(shù)量很多,其實對于兩千多萬用戶來講,一秒鐘只是更新了一次而已,不是非常大的。
時間關(guān)系,就講到這里。