在過去我們介紹的推薦方法中,特別是電商領域的推薦,其考慮的只是用戶的**宏觀交互行為(macro interaction),如用戶購買了xx物品,點擊了xx物品。今天看到一篇不錯的文章,將用戶的微觀行為如瀏覽商品的時間、對商品詳情和評論的閱讀等、渠道等等微觀行為(micro behaviors)考慮進來,并取得了不錯的實驗效果。咱們來一探究竟。
論文名稱:《Micro Behaviors: A New Perspective in E-commerce Recommender Systems》
論文地址:http://184pc128.csie.ntnu.edu.tw/presentation/18-03-13/Micro%20Behaviors%20A%20New%20Perspective%20in%20Ecommerce%20Recommender%20Systems.pdf
1、問題定義
我們首先來看一下,什么是宏觀交互行為和微觀行為:

上面的圖中,宏觀交互行為就是我們的一個點擊序列,如iphone7->iphone 6->iphone 7 case -> samsungGalaxy。但是微觀行為多種多樣,比如我們搜索了iphone,看到了iphone7,點擊進入商品詳情頁后又看了商品的描述和用戶的評價,并將其加入購物車等等。同時,每種行為都有一定的停留時間。
因此,我們有如下的符號定義:
P={p1,p2,..,pN}代表N個不同的商品。
A={a1,a2,...,aM}代表M種不同的行為。
D={d1,d2,...,dK}表示將停留時間分為K檔。
因此,用戶的每一次行為可以表示為(pi,aj,dk),即用戶在在商品pi上有過aj行為,并花費了dk檔的時間。
我們的推薦問題就變?yōu)榱?,基于用戶的行為序?pi,aj,dk),來預測用戶下一個可能感興趣的物品。
2、數(shù)據分析
論文收集的信息包含以下四個方面:
Click Source:用戶進入商品頁的渠道,如主頁、搜索頁、購物車頁、促銷頁等等。不同的渠道表明了用戶不同的偏好,如用戶從主頁進入到商品頁,用戶也許只是想隨便看看,但如果用戶從搜索頁進入到商品頁,那么在一定程度上說明用戶是有明確需求的。
渠道包含下面的五種,從上倒下分別是主頁、類別頁、促銷頁、購物車、搜索結果列表:

Browsing Modules:這里是說在商品頁,用戶瀏覽的主要模塊,比如商品詳情介紹、商品評論、規(guī)格。
模塊這里分了三種,如下圖,分別為商品評論、商品規(guī)格屬性、一直瀏覽到最底部(即所有的都瀏覽了):

Cart and Order:加購和下單行為。這里特別提到的一點是,產品屬性不同,代表的復購可能性不同,如用戶剛買了一些小吃,那么他極有可能在短時間內再買一次,但是如果剛買了一個電視機,那么他基本不會在短時間內再買一次。

停留時間:停留時間這里劃分了5檔,如下圖:

好了,在介紹了基礎的數(shù)據之后,作者進行了一定的基礎分析,并用excel圖表進行了展示。

這里的轉化率計算如下:

可以看到,從Click Source來看,通過促銷頁和購物車頁進入商品頁,隨后完成下單轉化的比例最高。從Browsing Modules來看,如果用戶閱讀了評論、規(guī)格活著滑倒了底部的話,其轉化率也會高于只瀏覽商品詳情(這里可以簡單通過對比Click Source和Browsing Modules的轉化率,Click Source的平均轉化率相當于所有Browsing Modules + 只瀏覽商品詳情的平均轉化率),而從購物車頁面直接下單,轉化率最高。
再來看停留時間的分析:

上圖表明,在一定的范圍內,轉化率隨著停留時間增加而增加,當停留時間超過了一定的范圍,再提升停留時間,轉化率反而開始下降。

上圖表明,用戶通過搜索結果頁進入到商品詳情頁后,停留時間更長,如果通過類別頁進入商品頁,停留時間較短。

上圖表明,停留時間越長,用戶閱讀商品評論和規(guī)格的概率越大,但最終滑倒底部的概率還是相對偏低的。

上圖展示了商品頁入口和瀏覽模塊之間的關系,如果用戶從搜索列表頁進入到商品頁的話,他有更高的概率閱讀商品的評論和規(guī)格。
通過上面的分析,我們發(fā)現(xiàn)了兩個主要的結論:
1)微觀行為是相互關聯(lián)的
2)不同的微觀行為,對于轉化的影響是不同的。
接下來,我們就通過模型來建模具體的微觀行為。
3、推薦模型
我們的模型如下圖所示:

共分為5層,輸入層,embedding層,RNN層,attention層,輸出層。
輸入層
輸入層輸入的是用戶的行為序列,Su={x1,x2,...,xn},序列中每一項式商品ID、行為ID、停留時長ID的三元組,如xt=(pv,am,dk)。
Embedding 層
商品ID、行為ID、停留時長ID在Embedding層分別轉換為對應的embedding,然后進行橫向拼接。

RNN層
隨后的RNN層,我們可以選擇LSTM或者GRU,實際中LSTM和GRU效果差不多,但GRU相對于LSTM更加簡單,因此選擇了GRU。
attention層
attention對行為序列中的每一個時刻的RNN層的輸出進行加權,計算公式如下:

輸出層
模型的輸出是attention層加權后的向量,采用的損失函數(shù)是交叉熵損失:
