認識個性化推薦系統-從推薦算法到產品冷啟動

為什麼需要個性化推薦?


科技進步帶來的是更大程度地提高效率和生產力已經是無可爭辯的事實。

隨著時代變遷的廣告業,從廣播、電視業廣告的輝煌,到互聯網門戶時代的banner廣告和狂轟亂炸的edm,再到了搜索引擎和移動互聯網時代的推薦位廣告,隨著人們的數據可被記錄並且計算,也隨之產生了計算廣告學這門新興學科。

從廣撒網的廣告形式到精準地捕捉到用戶的需求,並且呈現給用戶更加恰當的廣告,給互聯網公司帶來了鉅額的廣告收入,這中間推薦系統功不可沒。

認識個性化推薦系統-從推薦算法到產品冷啟動

早期的門戶網站充斥著banner廣告,並沒有精準觸達用戶

電商的推薦系統則幫助電商網站大大提高銷售額,亞馬遜通過個性化推薦系統能夠提高35%的銷售量。

在2016年,推薦算法能夠為Netflix節省每年10億美元。讓其中的冷門內容也能夠發揮作用,需要依賴基於用戶習慣數據的個性化推薦系統——利用個性化推薦,相比簡單展示最受歡迎清單,觀看率提升3-4倍。

認識個性化推薦系統-從推薦算法到產品冷啟動

而近兩年興起的內容分發類產品更是基於內容推薦的個性化推薦收穫了大量用戶的注意力。今日頭條、一點資訊,或是百度的feed流產品,已經成為了除了微信之外的“時間殺手”。讓用戶願意沉浸其中的原因,除了產品內容本身的建設,也有來自於個性化推薦的重要力量。

推薦系統的核心思想:集群智慧


凱文凱利曾經在《失控》中曾經說到蜂群的故事:

蜜蜂看到一條信息:“去那兒,那是個好地方”。它們去看過之後回來舞蹈說,“是的,真是個好地方。” 通過這種重複強調,所屬意的地點吸引了更多的探訪者,由此又有更多的探訪者加入進來。按照收益遞增的法則,得票越多,反對越少。漸漸地,以滾雪球的方式形成一個大的群舞,成為舞曲終章的主宰,最大的蜂群獲勝。

認識個性化推薦系統-從推薦算法到產品冷啟動

凱文凱利用超級有機體可以來形容蜂群。同樣,這個詞也可以來形容整個互聯網上的人群。他們在網絡上留下的痕跡可以說是無意識的,但是也帶有了某種“集群的意識”。

扯遠了,還是來看看互聯網集群智慧的例子:

Wikipedia-用戶貢獻內容:Wikipedia是一件集群智慧的典型產物,它完全由用戶來維護,因為每一篇文章都會有大量的用戶去進行修改,所以最終的結果很少出現問題,而那些惡意的操作行為也會因為有海量的用戶的維護而被儘快地修復。

Google-利用海量數據進行判斷:Google的Pagerank算法的核心思想是通過其他網頁對當前網頁的引用數來判斷網頁的等級,這種算法需要通過海量的用戶數據來進行。

協同過濾


說到個性化推薦最常用的設計思想,不得不說說協同過濾,它一種在做個性化推薦時候的方法論。

因為如果僅僅按照單一的熱門推薦,網絡的馬太效應(指強者愈強、弱者愈弱的現象)就會明顯;且長尾中物品較難被用戶發現,造成了資源浪費。而協同過濾問題恰恰解決了用戶的個性化需求(用戶更願意打開自己感興趣或者熟悉的內容),使得長尾上的物品有了被展示和消費的可能性,也使得馬太效應相對弱化。

協同過濾包括兩種類型:

1.Item-CF(基於物品的協同過濾)

小明在網站上看了《超人歸來》的電影,系統就會推薦與這部電影的相似的電影,比如《蜘蛛俠2》給小明。這是基於電影之間的相似性做出的推薦。(注意:兩部電影時間的是否相似是由大量用戶是否同時都看了這兩部電影得到的。如果大量用戶看了A電影,同時也看了B電影,即可認為這兩部的電影是相似的,所以Item-CF仍然是基於用戶行為的。)

認識個性化推薦系統-從推薦算法到產品冷啟動

騰訊視頻中,當觀看《超人歸來》時系統推送的電影


2.User-CF(基於用戶的協同過濾):

小明在購物網站上買了一副耳機,系統中會找出與小明相似的“近鄰好友”他們除了買耳機之外,還買了什麼。如果與小明相似的“近鄰”小華還買過音箱,而這件東西小明還沒買過,系統就會給小明推薦音箱。這是基於用戶之間的相似性做出的推薦。

