推薦系統(tǒng)綜述_第1頁
推薦系統(tǒng)綜述_第2頁
推薦系統(tǒng)綜述_第3頁
推薦系統(tǒng)綜述_第4頁
推薦系統(tǒng)綜述_第5頁
已閱讀5頁,還剩117頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

推薦系統(tǒng)綜述推薦系統(tǒng)

推薦系統(tǒng)概述推薦系統(tǒng)的應(yīng)用推薦系統(tǒng)的產(chǎn)生與發(fā)展推薦算法

推薦系統(tǒng)的評判標(biāo)準(zhǔn)

推薦系統(tǒng)的評測標(biāo)準(zhǔn)數(shù)據(jù)集推薦系統(tǒng)的重點(diǎn)、難點(diǎn)問題推薦系統(tǒng)研究發(fā)展的熱點(diǎn)方向結(jié)論

推薦系統(tǒng)概述

互聯(lián)網(wǎng)規(guī)模和覆蓋面的迅速增長帶來了信息超載(informationoverload)問題:過量信息同時呈現(xiàn)使得用戶無法從中獲取對自己有用的部分,信息使用效率反而降低?,F(xiàn)有的很多網(wǎng)絡(luò)應(yīng)用,如門戶網(wǎng)站、搜索引擎和專業(yè)數(shù)據(jù)索引本質(zhì)上都是幫助用戶過濾信息的手段。然而這些工具只滿足主流需求,沒有個性化的考慮,仍然無法很好地解決信息超載的問題。

推薦系統(tǒng)概述

對于搜索引擎來說,用戶在搜索互聯(lián)網(wǎng)中的信息時,需要在搜索引擎中輸入“查詢關(guān)鍵詞”,搜索引擎根據(jù)用戶的輸入,在系統(tǒng)后臺進(jìn)行信息匹配,將與用戶查詢相關(guān)的信息展示給用戶。但是,若用戶無法想到準(zhǔn)確描述自己需求的關(guān)鍵詞,搜索引擎就變得無能為力。

推薦系統(tǒng)不需要用戶提供明確的需求,而是通過分析用戶的歷史行為來對用戶的興趣進(jìn)行建模,從而主動給用戶推薦可能滿足他們興趣和需求的信息。搜索引擎和推薦系統(tǒng)對用戶來說是兩個互補(bǔ)的工具。推薦系統(tǒng)與搜索引擎的區(qū)別

推薦系統(tǒng)與以搜索引擎為代表的信息檢索(informationretrieval)系統(tǒng)的區(qū)別:搜索推薦注重結(jié)果(如網(wǎng)頁)之間的關(guān)系和排序還研究用戶模型(userprofile)和用戶的喜好,基于社會網(wǎng)絡(luò)(socialnetwork)進(jìn)行個性化的計(jì)算(personalization)由用戶主導(dǎo),包括輸入查詢詞和選擇結(jié)果,結(jié)果不好用戶會修改查詢再次搜索。由系統(tǒng)主導(dǎo)用戶的瀏覽順序,引導(dǎo)用戶發(fā)現(xiàn)需要的結(jié)果。高質(zhì)量的推薦系統(tǒng)會使用戶對該系統(tǒng)產(chǎn)生依賴。推薦系統(tǒng)不僅能夠?yàn)橛脩籼峁﹤€性化的服務(wù),而且能夠與用戶建立長期穩(wěn)定的關(guān)系,提高用戶忠誠度,防止用戶流失。推薦系統(tǒng)概述

隨著互聯(lián)網(wǎng)的發(fā)展,把線下的推薦模式搬到線上成了大勢所趨,大大擴(kuò)展了推薦系統(tǒng)的應(yīng)用:亞馬遜的商品推薦,F(xiàn)acebook的好友推薦,Digg的文章推薦,豆瓣的豆瓣猜,Last.fm和豆瓣FM的音樂推薦,Gmail里的廣告

在如今互聯(lián)網(wǎng)信息過載的情況下,信息消費(fèi)者想方便地找到自己感興趣的內(nèi)容,信息生產(chǎn)者則想將自己的內(nèi)容推送給最合適的目標(biāo)用戶。推薦系統(tǒng)正充當(dāng)了這兩者的中介,一箭雙雕解決這兩個難題。

推薦系統(tǒng)(recommendersystem)作為一種信息過濾的重要手段,是當(dāng)前解決信息超載問題的非常有潛力的方法。

推薦系統(tǒng)的應(yīng)用近幾年,隨著B2C(Business-to-Customer)電子商務(wù)的蓬勃發(fā)展,推薦系統(tǒng)在互聯(lián)網(wǎng)中的優(yōu)勢地位也越來越明顯。在國際方面,比較著名的電子商務(wù)網(wǎng)站有Amazon和eBay,其中Amazon平臺中采用的推薦算法被認(rèn)為是非常成功的。在國內(nèi),比較大型的電子商務(wù)平臺網(wǎng)站有淘寶網(wǎng)(包括天貓商城)、京東商城、當(dāng)當(dāng)網(wǎng)、蘇寧易購等。在這些電子商務(wù)平臺中,網(wǎng)站提供的商品數(shù)量不計(jì)其數(shù),網(wǎng)站中的用戶規(guī)模也非常巨大。據(jù)不完全統(tǒng)計(jì),天貓商城中的商品數(shù)量已經(jīng)超過了4000萬。在如此龐大的電商網(wǎng)站中,用戶根據(jù)自己的購買意圖輸入關(guān)鍵字查詢后,會得到很多相似的結(jié)果,用戶在這些結(jié)果中也很難區(qū)分異同,用戶也難于選擇合適的物品。于是,推薦系統(tǒng)作為能夠根據(jù)用戶興趣為用戶推薦一些用戶感興趣的商品,從而為用戶在購物的選擇中提供建議的需求非常明顯。目前比較成功的電子商務(wù)網(wǎng)站中,都不同程度地利用推薦系統(tǒng)在用戶購物的同時,為用戶推薦一些商品,從而提高網(wǎng)站的銷售額。電商推薦案例——亞馬遜推薦系統(tǒng)的應(yīng)用

另一方面,智能手機(jī)的發(fā)展推動了移動互聯(lián)網(wǎng)的發(fā)展。

在用戶使用移動互聯(lián)網(wǎng)的過程中,其所處的地理位置等信息可以非常準(zhǔn)確地被獲取。基于此,國內(nèi)外出現(xiàn)了大量的基于用戶位置信息的網(wǎng)站。

國外比較著名的有Meetup和Flickr。

國內(nèi)著名的有豆瓣網(wǎng)和大眾點(diǎn)評網(wǎng)。例如,在大眾點(diǎn)評這種基于位置服務(wù)的網(wǎng)站中,用戶可以根據(jù)自己的當(dāng)前位置搜索餐館、酒店、影院、旅游景點(diǎn)等信息服務(wù)。同時,可以對當(dāng)前位置下的各類信息進(jìn)行點(diǎn)評,為自己在現(xiàn)實(shí)世界中的體驗(yàn)打分,分享自己的經(jīng)驗(yàn)與感受。

當(dāng)用戶使用這類基于位置的網(wǎng)站服務(wù)時,同樣會遭遇“信息過載”問題。推薦系統(tǒng)可以根據(jù)用戶的位置信息為用戶推薦當(dāng)前位置下用戶感興趣的內(nèi)容,為用戶提供符合其真正需要的內(nèi)容,提升用戶對網(wǎng)站的滿意度。社交推薦案例——豆瓣推薦系統(tǒng)的應(yīng)用

隨著社交網(wǎng)絡(luò)的興起,用戶在互聯(lián)網(wǎng)中的行為不再限于獲取信息,更多的是與網(wǎng)絡(luò)上的其他用戶進(jìn)行互動。國外著名的社交網(wǎng)絡(luò)有Facebook、LinkedIn、Twitter等,國內(nèi)的社交網(wǎng)絡(luò)有新浪微博、人人網(wǎng)、騰訊微博等。

在社交網(wǎng)站中,用戶不再是單個的個體,而是與網(wǎng)絡(luò)中的很多人具有了錯綜復(fù)雜的關(guān)系。社交網(wǎng)絡(luò)中最重要的資源就是用戶與用戶之間的這種關(guān)系數(shù)據(jù)。在社交網(wǎng)絡(luò)中,用戶間的關(guān)系是不同的,建立關(guān)系的因素可能是現(xiàn)實(shí)世界中的親人、同學(xué)、同事、朋友關(guān)系,也可能是網(wǎng)絡(luò)中的虛擬朋友,比如都是有著共同愛好的社交網(wǎng)絡(luò)成員。在社交網(wǎng)絡(luò)中,用戶與用戶之間的聯(lián)系反映了用戶之間的信任關(guān)系,用戶不單單是一個個體,用戶在社交網(wǎng)絡(luò)中的行為或多或少地會受到這些用戶關(guān)系的影響。

因此,推薦系統(tǒng)在這類社交網(wǎng)站中的研究與應(yīng)用,應(yīng)該考慮用戶社交關(guān)系的影響。推薦系統(tǒng)的應(yīng)用同時,推薦系統(tǒng)正在向零售網(wǎng)站以外的領(lǐng)域拓展:大學(xué)用它們來引導(dǎo)學(xué)生選課,移動電話公司靠它們來預(yù)測哪些用戶有可能轉(zhuǎn)投另一家供應(yīng)商,會議主辦方也測試過用它們來分配論文給審稿專家。推薦系統(tǒng)的產(chǎn)生與發(fā)展

