精讀 An LSTM-Based Dynamic Customer Model for Fashion Recommendation 總結

研究成果

  • 根據商品信息生成了對應的低維嵌入(Fashion DNA);
  • 根據顧客的交易時間序列生成了對應的低維嵌入(style vector);
  • 避免了冷啓動問題。

1. 前言

因爲目前商品推薦存在很多的影響因素,歸類爲如下兩大類:
在這裏插入圖片描述
結論: 基於時尚商品的推薦任務存在很多難點。

2. 研究內容

2.1 數據描述

數據描述

  1. 數據獲取來源:Zalando’s online fashion store
  2. 一百萬件商品的信息;
  3. 一百萬條顧客訂單信息(不包含退貨情況);
商品信息 訂單信息
圖片信息:商品對應的縮略圖(108×156) 唯一的匿名ID號
種類信息:(品牌、顏色、性別)卷積形成7k維的獨熱編碼 所購買的商品
數字信息:廠家設置的零售價取對數 交易時間(以分鐘爲單位)
50種以上纖維組織成分對應的百分比(僅服裝存在)

至於零售價取對數的原因1

在這裏插入圖片描述

1. 能夠縮小數據的絕對數值,容易計算;
2. 取對數後,可以將乘法計算轉換爲加法計算。
3. 壓縮了變量的尺度,消弱了模型的共線性、異方差性。
4. 使得數據趨於平穩,呈線性形態。

2.2 Fashion DNA的生成(商品表示)

  1. 通過將RGB圖片數據輸入到一個已訓練好的殘差神經網絡;
  2. 將1中輸出結果與種類信息、數字信息進行連接;
  3. 將2中結果輸入到一個全連接層進行進一步轉換。

Fashion DNA生成流程圖

2.3 static Neuron network更新流程

  1. 把常客數據存放到一個二元矩陣Π當中;
  2. 每一個元素Π(v,k)∈{0,1},表示顧客k是否購買商品v;
  3. 然後對網絡模型進行訓練,使每件商品在這些客戶上的平均交叉熵損失最小化。

 注:Sk表示顧客的風格喜好(style vector)

這裏還是簡單的說一下下圖的含義:

1. 首先fDNA生成上一張圖已經詳細介紹過了,什麼是Sk呢?
Sk在本文當中表示style vector,實際上可以理解爲顧客k對商品的風格喜好情況,將其與Fashion DNA進行點積操作,將計算結果通過sigmoid函數映射到[0, 1]區間內,從而得到Pvk.
Pvk給我最直觀的理解就是:顧客k購買物品v的概率,且Pvk∈[0, 1]
神經網絡更新流程

2. 其次,矩陣Π表示什麼?

如下表所示:

  • 行:k1、k2…表示一個個顧客;
  • 列:v1、v2…表示一件件商品;
  • 行列的交點屬於{0, 1}, 例如:第一行第一列爲1,表示顧客k1購買過商品v1;而第二行第一列爲0,表示顧客k2沒有購買過商品v1;
    2元購買矩陣

通過比較計算出的Pvk和矩陣的交叉熵損失,然後通過反向傳播進行參數更新,逐步學習出顧客k對應的style vector

根據如下公式進行計算得到Pvk
在這裏插入圖片描述

  • Sk表示顧客的風格喜好
  • fv表示Fashion DNA
  • βk表示用戶的購買意向
  • P vk表示顧客k的購買v商品的概率(可用來推薦)

2.4 static model小結

優點: 新添加商品的Fashion DNA只需要將該商品的圖片、種類、數字等信息通過一層網絡層而得到。
通過協同過濾算法2,完成新商品的推薦。
缺點: 缺少交易時間信息,從而默認顧客的風格喜好爲靜態不變的。

2.5 基於LSTM 的動態模型

由於這種生成Fashion DNA的形式能夠很好地解決冷啓動問題。因此在動態模型當中繼續沿用這種Fashion DNA。
我們還希望保存顧客-商品耦合性Fashion DNA和style vector的點積”之間的關係;
因此,本文將style vector 隨時間t進行改變而提出了動態模型,並稱style vector 爲dk(t)

