1. 程式人生 > >以頭條為例:談談推薦策略

以頭條為例:談談推薦策略

首先,為了方便讀者更好的理解本文,筆者將以今日頭條(建議在手機上下好“今日頭條”APP,且最好註冊一個頭條號並登陸到後臺)這款產品為例輸出一些內容推薦(分發)相關的“乾貨”。

回到標題,何為推薦?

簡言之:“物以類聚,人以群分”。

那何為物,何為人呢?

答:物為內容(文章/圖文/視訊等),人為使用者(刷今日頭條的使用者)。

那麼機器怎麼知道內容和人屬於什麼類別(斷物識人)呢?

再答:“內容畫像”和“使用者畫像”的構建,而推薦的過程其實就是完成使用者和內容的匹配。

那麼什麼是“內容畫像”和“使用者畫像”呢?機器是如何對兩者進行精準構建和匹配呢?

 

內容畫像

內容畫像,簡單來說就是內容的特點。如果具象化內容,筆者更傾向於假設是一個內容漏斗(類似於倒三角形使用者漏斗,不過所示關係不一定為層級關係,見圖1)。第一層通常表示內容的一個垂直領域(大類別)而後面幾層可以大致表示為標籤/關鍵詞/主題詞等小類別。

以頭條為例:談談推薦策略

(圖2:百度圖片,僅圖示忽略文字)

考慮到內容漏斗有很多層,為了便於理解,筆者簡單說一下使用者可以直觀看到的幾層。最顯眼的可能就是第一層了,在頭條(指今日頭條)內部通常指的就是垂類(垂直領域),如:科技、娛樂、體育等。

舉個栗子:筆者昨天釋出的一篇軟廣,被機器識別成了“科技”領域的文章。那這個內容第一層就是科技,通常為機器標註(涉及NLP技術:文字分類、命名實體識別等)、人工手打(傳說中“打tag”的一種主要形式),或PUGC創作者(統稱:頭條號)在釋出內容時進行領域選擇,不過,現在釋出內容已不需要進行選擇。

顯然,光知道內容的大類並不能給使用者精準的推薦感興趣的內容。這裡再講一層,其實也是一種打tag的形式(涉及NLP技術:文字主題/關鍵詞抽取),只是平臺根據使用者的喜好對內容做更進一步的更細化了。還是上面舉例的這篇文章,對應的一些細分tag就有vivo、手機、科技等。

當然,這個內容漏斗遠不及這兩層,細分其實有很多種,比如接著上文舉例的文章來說,漏斗可能是這樣的:科技->手機->Android->vivo->vivo旗艦機->vivo NEX->vivo NEX雙屏版。而細分的驚喜,內容畫像也就越清晰,推薦才越精準,當然,技術難度也是同樣提高的。

因此,像頭條比較強悍的競品之一,一點資訊號稱365萬個個性化訂閱頻道,可想後面支撐的一個推薦演算法團隊是有多強。

當然,除了內容的特點之外,內容畫像還包含內容的質量、熱度、原創度、所釋出使用者的權重等。而這個權重指的就是頭條對頭條號所釋出文章的推薦權重(更多的是內容冷啟動推薦數量,以及後續推薦的加成幅度)。

說到推薦權重,就不得不提一下之前平臺為了讓頭條號作者們過新手/評原創有一個量化的指標,即頭條號指數(如圖6所示),而這個頭條號指數其實可以理解為平臺對於頭條號的一個打分,決定了頭條號所釋出內容的推薦權重。而頭條號指數的評定標準有5大方面(如圖7):原創度、垂直度、關注度、健康度、傳播度。不過,現在頭條號Web端後臺已經看不到了,不過手機端還可以看到。

以頭條為例:談談推薦策略

(圖7: 2017年6月26日筆者頭條號後臺)

 

使用者畫像

什麼是使用者畫像呢?簡而言之就是你(顯式&隱式)的基本特徵(比如:性別、學歷、年齡、常駐位置等)和興趣愛好(籃球迷、數碼控、動漫迷等)所構建出來的一個“屬性圖”(技術通常稱為“知識圖譜”)。

舉個栗子:我們通常被機器標註成一個數據組合(如圖9):科技 | 20%、體育 |10%、娛樂 | 30、養生 | 5%……..

以頭條為例:談談推薦策略

(圖9:使用者畫像例項,來源《內容演算法》)

那麼問題來了,機器如何知道一個使用者的畫像呢?

首先,使用者分為新使用者和老使用者兩類。針對前者就涉及到了使用者畫像構建的一個常見且難點(策略產品面試比問)——(使用者)冷啟動,通常面試官會問你,如何做使用者冷啟動?

