認識推薦系統的關鍵技術

在正式介紹推薦系統之前,我想和大家分享一個經典購物場景:要買一包薯片?

認識推薦系統的關鍵技術

薯片

  • 若你在一家24小時便利店裡,你完全可以依靠自己,瀏覽所有貨架上的商品,找到自己想要的薯片。
  • 若你在一家規模較大的超市裡,你就需要藉助商品的分類信息了,才能避免在眾多的貨架間找來找去。
  • 若你是在使用電商類應用,你不僅需要分類信息,還需要搜索功能,才能快速地找到,自己想要的那個品牌的薯片。

通過上面的描述,我們不難發現,人們在面對不同體量的信息時,需要配套的信息服務,才能有效地滿足需求。

除此之外,上面的購物場景裡有一個隱藏的限定條件,就是有一個明確的購物需求,即買一包薯片。然而,很多時候我們並沒有這麼明確的需求,只是隨便逛逛而已。

這便是推薦系統能夠大展拳腳的土壤:

  • 存在內容、商品等信息過載的情況
  • 用戶大部分時間沒有明確的需求

推薦系統的價值則體現在兩個維度上:

  • 幫助用戶發現之前沒有接觸過,但會喜歡的內容或物品
  • 讓長尾的內容或物品,得到更多的曝光機會,提升點擊活躍度

要想實現推薦系統的價值,究其本質是做好排序,而排序的前提是,能夠對用戶的喜好進行預測,而預測的依據則來自於用戶的歷史行為。

認識推薦系統的關鍵技術

雖然推薦系統無法知曉用戶腦中的所思所想,但用戶的行為卻可以被客觀、準確地記錄下來,而行為的背後所折射出的,恰恰就是用戶的真實想法。

到此,推薦系統的任務就已經很明確了,就是如何利用用戶的歷史行為數據,去為用戶提供個性化的內容或物品,預測潛在的點擊。

用戶的歷史行為數據就像一堆食材,如何烹飪才能做出一桌好菜,是需要符合菜譜的客觀要求的,即前提假設。

而推薦的前提假設是“物以類聚,人以群分”。我們利用數據對內容或物品進行分類,對用戶進行分組,以此為推薦的候選集合,再使用相似度作為推薦的權重值,這就是推薦系統的大體思想框架,當然會很多細節不同的實現方案。

基於協同的推薦

所謂的協同,就是關聯單一用戶與全平臺用戶的行為,為其找到““臭味相投”的人、內容或物品。

熱門排行榜,就是一個典型的協同過濾的應用場景,只是候選集合的粒度很大,且沒有去重而已。

協同又分為用戶協同物品協同

用戶協同

認識推薦系統的關鍵技術

用戶協同

用戶協同的前提假設是,如果兩個用戶的歷史行為很相似,那麼可以說明他們是興趣相似的人,自然彼此間存在大概率可推薦的內容或物品,體現出了更社會化的推薦。

社會化推薦,即讓好友給自己推薦內容或物品,更容易發現一些新鮮感強的東西。

物品協同

認識推薦系統的關鍵技術

物品協同

物品協同的前提假設是,每個用戶的興趣都侷限在某幾個領域,如果兩個物品屬於一個用戶的興趣列表,那麼這兩個物品也就限制在某幾個領域內。

而如果兩個物品屬於很多用戶的興趣列表,那麼它們大概率屬於同一個領域,因此相似度極大,可以用作推薦理由,則體現出了更個性化的推薦。

物品協同相比用戶協同,其擴展性更強,因為平臺的物品數要遠少於平臺的用戶數,物品增長率要遠低於用戶增長率,物品相似度計算要遠易於用戶相似度計算,所以優先選擇物品協同推薦。

同時,還需要注意,熱門的內容或物品,對協同的干擾,因為熱門的東西會出現在大多數用戶的興趣列表裡,所以它們會關聯到任何內容或物品。我們需要適當地對熱門東西進行人工干預,消弱其影響力。

協同推薦,存在一個致命的缺陷,就是無法應對冷啟動,新加入的用戶或物品沒有足夠的歷史行為數據,所以無法計算相似度。

為了解決冷啟動問題,我們就需要一套新的方案 —— 基於內容的推薦。

基於內容的推薦

內容或物品本身就會攜帶信息,我們只要能夠充分利用這些信息,完成相似度計算,就可以延續之前的推薦策略。

分類、標籤的粒度,直接影響著基於內容的推薦效果,原因也很簡單,粒度越細,區分度也就越高,也就越個性化。

標籤是一種無層次化結構的,用來描述信息的關鍵詞,它可以用來描述物品的語義。

通常的做法,是可以通過對物品的內容進行挖掘,提取關鍵詞,用關鍵詞向量代表物品,進而利用餘弦定理計算相似度。

認識推薦系統的關鍵技術

詞雲

我們還可以利用之前協同過濾的思想,對物品上的關鍵詞或標籤進行優化,當兩個關鍵詞或標籤同時出現在很多物品集合中時,我們就可以認為它們具有較大的相似度,可以統一化。

值得注意的是,協同過濾體現出了凝固度的思想,如果兩個物品在一起的概率遠大於隨機的概率,那麼它們之間必然存在相關性。這個思想可以幫助我們解決很多問題。

後記

除了上面的兩種推薦方案外,如果我們還想進一步提高效果,就不得不考慮到上下文信息了,同時使用上預測模型(DeepFM、XGB等)

還有受到Word2Vec的啟發,我們可以利用用戶的歷史行為數據,通過隨機遊走,形成用戶或物品的序列數據,完成embedding,這樣就可以更容易、更有效的計算相似度了,即 Graph Embedding 。

上下文信息,包含用戶訪問時間、地點等額外的影響用戶決策的因素,作為重要的特徵,加入到模型之中。比如:季節效應,在夏天,羽絨服就很難銷售。

推薦系統容易造成

信息繭房,因此需要適時地進行人工干預,而作為用戶也最好時不時瀏覽一下多元的信息。

最後,安利大家一本掘金小冊《深入理解NLP的中文分詞:從原理到實踐》(點擊瞭解更多,訪問詳情),讓你從零掌握中文分詞技術,踏入NLP的大門。

如果因為以上內容對你有所幫助,希望你幫忙點個贊、轉個發、評個論。


分享到:


相關文章: