TikTok算法揭秘:如何運(yùn)用機(jī)器學(xué)習(xí)技術(shù)為用戶展示個(gè)性化內(nèi)容?

來源:讀芯術(shù)
作者:蔡思齊、李世琛
時(shí)間:2020-08-13
6275
本文將討論TikTok如何運(yùn)用機(jī)器學(xué)習(xí)技術(shù),通過互動分析用戶的興趣和喜好,并為不同的用戶展示個(gè)性化的視頻內(nèi)容。

作者:讀芯術(shù)

來源:讀芯術(shù)

TikTok正像風(fēng)暴一樣席卷全球。據(jù)Sensor Tower的數(shù)據(jù)顯示,這一短視頻App在蘋果應(yīng)用商店和谷歌Play商店上的全球下載量已經(jīng)超過了20億。它背后究竟有什么魔力讓人如此著迷?答案是機(jī)器學(xué)習(xí)推薦引擎。

坦白說,誰不喜歡貓貓狗狗的搞笑視頻呢?尤其是隔離在家時(shí),刷短視頻是打發(fā)時(shí)間的最佳選擇。但這只是TikTok取得成功的一部分原因。不到兩年的時(shí)間,TikTok從小規(guī)模傳播的App成為了2020年月活8億、病毒式擴(kuò)散的App。

ia_11700000037.jpg

2020年1月,TikTok成為美國下載量最高的應(yīng)用程序。

ia_11700000038.jpg

TikTok全球下載量

人們平均每天花52分鐘刷TikTok,而Snapchat,Instagram和Facebook的用戶使用時(shí)長分別是每天26分鐘、29分鐘和37分鐘。

ia_11700000039.jpg

圖源:Oberlo

除了增長黑客策略,這個(gè)60秒短視頻App充滿了玩梗、搞笑、舞蹈和才藝。它有業(yè)內(nèi)最優(yōu)秀的推薦引擎之一,用戶無需搜索,也不用糾結(jié)看哪個(gè)博主,輕點(diǎn)手指就會有個(gè)性化推薦的視頻。

這種快速、簡單、無窮無盡的快樂使人很難停止刷TikTok,有人稱它為終極時(shí)間殺手,占據(jù)所有的空閑時(shí)間,以某種方式創(chuàng)造了一個(gè)現(xiàn)實(shí)扭曲力場——“TikTok 5分鐘等于現(xiàn)實(shí)生活1小時(shí)”。

本文將討論TikTok如何運(yùn)用機(jī)器學(xué)習(xí)技術(shù),通過互動分析用戶的興趣和喜好,并為不同的用戶展示個(gè)性化的視頻內(nèi)容。

推薦引擎對數(shù)據(jù)科學(xué)界來說并不陌生。有人認(rèn)為它是上一代的AI系統(tǒng),確實(shí),它不像圖片識別和語言生成技術(shù)那樣有著炫酷的影響力。但盡管如此,推薦引擎依然是主流AI系統(tǒng)之一,應(yīng)用廣泛,幾乎所有線上服務(wù)及平臺都使用推薦引擎系統(tǒng),比如YouTube的視頻推薦、亞馬遜發(fā)送的促銷郵件、瀏覽kindle書店時(shí)出現(xiàn)的“你可能也喜歡的書”推薦。

戈麥茲·烏里韋發(fā)布的研究報(bào)告以及Netflix產(chǎn)品總監(jiān)尼爾·亨特都稱,個(gè)性化和推薦的結(jié)合每年給Netflix省下的錢超過10億美元,80%的用戶都從引擎的推薦列表中選擇視頻。

那么是什么讓TikTok與眾不同的呢?一起來看看吧!

推薦引擎介紹

有太多關(guān)于推薦引擎的有用文章和網(wǎng)課,本文不再一一贅述,下面兩個(gè)資源有助于對推薦引擎建立基本了解:

·從零開始創(chuàng)建推薦引擎的綜合指南(閱讀時(shí)間約35分鐘,復(fù)制python代碼需40-60分鐘):https://www.analyticsvidhya.com/blog/2018/06/comprehensive-guide-recommendation-engine-python/

·吳恩達(dá)的推薦引擎(視頻時(shí)長一小時(shí)):https://www.youtube.com/playlist?list=PL-6SiIrhTAi6x4Oq28s7yy94ubLzVXabj

除了基礎(chǔ)部分,產(chǎn)業(yè)化的推薦引擎需要強(qiáng)大的后端和架構(gòu)設(shè)計(jì)才能實(shí)現(xiàn)一體化。下面是一個(gè)基本示例:

ia_11700000040.jpg

推薦引擎

