今日頭條算法原理(全文)

31 評(píng)論 125183 瀏覽 893 收藏 31 分鐘

本文主要分享了今日頭條推薦系統(tǒng)概覽以及內(nèi)容分析、用戶標(biāo)簽、評(píng)估分析,內(nèi)容安全等原理。

今天,算法分發(fā)已經(jīng)是信息平臺(tái)、搜索引擎、瀏覽器、社交軟件等幾乎所有軟件的標(biāo)配,但同時(shí),算法也開始面臨質(zhì)疑、挑戰(zhàn)和誤解。今日頭條的推薦算法,從2012年9月第一版開發(fā)運(yùn)行至今,已經(jīng)經(jīng)過(guò)四次大的調(diào)整和修改。

今日頭條委托資深算法架構(gòu)師曹歡歡博士,公開今日頭條的算法原理,以期推動(dòng)整個(gè)行業(yè)問(wèn)診算法、建言算法;通過(guò)讓算法透明,來(lái)消除各界對(duì)算法的誤解,并逐步推動(dòng)整個(gè)行業(yè)讓算法更好的造福社會(huì)。

以下為《今日頭條算法原理》全文:

今日頭條資深算法架構(gòu)師曹歡歡:

本次分享將主要介紹今日頭條推薦系統(tǒng)概覽以及內(nèi)容分析、用戶標(biāo)簽、評(píng)估分析,內(nèi)容安全等原理。

一、系統(tǒng)概覽

推薦系統(tǒng),如果用形式化的方式去描述實(shí)際上是擬合一個(gè)用戶對(duì)內(nèi)容滿意度的函數(shù),這個(gè)函數(shù)需要輸入三個(gè)維度的變量。

  • 第一個(gè)維度是內(nèi)容。頭條現(xiàn)在已經(jīng)是一個(gè)綜合內(nèi)容平臺(tái),圖文、視頻、UGC小視頻、問(wèn)答、微頭條,每種內(nèi)容有很多自己的特征,需要考慮怎樣提取不同內(nèi)容類型的特征做好推薦。
  • 第二個(gè)維度是用戶特征。包括各種興趣標(biāo)簽,職業(yè)、年齡、性別等,還有很多模型刻劃出的隱式用戶興趣等。
  • 第三個(gè)維度是環(huán)境特征。這是移動(dòng)互聯(lián)網(wǎng)時(shí)代推薦的特點(diǎn),用戶隨時(shí)隨地移動(dòng),在工作場(chǎng)合、通勤、旅游等不同的場(chǎng)景,信息偏好有所偏移。

結(jié)合三方面的維度,模型會(huì)給出一個(gè)預(yù)估,即推測(cè)推薦內(nèi)容在這一場(chǎng)景下對(duì)這一用戶是否合適。

這里還有一個(gè)問(wèn)題,如何引入無(wú)法直接衡量的目標(biāo)?

推薦模型中,點(diǎn)擊率、閱讀時(shí)間、點(diǎn)贊、評(píng)論、轉(zhuǎn)發(fā)包括點(diǎn)贊都是可以量化的目標(biāo),能夠用模型直接擬合做預(yù)估,看線上提升情況可以知道做的好不好。但一個(gè)大體量的推薦系統(tǒng),服務(wù)用戶眾多,不能完全由指標(biāo)評(píng)估,引入數(shù)據(jù)指標(biāo)以外的要素也很重要。

比如廣告和特型內(nèi)容頻控。像問(wèn)答卡片就是比較特殊的內(nèi)容形式,其推薦的目標(biāo)不完全是讓用戶瀏覽,還要考慮吸引用戶回答為社區(qū)貢獻(xiàn)內(nèi)容。這些內(nèi)容和普通內(nèi)容如何混排,怎樣控制頻控都需要考慮。

此外,平臺(tái)出于內(nèi)容生態(tài)和社會(huì)責(zé)任的考量,像低俗內(nèi)容的打壓,標(biāo)題黨、低質(zhì)內(nèi)容的打壓,重要新聞的置頂、加權(quán)、強(qiáng)插,低級(jí)別賬號(hào)內(nèi)容降權(quán)都是算法本身無(wú)法完成,需要進(jìn)一步對(duì)內(nèi)容進(jìn)行干預(yù)。

下面我將簡(jiǎn)單介紹在上述算法目標(biāo)的基礎(chǔ)上如何對(duì)其實(shí)現(xiàn)。

