本文是《深度學(xué)習(xí)推薦系統(tǒng)》一書的閱讀筆記和思維導(dǎo)圖颤难,建議大家入手一本王喆老師的新書寻馏,看完絕對(duì)會(huì)收獲頗豐幻梯!
京東鏈接:https://item.jd.com/12630209.html
一趟径、互聯(lián)網(wǎng)的增長引擎--推薦系統(tǒng)
1、推薦系統(tǒng)的作用
解決在信息過載的情況下喷兼,用戶高效獲得感興趣信息的問題
提高產(chǎn)品的用戶轉(zhuǎn)化率坛善,得到公司商業(yè)目標(biāo)連續(xù)增長的目的
2、推薦系統(tǒng)的架構(gòu)
邏輯框架
- 對(duì)于用戶U琅绅,在特定場景C下,針對(duì)海量的物品信息鹅巍,構(gòu)建一個(gè)函數(shù)f(U,I,C)千扶,預(yù)測用戶對(duì)特定候選物品I的喜好程度
技術(shù)架構(gòu)
-
數(shù)據(jù)部分
-
數(shù)據(jù)收集
- 客戶端及服務(wù)器端實(shí)時(shí)數(shù)據(jù)處理
- 流處理平臺(tái)準(zhǔn)實(shí)時(shí)數(shù)據(jù)處理
- 大數(shù)據(jù)平臺(tái)離線數(shù)據(jù)處理
-
數(shù)據(jù)加工
- 推薦模型所需的樣本數(shù)據(jù)
- 推薦模型所需特征
- 系統(tǒng)監(jiān)控、商業(yè)智能所需的統(tǒng)計(jì)數(shù)據(jù)
-
-
模型部分
- 召回層
- 排序?qū)?/li>
- 補(bǔ)充策略與算法層
- 評(píng)估模塊:離線評(píng)估和線上A/B測試
二骆捧、前深度學(xué)習(xí)時(shí)代-推薦系統(tǒng)的進(jìn)化之路
1澎羞、協(xié)同過濾--經(jīng)典的推薦算法
協(xié)同過濾是協(xié)同大家的反饋、評(píng)價(jià)和意見一起對(duì)海量的信息進(jìn)行過濾敛苇,從中篩選出目標(biāo)用戶可能感興趣的信息的推薦過程
-
基于用戶的協(xié)同過濾UserCF
- 更強(qiáng)的社交性
- 適用于發(fā)現(xiàn)熱點(diǎn)
-
基于物品的協(xié)同過濾ItemCF
- 適用于興趣變化較為穩(wěn)定的應(yīng)用
推薦結(jié)果的頭部效應(yīng)明顯妆绞,處理稀疏向量能力弱
2顺呕、矩陣分解算法-協(xié)同過濾的進(jìn)化
主要方法
特征值分解:只適用于方陣
奇異值分解:計(jì)算復(fù)雜度高
-
梯度下降:主流方法
- 目的是原始評(píng)分與用戶向量和物品向量的內(nèi)積的差盡量小
- 加入正則化避免過擬合
- 加入用戶和物品的偏差向量消除偏差
-
優(yōu)缺點(diǎn)
- 優(yōu)點(diǎn):泛化能力強(qiáng)、空間復(fù)雜度低括饶、更好的擴(kuò)展性和靈活性
- 缺點(diǎn):不方便加入用戶株茶、物品和上下文特征
3、邏輯回歸-融合多種特征的推薦模型
綜合利用用戶图焰、物品启盛、上下文多種不同特征,生成較為全面的推薦模型
訓(xùn)練方法:梯度下降法技羔、牛頓法僵闯、擬牛頓法
-
優(yōu)勢
- 數(shù)字含義上的支撐:廣義線性模型的一種,假設(shè)y服從伯努利分布
- 可解釋性強(qiáng)
- 工程化的需要:并行化藤滥、模型簡單鳖粟、訓(xùn)練開銷小
-
局限性
- 表達(dá)能力不強(qiáng)、無法進(jìn)行特征交叉拙绊、特征篩選等
4牺弹、從FM到FFM--自動(dòng)特征交叉的解決方案
多維度特征交叉的重要性:“辛普森悖論”
-
POLY2模型--特征交叉的開始
- 暴力進(jìn)行特征組合
- 訓(xùn)練復(fù)雜度高、稀疏數(shù)據(jù)下大部分權(quán)重得不到有效訓(xùn)練
-
FM模型-隱向量特征交叉
- 為每一個(gè)特征賦予一個(gè)對(duì)應(yīng)的隱向量
- 更好地解決數(shù)據(jù)稀疏性問題
- 線上推斷過程簡單时呀,更容易進(jìn)行線上部署
- 不易擴(kuò)展到三階特征交叉
-
FFM模型-引入特征域的概念
- 域可以簡單理解為采用one-hot編碼形成的一段one-hot特征向量
- 每個(gè)特征對(duì)應(yīng)每一個(gè)域张漂,都有一個(gè)隱向量
- 缺點(diǎn):訓(xùn)練開銷大
5、GBDT+LR--特征工程化的開端
利用GBDT構(gòu)建特征工程谨娜、利用LR預(yù)估CTR
大大推進(jìn)了特征工程模型化這一趨勢
6航攒、LS-PLM-阿里巴巴曾經(jīng)的主流推薦模型
對(duì)樣本先進(jìn)行分片,再在樣本分片中應(yīng)用LR
-
優(yōu)勢
- 端到端的非線性學(xué)習(xí)能力
- 稀疏性強(qiáng)趴梢、部署更加輕量級(jí)
可以看作一個(gè)加入了注意力機(jī)制的三層NN
三漠畜、浪潮之巔-深度學(xué)習(xí)在推薦系統(tǒng)中的應(yīng)用
1、深度學(xué)習(xí)時(shí)代的模型
表達(dá)能力更強(qiáng)坞靶,能夠挖掘更多數(shù)據(jù)中潛藏的模式
結(jié)構(gòu)靈活憔狞,能夠結(jié)合業(yè)務(wù)靈活選擇模型結(jié)構(gòu)
-
兩類思路
- 特征工程自動(dòng)化的思路:PNN、Wide&Deep彰阴、Deep & Cross瘾敢、FNN、DeepFM尿这、NFM等
- 模型結(jié)構(gòu)的嘗試:注意力機(jī)制(AFM簇抵、DIN)、序列模型(DIEN)射众、強(qiáng)化學(xué)習(xí)(DRN)
2碟摆、AutoRec-單隱層神經(jīng)網(wǎng)絡(luò)推薦模型
自編碼器思想和協(xié)同過濾結(jié)合
模型較為簡單,存在一定表達(dá)能力不足問題
3叨橱、Deep Crossing模型-經(jīng)典的深度學(xué)習(xí)架構(gòu)
分Embedding層典蜕、Stacking層(concatenate層)断盛、Multiple Residual Units層和Scoring層
全部特征交叉的任務(wù)交給模型,是對(duì)特征交叉方法的革命
4愉舔、NeuralCF模型-CF與深度學(xué)習(xí)的結(jié)合
利用互操作層代替簡單的用戶和物品向量求內(nèi)積的方式钢猛,廣義矩陣分解模型
互操作:用戶向量和物品向量拼接后輸入多層神經(jīng)網(wǎng)絡(luò)/元素乘連接(GMF層)
沒有引入更多其他類型的特征
5、PNN模型--加強(qiáng)特征交叉的能力
用Product layer代替了Deep Crossing中的Stack層屑宠,使用Product操作對(duì)特征進(jìn)行兩兩交互
分為IPNN和OPNN
Product操作更強(qiáng)調(diào)不同特征之間的交互厢洞,模型更容易捕獲特征的交叉信息
對(duì)所有特征進(jìn)行無差別的交叉,一定程度忽略了原始特征中包含的有價(jià)值信息
6典奉、Wide&Deep模型--記憶能力和泛化能力的綜合
wide部分讓模型具有較強(qiáng)的記憶能力躺翻,記憶能力可以被理解為模型直接學(xué)習(xí)并利用歷史數(shù)據(jù)中物品或者特征共現(xiàn)頻率的能力
Deep部分讓模型具有泛化能力,泛化能力可以被理解為模型傳遞特征的相關(guān)性卫玖,以及發(fā)掘稀疏甚至從未出現(xiàn)過的稀有特征與最終標(biāo)簽相關(guān)性的能力
7公你、Wide&Deep模型進(jìn)化-Deep & Cross模型
- 利用Cross Net代替Wide部分,增加特征交叉力度
8假瞬、FM與深度學(xué)習(xí)模型的結(jié)合
結(jié)合FM思路的深度學(xué)習(xí)模型陕靠,基本特點(diǎn)是在經(jīng)典多層神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上加入針對(duì)性的特征交叉操作,讓模型具有更強(qiáng)的非線性能力
FNN:用FM訓(xùn)練好的隱向量來初始化Embedding層脱茉,為Embedding預(yù)訓(xùn)練提供了借鑒思路
DeepFM:用FM代替了Wide&Deep的Wide部分剪芥,加強(qiáng)了淺層網(wǎng)絡(luò)部分特征組合的能力
NFM:用一個(gè)表達(dá)能力更強(qiáng)的函數(shù)代替FM中二階隱向量內(nèi)積的部分
9、注意力機(jī)制在推薦模型中的應(yīng)用
-
AFM:引入注意力機(jī)制的FM
- 在特征交叉層和最終輸出層之間加入attention琴许,為每一組交叉特征提供權(quán)重
-
DIN:引入注意力機(jī)制的深度學(xué)習(xí)網(wǎng)絡(luò)
- 候選商品和歷史行為商品之間計(jì)算權(quán)重
10税肪、DIEN-序列模型與推薦系統(tǒng)的結(jié)合
用序列模型模擬了用戶興趣的進(jìn)化過程
-
序列信息的重要性
- 加強(qiáng)了最近行為對(duì)下次行為預(yù)測的影響
- 能夠?qū)W習(xí)到購買趨勢的信息
-
模型主要結(jié)構(gòu)
- 行為序列層
- 興趣抽取層:模擬用戶興趣遷移過程,抽取用戶興趣
- 興趣進(jìn)化層:針對(duì)性地模擬與目標(biāo)廣告相關(guān)的興趣進(jìn)化路徑
序列模型非常適合預(yù)估用戶經(jīng)過一系列行為后的下一次動(dòng)作榜田,但由于是串行推斷益兄,需要在工程上著重優(yōu)化
11、DRN:強(qiáng)化學(xué)習(xí)與推薦系統(tǒng)的結(jié)合
Dueling-DQN結(jié)構(gòu)
在線學(xué)習(xí)方法:競爭梯度下降算法
與其他深度學(xué)習(xí)模型的不同之處在于變靜態(tài)為動(dòng)態(tài)箭券,把模型學(xué)習(xí)的實(shí)時(shí)性提到了一個(gè)空前重要的位置
四净捅、Embedding技術(shù)在推薦系統(tǒng)中的應(yīng)用
1、什么是Embedding
用一個(gè)低維稠密向量“表示”一個(gè)對(duì)象辩块』琢“表示”意味著Embedding向量能夠表達(dá)相應(yīng)對(duì)象的某些特征,同時(shí)向量之間的距離反映了對(duì)象之間的相似性庆捺。
-
Embedding在推薦場景的重要性
- Embdding層將高維稀疏特征向量轉(zhuǎn)換成稠密低維特征向量
- Embedding本身就是極其重要的特征向量
- Embedding對(duì)物品古今、用戶相似度的計(jì)算是常用的推薦系統(tǒng)召回層技術(shù)
2、Word2Vec:經(jīng)典的Embedding方法
-
模型結(jié)構(gòu)
- CBOW模型:輸入周邊詞滔以,預(yù)測中間詞
- Skip-Gram模型:輸入中間詞,預(yù)測周邊詞氓拼,經(jīng)驗(yàn)上講Skip-Gram模型效果更好
-
訓(xùn)練方法
- 負(fù)采樣
- 層級(jí)softmax
3你画、Item2Vec:Word2Vec在推薦系統(tǒng)領(lǐng)域的推廣
利用用戶歷史行為記錄抵碟,摒棄時(shí)間窗口概念,認(rèn)為兩兩物品都相關(guān)
廣義的Item2Vec:任何能夠生成物品向量的方法坏匪,如雙塔模型
4拟逮、Graph Embedding:引入更多結(jié)構(gòu)信息的圖嵌入技術(shù)
互聯(lián)網(wǎng)場景下,數(shù)據(jù)更多呈現(xiàn)圖結(jié)構(gòu)
DeepWalk:在圖上隨機(jī)游走适滓,產(chǎn)生物品序列敦迄,然后使用word2vec進(jìn)行訓(xùn)練,游走的概率取決于邊的權(quán)重
Node2Vec:通過調(diào)整隨機(jī)游走權(quán)重的方法使Graph Embedding的結(jié)果更傾向于體現(xiàn)網(wǎng)絡(luò)的同質(zhì)性和結(jié)構(gòu)性
EGES:在DeepWalk的基礎(chǔ)上補(bǔ)充Side Information
5凭迹、Embedding與深度學(xué)習(xí)推薦系統(tǒng)的結(jié)合
深度學(xué)習(xí)中的Embedding層
作為預(yù)訓(xùn)練的Embedding特征向量
-
計(jì)算物品和用戶的相似度罚屋,作為召回層的策略
- youtube推薦系統(tǒng)召回層
6、局部敏感Hash
快速Embedding向量最近鄰搜索方法
基本思想是讓相鄰的點(diǎn)落入同一個(gè)桶
五嗅绸、多角度審視推薦系統(tǒng)
1脾猛、推薦系統(tǒng)的特征工程
原則:盡可能地讓特征工程抽取出的一組特征能夠保留推薦環(huán)境及用戶行為過程的所有有用信息,盡量摒棄冗余信息
特征工程需要深入了解業(yè)務(wù)的運(yùn)行模式鱼鸠,了解用戶在業(yè)務(wù)場景下的思考方式和行為動(dòng)機(jī)
-
常用特征
-
用戶行為數(shù)據(jù)
- 顯性反饋行為
- 隱性反饋行為
用戶關(guān)系數(shù)據(jù)
屬性、標(biāo)簽類數(shù)據(jù)
內(nèi)容類數(shù)據(jù):描述型文字愉昆、圖片麻蹋、視頻
上下文信息:推薦行為產(chǎn)生的場景的信息
統(tǒng)計(jì)類特征:歷史CTR跛溉、CVR等
組合類特征
-
-
常用的特征處理方法
- 連續(xù)型:歸一化、離散化倒谷、加非線性函數(shù)
- 類別型:one/multi-hot + embedding
2糙箍、推薦系統(tǒng)召回層主要策略
召回層的特點(diǎn):候選集合大渤愁、速度快、模型簡單深夯、特征較少
-
多路召回策略(主流方法)
- 如信息流應(yīng)用中:熱門新聞、興趣標(biāo)簽咕晋、協(xié)同過濾掌呜、最近流行、朋友喜歡
-
基于Embedding的方法
- 如youtube召回策略
3势篡、推薦系統(tǒng)的實(shí)時(shí)性
-
特征的實(shí)時(shí)性
- 客戶端實(shí)時(shí)特征
- 流計(jì)算平臺(tái)的準(zhǔn)實(shí)時(shí)特征處理
- 分布式批處理平臺(tái)的全量特征處理
-
模型的實(shí)時(shí)性
- 全量更新
- 增量更新
- 在線學(xué)習(xí):獲得一個(gè)新樣本就更新模型,一個(gè)附帶問題是稀疏性不強(qiáng)念祭,相關(guān)研究包括FOBOS碍侦、FTRL
- 局部更新:降低訓(xùn)練效率低部分的更新頻率,提高訓(xùn)練效率高的部分的更新頻率站玄,如果GBDT+LR拦英、Embedding層 + 神經(jīng)網(wǎng)絡(luò)
- 客戶端模型實(shí)時(shí)更新:探索階段
4疤估、如何合理設(shè)定推薦系統(tǒng)中的優(yōu)化目標(biāo)
推薦系統(tǒng)的目標(biāo)是完成公司的某個(gè)商業(yè)目的:如Youtube以觀看時(shí)長為優(yōu)化目標(biāo)
優(yōu)化場景和應(yīng)用場景的統(tǒng)一性:阿里ESMM
構(gòu)建成功的推薦系統(tǒng)需要和其他團(tuán)隊(duì)協(xié)調(diào)一致
5、推薦系統(tǒng)中比模型結(jié)構(gòu)更重要的是什么
- 在構(gòu)建推薦模型的過程中钞瀑,從應(yīng)用場景出發(fā)慷荔,基于用戶行為和數(shù)據(jù)的特點(diǎn),提出合理的改進(jìn)模型的動(dòng)機(jī)才是最重要的
6贷岸、冷啟動(dòng)的解決方法
分類:用戶冷啟動(dòng)磷雇、物品冷啟動(dòng)、系統(tǒng)冷啟動(dòng)
-
冷啟動(dòng)策略
-
基于規(guī)則
- 用戶冷啟動(dòng):熱門排行榜唯笙、最近流行趨勢等
- 物品冷啟動(dòng):利用相似物品的推薦邏輯
-
豐富冷啟動(dòng)過程中可獲得的用戶和物品特征
- 用戶的注冊信息
- 第三方數(shù)據(jù)管理平臺(tái)提供的數(shù)據(jù)
- 物品的內(nèi)容特征
- 引導(dǎo)用戶輸入的冷啟動(dòng)特征
利用主動(dòng)學(xué)習(xí)崩掘、遷移學(xué)習(xí)和“探索與利用”機(jī)制
-
7、探索與利用
-
傳統(tǒng)方法
- 簡化為多臂老虎機(jī)問題诵原,方法有e-Greedy,Thompson Sampling 和 UCB
- 無法引入用戶的上下文和個(gè)性化信息
-
個(gè)性化方法
- 在傳統(tǒng)方法的基礎(chǔ)上鞋拟,引入個(gè)性化信息惹资,如LinUCB方法
- 無法與深度學(xué)習(xí)模型有效的整合
-
基于模型方法
- 如DRN中的探索網(wǎng)絡(luò)
-
作用
- 物品冷啟動(dòng)
- 發(fā)掘用戶新興趣
- 增加結(jié)果多樣性
六褪测、深度學(xué)習(xí)推薦系統(tǒng)的工程實(shí)現(xiàn)
1潦刃、推薦系統(tǒng)的數(shù)據(jù)流
-
批處理大數(shù)據(jù)架構(gòu)
- 分布式文件系統(tǒng)如HDFS和Map Reduce
- 數(shù)據(jù)處理延遲較大乖杠,影響相關(guān)應(yīng)用的實(shí)時(shí)性
-
流計(jì)算大數(shù)據(jù)架構(gòu)
- Storm、Spark Streaming畏吓、Flink等
- 數(shù)據(jù)處理的延遲小卫漫,數(shù)據(jù)流的靈活性非常強(qiáng)
-
Lambda架構(gòu)
- 數(shù)據(jù)通道分實(shí)時(shí)流和離線處理
- 實(shí)時(shí)流保持了流計(jì)算架構(gòu)列赎、離線處理以批處理為主
- 實(shí)時(shí)流和離線處理部分存在大量邏輯冗余,需要重復(fù)地進(jìn)行編碼工作饼煞,浪費(fèi)了大量計(jì)算資源
-
Kappa架構(gòu)
- 一切皆是流
- 批處理部分看作時(shí)間窗口較大的流處理過程
-
大數(shù)據(jù)平臺(tái)與推薦系統(tǒng)的融合
- 訓(xùn)練數(shù)據(jù)的處理
- 特征的預(yù)計(jì)算
2诗越、深度學(xué)習(xí)推薦模型的分布式離線訓(xùn)練
-
Spark MLlib
- 全局廣播:全量參數(shù)廣播到所有partition
- 阻斷式梯度下降方式:所有節(jié)點(diǎn)計(jì)算完成后再匯總掺喻,效率低
-
Parameter Server
- 異步非阻斷式梯度下降
- 要在一致性和并行效率之間取舍
- 應(yīng)用一致性Hash管理每個(gè)節(jié)點(diǎn)負(fù)責(zé)的參數(shù)
-
Tensorflow
- 基于Parameter Server架構(gòu)的數(shù)據(jù)并行訓(xùn)練過程
- 每個(gè)worker節(jié)點(diǎn)內(nèi)部,CPU+GPU任務(wù)級(jí)別的并行計(jì)算工程褂乍,CPU主要負(fù)責(zé)數(shù)據(jù)和任務(wù)的調(diào)度即硼,GPU負(fù)責(zé)計(jì)算密集度高的張量運(yùn)算
3、深度學(xué)習(xí)推薦模型的線上部署
預(yù)訓(xùn)練Embedding + 輕量級(jí)線上模型
利用PMML轉(zhuǎn)換并部署模型
Tensorflow Serving
4褥实、工程與理論之間的權(quán)衡
在現(xiàn)有實(shí)際條件的制約下损离,以工程完成和技術(shù)落地為目的,尋找并實(shí)現(xiàn)最優(yōu)的解決方案
關(guān)注模型的稀疏性貌踏,關(guān)注主要特征窟勃,舍棄次要特征
技術(shù)升級(jí)兼顧日常開發(fā)進(jìn)度
在有限的硬件資源下優(yōu)化模型相關(guān)的一切工程實(shí)現(xiàn)
七秉氧、推薦系統(tǒng)的評(píng)估
1、離線評(píng)估方法和指標(biāo)
-
主要方法
- Holdout檢驗(yàn)
- 交叉驗(yàn)證
- 自助法Bootstrap
- Replay:逐一樣本回放的精確線上仿真過程
-
評(píng)估指標(biāo)
- 準(zhǔn)確率
- 精確率和召回率
- 均方誤差RMSE
- 對(duì)數(shù)損失函數(shù)
- P-R曲線
- ROC曲線與AUC
- 平均精度均值MAP
- 歸一化折扣累計(jì)收益NDCG
2亚斋、A/B測試與線上評(píng)估指標(biāo)
又稱為分桶測試梆暖,在利用控制變量法保持單一變量的前提下轰驳,將A、B兩組數(shù)據(jù)進(jìn)行對(duì)比
需要注意樣本的獨(dú)立性和采樣方式的無偏性
層與層之間流量正交冒黑、同層流量互斥
A/B測試通常是模型上線前的最后一道測試 勤哗,A/B測試的指標(biāo)應(yīng)與線上業(yè)務(wù)的核心指標(biāo)保持一致
3芒划、快速線上評(píng)估方法 Interleaving
不區(qū)分A/B組,同時(shí)把A和B模型的推薦結(jié)果推薦給同一批用戶泵殴,通過指標(biāo)衡量兩個(gè)模型的效果
需要注意位置偏差拼苍,不同模型的推薦結(jié)果 等概率交替領(lǐng)先
所需樣本少、測試速度快吆你、與A/B測試結(jié)果無明顯差異
工程框架復(fù)雜妇多、只是對(duì)“用戶對(duì)算法推薦結(jié)果偏好程度”的相對(duì)測量,不能得出一個(gè)算法真實(shí)的表現(xiàn)