一個(gè)實(shí)時(shí)推薦系統(tǒng)應(yīng)該有堅(jiān)實(shí)的數(shù)據(jù)基礎(chǔ)(用于收集和存儲數(shù)據(jù))來支持多個(gè)頂部抽象層(包括算法層、服務(wù)層和應(yīng)用層),通過這些抽象層解決不同的商業(yè)問題。

TikTok推薦引擎的設(shè)計(jì)原型

ia_11700000041.jpg

圖源:unsplash

“以用戶為中心的設(shè)計(jì)”是這一原型的核心。簡單來說,從冷啟動期的后臺調(diào)整到為活躍用戶提供明確推薦,TikTok只會推薦用戶喜歡的內(nèi)容。

如果用戶點(diǎn)擊了舞蹈視頻,一開始看到的內(nèi)容就定制為這一娛樂類型,隨后的機(jī)制是跟蹤用戶行為,進(jìn)行進(jìn)一步分析,最終提供該用戶獨(dú)有的精準(zhǔn)推薦。

高級工作流如下所示:

ia_11700000042.jpg

3個(gè)主要組成部分

在TikTok的原型中,有三個(gè)主要的構(gòu)成要素:標(biāo)記內(nèi)容、建立用戶畫像和用戶場景以及訓(xùn)練并提供推薦算法。

數(shù)據(jù)和特征

首先是數(shù)據(jù)。推薦模型的正式描述是:利用用戶原創(chuàng)內(nèi)容滿足用戶的功能。要提供這一功能需要輸入三個(gè)方面的數(shù)據(jù)。

內(nèi)容數(shù)據(jù)——TikTok是一個(gè)有大量用戶原創(chuàng)內(nèi)容的平臺。每種內(nèi)容都有其特質(zhì),系統(tǒng)應(yīng)該能夠識別和區(qū)分內(nèi)容,才能提供可靠的推薦。

場景數(shù)據(jù)——這一數(shù)據(jù)記錄的是使用場景,以及不同場景下用戶的喜好轉(zhuǎn)變。比如,某用戶在上班、旅行、通勤時(shí)分別喜歡看什么類型的視頻。

用戶數(shù)據(jù)——既包括興趣標(biāo)簽、職業(yè)、年齡、性別、人口統(tǒng)計(jì)數(shù)據(jù)等,也包括以機(jī)器學(xué)習(xí)為基礎(chǔ)的用戶聚類分析得到的潛在特征。

一旦收集到了相關(guān)數(shù)據(jù),模型就會從中導(dǎo)出四種嚴(yán)謹(jǐn)設(shè)計(jì)的特征,輸入推薦引擎中。

關(guān)聯(lián)特征:代表內(nèi)容屬性和用戶標(biāo)簽之間的關(guān)聯(lián),包括關(guān)鍵詞配對、分類標(biāo)簽、來源匹配、主題標(biāo)簽以及潛在特征(比如用戶與內(nèi)容發(fā)布者的距離)。

流行特征:以用戶交互為基礎(chǔ),代表國際潮流、熱門話題、搜索熱詞、流行主題等等。

用戶場景特征:由場景數(shù)據(jù)而來,包括地理位置、時(shí)間段、事件標(biāo)簽等。

協(xié)同特征:以協(xié)同過濾技術(shù)為基礎(chǔ),平衡了狹義推薦(根據(jù)喜好推薦)和協(xié)同推薦(綜合用戶喜好推薦)。具體而言,該算法不只考慮某個(gè)用戶的瀏覽歷史,還分析類似用戶群體共同的行為(點(diǎn)擊、興趣、關(guān)鍵詞、主題等)。

模型會學(xué)習(xí)以上的特征,以此預(yù)測某個(gè)內(nèi)容是否適合某用戶在某種場景觀看。

無法度量的對象

在推薦模型中,點(diǎn)擊率、瀏覽時(shí)間、點(diǎn)贊數(shù)、評論和轉(zhuǎn)發(fā)都是可量化對象。程序員可以讓模型或算法適應(yīng)這些對象,然后做出最終預(yù)測。

然而,其他無法度量的對象是無法用量化指標(biāo)來衡量的。比如,為了維持健康的社區(qū)環(huán)境和生態(tài)系統(tǒng),TikTok以控制暴力、詐騙、色情、浮夸內(nèi)容為目標(biāo),將權(quán)重賦予符合事實(shí)、高質(zhì)量的內(nèi)容,比如新聞。

為了實(shí)現(xiàn)這一目的,需要在量化模型對象之外,建立更大的控制框架(內(nèi)容審核系統(tǒng))。

算法