前面提到的公式y(tǒng) = F(Xi ,Xu ,Xc),是一個(gè)很經(jīng)典的監(jiān)督學(xué)習(xí)問(wèn)題。可實(shí)現(xiàn)的方法有很多,比如傳統(tǒng)的協(xié)同過(guò)濾模型,監(jiān)督學(xué)習(xí)算法Logistic Regression模型,基于深度學(xué)習(xí)的模型,F(xiàn)actorization Machine和GBDT等。

一個(gè)優(yōu)秀的工業(yè)級(jí)推薦系統(tǒng)需要非常靈活的算法實(shí)驗(yàn)平臺(tái),可以支持多種算法組合,包括模型結(jié)構(gòu)調(diào)整。因?yàn)楹茈y有一套通用的模型架構(gòu)適用于所有的推薦場(chǎng)景。現(xiàn)在很流行將LR和DNN結(jié)合,前幾年Facebook也將LR和GBDT算法做結(jié)合。今日頭條旗下幾款產(chǎn)品都在沿用同一套強(qiáng)大的算法推薦系統(tǒng),但根據(jù)業(yè)務(wù)場(chǎng)景不同,模型架構(gòu)會(huì)有所調(diào)整。

模型之后再看一下典型的推薦特征,主要有四類特征會(huì)對(duì)推薦起到比較重要的作用。

  • 第一類是相關(guān)性特征,就是評(píng)估內(nèi)容的屬性和與用戶是否匹配。顯性的匹配包括關(guān)鍵詞匹配、分類匹配、來(lái)源匹配、主題匹配等。像FM模型中也有一些隱性匹配,從用戶向量與內(nèi)容向量的距離可以得出。
  • 第二類是環(huán)境特征,包括地理位置、時(shí)間。這些既是bias特征,也能以此構(gòu)建一些匹配特征。
  • 第三類是熱度特征。包括全局熱度、分類熱度,主題熱度,以及關(guān)鍵詞熱度等。內(nèi)容熱度信息在大的推薦系統(tǒng)特別在用戶冷啟動(dòng)的時(shí)候非常有效。
  • 第四類是協(xié)同特征,它可以在部分程度上幫助解決所謂算法越推越窄的問(wèn)題。協(xié)同特征并非考慮用戶已有歷史。而是通過(guò)用戶行為分析不同用戶間相似性,比如點(diǎn)擊相似、興趣分類相似、主題相似、興趣詞相似,甚至向量相似,從而擴(kuò)展模型的探索能力。

模型的訓(xùn)練上,頭條系大部分推薦產(chǎn)品采用實(shí)時(shí)訓(xùn)練。實(shí)時(shí)訓(xùn)練省資源并且反饋快,這對(duì)信息流產(chǎn)品非常重要。用戶需要行為信息可以被模型快速捕捉并反饋至下一刷的推薦效果。我們線上目前基于storm集群實(shí)時(shí)處理樣本數(shù)據(jù),包括點(diǎn)擊、展現(xiàn)、收藏、分享等動(dòng)作類型。模型參數(shù)服務(wù)器是內(nèi)部開發(fā)的一套高性能的系統(tǒng),因?yàn)轭^條數(shù)據(jù)規(guī)模增長(zhǎng)太快,類似的開源系統(tǒng)穩(wěn)定性和性能無(wú)法滿足,而我們自研的系統(tǒng)底層做了很多針對(duì)性的優(yōu)化,提供了完善運(yùn)維工具,更適配現(xiàn)有的業(yè)務(wù)場(chǎng)景。

目前,頭條的推薦算法模型在世界范圍內(nèi)也是比較大的,包含幾百億原始特征和數(shù)十億向量特征。整體的訓(xùn)練過(guò)程是線上服務(wù)器記錄實(shí)時(shí)特征,導(dǎo)入到Kafka文件隊(duì)列中,然后進(jìn)一步導(dǎo)入Storm集群消費(fèi)Kafka數(shù)據(jù),客戶端回傳推薦的label構(gòu)造訓(xùn)練樣本,隨后根據(jù)最新樣本進(jìn)行在線訓(xùn)練更新模型參數(shù),最終線上模型得到更新。這個(gè)過(guò)程中主要的延遲在用戶的動(dòng)作反饋延時(shí),因?yàn)槲恼峦扑]后用戶不一定馬上看,不考慮這部分時(shí)間,整個(gè)系統(tǒng)是幾乎實(shí)時(shí)的。

