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

        ?

        基于深度學(xué)習(xí)的Spark 電影推薦系統(tǒng)設(shè)計(jì)

        2021-12-02 08:19:38關(guān)凱軒禹素萍
        科學(xué)技術(shù)創(chuàng)新 2021年32期
        關(guān)鍵詞:離線排序特征

        關(guān)凱軒 禹素萍

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

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

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

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

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

        1 系統(tǒng)設(shè)計(jì)

        1.1 系統(tǒng)架構(gòu)

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

        圖1 推薦系統(tǒng)整體架構(gòu)設(shè)計(jì)

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

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

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

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

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

        1.1.3 離線模型訓(xùn)練

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

        1.1.4 模型線上服務(wù)

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

        1.1.5 網(wǎng)頁(yè)前后端設(shè)計(jì)

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

        1.2 系統(tǒng)功能

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

        圖2 系統(tǒng)功能設(shè)計(jì)

        1.2.1 用戶主題

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

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

        1.2.2 電影主題

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

        1.2.3 網(wǎng)站首頁(yè)

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

        2 推薦策略

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

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

        2.1 召回層算法

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

        假設(shè)Item2vec 中一個(gè)長(zhǎng)度為K 的用戶歷史記錄為w1,w2,…,wk,則Item2vec 的優(yōu)化目標(biāo)為:

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

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

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

        表1 MovieLens rating 表

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

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

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

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

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

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

        表2 可用的所有特征

        為了使評(píng)分?jǐn)?shù)據(jù)更好的符合DIN 的CTR 預(yù)估模型,我們將用戶評(píng)分進(jìn)行二分類(lèi)處理,評(píng)分大于等于3.5 的標(biāo)記為1,評(píng)分低于3.5 的標(biāo)記為0。

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

        圖4 DIN 模型結(jié)構(gòu)

        2.3模型線上部署

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

        圖5 推薦策略整體架構(gòu)

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

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

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

        3 實(shí)驗(yàn)與分析

        3.1 評(píng)價(jià)標(biāo)準(zhǔn)

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

        本實(shí)驗(yàn)中離線評(píng)估指標(biāo)有準(zhǔn)確率(Accuracy),P-R AUC 和ROC AUC[10]。準(zhǔn)確率是指分類(lèi)正確的樣本占總樣本個(gè)數(shù)的比例,其公式用混淆矩陣可以表示為:

        公式中各項(xiàng)含義如表3 所示。

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

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

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

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

        離線評(píng)估使用數(shù)據(jù)集為Movielens-1m 數(shù)據(jù)集,其中包括了由6000 名用戶對(duì)4000 部電影的100 萬(wàn)條評(píng)分?jǐn)?shù)據(jù),每個(gè)用戶至少評(píng)分20 部電影。用戶和電影從1 號(hào)開(kāi)始連續(xù)編號(hào),數(shù)據(jù)隨機(jī)排序。

        3.3 實(shí)驗(yàn)平臺(tái)

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

        3.4 模型參數(shù)設(shè)置

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

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

        3.5 實(shí)驗(yàn)結(jié)果與分析

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

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

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

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

        3.6 線上測(cè)試

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

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

        4 結(jié)論

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

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

        猜你喜歡
        離線排序特征
        排序不等式
        異步電機(jī)離線參數(shù)辨識(shí)方法
        呼吸閥離線檢驗(yàn)工藝與評(píng)定探討
        淺談ATC離線基礎(chǔ)數(shù)據(jù)的準(zhǔn)備
        恐怖排序
        如何表達(dá)“特征”
        不忠誠(chéng)的四個(gè)特征
        節(jié)日排序
        離線富集-HPLC法同時(shí)測(cè)定氨咖黃敏膠囊中5種合成色素
        中成藥(2018年2期)2018-05-09 07:20:09
        刻舟求劍
        兒童繪本(2018年5期)2018-04-12 16:45:32
        99久久国产福利自产拍| 日韩高清不卡一区二区三区| 男女性杂交内射女bbwxz| 永久免费观看国产裸体美女| 99热这里只有精品69| 亚洲成av在线免费不卡| 国内揄拍国内精品人妻久久| 久久久久久亚洲av无码蜜芽| 波多野结衣亚洲一区二区三区| 国产男女做爰猛烈视频网站| 青青草手机在线观看视频在线观看 | 91热爆在线精品| 午夜视频在线观看国产19| 亚洲av乱码一区二区三区按摩 | 国产精品黄页免费高清在线观看| av影院在线免费观看不卡| 天堂…在线最新版资源| 欧美性一区| 国产丝袜美腿嫩模视频诱惑| 亚洲欧洲国产码专区在线观看| 欧美丰满熟妇aaaaa片| 91精品91久久久久久| 一区二区三区精品免费| 人妻无码一区二区三区免费| 久久免费网国产AⅤ| 亚洲精品二区三区在线观看| 日本激情网站中文字幕| 好看的欧美熟妇www在线| 日本手机在线| 丝袜美腿一区在线观看| 亚洲国产精品无码久久久| 国产内射合集颜射| 国产综合一区二区三区av| 变态另类人妖一区二区三区| 又粗又粗又黄又硬又深色的| 亚洲h电影| 国产精品成人一区二区在线不卡| 国产伦人人人人人人性| 国产无线乱码一区二三区| 日韩日本国产一区二区| 狠狠躁18三区二区一区|