閱讀985 返回首頁    go 阿裏雲 go 技術社區[雲棲]


[推薦係統]個性化推薦的十大挑戰

個性化推薦經常被人誤解為細分市場和精準營銷這兩個概念。雖然它們之間有一些聯係,但實質上卻相差甚遠。本文不僅清楚地講述了個性化推薦技術,更列出了其所麵臨的十大挑戰。

很多人都知道個性化推薦,卻有不少認識上的誤區。有的人認為個性化推薦就是細分市場和精準營銷,但實際上細分市場和精準營銷往往是把潛在的用戶分成很多群體,這與基於全體的統計相比固然有了長足的進步,但距離“為每一個用戶量身定做的信息服務”還有很大的差距,隻有做個性化才能實現亞馬遜CEO Jeff Bezos的夢想“如果我有100萬個用戶,我就為他們做100萬個亞馬遜網站”。

所以,市場細分隻是初級階段,而個性化推薦則是市場細分的極致。還有人認為個性化推薦等同於協同過濾,這可能是因為協同過濾出現得比較早並且比較容易被大眾理解,但實際上協同過濾隻不過是眾多個性化推薦技術中的一個早期成 員,遠不能代表個性化推薦技術。

隨著個性化的商業應用延展到用戶生活信息流的方方麵麵,個性化推薦技術也在日新月異不斷發展,類似於協同過濾這樣的早期技術已經不能滿足新環境下的要求,無法解決新出現的問題。令人興奮的是,過去十年中,我們見證了無數頂尖級專家與學者投身於推薦方法與技術的創新中。今天,還些人認為個性化推薦技術的研究已經進入了很成熟階段,沒有什麼特別激動人心的問題和成果。事實卻恰恰相反,現在個性化推薦技術麵臨很大的挑戰,我們之前隻看到了個性化推薦技術難題這座冰山所露出的一角。

本文將列出個性化推薦技術所麵臨的十個挑戰(僅代表個人觀點),其中有一些是很多年前就認識到但一直沒有得到解決的長期問題。事實上,有些挑戰是不可能完全解決的,隻能提出改良方案,還有一些是在最近研究中提出來的焦點問題。

數據稀疏性問題

現在推薦係統規模越來越大,用戶和商品(包括音樂、網頁、文獻等物品)數目動輒百千萬計,而且用戶之間選擇的重疊非常少。如果以用戶和商品之間已有的選擇關係占所有可能存在的選擇關係的比例來衡量係統的稀疏性,那麼我 們平時研究最多的MovieLens數據集的稀疏度是4.5%,Netflix是1.2%,Bibsonomy是0.35%,Delicious是 0.046%,這些其實是非常密的數據。

想想淘寶上號稱有8億商品,平均而言一個用戶能瀏覽800件嗎?估計不能,因此稀疏度應該在百萬分之一或以下的量級。數據非常稀疏,使得絕大部分基於關聯分析的算法(如協同過濾)效果都不好。本質上,這個問題是無法完全克服的。解決這個問題的辦法很多,例如可以通過擴散的算法,從原來的一階關聯(兩個用戶有多少相似打分或者共同購買的商品)到二階甚至更高階的關聯(假設關聯性或者說相似性本身是可以傳播的),也可以添加一些默認的打分,從而提高相似性的分辨率。一般而言,數據規模越大就越稀疏。現在認為能夠處理稀疏數據的算法(如擴散、迭代尋優、轉移相似性等)更有價值。

冷啟動問題

因為新用戶罕有可以利用的行為信息,所以很難給出精確的推薦。反過來,由於新商品被選擇次數很少,也難以找到合適的辦法推薦給用戶。一種辦法是利用文本信息進行輔助推薦,或者通過注冊和詢問得知一些用戶的屬性信息,比如年齡、居住城市、受教育程度、性別和職業等。

最近廣泛應用的標簽係統提供了解決冷啟動問題的可能方案,因為標簽既可以看作是商品內容的萃取,同時也反映了用戶的個性化喜好。以《桃姐》這部電影為例,有的人打的標簽是“倫理”,有的人打的標簽是“劉德華”,兩個人看的電影一樣,但興趣點可能不盡相同。當然,利用標簽也隻能是提高有少量行為的用戶的推薦準確性,對於純粹的冷啟動用戶,沒有任何幫助,因為這些人還沒有打過任何標簽。

有趣的是,最近的研究顯示,新用戶更容易選擇特別流行的商品。無論如何,這都是一個好消息,說明使用熱銷榜也能獲得不錯的結果。冷啟動問題還可以通過多維數據的交叉推薦部分解決,其精確度和多樣性又遠勝於熱銷榜,這一點後麵會進一步介紹。

大數據處理與增量計算問題

因為數據很稀疏,大部分數據都擁有百千萬計的用戶和商品,所以如何快速高效地處理這些數據成為迫在眉睫的問題。而算法時間和空間上的複雜性,尤其是前者,得到了空前重視。一個高效的算法,要麼複雜性很低,要麼能夠很好地並行化,要麼兩者兼具。局部擴散算法在這兩個方麵都具有明顯優勢。

另一種解決方法是設計增量算法。也就是說,當產生新用戶、新商品和新的連接關係時,算法的結果不需要在整個數據集上重新進行計算,而隻需考慮所增加節點和連邊局部的信息,對原有的結果進行微擾,快速得到新結果。一般而言,隨著加入的信息量的增多,這種算法的誤差會積累變大,最終每過一段時間還是需要利用全局數據重 新進行計算。

一個特別困難的挑戰是如何設計一種能夠保證其誤差不會累積的算法,也就是說其結果與利用全部數據重新計算的結果之間的差異不會單調上升。我們把這種算法叫做自適應算法,它是增量算法的一個加強版本,其設計要求和難度更高。

現在業界已經在應用增量算法。例如,百分點科技推薦引擎中的若幹算法都采用了增量技術,使得用戶每次瀏覽收藏或者購買商品後其推薦列表立刻得到更新。當然,隻是該引擎的部分算法實現了增量技術,沒有達到所有算法都能夠自適應學習的程度,還有很長的路要走。

多樣性與精確性的兩難困境

如果要給用戶推薦他喜歡的商品,最“保險”的方式就是給他特別流行或者得分特別高的商品,因為這些商品有更可能被喜歡(至少Bezos會這麼想),往壞了說,也很難特別被討厭。但這種推薦產生的用戶體驗並不一定好,因為用戶很可能已經知道這些熱銷或流行的產品,所以得到的信息量很少,並且用戶不會認為這是 一種“個性化”推薦。

事實上,Mcnee等人已經警告大家,盲目崇拜精確性指標可能會傷害推薦係統,因為這樣可能會導致用戶得到一些信息量為0的“精準推薦”並且視野變得越來越狹窄。讓用戶視野變得狹窄是協同過濾算法的一個主要缺陷。與此同時,應用個性化推薦技術的商家,也希望推薦中有更多 的品類出現,從而激發用戶新的購物需求。

遺憾的是,推薦多樣的商品和新穎的商品與推薦的精確性之間存在矛盾,因為前者風險很大—推薦一個沒人看過或者打分較低的東西,很可能被用戶憎惡,從而效果更差。很多時候,這是一個兩難的問題,隻能通過犧牲多樣性來提高精確性,或者犧牲精確性來提高多樣性。一種可行之策是直接對推薦列表進行處理,從而提升其多樣性。這種方法固然在應用上是有效的,但沒有任何理論的基礎和優美性可言,隻能算一種實用的招數。

我們發現,精巧混合精確性高和多樣性好的兩種算法,可以同時提高算法的多樣性和精確性,不需要犧牲任何一方。遺憾的是,我們還沒有辦法就這個結果提供清晰的解讀和深刻的見解。多樣性和精確性之間錯綜複雜的關係和隱匿其後的競爭,到目前為止還是一個很棘手的難題。

推薦係統的脆弱性問題

