国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于個(gè)性化推薦系統(tǒng)的視頻App的設(shè)計(jì)

2021-04-22 05:40馬學(xué)明童懷
電腦知識(shí)與技術(shù) 2021年8期
關(guān)鍵詞:推薦系統(tǒng)

馬學(xué)明 童懷

摘要:近年來(lái),各類視頻應(yīng)用上內(nèi)容越來(lái)越豐富,頁(yè)面上與當(dāng)前用戶無(wú)關(guān)的內(nèi)容也越來(lái)越多。因此,市面上出現(xiàn)了多種不同的推薦算法來(lái)進(jìn)行內(nèi)容推薦。但是,不是每種推薦算法都能夠解決所有的問(wèn)題。基于個(gè)性化推薦系統(tǒng)的視頻App,融合了多種推薦方法。首先為了解決推薦系統(tǒng)的冷啟動(dòng)問(wèn)題,采用了基于統(tǒng)計(jì)學(xué)的推薦方式,同時(shí),采用基于協(xié)同過(guò)濾的推薦算法,計(jì)算視頻和用戶間的隱藏特征,最后還有實(shí)時(shí)推薦模塊,能夠根據(jù)用戶近期的行為對(duì)推薦內(nèi)容進(jìn)行調(diào)整。

關(guān)鍵詞:android應(yīng)用;推薦系統(tǒng);協(xié)同過(guò)濾;ALS算法;實(shí)時(shí)推薦

中圖分類號(hào):TP391? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A

文章編號(hào):1009-3044(2021)08-0004-03

Abstract: In recent years, the content of various video applications is becoming more and more abundant, and there are more and more content on the page that has nothing to do with the current users. Therefore, there are many different recommendation algorithms in the market for content recommendation. However, only use a recommendation algorithm can not solve all the problems. The video App based on personalized recommendation system integrates various recommendation methods. Firstly, in order to solve the cold start problem of the recommendation system, a recommendation method based on statistics is adopted. At the same time, a recommendation algorithm based on collaborative filtering is adopted to calculate the hidden features between video and users. Finally, there is a real-time recommendation module, which can adjust the recommended content according to the recent behavior of users.

Key words: android application; aecommendation system; aollaborative filtering; ALS algorithm; real-time recommendation

1 背景

近年來(lái),為了滿足人們?cè)絹?lái)越高的生活需求,各類視頻App層出不窮,有愛奇藝視頻、騰訊視頻等長(zhǎng)視頻應(yīng)用,也有抖音、快手之類的短視頻應(yīng)用。這些應(yīng)用上各種內(nèi)容非常豐富,但同時(shí)也充斥著大量與用戶無(wú)關(guān)的內(nèi)容。因此,為了能夠在大量的網(wǎng)絡(luò)資源中找到用戶最感興趣的內(nèi)容,個(gè)性化推薦系統(tǒng)也就應(yīng)運(yùn)而生。

視頻推薦系統(tǒng)常采用基于協(xié)同過(guò)濾的推薦算法,該算法可以根據(jù)用戶特征的相似度找到擁有共同喜好的人,或者根據(jù)視頻的相似度,找到和用戶喜歡的視頻相似的其他視頻,從而可以很好地減少應(yīng)用內(nèi)信息的冗余,獲取到用戶更為感興趣的內(nèi)容,給用戶帶來(lái)更好的使用體驗(yàn)。

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

本文將基于個(gè)性化推薦系統(tǒng)設(shè)計(jì)一款視頻App。系統(tǒng)的總體架構(gòu)圖如圖1所示。系統(tǒng)主要分成服務(wù)端、客戶端和推薦系統(tǒng)三個(gè)部分。服務(wù)端負(fù)責(zé)提取日志信息,傳入推薦系統(tǒng)中計(jì)算,并將計(jì)算完成的數(shù)據(jù)存入數(shù)據(jù)庫(kù)中??蛻舳素?fù)責(zé)上報(bào)操作日志,請(qǐng)求并拉取服務(wù)端下發(fā)的推薦列表,最后將內(nèi)容完整顯示出來(lái)。推薦系統(tǒng)分為統(tǒng)計(jì)推薦模塊、離線推薦模塊和實(shí)時(shí)推薦模塊。統(tǒng)計(jì)推薦模塊主要是根據(jù)近期熱門程度或視頻的評(píng)分高低進(jìn)行推薦,離線推薦模塊可以根據(jù)視頻中的隱藏特征進(jìn)行推薦,實(shí)時(shí)推薦模塊則會(huì)得根據(jù)使用者對(duì)當(dāng)前視頻的評(píng)價(jià)實(shí)時(shí)修改推薦內(nèi)容。

