【文獻閱讀】 Fair Sequential Group Recommendations

說明

1.原文鏈接

2.本人及翻譯軟件的翻譯水平有限,粗讀即可,精讀請看原文。

標題

1.題目:公平的羣組序列推薦 Fair Sequential Group Recommendations
2.作者:
在這裏插入圖片描述

摘要

  推薦系統已經融入到我們的日常生活中,從音樂到健康推薦,推薦系統提升了用戶的體驗。與此同時,隨着社交媒體的擴張,現在比以往任何時候都更容易形成羣體。因此,團體推薦人變得更受歡迎。通常,我們認爲組和推薦系統之間的交互是一個獨立的過程;組向系統請求一些建議,系統回答,而不考慮過去的交互。更現實的情況是,系統需要訪問歷史日誌,並在向一組用戶推薦項目時將其考慮在內。不僅是系統以前推薦了哪些項目,而且小組成員對這些項目的接受程度也是如此。在這項工作中,我們提出了一種序列羣組推薦器,該推薦器能夠感知羣組過去與系統的交互。我們引入了滿意度的概念,它描述了推薦的項目與組中每個成員的相關性。我們在一種新的聚合方法中利用滿意度,從而使我們的模型對組中的所有成員都是公平的。實驗結果表明,典型的羣組推薦方法不符合我們提出的方法。

關鍵詞

  推薦系統,序列推薦,羣組推薦,公平推薦。

1.介紹

  最近,推薦已經集成到用戶可用的許多服務中。從聽音樂到健康信息,都採用了推薦系統,使用戶體驗更好、更流暢。在大多數情況下,推薦系統向用戶提供與他們最相關的數據項的列表。似乎有兩種主要方法可以生成這樣的項目列表。基於內容的方法[24]和協同過濾方法[29]。在基於內容的情況下,系統向用戶推薦與用戶過去已經消費過的其他項目相似的項目。這需要關於物品的事先知識,而這些知識通常很難獲得。相比之下,協作過濾(CF)需要有關特定項目的用戶首選項的數據。CF推薦系統背後的主要思想是:給定一個目標用戶,系統找到足夠多與他/她相似的用戶,通常稱爲同齡人。然後,檢查對等體已經表現出偏好的項目(主要以評級的形式,但通常使用其他形式的反饋,諸如文本評論和喜歡/不喜歡的二進制格式),並將其用作向目標用戶產生相關項目列表的相關性函數的輸入。協作過濾是一個非常強大的工具,它使推薦系統能夠提供更加準確和專業的推薦[3]。
  隨着社交媒體的擴張,出現了另一種推薦形式,即羣體推薦[1,21,22]。組也可以進行查詢,而不是單個用戶向系統請求推薦。一個團體推薦的標準例子如下:一羣朋友想看電影。每個朋友都有他/她自己的好惡。系統需要適當地平衡它們,並向小組提供與每個成員具有一定程度相關性的項目列表。近年來,對選題過程進行了一些研究。一種方法是通過梳理每個羣成員的數據來創建一個僞用戶,然後應用標準的推薦方法。第二種也是最常用的方法是將推薦方法單獨應用於每個成員,然後將單獨的列表聚合爲組的一個列表。該方法的聚合階段是針對羣體推薦所做的大量研究的對象。
  在聚合階段可以考慮許多不同的標準。其中一個標準是公平[19,30-32]。公平的一個基本定義是推薦與羣體最相關的項目。本能地,產生這樣一個項目的一種方法是計算所有組成員對該項目的偏好得分的平均分數。在這種情況下,小組中的所有成員都被認爲是平等的。然而,這有一個很大的缺點。例如,考慮具有三個用戶的組的以下場景。其中兩個非常相似,而第三個不是。通過使用平均法,丟失了最後一個用戶的意見。另一種方法是使用最小值函數而不是平均值。這樣,具有最小偏好分數的用戶將充當對組中其餘成員的否決權。最不痛苦的方法,正如它所說的,也有一個缺點。它只考慮一個羣體成員的意見,而忽略了其他成員的意見。隨後,在大多數情況下,系統會推薦所有成員都可以接受的項目,但它將是偏好得分較低的項目。需要將平均法的平等性和最小痛苦法的包容性結合起來,這是本文工作的原動力。
  以前的計算推薦的方法有一個隱藏的元素。我們暗示,組每次使用系統的時間都不同於以前的時間,並且系統只有一個狀態,沒有保留歷史日誌。但這不是一個現實的情景。一個用戶,或者在我們的例子中是一組用戶,與系統交互多次。因此,系統應該在每次迭代中推薦不同的項目,同時保留過去交互的知識,以保持輸出的多樣性。也就是說,我們不想總是推薦相同的項目或同一組項目。我們想要一個有內存的系統,並且可以相應地調整它的建議。繼續以集體電影爲例,同一羣朋友每週都會請求電影推薦,平均和最少痛苦方法在系統的所有迭代中都失敗了。在平均的情況下,異常值用戶永遠不會滿意,而在最不痛苦的情況下,系統會推薦與組中任何人都不高度相關的電影。
  在這項工作中,我們解決了這些方法在應用於序列組推薦時產生的不公平問題。一個簡單的工作場景如下:我們有一羣朋友定期見面看電影。我們每次都想爲團隊推薦一部新電影。圖1給出了這樣一個場景的實驗示例。我們將5名成員組成的小組要求系統提供5次不同的建議。系統每次向集團報告10個項目。在圖1-左中,我們使用平均聚合方法形成了組列表,而在圖1-右中,我們使用了最少痛苦的方法。在本例中,我們計算每個成員的滿意度,這是通過測量組列表的項目的相關程度來計算的,而不是每個成員的最佳項目1。在這兩個場景中,用戶4的滿意度得分都非常低(因爲最少痛苦總是0),這意味着他/她幾乎對報告的項目都不感興趣。很明顯,推薦系統對他/她是不公平的,並且這種不公平在整個迭代過程中持續存在。理想情況下,每個新的小組建議都應該考慮到過去發生的事情。不僅是哪些電影已經被推薦,而且小組中的每個成員對推薦的滿意程度也是如此。
