天天看點

【幹貨】某視訊APP推薦詳解(萬字長文)

推薦的目标

該app推薦的終極目标是提升dau。

留存和dau在絕大部分情況下正相關: 留存上漲一般dau就會上漲,留存下降 一般dau就會下降。作為一個名額,留存相比dau有很多優點,我們目前主要優化留存這個名額。

app使用時長也是個非常重要的名額。一般認為,app使用時長可以反映使用者當天對應用的滿意度。留存是一個需要一天後或者多天後才能觀察的名額,而且噪聲往往比較大。使用時長比留存回報更快,更容易測試出實驗收益,而且經驗上大部分提升時長的改動都提升了留存,是以時長被認為是留存的一個近似名額。

推薦排序模型

内容推薦做的事情是按照一個公式給候選視訊打分,把得分最高的視訊傳回給使用者。排序公式的形式是這樣的:

           
【幹貨】某視訊APP推薦詳解(萬字長文)
那麼這個公式具體的含義是什麼呢?

           

使用者可以對看到的視訊做出各種互動,這些互動展現了使用者對這個視訊的喜好程度。比如使用者點贊比不點贊要好,看完比沒看完要好,沒有點不喜歡比點不喜歡要好。換句話說,使用者對觀看的視訊的每一次互動都有正面或者負面的價值(回報)。該app的推薦排序模型假設,使用者看一個視訊獲得的價值等于這個視訊上發生的所有互動的價值的總和。推薦系統的目标,就是把價值最高的視訊推給使用者。

為了計算視訊播放的價值,我們引入了價值模型(v),用來衡量發生的互動的價值。

如果一個視訊被使用者看過之後點贊了,其他互動都沒有發生,那麼這次視訊觀看的實際價值就是

           
【幹貨】某視訊APP推薦詳解(萬字長文)

在推薦服務選擇推給使用者的視訊的時候,使用者還沒有看過這個視訊,究竟會發生哪些互動是未知的,是以視訊播放的精确價值是無法計算的。為了在不知道使用者實際的互動的情況下仍然完成打分,我們需要用預測模型(p)來預測每個互動發生的機率,用這次視訊播放創造的價值的期望值來代替上面公式裡面實際發生的價值。這時候我們得到的公式就是上面最開始展示的形式了:

【幹貨】某視訊APP推薦詳解(萬字長文)

這就是推薦服務給視訊排序的公式(這裡play的含義是播放,一個視訊隻要推出去就會播放,是以p_play總是等于1,這樣寫是為了和其他的互動形式一緻)。推薦服務實際做的事情就是用這個價值公式給所有的視訊打分, 把得分最高的(也就是創造價值最高的)幾個視訊傳回給使用者。

簡潔起見,這裡使用的是一個極度簡化的公式。線上實際使用的排序公式比上面的要複雜得多,不過背後的邏輯是一緻的。

預測模型

預測模型是預測各種互動(或者更廣義地,在排序的時候一切未知的事情)發生的機率的模型。預測模型一般是機器學習模型,它們用視訊和使用者相關的資料做輸入,輸出一件事情發生的機率。模型的輸入叫做特征,輸出叫做預估。

常見的預測模型包括:
點贊模型,評論模型等預測互動是否發生的模型。
播放時長、個人頁停留時長等預測某件具體值的模型。
騙贊、騙評論等對内容做分類的模型。

           

預測模型的輸入特征可以分成這樣幾個部分:

1、使用者相關資訊。比如使用者id,使用者地域,使用者曆史互動統計,使用者最近看過的視訊id清單等;

2、視訊相關資訊。比如視訊id,視訊時長,視訊用了什麼貼紙,視訊互動統計,視訊的内容等等;

3、作者相關資訊。比如作者id,作者粉絲數,作者曆史統計等等;

4、還有很多其他資訊,包括使用者在的實驗組等;

預測模型是個性化的,一個模型對同一個視訊,在不同的觀看者上,或者同一個觀看者的不同環境下,給出的預估往往是不同的。比如點贊模型預測的是,目前使用者在目前場景下,看到目前視訊,給這個視訊點贊的機率。一個明星的視訊,他的粉絲和非粉絲點贊的機率可能會不同,這個明星的一個粉絲,在剛打開該app的時候看到這個視訊,或者已經刷膩快要退出的時候看到這個視訊,點贊模型給出的點贊的機率可能也會不同。

價值模型

價值模型是給互動賦予價值的模型。

           

互動的價值主要分為這樣幾種:

1、使用者價值。為目前視訊被推給的使用者創造的價值。主要是目前使用者的時長、留存,以及滿意度等;

2、作者價值。為視訊的作者創造的價值,包括作者獲得的流量、互動、收入等;

3、平台價值。為平台創造的價值。包括品牌效應,内容安全,平台收入等;

4、間接價值。本次視訊的播放間接(不在本次播放的使用者,作者上面的,也不是直接對平台産生的)産生的價值,如評論後其他使用者收到通知可能提升其他使用者的留存(其他使用者的使用者價值),對内容生态産生的影響(其他作者的作者價值)等等。

使用者的每次互動,都可能帶有上面的一種或多種價值,比如點贊的價值公式是:


           

使用者給一個視訊點了贊,說明使用者喜歡這個視訊,是以點贊應該有正面的使用者價值(上面公式中的1)。使用者對同一類内容今天已經點過的贊越多 (same_tag_today),可能越容易審美疲勞,使用者價值也就越低。使用者點贊增加了這個視訊的點贊數,對作者有激勵作用(特别是在低贊(is_vv_lower_than_100)的時候),是以點贊也有作者價值。如果視訊是騙贊視訊,給它們過多的贊可能會影響整體生态,是以在騙贊視訊(is_like_bait)上的點贊可能會有(負向的)平台價值。

價值模型是我們對應該給使用者推薦什麼視訊的了解,需要反複地調整和思辨,才能達到最好的效果。大部分情況下,我們對價值模型做的優化,就是更好地把每個互動的價值分解清楚,并把分解好的價值公式寫進融合公式,進而最大化視訊推薦獲得的收益。下面是對主feed的價值模型的一個的分解:

根據這個分解,我們會去優化使用者的點贊、評論、完播,作者的投稿率、留存、收入,直播、社交、poi等功能的滲透率等目标。

上述模型的局限和解決方法

           
上面介紹的排序模型可以用來解決我們大部分的問題,但是也有不少問題需要用其他的方式來解決,比如:

           

有些價值是通過多個視訊的組合創造的。同一個關注人的連續曝光,可能會改變使用者對這個關注人的認知(比如,連續看到一個作者的視訊,可能會讓使用者對這個作者有更深的印象,進而更願意繼續看他的視訊,甚至去主動搜尋/浏覽這個作者有沒有發新視訊等。再比如,有些作者的視訊可能會有一些梗,隻有多看這個作者的視訊,才能更好地get到這個作者的點)。是以這個使用者觀看這些視訊的總價值,是大于觀看每個單個視訊的價值之和的。再比如一個使用者喜歡某類視訊,但是如果一直推給他這類視訊,他可能會很快變得厭煩而關閉app。這個使用者觀看這些同類型視訊的總價值,是小于觀看每個單個視訊的價值之和的,因為這些視訊的同質化導緻了使用者看得越多越容易疲勞。對于這種問題的解決方案有兩種:做一些假設, 把價值拆分到價值公式中去,比如對于上面提到的關注人連續曝光問題,可以通過加一個“same_author_seen”的價值來近似,同類視訊厭煩問題也可以通過加一個“same_tag_today”的負面價值來解決。這類問題也可以通過價值公式外的方式解決,比如強插、打散、刷内政策等。比如同類視訊厭煩問題可以通過打散來解決。

價值模型的前置階段和價值模型不一緻導緻的問題。下面會講到,推薦架構分為多個階段,價值模型是在最後一個階段應用的。如果價值模型的目标和前置階段的目标不一緻的話,可能需要去解決前置階段的問題。舉一個例子:在做社交方向嘗試的時候,可能需要把更多的好友視訊傳回給使用者,但是如果這些好友的視訊在召回階段就沒有被召回的話,調整價值模型也起不到作用。需要先解決召回階段的問題,才能更好地達成目的。

模型并沒有優化終極名額(WIP)

模型優化

願景

我們希望盡可能地把問題轉化為上述架構(價值模型+預測模型)内的問題來解決。

這麼做的原因主要是:

1、這個架構是對視訊推薦問題的很好抽象,用這個架構能很好地解決絕大部分問題;

2、因為長期的積累,在這個架構内,我們的開發成本最低、測試和分析工具最完善;

3、大部分之前的實驗都是基于這個架構的,積累的大量的經驗可以幫助我們更好地完成新的嘗試。

方法論

做一個政策,需要:

1、明确目标。想清楚這個政策想要達到的最終目标是什麼(使用者價值, 作者價值,收入,etc)。最終目标一定是使用者價值,作者價值,平台價值三者之一,對這三者都沒有價值的項目一定沒有價值。

2、分解問題。目标可以分為多個次元:最終目标是指要創造的價值,包括作者價值、使用者價值、平台價值。間接目标是指政策可能提升的,和最終目标有一定因果性的名額,比如内容多樣性,使用者點贊率等。直接目标是指政策直接優化的名額,比如優化點贊模型的直接目标是點贊模型的預測效果(logloss)等。分解問題指的是對要做的事情完成這幾層目标的分解。我們來看幾個目标分解的例子:

騙贊模型的目标分解是:

首先,騙贊視訊的打壓,最終是為了提升使用者留存,和打擊投機取巧的作者,給正常作者更好的激勵,這個是項目的最終目标。減少騙贊視訊的投稿和vv,可能對最終目标會有幫助,因為會提升使用者對平台的印象,也減

【幹貨】某視訊APP推薦詳解(萬字長文)
少了投機取巧的作者在平台上獲得的流量。為了減少騙贊視訊的分發,我們需要一個騙贊模型來給視訊打騙贊标簽。是以我們最終要做的事情是做一個足夠好的騙贊模型。

           
差異化保量項目的目标分解是:

           
【幹貨】某視訊APP推薦詳解(萬字長文)

目标分解鍊條裡面相鄰兩層的目标的因果關系,都需要足夠可靠,才能保證整個目标分解鍊條的正确性。“可靠”的标準是要麼是邏輯上有足夠清晰的因果關系,要麼是有充足的資料驗證。從整個鍊路的有效性出發,目标的分解有這樣兩個原則:每一層因果關系的可靠性越高越好,鍊條越短越好。目标分解過程中,比較容易犯的一個錯誤是把這幾層目标混為一談, 或者是忽略了其中某一層的變化。比如優化點贊模型隻看點贊有沒有漲,忽略了點贊模型效果有沒有提升,一般就是忽略了直接目标,或者是把直接目标和間接目标等同了。

1、制定政策。根據目标和我們覺得可能有收益的方向來制定相關政策并測試。在推薦場景下,政策的優化可以分為這樣幾種:優化鍊條上某個目标對應的名額,比如提升騙贊模型的auc,直接目标的收益通過問題分解鍊條傳遞到最終目标,拿到最終目标的收益。

2、更好地分解目标。更好地分解目标在做的就是用更好的因果關系(上面提到的,每一層因果關系的可靠性越高越好,鍊條越短越好)鍊條替換掉目前的因果關系鍊條。比如在差異化保量的項目中,我們目前是用預測一個視訊會不會火來判斷這個視訊應該保多少量的,越可能火保得越多,這個名額其實存在一些問題,如果能把這個名額替換成更好的名額,後面針對的優化效果就會更好。比如,改成保多少vv, 後續帶來的使用者側分發效果(比如額外獲得了多少vv)就能排除就算不用做冷啟動也可以分發得很好的視訊,節省流量給不那麼容易分發好的視訊來做冷啟動。

3、設計實驗。設計實驗主要是明确這樣幾個元素:實驗的開啟方式,實驗觀測的核心名額和預期收益,目标分解鍊條中的中間名額和直接名額,以及這些名額預期的變化。核心名額用來判斷實驗是否達到了目的(步驟1裡的收益),比如扶植某類作者,應該看這類作者的投稿留存是否提升。中間名額用來判斷實驗是否開啟正确。一般來說,實驗要觀測的名額,就是目标分解圖裡面,每一層要觀測的名額的彙總。明确了需要觀測的名額之後,根據需要觀測的名額,判斷實驗的開啟方式,包括:開消費側還是作者側實驗,實驗的流量,實驗的參數,實驗需要觀察的時間等。這幾個元素在開設實驗的時候就明确,是非常重要的。這幾個元素提前思考清楚,實驗才能正确進行,也能避免根據結果主觀解釋實驗,先射箭再畫靶子的問題發生。