推薦系統(tǒng)這個概念是1995年在美國人工智能協(xié)會(AAAI)上提出的。當(dāng)時CMU大學(xué)(美國賓州的卡內(nèi)基梅隆大學(xué)CarnegieMellonUniversity)的教授RobertArmstrong提出了這個概念,并推出了推薦系統(tǒng)的原型系統(tǒng)——WebWatcher。在同一個會議上,美國斯坦福大學(xué)的MarkoBalabanovic等人推出了個性化推薦系統(tǒng)LIRA1。1996年,Yahoo網(wǎng)站推出了個性化入口MyYahoo,可以看作第一個正式商用的推薦系統(tǒng)。21世紀(jì)以來,推薦系統(tǒng)的研究與應(yīng)用隨著電子商務(wù)的快速發(fā)展而異軍突起,各大電子商務(wù)網(wǎng)站都部署了推薦系統(tǒng),其中Amazon網(wǎng)站的推薦系統(tǒng)比較著名。有報(bào)告稱,Amazon網(wǎng)站中35%的營業(yè)額來自于自身的推薦系統(tǒng)。2006年,美國的DVD租賃公司Netflix在網(wǎng)上公開設(shè)立了一個推薦算法競賽——NetflixPrize。Netflix公開了真實(shí)網(wǎng)站中的一部分?jǐn)?shù)據(jù),包含用戶對電影的評分。Netflix競賽有效地推動了學(xué)術(shù)界和產(chǎn)業(yè)界對推薦算法的研究,期間提出了很多有效的算法。近幾年,隨著社會化網(wǎng)絡(luò)的發(fā)展,推薦系統(tǒng)在工業(yè)界廣泛應(yīng)用并且取得了顯著進(jìn)步。比較著名的推薦系統(tǒng)應(yīng)用有:Amazon和淘寶網(wǎng)的電子商務(wù)推薦系統(tǒng)、Netflix和MovieLens的電影推薦系統(tǒng)、Youtube的視頻推薦系統(tǒng)、豆瓣和Last.fm的音樂推薦系統(tǒng)、Google的新聞推薦系統(tǒng)以及Facebook和Twitter的好友推薦系統(tǒng)。學(xué)術(shù)界對推薦系統(tǒng)的研究

在學(xué)術(shù)界,自20世紀(jì)90年代中期出現(xiàn)第一批關(guān)于協(xié)同過濾的文章[1?3]以來,推薦系統(tǒng)在電子商務(wù)、網(wǎng)絡(luò)經(jīng)濟(jì)學(xué)和人類社會學(xué)等領(lǐng)域一直保持很高的研究熱度并逐漸成為一門獨(dú)立的學(xué)科。各種推薦算法涵蓋包括認(rèn)知科學(xué)、近似性理論、信息檢索、管理科學(xué)、市場營銷建模等在內(nèi)的眾多研究領(lǐng)域。國際數(shù)據(jù)分析領(lǐng)域的高階期刊(如IEEETrans.onKnowledgeandDataEngineering,ACMTrans.onInformationSystem等)刊載數(shù)篇推薦系統(tǒng)方面的文章。[1]ShardanandU,MaesP.Socialinformationfiltering:Algorithmsforautomating“WordofMouth”.In:Proc.oftheConf.onHumanFactorsinComputingSystems.NewYork:ACMPress,1995.210?217.

[2]HillW,SteadL,RosensteinM,FurnasG.Recommendingandevaluatingchoicesinavirtualcommunityofuse.In:Proc.oftheConf.onHumanFactorsinComputingSystems.NewYork:ACMPress,1995.194?201.

[3]ResnickP,IakovouN,SushakM,BergstromP,RiedlJ.GroupLens:Anopenarchitectureforcollaborativefilteringofnetnews.In:Proc.oftheComputerSupportedCooperativeWorkConf.NewYork:ACMPress,1994.175?186.

學(xué)術(shù)界對推薦系統(tǒng)的研究從1999年開始,美國計(jì)算機(jī)學(xué)會每年召開電子商務(wù)研討會(ACMConferenceonElectronicCommerce,ACMEC),越來越多的與推薦系統(tǒng)相關(guān)的論文發(fā)表在ACMEC上。ACM信息檢索專業(yè)組(ACMSpecialInterestGroupofInformationRetrieval,ACMSIGIR)在2001年開始把推薦系統(tǒng)作為該會議的一個獨(dú)立研究主題。同年召開的人工智能聯(lián)合大會(The17thInternationalJointConferenceonArtificialIntelligence)也將推薦系統(tǒng)作為一個單獨(dú)的主題。最近的10年間,學(xué)術(shù)界對推薦系統(tǒng)越來越重視。目前為止,數(shù)據(jù)庫、數(shù)據(jù)挖掘、人工智能、機(jī)器學(xué)習(xí)方面的重要國際會議(如SIGMOD、VLDB、ICDE、KDD、AAAI、SIGIR、ICDM、WWW、ICML等)都有大量與推薦系統(tǒng)相關(guān)的研究成果發(fā)表。同時,第一個以推薦系統(tǒng)命名的國際會議ACMRecommenderSystemsConference(ACMRecSys)于2007年首次舉辦。在近幾年的數(shù)據(jù)挖掘及知識發(fā)現(xiàn)國際會議(KDD)舉辦的KDDCUP競賽中,連續(xù)兩年的競賽主題都是推薦系統(tǒng)。在KDDCUP2011年的競賽中,兩個競賽題目分別為“音樂評分預(yù)測”和“識別音樂是否被用戶評分”。在KDDCUP2012年的競賽中,兩個競賽題目分別為“騰訊微博中的好友推薦”和“計(jì)算廣告中的點(diǎn)擊率預(yù)測”。學(xué)術(shù)界對推薦系統(tǒng)的研究信息領(lǐng)域做推薦系統(tǒng)領(lǐng)先的研究單位(學(xué)者)包括:

紐約大學(xué)(AlexanderTuzhilin)明尼蘇達(dá)州立大學(xué)的GroupLens研究小組(JosephA.Konstan,JohnRiedl等)JosephA.Konstan和JohnRiedl都是美國明尼蘇達(dá)大學(xué)的計(jì)算機(jī)科學(xué)教授。身為IEEE高級會員的Konstan和IEEE會士的Riedl參與創(chuàng)建了MovieLens推薦系統(tǒng)。美國密歇根大學(xué)(PaulResnick)卡內(nèi)基梅隆大學(xué)(JaimeCallan)微軟研究院(RyenW.White)等其中,美國密歇根大學(xué)在2006年開授了由PaulResnick主講的推薦系統(tǒng)的課程。推薦系統(tǒng)的概念

目前被廣泛引用的推薦系統(tǒng)的非形式化概念是Resnick和Varian[8]在1997年給出的:[8]ResnickP,VarianHR.Recommendersystems.CommunicationsoftheACM,1997,40(3):56?58.

——“它是利用電子商務(wù)網(wǎng)站向客戶提供商品信息和建議,幫助用戶決定應(yīng)該購買什么產(chǎn)品,模擬銷售人員幫助客戶完成購買過程”。推薦有3個組成要素:推薦候選對象、用戶、推薦方法。

用戶可以向推薦系統(tǒng)主動提供個人偏好信息或推薦請求,或者用戶不提供,而是推薦系統(tǒng)主動采集。推薦系統(tǒng)可以使用不同的推薦策略進(jìn)行推薦,如將采集到的個性化信息和對象數(shù)據(jù)進(jìn)行計(jì)算得到推薦結(jié)果,或者直接基于已建模的知識數(shù)據(jù)庫進(jìn)行推薦。推薦系統(tǒng)將推薦結(jié)果返回給用戶使用。推薦系統(tǒng)的概念用戶建模

用戶模型反映用戶的興趣偏好。用戶興趣的反饋可分為顯性反饋和隱性反饋。

顯性反饋包含兩種方式:用戶定制和用戶評分。

用戶定制是指用戶對系統(tǒng)所列問題的回答,如年齡、性別、職業(yè)等。評分又分為兩級評分和多級評分。例如,在YahooNews中采用兩級評分:喜歡(morelikethis)和不喜歡(lesslikethis)。多級評分可以更詳細(xì)地描述對某個產(chǎn)品的喜歡程度,如GroupLens中用戶對新聞的喜好程度可評價(jià)為1~5分。NewsDude支持用戶的4級反饋:感興趣、不感興趣、已知道、想了解更多,然后進(jìn)行歸一化處理。很多時候用戶不能夠準(zhǔn)確地提供個人偏好或者不愿意顯性提供個人偏好,更不愿意經(jīng)常維護(hù)個人的偏好。隱性反饋往往能夠正確地體現(xiàn)用戶的偏好以及偏好的變化。常用的隱性反饋信息有:是否點(diǎn)擊、停留時間、點(diǎn)擊時間、點(diǎn)擊地點(diǎn)、是否加入收藏、評論內(nèi)容(可推測用戶的心情)、用戶的搜索內(nèi)容、社交網(wǎng)絡(luò)、流行趨勢、點(diǎn)擊順序等。在協(xié)同過濾推薦方法中,常常把用戶的隱性反饋轉(zhuǎn)化為用戶對產(chǎn)品的評分。例如,GoogleNews中用戶閱讀過的新聞記為喜歡,評分為1;沒有閱讀過的評分為0。DailyLearner系統(tǒng)中用戶點(diǎn)擊了新聞標(biāo)題評分為0.8分,閱讀完全文則評分上升到1分;若用戶跳過了系統(tǒng)推薦的新聞,則從系統(tǒng)預(yù)測評分中減去0.2分作為最終評分。用戶建模

