抖音最近在他們的官網上公開了抖音平臺的推薦算法邏輯,以及是如何對用戶行為進行預測的。
很值得一看,不管是對于創業者還是用戶。
畢竟,推薦算法,某種程度上來說其實一直被「妖魔化」了。
看起來很神秘的算法,最后,你會發現,其實還在分析和預測人類的行為本身。
我們從官網整理了一些覺得不錯的內容,整理成了今天這篇文章。
授權編譯,原文參見:https://95152.douyin.com/transparency
點擊關注,每天更新深度 AI 行業洞察
01推薦算法:用數學方法高效匹配信息
互聯網誕生后,為了高效連接人和信息,共出現過四類主要技術/模式:
第一類是門戶網站,核心邏輯是對內容建立分類目錄,按目錄對不同信息進行集納,用戶按照目錄路徑查閱信息;
第二類是搜索引擎,其最大特點是基于用戶的搜索需求,通過搜索引擎主動搜尋信息;
第三類是社交網絡,其特點是用戶首先要關注好友或者訂閱頻道,系統基于此進行推送;
最后一種是推薦系統,特點是系統會更加智能主動地發掘用戶的興趣。
那么推薦系統是如何實現更加高效的信息匹配的呢?
事實上,推薦算法的本質是個極其高效的信息過濾系統。個性化推薦算法,好比給每個人量身定制了一個信息「快遞員」,能更高效、準確地把合適的信息推送到用戶面前,滿足每個用戶各不相同的需求。
今天,這類算法已廣泛應用于電商平臺(商品推薦)、視頻網站(內容推送)及社交網絡(好友/信息流推薦),通過「千人千面」推薦顯著提升推薦的精準度和用戶體驗。
而從技術視角來看,推薦算法的基礎是機器學習。事實上,機器學習是人工智能的核心技術之一,其定義有很多種,大體都可以歸結為通過已有的數據進行數學建模、挖掘規律,隨后,在此基礎上對未知的數據進行預測。
推薦算法是機器學習技術的重要應用領域之一,其核心目標是通過分析用戶的「行為」(點擊、瀏覽、喜歡、轉發、收藏等),構建個性化的推薦模型。具體而言,系統會基于用戶歷史動作、對象特征和上下文環境,采用算法模型預測用戶可能會對什么樣的內容產生什么樣的行為。
02
傳統推薦,不需要算法「懂」內容
「協同過濾」(Collaborative Filtering,簡稱 CF)推薦算法是最經典的推薦算法之一,至今仍然在廣泛使用。所謂「協同過濾」推薦,簡單來說就是協同用戶的行為,一起對海量的信息進行過濾,從中更加快速篩選出用戶可能會產生行為(比如完播、點贊)的內容。
基于內容的協同過濾的大致過程是這樣的。比如用戶 A 觀看了內容 X、Y、Z,用戶 B 觀看了內容 X、Z、W,那么 X 和 Z 之間就有較高的相似度。然后根據用戶對已觀看或已評分內容的偏好,為用戶推薦與這些內容相似的其他內容。重點是計算內容之間的相似度,根據用戶的行為數據,找出與目標內容相似的其他內容。這種方法在內容數量相對穩定、用戶數量較大的場景下表現較好。
因此協同過濾可以在完全「不理解內容」的情況下,也為用戶推薦其可能想看的內容。其原理簡單來說就是,找到和你興趣相似的用戶,把他們感興趣的內容也推薦給你。
協同過濾機制
不過,要在上億用戶中滿足上述需求,過程要比上圖復雜很多。協同過濾進化出的「矩陣分解」(Matrix Factorization)算法,是業界最常用算法之一。其過程簡單說是,基于用戶行為數據,構建共現矩陣。
矩陣分解算法構建共現矩陣的過程 ([1])
在協同過濾的過程中,用戶相似度的計算是算法中最關鍵的一步。通過上文介紹可知,共現矩陣中的行向量代表相應用戶的用戶向量。那么,計算用戶 A 和用戶 B 的相似度問題,就是計算用戶向量 A 和用戶向量 B 之間的相似度,兩個向量之間常用的相似度計算方法有多種,下面介紹其中一種。
余弦相似度,如下圖公式所示。余弦相似度(Cosine Similarity)衡量了用戶向量 A 和用戶向量 B 之間的向量夾角大小。夾角越小,證明余弦相似度越大,兩個用戶越相似。([2])
余弦相似度公式
以上內容描述了協同過濾的流程。協同過濾算法通過分析用戶行為數據而非內容特征,實現個性化推薦。需要說明的是,上述介紹只是非常精簡的協同過濾推薦算法的描述,具體的細節在不同場景中可能有差異。
03
推薦算法升級:神經網絡激發深度學習能力
隨著微軟的 Deep Crossing,谷歌的 Wide&Deep,以及 FNN、PNN 等一大批優秀的深度學習推薦模型在 2016 年被提出,推薦系統全面進入深度學習時代。([3])
時至今日,深度學習推薦模型已經成為推薦領域當之無愧的主流。行業以多層感知機器(Multi-Layer Perceptron,MLP)為核心,通過改變神經網絡的結構,構建特點各異的深度學習推薦模型。在進入深度學習時代之后,推薦模型主要在以下兩方面取得了重大進展。
(1)與傳統的機器學習模型相比,深度學習模型的表達能力更強,能夠挖掘出更多數據中潛藏的模式。
(2)深度學習的模型結構非常靈活,能夠根據業務場景和數據特點,靈活調整模型結構,使模型與應用場景完美契合。
從技術角度講,深度學習推薦模型大量借鑒并融合了深度學習在圖像、語音及自然語言處理方向的成果,在模型結構上進行了快速的演化。
3.1 深度學習&神經網絡原理介紹
深度學習的基礎依然是機器學習。機器學習是人工智能的一個分支,核心目標是使用數據和算法使人工智能能夠模仿人類的學習方式,并逐漸提高準確性。
在推薦算法應用領域,機器學習的核心目標是學習模仿人類點擊某種內容的行為。其常見的過程大致可以簡化如下:
準備訓練集數據;
將訓練集中的數據輸入模型進行訓練;
將模型輸出數據與訓練集的目標數據進行對比;
通過不斷調整參數使得二者不斷接近(數學稱為擬合)。
這個過程,從表面看和老師教授學生新知識類似:在訓練集(相當于老師)的指導下,通過大量的數據輸入(相當于練習題),對比目標不斷調整模型參數(改錯),使得模型輸出結果盡量準確,這個過程就是機器學習。
近幾年,機器學習的能力越來越強,這得益于深度學習的發展。深度學習是機器學習的高級形態,其核心特點是以人工神經網絡為架構。
人工神經網絡(Artificial Neural Network,即 ANN)是模仿生物大腦內神經網絡的結構和功能設計的計算模型,由大量的節點(類似生物大腦的神經元)之間相互連接構成。
人工神經網絡可以分成三個主要部分:輸入層、隱藏層、輸出層。輸入層能夠對外界的信息進行處理和分類,然后將結果傳遞給下一層;隱藏層可能包含一層或多層,能夠對輸入層或者其他隱藏層傳遞來的信息進行處理,并將信息傳遞給輸出層或下一個隱藏層;輸出層對輸入進來的信息進行最終分類判斷,并輸出結果。深度學習中的「深度」,指的就是在神經網絡中使用「多層」,通常情況下,層數越多,算法的能力越強。
神經網絡結構
在深度學習中,現實世界的所有事物都可以被轉化為向量,模型的輸入和目標首先被向量化,再進行各種復雜運算。在此用「破案抓小偷」的類比,來介紹神經網絡的基本原理:
輸入層:小區保安(輸入特征)
小區門口的保安負責登記來訪人員信息,例如戴黑帽子、穿紅衣服、背雙肩包(像素級基礎特征)。登記完成后,他把這些信息寫成小紙條,傳給下一層偵探。
中間隱藏層:多組偵探(加工分析特征)
第一組偵探:看小紙條拼拼圖,發現「黑帽子+紅衣服」常出現在便利店盜竊案;
第二組偵探:查歷史檔案,發現「雙肩包+上午 8 點」對應小區快遞被偷案;
第三組偵探:畫嫌疑人畫像,綜合「黑帽子、紅衣服、雙肩包+多次出現在案發地」,鎖定慣犯特征;
輸出層:警長拍板(輸出計算結果)
警長拿到綜合報告,對比數據庫后大喊:「這是上周連環盜竊案的 A!」(輸出計算結果)
訓練過程:
一開始偵探們總認錯人,隊長會復盤:「上次把戴黑帽子的外賣員當成小偷,是因為沒考慮時間特征!」。于是調整「時間權重」,下次偵探優先檢查「黑帽子+非工作時間」的人。如此反復訓練后,偵探隊成了抓小偷專家。
以上為簡化案例,實際模型的復雜度遠高于此。但其底層原理大體類似,都是將現實問題轉化為純粹的數學問題。從理論上來說,只要有足夠大量的數據對深度神經網絡進行訓練,它就能用來模擬任意類型的函數,解決各種類型的問題。
3.2 抖音 Wide&Deep 模型
抖音在 2016 年上線,恰逢推薦算法開始進入深度學習時代,我們所應用的推薦算法也是深度學習算法的一種。接下來我們以至今依然是抖音推薦算法主力模型之一的 Wide&Deep 模型為例進行介紹。([4])
Wide&Deep 模型的主要思路正如其名,是由單層的 Wide 部分和多層的 Deep 部分組成的混合模型。其中,Wide 部分的主要作用是讓模型具有較強的「記憶能力」(memorization),「記憶能力」可以被理解為模型直接學習并利用歷史數據中物品或者特征的「共現頻率」的能力;Deep 部分的主要作用是讓模型具有「泛化能力」(generalization),「泛化能力」可以被理解為模型傳遞特征的相關性,以及發掘稀疏甚至從未出現過的稀有特征與最終標簽相關性的能力。
其具體模型結構如下圖:Wide&Deep 模型把單輸入層的 Wide 部分與由 Embedding 層和多隱層組成的 Deep 部分連接起來,一起輸入最終的輸出層。Deep 部分進行深層的特征交叉,挖掘藏在特征背后的數據模式;而單層的 Wide 部分善于處理大量稀疏的特征,使得數據稀少的用戶或者物品也能獲得有數據支撐的推薦得分,從而提高泛化能力。
Wide&Deep 模型的這一結構特征,可以解決前文提到的協同過濾算法的短板。協同過濾算法優點突出,但是其局限性也很明顯,就是泛化能力差,推薦的結果頭部效應比較明顯。也就是容易造成信息單一問題。
Wide & Deep 模型結構
3.3 抖音雙塔召回模型
一條視頻從海量信息中被選中,推送給用戶,一般要經過進入內容池、召回、排序三個環節。用戶發布的新視頻首先要經過初步評估進入內容池,然后進入召回環節,其作用是從海量的內容池中,初步快速粗篩出一大批用戶可能感興趣的內容。
舉例來說,召回環節需要用到召回模型,抖音最常用的召回模型是「雙塔召回模型」(Two-Tower Retrieval Model)。雙塔召回模型把用戶和內容都轉化為數學空間里的一個個點,就像是給用戶和內容貼上了獨特的「數字標簽」,這個過程叫做向量化表征學習。其大概過程如下:
(1)分別將用戶特征、內容特征進行數學轉化(如展示小貓的視頻為 0,展示小狗的視頻為 1,短視頻為 0,長視頻為 1,那么一個展示小貓的長視頻即(0,1),其實際長度取決于特征有多少維度,用戶特征同理);
(2)將轉化后的數學特征輸入到用戶塔、內容塔兩個深度學習模型中,經過訓練,各自形成一組新的數字集合,這叫做用戶表征和內容表征。在這一步,原本各自代表一個現實特征的數字不再具備任何實際語義,兩個模型會把用戶特征和內容特征都轉化為沒有現實意義的數字代碼——因此,算法不用理解現實語義,只需處理純粹的數學符號;
(3)將兩組形式為純粹的數字集合的用戶表征和內容表征,放入同一個向量空間中,每一組數字集合便在向量空間中擁有了一組專屬的向量值,好比一組獨有的「數字指紋」;
(4)將訓練過的所有內容表征的向量值和當前用戶表征的向量值的距離進行對比,距離越接近代表用戶越喜歡。當你的「數字指紋」和某個視頻的「數字指紋」在坐標系里剛好比較「匹配」(距離近),算法就會推薦它。
雙塔召回模型
相比人工推薦,推薦算法實現了一個重要范式突破:它將用戶對內容的具體偏好(如點擊、評分等顯式行為)抽象為高維空間中的數學映射關系。
通過將用戶-內容交互矩陣分解為隱語義空間中的用戶偏好矩陣和內容特征矩陣,算法無需理解「內容類型」或「開心憤怒情緒」等現實語義,而是通過潛在特征向量運算,就能實現對用戶「是否會看完」「是否會點贊」「是否會收藏」某個內容的行為預測。
正是這種脫離現實語義的數學建模能力,結合億級數據,實現「知其然,而不必知其所以然」的精準推薦。
04
推薦算法只能預估用戶行為動作
基于機器學習和深度學習構建的推薦算法,提升了超大規模信息分發、推薦的效率,能交付人類難以快速高效完成的任務。但由于算法是通過數據收集、特征工程、模型訓練等復雜流程預測用戶的行為,其本質是數學模型的運算過程,只是在建立用戶行為與內容特征之間的數學統計關聯,而非理解內容本身。因此相比人類,算法依然有其局限性。
推薦算法是對用戶各種行為概率的綜合預估
當用戶打開抖音時,抖音的推薦算法會給候選視頻打分,并把得分最高的視頻推送給用戶。
用戶在觀看時可以對看到的視頻做出各種互動,這些互動體現了用戶對這個視頻的感興趣程度。比如用戶點贊比不點贊要好,看完比沒看完要好,沒有點不喜歡比點不喜歡好。在這里,「看完了」就是一次反饋動作,「點贊」也是一次反饋動作。
用戶對觀看的視頻的每一次反饋,都有正面或者負面的價值。抖音的推薦排序模型學習的也就是這種行為反饋,推薦系統的目標就是把反饋價值最高的視頻推給用戶。
抖音推薦算法的核心邏輯可以簡化為「推薦優先級公式」:綜合預測用戶行為概率 × 行為價值權重 = 視頻推薦優先級。公式展開為:
推薦優先級公式
05
抖音推薦預估動作率的具體步驟5.1 算法學習:用戶反饋行為輸入
算法模型是預測用戶各種互動和反饋行為發生的概率。發生概率是模型輸出的結果,但在此之前,需要輸入大量數據,這些模型的數據叫特征。模型需要內容和用戶兩端的數據做輸入,其中主要是學習用戶行為數據。抖音算法學習用戶行為數據,既有實時的新數據,也很重視對用戶歷史行為數據的學習。下圖為相關模型。
抖音學習用戶反饋的深度學習算法
5.2 概率模型預測:抖音推薦算法都預估用戶哪些行為
推薦算法會通過算法模型預測用戶對候選視頻的行為概率(動作率)。結合用戶行為和視頻本身的價值權重,推算出視頻推薦的價值分數,并將綜合得出的價值最高的視頻推送給用戶。
在這個過程中,推薦算法會對用戶的一系列行為預估,這些行為包括點贊、關注、收藏、分享、不喜歡、是否點擊作者頭像、評論區停留時長、長期消費等等。
抖音推薦算法預估哪些行為(舉例)
5.3 價值模型評估:定義行為的「推薦價值」
價值模型,代表了抖音對于哪些動作可能更重要的理解。簡單來說,如果僅考慮用戶交互概率,可能會造成一些問題,比如,一些精心制作的中長優質視頻,可能因為完播率較低,而在分發中處于劣勢地位。
因此,抖音的價值模型希望實現內容、用戶、作者以及平臺的多方價值共贏。通過價值模型,對用戶的互動行為進行價值計算,并通過不斷調整參數,對各類價值進行加權。
然后,按「價值最大化」原則計算出候選內容的分數。在這個原則的指導下,算法會綜合考慮多個因素來評估候選內容的價值。它不僅會關注內容本身的特點,還會考慮作者的收益以及平臺生態等因素。
通過對這些因素的深入分析和權衡,算法能夠為每個候選內容計算出反映其潛在價值的分數,從而為后續的推薦提供有力的依據。
5.4 動態調整:價值權重的即時反饋
隨著算法的進步,從行為發生到現實有效反饋的時間已經非常短,這種近似即時調整的機制,有助于算法更精準地預判用戶行為。抖音已經實現了「分鐘級」實時反饋更新。
06
人工為算法建立內容秩序
不管推薦算法如何復雜,其工作的核心都是學習用戶產生的行為反饋數據,并通過概率計算,將模型中推薦價值最高的視頻推送給用戶。
算法不必理解晚霞為何令人駐足,只需計算用戶停留在火燒云視頻的時長與分享概率;算法無需參透幽默的本質,卻能精準擬合一串「哈哈哈哈」的評論與眾人內心歡喜的相互關系。算法始終在用數學的純粹性,嘗試復刻人類選擇的不確定性。
也正是因為這個特性,若單純依靠算法預判行為而不加約束,可能會帶來不當內容泛濫等新問題。因此,對于不懂內容的算法,還需要為其構筑多層「護欄」,避免算法對內容價值的「認知盲區」引發的問題。
[1] 圖片參考《深度學習推薦系統》,作者王喆,電子工業出版社,2020 年 3 月出版。
[2] 內容援引自《深度學習推薦系統》,作者王喆,電子工業出版社,2020 年 3 月出版。
[3] 推薦系統進入深度學習時代的內容均援引自《深度學習推薦系統》,作者王喆,電子工業出版社,2020 年 3 月出版。
[4] Wide&Deep 模型的內容均援引自《深度學習推薦系統》,作者王喆,電子工業出版社,2020 年 3 月出版。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.