4、檢查實驗結果。檢查實驗結果是否符合預期,如果符合預期,判斷是否需要上線。如果不符合預期,需要分析實驗,根據分析對方案做出修改或者放棄嘗試。實驗符合預期是指:核心名額收益符合預期,所有中間名額的變化符合預期,或者能給出足夠信服的解釋。

5、上線/總結。如果實驗符合預期,可以上線。

優化方法

(把價值模型和預測模型混淆,是發生頻率很高的一個錯誤。如果你從直覺得到了一個可能的算法優化方案,請務必想清楚你要優化的是哪種模型)預測模型的優化主要是讓預測模型預測得更準,常見的幾種優化方法包括:

1、模型結構的改進。用更複雜強大的算法,讓模型更好地處理輸入,進而預測得更準。

2、增加更多特征。增加特征可以讓模型拿到更多的資訊,進而預測得更準。比如,最近新增加了小遊戲點選模型,如果加上遊戲id作為特征輸入,可能會讓模型更好地學到同一個/同一類遊戲的視訊的相似性,進而預測得更準。

3、提升輸入資料的品質,包括擴大候選集,減少訓練資料丢失,讓模型更及時地得到資料回報等等。

優化預測模型,能提升目前價值模型公式下,推薦的視訊創造的總價值。

           

價值模型的優化主要是讓價值模型更符合平台各方的利益訴求。主要的優化都是根據産品的目标來針對性地修改價值模型,常見地幾種優化方法包括:

1、增加新的互動目标。比如,覺得使用者看到視訊的模仿性投稿重要,可以把使用者看到視訊之後點選拍同款的互動加到價值模型裡面。

2、更換更本質的互動目标。比如,最開始價值模型裡面有個人頁點選這個目标,但是後來我們覺得使用者點進個人頁之後的互動相比點選個人 頁這個目标更能反應使用者對這個作者的感興趣程度,是以就把價值公式裡面的目标從個人頁點選變成了個人頁總互動。

3、對每個互動目标的價值的更合理的拆分。這是最常見的優化方式,優化對應的往往是對産品更深刻的了解,比如:

    A、長視訊直接分發,為什麼點選挑戰數下降了80%?

    B、有的使用者點贊率50%+,有的使用者從來不點贊,點贊的價值在這兩種使用者之間有什麼差別?

    C、點贊率10%的視訊的一個點贊,和點贊率1%視訊的一個點贊,價值是否一緻?

    D、有的使用者會使用收藏功能,有的使用者把點贊功能當作收藏功能來使用,這兩種互動的意義怎麼考慮?

    E、點選關注是否應該包括點進個人首頁之後關注?

    F、點選頭像進入個人首頁,和點選名字進入個人首頁是否應該認為是一個動作?

推薦架構

這部分對推薦架構做簡單的描述,了解推薦架構的常用概念,有助于和推薦同僚更好地溝通。

           

推薦的流程

一個使用者在刷該app的時候,該app會請求推薦服務來傳回視訊給使用者觀看。推薦服務的流程大概分為這樣幾步:

1、篩選視訊

【幹貨】某視訊APP推薦詳解(萬字長文)

2、該app的全量視訊至少有幾十億,每次都從幾十億條視訊裡面選視訊做推薦是不現實的,是以我們會預先選擇一個候選集,使用者每次請求推薦feed,會給這個候選集裡面的視訊做排序,把打分最高的傳回給使用者。這個候選集對于所有使用者都是幾乎完全一緻的,通常包括比較新的視訊和表現比較好的老視訊。

3、每次使用者請求,推薦服務會從這個候選集裡面,通過多個召回源初步選取幾千個視訊,供後續階段做進一步篩選。這個過程叫做召回。召回源分為兩種,基于模型的召回和基于屬性的召回。

4、基于模型的召回會給全部候選集裡面的視訊按照模型的打分排序,選擇得分最高的視訊,比如like召回會把使用者最可能點贊的視訊召回回來。基于模型的召回,使用的架構叫做cypher,cypher使用相對簡單的模型,并應用了各種加速手段,保證能夠在整個候選集上面完成模型的預估,并把打分最高的傳回給推薦服服務。