用戶的興趣可分為長期興趣和短期興趣。長期興趣反映用戶的真實(shí)興趣;短期興趣常與熱點(diǎn)話題相關(guān)聯(lián)且經(jīng)常改變,從最近的歷史行為中學(xué)習(xí)到的短期興趣模型可快速反映用戶興趣的變化。常用的模型有向量空間模型、語義網(wǎng)絡(luò)模型、基于分類器的模型等。由于用戶的興趣常受物品本身周期性、熱點(diǎn)事件、突發(fā)事件的影響,變化性很大。所以,需要經(jīng)常更新用戶模型。推薦算法

推薦算法是整個推薦系統(tǒng)中最核心、最關(guān)鍵的部分,很大程度上決定了推薦系統(tǒng)性能的優(yōu)劣。目前,主要的推薦方法包括:基于人口統(tǒng)計(jì)學(xué)的推薦

協(xié)同過濾推薦基于內(nèi)容的推薦基于關(guān)聯(lián)規(guī)則的推薦基于效用的推薦基于知識的推薦混合推薦基于人口統(tǒng)計(jì)學(xué)的推薦

最為簡單的一種推薦算法,只是簡單的根據(jù)系統(tǒng)用戶的基本信息發(fā)現(xiàn)用戶的相關(guān)程度,然后將相似用戶喜愛的其他物品推薦給當(dāng)前用戶。

系統(tǒng)首先會根據(jù)用戶的屬性建模,如年齡,性別,興趣等信息。根據(jù)這些特征計(jì)算用戶間的相似度。若系統(tǒng)通過計(jì)算發(fā)現(xiàn)用戶A和C比較相似。就會把A喜歡的物品推薦給C。

優(yōu)勢:

a不需要?dú)v史數(shù)據(jù),沒有冷啟動問題

b不依賴于物品的屬性,因此其他領(lǐng)域的問題都可無縫接入。

不足:算法比較粗糙,效果很難令人滿意,只適合簡單的推薦。協(xié)同過濾算法協(xié)同過濾技術(shù)是由DavidGoldberg在1992年提出的,是目前個性化推薦系統(tǒng)中應(yīng)用最為成功和廣泛的技術(shù)。核心思想:如果兩個用戶對于一些項(xiàng)(item)的評分相似程度較高,那么一個用戶對于一個新項(xiàng)的評分很有可能類似于

另一個用戶。簡介:通過在用戶的一系列行為中尋找特定模式來產(chǎn)生用戶特殊推薦輸入:僅僅依賴于慣用數(shù)據(jù)(例如評價(jià)、購買、下載等用戶偏好行為)注意:該算法不依賴于項(xiàng)的任何附加信息或者用戶的任何附加信息(例如人口統(tǒng)計(jì)相關(guān)數(shù)據(jù))。類型:

基于鄰域的協(xié)同過濾(基于用戶的、基于項(xiàng)的)——即基于內(nèi)存的CF,是使用用戶對已有項(xiàng)的評分直接預(yù)測該用戶對新項(xiàng)的評分。

基于模型的協(xié)同過濾(矩陣因子分解、貝葉斯網(wǎng)絡(luò)、基于聚類的方法、基于回歸的方法)——利用歷史評分?jǐn)?shù)據(jù),學(xué)習(xí)出預(yù)測模型,預(yù)測對新項(xiàng)的評分。通常的方式是使用機(jī)器學(xué)習(xí)算法,

找出用戶與項(xiàng)的相互作用模型,從而找出數(shù)據(jù)中的特定模式。

基于鄰域的協(xié)同過濾算法預(yù)測過程是預(yù)測用戶對沒有購買過的物品的可能打分值。

推薦是根據(jù)預(yù)測階段的結(jié)果推薦用戶最可能喜歡的一個或Top-N個物品。基于鄰域的協(xié)同過濾算法

基于鄰域的協(xié)同過濾算法可分為基于用戶(UserCF)的和基于項(xiàng)(ItemCF)的兩種。

基于用戶的算法:適用于item更新頻繁的應(yīng)用。根據(jù)用戶對物品的行為,找出興趣愛好相似的一些用戶,將其中一個用戶喜歡的東西推薦給另一個用戶?!纾蠌埾矚g看的書有A,B,C,D;老王喜歡看的書有A,B,C,E。通過這些數(shù)據(jù)我們可以判斷老張和老王的口味略相似,于是給老張推薦E這本書,同時給老王推薦D這本書。

基于項(xiàng)的算法:適用于item的增長速度遠(yuǎn)小于user的增長速度的情況。根據(jù)用戶的喜好先找出相似的物品,如果同時喜歡兩個物品的人比較多的話,就認(rèn)為這兩個物品相似。并給用戶推薦和他原有喜好類似的物品。這種相似是基于項(xiàng)的共同出現(xiàn)幾率(例如用戶買了X,同時時也買了Y)?!纾覀儼l(fā)現(xiàn)喜歡看《從一到無窮大》的人大都喜歡看《什么是數(shù)學(xué)》,那么如果你剛津津有味地看完《從一到無窮大》,我們就可以立馬給你推薦《什么是數(shù)學(xué)》?;卩徲虻膮f(xié)同過濾算法基于用戶的協(xié)同過濾(UserCF)基于項(xiàng)的協(xié)同過濾(ItemCF)基于鄰域的協(xié)同過濾算法基于用戶的協(xié)同過濾算法(UserCF)

該算法于1992年被提出并用于郵件過濾系統(tǒng),兩年后(1994年)被GroupLens用于新聞過濾。一直到2000年,該算法都是推薦系統(tǒng)領(lǐng)域最著名的算法。

UserCF算法是以人為本,可以分為兩個步驟:1.找到與目標(biāo)用戶興趣相似的用戶集合;2.找到這個集合中用戶喜歡的、并且目標(biāo)用戶沒有聽說過的物品推薦給目標(biāo)用戶。該算法最大的問題是如何判斷并量化兩個用戶的相似性。

例如,有3首歌:《最炫民族風(fēng)》,《晴天》,《Hero》。

A君,收藏了《最炫民族風(fēng)》,而遇到《晴天》,《Hero》則總是跳過;

B君,經(jīng)常單曲循環(huán)《最炫民族風(fēng)》,《晴天》會播放完,《Hero》則拉黑了;

C君,拉黑了《最炫民族風(fēng)》,而《晴天》《Hero》都收藏了。

可見,A,B二位品味接近,C和他們很不一樣。

那么問題來了,A,B到底有多相似,如何量化?

把三首歌想象成三維空間的三個維度,《最炫民族風(fēng)》是x軸,《晴天》是y軸,《Hero》是z軸,對每首歌的喜歡程度即該維度上的坐標(biāo),并且對喜歡程度做量化(比如:單曲循環(huán)=5,分享=4,收藏=3,主動播放=2,聽完=1,跳過=-1,拉黑=-5)。

那么每個人的總體口味就是一個向量,A君是(3,-1,-1),B君是(5,1,-5),C君是(-5,3,3)

用向量夾角的余弦值來表示兩個向量的相似程度,0度角(表示兩人完全一致)的余弦是1,180度角(表示兩人截然相反)的余弦是-1。

基于用戶的協(xié)同過濾算法(UserCF)

可見,A君B君夾角的余弦是0.81,A君C君夾角的余弦是-0.97.

假設(shè)選取一百首種子歌曲,算出了各君之間的相似值,那么當(dāng)發(fā)現(xiàn)A君還喜歡聽的《小蘋果》,而B君居然沒聽過,就可以向B君推薦了。Pearson相關(guān)系數(shù)

ItemCF算法以物為本,直接建立各商品之間的相似度關(guān)系矩陣。

最簡單的就是

斜率=1(SlopeOne)算法。如,amazon發(fā)明了‘買了這個商品的人,也買了xxx’。基于項(xiàng)的協(xié)同過濾算法(ItemCF)例:假設(shè)對新來的D君,只知道她喜歡最炫民族風(fēng),那么應(yīng)給她推薦那首歌曲呢?可以預(yù)測D君對晴天的喜歡程度為4+0=4,對Hero的喜歡程度為4+(-2)=2。因此,向D君推薦晴天。