在這裏插入圖片描述
  建議的多次迭代的概念允許我們做出猜測。如果用戶對特定一輪推薦不滿意,則他/她要麼對前一輪推薦感到滿意,要麼將在下一輪滿意。在系統的每一次迭代之後,我們引入滿意度的概念來估計每個組成員在推薦中的滿意度。在羣組推薦方法的聚合階段,我們將該滿意度分數作爲對羣組成員的個人偏好分數的加權函數。這樣一來,上一輪不滿意的用戶將在下一輪迭代中擁有更多權重。此外,由於滿意度分數的計算是在每次迭代中動態進行的,因此成員不會持續受到偏見(簡單平均的情況可能就是這種情況)。最後,我們考慮了整個羣體的意見(這是最不痛苦的部分)。
  我們的工作貢獻有以下幾點:

  • 我們引入了序列組推薦的概念。我們認爲,當在典型的羣體推薦方法(如平均法和最小痛苦聚集法)中加入多次迭代維度時,結果並不能保證所有羣體成員的用戶滿意度。
  • 我們提出了滿意度的概念。組中的每個成員對在每次迭代中推薦的項目都有一定程度的滿意度,以及通過組的所有先前迭代獲得的總體滿意度。
  • 我們提出了一種序列羣推薦模型,該模型考慮了羣與系統的先前交互,並改變了羣成員對羣推薦列表形成的影響。
  • 實驗表明,我們提出的模型優於標準的分組推薦方法。

  論文的其餘部分結構如下:第二部分介紹了相關工作。第三節介紹了推薦系統的基本概念,第四節介紹了我們的序列組推薦方法,旨在確保所有小組成員都能得到公平的結果。第5節介紹了我們的實驗設置,第6節介紹了我們的評估結果。最後,第七部分總結了本文的研究成果和下一步工作的方向。

2 相關工作

  推薦系統旨在通過利用已有的用戶信息-簡檔、偏好等,向用戶提供與他/她相關的項目。用於產生推薦的最常用的方法之一是協作過濾方法。經過十多年的研究,這個問題有很多不同的解決方案[3]。它們大多可以分爲兩大類:基於內存的算法和基於模型的算法。基於存儲器的算法[15,28]採用包含每個用戶對項目給予的評級的用戶評級矩陣。他們通過應用相似度函數,利用該矩陣來找到與目標用戶相似的用戶。最後的預測是通過檢查類似用戶的評級做出的,或者他們通常稱爲鄰居或同行。基於模型的算法[7],首先構建一個模型來表示用戶的行爲,並因此預測他們的評級。在這項工作中,我們利用基於記憶的協同過濾。

2.1 羣組推薦

  羣體推薦是另一個具有重要研究背景的領域。分組推薦主要有兩種方法:虛擬用戶和推薦聚合[13]。在前一種方法中,我們將每個組成員的個人資料和評分組合成一個虛擬用戶,從而可以應用標準的推薦方法。在後一種方法中,我們應用一個標準推薦算法分別向每個羣成員推薦,並將他們的列表聚合爲一個。在這項工作中,我們遵循後一種方法,因爲它更靈活[23],並在有效性方面提供了改進的機會。
  在此方法的聚合階段,可以考慮許多標準。[36]提出了一個羣體推薦模型,該模型考慮了每個成員對羣體最終選擇的影響。他們說,如果一個成員對推薦的項目瞭解得越多,他/她對小組的影響力就會越大。在我們的工作中,我們提出,如果有一個羣體成員比其他成員更不滿意,那麼該成員在羣體決策中就會有更大的影響力。[4]基於注意力網絡和神經協同過濾(NCF)的最新發展,從數據中學習聚合策略,同時基於羣體成員的滿意度動態改變我們提出的聚合方法。雖然我們關注的是相對較小的一羣朋友(在我們的實驗中是5個),[25]提供了一種新的方法來爲一大羣人提供推薦,方法是將大羣人分成不同的興趣子組。對於每個子組,他們找到媒體-用戶對的潛在候選集合,並最終聚集針對每個對的CF產生的推薦列表。[16]提出了一個兩階段的羣體推薦器,與我們的工作類似,試圖滿足所有羣體成員的需求。在第一階段,他們試圖滿足整個團隊,而在第二階段,他們試圖通過過濾與每個成員無關的項目來滿足個別成員的需求。我們將這兩個階段合併到我們提出的聚合方法中。

