論文|組推薦系統及其應用研究

這篇文章主要是普及一下羣組推薦系統,衆所周知,推薦系統已經應用十分廣泛,羣組推薦的應用不僅老用戶上發揮了極大的作用,在新用戶的冷啓動上也發揮了很大的作用。

由於後續會有一篇文章介紹結合深度學習的羣組推薦,所以這裏先借用該篇論文,借花獻佛,介紹一下羣組推薦系統和其應用。

本文中所涉及的內容算是比較老了,但在不同公司或者推薦系統的不同階段仍然有應用,其中羣組推薦的思想更是經久不衰,所以本文比較適合以“溫習知識”或“瞭解羣組推薦”,至於羣組推薦的更加先進和業界比較常用的做法可以持續關注公衆號,後續會進行介紹。

傳統推薦系統

推薦問題通常被形式化描述爲一個定義在用戶空間和項目空間上的效用函數,推薦系統的目的是把特定的項目推薦給用戶,使效用函數最大化。

目前推薦系統的分類沒有統一的標準,從不同的角度可以進行不同的劃分。

  • 從推薦模型的角度:
    • 協同過濾推薦
    • 基於內容的推薦
    • 基於知識的推薦
    • 組合推薦
    • 基於人口統計學的土建
    • 基於效用的推薦
    • 基於關聯規則的推薦
    • 基於網絡結構的推薦
  • 從推薦系統的數據源和應用環境的角度:
    • 上下文感知推薦
    • 社會化推薦
    • 移動推薦
  • 從推薦系統技術的角度:
    • 基於規則的推薦
    • 基於機器學習的推薦
    • 基於深度學習的推薦
    • 基於強化學習的推薦
    • 基於知識圖譜的推薦

羣組推薦系統的形式化定義

許多日常活動中是由多個用戶以羣組的形式參與的,因此推薦系統需要考慮羣組中每個用戶的偏好來進行推薦,這種推薦系統稱爲羣組推薦系統(Group Recommend System),它將推薦對象由單個用戶擴展爲一個羣組,這爲推薦系統帶來了一些挑戰。

羣組成員的興趣偏好可能很相似,也可能存在較大差異,如何獲取羣組成員的共同偏好,來緩解羣組成員之間的偏好衝突,使推薦的結果儘可能滿足所有羣組成員的需求,則是羣組推薦研究需要解決的關鍵問題。

羣組推薦目前還沒有統一的形式化定義,有文獻基於共識分數的概念給出形式化定義:

1、羣組預測評分

羣組GG對項目ii的預測評分grouprate(G,i)grouprate(G,i)由羣組中每個用戶預測評分rate(u,i)rate(u,i)融合得到,使用的偏好融合策略不同,羣組計算的預測方法也不同,其中最常用的則是均值策略。
grouprate(G,i)=1GuGrate(u,i) grouprate(G,i) = \frac{1}{|G|} \sum_{u \in G} rate(u,i)

2、羣組分歧度

羣組對項目度分歧度dis(G,i)dis(G,i)表示羣組GG中的用戶對項目ii預測評分的差異程度。羣組分歧度也有多種計算方法,這裏給出一種最常用的方法:利用分歧方差(disagreeement variabce) 計算羣組分歧度。

dis(G,i)=1GuG(rate(u,i)mean(G,i))2 dis(G,i) = \frac{1}{|G|} \sum_{u \in G} ( rate(u,i) -mean(G,i) )^2

其中 mean(G,i)mean(G,i)是羣組GG中的用戶對項目ii預測評分的均值。

3、共識函數

共識函數F(G,i)F(G,i)利用羣組預測評分和組分歧計算得出羣組GG對項目ii的共識分數。

F(G,i)=w1grouprate(G,i)+w2(1dis(G,i)) F(G,i) = w_1 * grouprate(G,i) + w_2 * (1- dis(G,i))

其中:

  • w1w_1 表示羣組預測分在共識函數中的權重
  • w2w_2 表示羣組分歧度在共識函數中的權重

組推薦的目標是對於給定的羣組GG和項目集合II,找到特定的項目ii使共識函數最大化。即羣組預測評分最高,羣組分歧度越低,就越能滿足所有羣組成員的偏好。

4、Top-k 組推薦

羣組推薦將前 kk個共識分數最高的項目推薦給羣組,即Top-k推薦,推薦列表中的項目ii按照共識分數降序排序。

從上述的形式化定義看出,羣組推薦系統首先通過傳統的推薦算法爲每個用戶生成預測評分,然後根據用戶預測評分得到羣組預測評分。然而這並不是所有羣組推薦系統通用的方法。此外,該形式化定義與傳統推薦系統的形式化定義並不統一不利於組推薦問題的描述與求解。因此,羣組推薦系統的形式化定義仍是一個開放問題。

雖然上述的羣組推薦的形式化定義不通用,但是在具體的應用場景可以結合自己的羣組預測評分羣組分歧度進行使用。

羣組推薦與傳統推薦的異同

下表展示了羣組推薦系統與傳統推薦系統的比較

- 傳統推薦系統 羣組推薦系統
推薦目標 單個用戶 羣組
用戶偏好獲取 不需要偏好共享 需要偏好共享
偏好融合 不需要 需要
推薦結果展示 獨立方式 共享方式
支持用戶交互 不需要 需要

當然羣組推薦也和傳統的推薦系統存在一些相同之處,比如:

  • 常見的協同、基於內容、組合推薦等也會用在羣組推薦中
  • 羣組推薦也可以作爲一路召回爲單個用戶推薦
  • 羣組推薦可以幫助解決“用戶冷啓動”問題

羣組推薦系統研究框架

羣組推薦的生命週期分爲4個階段:

  • 收集羣組成員數據
  • 獲取羣組成員偏好信息
  • 生成羣組推薦
  • 推薦結果的評價和反饋

下面展示的是從面向過程角度提出的4層羣組推薦系統研究框架:

4層羣組推薦系統研究框架

底層的數據源包括:

  • 羣組成員行爲歷史
  • 羣組成員瀏覽記錄
  • 羣組用戶-項目評分
  • 羣組成員人口統計學特徵
  • 項目特徵
  • 上下文信息

數據預處理層則是通過分析用戶和項目的源數據信息構建用戶偏好模型。與傳統推薦系統相比,羣組推薦系統的用戶偏好過程更加關注用戶的負向偏好(因爲,負向偏好數據更加容易獲取,且在構建羣組推薦候選池的時候可以過濾掉負向物品)和羣組成員偏好的共享。

推薦生成層則是將羣組成員偏好映射到羣組偏好,通過一定的融合策略和推薦融合方法生成羣組推薦過程。

羣組推薦效果評價層則是採用一些評價方法對羣組推薦進行評價,常見的:

  • 用戶滿意度
  • 準確度
  • 覆蓋率
  • 多樣性
  • 精細度

羣組推薦的關鍵技術

用戶偏好獲取

用戶行爲包括:

  • 顯式反饋:能明確表示用戶對內容喜好等級的數據,比如評分,打星等
  • 隱式反饋:用戶與物品之間產生的交互行爲,沒有明確的表示喜好等級

羣組推薦的羣組發現

目前羣組發現方法主要是根據用戶的偏好和人口統計學信息等特徵對用戶進行聚類(當然這已經不是目前的主流方法了,能對用戶聚類的方式有很多,比如用戶的偏好、人口統計學、使用設備、各種Embedding向量等)。

進行聚類的算法主要有:

  • 層次化聚類
  • 劃分式聚類
    • KMeans聚類
    • 二分KMeans聚類
  • 基於滑窗的聚類
    • Mean-Shift 聚類
  • 基於密度的聚類
    • DBSCAN
  • 基於網格的聚類
  • 新發展的一些方法
    • 基於約束(eg:EM聚類)
    • 基於模糊
    • 基於粒度
    • 量子聚類
    • 核聚類
    • 譜聚類

羣組推薦的偏好融合算法

偏好融合策略

基本融合策略

羣組推薦中常用的融合策略如下:

羣組推薦中常用的融合策略

加權模型
在進行偏好融合時,應當考慮到不同的羣組成員對羣組偏好的不同影響。加權模型根據羣組成員的特徵、角色、影響力等因素,爲每個羣組成員分配不同的權重,這類加權模型可分爲:

  • 靜態模型:根據羣組成員的年齡、性別等人口統計學信息對用戶進行分類 然後對不同類別賦予不同的權重,比如:一個針對00後的社區對青年和老年人分配較小的權重
  • 交互模型:根據用戶與內容之間的交互行爲來分配權重。比如:用戶的行爲越多,說明用戶越活躍,則權重越大

研究表明:交互模型的推薦效果通常比靜態模型要好。

一種常見的交互模型加權方法爲:根據用戶uxu_x的角色role(ux)role(u_x)和活躍度act(ux)act(u_x)來計算用戶在羣組faf_a中所佔的權重可以用以下兩種方式計算:

  • The role-based model
    w(ux,fa)=yUact(uy)role(uy)=role(ux)yUact(uy) w(u_x, f_a) = \frac{ \sum_{y \in U} act(u_y)|role(u_y)=role(u_x) }{\sum_{y \in U} act(u_y)}

role(uy)=role(ux)role(u_y)=role(u_x)表示和用戶uxu_x角色相同的用戶

  • The family-log model
    w(ux,fa)=act(ux)yUact(uy) w(u_x, f_a) = \frac{ act(u_x) }{\sum_{y \in U} act(u_y)}

上述公式來自論文:Group-Based Recipe Recommendations: Analysis of Data
Aggregation Strategies(https://dl.acm.org/doi/10.1145/1864708.1864732)

多種策略融合

在傳統的推薦系統中,組合推薦方法通過組合多種推薦算法能夠提高推薦效果,同樣羣組推薦系統也可以通過多種融合策略來應對單一融合策略的不足。同樣是上文中提到的一篇論文,介紹的一種組合策略,公式如下:
w(ux,fa)={1,rat(ux,itemi)(r1,r2)(ux,fa),other w'(u_x, f_a) = \left\{\begin{matrix} 1 & ,rat(u_x, item_i) \notin (r_1, r_2) \\ (u_x, f_a) & , other \end{matrix}\right.
其中:

  • r1r_1表示最小痛苦策略的最小閾值
  • r2r_2表示最開心策略的最大閾值
  • rat(ux,itemi)(r1,r2)rat(u_x, item_i) \notin (r_1, r_2)表示 uxu_xitemiitem_i的評分不在(r1,r2)(r_1, r_2)時權重爲1,其他爲w(ux,fa)w(u_x, f_a)

偏好融合方法

偏好融合的方法分爲:

  • 推薦結果融合
  • 評分融合
  • 羣組偏好建模

其中推薦結果融合和評分融合都是先爲每個羣組成員生成推薦結果,再匯聚到羣組上,羣組偏好建模則是先把羣組成員的偏好模型融合生成羣組的偏好模型,再根據羣組偏好模型生成羣組推薦。

因此根據偏好融合的時機,可以將偏好融合方法分爲:

  • 模型融合
  • 推薦融合

其區別如下:
偏好融合方法

模型融合

模型融合的形式化表示如下:
rat(ga,itemi)=uxgaw(ux,ga)rat(ux,itemi)uxgaw(ux,ga)pred(ga,itemn)=gbGsim(ga,gb)rat(gb,itemn)gbGsim(ga,gb) rat(g_a, item_i) = \frac{ \sum_{u_x \in g_a} w(u_x, g_a) rat(u_x, item_i) }{ \sum_{u_x \in g_a} w(u_x, g_a) } \\ pred(g_a, item_n) = \frac{ \sum_{g_b \in G} sim(g_a, g_b)rat(g_b, item_n) }{ \sum_{g_b \in G} sim(g_a, g_b) }

其中 :

  • rat(ga,itemi)rat(g_a, item_i)表示羣組gag_a對項目itemiitem_i的評分
  • rat(ux,itemi)rat(u_x, item_i)表示用戶uxu_x對項目itemiitem_i的評分
  • w(ux,ga)w(u_x, g_a)表示用戶uxu_x在羣組gag_a中的權重
  • pred(ga,itemn)pred(g_a, item_n) 表示羣組gag_a對未評分項目itemnitem_n的預測評分
  • sim(ga,gb)sim(g_a, g_b)表示羣組gag_agbg_b的偏好相似度

當然這裏只是舉例說明模型融合的策略,也有很多其他方式的形式化表示。

推薦融合

推薦融合的形式化表示爲:

pred(ga,itemi)=uxgaw(ux,ga)pred(ux,itemi)uxgaw(ux,ga) pred(g_a, item_i) = \frac{ \sum_{u_x \in g_a} w(u_x, g_a) pred(u_x, item_i) }{ \sum_{u_x \in g_a} w(u_x, g_a) }

模型融合和推薦融合的形式化表示公式來自論文:Group-Based Recipe Recommendations: Analysis of Data
Aggregation Strategies(https://dl.acm.org/doi/10.1145/1864708.1864732)

偏好融合策略比較

下表給出了推薦準確率較高的幾種偏好融合策略、偏好融合方法、推薦算法組合

偏好融合策略 偏好融合方法 推薦算法
最開心策略 模型融合 基於內容的推薦
最小痛苦策略 推薦融合 基於內容的推薦
痛苦避免均值策略 模型融合 基於用戶的協同過濾
均值策略 推薦融合 組合推薦

羣組推薦的評價

  • 準確度:RMSE、MAP、F1、E(k)、Recall、Precision、AUC、NDCG
  • 用戶滿意度
  • 多樣性
  • 覆蓋率
  • 驚喜度

羣組推薦研究的難點和發展方向

羣組推薦的偏好融合

包括偏好融合策略和偏好融合方法。目前的融合策略主要關注的是公平性,但是這些預定義的策略和數據本身無關。

基於模型的羣組推薦方法

現有的羣組推薦方法也可以分爲:

  • 基於內存
  • 基於模型

基於偏好融合的羣組推薦算法則屬於基於內存的方式,主要缺陷是使用啓發式的融合策略,忽略了羣組成員之間的相互影響。

基於模型的方法通過構建一個生成模型,對羣組選擇項目的生成過程進行建模,從而能夠通過考慮羣組成員之間的交互來進行更精準的推薦。

羣組推薦中的不確定性

大部分推薦系統假設獲取的用戶偏好是準確的,但用戶偏好本身存在不確定性,特別是通過隱式反饋獲取的數據本身就具有很大的不確定性。

羣組推薦的解釋和可視化

對羣組推薦的結果進行合理的解釋並以合適的方式呈現給羣組能夠提高透明度,使用戶能夠更好的理解推薦機制的其他成員的偏好,從而更加容易接受推薦系統。

羣組推薦的效用評價

由於羣組類型、規模以及羣組推薦生成方式的多樣性使得羣組推薦的評價比傳統推薦系統的評價更加困難。

此外,目前推薦系統的評價集中在推薦準確度方面,而對推薦的覆蓋率、多樣性、驚喜度等方面關注較少。

上下文感知的羣組推薦

除了用戶和內容之間的交互信息,如何將用戶的地理位置、時間、環境、情緒等因素應用到羣組推薦中也是一大難點。

移動羣組推薦

移動羣組推薦關注的是在移動設備上,用戶的需求變得更加不可,如何實時有效的捕獲用戶的興趣也是非常值得關注的地方。

羣組推薦的用戶隱私和安全

偏好共享和提供用戶交互有利於羣組推薦系統性能的提升,但同時也帶來了用戶隱私問題。

雖然在傳統的推薦系統中,用戶隱私和安全也是值得關注的,但是和羣組推薦相比,羣組推薦則更加複雜。

羣組推薦中存在傳統推薦問題

比如冷啓動等。

OK,普及完畢!


【技術服務】,詳情點擊查看: https://mp.weixin.qq.com/s/PtX9ukKRBmazAWARprGIAg

掃一掃 關注微信公衆號!號主 專注於搜索和推薦系統,嘗試使用算法去更好的服務於用戶,包括但不侷限於機器學習,深度學習,強化學習,自然語言理解,知識圖譜,還不定時分享技術,資料,思考等文章!


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