天天看點

閑魚推薦,讓智能計算從雲走向端1. 背景2. 推薦系統的實時性3. 推薦系統的實時特征4. 實時聚類特征 & 實時意圖特征5. 總結6. 延展

閑魚推薦,讓智能計算從雲走向端1. 背景2. 推薦系統的實時性3. 推薦系統的實時特征4. 實時聚類特征 & 實時意圖特征5. 總結6. 延展

閑魚推薦,知道你的喜歡。

作者:

儲睿(劉思佳)、錦逸(陳祎平)、明棟(歐明棟)、資旭(楊子旭)。

關鍵詞:

智能推薦、特征工程、特征處理。

術語解釋:

  • 機器學習(Machine Learning):是關于在計算機上從資料中産生“模型”(model)的算法;
  • 資料集(Data Set):一組記錄的集合;
  • 模型(Model):泛指從資料中學得的結果;
  • 特征(Feature):是從原始資料中抽取出來的對結果預測有用的資訊,可以是文本或者資料;
  • 特征工程(Feature Engineering):是使用專業背景知識和技巧處理資料,使得特征能在機器學習算法上發揮更好的作用的過程。過程包含了特征提取、特征建構、特征選擇等子產品;
  • 端計算/邊緣計算:與傳統的中心化思維不同,它的計算節點更靠近終端,使服務響應高于傳統中心化的雲計算。

1. 背景

近些年,随着雲計算和大資料的快速發展,以機器學習為基礎的智能推薦也得到了迅猛發展。利用雲計算,不但可以每日更新模型,雙11更是小時級更新模型,以實作更準确的推薦。為了更好的優化推薦系統,豐富實時特征,通常會采集大量的行為資料上報到雲端。随着閑魚DAU(日活躍使用者數量)的不斷增長,這種雲端中心化計算模式的問題也暴露了出來。

中心化模式不但要消耗大量的伺服器資源,還要面對海量資料處理所帶來的延遲問題(分鐘級延遲,不可原諒)。

2. 推薦系統的實時性

為什麼說,延遲問題對推薦系統是緻命的,不可原諒的?

推薦系統的實時性越高,更新速度越快,推薦越準。現在的使用者越來越沒有耐心,如果不快速抓住使用者的心,使用者很容易流失。

推薦系統的實時性是指:

(1)“模型”的實時性;

(2)“特征”的實時性

2.1 “模型”的實時性

“模型”的實時性:不斷更新模型,可以讓模型找到最新的流行趨勢,以及最新的相關性資訊。

比如,大家都去關注某個明星,模型會通過大多數人的行為資料,發現該明星成為了流行趨勢,以及大家所關注的内容。

暫時不對模型的實時性進行詳細分析,現在的模型訓練還強依賴雲計算。

當然,很多人也在嘗試,端計算和雲計算的聯合訓練。相信不久的将來,應該會有成果落地。

2.2 “特征”的實時性

“特征”的實時性:以使用者最近的行為資料作為輸入特征,模型就會發現使用者最近的行為習慣,并進行相關的預測和推薦。

比如,你浏覽了一部手機,系統就會給你推送不同品牌、不同價位的手機;如果你連續浏覽華為手機,系統就會給你推送不同價位的華為手機。你連續行為資料越豐富,推薦越準确。

PS:我們說的,中心化計算模式資料處理所帶來的延遲問題,就是影響了特征的實時性。

3. 推薦系統的實時特征

為什麼,特征更新隻是存在分鐘級延遲就不可原諒了?而模型隻需要每日更新?

模型的實時性代表流行趨勢,通常情況流行趨勢不會實時變化,隻需要滿足活動的趨勢變化就可以了。

而特征的實時性代表個體使用者的實時行為,如果無法對使用者的實時行為做出響應,使用者就可能流失。

特征的實時性很重要,其實并不是所有特征都有實時性要求,比如:性别、年齡等。對實時性有要求的特征,我們稱之為實時特征。