但因?yàn)轭^條目前的內(nèi)容量非常大,加上小視頻內(nèi)容有千萬(wàn)級(jí)別,推薦系統(tǒng)不可能所有內(nèi)容全部由模型預(yù)估。所以需要設(shè)計(jì)一些召回策略,每次推薦時(shí)從海量?jī)?nèi)容中篩選出千級(jí)別的內(nèi)容庫(kù)。召回策略最重要的要求是性能要極致,一般超時(shí)不能超過(guò)50毫秒。

召回策略種類有很多,我們主要用的是倒排的思路。離線維護(hù)一個(gè)倒排,這個(gè)倒排的key可以是分類,topic,實(shí)體,來(lái)源等,排序考慮熱度、新鮮度、動(dòng)作等。線上召回可以迅速?gòu)牡古胖懈鶕?jù)用戶興趣標(biāo)簽對(duì)內(nèi)容做截?cái)?,高效的從很大的?nèi)容庫(kù)中篩選比較靠譜的一小部分內(nèi)容。

二、內(nèi)容分析

內(nèi)容分析包括文本分析,圖片分析和視頻分析。頭條一開始主要做資訊,今天我們主要講一下文本分析。文本分析在推薦系統(tǒng)中一個(gè)很重要的作用是用戶興趣建模。沒有內(nèi)容及文本標(biāo)簽,無(wú)法得到用戶興趣標(biāo)簽。舉個(gè)例子,只有知道文章標(biāo)簽是互聯(lián)網(wǎng),用戶看了互聯(lián)網(wǎng)標(biāo)簽的文章,才能知道用戶有互聯(lián)網(wǎng)標(biāo)簽,其他關(guān)鍵詞也一樣。

另一方面,文本內(nèi)容的標(biāo)簽可以直接幫助推薦特征,比如魅族的內(nèi)容可以推薦給關(guān)注魅族的用戶,這是用戶標(biāo)簽的匹配。如果某段時(shí)間推薦主頻道效果不理想,出現(xiàn)推薦窄化,用戶會(huì)發(fā)現(xiàn)到具體的頻道推薦(如科技、體育、娛樂、軍事等)中閱讀后,再回主feed,推薦效果會(huì)更好。因?yàn)檎麄€(gè)模型是打通的,子頻道探索空間較小,更容易滿足用戶需求。只通過(guò)單一信道反饋提高推薦準(zhǔn)確率難度會(huì)比較大,子頻道做的好很重要。而這也需要好的內(nèi)容分析。

上圖是今日頭條的一個(gè)實(shí)際文本case。可以看到,這篇文章有分類、關(guān)鍵詞、topic、實(shí)體詞等文本特征。當(dāng)然不是沒有文本特征,推薦系統(tǒng)就不能工作,推薦系統(tǒng)最早期應(yīng)用在Amazon,甚至沃爾瑪時(shí)代就有,包括Netfilx做視頻推薦也沒有文本特征直接協(xié)同過(guò)濾推薦。但對(duì)資訊類產(chǎn)品而言,大部分是消費(fèi)當(dāng)天內(nèi)容,沒有文本特征新內(nèi)容冷啟動(dòng)非常困難,協(xié)同類特征無(wú)法解決文章冷啟動(dòng)問(wèn)題。

今日頭條推薦系統(tǒng)主要抽取的文本特征包括以下幾類。首先是語(yǔ)義標(biāo)簽類特征,顯式為文章打上語(yǔ)義標(biāo)簽。這部分標(biāo)簽是由人定義的特征,每個(gè)標(biāo)簽有明確的意義,標(biāo)簽體系是預(yù)定義的。此外還有隱式語(yǔ)義特征,主要是topic特征和關(guān)鍵詞特征,其中topic特征是對(duì)于詞概率分布的描述,無(wú)明確意義;而關(guān)鍵詞特征會(huì)基于一些統(tǒng)一特征描述,無(wú)明確集合。