SlopeOne算法是由DanielLemire教授在2005年提出的。DanielLemire,AnnaMaclachlan,SlopeOnePredictorsforOnlineRating-BasedCollaborativeFiltering,InSIAMDataMining(SDM’05),NewportBeach,California,April21-23,2005.其基本的想法來自于簡單的一元線性模型w=f(v)=v+b。已知一組訓(xùn)練點(diǎn)(vi,wi),(i=1,…,n),利用此線性模型最小化預(yù)測誤差的平方和,可以獲得對于新的數(shù)據(jù)點(diǎn)vnew,可以利用wnew=vnew+b獲得它的預(yù)測值。直觀上我們可以把上面求偏移b的公式理解為wi和vi差值的平均值。定義itemi相對于itemj的平均偏差:其中Sj,i()表示同時對itemi和j給予了評分的用戶集合,而card()表示集合包含的元素?cái)?shù)量。有了上面的定義后,我們可以使用獲得目標(biāo)用戶u對itemj的預(yù)測值。當(dāng)把所有這種可能的預(yù)測平均起來,可以得到:其中Rj

表示用戶u已經(jīng)給予評分且滿足條件(i≠j)的所有item的集合。對于足夠稠密的數(shù)據(jù)集,可以使用近似把上面的預(yù)測公式簡化為

SlopeOne算法可以預(yù)測D君對晴天的喜歡程度為:

((4+0)+(2+2))/2=4。SlopeOne中在計(jì)算itemi相對于itemj的平均偏差devj,i

時沒有考慮到使用不同的用戶數(shù)量平均得到的devj,i,其可信度不同。假設(shè)有2000個用戶同時評分了itemj和k,而只有20個用戶同時評分了itemj和l,那么顯然獲得的devj,k

比devj,l

更具有說服力。所以可以通過對最終的平均進(jìn)行加權(quán)來修正預(yù)測值:其中,WeightedSlopeOne算法首先計(jì)算item1和item2的平均差值,((5-3)+(3-4))/2=0.5,

還有item1和item3的平均差值,5-2=3,

然后推算lucy對item1的評分,根據(jù)item1和item2的平均差值來看lucy對item1的評分可能為2+0.5=2.5,

同理根據(jù)item1和item3的平均差值,lucy對item1的評分可能為5+3=8.使用加權(quán)平均數(shù)進(jìn)行計(jì)算:

(因?yàn)?.5是根據(jù)兩個值推算的,8是通過一個只推算的)Bi-PolarSlopeOne進(jìn)一步將用戶已經(jīng)給予評分的item劃分為兩類——like和dislike,劃分的方法是判斷對應(yīng)的評分是否大于此用戶的平均評分:

類似地,可以定義對itemi和j具有相同喜好的用戶集合:

進(jìn)而可給出like(或dislike)的item的偏差值:這樣可以從itemi計(jì)算得到itemj的預(yù)測值:

最終Bi-PolarSlopeOne的預(yù)測公式為:雙極SlopeOne算法可以預(yù)測D君對晴天的喜歡程度為:(0+4+2)/3=2

優(yōu)點(diǎn):該算法很簡單,易于實(shí)現(xiàn),執(zhí)行效率高,在只有很少數(shù)據(jù)的時候也能得到一個相對準(zhǔn)確的推薦,這一點(diǎn)可以解決ColdStart的問題。

缺點(diǎn):該算法的效果不是很理想。因?yàn)椋撍惴偸前延脩舻目谖逗痛蟊姷钠骄谖蹲鲗Φ?,推薦出來的東西很難是非常個性化的。很容易讓很多用戶的推薦結(jié)果趨向一致。SlopeOne算法的優(yōu)缺點(diǎn)

假設(shè)有一組用戶,他們表現(xiàn)出了對一組圖書的喜好。用戶對一本圖書的喜好程度越高,就會給其更高的評分,范圍是從1到5。通過一個矩陣來展示它,行代表用戶,列代表圖書。使用余弦相似性,把第一個用戶和其他五個用戶進(jìn)行比較,就能直觀地看到他和其他用戶的相似程度。

基于用戶的協(xié)同過濾算法(UserCF)更一般地,可以計(jì)算出每兩個用戶之間的相似性,并且在相似矩陣中表示它們。

這是一個對稱矩陣。單元格的背景顏色表明用戶相似度的高低,更深的紅色表示他們之間更相似。

基于用戶的協(xié)同過濾算法(UserCF)在一般情況下,為一個給定用戶生成推薦,意味著找到與其最相似的用戶,根據(jù)用戶相似度對這些相似用戶欣賞的項(xiàng)進(jìn)行加權(quán)。

以第一個用戶為例。首先,找到與第一個用戶最相似的另一用戶,刪除第一個用戶已經(jīng)評價(jià)過的書籍,給最相似用戶正在閱讀的書籍加權(quán),然后計(jì)算出總和。

假設(shè)n=2,表示為了產(chǎn)生推薦,需要找出與目標(biāo)用戶最相似的兩個用戶。這兩個用戶分別是2和3。由于第一個用戶已經(jīng)評價(jià)了1和5,所產(chǎn)生的推薦書是3(4.5分)和4(3分)。

基于用戶的協(xié)同過濾算法(UserCF)類似于UserCF,在ItemCF中,第一件事也是計(jì)算相似矩陣(商品而非用戶的相似性)。要計(jì)算一本書和其它書的相似性,使用評價(jià)過一本書的用戶向量(或數(shù)組)表示這本圖書,并比較他們的余弦相似性函數(shù)。

對于第一本書來說,與之最類似的是第五本書,因?yàn)樵u價(jià)他們的用戶大致相同。第三本書與第一本書有兩個相同的評價(jià)用戶,第四和第二本書與之只有一個共同評價(jià)用戶,而最后一本書則不認(rèn)為是相似的,因?yàn)樗c第一本書沒有共同的評價(jià)用戶。

基于項(xiàng)的協(xié)同過濾算法(ItemCF)右圖表示所有圖書之間相似度的相似矩陣。

在ItemCF中,我們采用被用戶評價(jià)過的項(xiàng),推薦與之最相似的項(xiàng)。對于第一個用戶,首先將被推薦第三本書,其次是第六本書。且只推薦和用戶已經(jīng)評價(jià)過的圖書最相似的前n本書。

基于項(xiàng)的協(xié)同過濾算法(ItemCF)UsefCF和ItemCF可以產(chǎn)生不同的推薦結(jié)果。即使使用的數(shù)據(jù)相同,這兩種方法對于同一用戶產(chǎn)生的推薦結(jié)果也不相同,為用戶提供了不同的體驗(yàn)。基于鄰域的協(xié)同過濾算法

UserCF更接近于社會化推薦,比較精準(zhǔn),適用于用戶少,物品多,時效性較強(qiáng)的場合,具有推薦新信息的能力,可以發(fā)現(xiàn)用戶潛在但自己尚未察覺的興趣愛好,能夠推薦藝術(shù)品、音樂、電影等難以進(jìn)行內(nèi)容分析的產(chǎn)品。代價(jià)是運(yùn)算量很大,而且對于新來的人(聽得少,動作少),也不太好用。ItemCF則更接近個性化推薦,適用于用戶多,物品少的場合,比如豆瓣的豆瓣猜、豆瓣FM,同時ItemCF還可以給出靠譜的推薦理由,例如豆瓣的「喜歡OO的人也喜歡XX」和亞馬遜的「買了XX的人也買了OO」。

協(xié)同過濾算法最明顯的一個缺點(diǎn)就是熱門物品的干擾,即該算法經(jīng)常會導(dǎo)致兩個不同領(lǐng)域的最熱門物品之間具有較高的相似度?!缃o喜歡《算法導(dǎo)論》的同學(xué)推薦《哈利波特》,顯然是不科學(xué)的!要避免這種情況就得從物品的內(nèi)容數(shù)據(jù)入手.基于模型的協(xié)同過濾算法

基于模型的方法會在使用評分去學(xué)習(xí)預(yù)測模型的基礎(chǔ)上,去預(yù)測新項(xiàng)。一般的想法是使用機(jī)器學(xué)習(xí)算法建立用戶和項(xiàng)的相互作用模型,從而找出數(shù)據(jù)中的模式。在一般情況下,基于模型的CF被認(rèn)為是建立CF推薦系統(tǒng)的更先進(jìn)的算法。有許多不同的算法可用于構(gòu)建模型并基于這些模型進(jìn)行預(yù)測,例如,貝葉斯網(wǎng)絡(luò)、聚類、分類、回歸、矩陣分解、受限玻爾茲曼機(jī)等等。這些技術(shù)在為了最終贏得Netflix獎的解決方案中扮演了關(guān)鍵角色。Netflix發(fā)起了一個競賽,從2006年到2009年提供一百萬美元獎金,頒發(fā)給產(chǎn)生的推薦比他們自己的推薦系統(tǒng)精確10%以上的推薦系統(tǒng)團(tuán)隊(duì)。成功獲獎的解決方案是Korbell的團(tuán)隊(duì)研發(fā)的一個集成(即混合)了超過100種算法模型,這些算法模型都采用了矩陣分解和受限玻爾茲曼機(jī)。基于模型的協(xié)同過濾算法NetFlix的實(shí)時推薦系統(tǒng)系統(tǒng)架構(gòu)圖基于模型的協(xié)同過濾算法

基于低秩矩陣分解的方法是最近一類成功的基于模型的方法。