推薦係統在電子商務領域能帶來重大的經濟利益的驅動,導致一些心懷不軌的用戶會提供一些虛假或惡意的行為,故意增加或者壓製某些商品被推薦的可能性。因此,一個算法能否在一定程度上保持對惡意攻擊的魯棒性,成為需要認真考慮的一個特征。以最簡單的關聯規則挖掘算法為例,Apriori算法的魯棒性就遠勝於k 近鄰算法。

已有一些技術專門用來提高推薦係統麵對惡意攻擊的魯棒性。比如,通過分析對比真實用戶和疑似惡意用戶之間打分行為模式的差異,提前對惡意行為進行判斷,從而阻止其進入係統或將惡意用戶的影響力降至最低。

總體來說,這方麵的研究相對較少,係統性的分析還很缺乏,反而是攻擊策略層出不窮,有種“道高一尺,魔高一丈”的感覺。Burke等人2011年的研究報告 “Robust Collaborative Recommendation”中就分析了4大種類、8種不同的攻擊策略。

用戶行為模式的挖掘和利用

深入挖掘用戶的行為模式有望提高推薦的效果或在更複雜的場景下進行推薦。比如,新用戶和老用戶具有很不一樣的選擇模式:通常,新用戶傾向於選擇熱門商品,而老用戶對小眾商品關注更多;新用戶所選擇的商品相似度更高,老用戶所選擇的商品多樣性較高。

有些混合算法可以通過一個參數調節推薦結果的多樣性和熱門程度。在這種情況下,就可以考慮為不同用戶賦予不同參數(從算法結果的個性化到算法本身的個性化),甚至允許用戶自己移動一個滑鈕調節這個參數—當用戶想看熱門產品時,算法提供熱門推薦;當用戶想找點很酷的產品時,算法也可以提供冷門推薦。用戶行 為的時空統計特性也可以用於提高推薦或者設計針對特定場景的應用。

用戶的選擇可能同時蘊含了長期的興趣和短期的興趣,通過將這兩種效應分離出來,可以明顯提高推薦的精確度。事實上,假設用戶興趣隨時間按照指數遞減,也能夠得到改進的推薦效果。

現在用手機上網已經越來越普及,與此同時,嵌入GPS的手機越來越多,因此,基於位置的服務成為一個受到學術界和業界廣泛關注的問題。基於位置信息的推薦可能會成為個性化推薦的一個研究熱點和重要的應用場景,而解決這個問題需要能夠對用戶的移動模式有深入理解(包括預測用戶的移動軌跡和判斷用戶在當前位置是否有可能進行餐飲購物活動等),同時還要有定量的辦法定義用戶之間以及地點之間的相似性。另外,不同用戶打分的模式也很不一樣,用戶針對不同商品的行為模 式也不一樣(想象一下在網上下載一首歌和團購房子時的區別),這些都可以用來提高推薦的效果。

推薦係統效果評估

推薦係統的概念已經提出幾十年了,但怎樣評價推薦係統,仍然是一個很大的問題。常見的評估指標可以分為四大類,分別是準確度、多樣性、新穎性和覆蓋率。每一類還有不同的指標。比如,準確度指標還可分為四大類,分別是預測評分準確度、預測評分關聯、分類準確度和排序準確度。以分類準確度為例,又包括準確率、召 回率、準確率提高率、召回率提高率、F1指標和AUC值。

朱鬱筱和呂琳媛撰寫的《推薦係統評價綜述》一文幾乎總結了文獻中曾經出現過的所有推薦係統指標,這些指標都是基於數據本身的指標,可以認為是第一層次。實際上,在真實應用時,更為重要的是另外兩個層次的評價。第二個層次是商業應用上的關鍵表現指標,如受推薦影響的轉化率、購買率、客單價、購買品類數等。第三個層次是用戶真實的體驗。

