[論文筆記]A Survey on Session-based Recommender Systems

原始論文地址:https://arxiv.org/pdf/1902.04864.pdf

在推薦模型中,基於內容的推薦算法和基於協同過濾的推薦算法是最爲典型的兩類,在學術和工業都有着廣泛的研究和應用。然而這些推薦模型的關注點往往都在用戶的長期靜態偏好上,經常忽略用戶近期與項目的交互模式,從而忽略了用戶隨時間發生的興趣漂移。爲了跟蹤用戶興趣偏好漂移,有必要分析用戶的行爲序列(將用戶的一系列交互稱爲事務,並作爲推薦的基本單位),而基於會話的推薦系統(Session-based recommender systems , SBRS)可以最大限度地減少現有推薦算法由於忽略或分解會話結構而造成的信息損失。本文中的會話主要考慮的是一段時間內用戶和項目的相互行爲。下表是SBRS和其他推薦算法的區別

SBRS的相關工作分爲兩個階段:從90年代末到2010年代初的無模型階段,從2010年代初到現在的基於模型階段。第一個階段是由數據挖掘技術的發展推動的,包括模式挖掘、關聯規則發現和序列挖掘。隨後,它被基於模式/規則和基於順序的推薦研究所主導。根據文獻綜述,我們發現2000年代中期是這一階段的高峯期,在這一時期發表了很多相關的著作。第二階段是由統計和機器學習技術的發展推動的,特別是一些與時間序列相關的模型,如馬爾科夫鏈模型、遞歸神經網絡模型等。由於近年來深度學習技術的快速發展,基於模型的RS在2017年達到了頂峯。在過去的兩年裏,許多研究人員衝進這個領域,開發出各種各樣的神經模型,用於下一個項目或下一個basket的推薦。

首先要明確一些定義:

  • Session:一個session指的是一個event或一段時間中交互的項目集合
  • Session-based recommender system:通過對複雜交互關係的建模利用給出部分已知session信息來預測未來session中的未知信息,分爲next-item recommendations 和next-session recommendations
  • Intra-session context:已知項目,如果當前session爲sns_n,那麼Intra-session contextCIa={iisn,iit}C^{Ia}=\{i|i\in s_n,i\neq i_t\}
  • Inter-session context:當前session之前發生的session集合,如果當前session爲sns_n,那麼Inter-session contextCIe={sn1,sn1,...,scIe}C^{Ie}=\{s_{n-1},s_{n-1},...,s_{|c^{Ie}|}\}
  • Session-based recommendation task :已知session內容C,SBRS的任務就是給C找到一個映射t:t<f(C)t:t<-f(C)
  • Next-item recommendation:已知當前session的Intra-session context,預測下一個項目
  • next-session recommendations :已知當前session的Inter-session context,預測下一個session的內容(一系列項目)

意義、複雜性和關鍵挑戰

不考慮會話的推薦系統一般有以下問題:(a)很容易產生重複的建議,即建議與現有項目類似或相同的項目;(b)用戶的購物行爲模式消失,因此很難產生符合用戶特定偏好的個性化推薦;©用戶偏好的改變消失了,因此不可能捕捉到用戶目前的偏好,以便及時提出建議;用戶首選項通常是動態的,而不是靜態的,並且可能因會話的不同而不同;(d)獲取可靠建議的本地和短期用戶偏好很難。

在典型的會話數據集中,從特徵值層到域層存在五層結構,如下圖所示:

在這裏插入圖片描述

item是關鍵部分也是最重要的部分,這是由於item是數據集中的最小單位,而且推薦任務最終也是推薦item

在這裏插入圖片描述

  • 不同level的異構性:每個層次上具有不同特徵的不同元素,因此不能用相同方式進行處理或以相同的方式建模
  • 每個level之間的耦合:每個層次之間的元素之間的相互作用,例如同一特徵中的不同值之間的相互作用或者不同特徵之間的相互作用,此外,不同item和domain直接也可能存在相互影響。
  • 每個level之間的其他複雜性:item的不平衡以及隱式依賴等
  • 不同level之間的交互:例如特徵和項目之間的交互以及會話和項目之間的交互

從研究角度來看

SBRS主要研究推薦什麼和怎麼去推薦

SBRS的數據來源又可以分爲兩種:basket-like datahistory-like data

  • basket-like data:有清晰明確的session結構,不同session之間的界限很明確
  • history-like data:沒有清晰明確的session結構,不同session之間沒有明確的界限,例如電影數據,間隔較長,所以一般使用滑動窗口來拆分session

按照推薦內容可以分爲:next-itemnetxt-basketnext-event三種

  • next-item:根據intra-session建模,推薦下一個或幾個項目
  • next-basket:根據inter-session建模,推薦下一個session中可能出現的項目
  • next-event:根據intra-session或者inter-session或同時兩種進行建模,預測下一個session中的可能發生的行爲(如看電影還是聽歌)

在這裏插入圖片描述

按照層級的依賴關係可以分爲:item-level依賴,session-level依賴,feature-level依賴,feature Value-level依賴,domain-level依賴

item-level依賴:在session中對下一個項目或事件的依賴項建模,真實數據可以分爲有序數據和無序數據,基於會話的推薦一般假設session中的item存在順序依賴,另一些對數據順序沒有假設的方法主要通過關注項目共現的頻率來捕獲項目的隱式依賴,例如分解機等策略。

