日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費收錄網(wǎng)站服務,提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

推薦系統(tǒng)自誕生之日起就是為解決海量物料如何高效分發(fā)給海量用戶,一套高效的算法流程就是推薦系統(tǒng)的核心。如今火熱的各類機器學習、深度學習、強化學習等都可以在推薦系統(tǒng)中大顯身手,推薦也是AI在工業(yè)界最廣泛的落地場景之一。推薦算法在推薦系統(tǒng)中的位置如圖1所示,主要是通過離線或在線拿到特征及樣本數(shù)據(jù)訓練模型,將訓練好的模型同步給召回或排序的預測服務,推薦引擎實時調(diào)用預測結(jié)果供召回及排序使用。

從零搭建推薦系統(tǒng)—算法篇

 

推薦算法在推薦系統(tǒng)中地位

如果更寬泛意義上,推薦內(nèi)容的質(zhì)量、類別、理解等都可通過各自AI算法計算,節(jié)省大量人工成本,通過NLP、音頻、視頻、圖像理解等領(lǐng)域內(nèi)的先進算法,豐富物料的正排信息進入資源池,如物料質(zhì)量、物料類別、關(guān)鍵詞提取,圖像視頻理解、音頻轉(zhuǎn)文本、物料屬性的embedding向量等等。

從零搭建推薦系統(tǒng)—算法篇

 

各領(lǐng)域算法對用戶與物料信息的豐富

推薦效果主要以提升ctr為目標,但轉(zhuǎn)化率、完播率、停留時長等均可作為輔助指標,可以說只要能夠抽象出問題并描述出要最優(yōu)化的損失函數(shù),有較豐富的特征及樣本,那就一定能夠用算法來解決問題。這里我們先以精排階段的算法為例說明如何構(gòu)建起完整的排序算法通路。

特征庫/服務

算法需要數(shù)據(jù),數(shù)據(jù)需要特征,特征是模型訓練數(shù)據(jù)中最重要的部分,各類算法的本質(zhì)也是根據(jù)現(xiàn)有樣本分布擬合出一個最接近真實情況的概率分布函數(shù),需要擬合的參數(shù)就是各個特征,通過這個函數(shù)即可獲取特定用戶或物料的特征下用戶對物料的感興趣程度(點擊的概率),因此特征工程也是推薦算法工程師的必備技能,人工智能圈廣為人知的調(diào)侃“人工智能靠人工”,在推薦領(lǐng)域的重要體現(xiàn)就在于通過分析數(shù)據(jù)來獲取重要特征。

推薦系統(tǒng)連接的是人與物,特別是獨特業(yè)務場景下的人與物,那么一定也會有獨特的物料屬性特征與用戶行為特征,針對深入理解業(yè)務的基礎(chǔ)上構(gòu)造好的特征,那推薦算法出來的結(jié)果也就成功了一半以上。從人和物的角度,特征也分為物料特征、用戶特征及上下文特征,上下文也可算作用戶特征的一種。用戶特征一般通過明確記錄或統(tǒng)計挖掘得到,如用戶的地理位置、訪問時段、使用設備、性別年齡(可能通過填寫資料獲取)一般在訪問時即可拿到;挖掘特征通過歷史用戶的操作行為,統(tǒng)計用戶的畫像偏好。物料特征一般是物料自身屬性及其統(tǒng)計數(shù)據(jù),例如類別、關(guān)鍵詞、主題等固有屬性,以及歷史一段時間窗口內(nèi)的效果統(tǒng)計如曝光、點擊、點贊、轉(zhuǎn)發(fā)等。從直觀含義看可分為類別特征和數(shù)值型特征,對不同特征也要多種特征工程處理方式,這里推薦一份slide講解特征工程,很香!原始出處要翻墻,為方便大家直接搬運了。

特征工程是一項實踐性很強的工作,基本的技術(shù)方法就那么幾種,但真正用來調(diào)好模型的特征工程方法一般網(wǎng)上也很少,原因之一就在于是跟自己公司具體業(yè)務掛鉤的,不具有普遍性,即使放出來也只適用于自己公司業(yè)務,無法放之四海而皆準,可以看下各大廠主要產(chǎn)品線的推薦系統(tǒng)特征工程是如何做的。

這里用戶特征,包括上下文特征,可以根據(jù)用戶離線的行為日志統(tǒng)計,類似用戶畫像,假設此時用戶屬性類別、各維度偏好、對各行為的統(tǒng)計量等都已用特征工程處理完畢并結(jié)構(gòu)化存入hive表,同理對物料在資源池獲取屬性類別特征,通過客戶端日志獲取物料各維度統(tǒng)計類信息,保存至hive表,再通過一個定時任務將hive內(nèi)的特征數(shù)據(jù)整合,這樣將離線計算的用戶及物料維度特征保存至hive表,同時更新至redis供線上實時獲取。