5、基于屬性的召回會根據使用者的屬性,召回對應的一系列視訊。比如,如果使用者在北京市,同城召回會召回所有在北京市釋出的視訊的top視訊。好友召回會召回這個使用者的好友最近釋出的多少條視訊,等等。基于屬性的召回,通常是通過倒排來完成的。倒排裡面存儲的是每一個屬性值對應的視訊清單,比如使用者id對應的所有好友,區域名稱内的所有的視訊,等等。

6、讀取資料。

7、價值模型和預測模型需要輸入資訊,推薦服務需要請求存放着這些資訊的服務,把資料取回來,用來計算排序公式。資料有非常多的來源,其中最主要的是正排,正排裡面存儲的是每一個視訊的各種屬性資訊,例如觀看數,是否是電商視訊,視訊的類型,作者的id等。還有很多存儲使用者、作者、音樂的資訊的服務,這裡不一一展開了。

8、計算得分,傳回結果。

9、把讀取到的所有的資料作為排序公式的輸入,算出各個預測模型和價值模型的值,再融合起來得到總分,把得分最高的排在最前面。

10、因為計算性能限制,隻有一小部分,大概幾百個視訊可以做完整的模型計算。但是召回傳回的視訊要遠多于這個數量,是以在最終的排序 (精排)之前,還有額外的一步粗排。在粗排中,我們會用一個簡單的排序模型,盡可能地模拟精排模型的打分,在所有召回的視訊裡面,選出最靠前的幾百個視訊,送給精排。

11、精排打分之後,還會應用一些規則,比如電商六出一,同音樂六出一,冷啟動強插等等。

12、這些規則都應用完之後,會把排在最前面的視訊傳回給使用者。

13、收集回報。

14、視訊推給使用者後,使用者對視訊的回報(點贊、評論,是否滑走等)會被收集起來,用于訓練模型。

Data Walk-through

這部分更具體地把整個推薦流程的相關步驟做的事情,和具體取到的資料樣式展示出來,幫助大家有個更直覺的了解。為了便于了解,這裡對實際推薦的流程做了簡化。例如實際過程中,從性能或開發便利的角度,擷取資料和計算得分可能是交錯進行的,擷取資料和篩選視訊也可能是交錯進行的,但是在這部分的介紹中,我們忽略了這樣複雜的交錯過程。

           

篩選視訊

在這個階段,系統從各個召回源取回視訊:

播放時長召回100個視訊:視訊A1(預測播放時長15.4),視訊A2(預測播 放時長13.2),視訊A3(預測播放時長11.1) ...

好友召回召回10個視訊:視訊B1(來自好友A), 視訊B2 (來自好友B)...

附近召回召回20個視訊:視訊C1 (距離0.5KM),視訊C2 (距離0.85KM)...

然後把這些視訊合并在一起,形成一個召回視訊的序列,這些視訊會進入擷取資料階段:

A1 B1 C1 A2 B2 C2 ...

擷取資料

在這個階段,系統會去通路各個提供資料的資料源,把視訊/使用者/請求對應的所有相關資訊取回來。例如會去正排請求所有的視訊相關資訊;從推薦請求中擷取這次請求命中的AB實驗,要求傳回的條數等;去使用者服務請求使用者的相關資訊;去作者服務請求作者的相關資訊等。最終,資料會被大緻彙總成兩部分:

視訊資訊:

A1:播放量500,處于冷啟動階段,作者是X1,作者的粉絲數是1000,帶購 物車,購物車id為XXXX,...

A2:播放量1000000,不處于冷啟動階段,作者是X2,X2有賬戶認證,音樂id是XXXX,評論數50,...

使用者和請求資訊:

使用者資訊:

使用者的關注人清單為:A1,A2,A3,A4

使用者的粉絲數為:102

使用者最近看過的視訊為:B1, B2, B3, B4

使用者看過的視訊統計為:(總共100個,體育類視訊24個,政治類視訊15個)

使用者最近7天看過102個視訊,點贊15次,評論7次,...

請求資訊:

這次請求命中了實驗 X1(傳回12條視訊), X2(不傳回冷啟動視訊), X3(點贊的價值X2,過濾掉差評率高的所有視訊),在wifi場景下,手機系統為iOS,APP版本号為7.22.1