那麼筆者告訴大家一個常見的答案:

  • 首先,新使用者開啟APP會讓選擇喜歡的領域;
  • 其二,絕對的冷啟動並不存在,使用者在其他APP的行為其實也會被監督到,比如:你在淘寶看球鞋,開啟頭條重新整理聞就能刷到你剛看的那款球鞋的廣告,也就是說在你開啟APP那一刻,你的一個比較明顯的屬性·體育|籃球已經被獲取了。
  • 其三,機器通常會給你推薦當前熱點內容「比如科技領域 | iPhone釋出新品,娛樂領域 | 汪峰上頭條等」,通過你在這些內容下的使用者行為(點選,點贊,轉發,跳出,停留時長等),機器會對螢幕前面的你有一個“初印象”。

通過你在不同領域內容的使用者行為,判斷你對內容的興趣度,從而構建你的一個初步使用者畫像(這是當前常用的一種使用者冷啟動方式)。比如:開啟頭條,給你冷啟動推送了12條內容(3條NBA+3條娛樂+3條科技+3條美食),然後你點選了3條體育,2條數碼,1條娛樂…..。

那麼,最開始的使用者畫像(V1.0)可能為體育 | 30%,數碼領域 | 20%,娛樂領域 | 10%,其他領域 | 20%,目測是一名男性,愛好運動,科技宅等。然後,還發現裡面2條體育內容都是和科比有關的,那麼你大概率是個男性科密數碼控。

後來,你變成了老使用者,隨著你使用頭條的次數越多,你產生的使用者行為資料越多,背後的模型就會被訓練的越“聰明”。隨著你“刷”的越多,你的使用者畫像也會隨之發生不斷的變化,變得越來越細化,越精準。

 

如何推薦

最後,關於機器在使用者畫像和內容畫像精準構建出來之後,如何做推薦呢?

事實上,這其實就是一個匹配(match)的操作。當然,簡單說匹配筆者認為還是不夠恰當,因為除了這2個使用者畫像和內容畫像(相關性特徵)之外,機器在訓練模型時還會考慮熱度特徵(全域性熱度、分類熱度等)、協同特徵(相似使用者、興趣分類使用者等)、環境特徵(時間、地理位置等),詳見圖10。

以頭條為例:談談推薦策略

(圖10:來源文章“今日頭條演算法原理(全)”)

那麼,機器學習到了這些如圖6的這些特徵之後,推薦模型就會被不斷的更新(準確的說是模型的引數在發生更新,如:神經網路在做後向傳播時會在每一次迭代時發生相關權重引數的變化),最後機器呈現給不同使用者的內容也會因為這些特徵的不同而不一樣,甚至同類型的使用者,也就是所謂的“千人千面”(最早用在電商平臺)。而作為內容“消費”平臺,這裡主要指的是內容分發。

那麼如何讓內容分發變得更加精準呢?

這裡不得不提這兩個名詞,即:召回和排序。這裡難講,簡言之,召回比較依賴於內容和使用者的標籤匹配度,而排序則涉及到一個使用者興趣傾向性,或者是一個更加細粒度的匹配問題上,因為要保證合適的內容放在合適的位置。

比如:筆者是一個數碼控,那如果推送12篇內容給我,我更傾向於第一篇是關於數碼的而不是娛樂的。而排序也往往能夠反映出推薦策略的優秀程度。因為只有讓使用者最快的觸達你感興趣的內容才會產生更多的留存,才會啟用,才能進行轉化(才能更便於平臺推送廣告等商業化操作)。

當然,AI時代,決定模型表現,或者說我們這裡的推薦系統(也可以理解為是一種機器學習模型)的表現,除了演算法本身,還有算力(指的是計算機運算能力,這方面頭條和競品無法拉開差距,因為這是錢能夠解決的問題),還有另外一個關鍵項就是資料(高質量的資料)。

關於資料的重要性,讓我想到了帶我做科研的一位博士師兄(目前在Amazon做推薦)說過的一句話:“Garbage in, Garbage out”,而這句話更適用於AI+產品落地上。簡言之,資料對於推薦結果(或者說內容分發)的好壞起著十分根本性的作用。

說到這,請大家跟著筆者思考一個問題,頭條DAU(日活)據說2.4億+,而每個使用者日均使用時長70min+,假設使用者閱讀一篇內容(文章/視訊)的平均時間是2min,那麼使用者閱讀內容資料得有2.4億*70/2 = 84億+(條)!。

所以,回到最開始的問題,為啥說頭條推薦如此牛逼呢?

那是因為推薦演算法的3個核心壁壘,頭條都屬於業內前列(甚至可以稱得上是國內NO.1)。

 

One More Thing

以上,皆為筆者粗鄙之見,所講內容只是今日頭條推薦演算法裡的極少部分,背後的Model和Data十分龐大與強大,紕漏難免,還望諒解並給予批評指正。

另外,筆者認為機器(計算機)再厲害,也是人類所“賦予”的,機器越來越聰明的背後反映的應該是人(如:推薦演算法團隊| Modeling & Data processing)在不斷的進化變強!