淺談 UC 國際信息流推薦
掃描二維碼
隨時隨地手機看文章

導讀:本次分享的主題是淺談UC國際信息流推薦。會跟大家探討下發(fā)鏈路中常見的一些問題,主要包括兩個場景:
列表頁排序,包括:目標確定、多目標任務以及混排組合優(yōu)化。
內容冷啟問題,如果不做內容理解,能否做好推薦系統(tǒng)?
▌列表頁推薦
這是印度語版的推薦列表頁,左邊跟常見 feed 推薦的產品形態(tài)是非常類似的,有不同的異構的卡片:
新聞聚合頁,點開以后就是一個聚合頁。
視頻,點開是一個沉浸式播放的聚合頁。
普通的圖文,點開是一個落地頁、詳情頁。
Memes,印度市場特有的內容 Memes。這種內容主要是一張圖片(或者動圖),這種內容比較特殊,可以直接在列表頁消費,直接看了就曝光、閱讀完成,就結束了,如果點開的話就是 Memes 的沉浸式頁面。
總結起來,內容消費的路徑有:
一種是,列表頁里直接消費的內容,如 Memes。
一種是,落地頁中消費的內容。
還有就是通過聚合頁再次跳到落地頁消費的內容。
1. 目標確定
接下來講下如何確定目標。對于推薦系統(tǒng)來說,最核心的就是如何確定目標,如果目標定不好,可能就會出現(xiàn)標題黨的問題。在解釋最終求解目標之前,先看下用戶的行為路徑:
圖中圓圈表示的是用戶的一種行為,方框表示用戶發(fā)生這種行為的心里活動。
比如用戶看到一篇內容之后,如果這個內容有吸引用戶的點,也就是產生了吸引,會發(fā)生一次點擊,在點擊看到詳情頁的內容之后,如果對這個內容比較滿意,用戶可能會形成一次有效的閱讀,有一次有效閱讀之后,如果用戶還是覺得這個內容非常好、非常滿意,用戶可能會有一些互動的行為,比如分享、點贊、評論等。
當然還有種可能:用戶在列表頁里看到一篇內容之后,用戶不是很感興趣,直接就跳走了或者快速的劃過;再就是用戶點開了一篇類似標題黨的內容,但是內容完全不是用戶想要的,這其實是一個強烈的不滿意會,一個無效的閱讀,然后用戶就離開了。如果把所有不滿意的行為看作是一種負向的滿意度,我們建模的核心目標應該是一個用戶累計的所有滿意的行為,使?jié)M意行為累積量最大化。
這里所有標黃色的路徑其實是一個偏正向的路徑,標灰色的路徑是個偏負向的路徑,我們的目標是使正向的路徑逐漸的累積,對用戶逐漸的產生一個比較正向的影響。
所以求解目標是:
左邊為吸引的概率,右邊是滿意的概率,然后所有看過的內容滿意度最大化。
如何衡量有效的閱讀?一個傳統(tǒng)的方法是用閱讀時長來衡量是不是一個滿意的閱讀,但實際上用戶滿意的心理和時長不是一個完全線性的關系。比如有一類行為是用戶閱讀了 5s 或者 10s 以下快速離開(quickback),這種無效閱讀,無論是 3s、5s 還是 7s、8s,效果都是用戶對內容完全不滿意,應該快速離開的。再有,當用戶讀一篇長文時,大家可能都有這樣的體會,長文閱讀可能會有一個瓶頸,就是大家花了很長時間在一篇文章閱讀上,但是讀到一定程度的時候,可能再也讀不下去了,能花的時間就存在一個極限了,所以最后滿意度和時長關系是類似 sigmoid 的函數(shù)關系。因此,我們在對滿意度建模時,其實是把回歸問題變成了一個分類/二分類/多分類的問題。這里可能會涉及怎么做時長回歸的問題(由于不同類型、分類、主題的內容以及內容信息量的不同,其閱讀時長總量是會變化的),一種簡單的方法是用這些維度,對內容進行統(tǒng)計分析求出分布,然后用分位數(shù)來截斷,通過人工來排出幾個檔,也可以做一些人工標注來擬合這樣的分類。結合UC國際信息流,稍微特殊的一點是列表頁有 Memes 這樣的圖片內容。這種內容由于強調的是互動性(一般承載的是一些高分享類的內容,如早安、節(jié)日問候、搞笑的圖片等),在產品設計時,會把這種交互行為做前置,在列表頁就放出來,這樣就可能存在誤點,用戶還沒看到或看完這篇內容,就產生了點擊,需要做一些過濾。
負向滿意度,分為:
顯式:很多產品在設計時,都會在內容邊上有個XX,也就是 dislike,比較直白的顯示了負向滿意度。
隱式:無點的曝光、無效閱讀 ( quickback )、快刷等動作。
說完了總的求解目標之后,這里列舉的吸引和滿意,滿意還可以拆解成更多的步驟,比如剛才說的有效閱讀和互動行為,可以再做分解,但無論如何都是一個多目標的任務,針對這樣的多目標任務該如何建模呢?
2. 多目標點估計
這里列舉了一些方法,都是阿里巴巴集團內部在各個業(yè)務線上的一些沉淀:
① ESMM:
這是阿里媽媽團隊在解決多目標問題的一種解決方案。ESMM 可以解決我們在對多目標問題進行求解時,比如左邊是轉化率的目標,右邊點擊率目標,往往是獨立進行求解的。使用樣本時,該如何表達上文說到的轉移概率?常規(guī)做法用到的樣本,如轉化率使用的樣本是所有的有點樣本,由于在訓練時,使用的樣本是部分樣本,在預測目標時,使用的是全樣本,導致樣本分布會存在一定的偏差。ESMM 是把樣本空間放到全空間,在定義目標,計算 loss 時,計算的都是全樣本空間的 loss,一個是點擊率,再有一個是把 CVR 作為一個中間節(jié)點,最后求解的 loss 目標是 CTR * CVR,然后底層網(wǎng)絡參數(shù)共享。
② DBMTL:
DBMTL 模型是淘寶推薦團隊對 ESMM 模型進行的改進。主要的改進點:左邊這部分就相當于 ESMM 那張圖橫過來了,是共享參數(shù)層;specific layer 是走的不同目標的分支;最重要的是右邊 bayesian layer,表達了概率圖中目標之間的貝葉斯轉移概率的因果關系。如果轉移概率之間的關系,受其他的一些 feature 和因素的影響,也可以把那些 feature 加到網(wǎng)絡中一起訓練,所以 DBMTL 建模的時候還建模了幾個目標之間的因果關系。
③ MMoE:
MMoE 類似一個專家系統(tǒng),有多個子網(wǎng)絡,每個子網(wǎng)絡使用的特征和網(wǎng)絡結構可以有差異,在最終確定多目標的時候進行票選,通過 gate 來賦予不同的權重來做票選。
最后,我們的業(yè)務在不同場景上都取得了比較正向的收益,如視頻頻道和 Push 場景。
多目標這兒寫了一個點估計,因為主要用在精排的場景,在做每次的預估時,考慮的都還只是某一條內容的滿意度效果。
3. 混排
但是在列表頁場景,我們要求解的是一個組合最優(yōu)的效果,也就是說對上面的問題需要做進一步的擴展。在考慮點擊率時,還要考慮上下文,我上下文的信息。
然后我們的求解目標也做了一個轉換:
U 轉到 page,做了一個獨立假設,認為頁與頁之間是沒有關聯(lián)關系的,但這個假設不一定成立,只是為了把問題簡化一下。這樣我們的問題就變成了在組合列表頁的情況下,如何達到組合最優(yōu)。比如有 N 條精排的候選集輸出,對這 N 條結果輸出 M 個槽位的排列,也就是求解排列的最優(yōu)解。所以搜索空間相當于是 N 的 M 次方,一個非常大的搜索空間,在實際業(yè)務中是沒法落地的,因為計算復雜度太高了。
所以淘搜這有一個簡化版的方法:類似于貪心的一種算法,在每一輪只確定當前這條最優(yōu)的結果,然后考慮上文,不考慮下文。舉個例子,比如現(xiàn)在是第三輪迭代,已經確定了前三個位置的最優(yōu)組合,現(xiàn)在是求解第四個位置應該選哪一條,預測第四條那個位置最優(yōu)的一個選項。另外在做貪心搜索時,搜索空間非常受限,受選擇順序的限制。那么 beam search 有一個參數(shù),就是寬度,每次可以把候選集保留 top3,也就是最優(yōu)組合的 top3 作為候選,再進行下一次的探索,有一定的探索回溯的能力,這樣 beamsize 探索的最優(yōu)空間的大小,可以用來 balance 性能和效果。
還有一點是對上文的建模,怎么表達上文的排列信息,也就是上文內容之間的位置相對關系的信息。這里有一個比較巧妙的方法:用 RNN 的網(wǎng)絡結構來表達他們之間的相互關系,然后在計算的過程中(因為是一個貪婪式的計算,每一輪只計算一步),只計算 RNN 的一個 STEP 可以了,所以在時間復雜度上也是可以接受的,這樣存儲一個 RNN 中間的隱變量就可以了,這就是混排的做法。
▌內容冷啟
內容冷啟問題,有朋友問,如果一個推薦系統(tǒng)完全不做內容理解,是不是也是可行的?這里從其中一個角度說下。
左圖是我們現(xiàn)在只用 ID 作為 feature,也就是說核心 feature 是內容的 ID,相當于沒有內容理解,這是一個新內容收斂的效果,下邊橫軸是下發(fā)的 PV,可以看到點擊率的收斂,要基本上要到千次左右的下發(fā)才能達到一個接近收斂的程度,而且起步階段和后面其實 gap 還是非常大的,用 ID 做推薦就會遇到這樣冷啟的問題,特別是我們的業(yè)務場景又涉及到小語種。因此,對于場景,無論是 item 還是流量都做了很多的細分,所以冷啟的問題會尤其的嚴重一些。
解法其實還是內容理解,我們把 ID 的特征映射到文本域。這里有一個 YouTube 15年做的一個工作,怎么去掉時間的 bias,就是 Example age,其含義是在采用這條樣本時,這個時間點距離這條內容發(fā)布的時間點之間的 time diff 時間差是什么樣的。加上 bias 的 feature 之后,對時間敏感的內容在下發(fā)時就會考慮到下發(fā)時間差,相當于提高了時效性。
我們在召回側 DM match,把 ID 特征加上文本特征之后,冷啟(1000條以下的曝光)內容 AUC 有了不錯的提升。
另外,在多語言的體系下,如果能把文本域的表征對齊投影到同一個空間,對冷啟應該能起到更好的效果。
▌總結
簡單總結下,結合大家常見的一些問題,本次分享主要介紹了排序中如何確定目標,如何做多目標的點估計以及混排的組合優(yōu)化,還簡單介紹了內容冷啟的一些解決思路,主要是特征泛化和語義對齊。本次分享就到這里,謝謝大家。
特別推薦一個分享架構+算法的優(yōu)質內容,還沒關注的小伙伴,可以長按關注一下:
長按訂閱更多精彩▼
如有收獲,點個在看,誠摯感謝
免責聲明:本文內容由21ic獲得授權后發(fā)布,版權歸原作者所有,本平臺僅提供信息存儲服務。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!