關鍵詞推薦系統架構

在百度做關鍵詞推薦系統3年多, 以前更多是從工程, 以及解決用戶需求的角度去考慮系統的實現。 大概一年前開始系統地學習業界推薦系統相關的內容並對照自己手頭的工作。 當時就畫了以下系統結構圖, 算是對百度關鍵詞系統(KR: Keyword Recommendation)中主動推薦(主動push結果給客戶)的一個總結。

系統邏輯圖如下:

主動推薦系統架構圖qiang

當中包含以下幾個重要步驟:

  1. 離線的數據挖掘: 根據廣告庫,客戶landingpage內容, 網名檢索query等數據,建立關鍵詞之間的關係。 這塊能做的工作非常多,包括建立關鍵詞之間的商業價值關係,等同相關性等。很多任務都是offline的, 在hadoop上進行挖掘。
  2. 關鍵詞候選集索引建立:當這些關係建立後,就將這些關係數據建立索引加入線上系統,而且經常會提前做結構化的預處理以提升線上處理效率。
  3. user profile建立:根據用戶提詞反饋, 包括顯式的反饋,包括對關鍵詞的正/負向評估以及隱式反饋(通過KR,或者通過其他途徑提交了關鍵詞),以及用戶的註冊信息,Landingpage等構建用戶user profile
  4. 結果觸發:當用戶訪問KR時,首先根據離線挖掘的各種關係數據進行觸發, 得到關係數據的大量候選。之後結合user profile進行過濾
  5. ranking: 該處的ranking較爲負責, 可以分別對採用率, <userid, keyword>的pair的效用,使用模型進行預估, 之後綜合加權。 此處的效用, 可以根據具體場景的不同而做定製。
  6. 業務邏輯的ranking(Marketing Rule):相較於上邊提到的純算法策略的ranking,有時也需要根據具體產品的出口, 場景等因素, 使用規則對結果進行reranking, 以滿足業務需求(此處未在上圖中體現)

當然真實系統並不是上述內容就能說清的, 例如線下數據挖掘,就會用到二步圖, 全關係PageRank, 關聯規則等多種方式進行挖掘。 觸發時也需要考慮各種同意,核心等的變換, ranking時使用機器學習方法結合業務規則綜合排序。 更多細節可以參考後續推薦系統相關文章。

更多內容可關注微博:weibo.com

或是直接訪問: http://semocean.com

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章