從零搭建推薦系統(tǒng)—算法篇

 

特征構(gòu)建

有了特征就能方便地構(gòu)建出模型訓練樣本數(shù)據(jù),這時要針對推薦效果指標來構(gòu)建樣本,對于ctr指標來說一般是分類問題,使用用戶對物料是否點擊作為label,對于視頻類播放時長指標一般可作為回歸問題,用戶對物料的播放時長作為樣本y值,這里以ctr作為評價指標,正樣本為用戶點擊物料,負樣本為用戶曝光未點擊物料。

訓練數(shù)據(jù)

說到算法并無太多神秘之處,如果了解基礎(chǔ)的機器學習原理,各類算法只是針對大量樣本數(shù)據(jù)的一個擬合過程,擬合出一個接近真實數(shù)據(jù)分布的概率分布函數(shù),即所謂的“規(guī)律”,大量的樣本正是這條規(guī)律的基礎(chǔ),算法只是用數(shù)學的方式來求解。通過用戶行為日志可獲取全量用戶曝光點擊物料信息,通過用戶及物料特征庫抽取特征,從而構(gòu)建出樣本矩陣,通過離線計算保存到樣本文件。

接下來需要對整個樣本集做處理,否則會引入大量噪聲,不能讓模型很好的擬合出樣本分布。

非真實用戶訪問樣本

例如爬蟲、機器人等大量非真實用戶的頻繁訪問,帶來大量高曝光未點擊行為,會嚴重影響樣本數(shù)據(jù)分布,一段時間窗口有大量相同用戶id頻繁訪問遠超正常訪問量的均值等,刷次數(shù)方差較大的數(shù)據(jù)需要去除

極少行為用戶樣本

這類用戶樣本雖然是真實行為,但極少的行為并不能為其在模型中找到屬于該類用戶的“規(guī)律”,或者說引入這些數(shù)據(jù)后,模型會開始學習這類用戶的數(shù)據(jù)分布,對整體分布的擬合帶來噪聲,易引起模型過擬合。通常對這類用戶可以看做類似新用戶,通過用戶冷啟動的手段為其探索興趣補充推薦。

特征缺失值及異常值等處理

這里參考特征工程處理方法,針對方差較大的少量異常值做拋棄或均值處理,缺失值用均值或中值代替等

正負樣本處理

機器學習中正負樣本的選取也直接關(guān)系著訓練出的模型效果,在推薦系統(tǒng)中不同公司也有針對自家業(yè)務采取的樣本劃分方法。

  • 一次請求會產(chǎn)生N條推薦結(jié)果,但大部分手機端通常用戶只能看到其中的m條,m<N,通過客戶端埋點計算出用戶真實可見曝光的物料,在這批物料中選取點擊與未點擊樣本直觀上一次曝光中可能有點擊或無點擊
  • 早期yutube推薦中,會對所有用戶選取相同數(shù)量訓練樣本,可以同時避免低活躍用戶和高活躍用戶對整體模型的影響,使訓練的模型更符合絕大多數(shù)用戶行為
  • 對于有曝光無點擊行為的用戶,其曝光未點擊的負樣本可隨機選取,這樣可以學到這類用戶“不感興趣”的部分
  • 樣本在通過定時任務整合時需要做shuffle打散,避免同類用戶樣本數(shù)據(jù)扎堆引起數(shù)據(jù)分布偏差,在訓練模型時,也通過batch訓練方式中每個batch的樣本也進行shuffle打散

總之正負樣本處理還是要根據(jù)深入理解業(yè)務和用戶行為基礎(chǔ)上進行調(diào)整,可以讓模型學習到更適合的效果。

生成樣本數(shù)據(jù)后,將樣本隨機分成訓練集與測試集,一般為七三開或八二開,丟給模型來訓練了

模型訓練

首次搭建排序模型可以先用基礎(chǔ)模型如LR或GBDT跑出一個baseline快速上線,后續(xù)逐步迭代為復雜模型。推薦算法模型一般經(jīng)歷了由簡入繁的過程,數(shù)據(jù)量不斷增大,模型不斷復雜,大規(guī)模數(shù)據(jù)集下深度學習模型已經(jīng)逐漸成為主流,但這也是行業(yè)頭部公司所獨享,只有他們才有足夠的數(shù)據(jù)和算力來支撐龐大復雜的模型,絕大多數(shù)公司在中等數(shù)據(jù)集下,仍然使用主流的線性模型,通過分析用戶行為及數(shù)據(jù),構(gòu)建特征工程及樣本數(shù)據(jù)優(yōu)化,得來的效果要比深度學習模型更好。