2.1 服務(wù)端設(shè)計(jì)

2.1.1 日志系統(tǒng)

要想根據(jù)用戶的信息準(zhǔn)確得推薦用戶感興趣的視頻內(nèi)容,首先需要獲取用戶的信息。用戶在使用App時(shí)會(huì)采集操作日志到服務(wù)端的日志系統(tǒng)。日志系統(tǒng)采用Spring Boot和MongoDB來(lái)構(gòu)建。Spring Boot可以簡(jiǎn)化Web應(yīng)用的環(huán)境搭建,Spring Boot繼承了Spring框架,開發(fā)者可以通過(guò)Spring Boot更方便得使用Spring框架來(lái)進(jìn)行Web開發(fā)。

MongoDB 為Web應(yīng)用提供了可擴(kuò)展的高性能數(shù)據(jù)存儲(chǔ)解決方案,是基于分布式文件存儲(chǔ)的數(shù)據(jù)庫(kù)。MongoDB功能非常豐富,而且與其他非關(guān)系型數(shù)據(jù)庫(kù)相比,它比較像關(guān)系數(shù)據(jù)庫(kù)。由于 SpringBoot本身就封裝了 MongoDB 的套件,因此使用 SpringBoot 整合 MongoDB 做日志系統(tǒng)的開發(fā),是相得益彰的[1]。

日志系統(tǒng)主要有日志記錄和日志管理兩個(gè)模塊。日志記錄模塊主要負(fù)責(zé)收集客戶端應(yīng)用運(yùn)行過(guò)程中產(chǎn)生的數(shù)據(jù)信息,并將它們存儲(chǔ)到MongoDB數(shù)據(jù)庫(kù)中。日志管理模塊主要負(fù)責(zé)數(shù)據(jù)的查詢、刪除以及統(tǒng)計(jì)分析。

2.1.2 數(shù)據(jù)清洗

本設(shè)計(jì)中推薦系統(tǒng)的數(shù)據(jù)E-R模型如圖2所示。

但是客戶端上報(bào)上來(lái)的原始數(shù)據(jù)文件并不能直接應(yīng)用于推薦系統(tǒng)上,所以將數(shù)據(jù)傳到推薦系統(tǒng)之前,還需要進(jìn)行數(shù)據(jù)清洗。數(shù)據(jù)清洗主要是對(duì)臟數(shù)據(jù)進(jìn)行一個(gè)重新檢查、去重、過(guò)濾,目的在于剔除不合格的數(shù)據(jù),只保留有用數(shù)據(jù)[2]。

2.2 客戶端設(shè)計(jì)

客戶端基于Andriod系統(tǒng)設(shè)計(jì),代碼采用MVP架構(gòu)設(shè)計(jì)[3],MVP是目前Adroid開發(fā)中最主流的架構(gòu),它可以很好地解決視圖層代碼臃腫的問(wèn)題,并且便于后期的維護(hù)和增加新功能。MVP架構(gòu)分為Model,View和Presenter三層, Model層負(fù)責(zé)獲取數(shù)據(jù),處理數(shù)據(jù),View層負(fù)責(zé)UI的展示和交互,Presenter層則是負(fù)責(zé)擔(dān)任View和Model通信的橋梁,傳遞Model的數(shù)據(jù)給View展示,或者接收View層存儲(chǔ)到Model層,以及處理一些其他的邏輯。本系統(tǒng)中客戶端主要將服務(wù)端下發(fā)的推薦列表緩存到Model層,然后傳遞到View層進(jìn)行展示,并且用戶可以長(zhǎng)按視頻列表對(duì)視頻進(jìn)行評(píng)分。最終展示結(jié)果如圖3所示。