例如,SVD和SVD++將評價(jià)矩陣分解為3個低秩的矩陣,這3個矩陣的乘積能對原始矩陣進(jìn)行某種程度的復(fù)原,從而可以評估出缺失值。另一種方法是非負(fù)矩陣分解,其不同之處在于,矩陣分解的結(jié)果不得出現(xiàn)負(fù)值?;诘椭染仃嚪纸獾姆椒◤脑u分矩陣中抽取一組潛在的(隱藏的)因子,并通過這些因子向量描述用戶和物品。

在電影領(lǐng)域,這些自動識別的因子可能對應(yīng)一部電影的常見標(biāo)簽,比如風(fēng)格或者類型(戲劇片或者動作片),也可能是無法解釋的?;谀P偷膮f(xié)同過濾算法

矩陣因子分解(如奇異值分解)將項(xiàng)和用戶都轉(zhuǎn)化成了相同的潛在空間,即將用戶偏好矩陣分解成一個用戶-潛在因子矩陣乘以一個潛在因子-項(xiàng)矩陣,代表用戶和項(xiàng)之間的潛相互作用。

矩陣分解背后的原理是潛在特征代表了用戶如何給項(xiàng)進(jìn)行評分。給定用戶和項(xiàng)的潛在描述,我們可以預(yù)測用戶將會給還未評價(jià)的項(xiàng)多少評分。矩陣因子分解用戶-潛在因子矩陣Q:表示不同的用戶對于不用元素的偏好程度,1代表很喜歡,0代表不喜歡。如:潛在因子-音樂矩陣P:表示每種音樂含有各種元素的成分。如下表中,音樂A是一個偏小清新的音樂,含有小清新這個LatentFactor的成分是0.9,重口味的成分是0.1,優(yōu)雅的成分是0.2……矩陣因子分解利用這兩個矩陣,我們能得出張三對音樂A的喜歡程度是:張三對小清新的偏好*音樂A含有小清新的成分+對重口味的偏好*音樂A含有重口味的成分+對優(yōu)雅的偏好*音樂A含有優(yōu)雅的成分+……即:張三對音樂A的喜歡程度=0.6*0.9+0.8*0.1+0.1*0.2+0.1*0.4+0.7*0=0.68每個用戶對每首歌都這樣計(jì)算可以得到不同用戶對不同歌曲的評分矩陣。因此我們?yōu)閺埲扑]四首歌中得分最高的B,為李四推薦得分最高的C,為王五推薦B。矩陣因子分解問題:潛在因子(latentfactor)是怎么得到的呢?由于面對海量的音樂,讓用戶自己給音樂分類并給出自己的偏好系數(shù)顯然是不現(xiàn)實(shí)的,事實(shí)上我們能獲得的數(shù)據(jù)只有用戶行為數(shù)據(jù)。如:單曲循環(huán)=5,分享=4,收藏=3,主動播放=2,聽完=1,跳過=-2,拉黑=-5,在分析時能獲得的實(shí)際評分矩陣R,也就是輸入矩陣大概如下:矩陣因子分解

事實(shí)上這是個非常非常稀疏的矩陣,因?yàn)榇蟛糠钟脩糁宦犨^全部音樂中很少一部分。

如何利用這個矩陣去找潛在因子?這里主要應(yīng)用到的是矩陣的奇異值分解。即將上面的評分矩陣分解為兩個低維度的矩陣,用Q和P兩個矩陣的乘積去估計(jì)實(shí)際的評分矩陣,而且我們希望估計(jì)的評分矩陣和實(shí)際的評分矩陣不要相差太多。矩陣因子分解這里涉及到最優(yōu)化理論,在實(shí)際應(yīng)用中,往往還要在后面加上2范數(shù)的罰項(xiàng),然后利用梯度下降法就可以求得P,Q兩個矩陣的估計(jì)值。例如上面給出的那個例子可以分解成為這樣兩個矩陣:矩陣因子分解這兩個矩陣相乘就可以得到估計(jì)的得分矩陣。將用戶已經(jīng)聽過的音樂剔除后,選擇分?jǐn)?shù)最高的音樂推薦給用戶即可。實(shí)際評分矩陣R估計(jì)的得分矩陣矩陣因子分解在這個例子里面用戶7和用戶8有強(qiáng)的相似性:從推薦的結(jié)果來看,正好推薦的是對方評分較高的音樂:協(xié)同過濾算法

協(xié)同過濾算法僅依賴于用戶的慣用數(shù)據(jù),需要最低限度專業(yè)工程的努力,以產(chǎn)生足夠好的結(jié)果,但是,也有局限性。

例如,CF傾向于推薦流行的項(xiàng),很難推薦給有獨(dú)特口味的人(即感興趣的項(xiàng)并沒有產(chǎn)生足夠多的慣用數(shù)據(jù))。這被稱為流行性偏見,它通常是用基于內(nèi)容的過濾方法加以解決。CF方法的一個更重要的限制是“冷啟動問題”,系統(tǒng)是不能夠給沒有(或非常少)慣用活動的用戶進(jìn)行推薦,又稱新用戶問題,或推薦新項(xiàng)問題。新用戶的“冷啟動問題”可以通過流行性和混合方法進(jìn)行解決,而新項(xiàng)問題可以通過使用基于內(nèi)容的過濾或multi-armedbandits(多臂賭博機(jī))進(jìn)行解決。協(xié)同過濾算法的特點(diǎn)

優(yōu)勢:

a它不需要對物品或者用戶進(jìn)行嚴(yán)格的建模,而且不要求物品的描述是機(jī)器可理解的,所以這種方法也是領(lǐng)域無關(guān)的。b這種方法計(jì)算出來的推薦是開放的,可以共用他人的經(jīng)驗(yàn),很好的支持用戶發(fā)現(xiàn)潛在的興趣偏好。不足:

a方法的核心是基于歷史數(shù)據(jù),所以對新物品和新用戶都有“冷啟動”的問題。

b推薦的效果依賴于用戶歷史偏好數(shù)據(jù)的多少和準(zhǔn)確性。

c在大部分的實(shí)現(xiàn)中,用戶歷史偏好是用稀疏矩陣進(jìn)行存儲的,而稀疏矩陣上的計(jì)算有些明顯的問題,包括可能少部分人的錯誤偏好會對推薦的準(zhǔn)確度有很大的影響等等。

d對于一些特殊品味的用戶不能給予很好的推薦。

e由于以歷史數(shù)據(jù)為基礎(chǔ),抓取和建模用戶的偏好后,很難修改或根據(jù)用戶的使用演變,從而導(dǎo)致這個方法不夠靈活。協(xié)同過濾算法的數(shù)據(jù)稀疏問題

協(xié)同過濾算法的關(guān)鍵是找尋用戶(物品)的最近鄰居。當(dāng)數(shù)據(jù)稀疏時,用戶購買過的物品很難重疊,協(xié)同推薦的效果就不好。例如,在Mendeley中有數(shù)以百萬計(jì)的文章而一個用戶可能只讀了其中幾百篇文章。兩個讀過100篇文章的用戶有一篇相同文章的概率(共5000萬篇文章)是0.0002。

改進(jìn)辦法1:除了直接鄰居之外,間接鄰居的行為也可以對當(dāng)前用戶的決策行為構(gòu)成影響。改進(jìn)辦法2:可以添加一些缺省值,人為地將數(shù)據(jù)變得稠密一些。改進(jìn)辦法3:采用迭代補(bǔ)全的方法,先補(bǔ)充部分?jǐn)?shù)值,在此基礎(chǔ)上再進(jìn)一步補(bǔ)充其他數(shù)值。改進(jìn)辦法4:利用遷移學(xué)習(xí)的方法來彌補(bǔ)數(shù)據(jù)稀疏的問題。但這些方法只能在某種程度上部分解決數(shù)據(jù)稀疏的問題,并不能完全克服。在真實(shí)應(yīng)用中,由于數(shù)據(jù)規(guī)模很大,數(shù)據(jù)稀疏的問題更加突出。數(shù)據(jù)稀疏性使協(xié)同過濾方法的有效性受到制約。甄別出與數(shù)據(jù)稀疏程度相匹配的算法,以便能根據(jù)具體應(yīng)用情況做出正確選擇,是非常有價(jià)值的研究課題?;趦?nèi)容的推薦

基于內(nèi)容的推薦算法總是為用戶推薦那些與用戶過去喜歡的item類似的item。通常使用用戶模型的向量特征來描述用戶的興趣愛好,同樣對于每個物品進(jìn)行特征提取,作為物品模型的內(nèi)容特征。然后計(jì)算用戶模型的向量特征和候選物品模型的向量特征兩者之間的匹配度,匹配度較高的候選物品就可作為推薦結(jié)果推送給目標(biāo)用戶。它不同于協(xié)同過濾,它是基于item的內(nèi)容(例如標(biāo)題、年份、描述)比較item之間的相似度。并沒有考慮用戶過去如何使用item的情況。