絕大部分研究隻針對第一個層次的評價指標,而業界真正感興趣的是第二個層次的評價(比如,到底是哪個指標或者哪些指標組合的結果能夠提高用戶購買的客單價),而第三個層次最難,沒人能知道,隻能通過第二層次來估計。因此,如何建立第一層次和第二層次指標之間的關係,就成為了關鍵。這一步打通了,理論和應用之間的屏障就通一大半了。

用戶界麵與用戶體驗

與其說,這是一個學術性質的問題,不如說是真實應用的問題。十年前就有學者指出,推薦結果的可解釋性,對於用戶體驗有至關重要的影響—用戶希望知道這個推薦是怎麼來的。在這個意義上,協同過濾有明顯的優勢。

基於商品的協同過濾,亞馬遜在發送推薦的電子郵件時會告訴用戶之所以向其推薦某書,是因為用戶以前購買過某些書。相對地,矩陣分解或者集成學習算法就很難向用戶解釋推薦結果的起源。用戶更喜歡來自朋友的推薦而不是係統的推薦,這一點在後麵還會詳細提到。

另外,推薦列表往往含有很多項,這些推薦項最好能夠分成很多類別,不同類別往往來自於不同的推薦方法。比如,看過還看過(瀏覽過本商品的客戶還瀏覽過的商品)、買過還買過(購買過本商品的客戶還購買過的商品)、看過最終購買(瀏覽過本商品的客戶最終購買的商品)、個性化熱銷榜(個性化流行品推薦)和猜你喜歡(個性化冷門商品推薦)等。

當然,如何更好呈現推薦,是一個很難建立理論模型和進行量化的問題。對於不同的被推薦品而言,用戶界麵設計的準則也可能大不相同。比如,在首頁、類目頁、具體商品頁、購物車頁都應該分別放置哪些推薦欄?不同的推薦欄放在頁麵的什麼位置能夠優化用戶體驗?什麼情況下應該讓用戶自己選擇推薦的個性化程度?基於用戶行為的實證研究可以回答一部分問題,同時需要建立一個可以進行A/B測試的係統,或可積累重要的實驗數據。

多維數據的交叉利用

目前網絡科學研究一個廣受關注的概念是具有相互作用的網絡的結構和動力學。網絡與網絡之間的相互作用大體可以分成三類。第一類是依存關係。比如,電力網絡和Internet,如果發生了大規模停電事故,當地的自主係統和路由器也會受到影響,導致網絡局部中斷。第二類是合作關係,比如人的一次出行,可以看作航空網絡、鐵路網絡和公路網絡的一次合作。第三類是交疊關係,主要針對社會網絡,這也是我們最關注的。

幾乎我們每一個人都參與了不止一個大型的社會網絡,既有新浪微博的賬號,又是人人網的注冊用戶,還是手機用戶,那麼你已經同時在三個巨大的社會網絡中了。與此同時,你可能還經常在淘寶、京東、 麥包包、1號店、庫巴網等網站上進行網購,那麼你就成為了一張巨大的用戶-商品圖中的一員。

想象如果能夠把這些網絡數據整合起來,特別是知道每個節點身份的對應關係(不需要知道真實身份,隻需要知道不同網絡中存在的一些節點是同一個人),那麼其中定會有特別巨大的社會經濟價值。舉個例子,你可能已經在新浪微博上關注了很多數據挖掘達人的微博,並且分享了很多算法學習的心得和問題。而當你第一次上當當網購書時,主頁向你推薦數據挖掘的最新專著並附有折扣,你會心動嗎?交疊社會關係中的數據挖掘,或稱多維數據挖掘,是真正解決係統內部冷啟動問題的終極法寶—隻要用戶在係統外部的其他係統有過活動。

單純從個性化商品推薦來講,可以利用用戶在其他電商網站的瀏覽購買曆史來提高在目標電商推薦的精確度—當然,每一個電商既是付出者,也是獲利者。總體而言,大家能夠通過提高用戶體驗和點擊深度實現共贏。與此同時,可以利用微博和其他社會網絡的活動提高商品推薦的精度,還可以反過來利用商品瀏覽曆史提高微博關注對象推薦的精度。推薦一個經常購買專業羽毛球和瀏覽各種專業羽毛球設備的用戶關注羽毛球的專業選手和業餘教練的成功率應該很高,而且不會陷入“總在一個圈子裏麵來回推薦”的毛病中。從機器學習的角度,楊強等人提出的“遷移學習”算法有望用來解決這種跨鄰域的推薦。