另外文本相似度特征也非常重要。在頭條,曾經(jīng)用戶反饋?zhàn)畲蟮膯?wèn)題之一就是為什么總推薦重復(fù)的內(nèi)容。這個(gè)問(wèn)題的難點(diǎn)在于,每個(gè)人對(duì)重復(fù)的定義不一樣。舉個(gè)例子,有人覺得這篇講皇馬和巴薩的文章,昨天已經(jīng)看過(guò)類似內(nèi)容,今天還說(shuō)這兩個(gè)隊(duì)那就是重復(fù)。但對(duì)于一個(gè)重度球迷而言,尤其是巴薩的球迷,恨不得所有報(bào)道都看一遍。解決這一問(wèn)題需要根據(jù)判斷相似文章的主題、行文、主體等內(nèi)容,根據(jù)這些特征做線上策略。

同樣,還有時(shí)空特征,分析內(nèi)容的發(fā)生地點(diǎn)以及時(shí)效性。比如武漢限行的事情推給北京用戶可能就沒有意義。最后還要考慮質(zhì)量相關(guān)特征,判斷內(nèi)容是否低俗,色情,是否是軟文,雞湯?

上圖是頭條語(yǔ)義標(biāo)簽的特征和使用場(chǎng)景。他們之間層級(jí)不同,要求不同。

分類的目標(biāo)是覆蓋全面,希望每篇內(nèi)容每段視頻都有分類;而實(shí)體體系要求精準(zhǔn),相同名字或內(nèi)容要能明確區(qū)分究竟指代哪一個(gè)人或物,但不用覆蓋很全。概念體系則負(fù)責(zé)解決比較精確又屬于抽象概念的語(yǔ)義。這是我們最初的分類,實(shí)踐中發(fā)現(xiàn)分類和概念在技術(shù)上能互用,后來(lái)統(tǒng)一用了一套技術(shù)架構(gòu)。

目前,隱式語(yǔ)義特征已經(jīng)可以很好的幫助推薦,而語(yǔ)義標(biāo)簽需要持續(xù)標(biāo)注,新名詞新概念不斷出現(xiàn),標(biāo)注也要不斷迭代。其做好的難度和資源投入要遠(yuǎn)大于隱式語(yǔ)義特征,那為什么還需要語(yǔ)義標(biāo)簽?有一些產(chǎn)品上的需要,比如頻道需要有明確定義的分類內(nèi)容和容易理解的文本標(biāo)簽體系。語(yǔ)義標(biāo)簽的效果是檢查一個(gè)公司NLP技術(shù)水平的試金石。

今日頭條推薦系統(tǒng)的線上分類采用典型的層次化文本分類算法。最上面Root,下面第一層的分類是像科技、體育、財(cái)經(jīng)、娛樂,體育這樣的大類,再下面細(xì)分足球、籃球、乒乓球、網(wǎng)球、田徑、游泳…,足球再細(xì)分國(guó)際足球、中國(guó)足球,中國(guó)足球又細(xì)分中甲、中超、國(guó)家隊(duì)…,相比單獨(dú)的分類器,利用層次化文本分類算法能更好地解決數(shù)據(jù)傾斜的問(wèn)題。有一些例外是,如果要提高召回,可以看到我們連接了一些飛線。這套架構(gòu)通用,但根據(jù)不同的問(wèn)題難度,每個(gè)元分類器可以異構(gòu),像有些分類SVM效果很好,有些要結(jié)合CNN,有些要結(jié)合RNN再處理一下。

上圖是一個(gè)實(shí)體詞識(shí)別算法的case。基于分詞結(jié)果和詞性標(biāo)注選取候選,期間可能需要根據(jù)知識(shí)庫(kù)做一些拼接,有些實(shí)體是幾個(gè)詞的組合,要確定哪幾個(gè)詞結(jié)合在一起能映射實(shí)體的描述。如果結(jié)果映射多個(gè)實(shí)體還要通過(guò)詞向量、topic分布甚至詞頻本身等去歧,最后計(jì)算一個(gè)相關(guān)性模型。

三、用戶標(biāo)簽

內(nèi)容分析和用戶標(biāo)簽是推薦系統(tǒng)的兩大基石。內(nèi)容分析涉及到機(jī)器學(xué)習(xí)的內(nèi)容多一些,相比而言,用戶標(biāo)簽工程挑戰(zhàn)更大。

