推薦系統(tǒng)陳開江 - C11 關(guān)鍵模塊

1 日志收集

  • 需要的元素
    必要:用戶ID,物品ID,事件名稱和時間
    其他:從什么事件來,從什么頁面來,事件發(fā)生時用戶的相關(guān)屬性,事件發(fā)生時物品的相關(guān)屬性
  • 推薦系統(tǒng)需要的矩陣
    UserProfile,ItemProfile,Relation,Event

2 實時推薦

  • 三個層次
    給得及時,推薦100ms返回
    用得及時,用戶物品特征及時更新
    學(xué)得及時,推薦模型的及時更新
  • 要點
    實時數(shù)據(jù)kafka,流計算storm,在線學(xué)習(xí)梯度下降或者RDA和綜合FTRL,互動實時推薦通過Bandit算法

3 AB實驗

  • 實驗框架
    域,層,桶,發(fā)布層
  • 流量分配
    隨機(jī),cookie+層ID,用戶ID+層ID,cookie+時間
  • 數(shù)據(jù)分析
    • 基本
      假設(shè)檢驗,確定可信度,然后確定置信區(qū)間
    • 樣本量
      估算需要的樣本量
    • 顯著性
      構(gòu)建統(tǒng)計量,如果在置信區(qū)間以外可以否定原假設(shè)
  • 弊端
    會造成不好的體驗,需要較長時間測試,下線的實驗組不會再測試
    使用Bandit算法替代流量劃分的方式

4 推薦服務(wù)

  • 服務(wù) 數(shù)據(jù)庫和API
  • 存儲
    特征數(shù)據(jù):正排索引(以用戶ID或者物品ID為主鍵)(Cassandra(讀寫性能更高)或者h(yuǎn)base(強(qiáng)一致性)),倒排索引(以標(biāo)簽ID為主鍵)(Redis,Memecached)
    模型數(shù)據(jù):大型PS worker分布式參數(shù)服務(wù)器,小型直接模型文件
    召回數(shù)據(jù):全局召回,用戶召回,JSON序列化存入Redis
  • 數(shù)據(jù)錄入API
    用戶錄入,物品錄入,關(guān)系錄入,事件錄入
  • 推薦服務(wù)API
    猜你喜歡 /Recommend
    相關(guān)推薦 /Relative
    熱門排行榜 /Hot
    信息流(與前面的區(qū)別要加一個展現(xiàn)過濾,用緩存來實現(xiàn)冪等)
  • 注意
    要有唯一曝光ID
    商定合適的推薦數(shù)量,不可過?。ㄔ黾臃?wù)壓力)或者過大(物品浪費)

5 開源工具

  • 內(nèi)容分析:非結(jié)構(gòu)化文本轉(zhuǎn)換為結(jié)構(gòu)化文本
    主題模型LightLDA,PLDA;詞向量Word2vec,DMWE,F(xiàn)astText;文本分類FastText
  • 協(xié)同過濾和矩陣分解
    KNN:Faiss,KGraph
    SVD:LightFM
    SVD++:
    ALS:QMF
    BFR:
  • 模型融合
    LightGBM
    XGBoost
    Wide and deep
    libffm
  • Web服務(wù)框架
    Spring boot
    Tornado
    Flask/Django
    Proxygen
  • 完整系統(tǒng)
    PredictionIO
    recommendationRaccooon
    easyrec
    hapiger
    建議選擇細(xì)粒度工具,將他們集成為自己的推薦系統(tǒng)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容