我們分析了百分點科技服務客戶的真實數據,發現有相當比例的用戶都具有交叉購物的習慣(在多個獨立B2C電商有瀏覽和購買行為)。即便隻考慮兩個點,例如利用麥包包的瀏覽購買數據為拍鞋網的用戶進行個性化推薦(這些用戶是在拍鞋網上沒有任何曆史記錄的新用戶,但在麥包包上有瀏覽購買行為),就可以明顯提高推薦的準確度(比完全冷啟動的隨機推薦高數十倍)。而如果利用3家或以上的外部電商的數據,其推薦的精確度可以明顯高於熱銷榜(注意,熱銷榜一點個性化都沒 有),特別在團購類網站上表現非常好。

雖然針對多維數據挖掘的研究剛起步,但我們完全可以相信這在學術和應用上都將是一個焦點和難點。

社會推薦

很早以前,研究人員就發現,用戶更喜歡來自朋友的推薦而不是被係統“算出來的推薦”。社會影響力被認為比曆史行為的相似性更加重要。例如通過社會關係的分析,可以大幅度提高從科研文獻到網購商品推薦的精確度。來自朋友的社會推薦有兩方麵效果:一是增加銷售(含下載、閱讀……),二是在銷售後提高用戶的評價。

社會推薦的效果也不完全是正麵的,譬如Leskovec等人在論文“The Dynamics of Viral Marketing”中舉了一個反例:朋友推薦對書的銷售增長幾乎沒有幫助,有時會起到負麵作用。

在社會推薦方麵,國內做得最出色的是豆瓣網,其朋友推薦被接受被高度評價的比例非常高。最近有證據顯示,朋友推薦也是淘寶商品銷售一個非常重要的驅動力量。

社會推薦方向存在的挑戰主要可以分為三類:一是如何利用社會關係提高推薦的精確度;二是如何建立更好的機製以促進社會推薦;三是如何將社會信任關係引入到推薦係統中。社會推薦的效果可能來自於類似口碑傳播的社會影響力,也可能是因為朋友之間本來就具有相似的興趣或者興趣相投更易成為朋友。對這些不同的潛在因 素進行量化區別,也是學術研究的熱點之一。

相關閱讀

有些朋友可能還不是很了解個性化推薦,推薦閱讀《自然科學進展》上的綜述,能快速得到很多信息,了解個性化推薦研究的概貌。有了這個基礎,如果想要了解應用級別的算法和技術,推薦閱讀項亮、陳義和王益合著的《推薦係統實踐》一書。

同時建議關注國外最近出版的《Recommender Systems Handbook: A Complete Guide for Scientists and Practioners》和《Recommender Systems: An Introduction.》。前者實際上是很多文章的匯總,寫這些文章的作者都是技術專家,文章質量不錯。Adomavicius和Tuzhilin撰寫的“Toward the next generation of recommender systems: a survey of the state-of-the-art and possible extensions”一文特別有影響力,不僅係統回顧了推薦係統研究的全貌,還提出了一些有趣的開放性問題。今年在《物理報導》上有一篇關於推薦係統的 大綜述,應該是目前最全麵的,所強調的不僅是算法,還有很多現象和思路,推薦大家閱讀。

作者周濤,電子科技大學互聯網科學中心主任、教授、博士生導師,阿裏巴巴商學院錢塘特聘教授,北京計算科學研究中心客座教授。畢業於瑞士弗裏堡大學,獲物理係哲學博士。

最後更新:2017-04-03 08:26:21

  上一篇:go Cocos2d-x多場景切換生命周期
  下一篇:go 機房收費係統vb.net之打包與部署(一)