2.2 羣組推薦中的公平性

  在小組推薦中有許多不同的方法來實現公平。一種方法是根據博弈和投票理論計算公平性。[5]利用非合作博弈論解決了異構隨機組成員之間的利益衝突[34]。[20]假設推薦系統具有關於用戶評分分佈的概率知識,並且利用投票理論向組推薦一個“獲勝”項目。最後,[9]提出了一種新的羣推薦方法,允許羣成員對以下選項進行推薦這羣人中的其他人。這允許每個用戶獲得類似於其他組成員提出的建議的新建議,並傳達他們自己的反建議背後的基本原理。
  在[1]中提出了另一種在羣體推薦中實現公平的方法。它引入了共識函數,與我們的工作類似,它考慮了羣體的意見,因爲它是由平均法給出的,並且考慮了用戶之間的分歧。他們將用戶的不一致定義爲組成員之間的項目的成對相關性差異的平均值,或者計算組成員之間的項目的相關性分數的數學方差的方差不一致函數。[30]提出了公平的兩個定義:公平、相稱和無嫉妒。在前者中,如果至少有m個用戶喜歡的項目,則用戶u認爲推薦項目列表對他/她是公平的。在後一種情況下,如果至少有用戶不嫉妒的項目,你會認爲這個套餐是公平的。[35]提出了公平的另一個定義。他們根據推薦項目對每個組成員的相關性爲每個組成員定義效用分數。他們將公平性建模爲給出羣體推薦時用戶效用平衡程度的接近程度。
  所有上述在實現公平性方面的工作都只考慮了小組推薦的一個實例,而沒有像我們在本工作中所做的那樣考慮到序列組推薦問題。

2.3 序列推薦

  序列推薦是一個相對較新的研究領域。一般說來,序列推薦器分爲三類,並根據它們考慮的過去用戶交互次數進行劃分:基於Last-N交互的推薦、基於會話的推薦和會話感知推薦[26]。在第一種方法中,只考慮最後N個用戶操作[6,17,18]。這是因爲系統已經爲用戶記錄了大量的歷史數據,其中許多是重複的,沒有向系統提供相關信息。基於Last-N交互的推薦通常是位置感知推薦。在基於會話的推薦中,僅使用用戶與系統的最後一次交互。它們通常出現在新聞[8]和廣告[12]推薦系統中。在最後一類序列推薦器-會話感知推薦中,我們既有關於用戶與系統的最後一次交互的信息,也有關於用戶的歷史記錄的信息。這些推薦器通常在電子商務或APP推薦中實現[10,14,27]。在我們的工作中,我們使用最後一種方法來逼近連續的小組推薦。上面的分類是針對單個用戶推薦者進行的,據我們所知,我們的工作是第一個處理公平概念的連續分組推薦。

3 基本概念

  在本節中,我們將介紹一個簡單的組推薦流程。這是一個獨立的過程,沒有考慮小組過去可能與系統進行的任何交互。我們使用的羣體推薦方法是將單個羣體成員的偏好列表聚合成一個羣體偏好列表。我們將首選項列表定義爲我們分別推薦給每個成員或推薦給組的列表。
  具體地說,令UU是用戶集合,II爲項目集合。每個用戶uiUu_i∈U對項目dzId_z \in I給予從1到5的評級表示爲r(uidz)r(u_i,d_z)。對項目dzId_z∈I進行評級的用戶子集由U(dz)U(d_z)表示,而由用戶U(dz)U_(d_z)評級的項目子集由I(ui)I(u_i)表示。假設用戶羣組GG大小固定爲nnGUG\subseteq U已經將單個用戶推薦算法應用於所有組成員,並且產生了它們的偏好列表Au1,,AunAu_1,\dots,Au_n,下一步是將這些列表聚合成一個列表。在聚合階段之後,每個項目將只有一個羣組偏好得分,並且前kk個將作爲最終推薦被報告回組。
  通常,使用兩種公認的聚合方法[2]。我們檢查的第一種聚合方法是平均法。這種方法背後的主要思想是所有成員都被認爲是平等的。因此,項目的組首選項將通過對所有組成員的平均得分來確定:
avgG(dz,G)=sumuiGp(ui,dz)G,avgG(d_z,G) = \frac{sum_{u_i \in G}p(u_i,d_z)}{|G|},
  其中,p(ui,dz)p(u_i,d_z)給出了用戶uiu_i的偏好分數dzd_z(由標準的單用戶推薦算法計算)。第二種聚合方法是最小痛苦度,在這種方法中,一個成員可以充當小組其他成員的否決權。在這種情況下,項目dzd_z的組首選項得分是在所有組成員首選項列表中分配給該項目的最低得分:
minG(dz,G)=minuiGp(ui,dz).minG(d_z,G)=min_{u_i \in G}p(u_i,d_z).

4. 羣組序列推薦

  在本節中,我們將多輪的概念引入到前面的組推薦過程中。因此,我們不會將對系統的每個組查詢視爲獨立的過程,而是將其視爲由同一組提交給系統的一系列查詢。我們將系統的每個組查詢稱爲迭代,並且每個迭代都有標準組推薦方法的主要組件:單個用戶推薦,然後是聚合階段。
  形式上,讓GR\mathcal{GR}是給羣組μ\mu次推薦產生的序列(Gr1,,Grμ)(Gr_1,\dots,Gr_{\mu})。我們使用pj(ui,dz)p_j(u_i,d_z)作爲項目dzd_z迭代j(1jμ)j(1\leq j\leq \mu)次後,用戶uiu_i的偏好分數。這些分數由單個用戶推薦算法估計。在羣推薦系統的聚合階段之後,我們使用gpj(G,dz)gp_j(G,d_z)來表示羣GG作爲一個整體的項目dzd_z的偏好得分,這是由羣推薦者在迭代jj處估計的。
  與前一個模型不同的是,這個新模型引入了多次迭代或推薦序列的概念。我們使用這些交互來改變推薦系統的輸出,這樣,如果用戶在前一次迭代中不滿意,那麼他/她在當前迭代中可能會滿意。

4.1 滿意度測量

  爲了通過一系列迭代來檢查我們的組推薦算法的有效性,我們需要定義一個度量來幫助我們將問題從獨立地檢查每個迭代提升到檢查一系列迭代。我們引入了滿意度的概念,它代表每個組成員在系統每次迭代後對推薦項目的滿意度。我們定義了兩種不同的滿意度:單一用戶滿意度和羣體滿意度。
  4.1.1 單一用戶滿意度。 首先,我們想要提供每個用戶uiu_iGG對在步驟jj接收的組推薦GrjGr_j的滿意度的正式度量。我們通過將用戶作爲組成員接收的推薦的質量與用戶作爲個體接收的推薦的質量進行比較來做到這一點。
  假設GrjGr_j涉及項目ij,1,ij,2,,ijki_{j,1},i_{j,2},\dots,i_{jk}。此外,設Aui,jA_{u_i,j}爲用戶uiu_itopktop-k個項目aj,1,aj,2,,aj,ka_{j,1},a_{j,2},\dots,a_{j,k},即對用戶uiu_i預測得分最高的kk個項目。我們的目標是直接將組推薦列表中的用戶滿意度與該用戶的理想情況進行比較。這給了我們一個比平均方法更清晰的用戶滿意度視角,因爲我們考慮了每個用戶的前幾個項目,而不僅僅是組的前幾個項目。正式地:
sat(ui,Gri)=GroupListSat(ui,Grj)UserListSat(ui,Aui,j)(1) sat(u_i,Gr_i)=\frac{GroupListSat(u_i,Gr_j)}{UserListSat(u_i,A_{u_i,j})} \tag{1}
GroupListSat(ui,Grj)=dzGrjpj(ui,dz)(2) GroupListSat(u_i,Gr_j)=\sum_{d_z \in Gr_j} p_j{(u_i,d_z)} \tag{2}
UserListSat(ui,Aui,j)=dzAui,jpj(ui,dz)(3) UserListSat(u_i,A_{u_i,j})=\sum_{d_z \in A_{u_i,j}} p_j{(u_i,d_z)} \tag{3}
  使用函數GroupListSatGroupListSat(公式2),我們根據組推薦列表計算用戶滿意度。對於GrjGr_j中的每一項,我們對出現在每個用戶的Aui,jA_{{u_i},j}中的分數求和。函數UserListSatUserListSat(等式3)通過簡單地將用戶的Aui,jA_{{u_i},j}中的kk個最高的分數相加來計算用戶的理想情況。這樣,我們就能夠標準化用戶的滿意度分數。例如,如果用戶主要給項目打低分,則公式1能夠補償它。
  注意,在公式2和公式3中,我們不使用出現在組列表中的分數,而是使用出現在用戶的個人偏好列表中的分數。由於羣體推薦過程的聚合階段相當扭曲了羣體成員的個人意見,我們選擇只考慮每個羣體成員的個人偏好得分。
  儘管如此,等式1仍然保持不變,因爲我們只計算一次迭代的用戶滿意度。如前所述,我們想要的是定義一個將系統以前迭代的滿意度分數考慮在內的度量。這樣的分數將代表每個組成員對μ\mu組建議的整體滿意度。
  定義4.1 (總體滿意度).用戶uiu_iμ\mu次迭代序列GR\mathcal{GR}的總體滿意度是每次迭代後滿意度得分的平均值:
satO(ui,GR)=j=1μsat(ui,Grj)μ(4)satO(u_i,\mathcal{GR}) = \frac{\sum_{j=1}^{\mu} sat(u_i,Gr_j)}{\mu} \tag{4}
  4.1.2 羣組滿意度。定義了每個組成員的滿意度分數之後,我們現在就可以定義整個組的滿意度分數了。具體地,羣GG相對於羣推薦列表GrjGr_j的滿意度被定義爲羣中用戶滿意度的平均值:
groupSat(G,Grj)=uiGsat(ui,Grj)G(5) groupSat(G,Gr_j)=\frac{\sum_{u_i \in G}sat(u_i,Gr_j)}{|G|} \tag{5}
  隨後,對於μ\mu次組推薦(Gr1,,Grμ)(Gr_1,\dots,Gr_{\mu})的推薦序列GR\mathcal GR,我們定義了組GG的總體組滿意度如下:
groupSatO(G,GR)=uiGsatO(ui,GR)G(6) groupSatO(G,\mathcal GR)=\frac{\sum_{u_i \in G}satO(u_i,\mathcal GR)}{|G|} \tag{6}
  這一衡量標準表明我們向小組報告的項目是否爲小組成員所接受。較高的小組滿意度意味着小組成員對推薦感到滿意。然而,由於我們平均成員滿意度得分,用戶的滿意度很可能會在計算中丟失。爲了解決這個問題,我們還將重點放在組中用戶之間的潛在分歧上。爲了表示這種不一致,我們定義了groupDisgroupDis度量:
groupDis(G,GR)=maxuiGsatO(ui,GR)minuiGsatO(ui,GR)(7)groupDis(G,\mathcal GR) = max_{u_i \in G}satO(u_i,\mathcal GR)-min_{u_i \in G}satO(u_i,\mathcal GR) \tag{7}
  直觀地,我們將羣體的不一致定義爲羣體中最滿意的成員和最不滿意的成員在總體滿意度得分上的差異。理想情況下,我們希望此度量採用較低的值,因爲這將表明組成員的滿意度都相同。較高的groupDisgroupDis值將表明組中至少有一個成員存在偏見。

4.2 問題定義

  我們的序列組推薦系統需要實現兩個獨立的目標,但這兩個目標對我們的模型的成功至關重要。第一個目標將集團視爲一個實體:我們希望爲集團提供儘可能好的結果。第二個目標是獨立考慮小組成員:我們希望儘可能公平地對待所有成員。
  定義4.2(公平組序列推薦). 給定組GG,序列組推薦器在μ\mu迭代中產生kk個項目Grμ,GrμGRGr_{\mu},Gr_{\mu} \in \mathcal GR的列表,該列表:
  (1). 最大化總體組滿意度,groupSatO(G,GR)groupSatO(G,\mathcal GR)
  (2). 將用戶滿意度得分之間的差異降至最低:groupDis(G,GR)groupDis(G,\mathcal GR)
  爲了實現第一個目標,我們的目標是最大化groupSatOgroupSatO。這意味着我們需要整個組具有最高偏好分數的項目。由於groupSatOgroupSatO表示的是組成員的平均滿意度,而且只有一個成員的不滿意很容易丟失,所以我們還需要實現第二個目標,最小化groupDisgroupDis,它代表了組成員之間的不滿意程度。
  根據組成員之間的相似性,這兩個目標可能會相互衝突。一個簡單的例子是一個由三個成員組成的小組,兩個成員彼此高度相似,一個成員與他們非常不同。要實現較高的groupSatOgroupSatO值,我們需要推薦與兩個相似用戶相關的項目,以提高羣體的平均滿意度。另一方面,通過這樣做,groupDisgroupDis也將採用較高的值,因爲我們沒有解決第三個成員的需求。總體而言,我們需要推薦不只是對所有成員都足夠好的項目-因爲這仍然會返回較低的groupSatOgroupSatO值,而是與團隊高度相關的項目,而不會犧牲少數人的意見。

4.3 序列混合聚合策略

  如上所述,當我們考慮按序列推薦時,平均和最少痛苦彙總方法都有缺點。同時,兩者都有優勢(即,平均水平平等,最少痛苦時包含所有意見),這些都是推薦系統的資產。此外,已經證明,爲一個羣組以最小化最低滿意度組成員和最高滿意度組成員之間的差距計算最佳推薦是一個NP-hard問題[35]。這是我們希望在整個系統的多次迭代中實現的,以便對小組的所有成員都是平等的。爲了規避這一問題,充分利用平均聚集方法和最小痛苦聚集方法的優點,我們提出了一種新的聚集方法,它是兩者的加權組合。我們稱該方法爲序列混合聚集法。
score(G,dz,j)=(1αj)avgScore(G,dz,j)+αjleastScore(G,dz,j)(8)score(G,d_z,j)= (1-\alpha_j)*avgScore(G,d_z,j) + \alpha_j*leastScore(G,d_z,j) \tag{8}
  函數avgScore(G,dz,j)avgScore(G,d_z,j)返回項目dzd_z在迭代jj期間通過平均聚集方法計算的分數,函數LeastScore(G,dz,j)LeastScore(G,d_z,j)返回dzd_z在迭代jj的最不滿意的用戶得分。變量α\alpha的值從0到1。如果α=0\alpha = 0,則序列混合聚集方法變爲平均聚集,而當α=1\alpha = 1時,它轉換爲修改的最不痛苦聚集,其中我們只考慮最不滿意成員的偏好。
  直觀地說,當α=0\alpha = 0時,我們的方法滿足公平序列組推薦問題(定義4.2)的第一部分,因爲平均聚集考慮了組作爲一個整體的最佳選項。μ\mu值越高,α=1\alpha = 1的好處就越明顯,因爲在第一次迭代中,由於考慮了用戶的總體滿意度,組不一致可能仍然很高(公式4)。
  考慮到我們的目標是實現問題定義的兩個目標,我們需要將α\alpha的值設置在0到1之間。此外,我們希望該值能夠自我調節,以便更有效地描述小組的共識。因此,我們在每次迭代中動態設置α\alpha的值,方法是從最高得分中減去前一次迭代中組成員的最小滿意度得分。
