本發(fā)明涉及協(xié)同過濾方法及系統(tǒng),尤其涉及一種同時融入好友特征和相似用戶特征的協(xié)同過濾算法。
背景技術(shù):
近年來,隨著互聯(lián)網(wǎng)產(chǎn)品中信息過載問題的愈發(fā)嚴重,許多產(chǎn)品中都迫切需要提供個性化推薦的功能。然而,傳統(tǒng)的推薦技術(shù)只考慮了兩種實體即“用戶”和“物品”,而忽略了好友之間的社交關(guān)系對推薦結(jié)果的影響。為此,融入社交關(guān)系的推薦系統(tǒng)逐漸受到關(guān)注,當前已經(jīng)有許多的科研和工程實踐工作證明,社交關(guān)系的引入能夠有效提高推薦系統(tǒng)的準確性和和個性化程度。
目前,融入社交關(guān)系的推薦方法采用的算法,主要分成兩大類:(1)基于內(nèi)存的個性化社交推薦算法:把社交關(guān)系融入到傳統(tǒng)的基于內(nèi)存的推薦算法之中,比如在基于用戶的最近鄰推薦算法或者基于物品的最近鄰推薦算法加入社交關(guān)系。(2)基于模型的個性化社交算法:把社交關(guān)系融入到傳統(tǒng)的基于模型的推薦算法之中,比如在概率矩陣分解模型中加入社交關(guān)系。
上述兩類融入社交關(guān)系的推薦方法,只能分別融入社交關(guān)系或者用戶相似度信息,無法同時對社交關(guān)系和用戶相似度信息建模,而在真實的互聯(lián)網(wǎng)產(chǎn)品應用場景之中,用戶的興趣偏好一方面會受到好友的影響,即社交關(guān)系的影響。其興趣另一方面又趨向于相同興趣偏好的用戶,即受到高相似度用戶的影響。所以本發(fā)明專利提出一種同時融入好友特征和相似用戶特征的協(xié)同過濾方法和系統(tǒng),同時把好友特征和相似用戶特征融入到用戶特征之中,改進協(xié)同過濾方法的準確度。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于解決現(xiàn)有技術(shù)所存在的問題,找到一種同時融入好友特征和相似用戶特征的協(xié)同過濾方法,提高協(xié)同過濾方法的準確度。
為了實現(xiàn)所述目的,本發(fā)明同時融入好友特征和相似用戶特征的協(xié)同過濾方法,包括以下步驟:
步驟一:獲取用戶-物品評分矩陣,通過皮爾遜相關(guān)系數(shù)計算用戶之間的相似度,建立用戶相似度矩陣;
步驟二:獲取用戶-用戶關(guān)系矩陣,對原始用戶-用戶關(guān)系矩陣進行歸一化處理,得到歸一化后的用戶-用戶關(guān)系矩陣;
步驟三:根據(jù)用戶相似度矩陣和歸一化后的用戶-用戶關(guān)系矩陣將相似用戶特征和好友用戶特征融入概率矩陣分解模型的用戶特征,根據(jù)融入相似用戶特征和好友用戶特征的概率矩陣分解模型獲取用戶對物品的預測評分,根據(jù)預測評分為用戶推薦物品。
進一步的,步驟一中,用戶之間相似度的計算公式為:
其中,Siw為用戶i與物品w的相似度,I為用戶i和用戶w的公共評分集合,Rij為用戶i對物品j的評分,為用戶i的評分均值,Rwj為用戶w對物品j的評分,為用戶w的評分均值。
進一步的,步驟二中,對原始用戶-用戶關(guān)系矩陣進行歸一化的過程為:通過歸一化,使得Fi表示用戶i的好友集合,Tiv為原始用戶-用戶關(guān)系矩陣中第i行第v列的元素表示用戶i對用戶v的關(guān)系。
進一步的,步驟一中,設置相似度閾值,根據(jù)用戶相似度矩陣選擇與用戶相似度高于相似度閾值的用戶集合作為高相似度用戶集合。
進一步的,步驟一中,設置高相似度用戶數(shù)目的閾值Y,根據(jù)用戶相似度矩陣選擇與用戶相似度最高的Y個用戶作為高相似度用戶集合。
進一步的,Y值為用戶的好友數(shù)量。
進一步的,融入相似用戶特征和好友用戶特征的概率矩陣分解模型中:
用戶隱因子矩陣U的條件概率為:
物品隱因子矩陣V的條件概率為:
評分預測公式為:
其中,U為用戶隱因子矩陣,V為用戶隱因子矩陣,S為用戶相似度矩陣,T歸一化后的用戶-用戶關(guān)系矩陣,Ui為用戶i的特征向量,Uυ為用戶υ的特征向量,Uw為用戶w的特征向量,Vj為物品j的特征向量,F(xiàn)i為用戶i的好友集合,Ni為用戶i的高相似度用戶集合,Tiv為用戶i與物品w的歸一化后的關(guān)系值,Siw為用戶i和用戶w之間的相似度,為用戶i對物品j的評分預測,為用戶i的特征向量與物品j的特征向量的內(nèi)積。
進一步的,根據(jù)融入相似用戶特征和好友用戶特征的概率矩陣分解模型獲取用戶對物品的預測評分的步驟包括:
根據(jù)預測評分公式、用戶隱因子矩陣的條件概率和物品隱因子矩陣的條件概率提出需要最大化的隱因子矩陣的后驗概率:
最大化上述概率函數(shù),等價于最小化如下的損失目標函數(shù),
其中表示Frobenius范數(shù),R為用戶-物品評分矩陣,U為用戶隱因子矩陣,V為物品隱因子矩陣,S為用戶相似度矩陣,T歸一化后的用戶-用戶關(guān)系矩陣,Rij為用戶i對物品j的評分,Ui為用戶i的特征向量,Uυ為用戶υ的特征向量,Uw為用戶w的特征向量,F(xiàn)i為用戶i的好友集合,Ni為用戶i的高相似度用戶集合,Siw為用戶i與物品w的歸一化后的關(guān)系值,為用戶i的特征向量與物品j的特征向量的內(nèi)積;
采用隨機梯度下降的方法優(yōu)化損失目標函數(shù),獲得用戶隱因子矩陣U和物品隱因子矩陣V,并使用預測評分。
進一步的,根據(jù)預測評分為用戶推薦物品的步驟包括:根據(jù)預測評分,對前預測評分前N高的物品進行推薦。
通過實施本發(fā)明可以取得以下有益技術(shù)效果:通過將相似用戶特征和好友用戶特征融入概率矩陣分解模型的用戶特征,建立融入相似用戶特征和好友用戶特征的概率矩陣分解模型,根據(jù)概率矩陣分解模型進行物品推薦,使得推薦結(jié)果好友受用戶特征和相似用戶特征影響,提高協(xié)同過濾方法的準確度。
附圖說明
圖1是同時融入好友特征和相似用戶特征的協(xié)同過濾方法的流程圖;
圖2為標準矩陣分解模型;
圖3為同時融入好友特征和相似用戶特征的矩陣分解模型;
圖4為同時融入好友特征和相似用戶特征的協(xié)同過濾系統(tǒng)的框圖。
具體實施方式
為了便于本領域技術(shù)人員的理解,下面結(jié)合具體實施例對本發(fā)明作進一步的說明:
如圖1所示,本發(fā)明同時融入好友特征和相似用戶特征的協(xié)同過濾方法,包括以下幾個步驟:
步驟一:獲取用戶-物品評分矩陣,通過皮爾遜相關(guān)系數(shù)計算用戶之間的相似度,建立用戶相似度矩陣。通過用戶相似度矩陣獲取高相似度用戶合集。
用戶相似度矩陣建立過程為:用戶-物品評分矩陣Rij為矩陣R中第i行,第j列的元素表示用戶i對物品j的評分,一般用戶物品評分數(shù)值標準為5分制、10分制、100分制等,通過皮爾遜相關(guān)系數(shù)計算用戶之間的相似度,建立用戶相似度矩陣S,其中皮爾遜相關(guān)系數(shù)的計算公式為:
其中,Siw為矩陣S中i行w列的元素表示用戶i與物品w的相似度,I為用戶i和用戶w的公共評分集合,Rij為用戶i對物品j的評分,為用戶i的評分均值,Rwj為用戶w對物品j的評分,為用戶w的評分均值。
高相似度用戶集合一般可采用三種方式獲取,
第一種方法,設置相似度閾值,相似度高于閾值的所有用戶為高相似度用戶集合,比如閾值為0.5時,相似度高于0.5的所有用戶挑選出來做高相似度用戶集合。
第二種方法,設置高相似度用戶數(shù)目的閾值,比如閾值為10時,挑選相似度最高的10個用戶做高相似度用戶集合。
第三種方法,對應用戶好友的關(guān)系數(shù)量,比如一個用戶有20個好友,那么我們對應的,選取20個高相似度用戶作為高相似度用戶集合,那么就可以跟好友關(guān)系的集合公平比較。
步驟二:對原始用戶-用戶關(guān)系矩陣進行歸一化,得到歸一化后的用戶-用戶關(guān)系矩陣;
歸一化用戶-用戶關(guān)系矩陣的建立具體過程為:使用原始用戶-用戶關(guān)系矩陣這里矩陣T中第i行,第v列的元素Tiv表示用戶i對用戶v的關(guān)系,一般最常見的用戶關(guān)系評分數(shù)值標準是01二元數(shù)值,即用戶間存在好友關(guān)系時Tiv=1,否則Tiv=0,通過歸一化,使得其中Fi表示用戶i的好友集合。
以評分數(shù)值標準是01二元數(shù)值的用戶-用戶關(guān)系矩陣為例,歸一化前的用戶-用戶關(guān)系矩陣T如下:
歸一化的過程是將用戶關(guān)系矩陣中,每一行的數(shù)值和變成1,歸一化后的矩陣如下:
Fi表示用戶i的好友集合,在上述表中,用戶i的好友合集為用戶i所在行中的非0數(shù)值所應在列中的用戶。如用戶5的好友合集為用戶1、用戶2和用戶3,且用戶5與用戶1好友關(guān)系數(shù)值為1/3,用戶5與用戶1好友關(guān)系數(shù)值為1/3,用戶5與用戶1好友關(guān)系數(shù)值為1/3,其和為1。
步驟三:根據(jù)用戶相似度矩陣和歸一化后的用戶-用戶關(guān)系矩陣將相似用戶特征和好友用戶特征融入概率矩陣分解模型的用戶特征,根據(jù)融入相似用戶特征和好友用戶特征的概率矩陣分解模型獲取用戶對物品的預測評分,根據(jù)預測評分為用戶推薦物品。
其步驟包括:
1)在用戶特征中同時融入好友用戶特征和相似用戶特征,提出一種改進的概率矩陣分解模型,改進的概率矩陣分解模型即融入相似用戶特征和好友用戶特征的概率矩陣分解模型。
如圖2,標準的概率矩陣分解模型中,用戶的隱因子矩陣U的條件概率是第i個用戶的隱因子特征向量為Ui,物品的隱因子矩陣的條件概率是第j個物品的隱因子特征向量為Vj,表示Ui服從均值為0方差為的多維正態(tài)分布,表示Vj服從均值為0方差為的多維正態(tài)分布,同理,本申請后續(xù)公式中同類型公式的意義不在詳細闡述,m表示對應矩陣的行數(shù),n表示對應矩陣的列數(shù)。
如圖3,在同時融入用戶特征和相似用戶特征的概率矩陣分解模型中,物品的隱因子矩陣的條件概率為而用戶的隱因子矩陣的條件概率為:
其中U為用戶隱因子矩陣,S為用戶相似度矩陣,T歸一化后的用戶-用戶關(guān)系矩陣,σT、σV、σU、σS為方差,可人工設定,Ui為用戶i的特征向量,Uυ為用戶υ的特征向量,Uw為用戶w的特征向量,Vj為物品j的特征向量,F(xiàn)i為用戶i的好友集合,Ni為用戶i的高相似度用戶集合,Siw表示用戶i和用戶w之間的相似度,Tiv為用戶i與物品w的歸一化后的關(guān)系值。
對用戶i對物品j的評分預測為用戶隱因子向量與物品隱因子向量的內(nèi)積
(2)根據(jù)步驟1提出的評分預測公式、用戶隱因子矩陣的條件概率和物品的隱因子矩陣的條件概率,提出需要最大化的隱因子矩陣的后驗概率如下:
最大化上述概率函數(shù),等價于最小化如下的損失目標函數(shù),
其中表示Frobenius范數(shù),R為用戶-物品評分矩陣,U為用戶隱因子矩陣,V為物品隱因子矩陣,S為用戶相似度矩陣,T歸一化后的用戶-用戶關(guān)系矩陣,σ、σV、σU、σS是方差,Rij是用戶i對物品j的評分,Ui是用戶i的特征向量,Uυ為用戶υ的特征向量,Uw是用戶w的特征向量,F(xiàn)i表示用戶i的好友集合,Ni表示用戶i的高相似度用戶集合,Siw表示用戶i與物品w的歸一化后的關(guān)系值,為用戶i的特征向量與物品j的特征向量的內(nèi)積,λU,λV,λT和λS為可調(diào)權(quán)重參數(shù),λS≥0并且λT≥0,兩個參數(shù)的大小選擇也會影響模型的最后預測精度,也可以理解為好友或者高相似度用戶對特定用戶特征影響的大小,比如λT比較大,那說用戶特征受到好友影響較大,λS較大,那說用戶特征受到高相似度用戶影響較大,目標函數(shù)表明用戶特征同時受到其好友特征和相似用戶特征影響,Iij表示指示函數(shù),如果用戶i以對物品j評過分,它的值等于1,否則為0,為了防止過擬合;上標T表示其兩側(cè)矩陣的內(nèi)積。
(3)采用隨機梯度下降的方法最小化步驟2)中的優(yōu)化目標函數(shù),獲得用戶隱因子矩陣U和物品隱因子矩陣V,并使用預測未知評分,進而為每個用戶個性化推薦top-N個物品。
本發(fā)明中,步驟一與步驟二之前沒有前后邏輯關(guān)系,也就是說,既可以先進行步驟一,也可以先進行步驟二。
如圖4所示,本發(fā)明還設計了一種采用同時融入好友特征和相似用戶特征的協(xié)同過濾方法的協(xié)同過濾系統(tǒng),包括:
用戶相似度矩陣建立模塊:獲取用戶-物品評分矩陣,通過皮爾遜相關(guān)系數(shù)計算用戶之間的相似度,建立用戶相似度矩陣;
用戶-用戶關(guān)系矩陣歸一化模塊:獲取用戶-用戶關(guān)系矩陣,對原始用戶-用戶關(guān)系矩陣進行歸一化處理,得到歸一化后的用戶-用戶關(guān)系矩陣;
物品推薦模塊:根據(jù)用戶相似度矩陣和歸一化后的用戶-用戶關(guān)系矩陣將相似用戶特征和好友用戶特征融入概率矩陣分解模型的用戶特征,根據(jù)融入相似用戶特征和好友用戶特征的概率矩陣分解模型獲取用戶對物品的預測評分,根據(jù)預測評分為用戶推薦物品。
以下以電影推薦和音樂推薦為例進行進一步描述:
電影推薦
1)建立用戶相似度矩陣:從原始的用戶-電影評分數(shù)據(jù)中,通過皮爾遜相關(guān)系數(shù)計算用戶之間的相似度,建立用戶相似度矩陣;通過皮爾遜相關(guān)系數(shù)計算用戶之間的相似度,建立用戶相似度矩陣S,皮爾遜相關(guān)系數(shù)計算公式為其中是用戶i對電影的評分均值,是用戶w的對電影的評分均值,集合I表示用戶i和用戶w的公共電影評分集合。
2)建立歸一化的用戶-用戶關(guān)系矩陣:使用原始用戶-用戶關(guān)系矩陣這里矩陣T中第i行,第v列的元素Tiv表示用戶i對用戶v的關(guān)系,通過歸一化,使得其中Fi表示用戶i的好友集合。
3)個性化推薦生成:將步驟1獲得的用戶間相似度信息和步驟2獲得的歸一化后的用戶好友關(guān)系,同時融入到用戶特征之中,進一步改進標準概率矩陣分解模型,通過隨機梯度下降求解本發(fā)明中提出的目標函數(shù),為用戶生成個性化的top-N個電影推薦結(jié)果。
音樂推薦
1)建立用戶相似度矩陣:從原始的用戶-音樂評分數(shù)據(jù)中,通通過皮爾遜相關(guān)系數(shù)計算用戶之間的相似度,建立用戶相似度矩陣;通過皮爾遜相關(guān)系數(shù)計算用戶之間的相似度,建立用戶相似度矩陣S,皮爾遜相關(guān)系數(shù)計算公式為其中是用戶i對音樂的評分均值,是用戶w的對音樂的評分均值,集合I表示用戶i和用戶w的公共音樂評分集合。
2)建立歸一化的用戶-用戶關(guān)系矩陣:使用原始用戶-用戶關(guān)系矩陣這里矩陣T中第i行,第v列的元素Tiv表示用戶i對用戶v的關(guān)系,通過歸一化,使得其中Fi表示用戶i的好友集合。
3)個性化推薦生成:將步驟1獲得的相似用戶特征信息和步驟2獲得的歸一化后的用戶好友關(guān)系,同時融入到用戶特征之中,進一步改進標準概率矩陣分解模型,通過隨機梯度下降求解本發(fā)明中提出的目標函數(shù),為用戶生成個性化的top-N個音樂推薦結(jié)果。
以上所述僅為本發(fā)明的具體實施例,但本發(fā)明的技術(shù)特征并不局限于此,任何本領域的技術(shù)人員在本發(fā)明的領域內(nèi),所作的變化或修飾皆涵蓋在本發(fā)明的專利范圍之中。