2.3 推薦系統(tǒng)設(shè)計(jì)

2.3.1 基于統(tǒng)計(jì)的推薦模塊

基于統(tǒng)計(jì)的推薦模塊可以根據(jù)數(shù)據(jù)庫(kù)中已有的視頻數(shù)據(jù),結(jié)合所有用戶對(duì)這些視頻的評(píng)價(jià)進(jìn)行推薦,主要用來(lái)解決推薦系統(tǒng)在冷啟動(dòng)時(shí)沒有用戶歷史信息導(dǎo)致其他推薦方式不準(zhǔn)確的問(wèn)題。這種推薦方式主要通過(guò)使用SQL語(yǔ)句查詢數(shù)據(jù)庫(kù)中已有的內(nèi)容來(lái)實(shí)現(xiàn)。如需要最熱門的視頻推薦,可以通過(guò)SQL語(yǔ)句查詢數(shù)據(jù)庫(kù)中的評(píng)分?jǐn)?shù)據(jù)集,統(tǒng)計(jì)所有評(píng)分中評(píng)分?jǐn)?shù)最多的視頻,然后將視頻按照評(píng)分從大到小排序。

2.3.2 離線推薦模塊

離線推薦模塊可以根據(jù)用戶所有的歷史數(shù)據(jù),采取設(shè)定的離線推薦算法周期性得進(jìn)行結(jié)果統(tǒng)計(jì)與保存,計(jì)算結(jié)果在短時(shí)間內(nèi)是一樣的,如果需要改變推薦結(jié)果,需要再次調(diào)用算法。

離線推薦模塊基于隱語(yǔ)義模型進(jìn)行協(xié)同過(guò)濾。使用隱語(yǔ)義模型來(lái)訓(xùn)練模型時(shí),可以讓模型去發(fā)掘內(nèi)容間的潛在特征,獲取預(yù)測(cè)評(píng)分。隱語(yǔ)義模型是基于機(jī)器學(xué)習(xí)的,它利用降維技術(shù)獲得與用戶的評(píng)分矩陣比較接近的低階評(píng)分矩陣[4]。低階矩陣只持有比較重要的特征,剔除了無(wú)用特征,減輕了數(shù)據(jù)稀疏性的影響。對(duì)于隱語(yǔ)義模型的求解,可以采用交替式最小二乘法(Alternating Least Squares,ALS)[5]。

我們假設(shè)用戶特征矩陣為[Pm×k],視頻特征矩陣為[Qk×n], 評(píng)分矩陣為[Rm×n],那么:

ALS算法的主要思想是找到兩個(gè)低維矩陣[Pm×k] 和矩陣[Qk×n] 近似逼近[Rm×n] [6], 可以先固定[Qk×n],把[Pm×k]當(dāng)作變量,通過(guò)損失函數(shù)最小化求出[Pm×k],這就是一個(gè)經(jīng)典的最小二乘問(wèn)題,求解之后再反過(guò)來(lái)固定求得的[Pm×k],把[Qk×n]當(dāng)作變量,求解出[Qk×n]。之后交替執(zhí)行,直至誤差小于設(shè)定值,或者執(zhí)行次數(shù)大于設(shè)定的次數(shù)。損失函數(shù)最小化公式如下:

其中[λu Pu2+λi Qi2]是正則化項(xiàng),是為了防止過(guò)擬合而加入的,[λ]可以通過(guò)交叉驗(yàn)證得到。

通過(guò) ALS 算法計(jì)算得到當(dāng)前用戶的所有視頻推薦矩陣,之后只需要將預(yù)測(cè)結(jié)果通過(guò)預(yù)測(cè)分值進(jìn)行排序,然后將其存入數(shù)據(jù)庫(kù)中??蛻舳诵枰玫酵扑]結(jié)果時(shí)再請(qǐng)求服務(wù)端查詢分值最高的推薦列表。

2.3.3 實(shí)時(shí)推薦模塊

