成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

圖解廣告及推薦系統架構流程

開發 開發工具
廣告和推薦系統是機器學習是最成熟的應用領域。那么廣告和推薦系統是怎么在線上部署機器學習模型的呢?

廣告和推薦系統是機器學習是最成熟的應用領域。那么廣告和推薦系統是怎么在線上部署機器學習模型的呢?

[[215577]]

1. 預測函數上線

剛剛學習機器學習時候,我認為廣告和推薦系統過程如下圖所示:

  • 線下部分,從用戶和廣告(物品)屬性抽取用戶和物品特征,將抽取的特征合并進日志生成訓練數據,訓練機器學習模型;
  • 線上部分,來了一個請求,從用戶和廣告(物品)屬性抽取請求中的用戶和物品的特征,將這些特征合并請求生成預測實例,用線上模型得到預測結果。

但是這個架構有兩個問題:

(1) 從用戶和廣告(物品)屬性抽取特征的程序有線上線下兩套,這兩套程序必須保持完全一致。但由于調參的原因,特征抽取是機器學習系統中最經常發生變化的模塊。經常變化的模塊需要保持一致,這很困難。

那么我們能不能強行地用一套程序呢?比如,我們把特征抽取和特征處理模塊寫成 .so 文件。這樣也有問題:線下要求快速變化以方便工程師調特征,可能會使用一些訓練框架(比如 Spark);

線上要求程序快速實時,要求工程師編碼嚴謹。寫成嚴謹的 .so 文件,能夠保證線上的需求,但無法快速變化,也不能在 Spark 上使用。

(2) 線上特征抽取要求非常快速,特別在線上吞吐量很大的情況。但有些重度特征不可能在短時間內抽取出來,比如廣告的歷史點擊率(生成這個特征需要遍歷一段時間的點擊日志)。

在讀書期間,這兩個問題困擾了我很久, 直到我知道了神器 Redis。Redis 是一個開源內存數據庫,支持集群模式、持久化和 Key-Value 數據結構。

在使用時,我們可以將 Redis 看成一個巨大的哈希表。Redis 在后臺開發中經常用作 cache 服務器, 后來被工程師們用于廣告和推薦系統中的特征服務器。

工程師將用戶和廣告(物品)的 ID 作為 Key,將用戶和廣告(物品)的特征作為 Value 存入 Redis,這樣線上程序只需要用戶和廣告(物品)的 ID 就能知道特征。

引入 Redis 之后,廣告和推薦系統過程如下所示:

  • 線下部分,從用戶和廣告(物品)屬性抽取用戶和廣告(物品)特征,把抽取的特征合并進日志生成訓練數據用于訓練機,并把抽取的特征上載到線上 Redis 服務器;
  • 線上部分,來了一個請求,從 Redis 服務器取出用戶和廣告(物品)特征,將特征合并進請求生成預測實例,用線上模型得到預測結果。

這種架構還有一個變種:在線下抽取特征之后不生成訓練數據而是直接送到 Redis,在線上用 Storm 實時拼接訓練數據。但我對這個變種的前因后果不太了解,就不展開討論了。

這種架構將預測函數(也就是訓練出來的模型)部署在線上。為了和下面的架構區分開來,我們將這種架構稱為預測函數上線架構。

2. 預測結果上線

了解預測函數上線架構之后,我將之作為廣告和推薦系統線上部署模型的 “正統”。 因此當我接觸到另一種架構時,我內心是拒絕的。

這種架構的要點在于把預測結果上線,具體過程如下所示:

  • 在線上,從用戶和廣告(物品)屬性抽取用戶和物品特征,將抽取的特征合并進日志生成訓練數據,訓練機器學習模型;將幾乎所有可能的請求合并特征,進而生成預測實例,用模型得到預測結果;
  • 線上就很簡單了,接入線下傳過來的預測結果。這里稍微難理解的是 “窮盡幾乎所有可能的請求”,疑惑那么多可能的請求怎么可能窮盡呢?微博廣告系統(虛構的)所有可能的請求貌似很多,但每個用戶只需要匹配若干個廣告就行了。因此微博廣告系統的預測結果 “userid,adid1,adid2…,adidn” 上載到線上,一旦線上傳一個 userid 請求展示廣告,線上模塊就按照一定的邏輯返回預測結果中這個用戶對應的廣告。

這種架構是將預測結果部署到線上,我們將之稱為預測結果上線架構。

慢慢地我也開始明白預測結果上線的好處了。預測結果上線架構將機器學習全過程和絕大部分控制邏輯都搬到線下,規避了線上的各種隱患。這樣不那么厲害的工程師用不那么厲害的機器也能搞定線上模塊了,畢竟線上模塊只需要實現少量的控制邏輯和展示。這大大降低了建立一個廣告系統或者推薦系統的難度。

我正式工作之后,組里支持運營活動的推薦系統采用了預測結果上線的架構。我發現有不少時間浪費在重跑數據上,原因在于有時需要臨時增加或者刪除物品。一旦增加或者刪除物品,預測結果上線的推薦系統就需要重新生成預測數據(因此之前跑的數據要么沒有要加的物品,要么有要刪的數據)。

另外一個問題就是預測結果上線架構有延時性:今天線上展示的是昨天準備的預測結果,今天準備的預測結果要等明天才能展示,這會導致節奏慢一些。***還有一個問題,預測結果上線架構只適用于幾乎所有可能的請求能夠窮盡的場景。比如,預測結果上線架構不適用于搜索廣告系統,因為搜索廣告系統不能窮盡所有可能的請求。

3. 總結

預測函數上線架構能夠覆蓋預測結果上線架構的適用場景,但是預測結果上線架構不能夠覆蓋預測函數上線架構的適用場景。同時預測函數上線架構更具靈活性。預測函數上線架構不愧為部署機器學習模型的 “堂堂正正” 之法。

預測結果上線架構的好處就是難度比較低。預測結果上線架構將機器學習全過程和絕大部分控制邏輯,規避了線上的各種隱患。在機器、時間和人力等各種條件不充足的情況,預測結果上線架構不失為一個好的選擇。預測結果上線架構是 “劍走偏鋒” 的機器學習模型部署之法。兵法有云:以正合以奇勝,選擇哪一種架構還是需要仔細的分析和權衡。

【本文為51CTO專欄作者“王森豐”的原創稿件,轉載請注明出處】

戳這里,看該作者更多好文

責任編輯:趙寧寧 來源: 51CTO專欄
相關推薦

2020-08-24 07:55:48

解密系統架構

2017-05-29 08:30:42

互聯網智能廣告架構

2017-03-03 09:10:41

2022-08-30 09:01:11

瀏覽器渲染前端

2015-09-07 09:23:07

推薦廣告系統

2017-04-18 14:31:39

機器學習模型架構

2018-11-01 09:46:02

推薦系統架構

2023-10-07 07:24:58

2024-05-17 08:07:46

Spring廣告推薦系統

2022-02-23 15:08:18

開發分布式Java

2016-12-07 14:31:19

廣告系統架構機器學習

2009-03-03 20:44:06

桌面虛擬化Xendesktop虛擬化

2022-08-08 07:03:08

推薦系統架構

2009-06-04 15:51:46

Struts流程圖

2015-07-07 08:58:19

WOT2015新浪微博王傳鵬

2017-07-11 09:46:29

2016-01-06 10:10:25

2015-07-10 16:20:26

集群

2024-09-05 08:28:25

2012-03-07 14:55:45

AndroidiOS移動廣告
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产在线精品区 | 久久草在线视频 | 国产在线高清 | 国产高清视频一区 | 国产日韩av一区二区 | 国产一级网站 | 日韩中文字幕一区 | 我爱操| 久久久精品 | 97人人超碰 | 国产综合久久 | 欧美激情在线播放 | 丁香五月缴情综合网 | 成人精品视频99在线观看免费 | 欧美精品三区 | 韩国电影久久 | 亚洲欧美精品国产一级在线 | 视频1区 | 免费在线h视频 | 福利国产| 91久久久久久久 | 久久精品国产一区二区电影 | 国产在线拍偷自揄拍视频 | 久久精彩视频 | 欧美精品在线免费 | 久久宗合色 | 在线中文字幕视频 | 精品网| 美女黄色在线观看 | 手机av在线| 成人亚洲在线 | 欧美日韩精品中文字幕 | 国产区精品 | 亚洲精品乱码久久久久久按摩观 | 久久综合欧美 | 精品成人佐山爱一区二区 | 成人av鲁丝片一区二区小说 | 亚洲精品成人网 | 久草青青草 | 欧美一级免费 | 亚洲综合大片69999 |