今日頭條常用的用戶標(biāo)簽包括用戶感興趣的類別和主題、關(guān)鍵詞、來(lái)源、基于興趣的用戶聚類以及各種垂直興趣特征(車型,體育球隊(duì),股票等)。還有性別、年齡、地點(diǎn)等信息。性別信息通過(guò)用戶第三方社交賬號(hào)登錄得到。年齡信息通常由模型預(yù)測(cè),通過(guò)機(jī)型、閱讀時(shí)間分布等預(yù)估。常駐地點(diǎn)來(lái)自用戶授權(quán)訪問(wèn)位置信息,在位置信息的基礎(chǔ)上通過(guò)傳統(tǒng)聚類的方法拿到常駐點(diǎn)。常駐點(diǎn)結(jié)合其他信息,可以推測(cè)用戶的工作地點(diǎn)、出差地點(diǎn)、旅游地點(diǎn)。這些用戶標(biāo)簽非常有助于推薦。

當(dāng)然最簡(jiǎn)單的用戶標(biāo)簽是瀏覽過(guò)的內(nèi)容標(biāo)簽。但這里涉及到一些數(shù)據(jù)處理策略。主要包括:

  • 一、過(guò)濾噪聲。通過(guò)停留時(shí)間短的點(diǎn)擊,過(guò)濾標(biāo)題黨。
  • 二、熱點(diǎn)懲罰。對(duì)用戶在一些熱門文章(如前段時(shí)間PG One的新聞)上的動(dòng)作做降權(quán)處理。理論上,傳播范圍較大的內(nèi)容,置信度會(huì)下降。
  • 三、時(shí)間衰減。用戶興趣會(huì)發(fā)生偏移,因此策略更偏向新的用戶行為。因此,隨著用戶動(dòng)作的增加,老的特征權(quán)重會(huì)隨時(shí)間衰減,新動(dòng)作貢獻(xiàn)的特征權(quán)重會(huì)更大。
  • 四、懲罰展現(xiàn)。如果一篇推薦給用戶的文章沒有被點(diǎn)擊,相關(guān)特征(類別,關(guān)鍵詞,來(lái)源)權(quán)重會(huì)被懲罰。當(dāng)然同時(shí),也要考慮全局背景,是不是相關(guān)內(nèi)容推送比較多,以及相關(guān)的關(guān)閉和dislike信號(hào)等。

用戶標(biāo)簽挖掘總體比較簡(jiǎn)單,主要還是剛剛提到的工程挑戰(zhàn)。頭條用戶標(biāo)簽第一版是批量計(jì)算框架,流程比較簡(jiǎn)單,每天抽取昨天的日活用戶過(guò)去兩個(gè)月的動(dòng)作數(shù)據(jù),在Hadoop集群上批量計(jì)算結(jié)果。

但問(wèn)題在于,隨著用戶高速增長(zhǎng),興趣模型種類和其他批量處理任務(wù)都在增加,涉及到的計(jì)算量太大。2014年,批量處理任務(wù)幾百萬(wàn)用戶標(biāo)簽更新的Hadoop任務(wù),當(dāng)天完成已經(jīng)開始勉強(qiáng)。集群計(jì)算資源緊張很容易影響其它工作,集中寫入分布式存儲(chǔ)系統(tǒng)的壓力也開始增大,并且用戶興趣標(biāo)簽更新延遲越來(lái)越高。

面對(duì)這些挑戰(zhàn)。2014年底今日頭條上線了用戶標(biāo)簽Storm集群流式計(jì)算系統(tǒng)。改成流式之后,只要有用戶動(dòng)作更新就更新標(biāo)簽,CPU代價(jià)比較小,可以節(jié)省80%的CPU時(shí)間,大大降低了計(jì)算資源開銷。同時(shí),只需幾十臺(tái)機(jī)器就可以支撐每天數(shù)千萬(wàn)用戶的興趣模型更新,并且特征更新速度非???,基本可以做到準(zhǔn)實(shí)時(shí)。這套系統(tǒng)從上線一直使用至今。

當(dāng)然,我們也發(fā)現(xiàn)并非所有用戶標(biāo)簽都需要流式系統(tǒng)。像用戶的性別、年齡、常駐地點(diǎn)這些信息,不需要實(shí)時(shí)重復(fù)計(jì)算,就仍然保留daily更新。

四、評(píng)估分析

上面介紹了推薦系統(tǒng)的整體架構(gòu),那么如何評(píng)估推薦效果好不好?

有一句我認(rèn)為非常有智慧的話,“一個(gè)事情沒法評(píng)估就沒法優(yōu)化”。對(duì)推薦系統(tǒng)也是一樣。