推薦對象可以轉(zhuǎn)化為經(jīng)典的機(jī)器學(xué)習(xí)問題,然后協(xié)同過濾模型、邏輯回歸模型、因子分解模型、幾何數(shù)據(jù)庫和深度學(xué)習(xí)等算法就能解決這一問題。

行業(yè)級的推薦系統(tǒng)需要靈活可擴(kuò)展的機(jī)器學(xué)習(xí)平臺,這樣才能建立實(shí)驗(yàn)流程,從而快速訓(xùn)練各種模型,然后把它們組合起來,實(shí)時(shí)提供服務(wù)(比如把LR模型和DNN模型組合,CVM模型與CNN模型組合)。

除了主要的推薦算法,TikTok還需要訓(xùn)練內(nèi)容分類算法和用戶畫像算法。以下是內(nèi)容分析的層級分類結(jié)構(gòu)。

ia_11700000044.jpg

層級分類樹

從主干往下看,主類別的下方是子類別。與其他分類模型相比,使用層級分類機(jī)制能更好地解決數(shù)據(jù)傾斜的問題。

訓(xùn)練機(jī)制

TikTok使用實(shí)時(shí)在線訓(xùn)練模式,這一方法占用的計(jì)算資源更少,能夠更快地給出反饋。這對于流媒體和信息流產(chǎn)品來說是非常重要的。

用戶的行為會馬上被捕捉,然后反饋給模型,反映在下一個(gè)視頻中(用戶點(diǎn)擊新視頻時(shí),下一個(gè)視頻會快速根據(jù)最近的行為做出調(diào)整)。TikTok更有可能使用Storm集群來處理實(shí)時(shí)樣本數(shù)據(jù),包括點(diǎn)擊、表演、收藏、點(diǎn)贊、評論和分享。

他們也會建立高性能的系統(tǒng),比如模型參數(shù)和特征服務(wù)器(特征庫和模型庫)。特征庫可以保存并提供上千萬的原始特征和編輯過的vector,模型庫則會維護(hù)并提供模型以及調(diào)整過的參數(shù)。

ia_11700000045.jpg

在線訓(xùn)練機(jī)制

完整訓(xùn)練過程是:

線上服務(wù)器捕捉實(shí)時(shí)數(shù)據(jù),然后儲存到Kafka

Storm集群分析Kafka數(shù)據(jù)并生成特征

特征庫收集新特征和推薦便簽,建立新的訓(xùn)練集

在線訓(xùn)練流程重新訓(xùn)練模型參數(shù),并將同樣的參數(shù)輸入模型庫

更新客戶端的推薦列表,捕捉新的反饋(即用戶行為)并再次循環(huán)

TikTok的推薦工作流

TikTok從未向公眾或技術(shù)界公開核心算法。但是,基于該公司公布的零碎信息以及極客們通過逆向工程技術(shù)找到的種種蹤跡,我們可以得出以下結(jié)論。

(聲明——這僅僅是作者的理解和推斷,可能跟TikTok的做法有出入)

ia_11700000046.jpg

推薦工作流

步驟0:用戶原創(chuàng)內(nèi)容(UGC)的雙重審查系統(tǒng)

ia_11700000047.jpg

在TikTok上,每天用戶上傳的視頻有上百萬。惡意內(nèi)容更容易在單機(jī)審查系統(tǒng)中找到漏洞,在這種條件下只靠人工審查是不現(xiàn)實(shí)的,因此,雙重審查系統(tǒng)就成為TikTok篩查視頻內(nèi)容的主要算法。

ia_11700000048.jpg

機(jī)器審查:總的來說,(以計(jì)算機(jī)視覺為基礎(chǔ)的)雙重審查模型能夠識別視頻圖片和關(guān)鍵詞。它主要有兩個(gè)基本功能:

檢查視頻片段是否違反法律法規(guī),是否存在抄襲。如果疑似違反規(guī)定,模型就會攔截視頻內(nèi)容,打上紅標(biāo)或者黃標(biāo),然后轉(zhuǎn)交人工審查。

通過從視頻中截取圖像或者關(guān)鍵幀,TikTok的雙重審查算法會將截圖與海量歸檔內(nèi)容庫比對。重復(fù)內(nèi)容會被選出,其流量受限,在推薦引擎上的權(quán)重降低。

人工審查:主要關(guān)注3個(gè)方面,視頻標(biāo)題,封面縮略圖和視頻中的關(guān)鍵幀。對于雙重審查模型標(biāo)記為可疑的內(nèi)容,技術(shù)人員會進(jìn)行人工審查。如果發(fā)現(xiàn)某視頻違規(guī),該視頻會被刪除,賬戶活動暫停。

步驟1:冷啟動

