一篇文章是如何被推薦到你眼前的?

7 評論 9458 瀏覽 71 收藏 15 分鐘

筆者以獨特的角度入手,以一篇文章自白的角度講述了個性化推薦的功能邏輯。

“hi,我是魏無羨,我出生后被送到一個內(nèi)容庫,在這里遇到了很多師兄弟,在一個個黑盒子里,我們身上被打上了N個不同的標(biāo)簽來表明我們的出生地、武功高低、門派風(fēng)格等等,經(jīng)過各種試煉檢驗,有些師兄弟被淘汰了,而我順利通過了審核進(jìn)入下發(fā)環(huán)節(jié)。我依靠著一身武藝和好的身世背景,順利進(jìn)入尖子班,并在每一階梯流量中脫穎而出。”

現(xiàn)代人每天都在接觸個性化推薦,例如常刷的今日頭條、騰訊新聞、抖音等APP。

個性化推薦是特定場景下人和信息更有效率的連接,粗顆粒度理解就是斷物識人:左邊是內(nèi)容(斷物),右邊是用戶(識人),中間通過推薦引擎鏈接兩者,追求的是一種高效連接。

在開篇的自白里,高質(zhì)量下發(fā)的核心:識別藍(lán)忘機(jī)愛的是魏無羨,并且把魏無羨推給他。

魏無羨:我經(jīng)歷的各種“黑盒子”——內(nèi)容庫

各式各樣的黑盒子,都是為了建立人機(jī)結(jié)合的用戶喜愛的高質(zhì)量內(nèi)容生成系統(tǒng),這個實時、高效的系統(tǒng)需要具備哪些特征?

  1. 能夠持續(xù)發(fā)掘“高質(zhì)量”內(nèi)容;
  2. 能夠持續(xù)發(fā)掘用戶興趣;
  3. 能夠給用戶發(fā)送感興趣的“高質(zhì)量”內(nèi)容。

個性化推薦從一個好的內(nèi)容庫開始(第一個黑盒子),目的是為個性化推薦提供精準(zhǔn)的內(nèi)容數(shù)據(jù)基礎(chǔ),為了創(chuàng)造一個好的內(nèi)容庫,要做哪些工作?

總地來說,是把不能分發(fā)或影響體驗的內(nèi)容剔除:

  1. 硬質(zhì)量過濾:如排版錯誤、言之無物等
  2. 低俗色情過濾
  3. 敏感惡心過濾
  4. 高度一致過濾
  5. 政審安全過濾
  6. 推薦優(yōu)化:標(biāo)題、圖片、正文等優(yōu)化
  7. 其他

除了部分運營內(nèi)容外,推出的內(nèi)容基本來自內(nèi)容庫,內(nèi)容的質(zhì)量奠定了個性化推薦的基調(diào)。內(nèi)容庫里的內(nèi)容根據(jù)一定規(guī)則形成內(nèi)容候選,機(jī)器就開始挑內(nèi)容進(jìn)行后續(xù)的個性化推薦。

魏無羨奔向的藍(lán)忘機(jī)長啥樣? ——用戶畫像

如果你介紹一位朋友,在不同的場合,你也許會有不同的介紹方法。

  • 在公司,你會介紹他是一位牛逼的開發(fā)大大;
  • 在球場,你會介紹他是北大的流川楓;
  • 在相親局,你會介紹他是你“兩眼淚汪汪”的同鄉(xiāng)。

正是因為事物具有多面性和復(fù)雜性的特點,不是一兩個詞就能概括全的。標(biāo)簽實質(zhì)上是我們對多維事物的降維理解,抽象出事物更具有表意性、更為顯著的特點,所以需要有針對性的投射,以換取信息匹配效率最大化。

用戶畫像根據(jù)用戶自然屬性、社會屬性、閱讀習(xí)慣和線上行為等信息抽象出的一個標(biāo)簽化的用戶模型,常用于用戶數(shù)據(jù)化、個性化推薦、各大業(yè)務(wù)支撐等等。簡單概括為“他是誰”,“他喜歡什么”,為個性化推薦提供豐富而精準(zhǔn)的用戶畫像。

資訊推薦的用戶畫像一般會分為長期畫像和短期畫像,前者為離線處理,后者為在線處理。

  • 長期畫像:是一段時間內(nèi)的行為+用戶自主選擇或填寫的畫像+外部渠道補(bǔ)充的畫像等,相對穩(wěn)定。
  • 短期畫像:是近幾天的行為(例如近7天內(nèi)點擊的100條item),受時間衰減影響較大。
  • 綜合畫像:是以上兩者融合。

用戶畫像的建立更像一門統(tǒng)計學(xué),在處理數(shù)據(jù)的時候有些關(guān)注點:

  • 噪音處理:如熱門事件會有惡意噪聲
  • 時間衰減:自建短期模型,新動作提高權(quán)重
  • 反向懲罰:如曝光未點擊進(jìn)行懲罰
  • 歸一化:使計算結(jié)果具有可比性
  • 其他