事實(shí)上,很多因素都會(huì)影響推薦效果。比如侯選集合變化,召回模塊的改進(jìn)或增加,推薦特征的增加,模型架構(gòu)的改進(jìn)在,算法參數(shù)的優(yōu)化等等,不一一舉例。評(píng)估的意義就在于,很多優(yōu)化最終可能是負(fù)向效果,并不是優(yōu)化上線后效果就會(huì)改進(jìn)。

全面的評(píng)估推薦系統(tǒng),需要完備的評(píng)估體系、強(qiáng)大的實(shí)驗(yàn)平臺(tái)以及易用的經(jīng)驗(yàn)分析工具。所謂完備的體系就是并非單一指標(biāo)衡量,不能只看點(diǎn)擊率或者停留時(shí)長(zhǎng)等,需要綜合評(píng)估。過(guò)去幾年我們一直在嘗試,能不能綜合盡可能多的指標(biāo)合成唯一的評(píng)估指標(biāo),但仍在探索中。目前,我們上線還是要由各業(yè)務(wù)比較資深的同學(xué)組成評(píng)審委員會(huì)深入討論后決定。

很多公司算法做的不好,并非是工程師能力不夠,而是需要一個(gè)強(qiáng)大的實(shí)驗(yàn)平臺(tái),還有便捷的實(shí)驗(yàn)分析工具,可以智能分析數(shù)據(jù)指標(biāo)的置信度。

一個(gè)良好的評(píng)估體系建立需要遵循幾個(gè)原則,首先是兼顧短期指標(biāo)與長(zhǎng)期指標(biāo)。我在之前公司負(fù)責(zé)電商方向的時(shí)候觀察到,很多策略調(diào)整短期內(nèi)用戶覺得新鮮,但是長(zhǎng)期看其實(shí)沒有任何助益。

其次,要兼顧用戶指標(biāo)和生態(tài)指標(biāo)。今日頭條作為內(nèi)容分創(chuàng)作平臺(tái),既要為內(nèi)容創(chuàng)作者提供價(jià)值,讓他更有尊嚴(yán)的創(chuàng)作,也有義務(wù)滿足用戶,這兩者要平衡。還有廣告主利益也要考慮,這是多方博弈和平衡的過(guò)程。

另外,要注意協(xié)同效應(yīng)的影響。實(shí)驗(yàn)中嚴(yán)格的流量隔離很難做到,要注意外部效應(yīng)。

強(qiáng)大的實(shí)驗(yàn)平臺(tái)非常直接的優(yōu)點(diǎn)是,當(dāng)同時(shí)在線的實(shí)驗(yàn)比較多時(shí),可以由平臺(tái)自動(dòng)分配流量,無(wú)需人工溝通,并且實(shí)驗(yàn)結(jié)束流量立即回收,提高管理效率。這能幫助公司降低分析成本,加快算法迭代效應(yīng),使整個(gè)系統(tǒng)的算法優(yōu)化工作能夠快速往前推進(jìn)。

這是頭條A/B Test實(shí)驗(yàn)系統(tǒng)的基本原理。首先我們會(huì)做在離線狀態(tài)下做好用戶分桶,然后線上分配實(shí)驗(yàn)流量,將桶里用戶打上標(biāo)簽,分給實(shí)驗(yàn)組。舉個(gè)例子,開一個(gè)10%流量的實(shí)驗(yàn),兩個(gè)實(shí)驗(yàn)組各5%,一個(gè)5%是基線,策略和線上大盤一樣,另外一個(gè)是新的策略。

實(shí)驗(yàn)過(guò)程中用戶動(dòng)作會(huì)被搜集,基本上是準(zhǔn)實(shí)時(shí),每小時(shí)都可以看到。但因?yàn)樾r(shí)數(shù)據(jù)有波動(dòng),通常是以天為時(shí)間節(jié)點(diǎn)來(lái)看。動(dòng)作搜集后會(huì)有日志處理、分布式統(tǒng)計(jì)、寫入數(shù)據(jù)庫(kù),非常便捷。

在這個(gè)系統(tǒng)下工程師只需要設(shè)置流量需求、實(shí)驗(yàn)時(shí)間、定義特殊過(guò)濾條件,自定義實(shí)驗(yàn)組ID。系統(tǒng)可以自動(dòng)生成:實(shí)驗(yàn)數(shù)據(jù)對(duì)比、實(shí)驗(yàn)數(shù)據(jù)置信度、實(shí)驗(yàn)結(jié)論總結(jié)以及實(shí)驗(yàn)優(yōu)化建議。

