有了前文的介紹,我們來瞭解一下召回的做法,其本質就是如何通過演算法來計算「兩兩相似性」(用戶與用戶的相似性,商品與商品的相似性等等)。召回目前在推薦系統中是一個重要的模塊,在「整個流程的一環」,數據流「漏斗的頂部」。召回做的好,後面精排的效果也不會太差,反之召回很差排序再好也無法達到不錯的效果。並且相比優化精排演算法、建立新的數據模型、或者開發實驗新的特徵,優化召回操作簡單、方便實驗,有四兩撥千斤的效果。

其實在推薦系統的早期個性化推薦就直接基於召回來做的,根據召回商品相似度高低推薦;包括現在也是有很多非個性化的場景也是直接使用召回推薦,比如電商的商品詳情頁的相似推薦。

非個性化召回:最常見是熱度召回,也就是把熱門的內容召回,例如前面京東「熱銷召回」就屬於熱度召回。也可以做一些運營召回

個性化召回:上下文、興趣、行為等

1.1召回來源

1.1.1上下文相關

「時間、空間、狀態、推薦場景」等,不同的「上下文」會影響推薦的結果。如新聞推薦中的時事熱點,o2o推薦中的附近餐館,電商產品詳情頁的相似推薦、不同季節不同品類商品的推薦等,此類來源主要與用戶所處環境有關。

1.1.2興趣相關

興趣維度主要圍繞用戶展開,主要是基於用戶的「關係、消費行為、長期/短期興趣、人羣興趣」來推薦。如在社交產品中根據用戶的好友來推薦好友的一度人脈,在電商產品中根據用戶的品類偏好推薦相關品類商品,根據「長期偏好和短期偏好」來推薦相關條目。還有就是基於「人羣」,比如性別、地域等,有區分的進行推薦。興趣主要以用戶畫像

為代表的信息抽取,包括了關係,消費行為,長期/短期興趣,人羣興趣;屬於某類指標的聚合,一般具有準確的度量。並且興趣相關召回在長短週期下的特例就是「上下文相關與行為相關」召回。

1.1.3行為相關

「行為與興趣」具有一定的重合度,這裡主要指的是基於協同過濾、矩陣分解等來推薦條目給用戶,並且推薦結果與用戶之前的行為強相關,比如用戶看了某個或者買了某個商品,然後推薦商品相關的一些商品。行為相關其實是上下文相關的長週期下的聚合與篩選,主要藉助「協同過濾/模型/專家系統」等手段進行商品召回,一般依賴「數據」「模型」「離線或近線處理」

1.1.4熱門/補足

由於可能基於若干推薦來源無法做到一定數量的條目,最後各個推薦產品均會考慮在召回層加入一個「補足條目數據」,這個補足大部分情況下「以熱門為主」。根據某個或某幾個指標來對條目進行「排序選出的條目列表」。熱門和補足則會為了避免商品覆蓋率及推薦零結果率所做的一些工作,因為目前更多考慮上面3種召回策略,熱門召回還無法較好地融入上面3中演算法中。

1.2召回四象限

通過前面介紹也看到了,後續流程對召回層的依賴特彆強,最終用戶看到的商品必然是召回層條目的子集,所以在召回層我們就需要考慮若干評價指標。如「流行、多樣、新鮮、相關」。目前「相關與多樣」在各大公司的推薦系統中會更多地被考慮,「流行與新鮮」還沒有非常好的演算法和解決方案handle,不過也有很多paper進行一些描述和嘗試。

1.3總結

目前業界比較主流的方式是「多路召回」(業界完善的推薦系統可能有上百路召回,少的也有5-6路召回),每路召回都盡量去滿足召回四象限中的「若干維度」,最終對路融合就可以在召回階段「兼顧四個象限」,當然現在也有一些研究人員在嘗試用一個模型來「融合多路召回」,比如通過「增加特徵」的方式。其實召回模塊也可以稱之為一個「粗排」模塊,在很多公司的初期沒有引入精排前,其實也是一個簡單的推薦系統「內核」;後期發展過程中,可能會再加一層CTR(CVR、時長等)預估複雜模型,相當於「精排序」。其實對於整個系統而言,由於流程屬於「鏈式串列」結構,所以這個模塊也非常重要,下一節我們將逐個介紹若干常用召回「模型和策略」的細節。

推薦閱讀:

相關文章