注:這裡的CF=collaborativefiltering

而這兩種類型的協同過濾都是要基於用戶行為來進行。

而除了協同過濾之外,還有基於內容的推薦、基於知識的推薦、混合推薦等方式。

物以類聚,人以群分。

這句話很好地解釋了協同過濾這種方法的思想。

認識個性化推薦系統-從推薦算法到產品冷啟動

亞馬遜網站上對圖書的推薦 -基於Item-CF

前一陣參加pmcaff的人工智能產品經理的活動,主講人香港中文大學的湯曉鷗教授(目前人工智能視覺方面的頂級專家)說,目前機器視覺領域可以通過社交網絡照片或者個人相冊中的圖片的學習,可以做到預測個人徵信。與誰的合影,在什麼地方拍照都成為了機器預測個人特徵的判斷因素。

這也是利用了“人以群分"的常識,只是加上了高大上的機器視覺技術而已。

機器學習與個性化推薦的關係


什麼是機器學習?《集群智慧編程》這本書裡是這麼解釋的:

機器學習是人工智能領域中與算法相關的一個子域,它允許計算機不斷地進行學習。大多數情況下,這相當於將一組數據傳遞給算法,並由算法推斷出與這些數據的屬性相關的信息-藉助這些信息,算法就能夠預測出未來有可能出現的其他數據。這種預測是完全有可能的,因為幾乎所有非隨機數據中,都會包含這樣或那樣的“模式(patterns)”,這些模式的存在使機器得以據此進行歸納。為了實現歸納,機器會利用它所認定的出現數據中的重要特徵對數據進行“訓練”,並藉此得到一個模型。

機器學習本質上是從數據中構建模型來進行“數據預測”或者“下決定”的事兒,而個性化推薦系統的本質,也是預測用戶可能感興趣的事兒。機器學習可以用來做個性化推薦系統,也可以做其他類型的預測,比如金融欺詐偵測、安防、股票市場分析、垃圾email過濾等等。

認識個性化推薦系統-從推薦算法到產品冷啟動

這張圖很好地解釋了機器學習的工作過程。機器學習分為無監督學習和有監督學習兩種,也有延伸出增強學習和半監督學習的方法。

Hadoop與Mahout


那些推薦算法這裡不再贅述,但是大數據技術方面的基礎知識,作為小白還是需要要有所瞭解。

眾所周知,推薦系統的數據處理往往是海量的,所以處理這些數據的時候要用到像Hadoop這樣的分佈式處理軟件框架。

認識個性化推薦系統-從推薦算法到產品冷啟動

Hadoop是一個能夠對大量數據進行分佈式處理

的軟件框架。Hadoop 以一種可靠、高效、可伸縮的方式進行數據處理。

Hadoop是一個生造出來的詞,而Mahout中文意思就是象夫,可以看出,如果把大數據比作一隻大象的話,那mahout就是就是指揮大數據進行運算的指揮官。

認識個性化推薦系統-從推薦算法到產品冷啟動

認識個性化推薦系統-從推薦算法到產品冷啟動

Mahout是 Apache Software Foundation(ASF)旗下的一個開源項目,提供一些可擴展的機器學習領域經典算法的實現,旨在幫助開發人員更加方便快捷地創建智能應用程序。

其目的也和其他的開源項目一樣,Mahout避免了在機器學習算法上重複造輪子。

推薦系統的數據來源


眾所周知,對推薦系統的個性化推薦算法需要運用來自用戶的數據,那麼這些數據都是來自於哪裡,為我們所用呢?

基於用戶行為數據:

舉個好玩的例子:通過GPS信號,可以測得手機速度以及位置,當用戶的手機在早上8點由高速變成低速,可以判斷是從地鐵出來,就可以向他推薦附近的麥當勞早餐優惠券了。

另外,運營商是可以得到用戶手機訪問過的網頁數據的,通過文本挖掘,可以瞭解用戶的偏好,如看過很多足球類的文章,可以瞭解用戶為喜歡足球的用戶,而喜歡足球的用戶很大的可能性是男性,則可以多推送一些相關的體育新聞內容,甚至男性用品(比如剃鬚刀)廣告給他。

基於社交網絡數據:

通過用戶的社交網絡數據可以基於好友關係,推薦朋友給用戶。當小紅和小明同時有10個朋友,那就說明他們在一個朋友圈子。他們共同好友越多,就更有可能在兩個人之間做相互推薦。

基於上下文的數據:

上下文的數據又可以分為兩種,時間上下文與地點上下文