閑魚推薦實時特征包括:

(1)浏覽行為特征,如曝光、曝光時長、滾動速度等;

(2)詳情頁行為特征,如進入詳情頁、詢單、收藏、評論、點贊、點選大圖等;

(3)購買行為特征,下單後不再進行相關推薦。

浏覽行為特征

在推薦場景,連使用者都不知道自己想要什麼的情況下。我們希望通過細化使用者浏覽行為特征,來判讀他所關注的商品。

閑魚推薦,讓智能計算從雲走向端1. 背景2. 推薦系統的實時性3. 推薦系統的實時特征4. 實時聚類特征 & 實時意圖特征5. 總結6. 延展

引入端計算後,我們可以采集更多元度的使用者行為資料,使使用者模型更準确。

PS:長時間以來,閑魚推薦的浏覽行為特征幾乎是缺失的。算法一直在用僞曝光(下發即曝光)資料做推薦,因為雲端根本沒有足夠多的伺服器對曝光資料進行特征處理。曝光資料量實在是太大了,每個使用者随意的一次滾動就會産生多條曝光資料。

4. 實時聚類特征 & 實時意圖特征

為了解決雲端處理延遲問題,我們對實時特征進行了抽象,沉澱了兩種端上的實時特征處理方案:

(1)實時聚類特征;

(2)實時意圖特征。

4.1 實時聚類特征

閑魚推薦,讓智能計算從雲走向端1. 背景2. 推薦系統的實時性3. 推薦系統的實時特征4. 實時聚類特征 & 實時意圖特征5. 總結6. 延展

我們利用端計算,對行為資料進行實時聚類統計。

我們現在是按60秒的時間插槽聚類統計(時間插槽太大效果不好,太小資料上報太頻繁,QPS太高);

我們統計60秒内,某個類目(手機、女裙、美妝等)的曝光次數、曝光時長、點選PV等資料;

如果是強特征事件(點選事件)會實時觸發特征上報,如果是弱特征事件(曝光事件)會累計到10個再上報。

全量釋出兩周後資料統計:

閑魚推薦,讓智能計算從雲走向端1. 背景2. 推薦系統的實時性3. 推薦系統的實時特征4. 實時聚類特征 & 實時意圖特征5. 總結6. 延展
閑魚推薦,讓智能計算從雲走向端1. 背景2. 推薦系統的實時性3. 推薦系統的實時特征4. 實時聚類特征 & 實時意圖特征5. 總結6. 延展

4.2 實時意圖特征

閑魚推薦,讓智能計算從雲走向端1. 背景2. 推薦系統的實時性3. 推薦系統的實時特征4. 實時聚類特征 & 實時意圖特征5. 總結6. 延展

該方案,是利用端智能模型,對行為資料進行實時意圖判讀,并上報到雲端。

PS:該方案,我們還沒有全量,還在嘗試。

5. 總結

本文,利用端計算(邊緣計算)将特征工程前置,實作了去中心化,解決了大量原始資料在雲端堆積無法實時處理的問題,提高了推薦系統的特征實時性。

端計算的引入,不但提高了推薦系統的實時性,同時完善了使用者行為資料,讓之前很多不可能的事情變成了可能,大大提升了推薦效率。

實踐證明,端雲協同将成為未來的趨勢。

6. 延展

現在,我們已經将特征資料實時上報到了雲端,但是需要到下一次接口請求才會出現相關商品的推薦。這裡存在響應的實時性問題。

最近,我們正在嘗試對未曝光商品進行資料重刷(還線上上AB測試,效果挺好的,應該馬上就會全量了)。

方案概述:由端模型判斷是否進行資料重刷,然後用戶端發起接口請求(請求新推薦的商品資料),再替換未曝光商品。

PS:本文暫不對重刷方案進行詳細介紹,後面會有專題文章。

繼續閱讀