實(shí)時(shí)推薦模塊和離線推薦模塊最大的不同在于離線推薦是根據(jù)用戶的所有評(píng)分記錄來(lái)計(jì)算用戶總體的偏好,但是實(shí)時(shí)推薦結(jié)果反映的是用戶近期的偏好。實(shí)時(shí)推薦模塊需要做到在用戶本次或最近幾個(gè)評(píng)分之后系統(tǒng)可以明顯地更新推薦結(jié)果,并且要求整體的計(jì)算量不大,這樣才能夠在響應(yīng)時(shí)間內(nèi)滿足實(shí)時(shí)要求。

本文的實(shí)時(shí)推薦算法設(shè)計(jì)的具體步驟如下:

1) 如果用戶u對(duì)視頻p進(jìn)行了評(píng)分,會(huì)導(dǎo)致對(duì)用戶u的推薦列表的更新。由于用戶 u對(duì)視頻 p評(píng)分,且這個(gè)評(píng)分是屬于好評(píng),那么就可以選取與視頻 p 最相似的 K 個(gè)視頻作為候選視頻。視頻間相似度計(jì)算公式采用余弦相似度公式[7]計(jì)算,假設(shè)任意的兩個(gè)視頻p,q,其特征向量分別為[Vp=]和[Vq=],那么它們之間的余弦相似度計(jì)算公式如下:

2) 在候選視頻集中,我們根據(jù)用戶對(duì)當(dāng)前視頻的評(píng)分高低,來(lái)計(jì)算與當(dāng)前視頻相似的其他視頻的優(yōu)先級(jí),并以此優(yōu)先級(jí)將候選視頻排序。推薦優(yōu)先級(jí)計(jì)算公式如下:

其中,RK指用戶按時(shí)間順序選取的最近K個(gè)評(píng)分,[Rr]指用戶u對(duì)當(dāng)前視頻r的評(píng)分,sim(q,r)指視頻q與視頻r的相似度,這里我們?cè)O(shè)定最小相似度為 0.6,如果視頻q和視頻r之間的相似度低于0.6,則視為兩者不相關(guān)。sim_sum表示q與RK中視頻相似度大于最小相似度的個(gè)數(shù),incount表示RK中與視頻r相似且評(píng)分較高的視頻個(gè)數(shù),recount表示RK中與視頻r相似的且評(píng)分較低的視頻個(gè)數(shù)。

3) 根據(jù)候選視頻的推薦優(yōu)先級(jí)得到更新后用戶u的推薦列表后,這個(gè)列表將被發(fā)送到服務(wù)端,與服務(wù)端數(shù)據(jù)庫(kù)中用戶u的上次實(shí)時(shí)推薦結(jié)果進(jìn)行合并,從中并選出優(yōu)先級(jí)前K大的視頻就是新的實(shí)時(shí)推薦結(jié)果,服務(wù)端再將此推薦結(jié)果下發(fā)客戶端進(jìn)行展示即可。

3 實(shí)驗(yàn)結(jié)果

實(shí)驗(yàn)抓取了500個(gè)視頻數(shù)據(jù),在推薦之前先模擬標(biāo)記用戶對(duì)這些視頻的態(tài)度,用于和最后的推薦結(jié)果對(duì)比,用戶感興趣的視頻為正樣本,不感興趣的視頻為負(fù)樣本,無(wú)法判斷是否感興趣的為無(wú)關(guān)樣本。模擬通過(guò)本文設(shè)計(jì)的推薦系統(tǒng)后得到為用戶推薦的50個(gè)視頻,結(jié)合推薦之前對(duì)視頻的標(biāo)記,我們以精準(zhǔn)度,召回率以及F1值[8]來(lái)評(píng)價(jià)本文設(shè)計(jì)的推薦系統(tǒng)。其中,精準(zhǔn)度計(jì)算公式為:

其中,TP是指視頻原本屬于正樣本,被系統(tǒng)判斷為正樣本的個(gè)數(shù),F(xiàn)P指視頻原本屬于負(fù)樣本,被系統(tǒng)判斷為正樣本的個(gè)數(shù),F(xiàn)N指視頻原本屬于正樣本,被系統(tǒng)判斷為負(fù)樣本的個(gè)數(shù)。最終實(shí)驗(yàn)數(shù)據(jù)如表1所示。

