基於Elastic Search的推薦系統「召回」策略
- 2019 年 10 月 31 日
- 筆記
當我們打開一個資訊APP刷新聞時,有沒有想過,系統是如何迅速推送給我們想看的內容?資訊APP背後有一個巨大的內容池,系統是如何判斷要不要將某條資訊推送給我們的呢?這就是今天想跟大家探討的問題——推薦系統中的「召回」策略。

推薦系統中的召回
召回策略主要滿足的是能夠從海量的數據中召回一部分相關的候選集,在實現方法上也有很多種,主要可以分為離線召回和在線召回。離線召回的方法主要有協同過濾、聚類演算法。協同過濾可以分為基於用戶的協同過濾和基於物品的協同過濾。在線召回主要是基於搜索的方式,從該用戶的歷史記錄中利用不同的演算法抽取相關資訊,這裡的相關資訊可以是物品的基本資訊,也可以是離線標註的標籤,然後將這些抽取到的關鍵資訊從索引中快速的查詢出相關的結果集。
Elastic Search與TF-IDF
Elastic Search是基於Apache Lucene(TM)的一個開源搜索引擎,是一個分散式且具有高擴展性的全文檢索的搜索引擎,而且還提供了近乎實時的索引、分析、搜索功能。 Lucene是現今搜索領域被認為速度最快、性能最穩定、功能最全的搜索引擎庫,而Elastic Search是以Lucene為核心進行二次開發的搜索引擎,主要完成索引和搜索的功能,它可以通過簡單的介面隱藏Lucene的複雜性,從而讓整個搜索引擎變得更方便。
在基於內容推薦的演算法中,關鍵詞的提取是至關重要的一環,關鍵詞提取直接影響了物品相似度計算的效果。假如沒有關鍵詞提取的話,物品全部資訊作為特徵維度會造成維度災難,使得維度巨大,且構造的矩陣會相當稀疏,不利於計算。在關鍵詞提取的過程中,TF-IDF演算法是很有效率的一種演算法。關於TF-IDF演算法我們不再這裡展開詳述。
Elastic Search與推薦系統的結合
Elastic Search的搭建過程可以參考官網。安裝配置完成Elastic Search之後,當數據進入Elastic Search並完成分詞和索引以後,現在只能夠根據指定輸入的詞語進行搜索,與推薦系統並沒有任何聯繫。因此,我們可以根據用戶的歷史記錄進行TF-IDF構造關鍵詞並且輸入Elastic Search,採用倒排索引的方式進行存儲,以便全文搜索。
簡單來說,用戶的瀏覽、收藏等行為會被記錄在資料庫中,推薦系統會收集用戶的各種行為記錄,利用TF-IDF關鍵詞提取演算法,實現一個概率模型,這個概率模型可以計算出近期用戶記錄中用戶偏好的關鍵詞,由於這些關鍵詞由用戶的記錄產生,因此就具有了個性化的特性,再將關鍵詞輸入到Elastic Search,就可以召回與用戶強相關的內容集合。
利用這種方法搭建的推薦系統,其優勢也很明顯:一是能夠對內容池中的所有物料做可計算的精細整合,實現對所有物料的召回,特別是對長尾物料的召回,從而極大地提高物料利用率;二是自帶物品冷啟動,在沒有大量用戶數據的情況下也能實現個性化推薦,並且讓用戶對推薦結果滿意。
獲取更多詳細資料,或申請產品試用,歡迎訪問第四範式智慧推薦產品先薦官網!本帳號為第四範式智慧推薦產品先薦的官方帳號。本帳號立足於電腦領域,特別是人工智慧相關的前沿研究,旨在把更多與人工智慧相關的知識分享給公眾,從專業的角度促進公眾對人工智慧的理解;同時也希望為人工智慧相關人員提供一個討論、交流、學習的開放平台,從而早日讓每個人都享受到人工智慧創造的價值。