天天看點

強化學習在錦囊位置調控上的探索和實踐1. 背景 2. 系統架構 3. 基于強化學習的模組化 4. 算法改進 5. 效果與展望 6. 參考文獻

    在手淘的搜尋中,當使用者輸入query進行搜尋之後,一方面有适合他的商品展現出來,另一方面,如何更好地了解使用者意圖,為其推薦更合适的關鍵詞進行細分查找,進而更高效的引導使用者到他想找的商品,也是一件非常重要的事情。

強化學習在錦囊位置調控上的探索和實踐1. 背景 2. 系統架構 3. 基于強化學習的模組化 4. 算法改進 5. 效果與展望 6. 參考文獻
強化學習在錦囊位置調控上的探索和實踐1. 背景 2. 系統架構 3. 基于強化學習的模組化 4. 算法改進 5. 效果與展望 6. 參考文獻
強化學習在錦囊位置調控上的探索和實踐1. 背景 2. 系統架構 3. 基于強化學習的模組化 4. 算法改進 5. 效果與展望 6. 參考文獻
強化學習在錦囊位置調控上的探索和實踐1. 背景 2. 系統架構 3. 基于強化學習的模組化 4. 算法改進 5. 效果與展望 6. 參考文獻

    在這裡,我們主要解決的問題是如何根據使用者的曆史以及實時行為,在目前query下,為他推薦更合适的錦囊類型,比如有的使用者對品牌感興趣,有的使用者對風格感興趣,那麼就會根據實時的資訊,在合适的頁面展現合适的錦囊類型。以提高使用者對錦囊的點選率,進而提升引導效率。

    整個強化學習位置調控是一個線上實時訓練的過程,其架構圖如下所示:

強化學習在錦囊位置調控上的探索和實踐1. 背景 2. 系統架構 3. 基于強化學習的模組化 4. 算法改進 5. 效果與展望 6. 參考文獻

    錦囊子產品:在判斷具體出什麼類型的錦囊時,需要的資料有使用者的實時行為序列,從igraph中擷取,同時還要從dii記憶體中擷取強化學習的模型參數,然後綜合判斷目前需要出的錦囊類型。同時在目前session下,還需要實時的将已經出現過的類型寫入igraph中,當使用者再次翻頁的時候,不會出現重複的錦囊類型。

    強化學習主要是通過與環境互動中的trail-and-error,來不斷找到能使得累計獎賞最大的政策一種學習方法。

    在Model-Free的強化學習中,主要有兩類方法,一類是Value-Based的方法,即利用值函數估計來選擇最優的動作(比如Q(s,a)),也相應得到了更優的政策,比如Q-learning,SASAR,DQN等,另一類是Policy-Based的方法,采用直接優化政策的方法,比如TRPO,A3C等。 我們在錦囊調控的任務中主要使用過A3C,DQN兩種方法。

1. DQN

    DQN是DeepMind在用DRL探索Atari遊戲時提出的,其主要架構就是在傳統的Q-learning方法中引入了DNN(CNN)來進行學習,并在此基礎上加入了Experience Replay,Targrt Network等技巧,并在很多遊戲上達到甚至超過人類玩家水準。在之後的幾個工作裡,也進行了進一步的完善和提高(Prioritised Replay, Double DQN,Duelling Network等等)。其中Nature版本的DQN僞代碼如下所示:

強化學習在錦囊位置調控上的探索和實踐1. 背景 2. 系統架構 3. 基于強化學習的模組化 4. 算法改進 5. 效果與展望 6. 參考文獻

2. A3C

    A3C算法的全稱是asynchronous advantage actor-critic,其中actor-critic是在一般的policy-based方法中,也引入了值函數估計的方法來減少方差,如下圖:

強化學習在錦囊位置調控上的探索和實踐1. 背景 2. 系統架構 3. 基于強化學習的模組化 4. 算法改進 5. 效果與展望 6. 參考文獻

    而在利用bias term技術來減小方差時,采用了Advantage function來作為bias: 

強化學習在錦囊位置調控上的探索和實踐1. 背景 2. 系統架構 3. 基于強化學習的模組化 4. 算法改進 5. 效果與展望 6. 參考文獻

    算法基本邏輯如下圖:

強化學習在錦囊位置調控上的探索和實踐1. 背景 2. 系統架構 3. 基于強化學習的模組化 4. 算法改進 5. 效果與展望 6. 參考文獻

    當使用者在搜尋中發出一個query,看到頁面,把目前頁面下使用者的一些特征作為此時的狀态,我們要學習的政策就是在這種狀态下應該給出什麼類型錦囊,進而轉移到下一個頁面下,reward也應該根據目标進行設定。

    1. state

    我們設計State能包含使用者在目前query下的特征以及此時的實時特征,主要有:

    User 特征:性别,年齡,購買力等;

    User 曆史上對錦囊綜合的以及各類型錦囊的展現點選等情況;

    Query的特征;

    目前Query下錦囊綜合的以及各類型錦囊的展現點選等點選情況;

    ……

    目前所在Page;

    目前頁之前使用者最近100次 PV中對各類型的點選情況;

    使用者最近五個動作類型(點選,浏覽,購買等);

    使用者最近點選的五個商品的特征;

    我們學習的目标就是在目前頁,對于特定使用者狀态,出什麼類型的錦囊,是以這裡我們直接把要出的錦囊類型作為動作。如下圖:

強化學習在錦囊位置調控上的探索和實踐1. 背景 2. 系統架構 3. 基于強化學習的模組化 4. 算法改進 5. 效果與展望 6. 參考文獻

    3. 獎賞函數

    Reward Function決定了我們想要引導錦囊agent去優化的方向,也即是優化目标。當我們設定了不同的目标時,reward應該做出相應的調整: 單純最大化錦囊的CTR時,可以有類似下面的設定(其中,x表示目前query下點選的錦囊的頁碼)

強化學習在錦囊位置調控上的探索和實踐1. 背景 2. 系統架構 3. 基于強化學習的模組化 4. 算法改進 5. 效果與展望 6. 參考文獻

    再結合引導成交等需求,可以有類似如下的設定:(其中,y, z, I代表翻頁頁數,點選次數,是否購買)

強化學習在錦囊位置調控上的探索和實踐1. 背景 2. 系統架構 3. 基于強化學習的模組化 4. 算法改進 5. 效果與展望 6. 參考文獻

1. A3C

    錦囊候選類型,一開始沒有引入屬性pid類型,錦囊類型隻有有限的幾種,如相關搜尋、選購熱點、細選等,是以我們采取了A3C算法,直接把類型當做動作,用critic網絡來學習值函數,用Actor網絡來學習policy,actor網絡最後輸出的值經過softmax可以認為是采取各個動作的機率值,Actor網絡形式如下所示:

強化學習在錦囊位置調控上的探索和實踐1. 背景 2. 系統架構 3. 基于強化學習的模組化 4. 算法改進 5. 效果與展望 6. 參考文獻

2. DQN

    當我們把屬性pid引入到錦囊中後,候選的錦囊類型(即動作)一下子增加到兩萬多種。如果我們還是采用之前的A3C方法,網絡的輸出需要有兩萬多個節點,顯然是不适用的。是以,我們采取了用DQN+類型ID Embedding的形式來進行學習。也就是說,對每一個候選動作a,先進行embedding,再和s過來的節點進行concat,之後學習的就是他們的Q值,然後再每一個具體query下進行選擇的時候,計算每一個可選的ID的Q value,進而進行決策,這裡隻用到了一個網絡。如下圖:

強化學習在錦囊位置調控上的探索和實踐1. 背景 2. 系統架構 3. 基于強化學習的模組化 4. 算法改進 5. 效果與展望 6. 參考文獻

    由于我們擷取的是實時資料,這就可能導緻不同的時間段擷取到的使用者分布差異較大,進而實時學習的模型對受到資料的影響,導緻學習方差加大。

    為了減弱這一影響,可以利用Stratified Sampling技術。比如,可以對使用者的年齡分布,性别分布,購買力分布進行統計,擷取一個較為穩定的比例。之後,在一般的random replay的基礎上做一些改變,每次的采樣遵循此比例進行分層的采樣方法,使得樣本更加的穩定,學習的方差也會更小。

    除了使用者群體分布變化之外,每一天不同時間段的使用者總數,使用者使用習慣也會發生變化,進而導緻了非模型引發的reward變化(模型沒有變化,整體CTR發生提高,reward提高,而誤認為是模型的正向作用),這就使得學習的評價名額不穩定,可能産生波動的情況。

    是以,我們加上了一個比較基準,利用kmonitor實時的統計基準桶裡面的使用者行為,CTR等資訊,利用此來修正reward,比如可以設定為: reward=原始reward-基準桶reward(強迫模型朝着比基準桶更好的方向發展,而不是受一天中不同時間段的影響)。

    在采樣方法上,在傳統強化學習的方法之外,也嘗試了Thompson Sampling的方法,該方法主要是去維持每一個類型beta分布來進行學習。

    在采取了上述方法後,與基準桶相比,線上的CTR和使用UV得到了一定程度的提升(10個點左右)。

    這是一次RL在此類任務上的探索,應該說至少證明了RL是可以勝任這類問題的,不過由于目前每一個query下候選的錦囊類型過少,直接采用一般的監督學習方法,CTR預估等應該就可以達到比較好的結果。

    另外,綜合考慮,直接決定與使用者互動的詞語,内容,可能是更好的選擇,更加能給使用者提供幫助。後續錦囊這個産品可以考慮引入更多的互動,這一塊用DL+RL也能很自然的得到一定的結果。

Sutton, Richard S., and Andrew G. Barto. Reinforcement learning: An introduction. Vol. 1. No. 1. Cambridge: MIT press, 1998.

Mnih, Volodymyr, et al. "Playing atari with deep reinforcement learning." arXiv preprint arXiv:1312.5602 (2013).

Mnih, Volodymyr, et al. "Human-level control through deep reinforcement learning." Nature 518.7540 (2015): 529-533.

Mnih, Volodymyr, et al. "Asynchronous methods for deep reinforcement learning." International Conference on Machine Learning. 2016.

Schulman, John, et al. "Trust region policy optimization." Proceedings of the 32nd International Conference on Machine Learning (ICML-15). 2015 

繼續閱讀