session-level依賴:session是基於項目上構建的,所以session依賴通常也和項目依賴有關。

feature-level依賴:feature-level依賴又分爲inter-feature依賴和feature-to-item依賴,前者表示某個項目的某項特徵可能影響其他特徵,後者認爲一個session中出現的項目會被他們的特徵影響。feature-level依賴的模型可以極大的環境冷啓動問題。

feature Value-level依賴:feature Value-level依賴建模捕捉intra-feature依賴,同時和基於會話的推薦系統交互,目前還沒有相關工作

domain-level依賴:捕捉不同domain中的依賴來優化所有domain中的推薦,目前還沒有相關工作

在這裏插入圖片描述

按照技術角度分析可以分爲:基於模型的推薦和無模型的推薦

  • 無模型的推薦:主要應用數據挖掘技術,一般不涉及複雜的數學模型

    • 基於規則的方法:先挖掘關聯規則,然後根據規則進行推薦。基於規則的推薦算法主要包含三個階段:頻率挖掘、會話匹配和項目推薦。頻率挖掘的常用方法有Apriori和FP-Tree。
      • Lin等人將關聯規則挖掘引入到協同過濾中。他們將模式挖掘中所需的最小支持約束替換爲對每個最終用戶的規則數量的約束,以避免挖掘與特定最終用戶無關的太多規則,從而提高效率。考慮不同項目重要性不同,將不同關聯規則進行加權。
    • 基於序列模型的方法:先找出一個序列集合,然後根據之前的序列進行後續序列的推薦。基於序列模型的方法考慮了inter-session依賴,同時還考慮了session的順序。
      -在這裏插入圖片描述
    • 另外還可以利用用戶關係的加權模型來進行個性化推薦,每個session根據和目標用戶過去session的關係進行加權並推薦。此外還可以通過同時考慮順序和帖子過濾,即可以考慮用戶的個體又考慮到偏好。
  • 基於模型的推薦:基於項目排序等複雜模型進行推薦

    • 基於markov chain的模型:利用概率對項目的序列間的依賴關係建模,然後根據模型進行推薦。基於馬爾科夫鏈的推薦算法考慮到所有項,避免了信息的損失

      • 基礎馬爾科夫鏈模型:首先從訓練數據中計算商品序列上的轉換概率,然後將用戶的購物序列與經過計算的轉換概率的序列進行匹配,進行預測和推薦,將高概率的候選項被放入推薦列表

      • 嵌入隱馬爾科夫模型:首先將馬爾科夫鏈嵌入到一個歐式空間中,然後根據歐式距離計算轉移概率

        在這裏插入圖片描述

    • 基於分解的模型:首先將項目共現矩陣或項目到項目的過渡矩陣分解爲每個項目的潛在表示向量,然後利用這些潛在表示預測以下項目,注意這個不同於矩陣分解推薦,矩陣分解推薦是分別將用戶和項目的交互矩陣分解爲用戶和項目的潛在因子。

    • 基於神經網絡的模型:利用神經網絡來學習session或item之間的關係和交互,然後進行推薦

      • Shallow Neural models:也被稱爲嵌入模型,通常包含一個淺層網絡,將session中的項目映射到潛在空間中,便於捕獲項目之間的關係。

      • Deep Neural models:又可以分爲基於RNN的模型、基於DNN的模型和基於CNN的模型

        • 基於RNN:基礎的GRU4Rec如下,每個GRU單元表示一個隱藏狀態,由連接的GRU單元序列組成的GRU層構成RNN的一個隱藏層。在這種情況下,l-長度序列可以由一個具有l個GRU單元的隱層來建模。輸入xt是將其項嵌入到會話s中。因此,給定s中過去的項,構建GRU4Rec來對順序項的會話內依賴關係建模,從而預測下一個項的概率分佈

          在這裏插入圖片描述
          可以通過序列預處理和嵌入dropout的方法來增強數據訓練以及減少過擬合。其他擴展包括將(1)變分推理加入到RNN中,以處理稀疏事務數據中的不確定性,同時利用模型在大型真實數據集上的可擴展性;(2)將項目特徵等其他側信息和時間、位置、界面等上下文因素納入基於RNN的模型中,增強推薦;(3)將時間衰減或注意力機制轉化爲基於RNN的模型,區分會話內對項目的依賴關係,從而獲得更精確的建議;(4)傳統模型如因式分解機或鄰域模型,彌補了純RNN模型的不足

        • 基於DNN:這裏的DNN特指多層感知器

          在這裏插入圖片描述

        • 基於CNN:CNN網絡可以讓項目排序更爲靈活,同時加強了局部區域的特徵學習能力,便於更好的捕獲依賴關係,

在這裏插入圖片描述
總得來說,無模型的推薦算法是基於頻率的,較爲簡單且容易實現,適合發現簡單數據集中的項的關係。基於模型的推薦算法較爲複雜,功能也更爲強大,能夠捕獲項目和用戶的隱式信息,同時不會直接顯示的輸出項目等,較大程度的保存了信息。

發佈了87 篇原創文章 · 獲贊 32 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章