采用表1中的實(shí)驗(yàn)數(shù)據(jù)分別計(jì)算精準(zhǔn)度,召回率和F1值,得到實(shí)驗(yàn)結(jié)果如圖4所示。

其中,離線推薦的精準(zhǔn)度為0.676,召回率為0.793,F(xiàn)1值為0.730,能夠基本達(dá)到準(zhǔn)確推薦。由于實(shí)時(shí)推薦與用戶歷史的相關(guān)數(shù)據(jù)有關(guān),所以當(dāng)用戶沒有實(shí)時(shí)評(píng)價(jià)數(shù)據(jù)時(shí),實(shí)時(shí)推薦的結(jié)果和離線推薦結(jié)果基本一致,當(dāng)用戶評(píng)價(jià)次數(shù)足夠多時(shí),實(shí)時(shí)推薦的準(zhǔn)確度可以進(jìn)一步提升。

4 結(jié)束語(yǔ)

本文設(shè)計(jì)了基于個(gè)性化推薦的視頻App,分為服務(wù)端、客戶端和推薦系統(tǒng)三個(gè)模塊進(jìn)行設(shè)計(jì),并在推薦系統(tǒng)模塊中采用了三種不同推薦方式,以應(yīng)對(duì)不同場(chǎng)景?;诮y(tǒng)計(jì)的推薦可以在推薦系統(tǒng)冷啟動(dòng),沒有用戶數(shù)據(jù)時(shí)使用,離線推薦根據(jù)用戶特征和視頻特征,對(duì)用戶比較長(zhǎng)周期的行為進(jìn)行推薦,而實(shí)時(shí)推薦會(huì)根據(jù)用戶近期的行為進(jìn)行實(shí)時(shí)調(diào)整。最后,通過(guò)模擬實(shí)驗(yàn)驗(yàn)證了本系統(tǒng)的推薦效果能基本實(shí)現(xiàn)準(zhǔn)確的推薦。

參考文獻(xiàn):

[1] 閆四洋,胡昌平,卞德志,等.基于SpringBoot+MongoDB的微服務(wù)日志系統(tǒng)的實(shí)現(xiàn)[J].計(jì)算機(jī)時(shí)代,2020(8):69-71,74.

[2] 李垚周,李光明.分布式數(shù)據(jù)清洗系統(tǒng)設(shè)計(jì)[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2020(2):60-62.

[3] 倪紅軍.基于MVP模式的Android應(yīng)用開發(fā)研究[J].電子設(shè)計(jì)工程,2018,26(11):6-9,13.

[4] 劉均.基于隱語(yǔ)義模型的個(gè)性化推薦算法的研究[D].重慶:重慶郵電大學(xué),2019.

[5] 薛琳蘭.基于大數(shù)據(jù)技術(shù)的電商推薦系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].青島:青島大學(xué),2020.

[6] 遲玉良,祝永志.項(xiàng)目相似度與ALS結(jié)合的推薦算法研究[J].軟件導(dǎo)刊,2018,17(6):81-84.

[7] 字鳳芹,牛進(jìn),畢柱蘭,等.基于圖數(shù)據(jù)庫(kù)的電影推薦系統(tǒng)設(shè)計(jì)[J].軟件導(dǎo)刊,2016,15(1):144-146.

[8] 陳明,孫麗麗.移動(dòng)電話內(nèi)容服務(wù)系統(tǒng)的個(gè)性化推薦[J].計(jì)算機(jī)工程與應(yīng)用,2007(4):4-6,39.

【通聯(lián)編輯:謝媛媛】

猜你喜歡
推薦系統(tǒng)
基于用戶偏好的信任網(wǎng)絡(luò)隨機(jī)游走推薦模型
基于Mahout分布式協(xié)同過(guò)濾推薦算法分析與實(shí)現(xiàn)
基于Baseline SVD主動(dòng)學(xué)習(xí)算法的推薦系統(tǒng)