舉一個栗子,在時間上下文的情況下,某外賣app需要根據早中晚人們的用餐習慣來給用戶推送不一樣的食物或者優惠券,這樣推薦不同的食物更符合用戶的習慣。

另外根據地點的上下文說的是,如果你在辦公室用某外賣app點一份外賣,那麼推薦給你的外賣餐廳是要離你較近的,而不是推送十公里以外的餐廳。

基於內容的推薦與熱度算法


我們要知道個性化推薦一般會有兩種通用的方法,包括

基於內容的個性化推薦,和基於用戶行為的個性化推薦

基於用戶行為的推薦,會有基於物品的協同過濾(Item-CF)與基於用戶的協同過濾(User-CF)兩種。

而協同過濾往往都是要建立在大量的用戶行為數據的基礎上,在產品發佈之初,沒有那麼大量的數據。所以這個時候就要依靠基於內容的推薦或者熱度算法

基於內容的推薦

一般來說,基於內容的推薦的意思是,會在產品初期打造階段引入專家的知識來建立起商品的信息知識庫,建立商品之間的相關度。

比如,汽車之家的所有的車型,包括了汽車的各種性能參數;電商網站中的女裝也包括了各種規格。

在內容的推薦過程中,只需要利用用戶當時的上下文情況:例如用戶正在看一個20萬左右的大眾轎車,系統就會根據這輛車的性能參數,來找到另外幾輛與這輛車相似的車來推薦給用戶。

一般來說,建立這樣的數據庫需要專業人士、編輯等通過手動完成,有一定的工作量,但對於冷啟動階段的產品來說,是一個相對有效的方法。

認識個性化推薦系統-從推薦算法到產品冷啟動

汽車之家網站在用戶查看一輛車的同時推薦與其相似的車

另外一種情況是純文本的內容沒有明確的參數特徵,在這種情況下,需要通過文本分析技術來自動提取文本的關鍵詞(通過自然語言技術的進行分詞),通過數據挖掘來找到文本與文本之間的聯繫和相似性。

熱度算法

認識個性化推薦系統-從推薦算法到產品冷啟動

左:微博 右:今日頭條

另外,由於各種社會熱點話題普遍是人們關注較高的,以及由於在產品發展初期,沒有收集到大量用戶數據的情況下,“熱度算法”也是一種慣常使用的方式。

“熱度算法“即將熱點的內容優先推薦給用戶。

這裡值得注意的是,熱點不會永遠是熱點,而是具有時效性的。

所以發佈初期用熱度算法實現冷啟動,積累了一定量級以後,才能逐漸開展個性化推薦算法。

而熱度算法在使用時也需要考慮到如何避免馬太效應:毋庸置疑的是,在滾雪球的效應之下,互聯網民的消費&觀點&行為會趨同,就像前一陣《戰狼2》的熱映一樣,史無前例的票房成績完全取決於鋪天蓋地式的宣傳,而群體將會成為烏合之眾。

推薦產品的冷啟動


每個有推薦功能的產品都會遇到冷啟動(coldstart)的問題,也是很多創業公司遇到的較為棘手的問題。

在早期團隊資金有限的情況下,如何更好地提升用戶體驗?

如果給用戶的推薦千篇一律、沒有亮點,會使得用戶在一開始就對產品失去了興趣,放棄使用。所以冷啟動的問題需要上線新產品認真地對待和研究。

在產品剛剛上線,新用戶到來的時候,如果沒有他在應用上的行為數據,也無法預測其興趣。另外,當新商品上架也會遇到冷啟動的問題,沒有收集到任何一個用戶對其瀏覽,點擊或者購買的行為,也無從判斷將商品如何進行推薦。

所以在冷啟動的時候要同時考慮用戶的冷啟動和物品的冷啟動

我總結了並延伸了項亮在《推薦系統實踐》中的一些方法,可以參考:

a.提供熱門內容,類似剛才所介紹的熱度算法,將熱門的內容優先推給用戶。

b.利用用戶註冊信息,可以利用人口統計學的一些特徵,如性別、國籍、學歷、居住地來預測用戶的偏好,當然在極度強調用戶體驗的今天,註冊過程的過於繁瑣也會影響到用戶的轉化率,所以另外一種方式更加簡單且有效,即利用用戶社交網絡賬號授權登陸,導入社交網站上的好友信息或者一些行為數據。

c.在用戶登錄時收集對物品的反饋,瞭解用戶興趣,推送相似的物品。

d.在一開始引入專家知識,建立知識庫、物品相關度表;或者通過自然語言處理來進行文本的數據挖掘。

e.通過用戶在時間和地點的上下文來進行實時的預測。




"


分享到:


相關文章: