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

廣告和推薦系統(tǒng)部署機(jī)器學(xué)習(xí)模型的兩種架構(gòu)

開發(fā) 開發(fā)工具 機(jī)器學(xué)習(xí)
廣告和推薦系統(tǒng)是機(jī)器學(xué)習(xí)是最成熟的應(yīng)用領(lǐng)域。那么廣告和推薦系統(tǒng)是怎么在線上部署機(jī)器學(xué)習(xí)模型的呢?

廣告和推薦系統(tǒng)是機(jī)器學(xué)習(xí)是最成熟的應(yīng)用領(lǐng)域。那么廣告和推薦系統(tǒng)是怎么在線上部署機(jī)器學(xué)習(xí)模型的呢?

[[188821]]

1. 預(yù)測函數(shù)上線

剛剛學(xué)習(xí)機(jī)器學(xué)習(xí)時(shí)候,我認(rèn)為廣告和推薦系統(tǒng)過程如下圖所示:1)線下部分,從用戶和廣告(物品)屬性抽取用戶和物品特征,將抽取的特征合并進(jìn)日志生成訓(xùn)練數(shù)據(jù),訓(xùn)練機(jī)器學(xué)習(xí)模型;2)線上部分,來了一個(gè)請求,從用戶和廣告(物品)屬性抽取請求中的用戶和物品的特征,將這些特征合并請求生成預(yù)測實(shí)例,用線上模型得到預(yù)測結(jié)果。

廣告和推薦系統(tǒng)過程

但是這個(gè)架構(gòu)有兩個(gè)問題:1)從用戶和廣告(物品)屬性抽取特征的程序有線上線下兩套,這兩套程序必須保持完全一致。但由于調(diào)參的原因,特征抽取是機(jī)器學(xué)習(xí)系統(tǒng)中最經(jīng)常發(fā)生變化的模塊。經(jīng)常變化的模塊需要保持一致,這很困難。那么我們能不能強(qiáng)行地用一套程序呢?比如,我們把特征抽取和特征處理模塊寫成 .so 文件。這樣也有問題:線下要求快速變化以方便工程師調(diào)特征,可能會使用一些訓(xùn)練框架(比如 Spark);線上要求程序快速實(shí)時(shí),要求工程師編碼嚴(yán)謹(jǐn)。寫成嚴(yán)謹(jǐn)?shù)? .so 文件,能夠保證線上的需求,但無法快速變化,也不能在 Spark 上使用。2)線上特征抽取要求非常快速,特別在線上吞吐量很大的情況。但有些重度特征不可能在短時(shí)間內(nèi)抽取出來,比如廣告的歷史點(diǎn)擊率(生成這個(gè)特征需要遍歷一段時(shí)間的點(diǎn)擊日志)。

在讀書期間,這兩個(gè)問題困擾了我很久, 直到 2014 年我知道了神器 Redis。Redis 是一個(gè)開源內(nèi)存數(shù)據(jù)庫,支持集群模式、持久化和 Key-Value 數(shù)據(jù)結(jié)構(gòu)。在使用時(shí),我們可以將 Redis 看成一個(gè)巨大的哈希表。Redis 在后臺開發(fā)中經(jīng)常用作 cache 服務(wù)器, 后來被工程師們用于廣告和推薦系統(tǒng)中的特征服務(wù)器。工程師將用戶和廣告(物品)的 ID 作為 Key,將用戶和廣告(物品)的特征作為 Value 存入 Redis,這樣線上程序只需要用戶和廣告(物品)的 ID 就能知道特征。引入 Redis 之后,廣告和推薦系統(tǒng)過程如下所示:1)線下部分,從用戶和廣告(物品)屬性抽取用戶和廣告(物品)特征,把抽取的特征合并進(jìn)日志生成訓(xùn)練數(shù)據(jù)用于訓(xùn)練機(jī),并把抽取的特征上載到線上 Redis 服務(wù)器;2)線上部分,來了一個(gè)請求,從 Redis 服務(wù)器取出用戶和廣告(物品)特征,將特征合并進(jìn)請求生成預(yù)測實(shí)例,用線上模型得到預(yù)測結(jié)果。

Redis

這種架構(gòu)還有一個(gè)變種:在線下抽取特征之后不生成訓(xùn)練數(shù)據(jù)而是直接送到 Redis,在線上用 Storm 實(shí)時(shí)拼接訓(xùn)練數(shù)據(jù)。但我對這個(gè)變種的前因后果不太了解,就不展開討論了。這種架構(gòu)將預(yù)測函數(shù)(也就是訓(xùn)練出來的模型)部署在線上。為了和下面的架構(gòu)區(qū)分開來,我們將這種架構(gòu)稱為預(yù)測函數(shù)上線架構(gòu)。

2. 預(yù)測結(jié)果上線

了解預(yù)測函數(shù)上線架構(gòu)之后,我將之作為廣告和推薦系統(tǒng)線上部署模型的 “正統(tǒng)”。 因此當(dāng) 2014 年我接觸到另一種架構(gòu)時(shí),我內(nèi)心是拒絕的。這種架構(gòu)的要點(diǎn)在于把預(yù)測結(jié)果上線,具體過程如下所示:1)在線上,從用戶和廣告(物品)屬性抽取用戶和物品特征,將抽取的特征合并進(jìn)日志生成訓(xùn)練數(shù)據(jù),訓(xùn)練機(jī)器學(xué)習(xí)模型;將幾乎所有可能的請求合并特征,進(jìn)而生成預(yù)測實(shí)例,用模型得到預(yù)測結(jié)果;2)線上就很簡單了,接入線下傳過來的預(yù)測結(jié)果。這里稍微難理解的是 “窮盡幾乎所有可能的請求”,疑惑那么多可能的請求怎么可能窮盡呢?微博廣告系統(tǒng)(虛構(gòu)的)所有可能的請求貌似很多,但每個(gè)用戶只需要匹配若干個(gè)廣告就行了。因此微博廣告系統(tǒng)的預(yù)測結(jié)果 “userid,adid1,adid2...,adidn” 上載到線上,一旦線上傳一個(gè) userid 請求展示廣告,線上模塊就按照一定的邏輯返回預(yù)測結(jié)果中這個(gè)用戶對應(yīng)的廣告。這種架構(gòu)是將預(yù)測結(jié)果部署到線上,我們將之稱為預(yù)測結(jié)果上線架構(gòu)。

廣告和推薦系統(tǒng)線上部署模型的 “正統(tǒng)”

慢慢地我也開始明白預(yù)測結(jié)果上線的好處了。預(yù)測結(jié)果上線架構(gòu)將機(jī)器學(xué)習(xí)全過程和絕大部分控制邏輯都搬到線下,規(guī)避了線上的各種隱患。這樣不那么厲害的工程師用不那么厲害的機(jī)器也能搞定線上模塊了,畢竟線上模塊只需要實(shí)現(xiàn)少量的控制邏輯和展示。這大大降低了建立一個(gè)廣告系統(tǒng)或者推薦系統(tǒng)的難度。

我正式工作之后,組里支持運(yùn)營活動的推薦系統(tǒng)采用了預(yù)測結(jié)果上線的架構(gòu)。我發(fā)現(xiàn)有不少時(shí)間浪費(fèi)在重跑數(shù)據(jù)上,原因在于有時(shí)需要臨時(shí)增加或者刪除物品。一旦增加或者刪除物品,預(yù)測結(jié)果上線的推薦系統(tǒng)就需要重新生成預(yù)測數(shù)據(jù)(因此之前跑的數(shù)據(jù)要么沒有要加的物品,要么有要刪的數(shù)據(jù))。另外一個(gè)問題就是預(yù)測結(jié)果上線架構(gòu)有延時(shí)性:今天線上展示的是昨天準(zhǔn)備的預(yù)測結(jié)果,今天準(zhǔn)備的預(yù)測結(jié)果要等明天才能展示,這會導(dǎo)致節(jié)奏慢一些。***還有一個(gè)問題,預(yù)測結(jié)果上線架構(gòu)只適用于幾乎所有可能的請求能夠窮盡的場景。比如,預(yù)測結(jié)果上線架構(gòu)不適用于搜索廣告系統(tǒng),因?yàn)樗阉鲝V告系統(tǒng)不能窮盡所有可能的請求。

3. 總結(jié)

預(yù)測函數(shù)上線架構(gòu)能夠覆蓋預(yù)測結(jié)果上線架構(gòu)的適用場景,但是預(yù)測結(jié)果上線架構(gòu)不能夠覆蓋預(yù)測函數(shù)上線架構(gòu)的適用場景。同時(shí)預(yù)測函數(shù)上線架構(gòu)更具靈活性。預(yù)測函數(shù)上線架構(gòu)不愧為部署機(jī)器學(xué)習(xí)模型的 “堂堂正正” 之法。

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

【本文為51CTO專欄作者“李立”的原創(chuàng)稿件,轉(zhuǎn)載請通過51CTO獲取聯(lián)系和授權(quán)】

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

責(zé)任編輯:趙寧寧 來源: 51CTO專欄
相關(guān)推薦

2011-06-15 13:07:10

JSP和JavaBea

2024-06-06 08:32:52

.NET框架代碼

2018-01-02 09:17:24

機(jī)器學(xué)習(xí)廣告推薦系統(tǒng)

2009-07-03 13:24:33

調(diào)試嵌入式操作系統(tǒng)

2022-09-07 08:00:00

機(jī)器學(xué)習(xí)MLFlow工具

2014-05-21 11:00:55

Windows Azu分布式部署

2019-11-14 08:42:57

Redis數(shù)據(jù)庫Linux

2018-11-07 09:00:00

機(jī)器學(xué)習(xí)模型Amazon Sage

2018-12-03 09:03:18

SANNAS存儲系統(tǒng)

2021-02-24 13:51:45

BIMAI建筑技術(shù)

2024-09-09 11:45:15

ONNX部署模型

2013-04-18 09:33:52

2010-07-19 14:07:09

Perl ->符號

2022-03-10 07:39:33

.NET部署模式

2024-02-20 15:17:35

機(jī)器學(xué)習(xí)模型部署

2021-01-25 09:00:00

機(jī)器學(xué)習(xí)人工智能算法

2020-02-21 17:33:17

SparkKafka數(shù)據(jù)

2023-12-01 10:21:00

機(jī)器學(xué)習(xí)算法

2010-06-01 18:35:54

刪除SVN版本信息

2010-10-11 10:31:51

MySQL分區(qū)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 成人在线小视频 | 一区二区三区精品在线 | 国产一区 | 伊人久久综合 | 999精品网| 夜夜骑首页 | 高清国产一区二区 | 国产精品亚洲视频 | 一区二区三区在线播放 | 国产精品久久久久久久久久久久久 | 4h影视| 日本精品在线观看 | 国产精品激情 | 99在线播放| 成人午夜视频在线观看 | 亚洲综合久久精品 | 久久久久国产一区二区三区四区 | 成人av一区| 懂色av蜜桃av | 免费一区 | 999久久久 | 欧美日韩综合一区 | 国产精品一区二区av | 国产又色又爽又黄又免费 | www.久久精品视频 | 国产欧美在线 | 欧美成年人网站 | 亚洲一区视频在线 | 成人国产精品久久久 | 亚洲精品电影在线观看 | 91在线视频免费观看 | 久久综合九色综合欧美狠狠 | 国产成人精品一区二区三区在线 | 日本精品免费在线观看 | 久久高清 | 北条麻妃视频在线观看 | 久久久久国产一区二区三区四区 | 一级毛片免费看 | 亚洲一区二区三区在线免费 | 精品久久精品 | 日一区二区 |