例如,如果一個用戶喜歡電影“指環(huán)王:魔戒再現(xiàn)”和“指環(huán)王:雙塔奇兵”,然后使用電影的標(biāo)題信息,推薦系統(tǒng)可以向用戶推薦電影“指環(huán)王:王者無敵”。在基于內(nèi)容的推薦中,假設(shè)可以獲取到item的描述信息,并將其作為item的特征向量(例如標(biāo)題、年份、描述)。這些特征向量被用于創(chuàng)建一個反映用戶偏好的模型。各種信息檢索(如TF-IDF——termfrequency–inversedocumentfrequency,詞頻-倒排文檔頻率)和機(jī)器學(xué)習(xí)技術(shù)(例如樸素貝葉斯、支持向量機(jī)、決策樹等)可被用于創(chuàng)建用戶模型,從而為用戶產(chǎn)生推薦。基于內(nèi)容的推薦

CB的過程一般包括以下三步:1.ItemRepresentation:為每個item抽取出一些特征(即item的content)來表示此item;2.ProfileLearning:利用一個用戶過去喜歡(及不喜歡)的item的特征數(shù)據(jù),來學(xué)習(xí)出此用戶的喜好特征(profile);3.RecommendationGeneration:通過比較上一步得到的用戶profile與候選item的特征,為此用戶推薦一組相關(guān)性最大的item。基于內(nèi)容的推薦

系統(tǒng)首先對物品的屬性進(jìn)行建模,如用電影的類型作為屬性。在實(shí)際應(yīng)用中,只根據(jù)類型顯然過于粗糙,還需要考慮演員,導(dǎo)演等更多信息。通過相似度計(jì)算,發(fā)現(xiàn)電影A和C相似度較高,因?yàn)樗麄兌紝儆趷矍轭?。系統(tǒng)還會發(fā)現(xiàn)用戶A喜歡電影A,由此得出結(jié)論,用戶A很可能對電影C也感興趣。于是將電影C推薦給A。

優(yōu)勢:對用戶興趣可以很好的建模,并通過對物品屬性維度的增加,獲得更好的推薦精度

不足:

a物品的屬性有限,很難有效的得到更多數(shù)據(jù)

b物品相似度的衡量標(biāo)準(zhǔn)只考慮到物品本身,有一定的片面性

c需要用戶的物品的歷史數(shù)據(jù),有冷啟動的問題基于內(nèi)容的推薦例:假設(shè)有一些用戶表達(dá)過對于一系列書籍的偏好。他們越喜歡一本書,他們對書籍的評分就會越高,通常劃分為從1到5的5個等級。可以將用戶對于書籍的偏好表示為一個矩陣,其中行代表用戶,列表示書籍?;趦?nèi)容的推薦在基于內(nèi)容的推薦中,要做的第一件事是基于內(nèi)容計(jì)算書籍之間的相似度。為了方便理解該算法的工作原理,本例中僅僅使用了書籍標(biāo)題中的詞匯。在實(shí)際應(yīng)用中,可以使用更多的屬性?;趦?nèi)容的推薦首先,從內(nèi)容中刪除停止詞(例如語法詞語、常見的詞語),然后將書籍用一個向量(或數(shù)組)表示,代表使用了哪些詞,這被稱為矢量空間表示。使用書籍標(biāo)題中詞匯作為描述書籍的向量表示。當(dāng)相應(yīng)的詞匯在標(biāo)題中,對應(yīng)的單元格中標(biāo)注1,否則為空白?;趦?nèi)容的推薦

給定每本書的表示之后,可以使用一系列的相似度度量來對書籍進(jìn)行比較。本例中,選擇余弦相似性度量。把第一本書與其他的五本書進(jìn)行比較,就能得到該書與其他書之間的相似程度。第一本書與其中三本書非常類似,因?yàn)樗鼈兊谋硎局g有兩個詞匯相同(recommender和systems),由于第五本書的描述的詞匯最少,因此它與第一本書最相似,因?yàn)樗凶钌俚亩嘤嗟脑~匯。而剩下的兩本書與第一本書沒有共同的描述詞匯,因此可以當(dāng)做一點(diǎn)都不相似。基于內(nèi)容的推薦

更進(jìn)一步,可以在一個相似度矩陣中顯示所有書籍之間的相似程度。單元格的背景顏色表示兩本書之間的相似程度,紅顏色越深,它們之間越相似。每個相似度是基于書籍的詞匯向量表示用余弦相似性度量進(jìn)行計(jì)算的?;趦?nèi)容的推薦

在知道書籍之間的相似度后,就可以對用戶推薦書籍了。

選取一個用戶此前評分過的書籍,并推薦與它們最相似的書籍。與協(xié)同過濾方法不同的是,這里的相似性度量是基于書籍的內(nèi)容,準(zhǔn)確來說是標(biāo)題,而不是使用用戶過去的行為數(shù)據(jù)。第一個用戶將會被推薦第六本書,之后是第四本書。在此,我們僅僅選取了最相似的兩本書?;趦?nèi)容的推薦

對于個性化閱讀來說,一個item就是一篇文章。首先要從文章內(nèi)容中抽取出代表它們的屬性。常用的方法就是利用出現(xiàn)在一篇文章中的詞來代表這篇文章,而每個詞對應(yīng)的權(quán)重往往使用信息檢索中的tf-idf來計(jì)算。這樣,一篇抽象的文章就可以使用具體的一個向量來表示了。第二步就是根據(jù)用戶過去喜歡什么文章來產(chǎn)生刻畫此用戶喜好的profile了,最簡單的方法可以把用戶所有喜歡的文章對應(yīng)的向量的平均值作為此用戶的profile。

比如某個用戶經(jīng)常關(guān)注與推薦系統(tǒng)有關(guān)的文章,那么他的profile中“CB”、“CF”和“推薦”對應(yīng)的權(quán)重值就會較高。在獲得了一個用戶的profile后,CB就可以利用所有item與此用戶profile的相關(guān)度對他進(jìn)行推薦文章了。一個常用的相關(guān)度計(jì)算方法是cosine。最終把候選item里與此用戶最相關(guān)(cosine值最大)的N個item作為推薦返回給此用戶?;趦?nèi)容的推薦Step1.ItemRepresentation真實(shí)應(yīng)用中的item往往都會有一些可以描述它的屬性,通??梢苑譃閮煞N:結(jié)構(gòu)化的(structured)屬性——屬性的意義比較明確,其取值限定在某個范圍;非結(jié)構(gòu)化的(unstructured)屬性——往往其意義不太明確,取值也沒什么限制,不好直接使用。比如在交友網(wǎng)站上,item就是人,一個item會有結(jié)構(gòu)化屬性如身高、學(xué)歷、籍貫等,也會有非結(jié)構(gòu)化屬性(如item自己寫的交友宣言,博客內(nèi)容等等)。對于結(jié)構(gòu)化數(shù)據(jù),可以直接拿來就用;但對于非結(jié)構(gòu)化數(shù)據(jù)(如文章),往往要先把它轉(zhuǎn)化為結(jié)構(gòu)化數(shù)據(jù)后才能在模型里加以使用?;趦?nèi)容的推薦真實(shí)場景中碰到最多的非結(jié)構(gòu)化數(shù)據(jù)可能就是文章了(如個性化閱讀中)。如何把非結(jié)構(gòu)化的一篇文章結(jié)構(gòu)化?——向量空間模型(VectorSpaceModel,簡稱VSM)基于內(nèi)容的推薦

用的最多的計(jì)算方法是信息檢索中常用的詞頻-逆文檔頻率(termfrequency–inversedocumentfrequency,簡稱tf-idf)。第j篇文章中與詞典里第k個詞對應(yīng)的tf-idf為:做歸一化的好處是不同文章之間的表示向量被歸一到一個量級上,便于之后的操作。基于內(nèi)容的推薦Step2.ProfileLearning

假設(shè)用戶u已經(jīng)對一些item給出了他的喜好判斷,喜歡其中的一部分item,不喜歡其中的另一部分。那么,這一步要做的就是通過用戶u過去的這些喜好判斷,為他產(chǎn)生一個模型。有了這個模型,就可以判斷用戶u是否會喜歡一個新的item。這是一個典型的有監(jiān)督分類問題,理論上機(jī)器學(xué)習(xí)里的分類算法都可以照搬進(jìn)這里。CB里常用的一些學(xué)習(xí)算法:最近鄰方法(k-NearestNeighbor,簡稱kNN)Rocchio算法決策樹算法(DecisionTree,簡稱DT)線性分類算法(LinearClassifer,簡稱LC)樸素貝葉斯算法(NaiveBayes,簡稱NB)基于內(nèi)容的推薦Step3.RecommendationGeneration

如果ProfileLearning中使用的是分類模型(如DT、LC和NB),那么只要把模型預(yù)測的用戶最可能感興趣的n個item作為推薦返回給用戶即可。

如果ProfileLearning中使用的直接學(xué)習(xí)用戶屬性的方法(如Rocchio算法),那么只要把與用戶屬性最相關(guān)的n個item作為推薦返回給用戶即可。其中的用戶屬性與item屬性的相關(guān)性可以使用如cosine等相似度度量獲得。基于內(nèi)容的推薦CB的優(yōu)點(diǎn):1.用戶之間的獨(dú)立性(UserIndependence):每個用戶的profile都是依據(jù)他本身對item的喜好獲得的,與他人的行為無關(guān)。而CF剛好相反,CF需要利用很多其他人的數(shù)據(jù)。CB的這種用戶獨(dú)立性帶來的一個顯著好處是別人不管對item如何作弊(比如利用多個賬號把某個產(chǎn)品的排名刷上去)都不會影響到自己。2.好的可解釋性(Transparency):如果需要向用戶解釋為什么推薦了這些產(chǎn)品給他,你只要告訴他這些產(chǎn)品有某某屬性,這些屬性跟你的品味很匹配等等。3.新的item可以立刻得到推薦(NewItemProblem):只要一個新item加進(jìn)item庫,它就馬上可以被推薦,被推薦的機(jī)會和老的item是一致的。而CF對于新item就很無奈,只有當(dāng)此新item被某些用戶喜歡過(或打過分),它才可能被推薦給其他用戶。所以,如果一個純CF的推薦系統(tǒng),新加進(jìn)來的item就永遠(yuǎn)不會被推薦。基于內(nèi)容的推薦