與靜態模型不同:靜態模型採用商品作爲輸入,而LSTM網絡模型是基於用戶作爲輸入的。

對於顧客k以及購買次數i而言:
LSTM網絡模型的輸入組成:
(1)i-1次交易時的Fashion DNA f_(k,i−1);
(2)i-1次交易時的時間t_(k,i−1);
(3)i次交易時的時間t_(k,i);
(4)i-1次交易時的隱藏態單元m_(k,i−1)
LSTM網絡模型的輸出:
(1)通過一個全連接層輸出這一刻的style vector ( d_(k,i)  )

注意:顧客第1次購買時,不存在歷史記錄;
將f_(k,0)  、 t_(k,0)  、m_(k,0)使用0進行填充。
因此, d_(k,1) 僅取決於t_(k,1)

如下圖爲基於LSTM單元的動態模型
在這裏插入圖片描述在這裏插入圖片描述

2.6 損失函數

使用3種不同的損失函數進行測試:
(1) 交叉熵損失函數 Lσ.
在這裏插入圖片描述
(2) softmax 函數 Lsmax
在這裏插入圖片描述
(3) sigmoid-rank loss Lrank
在這裏插入圖片描述
注: 在未被購買的商品中挑出n(n>0)個負樣本這些商品對應的Fashion DNA爲:
在這裏插入圖片描述

2.7 購買意願(intent-of-purchase)

對每一位顧客k,定義一個新變量:intent-of-purchase( 購買意願 ),用符號ipv,k(t)表示、
含義: 表示顧客k在t時刻對店內所有商品的購買意願情況。

計算公式:
在這裏插入圖片描述
注: dk(t)表示t時刻顧客k對應的style vector;

3. 模型比較

3.1 Empirical baseline

Zalando的各種時尚商品存在很大的差異性,只有很少的商品存在大量的訂單交易。
可以根據這種傾斜的分佈實現一個簡單的、非個性化的基線推薦功能;
根據商品的近期受歡迎程度預測該物品在未來的情況。

做法:
(1)收集評估區間前八天(2015年6月23日-30日)的商品銷量,
(2)如果7月1日之後該商品仍然出售,則通過其銷量統計來定義該商品的人氣分。
(3)對於那些在評估期間重新進入庫存的商品,將所有商品的平均銷售數量作爲初步得分。
(4)然後,將商品按受歡迎程度降序排列。

注意: 另外兩個模型評估的數據是收集了(2015年7月1日-8日)共8天的銷售數據進行訓練得到排名

3.2 Static Fashion DNA model

做法:
(1)將 fν · Sk 得到的點積作爲顧客 k 在 t 時刻對店內所有商品親和性的一種評價度量;
(2)將對各個商品的親和度對應的值進行降序排列,得出一個靜態的商品排名。
在這裏插入圖片描述

3.3 Dynamic recommender system

做法:
(1)按照附2公式計算出的購買意願 ipv,k(t)對店內商品進行排名;
在這裏插入圖片描述

3.4 實驗結果

下圖爲三種不同模型的ROC曲線,其中:

  • 動態模型-藍色曲線;
  • 靜態模型-綠色曲線;
  • 經驗模型-紅色曲線。

ROC曲線圖
表1

(1)根據表1中的AUC可知動態模型在整體效果上優於靜態模型;
(2)與靜態模型相比,動態模型參數更少,模型複雜度更低;
(3)動態模型和靜態模型整體上都優於baseline;
(4)由於新商品的添加,冷啓動問題的出現,使得三種方法對應的AUC分別變爲了:
        baseline: 64.4%
        static:     83.3%
        dynamic:87.7%
相比右表,baseline準確性出現了急劇下滑
而採取Fashion DNA方式的static與dynamic模型均僅出現了很小的下滑。

  1. 在統計學中爲什麼要對變量取對數? ↩︎

  2. 冷啓動問題——協同過濾(推薦系統) ↩︎

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章