除了用戶在APP的閱讀行為,完善用戶畫像還有哪些路徑?

  • 外部渠道數(shù)據(jù)(渠道、喚醒物料、矩陣畫像、APPlist等);
  • 借助產(chǎn)品設(shè)計(如新手引導(dǎo)的興趣預(yù)選);
  • 借助運營活動(如支付寶活動收集好友關(guān)系)。

畫像優(yōu)化如何評估?

以下指標(biāo)可供參考:

  • 畫像覆蓋率、人均畫像個數(shù);
  • 畫像準(zhǔn)確率:離線人工評估->在線abtest(點擊率、時長等指標(biāo))。

關(guān)于用戶畫像,還有一點需要了解:不是有了用戶畫像,便能驅(qū)動和提高業(yè)務(wù),而是為了驅(qū)動和提高業(yè)務(wù),才需要用戶畫像。

藍(lán)忘機(jī)還記得魏三歲的好嗎?——NLP

藍(lán)忘機(jī)已有畫像,魏無羨的標(biāo)簽怎么打?也就是機(jī)器怎么做?

資訊推薦常見的標(biāo)簽有:分類(CATEGORY)、興趣點(POI)、關(guān)鍵詞(TAG)、主題(TOPIC),顆粒度由小到大:KEYWORD<TAG<POI<TOPIC<CATEGORY。

KEYWORD

  1. 思路:與文章關(guān)聯(lián)度越高,出現(xiàn)頻次越高,與別的詞關(guān)聯(lián)度越高,其重要度就越高。
  2. 算法:tfidf,textrank,embedding。

TAG

  1. 思路:人工標(biāo)注(行業(yè)知識庫)、機(jī)器候選
  2. 算法:分詞+關(guān)鍵詞提取+詞典匹配(保留命名實體)

POI

  1. 思路:人工整理基于關(guān)鍵詞的實體興趣點(POW,如:彩票)+概念興趣點(POC,如:財經(jīng))
  2. 算法:分詞+關(guān)鍵詞抽取+詞典匹配

TOPIC

  1. 思路:隱式主題,粒度比分類細(xì)
  2. 算法:機(jī)器無監(jiān)督學(xué)習(xí),聚簇,難點是數(shù)據(jù)預(yù)處理 + 調(diào)參

CATEGORY

  1. 思路:(有監(jiān)督)機(jī)器學(xué)習(xí)模型或深度學(xué)習(xí)模型
  2. 其他:資訊類APP的分類,少則幾十,多則上百,層級多為2-5級,應(yīng)用分類時必須考慮分類權(quán)威性和信息完備性問題,避免因為子節(jié)點覆蓋不全或分類錯誤導(dǎo)致的認(rèn)知問題。

過往標(biāo)簽推薦較多,現(xiàn)在更多嘗試向量化(embedding)推薦,即把特征表征為多維向量,可通過距離衡量語義相關(guān)性,YouTube的視頻推薦率先實踐。

給想了解深度學(xué)習(xí)(Deep Learning)的產(chǎn)品汪推薦《Deep Learning with Python》[美]弗朗素瓦·肖萊 著,閱讀第一章即可(畢竟是一本開發(fā)教程書),詳見下一篇推送。

通過所有特征標(biāo)注,魏無羨隨千軍萬馬過獨木橋 ——召回

打上標(biāo)簽的內(nèi)容一起涌來,機(jī)器怎么挑?在召回環(huán)節(jié),通過索引,幾十個召回模塊一共召回幾千條內(nèi)容,各召回模塊的召回條數(shù)有限制,例如本地召回限制最多召回30條內(nèi)容,召回的內(nèi)容會根據(jù)一定條件(例如CTR、篇均時長、互動指標(biāo)等)排序后截斷,所有召回模塊召回的內(nèi)容匯總到一塊,成為一個初步的候選集。

這些召回模塊都有他自己存在的理由,例如根據(jù)地理位置的召回、根據(jù)分類興趣的召回、根據(jù)關(guān)鍵詞的召回、根據(jù)熱議度的召回等等,都是產(chǎn)品經(jīng)理或開發(fā)的想法的一種嘗試,大致可分為四類:

1. 興趣

  • 基于內(nèi)容及用戶模型進(jìn)行推薦;
  • 基于訂閱收藏等互動行為進(jìn)行推薦。

2. 協(xié)同

  • 基于內(nèi)容:內(nèi)容的協(xié)同
  • 基于用戶:用戶的協(xié)同
  • 基于用戶:內(nèi)容的協(xié)同

3. 熱門

  • 流量熱門推薦:用戶行為表現(xiàn)熱門的內(nèi)容;
  • 事件熱門推薦:最近發(fā)生的熱搜事件。

4. 本地

  • 本地內(nèi)容推薦;
  • 地域內(nèi)容推薦。

產(chǎn)品汪基于業(yè)務(wù)需求,在召回模塊的探索有:增減召回模塊、召回模塊邏輯/效果優(yōu)化、調(diào)整召回條數(shù)配額。

此類abtest除了關(guān)注整體指標(biāo)外,還需要關(guān)注對召回模塊的影響:

召回過后會有一個小的過濾環(huán)節(jié),主要是一些拉黑過濾,重復(fù)過濾等等,把一些不能推或影響體驗的內(nèi)容過濾掉。此環(huán)節(jié)的過濾和索引前內(nèi)容候選的過濾不同,前者是具有普適性的過濾(例如低點擊過濾、過期過濾等),后者和用戶的行為、屬性有關(guān)。

尖子生魏無羨重新加持,開始 CTR PK 環(huán)節(jié)——排序

排序環(huán)節(jié)關(guān)注三個詞:模型、特征和權(quán)重。

  1. 模型:如LR、XGBoost等,單模型或多模型融合都有可能。
  2. 特征:一般有幾百個,如分類、興趣點、閱讀時長、閱讀速度等等,應(yīng)有盡有,只怕你想不到。
  3. 權(quán)重:特征之間相互PK,權(quán)重高的特征對排序結(jié)果影響較大,權(quán)重可以是機(jī)器學(xué)習(xí)的自然結(jié)果,也可能是人工干預(yù)的結(jié)果。

所以CTR工程師的工作就是選擇模型、采樣數(shù)據(jù)優(yōu)化、增刪特征和調(diào)參,字少事大的又一典型。

奔向藍(lán)忘機(jī)之前,魏無羨還要過一道人工坎——重排

重排環(huán)節(jié)主要處理一些業(yè)務(wù)規(guī)則。例如視頻推薦占比不超過60%、第2個位置固定出運營內(nèi)容、相同興趣點新聞黏連不能超過3條等等,都需要在重排環(huán)節(jié)處理,這塊代碼是開發(fā)最不忍直視。

規(guī)則是最快的上線生效途徑,可以用于糾偏、提權(quán)等操作。例如,希望增加視頻推薦,一開始可在重排環(huán)節(jié)強(qiáng)出視頻(召回環(huán)節(jié)簡單做),保證視頻的曝光增多,abtest驗證加入視頻推薦可行后,再從內(nèi)容池、召回等環(huán)節(jié)精細(xì)化開發(fā),走一個較長的排期。

總地來說,短期的人工干預(yù)應(yīng)該逐步被長期的機(jī)制所替換。過多的“補(bǔ)丁”會嚴(yán)重增加系統(tǒng)的復(fù)雜度,降低可理解性。所以更建議優(yōu)化召回模塊優(yōu)先于排序模塊,因為修改召回模塊擴(kuò)充候選集能擁有更多可能性;而主觀修改排序模塊則極有可能損失公平,降低效率。

Happy Ending

最終下發(fā)8-12條,魏無羨奔向屏幕前的藍(lán)忘機(jī),有情人點擊閱讀,終成眷屬。

有的人覺得個性化推薦是“APP更懂我”,但其實個性化推薦的過程不僅具有個體進(jìn)化意義,還具有群體評估意義,就拿正文頁末的“喜歡”、“不喜歡”按鈕來說:

  1. 個體進(jìn)化意義:當(dāng)用戶點擊“喜歡”按鈕時,是主動表達(dá)他喜歡這類內(nèi)容,次數(shù)可以表示程度,用戶畫像得到完善,可加權(quán)推薦此類內(nèi)容。
  2. 群體評估意義:當(dāng)內(nèi)容的“不喜歡”數(shù)累積到一定閾值,結(jié)合賬號等級,內(nèi)容將進(jìn)入人工復(fù)審進(jìn)行質(zhì)量判斷;若累積到一個高閾值,將直接下撤內(nèi)容或回爐再造(大概率是降低體驗感的差內(nèi)容),起到維護(hù)內(nèi)容生態(tài)的作用。

以上是智能推薦系統(tǒng)的整體概念,其中的去重、相似推薦、本地推薦、新文章冷啟動、相關(guān)視頻推薦等等,每一模塊都可以是獨立業(yè)務(wù),精細(xì)化做起來都是滿滿的工作量,學(xué)無止境。

(推薦系統(tǒng)示例)

結(jié)語

引用閆澤華在《內(nèi)容算法》里寫的:

個性化的好:在既定的指標(biāo)體系下,借助技術(shù)手段不斷追求更好的數(shù)據(jù)表現(xiàn),是生意。

好的個性化:在不改變用戶目的的前提下,借助技術(shù)手段達(dá)成用戶效率和體驗提升,是理想。

 

本文由 @張小喵Miu 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)作者許可,禁止轉(zhuǎn)載。

題圖來自Unsplash,基于CC0協(xié)議。

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 一年產(chǎn)品狗表示好多看不懂、(.﹒?︿﹒?.)

    回復(fù)
    1. 加油 ??

      來自浙江 回復(fù)
  2. 很強(qiáng)。

    回復(fù)
  3. 可以加你好友嗎?相互交流學(xué)習(xí)

    來自四川 回復(fù)
    1. 可以通過公眾號“XO喵妖”交流學(xué)習(xí) ??

      來自浙江 回復(fù)
  4. 工作相關(guān)的文章 也不讓我從忘羨坑底爬起來的么 ??

    來自四川 回復(fù)
    1. 忘羨魔力太大 ??

      來自浙江 回復(fù)