個性化推薦系列之推薦系統的演化及常見推薦演算法
05-05
過去一年,想必大家都能感受到,幾乎每個網站都有了一個新的功能叫個性化推薦或者猜你喜歡,恨不得每個網站都是今日頭條,讓用戶在裡面消費的根本停不下來;那麼到底是什麼促使這麼多的互聯網產品開始使用個性化推薦、個性化推薦是什麼樣實現的、有哪些常用的個性化推薦演算法/系統;本文將圍繞這幾個點來展開;-----------------------------------------------------------------------------------------------------------------------------------------------
推薦閱讀:
1、個性化推薦出現的願意或者說背景是什麼;
我們前面有一篇文章講到過,當下移動互聯網時代,隨著互聯網的深入發展,越來越多的信息在互聯網上傳播,產生了嚴重的信息過載;如果不採用一定的手段,用戶很難從如此多的信息流中找到對自己有價值的信息;解決信息過載有兩種手段:1)、一種是搜索,當用戶有了明確的需求目標或者意圖後,將需求轉換為幾個簡短的詞或者短語的組合,然後將這些詞或短語組合提交到相應的搜索引擎,例如百度、天貓等搜索,再由搜索引擎在海量的信息庫中檢索出與搜索詞相關的信息返回給用戶;2)、一種是推薦,很多時候用戶的意圖並不是很明確,或者很難用清晰的語義表達,有時甚至連用戶自己都不清楚自己的需求,這種情況下搜索就解決不了用戶的問題;
這部分目前總結起來有兩種場景:a)、大多數是隨著電子商務的興起,用戶並非一定是帶著明確的購買意圖去瀏覽,很多時候是去逛的;b)、隨著內容市場的興起與泛濫,充斥著太多的資訊,用戶不知道自己該看哪種資訊或者說不知道喜歡哪種類型資訊,抱著看一看的心態去瀏覽,碰到喜歡的就看下去;這兩種情景下解決信息過載,理解用戶意圖,為用戶推送個性化的結果,個性化推薦便是一種比較好的選擇;總的說來,個性化推薦存在的背景或者原因是,當下互聯網時代,信息嚴重過載,用來解決信息過載問題;推薦系統是通過挖掘用戶與信息之間的關聯關係,幫助用戶從大量數據中發現其可能感興趣的信息,並生成個性化推薦以滿足個性化需求;-----------------------------------------------------------------------------------------------------------------------------------------------2、個性化推薦到底是怎麼實現個性推薦的;
我們前面說過,推薦解決的是信息過載的問題,即解決的是用戶獲取信息這個流程的問題;也就是說推薦是一種能力,介於用戶與信息之間,將不同的用戶與不同的信息做精準化匹配,模型就是(用戶--推薦演算法--信息);通俗點說就是推薦通過一種演算法能力,讓用戶找到自己喜歡的或者符合用戶的信息;那麼到底是怎麼匹配的呢;通過前面的(用戶--推薦演算法--信息)模型,我們可以對個性化推薦總結出這麼一套實現規律;1)、通過用戶信息(歷史記錄、個人屬性)總結描述用戶屬性;2)、通過所有信息的消費情況總結描述信息屬性;
3)、通過演算法總結出什麼類型(用戶屬性)的用戶適合/喜歡什麼類型(信息屬性)的信息;4)、將合適類型(信息屬性)的信息展示給喜歡/適合類型(用戶屬性)的用戶;-----------------------------------------------------------------------------------------------------------------------------------------------3、有哪些我們熟知的推常見的薦演算法推薦規則;
推薦演算法是非常古老的,在機器學習還沒有興起的時候就有需求和應用了,主要是電商網站、資訊網站等;目前比較熟知的推薦演算法有三種:基於內容的推薦演算法、協同過濾推薦演算法和基於規則的推薦演算法;1)、基於內容的推薦演算法;原理是基於內容的關聯性最推薦,推薦用戶喜歡和自己關注過的信息在內容上類似的信息;比如你看了《三體1》,基於內容的推薦演算法會給你推薦《三體2》、《三體3》,演算法認為這兩者與你之前觀看的內容上有非常打的關聯性;該推薦演算法的優點是:a)、推薦結果非常直觀,內容之間有著非常高的關聯繫,不需要解釋;b)、可以極大地避免推薦的冷啟動問題;如果某個新的信息內容上線,在沒有被其他用戶消費的情況下,其他幾種推薦演算法是不會推薦的,但是基於內容的推薦演算法可以分析信息之間的關聯關係,實現推薦;該推薦演算法的缺點是:a)、由於推薦時僅根據內容的關聯性做推薦,所以可能會對實時性/時間維度有缺陷;某段時間你看過MH370的新聞內容,後續再推薦時,很可能推薦的新聞和你瀏覽過的內容一致;b)、新時期的多媒體內容,例如單純音樂、電影、圖片之間很難描述關聯性,很難做推薦;2)、協同過濾推薦演算法;原理是基於用戶歷史行為作為分析對象, 用戶喜歡消費那些具有相似行為的用戶消費/喜歡過的信息, 基於其它和當前用戶相似的用戶的行為,推薦信息給當前用戶;該推薦演算法的優點是:a)、基於其他用戶行為集的推薦,都是相似行為的用戶,可以保證個性化程度高;b)、基於相同行為集的用戶,容易讓用戶發現新的興趣點;c)、模型通用性強,不需要太多對應數據領域的專業知識;該推薦演算法的缺點是:a)、由於該推薦演算法必須要基於用戶的歷史行為,所以對於新用戶(沒有歷史行為的用戶)推薦效果就非常差;b)、相同行為集的用戶,用戶喜好興趣可擴展性很低;c)、推薦質量完全基於歷史行為,可能某個時間消費過某類型的信息,後面又不喜歡了,後續系統還是會繼續做推薦;d)、無法基於場景進行推薦,難以根據用戶所在的場景和用戶當前的情緒進行推薦行為;3)、基於規則的推薦演算法;原理是建立一套行為規則進行推薦,這類演算法常見的比如基於用戶點擊、最多用戶瀏覽等;常見的有建立規則(A推薦B),凡是看過A信息的用戶給他推薦B信息;該推薦演算法的優點是:a)、可以通過規則,讓用戶發現新的興趣點;b)、對於推薦演算法,不需要了解太多的信息之間的關聯知識,只需要根據規則進行推薦;該推薦演算法的缺點是:a)、推薦規則難以創建,難以創建一套完善的推薦規則;b)、該推薦完全是基於規則的,所以導致個性化程度非常低,難以做到真正的個性化推薦;-----------------------------------------------------------------------------------------------------------------------------------------------4、那麼問題來了,某個業務場景到底該使用哪個推薦演算法比較合適;以上三種推薦演算法,各自有著各自的優缺點,但這也只是該演算法的優缺點,也就是說演算法的優勢缺點是理論上存在的;當我們要應用於某個實際應用場景時,一定要結合產品自身情況與使用場景考量,需要考慮到例如產品冷啟動期間數據量、長期樣本數據量的多少、演算法使用的平台的成熟度等等;不同數據量級的情況下不同方法配合不同演算法產生的性能壓力也是不同的,需要結合產品自身情況進行選擇;大多數時候,某個業務場景不一定只是用一個演算法來解決問題,有可能會同時使用多個演算法來解決某個問題;所以目前主流推薦方法也幾乎均採用混合推薦的方法,利用兩種或多種方法之間的優勢,規避劣勢從而達成盡量完美的方法,這其中也一定是基於不同的使用場景和產品具體情況具體分析;推薦閱讀:
※ctr(廣告點擊率)預估關於特徵的思考
※《推薦系統 - 技術、評估及高效演算法》 - 第4章 基於近鄰推薦方法綜述
※FM演算法
※VII.應用-推薦系統-基於RBM的推薦演算法
※AI——「猜你喜歡」是怎麼產生的?