從零搭建推薦系統(tǒng)—算法篇

 

模型訓練過程根據(jù)使用的框架不同,大體流程可以統(tǒng)一成下面的偽代碼

# 從文件讀入訓練集與測試集 
train_data = read(TRAIN_DATA_FILE) 
test_data = read(TEST_DATA_FILE) 
# 對數(shù)據(jù)處理并生成樣本與特征數(shù)據(jù)結(jié)構(gòu) 
y_train, x_train = preprocess(train_data) 
y_test, x_test = preprocess(test_data) 
# 實例化模型,傳入?yún)?shù) 
# 對經(jīng)典模型各主流框架中只需傳入?yún)?shù),若需對模型結(jié)構(gòu)調(diào)整需要自己實現(xiàn)模型結(jié)構(gòu) 
model = SomeModel(y_train, x_train, y_test, x_test, batchsize, optimizer, learning_rate, other_param...) 
# 開始訓練 
model.fit() 
# 評估模型效果 
model.evaluate() 

通過優(yōu)化訓練數(shù)據(jù)、優(yōu)化模型超參等方法訓練得到AUC指標較好的模型,可提供給線上應用。模型訓練可根據(jù)數(shù)據(jù)量和計算復雜度離線按天或小時定時訓練更新。

線上預測

通常線上使用預測服務的形式實時提供模型推斷功能,這時需要通過推薦引擎接口將待排序候選集的物料id、用戶id以及請求上下文信息傳給預測服務。預測服務中也分為特征抽取、物料打分排序、模型同步校驗等模塊。通過傳入的物料id及用戶id,可以從特征庫中在線抽取特征,結(jié)合上下文特征得到所有候選集的特征信息,進而通過模型中各特征權(quán)重,計算每個物料的打分。這個過程中注意被抽取的特征id要同訓練好模型中的特征權(quán)重id保持一致,同時各物料特征抽取和打分過程可以通過并行化方式提升系統(tǒng)性能。訓練好的模型由離線訓練流程定時同步到線上預測服務機器,注意同步時需要同時把模型的checksum一并同步并在服務端進行校驗,當同步失敗時仍使用緩存的上次同步模型進行預測,避免數(shù)據(jù)不一致。候選集物料被打分后進行整體排序,結(jié)果返回給推薦引擎。

從零搭建推薦系統(tǒng)—算法篇

 

預測服務

到此通過算法模型給出個性化排序的流程就打通了。關(guān)于模型打分步驟對于基于DNN的模型TensorFlow有專門tf.server用于部署生產(chǎn)環(huán)境的模型預測服務,TensorFlow也有為服務端語言golang/JAVA/C++等專門適配

對于傳統(tǒng)機器學習模型LR、GBDT等,可以將模型特征id及權(quán)重直接序列化為文件,在排序服務端定時加載解析,打分預測時直接使用特征id及其權(quán)重值運算即可。

番外

推薦系統(tǒng)算法側(cè)主流程架構(gòu)大體就是這樣,已經(jīng)可以跑通一個基本模型并應用于線上觀察效果。后續(xù)算法側(cè)的迭代優(yōu)化,一方面可以跟進業(yè)界前沿的模型方法,一方面通過分析用戶行為與業(yè)務數(shù)據(jù)來嘗試在特征和樣本數(shù)據(jù)層面做優(yōu)化,而后者可能才是產(chǎn)生更直接收益的法寶,畢竟不是所有公司都能有g(shù)oogle阿里家那種量級的用戶數(shù)據(jù),復雜模型應用起來因為過擬合的問題甚至帶來負向效果。反過來說大廠在模型上的創(chuàng)新也是基于不斷分析累積用戶行為的經(jīng)驗得來,比如yutube關(guān)于視頻推薦的論文:
https://zhuanlan.zhihu.com/p/82584437

也是分析用戶點擊一個視頻不一定是很喜歡,而可能和正好排在前面有關(guān),從而設計模型結(jié)構(gòu)將排序位置特征引入模型,通過多目標學習將這種實際樣本“有偏”的影響消除。

分享到:
標簽:推薦 系統(tǒng)
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨大挑戰(zhàn)2018-06-03

數(shù)獨一種數(shù)學游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數(shù)有氧達人2018-06-03

記錄運動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定