αj=maxuGsat(u,Grj1)minuGsat(u,Grj1)(9)\alpha_j = max_{u \in G}sat(u,Gr_{j-1}) - min_{u\in G}sat(u,Gr_{j-1}) \tag{9}
  當j=1j=1(系統的第一次迭代)時,則α=0\alpha = 0,並且聚合方法恢復爲經典的平均聚合方法。
  通過動態計算α\alpha,我們抵消了平均和最少痛苦的個體缺陷。直觀地說,如果小組成員在最後一輪的滿意度相同,那麼α\alpha的值就會很低,並且聚合將緊隨平均水平,在平均水平下,每個人都被平等對待。另一方面,如果某個組成員在特定迭代中非常不滿意,則α\alpha會採用較高的值,並在下一個迭代中提升該成員的首選項。正式地:
  命題1.uu爲羣組GG中的用戶,使得sat(u,Grj1)<sat(ui,Grj1),uiG\{u}.uyG\{u}sat(u,Gr_{j-1})<sat(u_i,Gr_{j-1}),\forall u_i \in G \backslash \{u\}.\exist u_y \in G \backslash \{u \},使得sat(uy,Grj)<sat(u,Grj).sat(u_y,Gr_{j})<sat(u,Gr_{j}).
  證明. 爲矛盾起見,假設Sat(u,Grj)<Sat(uy,Grj)uyG\{u}Sat(u,Gr_j)<Sat(u_y,Gr_j),∀u_y∈G\backslash \{u\}然後,這意味着uu在迭代jj處是最不滿意的用戶,這又意味着α\alpha在該迭代中採用的值不會導致最不痛苦的方法,這意味着uu在迭代j1j−1處不是最不滿意的用戶,這是矛盾的。
  爲了舉例說明這一點,我們對同一組運行與圖1相同的實驗,但現在我們使用序列混合聚合方法。結果顯示在圖2中。在這裏,我們可以觀察到,在系統的前一次迭代中不滿意的組成員在下一次迭代中是滿意的。用戶4就是一個很好的例子,在第一次迭代中滿意度得分非常低,而在第二次迭代中滿意度得分較高。與圖1所示的結果相比,這是一個明顯的改進,在圖1中,用戶4始終是組中滿意度最低的成員。
在這裏插入圖片描述

4.4 算法

   算法1描述了我們的序列混合羣聚集方法,算法的輸入是羣組GG、迭代次數jj和羣推薦列表GrjGr_j的大小kk,我們在每次迭代完成後將其報告給羣。在第1行中,我們對每個組成員應用單個用戶推薦算法,並將他們的首選項列表保存到變量AA中。在第2行中,我們定義了一個包含成員首選項列表GlGl中出現的所有項目的集合,在第3-5行中,我們填充了該集合。在第6-10行,我們計算α\alpha;如果是表示j=1j=1(第7行)的第一次迭代,則α=0\alpha =0,否則,我們使用公式9(第9行)來計算它。在第11-24行,我們執行序列混合聚合方法。對於GlGl中的所有項目,我們使用公式8(第12行)計算項目分數,並將它們插入到組列表GrjGr_j中。在檢查完GlGl中所有項目之後,我們對組列表中的項目進行排序(第15行),最後,我們將它們的前kk個報告給組(第16行)。由於排序函數的時間複雜度,算法的複雜度爲O(nlogn)O(n\log n),其中n=Gln=|Gl|.
在這裏插入圖片描述

5. 實驗設置

   在這一部分中,我們描述了對我們的序列組推薦系統進行實驗評估所需要的兩個預處理任務:數據集分割和分組形成。

5.1 數據集

   爲了對我們的序列組推薦系統進行實驗評估,我們使用了20M MovieLens數據集[11]。它包含了27.278部電影的20.000.263個收視率。這些數據是由138.493用戶在1995年1月9日至2015年3月31日之間創建的。該數據集生成於2015年3月31日。爲了模擬建議的多次迭代,我們將數據集拆分成塊。每個塊都被添加到系統中,表示新的信息,並與系統中已有的數據一起用於定位下一次迭代的建議。
   最初,我們將數據集分爲兩個大小大致相同的部分。第一部分包含1994年1月至2003年12月期間給出的評級,是我們推薦人的起始數據集。這爲我們提供了一個初始數據集,其中包含8.381.255個評分、73.519個用戶和6.382部電影。我們使用此啓動數據集啓動系統,以避免因冷啓動問題而產生的任何問題2。數據集的第二部分根據時間戳進一步拆分成塊。我們創建了22個數據塊,其中每個數據塊都包含爲期六個月的信息。在第一次迭代期間,系統將只能訪問初始數據集。當該迭代結束時,系統將增加一個塊(2004年第一學期),在隨後的每一次迭代之後,系統將獲得進入下一塊的權限(2004年第二學期、2005年第一學期等)。
   圖3顯示了關於每個塊內容的詳細信息。在最後兩欄中,我們將分別報告在特定學期中首次出現的用戶數和電影數。正如我們所看到的,各學期的收視率並不是平均分配的。在2004年至2010年期間,評級的數量更高,在某些情況下,評級甚至是評級的三倍。正如預期的那樣,出現在每個塊中的電影數量隨着時間的推移而增加,因爲用戶也可以對舊電影進行評分。同時,所有區塊的用戶數量相對相同。隨着時間的推移,用戶無私地給出評級,這在我們的評估中並不是一個複雜的問題,因爲可用的評級總數足以滿足我們的需求。
在這裏插入圖片描述