計算得分在這個階段,推薦服務首先會把每個預測模型的輸入提供給預測模型,得 到預測模型的輸出:

視訊1:like 0.15 comment 0.03 share 0.007 ...

視訊2:like 0.03 comment 0.10 share 0.062 ...

然後推薦服務會在每個視訊上面應用價值模型(價值模型的輸入是擷取數 據階段獲得的資料,和計算出來的預測模型的分數),得到每個視訊的最終得分

假設我們的價值模型是 10 * like + (3 + 2 * is_friend) * comment + 5 * share

那麼我們會得到

視訊1:10 * 0.15 + 3 * 0.03 + 5 * 0.007 = 1.625

視訊2:10 * 0.03 + (3 + 2) * 0.1 + 5 * 0.062 = 1.11

這些視訊會被按照分數從高到低的順序排列好,然後應用各種規則。應用規則的方式是:選擇目前滿足所有規則的,得分最高的視訊,放到傳回視訊清單的第一位;選擇目前滿足所有規則的,得分最高的視訊,放到傳回視訊清單的第二位;...;直到傳回清單裡面的視訊數量等于要求傳回的視訊數量為止。

下面是一個應用規則的例子:如果我們的輸入是如下所示的5條視訊:

視訊1(1.625),視訊5(好友視訊, 1.35), 視訊2(好友視訊, 1.11), 視訊4(0.75), 視訊3(0.11)

要求傳回3條視訊,且有一個規則是“好友視訊每刷最多傳回一個”的話,傳回的視訊是 視訊1,視訊5,視訊4。視訊2雖然得分高于視訊4,但是因為不滿足規則,在視訊選擇過程中被跳過了。

傳回結果

計算結束後,推薦服務會把排好序的要展現給使用者的的視訊的id和相關的一些資料傳回給服務的調用方,最終傳回給使用者。

收集回報

WIP

視訊生命周期

上面是從使用者角度來了解推薦服務的流程的,現在我們再看下一個在平台釋出的視訊的整個生命周期裡都發生了什麼:

           

一個視訊被釋出之後,經過稽核,會被刷入候選集,刷入候選集之後就可以在推薦feed被正常推薦了。視訊首先會進入冷啟動階段,這個階段視訊會受到一些額外的照顧(價值 模型上的boost)。做冷啟動的原因是因為預測模型還沒有充分學習到這個視訊的資訊,預測可能會不準。給視訊一些額外的早期照顧,能幫助它更好地分發,提升作者的體驗,也可以提升整體平台的内容分發水準。冷啟動結束之後,就進入正常的推薦階段了。在這個階段,視訊存在于候選集中,每個使用者刷該app,app請求推薦服務給使用者推薦視訊的時候,這個視訊都會參與排序,如果打分足夠高排序靠前,就會被推薦給使用者。正常的推薦階段會在一段時間之後結束,這個時候視訊不再存在于候選集中,不會再繼續從推薦feed獲得流量了。不過這個視訊仍然能從個人頁,關注feed等途徑獲得曝光。

在生命周期中,視訊可能會進入多次稽核流程,稽核中的視訊可能會停止分發。

           

産品&營運相關

怎樣更好地提出一個需求

想清楚自己要優化的目标。我們經常遇到這樣的情況:和推薦溝通比較多的産品和營運同僚,因為比較熟悉推薦的做法,會帶着某個具體的做法來提需求。比如“加一路XXX召回”,或者“給XXX類内容boost”等。這個時候比較容易犯的一個錯誤是,提出了具體的做法,但是沒有想好或者沒有說明,希望優化的目标是什麼。比如,提出boost直播視訊的需求,但是讨論之後了解到目标其實是提升推薦feed進入直播的量。這個時候其實更合理的需求是增加一個點選進入直播的預測模型,因為這個是在直接優化目标解決的問題。我們的建議是,需求裡面最重要的是目标,一切需求都要帶着明确的目标來溝通。這樣推薦同僚才能比較好的針對目标,給出更合理的方案。

確定提出的需求在優化實際的目标。上面已經提到了,明确目标之後,需要确認提出的需求,确實是和目标一緻的。這塊可能會涉及比較多的模型方面的技術細節,如果不确定需求是否合理,可以和推薦同僚先讨論一 下。下面是一些具體的例子:

目标 錯誤的方案 正确的方案
減少騙贊視訊的分 發 每天點贊超過10% 的大部分都是一些 騙贊視訊,給點贊 率超過10%的視訊 打壓
做一個識别騙贊視
頻的模型,打壓被
識别為騙贊的視訊

           
提升推薦feed進入電商直播的購買量

我們發現播主開播 滿30分鐘才會開始 帶貨,給開播滿30

分鐘的視訊一個

boost

做一個推薦feed點選進入直播之後, 是否會點選購物車的模型
減少廣告對使用者留
存的影響

           
如果使用者不大活
躍,就少出廣告

           
預測不出廣告對用
戶留存的影響,計
算收益和損失是否
劃算,如果劃算則
少出

           

想好評估名額。每一個政策上線,都需要實驗名額來驗證。在提出需求的時候想好實驗需要看的核心名額和中間名額。具體方法可以參考上面方法論的設計實驗部分。

從全局出發。有同僚會希望推薦能夠提升某一類内容的分發。提升這類内容的分發,對垂類業務的成長是好的,代價是犧牲了全局的分發效率。推薦對整個app的總體價值負責,提這類流量傾斜的需求的時候,需要想清楚對全局的價值,而不隻是對垂類業務的價值,否則需求被拒絕的可能性很大。

考慮ROI。每個需求都有成本和收益。一件事情值得做的最低标準是收益大于成本。因為同時有很多件事情可以做,更合理的标準是這件事情的淨收益(收益減去成本),比其他值得做的事情的淨收益要高,也就是收益要大于機會成本。ROI最高的事情,優先級應該最高。

Q&A

實驗相關

Q:可以不做AB直接上線嗎?

A:不行,特别緊急的情況除外,比如安全相關的非常緊急的需求。經驗上,預期的效果和實際的效果可能會有非常大的差異。不做ab直接上線,可能會帶來嚴重的影響。

Q:AB沒收益的政策,一定不能上線嗎?

A:不是的。ab沒收益也可以上線的政策一般分為兩種情況:隻能AA觀察的政策和信仰判斷需要上的政策。隻能AA觀察的政策比較少。信仰判斷需要上的政策,要求有明确的理由和清晰的長期的review機制。

Q:AB有核心名額收益,就一定可以上線嗎?

A:不是的。上線的标準是實驗符合預期,實驗符合預期是指核心收益和所有的中間名額變化符合預期。這樣要求的原因是:如果隻是核心名額有收益,中間名額變化不符合預期,也就是說問題分解鍊條實際上可能不成立,我們實際不清楚這個實驗改動的收益的來源。如果在這種情況下允許上線,可能帶來一些負面影響:我們對這個問題沒有做到清晰的問題分解,這對後續的疊代是不利的;收益的來源可能是和現在的推薦系統裡面衆多的邏輯發生了不合理的耦合,政策在推薦系統變化之後,很可能收益 就不存在了,甚至産生負向收益。(比如,點贊模型壞掉的時候做了個下掉點贊模型的政策,名額可能會有收益,但是等模型修正之後,這個政策的收益就變成負的了)總之,除了核心名額收益,我們也在意政策的可解釋性和長期的知識積累,我們相信在長期這種要求能幫助我們拿到更高的核心名額收益。

Q:為什麼不做AB,上線直接看AA名額變化通常是不正确的?

A:因為AA名額在時間次元上本身就有比較大的波動,同一時間也可能存在其他政策上線,噪聲比較大。這個時候用AA名額來判斷實驗的收益,有很大的可能出現誤判。

内容扶持相關

Q:為什麼給我覺得好/不好的視訊做權重/降級/過濾,一般都沒有收益?

A:因為經驗表明,使用者的互動行為能夠很好地表征使用者對視訊的感興趣程度。使用者如果喜歡一個視訊,往往會看得更長,更喜歡點贊和評論,這種偏好在價值公式裡已經展現出來了,不需要額外的boost。