當(dāng)然,只有實(shí)驗(yàn)平臺(tái)是遠(yuǎn)遠(yuǎn)不夠的。線上實(shí)驗(yàn)平臺(tái)只能通過(guò)數(shù)據(jù)指標(biāo)變化推測(cè)用戶體驗(yàn)的變化,但數(shù)據(jù)指標(biāo)和用戶體驗(yàn)存在差異,很多指標(biāo)不能完全量化。很多改進(jìn)仍然要通過(guò)人工分析,重大改進(jìn)需要人工評(píng)估二次確認(rèn)。

五、內(nèi)容安全

最后要介紹今日頭條在內(nèi)容安全上的一些舉措。頭條現(xiàn)在已經(jīng)是國(guó)內(nèi)最大的內(nèi)容創(chuàng)作與分發(fā)憑條,必須越來(lái)越重視社會(huì)責(zé)任和行業(yè)領(lǐng)導(dǎo)者的責(zé)任。如果1%的推薦內(nèi)容出現(xiàn)問(wèn)題,就會(huì)產(chǎn)生較大的影響。

因此頭條從創(chuàng)立伊始就把內(nèi)容安全放在公司最高優(yōu)先級(jí)隊(duì)列。成立之初,已經(jīng)專門設(shè)有審核團(tuán)隊(duì)負(fù)責(zé)內(nèi)容安全。當(dāng)時(shí)研發(fā)所有客戶端、后端、算法的同學(xué)一共才不到40人,頭條非常重視內(nèi)容審核。

現(xiàn)在,今日頭條的內(nèi)容主要來(lái)源于兩部分,一是具有成熟內(nèi)容生產(chǎn)能力的PGC平臺(tái)

一是UGC用戶內(nèi)容,如問(wèn)答、用戶評(píng)論、微頭條。這兩部分內(nèi)容需要通過(guò)統(tǒng)一的審核機(jī)制。如果是數(shù)量相對(duì)少的PGC內(nèi)容,會(huì)直接進(jìn)行風(fēng)險(xiǎn)審核,沒有問(wèn)題會(huì)大范圍推薦。UGC內(nèi)容需要經(jīng)過(guò)一個(gè)風(fēng)險(xiǎn)模型的過(guò)濾,有問(wèn)題的會(huì)進(jìn)入二次風(fēng)險(xiǎn)審核。審核通過(guò)后,內(nèi)容會(huì)被真正進(jìn)行推薦。這時(shí)如果收到一定量以上的評(píng)論或者舉報(bào)負(fù)向反饋,還會(huì)再回到復(fù)審環(huán)節(jié),有問(wèn)題直接下架。整個(gè)機(jī)制相對(duì)而言比較健全,作為行業(yè)領(lǐng)先者,在內(nèi)容安全上,今日頭條一直用最高的標(biāo)準(zhǔn)要求自己。

分享內(nèi)容識(shí)別技術(shù)主要鑒黃模型,謾罵模型以及低俗模型。今日頭條的低俗模型通過(guò)深度學(xué)習(xí)算法訓(xùn)練,樣本庫(kù)非常大,圖片、文本同時(shí)分析。這部分模型更注重召回率,準(zhǔn)確率甚至可以犧牲一些。謾罵模型的樣本庫(kù)同樣超過(guò)百萬(wàn),召回率高達(dá)95%+,準(zhǔn)確率80%+。如果用戶經(jīng)常出言不諱或者不當(dāng)?shù)脑u(píng)論,我們有一些懲罰機(jī)制。

泛低質(zhì)識(shí)別涉及的情況非常多,像假新聞、黑稿、題文不符、標(biāo)題黨、內(nèi)容質(zhì)量低等等,這部分內(nèi)容由機(jī)器理解是非常難的,需要大量反饋信息,包括其他樣本信息比對(duì)。目前低質(zhì)模型的準(zhǔn)確率和召回率都不是特別高,還需要結(jié)合人工復(fù)審,將閾值提高。目前最終的召回已達(dá)到95%,這部分其實(shí)還有非常多的工作可以做。頭條人工智能實(shí)驗(yàn)室李航老師目前也在和密歇根大學(xué)共建科研項(xiàng)目,設(shè)立謠言識(shí)別平臺(tái)。