5.2 羣組形成

   我們將在穩定組上評估我們的序列組推薦。這意味着組的成員不會在迭代之間更改,並且每個建議案的所有成員都會出現。我們將根據成員之間共享的相似性來檢查我們對四種類型的組的推薦器。我們的目標是覆蓋具有不同語義的組,從具有相似用戶的組到具有不同用戶的組。我們只使用起始數據集而不是整個數據集來計算組成員之間的相似性,因爲我們希望用戶之間的關係從第一次迭代開始就存在。
   組成員之間的相似性是使用皮爾遜相關相似性度量[28]來計算的,該度量採用從−1到1的值。值越高意味着用戶之間的相似性越高,而負值表示不相似。
s(ui,ul)=dzX(r(ui,dz)r^ui)(r(ul,dz)r^ul)dzX(r(ui,dz)r^ui)2dzX(r(ul,dz)r^ul)2(10) s(u_i,u_l)=\frac{\sum_{d_z \in X} (r(u_i,d_z)-\hat r_{u_i})(r(u_l,d_z)-\hat r_{u_l})}{\sqrt{\sum_{d_z \in X}(r(u_i,d_z)-\hat r_{u_i})^2} \sqrt{\sum_{d_z \in X}(r(u_l,d_z)-\hat r_{u_l})^2}} \tag{10}
   其中X=I(ui)I(ul)X=I(u_i)∩I(u_l)r^ui\hat{r}_{ui}I(ui)I(u_i)中評分的平均值,即用戶uiu_i的評分的平均值。
   如果兩個用戶的相似度得分在0.5以上,我們認爲他們彼此高度相似,而當他們的相似度得分在-0.5或更低時,我們認爲他們不相似。我們考慮的組別如下:

  • 4相似-1不相似:組中的四個成員具有較高的相似性分數,而不相似的成員與其他組成員的相似性分數較低。
  • 3相似-2相似:我們將組分爲兩個子組。每個子組的成員彼此相似,但同時,子組彼此不同,即一個子組的所有成員與另一個子組的所有成員不同。
  • 3相似-1不相似:我們將組分爲三個單獨的子組:一個包含三個成員,兩個子組每個只包含一個用戶。所有的子組彼此不同,而屬於同一子組的三個成員彼此相似。
  • 5不同:組中的所有成員彼此不同。

  對於每種羣組類型,我們生成100個羣組,每個用戶在每個類別中只能參與一個羣組。我們只考慮五人小組,因爲這是一個現實的情況。

6 評估

  在這一部分中,我們將回顧我們的實驗程序和我們在評估序列組推薦器時考慮的變量。我們給出了這個評估的結果,展示了我們的序列混合聚合方法的優勢。

6.1 實驗程序

  在我們的實驗中,我們將檢查四種類型的組的行爲,每種類型考慮100個不同的組。對於集合中的每個組,我們按照算法1中的描述,對不同的μ\mu值執行序列組推薦。對於集合中的所有組,我們計算groupSatO(G,GR)groupSatO(G,\mathcal GR)groupDis(G,GR)groupDis(G,GR)的平均值。此外,我們利用了FscoreF-score(公式11),即groupSatOgroupSatOgroupDisgroupDis度量的調和平均值,它很好地指示了用戶滿意度和組中用戶之間的協議。考慮到FscoreF-score所需的輸入函數,我們使用1groupDis1−groupDis來模擬羣體協議。
Fscore=2gruopSatO(1group)gruopSatO(1+group)(11) F-score = 2\frac{gruopSatO*(1-group)}{gruopSatO*(1+group)} \tag{11}
  我們利用皮爾遜相關性發現用戶之間的相似性。如果兩個用戶的相似度大於0.7,並且他們對五個以上相同的項目進行了評級,則我們將兩個用戶視爲相似。
  爲了預測用戶的偏好得分,我們使用加權的他人評分總和[33],並且我們只考慮與他/她最相似的前100名用戶。我們向小組推薦10個小組偏好得分最高的項目。在我們的示例中,我們假設系統不會向其先前推薦的組推薦項目。
p(ui,dz)=r^ui+ul(PuiU(dz))s(ui,ul)(r(ul,dz)r^ul)ul(PuiU(dz))s(ui,ul)(12) p(u_i,d_z)=\hat{r}_{u_i}+\frac{\sum_{u_l \in (P_{u_i} \cap U(d_z))} s(u_i,u_l)(r(u_l,d_z)-\hat{r}_{u_l})}{\sum_{u_l \in (P_{u_i} \cap U(d_z))}|s(u_i,u_l)|} \tag{12}

6.2 α\alpha實驗

  爲了檢查序列混合聚合方法的行爲,我們首先檢查變量α\alpha(方程式9)在系統迭代期間的取值。我們通過15次迭代來檢查α\alpha的性能。在圖4中,我們報告了每種類型、每次迭代的100個組的平均α\alpha值。在第一次迭代中,α\alpha採用默認值0。在下一次迭代期間,α\alpha值將以接近線性的形式增加。這是意料之中的,因爲按照設計,這些組至少有一個與組的其餘成員不同的離羣值成員。這保證了在系統迭代期間至少有一個成員沒有得到滿足。後期迭代中α\alpha的高值也是數據集拆分的結果。在以後的迭代中,數據集的大部分已經作爲系統的輸入給出了,並且從統計上講,已經推薦了對組和對單個成員最好的項目。因爲根據我們的方案,我們的系統不能推薦已經推薦的項目,所以剩下的項目對整個團隊和每個成員個人來說都不太可取。

