個性化推薦十大挑戰 https://mp.weixin.qq.com/s?src=3×tamp=1500173089&ver=1&signature=eXmir8z2OsFLUQc8-bKHKxsZOQ2AVpG1IWayjtZ-k-HqrZn2urv8qEFNprSckjxLI8sNLT45XLNcSjcLoWxcw0YuYNHdTjARvTyLPnQDVWalhscvoZirF4dgXEzk7ujjLWXlyLPTCJQSPr6Fvw4*usZxPaKRwQ0ceJXOajyo0=
- Github項目: awesome-coder-resources:編程/學習/閱讀資源---開源項目,面試題,網站,書,博客,教程等等...歡迎Star,歡迎圍觀...
個性化推薦很多讀者都知道,但其中不乏認識上的誤區。有的人覺得個性化推薦就是細分市場和精準營銷,實際上細分市場和精準營銷往往是把潛在的用戶分成很多群體,這固然相比基于全體的統計有了長足的進步,但是距離“給每一個用戶量身定做的信息服務”還有很大的差距,所以,只能說個性化推薦是細分市場的極致!實際上,信息服務經歷了兩次理念上的變革,第一次是從總體到群體,第二次是從群體到個體。第二次變革正在進行中,所要用到的核心技術就是這篇文章要討論的個性化推薦技術。
還有讀者覺得個性化推薦就等同于協同過濾,這可能是因為協同過濾應用比較廣泛并且比較容易為大眾理解。實際上協同過濾只是個性化推薦技術中的一個成員。它與很多更先進技術相比,就好像流行歌曲和高雅音樂,前者廣受歡迎,而且一般人也可以拿個麥克風吼兩聲,但是說到藝術高度,流行歌曲還是要差一些。當然,流行歌曲經濟價值可能更大,這也是事實。總的來說,協同過濾只是個性化推薦技術中的一款輕武器,遠遠不等于個性化推薦技術本身。
有些讀者可能不是很了解個性化推薦,我先推薦一些閱讀的材料。中文的綜述可以看我們2009年在《自然科學進展》上的綜述[1]。這篇文章質量不能說很好,但是可以比較快得到很多信息,了解個性化推薦研究的概貌。有了這個基礎,如果想要了解突出應用的算法和技術,我推薦項亮和陳義合著的《推薦系統實踐》[2]。百分點科技出版過一本名為《個性化:商業的未來》的小冊子[3],應用場景和商業模式介紹得比較細致,技術上涉及很少,附錄里面介紹了一些主流算法和可能的缺陷,或許能夠稍有啟發。國外的專著建議關注最近出版的兩本[4,5],其中[4]實際上是很多文章的匯總,因為寫這些文章的都是達人,所以質量上佳。
Adomavicius和Tuzhilin的大型綜述特別有影響力,不僅系統回顧了推薦系統研究的全貌,還提出了一些有趣的開放性問題[6]——盡管我個人不是很喜歡他們對于推薦系統的分類方法。我們今年發表了一篇大綜述,應該是目前最全面的綜述,所強調的不僅僅是算法,還有很多現象和思路[7]——大家有興趣不妨看看。
有些讀者認為個性化推薦技術的研究已經進入了很成熟的階段,沒有什么特別激動人心的問題和成果。恰恰相反,現在個性化推薦技術面臨很大的挑戰,這也是本文力圖讓大家認識的。接下來進入正題!我將列出十個挑戰(僅代表個人觀點),其中有一些是很多年前就認識到但是沒有得到解決的長期問題,有一些事實上不可能完全解決,只能提出改良方案,還有一些是最近的一些研究提出來的焦點問題。特別要提醒讀者注意的是,這十個挑戰并不是孤立的,極有可能一個方向上的突破能夠對若干重大挑戰都帶來進展。
挑戰一:數據稀疏性問題。
現在待處理的推薦系統規模越來越大,用戶和商品(也包括其他物品,譬如音樂、網頁、文獻……)數目動輒百千萬計,兩個用戶之間選擇的重疊非常少。如果用用戶和商品之間已有的選擇關系占所有可能存在的選擇關系的比例來衡量系統的稀疏性,那么我們平時研究最多的MovieLens數據集的稀疏度是4.5%,Netflix是1.2%。這些其實都是非常密的數據了,Bibsonomy是0.35%,Delicious是0.046%。想想淘寶上號稱有近10億商品,平均而言一個用戶能瀏覽1000件嗎,估計不能,所以稀疏度應該在百萬分之一或以下的量級。數據非常稀疏,使得絕大部分基于關聯分析的算法(譬如協同過濾)效果都不好。這種情況下,通過珍貴的選擇數據讓用戶和用戶,商品和商品之間產生關聯的重要性,往往要比用戶之間對商品打分的相關性還重要[8]。舉個例子來說,你注意到一個用戶看了一部鬼片,這就很大程度上暴露了用戶的興趣,并且使其和很多其他看過同樣片子的用戶關聯起來了——至于他給這個片子評價高還是低,反而不那么重要了。事實上,我們最近的分析顯示,稀疏數據情況下給同一個商品分別打負分(低評價)和打正分的兩個用戶要看做正相關的而非負相關的,就是說負分扮演了“正面的角色”[9]——我們需要很嚴肅地重新審查負分的作用,有的時候負分甚至作用大于正分[10]。
這個問題本質上是無法完全克服的,但是有很多辦法,可以在相當程度上緩解這個問題。首先可以通過擴散的算法,從原來的一階關聯(兩個用戶有多少相似打分或者共同購買的商品)到二階甚至更高階的關聯[11-13],甚至通過迭代尋優的方法,考慮全局信息導致的關聯[14-15]。這些方法共同的缺點是建立在相似性本身可以傳播的假設上,并且計算量往往比較大。其次在分辨率非常高的精度下,例如考慮單品,數據可能非常稀疏。但是如果把這些商品信息粗粒化,譬如只考慮一個個的品類,數據就會立刻變得稠密。如果能夠計算品類之間的相似性,就可以幫助進行基于品類的推薦(圖2是品類樹的示意圖)。在語義樹方面有過一些這方面的嘗試[16],但是很不成熟,要應用到商品推薦上還需要理論和技術上的進步。另外,還可以通過添加一些缺省的打分或選擇,提高相似性的分辨率,從而提高算法的精確度[17]。這種添加既可以是隨機的,也可能來自于特定的預測算法[18]。
隨機的缺省分或隨機選擇為什么會起到正面的作用呢,僅僅是因為提高了數據的密度嗎?我認為仔細的思考會否決這個結論。對于局部熱傳導的算法[19],添加隨機連接能夠整體把度最小的一些節點的度提高,從而降低小度節點之間度差異的比例(原來度為1的節點和度為3的節點度值相差2倍,現在都加上2,度為3的節點和度為5的節點度值相差還不到1倍),這在某種程度上可以克服局部熱傳導過度傾向于推薦最小度節點的缺陷。類似地,隨機鏈接可以克服協同過濾或局部能量擴散算法[20]過度傾向于推薦最大度節點的缺陷。總之,如果拉小度的比例差異能夠在某種程度上克服算法的缺陷,那么使用隨機缺省打分就能起到提高精確度的作用。
挑戰二:冷啟動問題。
新用戶因為罕有可以利用的行為信息,很難給出精確的推薦。反過來,新商品由于被選擇次數很少,也難以找到合適的辦法推薦給用戶——這就是所謂的冷啟動問題。如果我們能夠獲得商品充分的文本信息并據此計算商品之間的相似性,就可以很好解決冷啟動的問題[21],譬如我們一般不擔心圖書或者論文推薦會遇到冷啟動的問題。不幸的是,大部分商品不同于圖書和文章本身就是豐富的內容,在這種情況下通過人工或者自動搜索爬取的方法商品相應的描述,也會有一定的效果。與之相似,通過注冊以及詢問得知一些用戶的屬性信息,譬如年齡、居住城市、受教育程度、性別、職業等等,能夠得到用戶之間屬性的相似度,從而提高冷啟動時候推薦的精確度[22,23]。最近標簽系統(tagging systems)的廣泛應用提供了解決冷啟動問題的可能方案[24]。因為標簽既可以看作是商品內容的萃取,同時也反映了用戶的個性化喜好——譬如對《桃姐》這部電影,有的人打上標簽“倫理”,有的人打上標簽“劉德華”,兩個人看的電影一樣,但是興趣點可能不盡相同。當然,利用標簽也只能是提高有少量行為的用戶的推薦準確性,對于純粹的冷啟動用戶,是沒有幫助的,因為這些人還沒有打過任何標簽。系統也可以給商品打上標簽,但是這里面沒有個性化的因素,效果會打一個折扣。從這個意義上講,利用標簽進行推薦、激勵用戶打標簽以及引導用戶選擇合適的標簽,都非常重要[25]。
要緩解冷啟動的問題,一種有效的辦法是盡可能快地了解用戶的特點和需求,所以如何設計問卷調查本身以及如何利用其中的信息也是一門大學問[26]。與之相對應,對于一個新商品,怎么樣讓用戶,特別是有影響力的用戶,對其給出高質量的評價,對于解決冷啟動問題也有重大價值[27]。如何在保證一定推薦精度的情況下,讓新用戶和新商品的特性盡快暴露,是一個很有意義也很困難的研究難題[28]。
最近一個有趣的研究顯示,新用戶更容易選擇特別流行的商品[29]——這無論如何是一個好消息,說明使用熱銷榜也能獲得不錯的結果。冷啟動問題還可以通過多維數據的交叉推薦和社會推薦的方法部分解決,其精確度和多樣性又遠勝于熱銷榜,這一點我們在后面會進一步介紹。
挑戰三:大數據處理與增量計算問題。
盡管數據很稀疏,大部分數據都包含百千萬計的用戶和商品,與此同時,新商品也不斷加入系統,新用戶不停進入系統,用戶和商品之間還不停產生新的連接。數據量不僅大,而且數據本身還時時動態變化,如何快速高效處理這些數據成為迫在眉睫的問題。在這個大前提下,算法時間和空間的復雜性,尤其是前者,獲得了空前重視。一般而言,一個高效的算法,要么自身復雜性很低,要么能夠很好并行化,要么兩者兼具。
提高算法的效率,有很多途徑。大致上可以分為兩類,一是精確算法,二是近似算法。需要注意的是,精確算法中“精確”這次詞,并不是指算法的推薦精確度有多大,而是相對于近似算法而言,強調這個算法并不是以犧牲算法中某些步驟的精確性而提高效率的。譬如說計算n的階乘,可以有不同的高精度算法,凡是得出最后精確值的就是精確算法,而如果利用斯特林公式進行計算,就屬于近似算法了。一般而言,近似算法的效率會明顯高于精確算法。
通過巧妙的方法,可以設計出效率很高的精確算法。譬如Porteous等人設計了一種可以用于潛層狄利克雷分配(Latent Dirichlet Allocation, LDA)算法的新的采樣方法,比傳統吉布斯采樣算法快8倍[30]。
Cacheda等人設計了一種預測算法,只考慮一個用戶與其他用戶打分的差異以及一個商品與其他商品得分的差異,這個算法遠遠快于協同過濾算法,卻能夠得到比標準的基于用戶的協同過濾算法更精確的預測效果,其預測精度有時候甚至可以和SVD分解的方法媲美[31]。提高精確算法的另外一條途徑就是并行化——很多算法的并行化,一點都不簡單。谷歌中國成功將LDA算法并行化并應用于Orkut的推薦中,取得了很好的效果[32]。最近Gemulla等人提出了一種隨機梯度下降法,可以并行分解百萬行列的矩陣,該方法可以應用在包括推薦在內的若干場景下[33]。
近似算法往往基于增量計算,也就是說當產生新用戶,新商品以及新的連接關系時,算法的結果不需要在整個數據集上重新進行計算得到,而只需要考慮所增加節點和連邊局部的信息,對原有的結果進行微擾,快速得到新結果[34]。一般而言,這種算法隨著加入的信息量的增多,其誤差會積累變大,最終每過一段時間還是需要利用全局數據重新進行計算。更先進但也更苦難的辦法,是設計出一種算法,能夠保證其誤差不會累積,也就是說其結果與利用全部數據重新計算的結果之間的差異不會單調上升。我們不妨把這種算法叫做自適應算法,它是增量算法的一個加強版本[35],其設計要求和難度更高。增量算法已經在業界有了應用,譬如百分點推薦引擎中的若干算法都采用了增量技術,使得用戶每次新瀏覽、收藏或者購買商品后其推薦列表立刻得到更新。但是自適應算法目前還只是在比較特殊的算法上面才能實現,更勿談工業界應用了。
挑戰四:多樣性與精確性的兩難困境。
如果要給用戶推薦他喜歡的商品,最“保險”的方式就是給他特別流行的商品,因為這些商品有更大的可能性被喜歡(否則也不會那么流行),往壞了說,也很難特別被討厭(不要舉鳳姐的例子)。但是,這樣的推薦產生的用戶體驗并不一定好,因為用戶很可能已經知道這些熱銷流行的產品,所以得到的信息量很少,并且用戶不會認同這是一種“個性化的”推薦。Mcnee等人已經警告大家,盲目崇拜精確性指標可能會傷害推薦系統——因為這樣可能會導致用戶得到一些信息量為0的“精準推薦”并且視野變得越來越狹窄[36]。事實上,讓用戶視野變得狹窄也是協同過濾算法存在的一個比較主要的缺陷。已經有一些實證研究顯示,多樣性、新穎性、偶然性這些從未獲得過如精確性一般重要地位的因素,對于用戶體驗都十分重要——譬如用戶希望音樂推薦更多樣更偶然[37]。
與此同時,應用個性化推薦技術的商家,也希望推薦中有更多的品類出現,從而激發用戶新的購物需求。多樣性和新穎性的要求在大多數情況下具有一致性,一些商家更喜歡引導用戶關注一些銷量一般的長尾商品(這些商品的利潤往往更多),這種新穎性的要求往往和多樣性的要求一致。還有一些特別的需求非常強調多樣性和新穎性,譬如類似于“唯品會”這樣的限時搶購模式或者最近非常流行的團購模式,廣受歡迎的熱銷商品很快就搶購/團購一空,推薦引擎能夠發揮作用的只能是推薦那些不太被主流消費者關注的小眾產品。對于新浪微博這類的社會網絡,相當部分新用戶很快就不活躍了,很大程度上是因為得不到其他人關注。類似地,世紀佳緣和百合網這類的網站中,一個用戶如果很長時間沒有機會得到任何異性的青睞,也會失去動力。在這種情況下,我們要考慮的不僅僅是向某些用戶推薦,而是如何把一些至少目前還不是特別受歡迎的用戶推薦出去——這時候,在多樣性和新穎性上表現出色的算法意義更大。最近Ugander等人的工作顯示,一個用戶要向其他若干用戶推廣某種互聯網活動,在同等推廣力度下(用推薦的朋友數目衡量),其所選擇的推薦對象的結構多樣性越大,效果往往越好[38]。
保證推薦的多樣性很有價值,但是,推薦多樣的商品和新穎的商品與推薦的精確性之間存在矛盾,因為前者風險很大——一個沒什么人看過或者打分較低的東西推薦出手,很可能被用戶憎惡,從而效果更差。很多時候,這是一個兩難的問題,只能通過犧牲多樣性來提高精確性,或者犧牲精確性來提高多樣性。一種可行之策是直接對算法得到的推薦列表進行處理,從而提升其多樣性[39-41]。Hurley和Zhang就是在推薦算法得到的前N個商品中進行一次組合優化,找出L個商品(L<N),使得這L個商品兩兩之間平均相似度最小[41]。目前百分點推薦引擎所使用的方法也是類似的。這種方法固然在應用上是有效的,但是沒有任何理論的基礎和優美性可言,只能算一種野蠻而實用的招數。更好的辦法是在設計算法的時候就同時考慮推薦的多樣性和精確性,這可以通過精巧混合能量擴散和熱傳導算法[19],或者利用有偏的能量擴散[42]和或有偏的熱傳導來實現[43]。圖3是能量擴散與熱傳導混合算法的示意圖。這個算法認為目標用戶選擇過的商品具有一定的“推薦能力”,在能量擴散過程中它們被賦予初始能量1,而在熱傳導的過程中它們被認為是初始熱源,具有溫度1。能量擴散是一個守恒的過程,每一個時間步節點上的能量都均勻分配給所有鄰居(圖3上半部分);與之相對的,熱傳導過程中每一個節點下一個時間步的溫度等于其所有鄰居溫度的平均值(圖3下半部分)。前者傾向于推薦熱門商品,后者傾向于挖掘冷門商品,兩相結合,精確性和多樣性都能明顯提高[19]。盡管上面提到的這些算法效果很好,似乎也能夠比較直觀地進行理解,但是我們還沒有辦法就相關結果提供清晰而深刻的見解。多樣性和精確性之間錯綜復雜的關系和隱匿其后的競爭,到目前為止還是一個很棘手的難題。
圖4:對推薦系統實施攻擊的示意圖。
挑戰五:推薦系統的脆弱性問題。
受推薦系統在電子商務領域重大的經濟利益的驅動,一些心懷不軌的用戶通過提供一些虛假惡意的行為,故意增加或者壓制某些商品被推薦的可能性[44]。圖4展示了一個攻擊的實例。假設我們現在要決定是否向用戶h推薦商品7,如果系統中只有那些合法用戶(a-g),通過上表我們發現用戶a和f與用戶h的品味比較相似,由于用戶a和f都喜歡商品7,那么系統應該把商品7推薦給用戶h。如果受到惡意攻擊,系統會發現大多數由攻擊者生成的虛假用戶(i-m)的品味都與用戶h相似,并且他們對商品7都給了負面的評價,那么在這種情況下,系統就不會把商品7推薦給用戶h。這樣一來,就達到了那些攻擊者降低對商品7推薦可能性的目的。上面的例子僅僅是眾多攻擊方案中比較簡單的一員,Burke等人2011年的研究報告中就分析了4大種類8種不同的攻擊策略[45]。除了如圖4這樣的簡單方法外,攻擊者還通過將攻擊對象和熱銷商品或特定用戶群喜歡的商品綁定而提高攻擊效果,甚至通過持續探測猜測系統的計算相似性的算法,從而有針對性地開展攻擊。
從上面的介紹可以看出,一個推薦算法能否在一定程度上保持對惡意攻擊的魯棒性,成為需要認真考慮的一個特征。以最簡單的關聯規則挖掘算法為例,Apriori算法的魯棒性就遠勝于k近鄰算法[46]。有一些技術已經被設計出來提高推薦系統面對惡意攻擊的魯棒性,譬如通過分析對比真實用戶和疑似惡意用戶之間打分行為模式的差異,提前對惡意行為進行判斷,從而阻止其進入系統或賦予疑似惡意用戶比較低的影響力[47-49]。總體來說,這方面的研究相對較少,系統性的分析還很缺乏,反而是攻擊策略層出不窮,有一種“道高一尺,魔高一丈”的感覺。
挑戰六:用戶行為模式的挖掘和利用。
深入挖掘用戶的行為模式有望提高推薦的效果或在更復雜的場景下進行推薦。譬如說,新用戶和老用戶具有很不一樣的選擇模式:一般而言,新用戶傾向于選擇熱門的商品,而老用戶對于小眾商品關注更多[29],新用戶所選擇的商品相似度更高,老用戶所選擇的商品多樣性較高[50]。上面曾經介紹過的能量擴散和熱傳導的混合算法[19]可以通過一個單參數調節推薦結果的多樣性和熱門程度,在這種情況下就可以考慮給不同用戶賦予不同的參數(從算法結果的個性化到算法本身的個性化),甚至允許用戶自己移動一個滑鈕調節這個參數——當用戶想看熱門的時候,算法提供熱門推薦;當用戶想找點很酷的產品時,算法也可以提供冷門推薦。
用戶行為的時空統計特性也可以用于提高推薦或者設計針對特定場景的應用(關于人類行為時空特性的詳細分析請參考文獻[51])。最簡單的例子是在推薦前考慮用戶從事相關活動隨時間變化的活躍性。舉個例子,在進行手機個性化閱讀推薦的時候,如果曾經的數據顯示某個用戶只在7點到8點之間有一個小時左右的手機閱讀行為(可能是上班時在地鐵或者公交車上),那么9點鐘發送一個電子書閱讀的短信廣告就是很不明智的選擇。從含時數據中還可以分析出影響用戶選擇的長期和短期的興趣,通過將這兩種效應分離出來,可以明顯提高推薦的精確度[52-54]。事實上,簡單假設用戶興趣隨時間按照指數遞減,也能夠得到改進的推薦效果[55,56]。隨著移動互聯網的飛速發展以及GPS及其他手機定位技術的發展和普及,基于位置的服務成為一個受到學術界和業界廣泛關注的問題。基于位置信息的推薦可能會成為個性化推薦的一個研究熱點和重要的應用場景,而這個問題的解決需要能夠對用戶的移動模式有深入理解,包括預測用戶的移動軌跡和判斷用戶在當前位置是否有可能進行餐飲購物活動等[57,58],同時還要有定量的辦法去定義用戶之間以及地點之間的相似性[59,60]。事實上,即便簡單把位置信息作為一個單獨屬性加以考慮,也可以明顯提高廣告推薦[61]和朋友推薦[62]的精確度。特別要提醒各位讀者,知道了用戶的位置信息,并不意味著可以隨時向用戶推薦近處的餐飲購物等等場所,因為頻繁而不精確的推薦會讓用戶有一種被窺探和騷擾的感覺。從這個意義上講,把握進行推薦的時間和地點非常重要!一般而言,在用戶經常出沒的地點,譬如工作地點、學校、住家等等進行推薦的效果往往是比較差的,因為用戶對于這些地點比系統還熟悉,而且很難想象用戶在上下班的路上會有特別地情致購物或者進餐。實際上可以預測的時空信息往往是商業價值比較低的,而用戶在吃飯時間去了一個平常不太去的地方,往往有更大的可能是和朋友聚會就餐。這就要求系統更加智能,能夠對用戶當前行為所蘊含的信息量進行估計(要同時考慮時間和空間),并且在信息量充分大的時候進行推薦。
另外,不同用戶打分的模式也很不一樣[63,64],用戶針對不同商品的行為模式也不一樣[65,66](想象你在網上下載一首歌和團購房子時的區別),這些模式都可以挖掘刻畫并利用來提高推薦的效果。總而言之,推薦引擎要做的是針對合適的對象在合適的時間和合適的地方推薦合適的內容(4S標準)。通過分析不同用戶在選擇、評價、時間、空間等等行為模式上的不同,我們最終的目的是猜測目標用戶當前的意圖,并且針對不同的意圖匹配或組合不同的算法結果,將其推薦給用戶。這不僅需要更高級的數據分析能力,還需要有豐富經驗了解業務邏輯的工作人員配合完成。這種稱為“情境計算”的思路,有可能較大程度提高推薦及其他信息服務(譬如搜索)的質量,百分點的推薦引擎就是在這種思路下架構的[67]。
挑戰七:推薦系統效果評估。
推薦系統的概念提出已經有幾十年了,但是怎么評價推薦系統,仍然是一個很大的問題。常見的評估指標可以分為四大類,分別是準確度、多樣性、新穎性和覆蓋率,每一類下轄很多不同的指標,譬如準確度指標又可以分為四大類,分別是預測評分準確度、預測評分關聯、分類準確度、排序準確度四類。以分類準確度為例,又包括準確率、召回率、準確率提高率、召回率提高率、F1指標和AUC值。圖5總結了文獻中曾經出現過的幾乎所有的推薦系統指標[68]。之所以對推薦系統的評價很困難,是因為這些指標之間并不是一致的,一般而言,多樣性、新穎性和覆蓋率之間一致性較好,但不絕對,而這三者往往都和準確度有沖突。如前所述,解決多樣性和精確性之間的矛盾本身就是一個重大的挑戰!更不幸的是,即便是同一類指標,其表現也不完全一致。舉個例子說,一些基于SVD分解的算法,以降低均方根誤差(參考圖5)為目標,在預測評分精確性方面表現上佳,但是在推薦前L個商品的準確率和召回率(參考圖5)方面則表現得很不如人意,有些情況下甚至還不如直接按照流行度排序的非個性化算法[69]。
圖5介紹的那些指標都是基于數據本身的指標,可以認為是第一層次。實際上,在真實應用時,更為重要的是另外兩個層次的評價。第二個層次是商業應用上的關鍵表現指標,譬如受推薦影響的轉化率,購買率,客單價,購買品類數等等,第三個層次是用戶真實的體驗。絕大部分研究只針對第一個層次的評價指標,而業界真正感興趣的是第二個層次的評價(譬如到底是哪個指標或者哪些指標組合的結果能夠提高用戶購買的客單價),而第三個層細最難,沒人能知道,只能通過第二層次的效果來估計。如何建立第一層面和第二層面指標之間的關系,就成為了關鍵,這一步打通了,理論和應用之間的屏障就通了一大半了。
挑戰八:用戶界面與用戶體驗。
這個問題更多地不是一個學術性質的問題,而是從真實應用中來的問題。十年前就有學者指出[70,71],推薦結果的可解釋性,對于用戶體驗有至關重要的影響——用戶希望知道這個推薦是怎么來的。基于相似性的推薦(例如協同過濾)在這個問題上具有明顯的優勢,譬如亞馬遜基于商品的協同過濾的推薦[72]在發送推薦的電子郵件時會告訴用戶之所以向其推薦某書,是因為用戶以前購買過某些書,新浪微博基于局部結構相似性的“關注對象推薦”[73]在推薦的同時會說明哪些你的朋友也關注過他們。相對地,矩陣分解或者集成學習算法就很難向用戶解釋推薦結果的起源。一般而言,用戶更喜歡來自自己朋友的推薦而不是系統的推薦,這一點在后面講社會推薦的時候還會詳細提到。另外,好的界面設計,能夠讓用戶覺得推薦的結果更加多樣化[74],更加可信[75]。
實際應用時,推薦列表往往含有很多項,這些推薦項最好能夠區分成很多類別,不同類別往往來自于不同的推薦方法,譬如看過還看過(瀏覽過本商品的客戶還瀏覽過的商品)、買過還買過(購買過本商品的客戶還購買過的商品)、看過最終購買(瀏覽過本商品的客戶最終購買的商品)、個性化熱銷榜(個性化流行品推薦)、猜你喜歡(個性化冷門商品推薦)等等。當然,每個推薦項呈現的結果往往都來自復雜的算法,絕不僅僅象它們的名字聽起來那么簡單。另外,推薦欄呈現的位置對于推薦的結果影響也很大,因為同一個網頁上不同位置對于用戶注意力的吸引程度大不一樣。圖6給出了EyeTrackShop針對Facebook個人頁面不同位置受關注程度的示意,可以看出,不同的位置受到的關注相差很大。
如何更好呈現推薦,是一個很難建立理論模型和進行量化的問題,對于不同被推薦品而言,用戶界面設計的準則也可能大不相同。建立一個可以進行A/B測試的系統(隨機將用戶分為兩部分,各自看到不同的推薦頁面和推薦結果),可以積累重要的實驗數據,指導進一步地改善。
挑戰九:多維數據的交叉利用。
目前網絡科學研究一個廣受關注的概念是具有相互作用的網絡的結構和功能。網絡與網絡之間的相互作用大體可以分成三類:一類是依存關系[76],譬如電力網絡和Internet,如果發生了大規模停電事故,當地的自主系統和路由器也會受到影響,導致網絡局部中斷;第二類是合作關系[77],譬如人的一次出行,可以看作航空網絡、鐵路網絡和公路網絡的一次合作;第三類是交疊關系[78],主要針對社會網絡,這也是我們最關注的。我們幾乎每一個人,都參與了不止一個大型的社會網絡中,譬如你可能既有新浪微博的帳號,又是人人網的注冊用戶,還是用手機,那么你已經同時在三個巨大的社會網絡中了。與此同時,你可能還經常在淘寶、京東、麥包包、1號店、庫巴網……這些地方進行網購,因此也是若干張用戶-商品二部分圖中的成員。
想象如果能夠把這些網絡數據整合起來,特別是知道每個節點身份的對應關系(不需要知道你真實身份,只需要知道不同網絡中存在的若干節點是同一個人),可以帶來的巨大的社會經濟價值。舉個例子,你可能已經在新浪微博上關注了很多數據挖掘達人的微博,并且分享了很多算法學習的心得和問題,當你第一次上當當網購書的時候,如果主頁向你推薦數據挖掘的最新專著并附有折扣,你會心動嗎?交疊社會關系中的數據挖掘,或稱多維數據挖掘,是真正有望解決系統內部冷啟動問題的終極法寶——只要用戶在系統外部的其他系統有過活動。單純從個性化商品推薦來講,可以利用用戶在其他電商的瀏覽購買歷史為提高在目標電商推薦的精確度——當然,每一個電商既是付出者,也是獲利者,總體而言,大家能夠通過提高用戶體驗和點擊深度實現共贏。與此同時,可以利用微博和其他社會網絡的活動提高商品推薦的精度,還可以反過來利用商品瀏覽歷史提高微博關注對象推薦的精度。給一個經常購買專業羽毛球和瀏覽各種專業羽毛球設備的用戶推薦關注羽毛球的專業選手和業余教練的成功率應該很高,而且不會陷入“總在一個圈子里面來回推薦”的毛病中。
從機器學習的角度,楊強等人提出的“遷移學習”算法有望解決這種跨鄰域的推薦[79],因為這種算法最基本的假設就是在一個領域所學習的知識在其他領域也具有一定的普適性。Nori等人最近的分析顯示[80],在某系統中特定的行為(比如說在Delicious上收藏標簽)可以被用于預測另外系統中的特定行為(比如說在Twitter上的信息選擇),其核心的思想與楊強等人一致。事實上,這種跨網的學習已經被證明可以提高鏈路預測的效果[81,82]。盡管有上面的有利的證據,我們還是需要特別注意,遷移學習在不同領域間的效果差異很大,還依賴于相關系統內部連接產生的機制,并不是普遍都能產生良好地效果,因為有的時候在一個商品品類上表現出高相似性的用戶在另外一些商品品類上可能表現出完全不同的偏好[83]。
我們分析了百分點科技服務客戶的真實數據,發現有相當比例的用戶都具有交叉購物的習慣,即在多個獨立B2C電商有瀏覽和購買行為,如圖7所示[84,85]。即便只考慮兩個點上,例如利用麥包包的瀏覽購買數據為名鞋庫的用戶進行個性化推薦(這些用戶在名鞋庫上是沒有任何歷史記錄的新用戶,但是在麥包包上有瀏覽購買行為),就可以明顯提高推薦的準確度(比完全冷啟動的隨機推薦高數十倍)[84],而如果利用3家或以上的外部電商的數據,其推薦的精確度可以明顯高于熱銷榜(注意,熱銷榜一點個性化都沒有),特別在團購類網站上表現非常好[85]。擁有交叉用戶使得不同系統之間的“遷移”更加容易(注意,“遷移學習”原始的方法[79]不要求系統之間具有相同的用戶和商品),Sahebi和Cohen最近測試同時評價了書和電影的用戶,也發現利用對書的評分信息可以相當程度上預測對電影的評分[86]。雖然針對多維數據挖掘的研究剛剛起步,但我相信其必將成為學術研究和商業應用上的雙料熱點和雙料難點。
挑戰十:社會推薦。
很早以前,研究人員就發現,用戶更喜歡來自朋友的推薦而不是被系統“算出來的推薦”[87]。社會影響力被認為比歷史行為的相似性更加重要[88,89],例如通過社會關系的分析,可以大幅度提高從科研文獻[90]到網購商品[91],從個人博客到[92]手機應用軟件[93]推薦的精確度。最近有證據顯示,朋友推薦也是淘寶商品銷售一個非常重要的驅動力量[94]。來自朋友的社會推薦有兩方面的效果:一是增加銷售(含下載、閱讀……)[95],二是在銷售后提高用戶的評價[96]。當然,社會推薦的效果也不是我們想象的那么簡單:Leskovec等人[95]在同一篇論文中指出針對不同類型的商品社會推薦的效果大不一樣;Yuan等人指出不同類型的社會關系對推薦的影響也不同[97];Abbassi等人指出朋友的負面評價影響力要大于正面評價[98];等等。
在社會推薦方向存在的挑戰主要可以分為三類:一是如何利用社會關系提高推薦的精確度[89,99],二是如何建立更好的機制以促進社會推薦[100-102],三是如何將社會信任關系引入到推薦系統中[103-107]。社會推薦的效果可能來自于類似口碑傳播的社會影響力,也可能是因為朋友之間本來就具有相似的興趣或者興趣相投更易成為朋友,對這些不同的潛在因素進行量化區別,也屬學術研究的熱點之一[108]。