此外,我們總結出來的使用者偏好,更多的是宏觀層面上的,但是使用者興趣是高度個性化的,直接基于宏觀結論做幹涉,很難得到好的結果。以“上升人群更喜歡高品質内容”為例,上升人群可能整體上更喜歡高品質内容,不是每個人都喜歡所有的高品質内容(使用者A可能隻喜歡高品質的旅遊内容而讨厭廚藝内容,使用者B可能隻喜歡高品質的海外旅遊内容),也不是每個上升人群都讨厭所有的低品質内容。這種偏好已經表現在點贊率,完播率裡面,如果我們額外再給高品質内容做boost,實際更多地作用在了上升使用者不喜歡的高品質内容上(比如給A推了廚藝内容,給B推了非海外的旅遊内容),這種扭曲基本上不可能提升使用者的體驗。反過來,打壓/過濾低品質内容也不會提升使用者體驗。如果使用者給我們認為的低品質視訊點贊了,用 戶很可能是喜歡這個内容的。比如這個視訊可能是他的朋友發的,可能是附近的街區的新鮮事,可能他就是很喜歡某些偏low的内容,來釋放生活的壓力。如果我們把這些内容過濾了,使用者體驗也會變差。

下面是一些常見的問題,這些問題都可以用上面的分析來解釋:
    Q:我看到明星視訊的互動率比大盤高,能不能給明星視訊做下權重?
    A:個人的互動率比整體的互動率更能展現使用者偏好,個人的互動率已經展現在價值公式裡面了,這麼做沒有什麼價值;
    Q:過濾掉比較low的視訊,使用者名額會提升嗎?
           

    A:不會,上面已經解釋了

    Q:Boost表現比較好的視訊,使用者名額會提升嗎?

    A:大部分情況下,不會。原因同上。

    Q:Boost/打壓某一類的視訊,使用者名額會提升嗎?

    A:大部分情況下,不會。原因同上。

Q:如果像上面說的,過濾/boost/打壓一類視訊,使用者滿意度不會提升,那麼是說我們不應該做任何這樣的政策嗎?

A:不是的。原因有幾個。首先,我們上面的結論是使用者價值不會因為這些政策而提升,但是作者/平台價值是可能因為這些政策提升的。比如,過濾低俗視訊會提升内容安全性,過濾騙贊視訊可能會減少劣币驅逐良币的效應,提升作者創作品質,boost冷啟動視訊能讓推薦模型更好地學到這些視訊的特征,服務後續的視訊分發。因為作者/平台價值比較難直接衡量,我們必須先做好相關的資料建設,才能做這類政策,否則很容易陷入拍腦門做事,先射箭後畫靶的問題之中。另外,在一些特殊的場景,這些政策可能是有價值的,比如在關注feed考慮親密度/新鮮程度,在同城feed考慮距離因素等,這些政策都服務了一個清晰的産品邏輯,是以可能産生收益。在推薦feed,内容是核心,做類似的政策很難有收益。

其他

Q:頭條/快手/微網誌做了類似的事情,我們可以上線同樣的政策嗎?

A:取決于實驗結果。借鑒其他産品的實踐是個很好的做法。不過和其他策 略一樣,我們必須先想好目标,實驗評估方法等,有明确的收益才能上線。

Q:我要做的是一個小功能,對核心名額沒有影響, 這個時候應該怎麼評估呢?

A:首先,對核心名額沒有影響的功能,因為收益不明确,優先級可能會比較低,這個時候需要先思考清楚這個功能的意義。如果意義明确,可以用這個小功能的相關名額來做實驗名額,比如功能留存、滲透、時長等。如 果有可能,也可以先激進嘗試放大政策,觀察名額的變化,先評估持續疊代後的天花闆,再用更溫和的版本,折算收益後判斷是否應該上線。

本次分享就到這裡,更多推薦相關幹貨資料可以到小程式省時查報告中搜尋“推薦”來檢視并下載下傳。

「 更多幹貨,更多收獲 」

推薦系統工程師技能樹
京東商城推薦系統實踐.pdf微網誌推薦算法實踐與機器學習平台演進.pdf阿裡城市大腦資料智能解決方案.pdf推薦系統的公平性:使用者側和生産側2021年3月份熱門報告盤點&下載下傳

關注我們
           

智能推薦

個性化推薦技術與産品社群

長按并識别關注
【幹貨】某視訊APP推薦詳解(萬字長文)

你的「在看」,我的動力????