在這裏插入圖片描述

  另外一個觀察是這四種羣體類型的不同行爲。如前所述,這些團體的組成方式總是至少有一名成員是少數派。α\alpha值提供了這些類型的組對序列推薦的影響的第一印象。請記住,α\alpha不同於組不一致(方程式7),因爲它只考慮成員對系統上一次迭代的滿意度。在系統的第一次迭代期間,α\alpha的值有一些變化。這種明顯的區別在後面的迭代中變得很明顯,在那裏我們可以觀察到羣體越多元化,α\alpha的價值就越高。這是意料之中的,因爲組中的意見越不一致,用戶之間的分歧就越大,因此α\alpha的值就越高。

6.3 羣組類型實驗

  爲了檢驗序列組推薦器的有效性,我們考慮了在多次迭代之後的組滿意度groupSatOgroupSatO(公式6)和用戶之間的不一致groupDisgroupDis(公式7)。對於每種類型的組,我們執行不同迭代次數的實驗,μ[5,10,15]\mu∈[5,10,15]。圖5、圖6、圖7和圖8分別顯示了每個組類型的100個組的組滿意和組不一致得分的平均值。
在這裏插入圖片描述
在這裏插入圖片描述
  我們對α\alphaα[00.41dynamicα]\alpha\in[0,0.4,1,dynamic \,\alpha]的不同值進行了測試,並採用了純最小痛苦方法(LM)。對於α=0\alpha =0,我們有一個標準的平均聚合方法。對於α=1\alpha =1,我們有一個略微改變的最小痛苦聚合方法,其中不是將單個組成員的偏好分數中的最低分數作爲組偏好分數分配給項目,而是將出現在最不滿意的用戶的偏好列表中的分數分配給項目。我們還考慮了α\alpha的靜態值,即0.4,在對不同的α\alpha值進行了大量實驗後,將其選爲結果最好的值。
  在考慮整體團隊滿意度時,我們觀察到,對於所有類型的團隊,滿意度都下降了相同的程度。這是因爲在系統的後期迭代中,已經報告了組的最佳項目,並且如上所述,我們不推薦在以前的迭代中已經推薦的項目。當比較不同α值的羣體滿意度時,我們觀察到平均值方法略優於動態α\alpha方法。對於15次迭代,平均方法通過輕微的因素提供了更好的整體團隊滿意度,因爲它試圖爲整個團隊提供最好的結果。動態α\alpha也明顯優於LM方法,特別是組變得越多樣化。到目前爲止,性能最差的是α\alpha=1,因爲在系統的每次迭代中,我們只考慮一個用戶,而沒有考慮組中其餘成員的意見。
  對於羣體分歧,LM的結果最差,其次是平均法(α\alpha=0),而動態α\alpha的結果最好。這是因爲,平均法忽略了羣體中的少數人意見,這反映在高的羣體不一致值上。LM不適用於不同的羣體,因爲成員的喜好彼此差別很大。組成員的差異越大,這一點就越明顯,如圖8所示。在我們的評估中,α\alpha=1的優點和缺點是顯而易見的。我們可以在系統的第一次迭代中觀察到高度不一致,但後來,我們有了更好的結果。這在更多樣化的組中更加明顯,比如圖8中的組,在後面的迭代中,它實現了次佳的不一致。
  總體而言,序列羣體推薦問題不是一維的。我們需要把整體的羣體滿意度和羣體分歧結合起來考察。儘管平均法(α\alpha=0)和靜態值α\alpha=0.4提供的羣體滿意度略好於動態α\alpha,但它們的羣體不一致值都要高得多。當我們考慮到動態α\alpha相對於平均和靜態α\alpha聚集方法在羣體成員之間的分歧上的優勢時,我們認爲這是一種可以接受的羣體滿意度損失。
  爲了更好地演示這一點,我們還計算了groupSatOgroupSatOgroupDisgroupDis值的FscoreF-score。我們在表1中給出了這些結果。對於所有組類型和所有迭代次數,使用動態α\alpha的方法提供了比其他方法更好的結果。這更好地說明了我們之前提出的觀點。即使平均方法提供了更好的羣體滿意度,我們提出的動態混合序列方法也遠遠彌補了這一點,而且羣體不一致程度要低得多。

總結

  在這項工作中,我們引入了序列組推薦的概念。結果表明,標準的組推薦方法不利於序列推薦。這種方法有一些特別的缺點–平均方法可能會丟失少數人的意見,而羣體的偏好只由一個聲音在最不痛苦的情況下決定–當它們應用於序列建議時,這些缺點只會加劇。我們提出了一種序列羣推薦模型,該模型考慮了羣成員在先前羣與系統交互過程中的滿意度。每個成員對確定項目的組分數的影響由該成員對系統的先前迭代中的推薦項目具有的滿意程度來定義。未來,我們希望通過用戶研究進一步評估我們的工作,以更好地檢驗我們方法的有效性以及用戶對此的反應。此外,我們還想研究連續羣體推薦對短暫羣體的影響以及隨後對個體成員的影響。也就是說,如果在每次迭代中是不同組的成員,而不犧牲臨時形成的組的總體滿意度,我們如何才能滿足用戶。

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