您當前的位置:首頁 > 動漫

智慧推薦系統新使用者冷啟動—EE問題及Bandit演算法

作者:由 編碼小弟 發表于 動漫時間:2019-02-25

前言

幾乎在所有資訊消費類的應用場景中,對於外部畫像缺失的新使用者,如何承接都是一個棘手但又十分關鍵的問題。承接的好,理所當然就能提升留存率,離人生巔峰就更進一步了,嘿嘿!

演算法適用場景:

新使用者冷啟動

使用者興趣探索

(請各位補充)

如何定義新使用者(冷啟動使用者)?

在這拋磚引玉,說三點簡單的方法。

綜合曝光,點選數等行為。

基於使用者畫像。

綜合各種資訊。

Exploration and Exploitation(簡稱EE)

在推薦系統中:Exploitation的意義在於對使用者感興趣的要大力開發。但一直給使用者推薦那幾樣內容,使用者就會膩。所有就需要exploration。探索挖掘使用者興趣。

bandit演算法

bandit演算法泛指解決EE問題的所有演算法,在此介紹其中較為經典的兩種——LinUCB和Thompson Sampling。

Thompson Sampling:

簡單來說:以使用者對不同item的興趣,分別計算興趣值。且我們假設使用者對item的興趣是符合Beta分佈的。

智慧推薦系統新使用者冷啟動—EE問題及Bandit演算法

演算法實現流程:

每個臂(item或類目等)都對應一套(a,b)引數,然後透過上述公式生成beta隨機數。

將產生的隨機數最大的臂作為結果,並根據使用者反饋,點選則a+1,否則b+1

智慧推薦系統新使用者冷啟動—EE問題及Bandit演算法

在嘗試次數越來越多的時候,所有的(a,b)都已經很大,這時候每一個beta分佈都會變得接近中心位置,生成的隨機數趨於穩定。

若某個臂的a+b跟a/(a+b)都很大的時候,beta分佈會很窄,且機率集中到1附近,所以該臂生成的隨機數每次都會比較大,被選中機率就會很大。

存在問題

臂的數量:若臂數量過多,則影響演算法收斂。所以需要事先篩選,控制臂的數量。

a,b超參的選擇——設定為1。原因在這就留給看官們來解答吧。

演算法實現:

1。

Spark

Streaming

標簽: 使用者  演算法  隨機數  item  beta