基于內(nèi)容的方法克服了協(xié)同過濾方法的很多不足??傮w來說,基于內(nèi)容的推薦算法可以克服流行度偏離和新item的冷啟動問題。值得注意的是,純粹基于內(nèi)容的推薦算法的性能通常不如協(xié)同過濾算法?;趦?nèi)容的推薦算法通常還存在過度專業(yè)化(over-specialisation)的問題,即用戶可能會得到過多相同類型的item(如推薦所有的“指環(huán)王”系列電影),而不會推薦其他不同的、但用戶可能感興趣的item。基于內(nèi)容的推薦算法中,僅僅使用了包含在item元數(shù)據(jù)中的詞匯(如標(biāo)題、描述年份),這限制了推薦算法的實(shí)用性,不能幫助用戶探索和發(fā)現(xiàn)詞匯之外的內(nèi)容?;趦?nèi)容的推薦CB的缺點(diǎn):

1.item的特征抽取一般很難(LimitedContentAnalysis):如果系統(tǒng)中的item是文檔(如個性化閱讀中),那么我們現(xiàn)在可以比較容易地使用信息檢索里的方法來“比較精確地”抽取出item的特征。但很多情況下我們很難從item中抽取出準(zhǔn)確刻畫item的特征,比如電影推薦中item是電影,社會化網(wǎng)絡(luò)推薦中item是人,這些item屬性都不好抽。其實(shí),幾乎在所有實(shí)際情況中我們抽取的item特征都僅能代表item的一些方面,不可能代表item的所有方面。這樣帶來的一個問題就是可能從兩個item抽取出來的特征完全相同,這種情況下CB就完全無法區(qū)分這兩個item了。比如如果只能從電影里抽取出演員、導(dǎo)演,那么兩部有相同演員和導(dǎo)演的電影對于CB來說就完全不可區(qū)分了。2.無法挖掘出用戶的潛在興趣(Over-specialization):既然CB的推薦只依賴于用戶過去對某些item的喜好,它產(chǎn)生的推薦也都會和用戶過去喜歡的item相似。如果一個人以前只看與推薦有關(guān)的文章,那CB只會給他推薦更多與推薦相關(guān)的文章,它不會知道用戶可能還喜歡數(shù)碼。3.無法為新用戶產(chǎn)生推薦(NewUserProblem):新用戶沒有喜好歷史,自然無法獲得他的profile,所以也就無法為他產(chǎn)生推薦了。當(dāng)然,這個問題CF也有。基于內(nèi)容的推薦

基于用戶的協(xié)同過濾VS基于人口統(tǒng)計(jì)學(xué)的推薦聯(lián)系:都是計(jì)算用戶的相似度,并基于“鄰居”用戶群計(jì)算推薦。區(qū)別:用戶相似度計(jì)算的方法不一樣,前者是在用戶的歷史偏好的數(shù)據(jù)上計(jì)算用戶的相似度,它的基本假設(shè)是,喜歡類似物品的用戶可能有相同或者相似的口味和偏好,而后者只考慮用戶本身的特征?;谖锲返膮f(xié)同過濾VS基于內(nèi)容的推薦聯(lián)系:都是基于物品相似度預(yù)測推薦,區(qū)別:相似度計(jì)算的方法不一樣,前者是從用戶歷史的偏好推斷,而后者是基于物品本身的屬性特征信息?;旌贤扑]方法由于各種推薦方法都有其自身的優(yōu)缺點(diǎn),因此在實(shí)際中經(jīng)常使用混合推薦(HybridRecommendation)的方法?;旌贤扑]的一個最重要原則就是通過組合后應(yīng)能避免或彌補(bǔ)各自推薦技術(shù)的弱點(diǎn)。研究和應(yīng)用最多的是內(nèi)容推薦和協(xié)同過濾推薦的組合。最簡單的做法就是分別用基于內(nèi)容的方法和協(xié)同過濾推薦方法去產(chǎn)生一個推薦預(yù)測結(jié)果,然后用某方法組合其結(jié)果。盡管從理論上有很多種推薦組合方法,但在某一具體問題中并不見得都有效,不同的組合思路適用于不同的應(yīng)用場景。混合推薦方法

將多種基本的推薦技術(shù)進(jìn)行組合形成一個混合推薦系統(tǒng)的不同方式1)加權(quán)(Weight):加權(quán)多種推薦技術(shù)結(jié)果。

2)變換(Switch):根據(jù)問題背景和實(shí)際情況或要求決定變換采用不同的推薦技術(shù)。

3)混合(Mixed):同時采用多種推薦技術(shù)給出多種推薦結(jié)果為用戶提供參考。

4)特征組合(Featurecombination):組合來自不同推薦數(shù)據(jù)源的特征被另一種推薦算法所采用。

5)層疊(Cascade):先用一種推薦技術(shù)產(chǎn)生一種粗糙的推薦結(jié)果,第二種推薦技術(shù)在此推薦結(jié)果的基礎(chǔ)上進(jìn)一步作出更精確的推薦。

6)特征擴(kuò)充(Featureaugmentation):一種技術(shù)產(chǎn)生附加的特征信息嵌入到另一種推薦技術(shù)的特征輸入中。

7)元級別(Meta-level):用一種推薦方法產(chǎn)生的模型作為另一種推薦方法的輸入。混合推薦方法

現(xiàn)在,組合基于用戶的協(xié)同過濾技術(shù)、基于item的協(xié)同過濾技術(shù)以及基于內(nèi)容的過濾技術(shù)來構(gòu)建一個新的混合推薦系統(tǒng)。使用加權(quán)方法來組合這幾種不同技術(shù)的結(jié)果,通過考慮不同結(jié)果的重要性(即權(quán)重)來產(chǎn)生新的推薦。下面為第一個用戶產(chǎn)生一些推薦。首先,提取使用基于用戶的協(xié)同過濾技術(shù)和基于item的協(xié)同過濾技術(shù)(CF)所得到的推薦結(jié)果,以及使用基于內(nèi)容的過濾技術(shù)(CB)所得到的推薦結(jié)果。值得注意的是,在這個小的例子中,即使三種方法的輸入相同,但它們卻為相同用戶產(chǎn)生了略微不同的推薦結(jié)果。混合推薦方法使用一個加權(quán)混合推薦系統(tǒng)為給定的用戶產(chǎn)生推薦,基于用戶的協(xié)同過濾的權(quán)重為40%,基于item的協(xié)同過濾的權(quán)重為30%,基于內(nèi)容的過濾技術(shù)的權(quán)重為30%。相比使用單個算法的例子中僅僅向用戶推薦兩本書,在這個例子中,用戶將被推薦所有他們未評分過的三本書。混合推薦方法

通過舉一個簡單的例子,提供了一個綜合的闡述,當(dāng)有相同的輸入數(shù)據(jù)時,這四種不同的算法將為相同的用戶產(chǎn)生如何不同的推薦結(jié)果。在算法被應(yīng)用到大的、真實(shí)的數(shù)據(jù)中時,這種差異會一直存在,所以在決定要使用哪種算法時需要考慮它們的優(yōu)點(diǎn)和缺點(diǎn),并且在評價(jià)它們的時候,還要考慮它們執(zhí)行的好壞程度。

在實(shí)際應(yīng)用中,如果利用協(xié)同過濾算法作為推薦模型,一般不會出什么問題。協(xié)同過濾容易比其他算法產(chǎn)生更好的結(jié)果,但是它不能很好地處理新用戶和新item的冷啟動問題,如果要處理這些問題,基于內(nèi)容的推薦算法是一個很好的備選。

如果有時間,那么可以將這些方法進(jìn)行組合,這樣就可以同時利用協(xié)同過濾算法和基于內(nèi)容的推薦算法的優(yōu)點(diǎn)。即使需要考察更為先進(jìn)的推薦算法,在此之前,先好好考慮一下這些基本的算法也不失為一個好主意。混合推薦方法

雖然混合方法可以解決CF方法和CB方法中存在的一些局限性,但它們同時也需要大量的工作來獲取系統(tǒng)中的不同算法之間的平衡。

組合單個的推薦算法的另一種技術(shù)是集成方法,它需要學(xué)習(xí)一個函數(shù)(即集成器)來確定不同推薦算法組合的權(quán)重。

值得注意的是,通常集成方法不僅僅結(jié)合了不同的算法,同時也組合了基于相同算法的不同變種(模型)。例如,在贏得Netflix競賽的解決方案中,研究者使用了來自于超過10種不同算法(流行度、領(lǐng)域方法、矩陣因子分解、受限玻爾茲曼機(jī)、回歸等)的100多種模型,并通過使用梯度boosted決策樹將它們組合到一個集成器中。

值得補(bǔ)充的是,基于流行度的方法對于新用戶的冷啟動問題也是一個很好的解決方法。這種方法在對item進(jìn)行評分時使用某種形式流行度度量,例如最多的下載次數(shù)或購買量,然后向新用戶推薦這些受歡迎的item。當(dāng)你有一個好的流行度度量的時候,這是一個基本的、但功能強(qiáng)大的方法,而且在與其他推薦算法進(jìn)行比較時提供一個好的基線。

在可以切換到其他能夠更好地建模用戶偏好的方法(協(xié)同過濾技術(shù)和基于內(nèi)容的過濾技術(shù))之前,流行度度量本身可以作為一種算法來增強(qiáng)一個推薦系統(tǒng),以獲得足夠的活躍度和使用量。

流行度的模型也可以組合在混合方法中,以幫助解決推薦系統(tǒng)的新用戶冷啟動問題?;旌贤扑]的組合思路后融合:融合兩種或兩種以上的推薦方法各自產(chǎn)生的推薦結(jié)果。

如使用基于內(nèi)容的方法和協(xié)同過濾方法分別得到推薦列表,融合列表的結(jié)果決定最后推薦的對象。中融合:以一種推薦方法為框架,融合另一種推薦方法。

如以基于內(nèi)容的方法為框架,融合協(xié)同過濾的方法,或者以協(xié)同過濾的方法為框架,融合基于內(nèi)容的方法。前融合:直接融合各種推薦方法。

如將基于內(nèi)容和協(xié)同過濾的方法整合到一個統(tǒng)一的框架模型下。組合推薦后融合組合推薦(結(jié)果層次上的融合)在后融合組合推薦中,最簡單的做法就是分別用基于內(nèi)容的方法和協(xié)同過濾推薦方法去產(chǎn)生一個推薦預(yù)測結(jié)果,然后用某種方法組合其結(jié)果。文獻(xiàn)[37]使用了評分結(jié)果的線性組合。[37]ClaypoolM,GokhaleA,MirandaT,MurnikovP,NetesD,SartinM.Combiningcontent-basedandcollaborativefiltersinanonlinenewspaper.In:Proc.oftheACMSIGIR’99WorkshopRecommenderSystems:AlgorithmsandEvaluation.NewYork:ACMPress,1999.

文獻(xiàn)[38]使用了投票機(jī)制來組合推薦結(jié)果。[38]PazzaniM.Aframeworkforcollaborative,content-based,anddemographicfiltering.ArtificialIntelligenceReview,1999,13(5-6):393?408.

也可以分別考察兩個推薦列表,判斷使用其中的哪個推薦結(jié)果。如,DailyLearnersystem[39]通過計(jì)算推薦結(jié)果的可信度,然后選擇一個列表的結(jié)果。[39]BillsusD,PazzaniM.Usermodelingforadaptivenewsaccess.UserModelingandUser-AdaptedInteraction,2000,10(2-3):147?180.

組合推薦中融合組合推薦

以基于內(nèi)容的方法為框架,融合協(xié)同過濾的方法利用降維技術(shù)把基于內(nèi)容的對象特征進(jìn)行精簡化。如,文獻(xiàn)[40]使用了LSI(latentsemanticindexing)算法,在基于內(nèi)容的框架中使用精化的用戶特征向量。[40]SoboroffI,NicholasC.Combiningcontentandcollaborationintextfiltering.In:Proc.oftheInt’lJointConf.onArtificialIntelligenceWorkshop:MachineLearningforInformationFiltering.Stockholm,1999.86?91.

以協(xié)同過濾的方法為框架,融合基于內(nèi)容的方法為了克服協(xié)同過濾的稀疏問題,把用戶當(dāng)作對象,使用基于內(nèi)容的特征提取方法把用戶本身的特征(如年齡、工作情況等人口統(tǒng)計(jì)學(xué)特征)使用到相似度計(jì)算中,而不是僅僅依賴用戶的點(diǎn)擊行為。文獻(xiàn)[41]引入多種不同的用戶描述符來歸類用戶,挖掘用戶的內(nèi)在聯(lián)系,從而得到更好的推薦效果。[41]GoodN,SchaferJB,KonstanJA,BorchersA,SarwarB,HerlockerJL,RiedlJ.Combiningcollaborativefilteringwithpersonalagentsforbetterrecommendations.In:Proc.ofthe16thNationalConf.onArtificialIntelligence.MenloPark:AAAIPress,1999.439?446.

文獻(xiàn)[42]使用獨(dú)立的基于內(nèi)容的特征來補(bǔ)償用戶提供的簡單的rating。

[42]MelvilleP,MooneyRJ,NagarajanR.Content-Boostedcollaborativefilteringforimprovedrecommendations.In:Proc.ofthe18thNationalConf.onArtificialIntelligence.MenloPark:AmericanAssociationforArtificialIntelligence,2002.187?192.

組合推薦前融合組合推薦(方法層次上的融合)近年來,這類推薦方法最受學(xué)者的關(guān)注。文獻(xiàn)[36]把用戶的年齡和電影的類型放到一個統(tǒng)一的分類器中訓(xùn)練學(xué)習(xí)。[36]BasuC,HirshH,CohenW.Recommendationasclassification:Usingsocialandcontent-basedinformationinrecommendation.In:Proc.oftheAAAI’98.MenloPark:AAAIPress.1998.714?720.

文獻(xiàn)[43]使用了貝葉斯混合效果回歸模型,將用戶和對象的特征都放到一個統(tǒng)計(jì)模型下來計(jì)算效用函數(shù),并通過馬爾可夫蒙特卡洛方法得到這個模型的參數(shù)。[43]AnsariA,EssegaierS,KohliR.Internetrecommendationssystems.JournalofMarketingResearch,2000,37(3):363?375.

基于關(guān)聯(lián)規(guī)則的推薦

基于關(guān)聯(lián)規(guī)則的推薦(AssociationRule-basedRecommendation)是以關(guān)聯(lián)規(guī)則為基礎(chǔ),把已購商品作為規(guī)則頭,規(guī)則體為推薦對象。

關(guān)聯(lián)規(guī)則就是在一個交易數(shù)據(jù)庫中統(tǒng)計(jì)購買了商品集X的交易中有多大比例的交易同時購買了商品集Y,其直觀的意義就是用戶在購買某些商品的時候有多大傾向去購買另外一些商品。比如購買牛奶的同時很多人也會購買面包。關(guān)聯(lián)規(guī)則“X->Y”表示對于購買了商品X的用戶,系統(tǒng)將給他推薦商品Y。關(guān)聯(lián)規(guī)則挖掘可以發(fā)現(xiàn)不同商品在銷售過程中的相關(guān)性,在零售業(yè)中已經(jīng)得到了成功的應(yīng)用。關(guān)聯(lián)規(guī)則的發(fā)現(xiàn)是算法的第一步也是最為關(guān)鍵且最耗時的,是算法的瓶頸,但可以離線進(jìn)行。其次,商品名稱的同義性問題也是關(guān)聯(lián)規(guī)則的一個難點(diǎn)。基于效用的推薦

基于效用的推薦(Utility-basedRecommendation)是建立在對用戶使用項(xiàng)目的效用情況上計(jì)算的,其核心問題是怎么樣為每一個用戶去創(chuàng)建一個效用函數(shù)。用戶資料模型很大程度上是由系統(tǒng)所采用的效用函數(shù)決定的?;谛в猛扑]的好處是它能把非產(chǎn)品的屬性,如提供商的可靠性(VendorReliability)和產(chǎn)品的可得性(ProductAvailability)等考慮到效用計(jì)算中。基于知識的推薦基于知識的推薦(Knowledge-basedRecommendation)在某種程度是可以看成是一種推理(Inference)技術(shù),它不是建立在用戶需要和偏好基礎(chǔ)上進(jìn)行推薦的。而是利用針對特定領(lǐng)域制定規(guī)則(rule)來進(jìn)行基于規(guī)則和實(shí)例的推理(case-basedreasoning)。效用知識(functionalknowledge)是一種關(guān)于一個對象如何滿足某一特定用戶的知識,能夠解釋需求和推薦的關(guān)系,用于推薦系統(tǒng)。效用知識在推薦系統(tǒng)中必須以機(jī)器可讀的方式存在(ontology本體知識庫)。文獻(xiàn)[34]中利用飯店的菜式方面的效用知識,推薦飯店給顧客;[34]BurkeR.Knowledge-Basedrecommendersystems.EncyclopediaofLibraryandInformationSystems,2000,69(32):180?200.

文獻(xiàn)[35]使用關(guān)于學(xué)術(shù)論文主題的ontology本體知識庫向讀者作推薦

[35]MiddletonSE,ShadboltNR,deRoureDC.Ontologicaluserprofilinginrecommendersystems.ACMTrans.onInformationSystems,2004,22(1):54?88.

主要推薦算法對比推薦方法優(yōu)點(diǎn)缺點(diǎn)基于內(nèi)容推薦推薦結(jié)果直觀,容易解釋;要求特征

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論