今日頭條副總裁楊震原:今日頭條的數(shù)據(jù)技術(shù)
[導(dǎo)讀]8月29日下午,由七牛公司主辦的主題為數(shù)據(jù)重構(gòu)未來的七牛·數(shù)據(jù)時(shí)代峰會(huì)在上海國際時(shí)尚中心繼續(xù)舉行。今日頭條副總裁楊震原就今日頭條的數(shù)
8月29日下午,由七牛公司主辦的主題為“數(shù)據(jù)重構(gòu)未來”的“七牛·數(shù)據(jù)時(shí)代峰會(huì)”在上海國際時(shí)尚中心繼續(xù)舉行。今日頭條副總裁楊震原就今日頭條的數(shù)據(jù)技術(shù)發(fā)表了演講,以下為演講實(shí)錄:

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