亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于深度學習的Spark 電影推薦系統(tǒng)設計

        2021-12-02 08:19:38關凱軒禹素萍
        科學技術創(chuàng)新 2021年32期
        關鍵詞:排序特征用戶

        關凱軒 禹素萍

        (東華大學信息科學與技術學院,上海 201620)

        隨著互聯(lián)網(wǎng)的快速發(fā)展,各行各業(yè)的信息資訊正在呈爆炸式增長的態(tài)勢。在信息過載[1]的時代,如何快速在海量信息中找到自己感興趣的信息成為當務之急,推薦系統(tǒng)在這樣的時代背景下應運而生。

        推薦算法經(jīng)歷了從傳統(tǒng)的協(xié)同過濾[2],因子分解機到深度學習算法大行其道的發(fā)展過程,尤其是2015 年之后,隨著Wide&Deep[3],F(xiàn)NN[4]等一大批深度推薦模型的提出,深度學習模型成為了推薦系統(tǒng)的主流,推薦效果越來越好。同時,海量數(shù)據(jù)的處理需求也催生了大數(shù)據(jù)平臺工具的進化,大數(shù)據(jù)存儲,傳輸,計算等組件發(fā)展日趨成熟。

        深度學習模型的表達能力強,與傳統(tǒng)模型相比能夠進行特征間的深度交叉,從而挖掘出特征間更多的潛藏信息,網(wǎng)絡結(jié)構也可以隨著業(yè)務不同而改變,十分靈活。而Spark,F(xiàn)link 等大數(shù)據(jù)計算框架擅長從后端數(shù)據(jù)庫,日志系統(tǒng)等數(shù)據(jù)中提取中模型訓練所需的樣本數(shù)據(jù),為深度模型提供材料。

        本文主要在現(xiàn)有推薦算法的基礎之上,結(jié)合大數(shù)據(jù)處理工具對推薦系統(tǒng)進行設計。通過TensorFlow平臺實現(xiàn)DIN[5]深度學習模型的端到端訓練與部署;通過HDFS,Spark,Kafka 等大數(shù)據(jù)技術保證海量用戶物品數(shù)據(jù),模型數(shù)據(jù)存儲的穩(wěn)定,計算的實時高效。二者的結(jié)合保證了推薦系統(tǒng)的運行的穩(wěn)定和推薦的良好效果。

        1 系統(tǒng)設計

        1.1 系統(tǒng)架構

        系統(tǒng)采用模塊化結(jié)構設計。各模塊之間相互分離,耦合程度低,從而方便后續(xù)的維護與拓展。推薦系統(tǒng)整體架構設計如圖1 所示。

        圖1 推薦系統(tǒng)整體架構設計

        推薦系統(tǒng)由數(shù)據(jù)存儲,特征處理,模型離線訓練,模型線上服務與網(wǎng)站前后端設計等部分組成。各部分的功能如下:

        1.1.1 數(shù)據(jù)存儲層

        主要負責用戶特征,物品特征,用戶Embedding,物品Embedding 等特征數(shù)據(jù)以及訓練模型數(shù)據(jù)的存儲。為了解決模型線上服務響應的實時性與海量用戶物品特征存儲的問題,采用分級存儲方式。HDFS 容量近乎無限大[6],但訪問速度慢,適合用來存儲歷次處理的全量數(shù)據(jù)與模型數(shù)據(jù);MySQL 作為關系型數(shù)據(jù)庫,用于存儲用戶注冊登錄信息,電影相關信息等,用作網(wǎng)站后端數(shù)據(jù)庫使用;Redis 作為內(nèi)存型數(shù)據(jù)庫,訪問速度快,用來載入線上服務所需特征;Elasticsearch 提供全文檢索功能,作為搜索服務器提供電影全文檢索功能。

        1.1.2 數(shù)據(jù)與特征處理

        數(shù)據(jù)處理部分主要負責推薦系統(tǒng)的用戶行為日志處理、數(shù)據(jù)存儲層數(shù)據(jù)的聚合更新、推薦模型訓練樣本數(shù)據(jù)與線上特征的生成等。Spark 離線計算能力強,并且有Spark MLlib 庫,可以用來定時生成模型離線訓練數(shù)據(jù)和線上特征更新,F(xiàn)link 作為流處理引擎,可以實時處理用戶行為日志,改變用戶的特征,從而實現(xiàn)用戶的個性化實時推薦效果。

        1.1.3 離線模型訓練

        離線訓練模塊可以利用TensorFlow 平臺實現(xiàn)深度學習模型,利用Spark MLlib 計算用戶物品Embedding 以及實現(xiàn)協(xié)同過濾等傳統(tǒng)模型。Embedding 和傳統(tǒng)模型可以實現(xiàn)物品的快速召回,深度學習模型用來對召回的物品進行精排,生成最終的Top-N 推薦列表。

        1.1.4 模型線上服務

        線上服務要負責與網(wǎng)站后端,離線模型與數(shù)據(jù)存儲部分交互。使用TensorFlow Serving[7]可以實現(xiàn)模型的端對端訓練,端對端部署。將離線訓練好的模型載入TensorFlow Server 并部署在Docker 容器中,后端服務器通過Http 請求獲取候選物品的模型推斷結(jié)果,通過模型返回的預測評分完成對候選物品的排序,從而完成推薦服務。

        1.1.5 網(wǎng)頁前后端設計

        采用SSM 后端框架以及JQuery,AJAX 等前端技術實現(xiàn)了推薦系統(tǒng)網(wǎng)站的常見功能。

        1.2 系統(tǒng)功能

        推薦系統(tǒng)只實現(xiàn)了電影推薦的核心功能,因此設計盡可能簡潔。功能設計如圖2 所示。

        圖2 系統(tǒng)功能設計

        1.2.1 用戶主題

        用戶主題實現(xiàn)用戶的歷史行為展示,如評分記錄,搜索記錄等,與此同時用戶的行為數(shù)據(jù)會被后端系統(tǒng)實時記錄到日志文件中,并通過Flume,Kafka 傳輸,交給Flink 流處理平臺處理后作為用戶實時推薦的特征數(shù)據(jù)。

        為你推薦列表也展示在用戶主題中,通過召回,排序策略為用戶生成可能感興趣的Top-N 電影。

        1.2.2 電影主題

        電影主題下主要包括電影的描述信息,電影平均評分等統(tǒng)計信息以及由推薦算法計算得到的Top-N 相似電影列表。

        1.2.3 網(wǎng)站首頁

        首頁包含了按類別分類電影信息的展示和電影搜索框。電影搜索功能由全文檢索引擎Elasticsearch 實現(xiàn),同時用戶搜索記錄通過后端埋點記錄后可以作為用戶的行為特征。

        2 推薦策略

        出于工程上的考慮,推薦系統(tǒng)中經(jīng)常把推薦模型分為召回和排序兩個階段。召回階段負責把大規(guī)模的候選集快速縮減到幾百量級的規(guī)模,為了召回速度快,常采用簡單模型;排序階段負責得到精準的排序結(jié)果,因此要盡可能的利用所有特征,并使用復雜模型充分挖掘特征。

        為了保證物品的召回速度與召回率的平衡,本文采用基于Embedding 的召回方法,并使用局部敏感哈希[8](Locality Sensitive Hashing,LSH)進行快速Embedding 最近鄰計算;為了實現(xiàn)對多特征的精準排序,排序?qū)邮褂靡胱⒁饬C制的DIN 模型。

        2.1 召回層算法

        Embedding 起源于自然語言處理領域谷歌提出的Word2vec[9]模型,基本思想是基于一組詞序列訓練得到Embedding,用Embedding 間的內(nèi)積距離表示詞之間的接近程度。Item2vec 是Word2vec 在推薦系統(tǒng)界的推廣,把詞序列換成了用戶的觀看序列,購買序列等,從而可以通過用戶已觀看序列推斷用戶感興趣的物品序列。

        假設Item2vec 中一個長度為K 的用戶歷史記錄為w1,w2,…,wk,則Item2vec 的優(yōu)化目標為:

        Item2vec 利用wi向量來預測wj向量,可以轉(zhuǎn)換為圖3 的神經(jīng)網(wǎng)絡結(jié)構,利用梯度下降訓練參數(shù)。輸入向量矩陣WV×N的每一個行向量對應的就是我們要找的Embedding。

        圖3 Item2vec 的模型結(jié)構

        Spark MLlib 庫提供了Item2vec 模型,利用Spark 處理rating表(如表1 所示),按時間戳進行排序后,就可以得到用戶的近似評分序列,從而訓練出電影的Embedding,用戶的Embedding 可以由該用戶觀看過的電影Embedding 加權平均后得到。訓練完成后將Embedding 存入到Redis 內(nèi)存數(shù)據(jù)庫中,方便召回時實時獲取。

        表1 MovieLens rating 表

        在召回時,需要逐一計算物品Embedding 之間的相似度,在面對大規(guī)模數(shù)據(jù)集時十分耗時,為了提高召回效率,可以采用局部敏感哈希的方法。

        局部敏感哈希(LSH)基于這樣的思想:原始數(shù)據(jù)空間中的兩個相鄰數(shù)據(jù)點通過相同的哈希函數(shù)映射后,在新的數(shù)據(jù)空間中相鄰的概率仍然很大,而不相鄰的數(shù)據(jù)點相鄰的概率很小。因此,對Embedding 進行哈希映射后,相鄰的Embedding 大概率會被劃分到同一個“桶”中,在召回時只需要在一個桶內(nèi),或相鄰幾個桶內(nèi)的元素中進行搜索即可,大大降低了候選集相似度計算的數(shù)量。

        Spark MLlib 同樣提供了LSH 分桶模型,利用局部敏感哈??梢詷O大提高召回速度,實現(xiàn)快速召回。

        2.2 排序?qū)铀惴?/h3>

        DIN 模型[5]是阿里媽媽用在展示廣告中的CTR 算法,在傳統(tǒng)深度推薦模型的基礎上引入了注意力機制,利用用戶的歷史行為與目標推薦物品之間的相關性計算注意力得分,從而提供更有針對性的推薦結(jié)果。

        利用Spark 處理MovieLens 數(shù)據(jù)集,按照“物品特征”“用戶特征”“場景特征”分類,可以提取出以下特征,見表2。

        表2 可用的所有特征

        為了使評分數(shù)據(jù)更好的符合DIN 的CTR 預估模型,我們將用戶評分進行二分類處理,評分大于等于3.5 的標記為1,評分低于3.5 的標記為0。

        DIN 模型將注意力機制用在了用戶評分電影序列上,注意力模塊中將用戶評過分的電影與候選電影Embedding 以及通過element wise 差值向量合并起來作為輸入,然后喂給全連接層,最后得出注意力權重。網(wǎng)絡模型如圖4 所示。

        圖4 DIN 模型結(jié)構

        2.3模型線上部署

        結(jié)合前面的召回層、排序?qū)铀惴ㄒ约按髷?shù)據(jù)處理工具,我們可以得到推薦模型的詳細架構設計,如圖5 所示。

        圖5 推薦策略整體架構

        利用前后端埋點,用戶行為日志經(jīng)過Flume 采集后一方面落盤到HDFS,另一方面由Kafka 傳輸?shù)紽link 進行實時處理,前面提到用戶Embeddig 是由該用戶觀看過的電影Embedding 加權平均得到的,F(xiàn)link 在得到用戶最新的評分電影后,就可以實時更新用戶的Embeddig,從而改變用戶的推薦結(jié)果。

        Spark 從HDFS 上獲取全量數(shù)據(jù)后進行離線處理,一方面得到訓練樣本數(shù)據(jù)供模型離線訓練,另一方面將特征存儲到Redis中,方便線上服務時獲取。

        在模型線上服務時,利用Embeddig 實現(xiàn)候選集的快速召回,排序時后端服務器利用拼接好的用戶特征,通過請求TensorFlow Serving API 得到推斷的結(jié)果,然后根據(jù)結(jié)果排序,生成最終的推薦列表。

        3 實驗與分析

        3.1 評價標準

        衡量推薦系統(tǒng)推薦效果的方法有離線評估和在線測試兩種。離線評估常用來對算法模型本身進行評估,無需將模型部署到線上環(huán)境,是最常用最基本的評估方法;線上測試是在實際生產(chǎn)環(huán)境中將被測對象分組,分別部署新舊兩套模型來比較模型的效果差異,通過計算視頻觀看時長,訪問數(shù)等商業(yè)指標來衡量新模型的效果。

        本實驗中離線評估指標有準確率(Accuracy),P-R AUC 和ROC AUC[10]。準確率是指分類正確的樣本占總樣本個數(shù)的比例,其公式用混淆矩陣可以表示為:

        公式中各項含義如表3 所示。

        P-R 是指精確率(Precision)和召回率(Recall)變化的曲線。P-R 曲線的橫軸是召回率,縱軸是精確率。

        精確率指的是分類正確的正樣本個數(shù)占分類器判定為正樣本個數(shù)的比例,公式如下:

        ROC(the Receiver Operating Characteristic)曲線全稱為“受試者工作特征曲線”。它的橫坐標是FP,縱坐標是TP。

        3.2 數(shù)據(jù)集

        離線評估使用數(shù)據(jù)集為Movielens-1m 數(shù)據(jù)集,其中包括了由6000 名用戶對4000 部電影的100 萬條評分數(shù)據(jù),每個用戶至少評分20 部電影。用戶和電影從1 號開始連續(xù)編號,數(shù)據(jù)隨機排序。

        3.3 實驗平臺

        采用8 核16 線程聯(lián)想電腦進行訓練,內(nèi)存16G,CPU 為AMD-4800H ,Python 版本為3.7,TensorFlow 版本為2.3.0,不使用GPU 加速。

        3.4 模型參數(shù)設置

        在構建訓練集與數(shù)據(jù)集時,為了避免引入未來信息,訓練集包含的用戶評分時間不應該晚于測試集數(shù)據(jù)。利用Spark 劃分訓練集和測試集時,采用時間切割的方式,將用戶評分按照時間戳排序,前80%作為訓練集,后20%作為測試集。

        使用TensorFlow Keras 構建神經(jīng)網(wǎng)絡,使用Adam 優(yōu)化器,訓練10 個epochs,每次batch 大小設置為64。

        3.5 實驗結(jié)果與分析

        將本文所用的DIN 模型與NeuralCF[11],MLP 模型,Wide&Deep[3],DeepFM[12]等模型進行對比實驗,使用Acc,PR AUC 和ROC AUC 測試[1]模型效果,實驗結(jié)果如表4 所示。

        表4 模型對比結(jié)果

        由表4 可知,Netural CF 是傳統(tǒng)協(xié)同過濾模型的神經(jīng)網(wǎng)絡化實現(xiàn),表現(xiàn)效果最差;而DeepFM由于要進行特征間的深度交叉,在小數(shù)據(jù)集上表現(xiàn)不好,存在比較嚴重的過擬合問題。

        DIN,MLP,Wide&Deep 模型的效果較好,其中DIN 模型的綜合表現(xiàn)最好,這是因為DIN 相比MLP 引入了注意力權重,而MLP 只是將所有特征連接后直接送入全連接層。

        3.6 線上測試

        除了離線測試模型本身的效果之外,生產(chǎn)環(huán)境中還可以用線上AB 測試來評估整個推薦系統(tǒng)的效果。

        在實際上線項目中,針對不同的用戶,將其userId 計算哈希后對測試分組進行取余操作,將用戶分布到不同的組中,從而采用不同的推薦模型對用戶進行推薦。通過對比不同模型下網(wǎng)站訪問量,播放時長,視頻播放完成情況等測試上線模型的真實效果。

        4 結(jié)論

        本文利用Spark 等大數(shù)據(jù)工具搭建了一套完整的電影推薦系統(tǒng),基于Embedding 和DIN 深度學習模型實現(xiàn)了電影的離線推薦與實時推薦功能,在離線環(huán)境下取得了較好的推薦效果。其中對開源技術框架的選型、推薦系統(tǒng)的每個功能模塊做了詳細介紹,清晰的展示了各模塊之間的協(xié)作過程;并介紹了推薦系統(tǒng)推薦效果的評價指標和方法。對于如何設計一個工業(yè)化的完整的推薦系統(tǒng)來說具有很好的借鑒意義。

        但也存在著諸多不足,本文中用到的推薦算法只是對以往算法在電影推薦領域的一個整合和應用,下一步考慮針對電影數(shù)據(jù)集對現(xiàn)有算法進行改進。

        猜你喜歡
        排序特征用戶
        排序不等式
        恐怖排序
        如何表達“特征”
        不忠誠的四個特征
        當代陜西(2019年10期)2019-06-03 10:12:04
        節(jié)日排序
        刻舟求劍
        兒童繪本(2018年5期)2018-04-12 16:45:32
        抓住特征巧觀察
        關注用戶
        商用汽車(2016年11期)2016-12-19 01:20:16
        關注用戶
        商用汽車(2016年6期)2016-06-29 09:18:54
        關注用戶
        商用汽車(2016年4期)2016-05-09 01:23:12
        成人精品视频一区二区三区尤物| 国产亚洲精品免费专线视频| 亚洲一区二区三区偷拍厕所| 影视av久久久噜噜噜噜噜三级| 亚洲国产美女精品久久久久| 亚洲香蕉毛片久久网站老妇人| 久久av一区二区三区黑人| 亚洲自偷精品视频自拍| 日本欧美视频在线观看| 免费一区二区三区视频狠狠| 中文字幕色一区二区三区页不卡| 精品无码国产一区二区三区麻豆| 18分钟处破好疼哭视频在线观看| 国产短视频精品区第一页| 亚洲av日韩av天堂久久不卡 | 日日碰狠狠躁久久躁9| 青草蜜桃视频在线观看| 亚洲中文字幕精品久久久| 午夜免费电影| 激情久久av一区av二区av三区| 亚洲欧美国产精品久久久| 国产一区二区三区十八区| 色欲aⅴ亚洲情无码av| 国产一区免费观看| 少妇极品熟妇人妻高清| 国产在线一区二区三区乱码| 色橹橹欧美在线观看视频高清 | 成年女人片免费视频播放A| 日本最新视频一区二区| 中文字幕久久熟女蜜桃| 亚洲一区二区在线| 求网址日韩精品在线你懂的| 狠狠色噜噜狠狠狠8888米奇| 性色av无码不卡中文字幕| 手机AV片在线| 亚洲一区精品在线中文字幕| 人妻丰满熟妇av无码区不卡| 无码精品一区二区三区超碰| 国产一区二区三区在线爱咪咪| 一本加勒比hezyo无码专区| 日本精品一区二区三区在线视频 |