本發(fā)明涉及互聯(lián)網(wǎng)領(lǐng)域,尤其涉及一種基于用戶特征的改進(jìn)協(xié)同過濾推薦方法。
背景技術(shù):
隨著互聯(lián)網(wǎng)的快速發(fā)展,信息的獲取越來越便利,但面對如此龐大的信息量,僅憑人力是無法一一瀏覽并充分利用,個性化的推薦方法的研究應(yīng)運(yùn)而生。
協(xié)同過濾推薦算法是最早出現(xiàn)的一種推薦算法,其分支基于用戶的協(xié)同過濾算法是最為常見的一種協(xié)同過濾算法,它因準(zhǔn)確度較高而被廣泛使用。
發(fā)明人在實(shí)現(xiàn)本發(fā)明的過程中,發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在以下缺點(diǎn)和不足:
傳統(tǒng)的基于用戶的協(xié)同過濾算法其用戶相似度計(jì)算僅僅利用了用戶的共同評分,忽略了許多其他方面的問題,例如:用戶的價(jià)值尺度問題、用戶的特征信息利用、以及對用戶未共同評分項(xiàng)目的考慮等等,導(dǎo)致信息推薦的精度不高,無法滿足實(shí)際應(yīng)用中的多種需要。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供了一種基于用戶特征的改進(jìn)協(xié)同過濾推薦方法,本發(fā)明提高了傳統(tǒng)基于用戶的協(xié)同過濾算法的推薦質(zhì)量,并在一定程度上減輕數(shù)據(jù)稀疏性問題的影響,詳見下文描述:
一種基于用戶特征的改進(jìn)協(xié)同過濾推薦方法,所述改進(jìn)協(xié)同過濾推薦方法包括以下步驟:
根據(jù)所有用戶平均評分對原有用戶評分區(qū)間進(jìn)行修正,利用修正后的用戶評分區(qū)間均值和所有用戶平均評分,對原有用戶評分進(jìn)行修正,獲取歸一化處理后的用戶評分;
根據(jù)歸一化處理后的用戶評分對評分差均值進(jìn)行調(diào)整和歸一化,結(jié)合原jaccard相似性系數(shù)得到改進(jìn)后的jaccard相似性系數(shù),以此獲取用戶評分相似度;
通過用戶的性別、年齡、職業(yè)特征信息,對用戶屬性相似度進(jìn)行計(jì)算;
將用戶評分相似度和用戶屬性相似度線性結(jié)合作為最終用戶相似度,并進(jìn)行近鄰計(jì)算,生成推薦列表。
所述歸一化處理后的用戶評分統(tǒng)一了用戶評價(jià)尺度,對于同一物品,若用戶的喜愛程度相同,用戶評分為均值k。
所述改進(jìn)后的jaccard相似性系數(shù)具體為:
其中,sim(u',v')jaccard+為改進(jìn)后的jaccard相似性系數(shù);sim(u',v')jaccard為jaccard相似性系數(shù);iu’v’為用戶u’與用戶v’共同評價(jià)的物品集合;n表示用戶u’與用戶v’共同評價(jià)的物品總數(shù);l為調(diào)節(jié)因子,用于對評分差值產(chǎn)生的影響進(jìn)行調(diào)節(jié);rmax是評分規(guī)則中的最高分;rmin是評分規(guī)則中的最低分;diff(u',v')為歸一化處理后的評分差均值;iu'為用戶u’評價(jià)的物品集合;iv'為用戶v’評價(jià)的物品集合;ru'i為用戶u’對物品i的評分;rv'i為用戶v’對物品i的評分;i為物品。
所述通過用戶的性別、年齡、職業(yè)特征信息,對用戶屬性相似度進(jìn)行計(jì)算的步驟具體為:
simattr(u,v)=a*sex(u,v)+b*age(u,v)+c*job(u,v)
其中,a是性別特征權(quán)重因子;b是年齡特征權(quán)重因子;c是職業(yè)特征權(quán)重因子;sex(u,v)位性別屬性相似度;age(u,v)為年齡屬性相似度;job(u,v)為職業(yè)屬性相似度;u,v均為用戶。
所述將用戶評分相似度和用戶屬性相似度線性結(jié)合作為最終用戶相似度,并進(jìn)行近鄰計(jì)算,生成推薦列表的步驟具體為:
根據(jù)最近鄰的打分記錄與目標(biāo)用戶的兩兩相似度進(jìn)行分析;
分析結(jié)果即目標(biāo)用戶對未評分物品的預(yù)測評分;
將未評分物品按預(yù)測評分高低排序;選擇評分最高的一些物品生成推薦列表。
本發(fā)明提出了一種新的推薦算法即結(jié)合用戶特征的改進(jìn)協(xié)同過濾推薦方法,它致力于統(tǒng)一用戶評價(jià)尺度,使用效果更好的用戶評分相似度計(jì)算方法,結(jié)合用戶特征信息,使用戶相似度計(jì)算更精確,間接地提高算法的推薦質(zhì)量,其有益效果主要體現(xiàn)在以下三個方面:
(1)解決了傳統(tǒng)算法用戶評價(jià)尺度混亂的問題,使用戶評分相似度計(jì)算的誤差更?。?/p>
(2)采用改進(jìn)jaccard相似性系數(shù)方法[1],提高用戶評分相似度的精確度;
(3)利用了用戶特征信息,加入用戶屬性相似度,使最終用戶相似度更加準(zhǔn)確。
附圖說明
圖1為一種基于用戶特征的改進(jìn)協(xié)同過濾推薦方法的流程圖;
圖2為用戶評價(jià)矩陣的示意圖;
圖3為用戶相似度計(jì)算流程圖;
圖4為一種基于用戶特征的改進(jìn)協(xié)同過濾推薦方法的另一流程圖。
具體實(shí)施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面對本發(fā)明實(shí)施方式作進(jìn)一步地詳細(xì)描述。
實(shí)施例1
本發(fā)明實(shí)施例在傳統(tǒng)的基于用戶的協(xié)同過濾算法的基礎(chǔ)上,對用戶評分?jǐn)?shù)據(jù)進(jìn)行了歸一化處理,采用了改進(jìn)后的jaccard相似性系數(shù)方法作為用戶評分相似度度量方法,并加入對用戶特征信息的考量,將用戶屬性相似度和用戶評分相似度線性結(jié)合作為最終用戶相似度,然后利用最終用戶相似度進(jìn)行近鄰計(jì)算,生成推薦列表,參見圖1,該方法包括以下步驟:
101:獲取所有用戶平均評分,根據(jù)所有用戶平均評分對原有用戶評分區(qū)間進(jìn)行修正,利用修正后的用戶評分區(qū)間均值和所有用戶平均評分,對原有用戶評分進(jìn)行修正,以此獲取歸一化處理后的用戶評分;
通過上述步驟101的處理,使得所有用戶平均評分都相等,當(dāng)用戶的喜愛程度相同時,其評分也是相同的,由此統(tǒng)一了用戶的評價(jià)尺度。
102:根據(jù)歸一化處理后的用戶評分對評分差均值進(jìn)行調(diào)整和歸一化處理后,結(jié)合原jaccard相似性系數(shù)得到改進(jìn)后的jaccard相似性系數(shù),以此獲取用戶評分相似度;
其中,改進(jìn)的jaccard相似性系數(shù)方法是在原有的jaccard相似性系數(shù)方法基礎(chǔ)上,加入了對用戶評分?jǐn)?shù)據(jù)的計(jì)算。改進(jìn)后的jaccard相似性系數(shù)考慮了用戶之間的共評項(xiàng)目和非共評項(xiàng)目,克服了余弦相似度等傳統(tǒng)相似度計(jì)算方法的缺點(diǎn),使用戶評分相似度計(jì)算更精確。
103:通過用戶的性別、年齡、職業(yè)特征信息,對用戶屬性相似度進(jìn)行計(jì)算;
其中,用戶屬性相似度的計(jì)算采用了用戶的性別、年齡、職業(yè)特征信息,根據(jù)各特征信息對用戶偏好的影響決定其重要性,以此賦予各屬性以不同的權(quán)重因子,形成用戶屬性相似度計(jì)算公式。用戶屬性相似度屬于客觀相似性,對其進(jìn)行合理的利用可以提高對用戶相似度計(jì)算的精確度。
104:將用戶評分相似度和用戶屬性相似度線性結(jié)合作為最終用戶相似度;利用最終用戶相似度進(jìn)行近鄰計(jì)算,生成推薦列表。
其中,該步驟具體為:
根據(jù)最近鄰的打分記錄與目標(biāo)用戶的兩兩相似度進(jìn)行分析;
分析結(jié)果即目標(biāo)用戶對未評分物品的預(yù)測評分;
將未評分物品按預(yù)測評分高低排序;選擇評分最高的一些物品生成推薦列表。
其中,上述物品具體指的是用戶沒有評分或購買過的商品,可以是電影、音樂、購物網(wǎng)站上的物品等,具體實(shí)現(xiàn)時,本發(fā)明實(shí)施例對此不做限制。
本發(fā)明實(shí)施例首次結(jié)合步驟101-步驟104進(jìn)行用戶相似度的計(jì)算,生成結(jié)合用戶特征的改進(jìn)協(xié)同過濾算法,提高原有算法的推薦質(zhì)量。
實(shí)施例2
下面結(jié)合具體的計(jì)算公式、實(shí)例對實(shí)施例1中的方案進(jìn)行進(jìn)一步地介紹,詳見下文描述:
201:用戶評分?jǐn)?shù)據(jù)歸一化處理;
首先遍歷每個用戶的歷史評分記錄,得到每個用戶的平均評分:
其中,rui表示用戶u對物品i的評分;n為用戶u評分過的物品個數(shù)。
重新設(shè)定用戶的評分區(qū)間為以下公式:
其中,m表示所有用戶的個數(shù);min(ru1,ru2,…,run)表示用戶u的評分記錄中的最低分,max(ru1,ru2,…,run)表示用戶u評分記錄中的最高分。
通過上述處理后的用戶評分區(qū)間均值為k,k值如下:
修正評分區(qū)間后的用戶評分應(yīng)按以下公式計(jì)算得出:
其中,
將以上幾步的公式帶入后,得到新的用戶平均評分如下:
可以看出,經(jīng)過處理后,所有用戶的平均評分都為均值k,即用戶的評價(jià)尺度得到了統(tǒng)一。
202:用戶評分相似度計(jì)算;
計(jì)算用戶u與用戶v在共同評價(jià)物品上的評分差值,將這些評分差值記為用戶u’與用戶v’的評分差異向量:
du’v’={d1,d2,…,di,…dn}
其中,di表示用戶u’與用戶v’在共同評價(jià)的物品i上評分差值的絕對值;n表示用戶u’與用戶v’共同評價(jià)的物品總數(shù)。
按如下公式計(jì)算評分差均值:
其中,iu’v’為用戶u’與用戶v’共同評價(jià)的物品集合;ru'i為用戶u’對物品i的評分;rv'i為用戶v’對物品i的評分。
將上一步中評分差均值公式調(diào)整如下:
其中,l為調(diào)節(jié)因子,它的作用是對評分差值產(chǎn)生的影響進(jìn)行調(diào)節(jié);+表示這是對上一步評分差均值公式進(jìn)行調(diào)整后的版本。
然后對評分差均值公式進(jìn)行歸一化處理,處理方法如下:
其中,rmax是評分規(guī)則中的最高分;rmin是評分規(guī)則中的最低分。
通過上述處理能去除評分綱量的影響,使計(jì)算結(jié)果處于[0,1]的區(qū)間內(nèi),便于表示。
將原始的jaccard相似性系數(shù)公式與上一步得到的處理后評分差均值公式進(jìn)行整合,得到改進(jìn)后的jaccard相似性系數(shù),公式如下:
其中,sim(u',v')jaccard+為改進(jìn)后的jaccard相似性系數(shù);sim(u',v')jaccard為jaccard相似性系數(shù);iu’v’為用戶u’與用戶v’共同評價(jià)的物品集合;n表示用戶u’與用戶v’共同評價(jià)的物品總數(shù);l為調(diào)節(jié)因子,用于對評分差值產(chǎn)生的影響進(jìn)行調(diào)節(jié);rmax是評分規(guī)則中的最高分;rmin是評分規(guī)則中的最低分;diff(u',v')為歸一化處理后的評分差均值;iu'為用戶u’評價(jià)的物品集合;iv'為用戶v’評價(jià)的物品集合;ru'i為用戶u’對物品i的評分;rv'i為用戶v’對物品i的評分;i為物品。
上述整合后的公式既保留了原有jaccard相似性系數(shù)的優(yōu)點(diǎn),又加入了歸一化處理后均值公式作為調(diào)整,使得用戶評分相似度的度量更為精確。
203:用戶屬性相似度計(jì)算;
用戶屬性相似度包括:性別屬性相似度、年齡屬性相似度、職業(yè)屬性相似度。
性別相似度計(jì)算公式如下:
sex(u,v)=1,u.sex=v.sex;
sex(u,v)=0,u.sex≠v.sex;
即當(dāng)用戶u與用戶v性別屬性相同時,用戶u與用戶v的性別屬性相似度sex(u,v)為1,否則為0。
年齡相似度計(jì)算公式如下:
age(u,v)=1,|u.age-v.age|<10;
age(u,v)=0,|u.age-v.age|≥10;
即當(dāng)用戶u與用戶v年齡相差小于10歲,則他們的年齡相似度為1,否則為0。
職業(yè)屬性相似度計(jì)算公式如下:
job(u,v)=1,u.job=v.job;
job(u,v)=0,u.job≠v.job;
即當(dāng)用戶u與用戶v職業(yè)屬性相同時,他們的職業(yè)屬性相似度為1,否則為0。
綜合以上相似度,用戶屬性相似度的計(jì)算公式如下:
simattr(u,v)=a*sex(u,v)+b*age(u,v)+c*job(u,v)(10)
其中,a是性別特征權(quán)重因子;b是年齡特征權(quán)重因子;c是職業(yè)特征權(quán)重因子。
本發(fā)明實(shí)施例中,a的值為0.334095,b的值為0.333103,c的值為0.332802,具體實(shí)現(xiàn)時,本發(fā)明實(shí)施例對三個參數(shù)的取值不做限制,具體取值根據(jù)測試的各屬性相似度準(zhǔn)確性做調(diào)整,需滿足總和為1。
204:用戶最終相似度計(jì)算;
將步驟202和203計(jì)算得出的用戶評分相似度和用戶屬性相似度線性結(jié)合,得到用戶綜合相似度,公式如下:
sim(u,v)=d*simattr(u,v)+sim(u,v)jaccard+(11)
其中,d為用戶屬性相似度的權(quán)重因子,值為0.01,用戶評分相似度的權(quán)重因子默認(rèn)為1。
205:利用最終用戶相似度進(jìn)行近鄰計(jì)算,生成推薦列表。
其中,上述近鄰計(jì)算、以及生成推薦列表的過程為本領(lǐng)域技術(shù)人員所公知,本發(fā)明實(shí)施例對此不做贅述。
綜上所述,本發(fā)明實(shí)施例通過上述步驟201-步驟205進(jìn)行用戶相似度的計(jì)算,生成結(jié)合用戶特征的改進(jìn)協(xié)同過濾算法,利用了用戶特征信息,加入用戶屬性相似度,使最終用戶相似度更加準(zhǔn)確,提高原有算法的推薦質(zhì)量。
實(shí)施例3
下面結(jié)合具體的實(shí)驗(yàn)數(shù)據(jù)、圖2-圖4對實(shí)施例1和2中的方案進(jìn)行可行性驗(yàn)證,詳見下文描述:
(1)用戶評分歸一化:
首先根據(jù)用戶的歷史評分記錄生成用戶評價(jià)矩陣,矩陣形式如圖2所示。遍歷矩陣中每一個非零的值,對其進(jìn)行歸一化處理,得到新的用戶評分矩陣。
(2)用戶相似度計(jì)算:
遍歷用戶評價(jià)矩陣中除用戶u以外的所有用戶,計(jì)算他們與用戶u的兩兩相似度。計(jì)算過程如圖3所示,首先根據(jù)評分記錄,利用改進(jìn)jaccard相似性系數(shù)方法計(jì)算用戶u與其他用戶的評分相似度,然后比對用戶u與其他用戶的性別、年齡、職業(yè)特征信息,得出用戶u與其他用戶的屬性相似度,最后根據(jù)用戶最終相似度計(jì)算公式得出用戶u與其他用戶的最終相似度。
(3)近鄰計(jì)算,得出推薦列表。
如圖4所示,計(jì)算出用戶相似度后,將除用戶u以外的所有用戶按他們與用戶u的相似度高低進(jìn)行排序,根據(jù)排名結(jié)果選擇某些用戶作為用戶u的最近鄰集合,集合的大小可以自擬,一般情況下,最近鄰用戶數(shù)量越多,推薦效果越好。然后對用戶u沒有評價(jià)過的物品進(jìn)行評分預(yù)測,預(yù)測評分公式如下:
其中,pu,i表示用戶u對物品i的預(yù)測評分;k為用戶u的最近鄰集合;rv,i為用戶u的最近鄰用戶v對物品i的評分;p為標(biāo)準(zhǔn)化因子:
其中,sim(u,v)表示用戶u與用戶v之間的相似度;avg(ru)表示用戶u評分的平均值;avg(rv)表示用戶v評分的平均值。
計(jì)算出所有用戶u未評價(jià)過的物品的預(yù)測評分后,根據(jù)評分高低對物品進(jìn)行排序,選擇評分最高的一些物品生成推薦列表,向用戶進(jìn)行推薦。
通過上述的處理,使得通過本發(fā)明實(shí)施例得出的推薦,用戶的實(shí)際評分與算法計(jì)算出的預(yù)測評分誤差更小,因此推薦質(zhì)量更高。
傳統(tǒng)基于用戶的協(xié)同過濾算法在用戶評分相似度計(jì)算中,默認(rèn)用戶的評價(jià)尺度是相同的,未考慮用戶的評價(jià)尺度問題,但實(shí)際上每個用戶表達(dá)對物品喜愛程度的方式是不同的,評價(jià)尺度的混亂會給用戶評分相似度的度量帶來誤差。本方法通過對用戶評分進(jìn)行歸一化處理統(tǒng)一了用戶評價(jià)尺度,解決了原傳統(tǒng)算法評價(jià)尺度不一的問題,進(jìn)一步提高了用戶評分相似度的準(zhǔn)確度。
傳統(tǒng)基于用戶的協(xié)同過濾算法在用戶評分相似度計(jì)算中僅考慮了用戶之間的共同評分項(xiàng)目,缺乏對用戶整體評分情況的考慮,這樣會給用戶評分相似度帶來較大的誤差。本發(fā)明實(shí)施例提出的方法中使用了改進(jìn)的jaccard相似性系數(shù)方法,既考慮了用戶的共同評分項(xiàng)目,也考慮了兩個用戶的非共同評分項(xiàng)目;既宏觀地考慮了兩個用戶各自的整體評分情況,也對二者評分記錄中每一次評分體現(xiàn)出的細(xì)微相似性進(jìn)行了觀察和度量。這樣減小了用戶評分相似度的誤差,提高了其精確度。
傳統(tǒng)基于用戶的協(xié)同過濾算法在用戶評分相似度計(jì)算中,不考慮用戶的特征信息的利用,本方法提出的算法利用了性別、年齡、職業(yè)信息進(jìn)行用戶屬性相似度計(jì)算,使最終用戶相似度結(jié)合了主觀相似性和客觀相似性,使其計(jì)算更加精確。
參考文獻(xiàn)
[1]程飛,賈彩燕.一種基于用戶相似性的協(xié)同過濾推薦算法[j].計(jì)算機(jī)工程與科學(xué),2013,35(5):161-165.本領(lǐng)域技術(shù)人員可以理解附圖只是一個優(yōu)選實(shí)施例的示意圖,上述本發(fā)明實(shí)施例序號僅僅為了描述,不代表實(shí)施例的優(yōu)劣。
以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。