1.一種基于組合學習的群組推薦方法,其特征在于,包括:
方式1:基于K最近鄰算法獲得所有用戶的個人推薦列表,挑選出組A內(nèi)每個成員的推薦列表,將每個成員的推薦列表根據(jù)組合學習的方法得出一個組A的推薦列表;
具體過程為:每個推薦列表中物品的排序與它們自身的影響力有關,首先將每個物品的影響力歸一化,用0-1之間的數(shù)值表示,然后得到每個物品在不同列表中歸一化后的影響力組成向量r=(r1…,rn),rj代表在第j個推薦列表中物品的歸一化后的影響力,利用物品的影響力向量得出最終物品在列表中所應占的影響力,并根據(jù)每個物品影響力的高低產(chǎn)生一個組合后的推薦列表;
方式2:將組A內(nèi)成員對每個物品的評分累加,取平均值以此代表組A對每個物品的評分,得到組A的評分列表,基于K最近鄰算法,根據(jù)不在組A中成員的評分列表產(chǎn)生組A的推薦列表;
方式3:構建組的喜好模型,將每個用戶的喜好用特征因子向量表示,根據(jù)單個用戶的喜好向量得到表示組喜好的特征因子向量,根據(jù)此產(chǎn)生組A的推薦列表;
基于以上三種方式分別產(chǎn)生組A的三個推薦列表,并基于組合學習的方法組合出一個更準確的推薦列表,具體過程為:
即將同一組中n個項排序的k個列表合并成一個完整列表的問題,合并后的列表最佳的描述了k個列表所代表的信息,具體采用的是排序整合中的魯棒排序整合算法。
2.根據(jù)權利要求1所述的基于組合學習的群組推薦方法,其特征在于,所述方式1的具體實現(xiàn)方式為:
11)用戶通過以下公式計算得到相似度Sim(u,v):
其中ruj表示用戶u對物品j的評分,rvj表示用戶v對物品j的評分,ruv表 示用戶u對物品v的評分,rvj表示用戶v對物品j的評分,表示用戶u對所有物品評分的平均值,表示用戶v對所有物品評分的平均值,Iuv表示用戶u和用戶v共同評分過的物品集;
每個用戶u根據(jù)計算得到的相似度找出最相似的k個用戶,放在集合S中;
12)用戶u對物品i的評分由以下公式計算得到:
13)通過評分排名得出每個用戶的推薦列表,挑出組A中成員的推薦列表;
14)將組A中各成員的推薦列表通過組合學習的方法組合,得到組A的推薦列表。
3.根據(jù)權利要求1所述的基于組合學習的群組推薦方法,其特征在于,所述方式2的具體實現(xiàn)方式為:
根據(jù)以下公式得到組A的評分列表Rij:
其中ruj表示用戶u對物品j的評分,Ui表示第i個組的用戶總數(shù);
22)將組A看成一個虛擬人“A”,計算與其他不在組A內(nèi)成員的相似度Sim(A,v):
其中RAj表示組A對物品j的評分,表示組A對所有物品評分的平均值,IAv表示組A和用戶v共同評分過的物品集;
23)選出與“A”最相似的k個用戶,基于K最近鄰算法得到組A的推薦列表。
4.根據(jù)權利要求1所述的基于組合學習的群組推薦方法,其特征在于,所述方式3的具體實現(xiàn)方式為:
31)基于奇異值矩陣分解將用戶評分矩陣分解為用戶和物品的特征因子矩 陣U∈Rf×s和M∈Rf×t,其中f表示特征數(shù),s表示用戶數(shù),t表示物品數(shù);
32)將用戶喜好表示成特征因子向量P=(f1,f2,…,fc);
33)合并用戶喜好特征因子向量,用距離概念來衡量兩個用戶喜好的不一致性;
根據(jù)該距離概念兩個點間距離有以下定義:
d(1,0)=d(0,1)=d(0,-1)=d(-1,0)=1
d(1,1)=d(0,0)=d(-1,-1)=0
d(1,-1)=d(-1,1)=2
應用到本場景中,兩個用戶ui,uj間的分歧表示為:
其中Pi、Pj分別表示用戶i、j的喜好的特征因子向量,aq、bq分別表示不同特征向量的第q個位置的值;
34)最終組喜好的特征因子向量G應保證組內(nèi)成員分歧最?。?/p>
即:∑d(aij,aj)最小,其中i=1,2...N,j=1,2…K;
將每個特征的權重標準化:
其中Wmax表示在一個用戶的特征因子向量中最大的值,Wmin表示在一個用戶的特征因子向量中最小的值,Wj表示用戶的特征因子向量中第j個特征的值。
為每個特征重新賦值如下:
其中s代表組內(nèi)用戶數(shù),Wij'表示用戶j的特征因子向量中特征i的值;
35)將得到的組A的特征因子向量與物品的特征因子矩陣根據(jù)以下公式得出組A的評分矩陣:P=GiMjT
36)最終組A的推薦列表通過評分高低排序得到。