TikTok推薦機(jī)制的核心是信息流漏斗。視頻通過雙重審查之后,會被放入冷啟動流量池中。比如,用戶的新視頻通過了審核流程之后,TikTok一開始會分配200-300個(gè)活躍用戶的流量,視頻能得到上千次的瀏覽。在這一機(jī)制中,新人可以與(粉絲上萬的)網(wǎng)紅競爭,因?yàn)樗麄儞碛型瑯拥钠瘘c(diǎn)。

步驟2:以指標(biāo)為基礎(chǔ)賦予權(quán)重

通過最初的流量池,視頻能得到幾千播放量,這些數(shù)據(jù)會被收集和分析。在分析中考慮的指標(biāo)包括點(diǎn)贊數(shù)、播放量、整個(gè)視頻看完的人數(shù)、評論數(shù)、關(guān)注數(shù)、轉(zhuǎn)發(fā)數(shù)、分享數(shù)等等。

然后,推薦引擎就基于這些最初的指標(biāo),給視頻賦予權(quán)重,給賬戶打分(無論是否是高質(zhì)量創(chuàng)作者)。如果引擎決定提高內(nèi)容的權(quán)重,權(quán)重最高的10%還會有額外10000-100000流量的曝光。

步驟3:用戶畫像放大器

第2步中從流量池得到的反饋會被進(jìn)一步分析,用于用戶畫像放大器的決策。在這一步中,表現(xiàn)出色的內(nèi)容會得到強(qiáng)化,增加對特定用戶群體的投放(比如,體育迷,時(shí)尚愛好者)。

這與“猜你喜歡”功能類似。推薦引擎會建立用戶畫像庫,這樣它就能找到內(nèi)容和用戶群體之間的最佳匹配了。

ia_11700000049.jpg

步驟4:精品潮流池

只有不到1%的內(nèi)容最終會進(jìn)入潮流池。這個(gè)池子中的視頻得到的曝光量比其他視頻高出一個(gè)量級。因?yàn)榱餍袃?nèi)容會無差別地推薦給所有用戶。

其他步驟:延遲引爆

有一些TikTok博主會注意到,他們的內(nèi)容突然得到了巨大的引流,但此前數(shù)周發(fā)布的內(nèi)容都表現(xiàn)平平。

這主要有兩個(gè)原因:

首先,TikTok有一個(gè)算法(“挖寶人”),該算法會回顧歷史內(nèi)容,尋找適合曝光的高質(zhì)量內(nèi)容。如果某用戶的視頻被這個(gè)算法選中,意味著該用戶的賬戶上有足夠多的垂直視頻,可以得到一個(gè)新標(biāo)簽。該標(biāo)簽使視頻內(nèi)容更多出現(xiàn)在“挖寶人”算法中。

第二個(gè)原因是“潮流效應(yīng)”。這意味著,如果某個(gè)視頻有幾百萬的觀看量,TikTok會引流到該用戶的主頁,因此以前發(fā)布的內(nèi)容播放量就會上升。對于垂直創(chuàng)作者(比如搞笑貓咪視頻創(chuàng)作者)來說,這是常有的事。一個(gè)流行視頻會引爆所有其他高質(zhì)量的視頻(人們想看更多可愛又奇怪的貓咪視頻)。

ia_11700000050.jpg

局限性:流量高峰

如果一個(gè)視頻能夠通過信息流漏斗(雙重審查,權(quán)重更新和放大器),創(chuàng)作者的賬戶就能夠得到額外的曝光、互動和粉絲。但研究表明,這樣的高曝光時(shí)間窗很短。通常,時(shí)間窗大約為一周。窗口期過后,該視頻及賬戶的熱度會下降,甚至隨后發(fā)布的視頻也很難火起來。

這是因?yàn)門ikTok追求多樣化,它會消除算法中無意識的偏見。通過這樣的設(shè)計(jì),推薦引擎不會傾向某一特定類別的內(nèi)容,確保新內(nèi)容有公平的機(jī)會進(jìn)入潮流池。

TikTok的魔力就在于此,明白自己為什么一刷短視頻就停不下來了嗎?

編譯組:蔡思齊、李世琛

相關(guān)鏈接:

https://towardsdatascience.com/why-tiktok-made-its-user-so-obsessive-the-ai-algorithm-that-got-you-hooked-7895bb1ab423

---------End---------

立即登錄,閱讀全文
原文鏈接:點(diǎn)擊前往 >
版權(quán)說明:本文內(nèi)容來自于讀芯術(shù),本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個(gè)人觀點(diǎn),不代表快出海對觀點(diǎn)贊同或支持。如有侵權(quán),請聯(lián)系管理員(zzx@kchuhai.com)刪除!
優(yōu)質(zhì)服務(wù)商推薦
更多
個(gè)人VIP