以上是頭條推薦系統(tǒng)的原理分享,希望未來(lái)得到更多的建議,幫助我們更好改進(jìn)工作。

 

作者:曹歡歡博士,今日頭條資深算法架構(gòu)師

來(lái)源:今日頭條

題圖來(lái)自u(píng)nsplash,基于CC0協(xié)議

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 在線求一師傅,我想投放頭條廣告,預(yù)算羞澀如何是好

    回復(fù)
  2. 說(shuō)起來(lái)也有些矛盾,頭條低質(zhì)量?jī)?nèi)容審查系統(tǒng)偏偏給自己的問(wèn)答系統(tǒng)留了后門,為引流不惜使用一些爛俗的問(wèn)題和含有明顯錯(cuò)誤指向的信息來(lái)博人眼球,實(shí)在是有點(diǎn)可笑

    來(lái)自香港 回復(fù)
    1. 說(shuō)明頭條追求的是流量 不是質(zhì)量

      來(lái)自廣東 回復(fù)
  3. 厲害!學(xué)習(xí)了。

    來(lái)自廣東 回復(fù)
  4. https://mubu.com/doc/glo87y10m0
    將文章內(nèi)容做了結(jié)構(gòu)梳理,方便閱讀,可以參考幕布整理筆記。 ??

    來(lái)自廣東 回復(fù)
  5. “頭條系大部分推薦產(chǎn)品采用實(shí)時(shí)訓(xùn)練。實(shí)時(shí)訓(xùn)練省資源并且反饋快?!保?/p>

    來(lái)自北京 回復(fù)
  6. 很 好很強(qiáng)大,搬運(yùn)的不錯(cuò)

    來(lái)自河北 回復(fù)
  7. 感謝分享,非常有幫助!

    來(lái)自浙江 回復(fù)
  8. 相見恨晚

    來(lái)自廣東 回復(fù)
  9. 只知道協(xié)同過(guò)濾。。。DNN什么的就不懂了

    來(lái)自上海 回復(fù)
  10. 看完一臉懵逼 回去慢慢消化 ?

    來(lái)自北京 回復(fù)
  11. 一臉懵逼的進(jìn)來(lái),一臉懵逼的出去。。。

    來(lái)自上海 回復(fù)
    1. 哈哈哈 您咋這么逗

      來(lái)自北京 回復(fù)
  12. 老哥,你是我同事嗎

    來(lái)自廣東 回復(fù)
  13. 有沒有淺一點(diǎn)的,非技術(shù)人員也能看懂的流程哇

    來(lái)自廣東 回復(fù)
  14. 你們都說(shuō)看不懂,我就兩點(diǎn)不懂:這個(gè)不懂,那個(gè)也不懂。 ?

    來(lái)自廣東 回復(fù)
  15. 沒想到產(chǎn)品界還能有這么厲害的技術(shù)干貨,666.

    來(lái)自上海 回復(fù)
  16. 正在努力看懂?。。∈箘趴炊?/p>

    來(lái)自湖北 回復(fù)
    1. 是的沒錯(cuò)哈哈哈

      回復(fù)
    2. 假裝遲早會(huì)看懂的樣子在努力地看懂!??

      回復(fù)
    3. 哈哈哈我還沒有看文章 先把大家的評(píng)論看了 個(gè)個(gè)兒都是段子手啊 ??

      來(lái)自北京 回復(fù)
  17. 看了也懵逼系列

    來(lái)自江蘇 回復(fù)
  18. 感謝分享,但是完全看不懂的呢!

    回復(fù)
  19. 完全看不懂

    回復(fù)
  20. 一看到算法公式就蒙圈

    來(lái)自北京 回復(fù)
  21. 看了還是不懂系列

    回復(fù)
  22. 寫的太好了,給我許多啟示,學(xué)習(xí)了….只能說(shuō)大神牛B

    來(lái)自上海 回復(fù)
  23. 太專業(yè)了…… 看不懂!

    來(lái)自廣東 回復(fù)
  24. 講的是實(shí)在,反正我是一頭霧水,沒文化啊

    來(lái)自江蘇 回復(fù)
  25. 公布了我就會(huì)看,看了也未必會(huì)懂。

    來(lái)自河南 回復(fù)
  26. 有點(diǎn)看不懂 ??

    來(lái)自遼寧 回復(fù)