當(dāng)前位置:首頁(yè) > 物聯(lián)網(wǎng) > 《物聯(lián)網(wǎng)技術(shù)》雜志
[導(dǎo)讀]摘要:協(xié)同過(guò)濾算法已經(jīng)普遍地應(yīng)用于商業(yè)推薦系統(tǒng)中并且取得了巨大的成功。協(xié)同過(guò)濾算法可以分為基于用戶的算法和基于物品的算法兩大類,每一類中又包含多種適用性不同的算法。為了使推薦系統(tǒng)設(shè)計(jì)人員能夠更好地針對(duì)其系統(tǒng)用戶及物品的特征選擇有效的協(xié)同過(guò)濾算法,文中通過(guò)對(duì)比的方法,闡述了各種基于用戶和基于物品的協(xié)同過(guò)濾算法的實(shí)現(xiàn)方法及對(duì)應(yīng)的優(yōu)缺點(diǎn)。

引言

二十一世紀(jì)互聯(lián)網(wǎng)的迅猛發(fā)展,把人們推向了一個(gè)信息爆炸的時(shí)代。基于互聯(lián)網(wǎng)的系統(tǒng)相比于過(guò)去,數(shù)據(jù)量每時(shí)每刻都在迅速地增長(zhǎng)。用戶從海量的信息中挑選自己需要的信息,將變得愈加困難。為了使用戶能夠感受到良好的體驗(yàn)從而吸引更多的用戶,面向用戶的系統(tǒng)需要對(duì)海量信息進(jìn)行篩選、過(guò)濾,預(yù)測(cè)用戶最可能關(guān)注和感興趣的信息并呈現(xiàn)在用戶面前。這即提高了系統(tǒng)工作的效率,也節(jié)省了用戶篩選信息的時(shí)間。因此對(duì)信息的篩選和過(guò)濾成為一個(gè)系統(tǒng)重要組成部分。搜索引擎可以在一定程度上解決信息篩選問(wèn)題,但還遠(yuǎn)遠(yuǎn)無(wú)法滿足需求。搜索引擎需要用戶提供關(guān)鍵詞來(lái)對(duì)信息進(jìn)行篩選。但當(dāng)用戶無(wú)法準(zhǔn)確描述自己的需求時(shí),捜索引擎的篩選效果將大打折扣。在此背景下,推薦系統(tǒng)出現(xiàn)了,推薦系統(tǒng)的任務(wù)就是解決上述的問(wèn)題。

1協(xié)同過(guò)濾系統(tǒng)

協(xié)同過(guò)濾系統(tǒng)是第一代被提出并得到廣泛應(yīng)用的推薦系統(tǒng),其最大的優(yōu)點(diǎn)是對(duì)推薦對(duì)象沒(méi)有特殊的要求,能處理音樂(lè)、電影等難以進(jìn)行文本結(jié)構(gòu)表示的對(duì)象。其原理就是利用已知的物品信息和用戶打分信息,去預(yù)測(cè)某用戶對(duì)某物品的打分,并根據(jù)預(yù)測(cè)的分?jǐn)?shù)來(lái)決定是否向用戶推薦該物品。設(shè)U={U1,"2,…,Un}為所有用戶集合,S={S1,S2,…,sN}為所有物品的集合,5為用戶"對(duì)物品s的打分,而這個(gè)打分是未知的,需要通過(guò)協(xié)同過(guò)濾系統(tǒng)的算法去預(yù)測(cè)。得到了預(yù)測(cè)分?jǐn)?shù)后,再根據(jù)此預(yù)測(cè)分?jǐn)?shù)所在的分?jǐn)?shù)區(qū)間,判斷用戶是否有可能對(duì)該物品感興趣。若經(jīng)過(guò)判斷,用戶可能對(duì)該物品感興趣,貝懵該物品推薦給用戶。

協(xié)同過(guò)濾系統(tǒng)的算法可以分為兩類:一是基于用戶(User-Based)的算法,二是基于物品(Item-based)的算法。

2基于用戶(User-Based)的協(xié)同過(guò)濾算法

基于用戶的算法以用戶為出發(fā)點(diǎn),先根據(jù)已打過(guò)分的物品信息計(jì)算用戶U與其他用戶之間的相似度,得到最為鄰近的k個(gè)用戶,將這k個(gè)用戶的集合標(biāo)記為U,然后根據(jù)相似度加權(quán)得到5。用sim(u,u)表示兩用戶之間的相似度,Pu.s表示預(yù)測(cè)的分?jǐn)?shù),則最通用的加權(quán)預(yù)測(cè)公式:

協(xié)同過(guò)濾算法的研究

公式中用戶u和u越相似,sim(u,u)的值越大,從而饑將具有更大的權(quán)重用于計(jì)算用戶可能的打分Pu,s。

最常用的計(jì)算相似度的方法有明考斯基(Minkowski)距離法、Pearson相關(guān)系數(shù)法和Cosine相似性法。

2.1明考斯基(Minkowski)距離法

明考斯基距離法非常直觀,且易于計(jì)算,復(fù)雜度較低。距離越短,說(shuō)明用戶x和y之間的相似度越高。用戶x和y之間的明考斯基距離公式:

協(xié)同過(guò)濾算法的研究


若 r=1,則該公式退化成曼哈頓距離公式 :


協(xié)同過(guò)濾算法的研究



若 r=2,則該公式退化成歐幾里得距離公式 :


協(xié)同過(guò)濾算法的研究


由于在明考斯基距離法中,距離值越小,表示兩用戶越相似,因此在利用上述預(yù)測(cè)公式時(shí),需要對(duì)距離進(jìn)行一步轉(zhuǎn)換:

協(xié)同過(guò)濾算法的研究


通過(guò)轉(zhuǎn)換,便可得到相似度值,并滿足預(yù)測(cè)公式的對(duì)相似度值的要求。

2.2Pearson相關(guān)系數(shù)法

在實(shí)際中,不同用戶給物品打分的習(xí)慣不同:有的人會(huì)避免極端分?jǐn)?shù)(避免最高和最低分);有的只在某個(gè)分?jǐn)?shù)段內(nèi)打分。這會(huì)導(dǎo)致不同用戶對(duì)同一產(chǎn)品打的分?jǐn)?shù)所代表的意義不同。在這種情況下,直接利用明考斯基距離法,可能會(huì)無(wú)法如實(shí)反映用戶之間的相似度。利用Pearson相關(guān)系數(shù)表示相似度,可以解決明考斯基距離法隱含的缺陷,有效的解決用戶打分習(xí)慣不同這一問(wèn)題。

協(xié)同過(guò)濾算法的研究


Pearson相關(guān)系數(shù)的值在[-1,1]之間變化。1表示相似度最高,-1表示相似度最低。

但是上述公式有一個(gè)嚴(yán)重的缺點(diǎn):需要多趟遍歷數(shù)據(jù)。這大大提高了算法的時(shí)間復(fù)雜度。因此一般釆用下述的Pearson相關(guān)系數(shù)的近似公式:

協(xié)同過(guò)濾算法的研究



式中:Sxy 表示用戶 x y 共同打分的物品的集合,card(Sxy為集合 Sxy 中元素的個(gè)數(shù)。該近似公式看似復(fù)雜,但只需遍歷一遍數(shù)據(jù)即可,因此,一般用此近似公式來(lái)計(jì)算 Pearson 相關(guān)系數(shù)。


2.3Cosine相似性

計(jì)算相似性時(shí),只會(huì)用到用戶共同打分的產(chǎn)品的信息,其余產(chǎn)品信息,在計(jì)算兩個(gè)用戶之間相似性時(shí)是必須拋棄的,因此上述兩種方法必須首先找到兩個(gè)用戶共同打分的物品,才能計(jì)算相似度。在許多系統(tǒng)中,單個(gè)用戶只會(huì)給龐大的物品集合中有限的物品打分。此時(shí),若采用上述兩種方法,會(huì)有大量操作和時(shí)間用在查找兩用戶共同打分的物品上。

Cosine相似性法[3,8]可以有效的解決上述問(wèn)題。在Cosine相似性法中,用戶x和y都用n(n為全部物品的個(gè)數(shù))維向量表示x,y,向量的元素為用戶對(duì)所有產(chǎn)品的評(píng)分,若用戶對(duì)該產(chǎn)品沒(méi)有打分,則用零值表示。因此用戶之間的相似性可用它們對(duì)應(yīng)的向量之間的余弦值表示:

協(xié)同過(guò)濾算法的研究


其中x·y表示兩個(gè)向量的點(diǎn)積,S為整個(gè)物品集合。在計(jì)算過(guò)程中,由于乘法的作用,會(huì)自然消除兩用戶沒(méi)有共同打分的物品對(duì)相似度計(jì)算的影響。由于不必專門(mén)去查找兩用戶共同打分的物品,這極大地提高了效率,因此該算法非常適用于有效數(shù)據(jù)非常稀疏的情形。


基于用戶的協(xié)同過(guò)濾算法利用兩兩用戶之間的相似度來(lái)做出預(yù)測(cè),相似度算法的選擇決定了預(yù)測(cè)的精度。上述三種計(jì)算相似度的方法是最常見(jiàn),此外還有許多其它已被提出的計(jì)算相似度的方法。

3基于物品(Item-Based)的協(xié)同過(guò)濾

基于用戶的協(xié)同過(guò)濾算法在過(guò)去已經(jīng)取得了很大的成功,但隨著它的廣泛應(yīng)用,漸漸發(fā)現(xiàn)了兩方面的主要問(wèn)題:

一是規(guī)模性:獲得最鄰近用戶的計(jì)算量隨著用戶數(shù)和物品數(shù)的增加而迅速上升。有著百萬(wàn)用戶和物品的網(wǎng)絡(luò)推薦系統(tǒng)在使用基于用戶的協(xié)同過(guò)濾算法時(shí)將遇到非常嚴(yán)重的規(guī)模性問(wèn)題。

二是稀疏性:許多商業(yè)推薦系統(tǒng)(例如,亞馬遜圖書(shū)推薦系統(tǒng))擁有巨大的物品集合。即使最活躍的用戶購(gòu)買(mǎi)書(shū)的數(shù)量也不到所有書(shū)籍總量的1%。。所以,用戶很有可能與其他任何用戶都沒(méi)有共同打分的書(shū)籍。在這樣的情況下,基于用戶的推薦系統(tǒng)很有可能無(wú)法給一個(gè)用戶做出任何推薦。

此外,基于用戶之間相似度的方案需要實(shí)時(shí)計(jì)算相似度。而且,計(jì)算相似度要求必須已知最少數(shù)量的物品打分,如果已知的數(shù)據(jù)太少,計(jì)算相似度的結(jié)果會(huì)非常不準(zhǔn)確,進(jìn)而無(wú)法給用戶做出合理的推薦。

3.1AdjustedCosine相似性

基于物品的協(xié)同過(guò)濾算法一般也需要計(jì)算相似度,但是與基于用戶的協(xié)同過(guò)濾算法的不同之處在于:前者計(jì)算的是物品之間的相似度,而后者計(jì)算的是用戶之間的相似度。計(jì)算物品的相似度,也可以利用上述的Cosine相似性算法,但是利用Cosine相似性算法有一個(gè)嚴(yán)重的缺點(diǎn):沒(méi)有考慮不同用戶打分習(xí)慣的不同。而AdjustedCosine相似性算法作為Cosine相似性算法的改進(jìn),通過(guò)減去相應(yīng)用戶打分的平均值,來(lái)消除Cosine相似性算法的缺陷。利用AdjustedCosine相似性算法計(jì)算物品i和j之間的相似度的公式為:

協(xié)同過(guò)濾算法的研究


其中云為用戶u的所有打分平均值。根據(jù)物品之間的相似度得到最相似物品集合i后,利用加權(quán)方式預(yù)測(cè)用戶u對(duì)物品i的打分:

協(xié)同過(guò)濾算法的研究


3.2Slopeone

Slopeones算法既使用了兩兩物品的打分的相對(duì)關(guān)系信息,也使用了用戶對(duì)除待預(yù)測(cè)物品以外其他物品的打分信息。Slopeone算法可以被分成兩個(gè)部分:一、事先(在用戶訪問(wèn)量較少的時(shí)刻,如午夜)計(jì)算出兩兩物品之間打分的偏差;二、預(yù)測(cè)用戶對(duì)待預(yù)測(cè)物品的打分。Slopeone算法有多種,其中WeightedSlopeone算法是比較常用的。

計(jì)算物品i相對(duì)于物品,的打分偏差公式:

協(xié)同過(guò)濾算法的研究

用WeightedSlopeone方法預(yù)測(cè)用戶u對(duì)物品j的打分公式為:

協(xié)同過(guò)濾算法的研究

式中:j表示對(duì)物品i和j都打過(guò)分的用戶集合,cji=card(Uj表示集合Uj中用戶的數(shù)量。

Slopeone算法在有著較高精確度的前提下,具有易實(shí)現(xiàn)、復(fù)雜度低的優(yōu)點(diǎn)。最關(guān)鍵的是,Slopeone算法的第一步是可以在系統(tǒng)空閑的時(shí)刻提前計(jì)算的,這大大降低了查詢時(shí)刻的計(jì)算量,極大地提高了系統(tǒng)的推薦效率。

基于物品的協(xié)同過(guò)濾算法利用物品之間的關(guān)系,很好地解決了上述基于用戶的協(xié)同過(guò)濾算法的稀疏性問(wèn)題,且Slopeone算法中物品之間的打分偏差都在事先計(jì)算出來(lái),在一定程度上解決了基于用戶的協(xié)同過(guò)濾算法的規(guī)模性問(wèn)題。

4結(jié)語(yǔ)

協(xié)同過(guò)濾系統(tǒng)中每種算法都有其最適用的場(chǎng)合,綜合各種算法,協(xié)同過(guò)濾系統(tǒng)有著非常廣泛的應(yīng)用。構(gòu)建協(xié)同過(guò)濾系統(tǒng)時(shí),應(yīng)該仔細(xì)分析系統(tǒng)的數(shù)據(jù)特點(diǎn),綜合考量各種算法的優(yōu)缺點(diǎn),選擇最適合的。但是,協(xié)同過(guò)濾系統(tǒng)算法也存在著共同的制約問(wèn)題。隨著數(shù)據(jù)量的增大,使用各種算法構(gòu)建的系統(tǒng)都面臨計(jì)算負(fù)荷越來(lái)越大的問(wèn)題。比較可行的方案是設(shè)計(jì)某種近似的動(dòng)態(tài)算法,每次都利用到以前的計(jì)算結(jié)果,而不需要完全重新的計(jì)算。關(guān)于這方面算法的研究若取得進(jìn)展,則可以極大地提高推薦系統(tǒng)的效率。

20211121_619a03831ebe1__協(xié)同過(guò)濾算法的研究

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