• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于動態(tài)時序的特征復(fù)合協(xié)同過濾算法

      2018-11-19 11:05:08汪麗君
      軟件導(dǎo)刊 2018年11期
      關(guān)鍵詞:偏置特征向量矩陣

      龔 成,王 潔,汪麗君

      (北京工業(yè)大學(xué) 信息學(xué)部,北京 100124)

      0 引言

      推薦系統(tǒng)是目前最有發(fā)展和應(yīng)用前景的系統(tǒng),推薦引擎已經(jīng)在電子商務(wù)(例如 Amazon、淘寶、京東等)和一些基于用戶娛樂的社會化站點(包括音樂、電影和圖書,例如愛奇藝、豆瓣等)上取得了成功。目前推薦系統(tǒng)主要分為兩大類,分別是基于內(nèi)容的推薦系統(tǒng)和基于協(xié)同過濾技術(shù)的推薦系統(tǒng)。

      協(xié)同過濾技術(shù)(Collaborative Filtering,CF)[1]是推薦系統(tǒng)中應(yīng)用最早和最為成功的技術(shù)之一,但是隨著商務(wù)網(wǎng)站結(jié)構(gòu)的復(fù)雜化,商品信息和用戶量與日俱增,協(xié)同過濾技術(shù)面臨一系列挑戰(zhàn),主要存在實時性差、數(shù)據(jù)稀疏以及推薦質(zhì)量低等問題[2]。原因主要是用戶不能產(chǎn)生足夠多的有效數(shù)據(jù)。

      基于隱因子模型的協(xié)同過濾算法是目前解決上述問題應(yīng)用最廣泛的模型。其中,在解決原始矩陣稀疏性問題上,Sarwar等[3]提出利用單值分解對原始稀疏數(shù)據(jù)進(jìn)行處理,將矩陣分解到較低維的稠密矩陣;Salakhutdunov等[4-5]提出概率矩陣分解用來解決稀疏性,并將其與受限玻爾茲曼機(jī)線性結(jié)合,取得了不錯效果。在處理推薦質(zhì)量低問題上,Weston等[6]通過對用戶模型建立多維度特征集,描述用戶不同的興趣,與項目匹配的最大興趣進(jìn)行推薦,模型是一個非線性的隱因子模型。為解決協(xié)同過濾中實時性差和推薦質(zhì)量低的問題,沈鍵等[7]提出基于滾動時間窗的動態(tài)協(xié)同過濾推薦模型,提高了協(xié)同過濾算法的時效性;項亮[8]將時間信息作為第三個維度,然后利用張量分解方式將動態(tài)變化模型化。上述兩種模型僅僅模擬了數(shù)據(jù)隨時間變化的程度,而沒有研究連續(xù)時間內(nèi)數(shù)據(jù)的動態(tài)變化以及預(yù)測未來時間內(nèi)的推薦結(jié)果。

      基于隱因子模型的協(xié)同過濾算法,主要技術(shù)是通過矩陣分解(Matrix Factorization,MF)對項目評分進(jìn)行預(yù)測,其中最常見的是奇異值分解(Singular Value Decomposition,SVD)算法。Koren等[9]改進(jìn)SVD算法并提出新的SVD++算法,在原算法中加入用戶行為的顯示因子記錄,使得算法精確度得到較大提升。但該算法無法處理未來時間的動態(tài)變化,且忽略了用戶個體的特征信息[10]。

      因此,本文在此基礎(chǔ)上改進(jìn)SVD++算法[11],加入含有動態(tài)時序因子的用戶偏置和項目偏置[12],同時在算法中加入用戶的特征信息影響因子(性別、年齡、職業(yè)),提出一種新的SpecialTSVD++算法。實驗結(jié)果表明,SpecialTSVD++算法對時間動態(tài)變化帶來的推薦影響進(jìn)行了優(yōu)化處理[13],訓(xùn)練集在算法訓(xùn)練過程中求得的參數(shù)都與時間相關(guān),推薦結(jié)果更加貼近用戶當(dāng)前需求,顯著提升了推薦系統(tǒng)準(zhǔn)確率。

      1 SVD++算法

      推薦系統(tǒng)旨在預(yù)測用戶對未知項目的偏好程度,可以轉(zhuǎn)化為矩陣填充問題,推薦過程中用戶評分?jǐn)?shù)據(jù)分布在一個二維評分矩陣中[14]。數(shù)據(jù)用二元組 (rui,tui) 表示,其中rui表示用戶u對項目i的評分?jǐn)?shù)據(jù),tui表示當(dāng)時的評分時間,如果用戶對項目沒有評分,則矩陣中對應(yīng)項的值為空[15]。推薦系統(tǒng)通過預(yù)測評分矩陣中的缺失值達(dá)到推薦目的。

      處理協(xié)同過濾中矩陣分解問題時,目前研究都集中在基于梯度下降的矩陣分解模型[16]。該模型表示:單個用戶和項目可以通過一組維數(shù)相同的潛在特征向量建模[17],而單個用戶對項目的評分可以通過用戶特征向量pu和項目特征向量qi的點乘建模,如式(1)所示。

      (1)

      因為模型在時間復(fù)雜度和空間復(fù)雜度上都有較大優(yōu)勢[18],且預(yù)測精度得到提高,所以在此基礎(chǔ)上研究人員提出了很多改進(jìn)模型,其中效果最優(yōu)的是SVD模型[19]。SVD模型是在矩陣分解模型的基礎(chǔ)上加入基準(zhǔn)預(yù)測,如式(2)所示。

      (2)

      其中,μ表示全局平均分,bu是用戶u的偏置(bias),表示此用戶相對于全局平均分的偏差;bi是項目i的偏置,表示此項目相對于全局平均分的偏差;pu表示用戶u的潛在因子特征向量,qi表示項目i的潛在因子特征向量,該兩個特征向量的內(nèi)積表示用戶與項目的相互影響作用大小。

      SVD++算法模型相對于SVD更加精細(xì),該模型在SVD基礎(chǔ)上加入了隱式數(shù)據(jù)表達(dá)的物品興趣偏好[20]。用戶對項目評分類型的數(shù)據(jù)為顯式數(shù)據(jù),而用戶的行為數(shù)據(jù),如瀏覽電影詳情頁、觀看電影等,稱為隱式數(shù)據(jù)[21]。隱式數(shù)據(jù)反映了用戶的興趣偏好,即隱式反饋。而在現(xiàn)實推薦系統(tǒng)中,隱式數(shù)據(jù)才是主體數(shù)據(jù)。于是評分變?yōu)轱@式興趣+偏置+隱式反饋,用戶興趣=顯式興趣+隱式反饋,新的評分公式如式(3)所示。

      (3)

      式(3)中,N(u)表示用戶u的行為項目集,即用戶評價過的所有項目集合;yj表示項目j所表達(dá)的隱式反饋。此即為SVD++在SVD的基礎(chǔ)上加入隱式反饋因素,更細(xì)致地表達(dá)了用戶興趣。

      2 改進(jìn)SpecialTSVD++算法

      隨著時間的延續(xù),用戶對項目的喜好以及項目受歡迎程度都會發(fā)生變化[22],但是SVD++模型中并沒有考量時間對于用戶以及項目的影響,因為傳統(tǒng)SVD++模型中所有參數(shù)不包含時間變量,所有參數(shù)都由梯度下降直接求得,在迭代過程中所有參數(shù)變化都是梯度下降的過程。上文提到評分矩陣的基本數(shù)據(jù)是二元組形式 (rui,tui)[23],原本評分矩陣的數(shù)據(jù)稀疏性會影響推薦的準(zhǔn)確性,所以推薦模型更應(yīng)該考慮如何利用已有數(shù)據(jù)對推薦結(jié)果產(chǎn)生積極影響。本文在SVD++模型基礎(chǔ)上加入了時間因子,用來體現(xiàn)用戶偏置、項目偏置和用戶偏好特征向量隨時間的變化,主要實現(xiàn)過程是把原來的參數(shù)擬合成時間函數(shù)形式,并且在SpecialTSVD++算法中加入用戶屬性,可以為用戶提供更加個性化的推薦。用戶屬性可以通過數(shù)據(jù)集中的注冊信息表得到,本文從中提取年齡、性別和職業(yè)3個屬性,用加權(quán)方式豐富了平均分μ的概念,提升了SpecialTSVD++算法的容錯率。

      2.1 融入動態(tài)時序的SpecialTSVD++算法

      SpecialTVD++算法改進(jìn)了SVD++算法中3個受時間影響較大的參數(shù),分別是bu、bi和pu。用戶偏置bu會隨時間變化而變化,例如,一個傾向于對普通電影評分為4分的用戶,現(xiàn)在對一部同類電影評分3分,反映了幾個可能因素:用戶評分過程中的自然漂移;最近給出的其它評分與該評分之間的關(guān)系;一個家庭中評分者的身份隨時間而變化。對于項目偏置bi,項目受外界事件影響可能變得流行或者過時,例如若老電影中的普通演員出名了,則該電影的平均評分也會隨之提高。用戶偏好pu是時間變化過程中必須考量的參數(shù),因為用戶本身是隨時間變化的,所以用戶偏好一定是隨時間變化的,例如小時候偏向于看動畫片,成年之后偏向于看科幻片。SpecialTSVD++算法使用時間函數(shù)分別表示上述3個參數(shù)的時間變化,改進(jìn)的評分公式如式(4)所示。

      (4)

      其中,bu(t)、bi(t)和pu(t)是分別對應(yīng)的時間函數(shù),下文將分別詳細(xì)介紹各函數(shù)的組成部分和參數(shù)構(gòu)成。

      2.1.1 融入動態(tài)時序的用戶偏置

      (5)

      其中,sgn( )為符號函數(shù),βu的值由交叉驗證選取;式(5)定義了時間偏差后,bu(t)函數(shù)表示在原本的用戶偏置上因為時間推移會產(chǎn)生偏差,所以定義成式(6)。

      bu(t)=bu+αu·devu

      (6)

      其中,bu為固定部分,αu·devu為隨時間變化的部分。對每個用戶選取一個對應(yīng)的新參數(shù)αu,該參數(shù)也將加入梯度下降的訓(xùn)練中。

      2.1.2 融入動態(tài)時序的項目偏置

      項目受歡迎程度會隨時間變化,因為隨時間推移,某個項目可能會在特定環(huán)境下有新的定義,此時對該項目的評分會明顯提高或下降。以本文數(shù)據(jù)集中的電影為例,在時間較小的區(qū)間內(nèi),評分的波動不會很大,但是在一段較長時間里,如分散在兩個月之中,評分對比會有明顯波動。因此,為項目偏置擬合一個新函數(shù)以描述項目偏置隨時間的變化,如式(7)所示。

      (7)

      bi(t)=bi+αi·devi

      (8)

      2.1.3 融入動態(tài)時序的用戶偏好特征向量

      上文為基準(zhǔn)預(yù)測中的用戶偏置和項目偏置加入了動態(tài)時序,然而,如果考量時間對偏置的影響,就必須考慮時間對用戶和項目交互的影響。用戶會隨時間改變偏好,例如,“心理驚悚劇”粉絲可能會在一年后成為“犯罪劇”粉絲,同樣,用戶會隨時間改變對某些演員或?qū)а莸目捶?。對于該類影響,本文通過將用戶偏好特征向量(向量pu)作為時間函數(shù)進(jìn)行建模。

      事實上,該時間變化相比上文提到的單獨完整的用戶偏置,是很難捕捉的,因為用戶特征偏好被分成大量的偏好因子,所以采取為每個因子建模的方式,表示為pu(t)T=(pu(t)[1],pu(t)[2],…,pu(t)[f]),然后對于每個因子pu(t)[k],使用與用戶時間偏置相同的方法建模,如式(9)所示。

      pu(t)[k]=puk+αuk·devu

      (9)

      其中,puk作為固定部分,αuk·devu作為隨時間變化的部分。

      2.2 融入用戶特征的SpecialTSVD++算法

      傳統(tǒng)的推薦系統(tǒng)僅通過用戶歷史評分行為進(jìn)行推薦,面臨的問題是數(shù)據(jù)量過少、推薦精確度較低。用戶注冊信息往往包含用戶潛在的興趣,比如,男性用戶和女性用戶的評分不同,不同年齡段以及不同職業(yè)的評分也不相同。本文數(shù)據(jù)集包含一張單獨的用戶信息數(shù)據(jù)表,其中包括用戶編號、性別、年齡以及職業(yè)等信息,在上文基礎(chǔ)上融入以上信息從而得到最終的SpecialTSVD++模型,提高了推薦質(zhì)量。

      2.2.1 融入用戶特征信息的評分預(yù)測

      用戶特征信息主要是用戶注冊信息,包括3種:用戶性別、用戶年齡和用戶職業(yè)。通過實驗發(fā)現(xiàn),特征信息不同的用戶對電影評分的平均分也不一樣。例如,男性用戶平均分在3.56左右,而女性用戶平均分在3.62左右;18歲以下用戶平均分在3.55左右,而50歲以上用戶平均分在3.76左右?;谝陨蠑?shù)據(jù),對上文全局平均分μ進(jìn)行如式(10)的改進(jìn)。

      μ=ω1μall+ω2μage+ω3μsex+ω4μoccupation

      (10)

      2.3 模型優(yōu)化與算法描述

      由上文所述,本文算法在SVD++算法基礎(chǔ)上分別加入時間信息和用戶特征信息,兩者融合最后得到SpecialTSVD++完整的預(yù)測評分公式,如式(11)所示。

      (11)

      SpecialSVD++算法的訓(xùn)練過程如下:

      基于動態(tài)時序的復(fù)合協(xié)同過濾算法SpecialTSVD++算法

      輸入:訓(xùn)練數(shù)據(jù)集Movielens-10m,特征向量維數(shù)f,迭代次數(shù)n

      輸出:參數(shù)值,RMSE

      訓(xùn)練階段:

      for(iteration=0;iteration

      foreach(u,i)∈Dtrain

      //對模型中每個參數(shù)梯度下降

      bu=bu+η(eui-λ1bu)

      bi=bi+η(eui-λ1bi)

      αu=αu+η(eui×devu-λ1αu)

      αi=αi+η(eui×devi-λ1αi)

      //對用戶項目特征向量進(jìn)行迭代更新

      for(k=0;k

      puk=puk+η(eui×qik-λ2puk)

      qik=qik+η[eui×(puk+sqrtNum×Sumyjk)-λ2qik]

      yjk=yjk+η(eui×sqrtNum×qik-λ2yjk)

      αuk=αuk+η(eui×qik×devuk-λ2αuk)

      end for

      end foreach

      end for

      η=0.4

      3 實驗結(jié)果及分析

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

      本文數(shù)據(jù)集使用的是Movielens-10m,包含1 000 209條評分?jǐn)?shù)據(jù),來自6 040個用戶對大約3 900部電影的評分,并且每名用戶至少對20部電影進(jìn)行了評分。此外,該數(shù)據(jù)集還包含了用戶注冊信息表,注冊信息主要有性別、年齡和職業(yè)。本文將此數(shù)據(jù)集隨機(jī)劃分為訓(xùn)練集和測試集,其中,訓(xùn)練集占整個數(shù)據(jù)集的80%,測試集占20%。

      3.2 度量標(biāo)準(zhǔn)

      采用均方根誤差(Root mean square error,RMSE)作為推薦準(zhǔn)確性的評價標(biāo)準(zhǔn),RMSE值越小,算法精確度越高,RMSE定義為公式(12)。

      (12)

      3.3 實驗結(jié)果對比

      在相同數(shù)據(jù)集的情況下,對SVD、SVD++和SpecialTSVD++算法作對比實驗,在特征維度變化情況下對比各個模型RMSE的結(jié)果,實驗結(jié)果如表1所示。

      表1 實驗結(jié)果

      如表1所示,隨著特征向量維數(shù)增多,RMSE的值會降低,3種算法都有一定提升,但是算法的學(xué)習(xí)時間也會隨之變長。從實驗結(jié)果看,改進(jìn)的SpecialTSVD++算法在特征向量維度由10增加到200的過程中,RMSE的值始終在降低,且跟同類型SVD算法和SVD++算法相比,在特征向量維度增高過程中,RMSE的值始終比兩個算法低大約0.02。最終,SpecialTSVD++算法在特征向量維度為200時,RMSE達(dá)到0.872 2,其推薦精度明顯優(yōu)于SVD和SVD++算法。

      4 結(jié)語

      傳統(tǒng)的推薦算法在面對當(dāng)今信息時代數(shù)據(jù)快速更迭時,無法根據(jù)時間產(chǎn)生精準(zhǔn)推薦,本文由此在SVD++算法基礎(chǔ)上進(jìn)行改進(jìn),提出了一種SpecialTSVD++算法。SpecialTSVD++算法可以滿足未來時間里的動態(tài)變化,并且結(jié)合用戶個體特征,將傳統(tǒng)的SVD++算法與動態(tài)時序相結(jié)合,解決了傳統(tǒng)算法中實時性差和推薦質(zhì)量低的問題。通過在Movielens-10M數(shù)據(jù)集上實驗,對比傳統(tǒng)的SVD和SVD++算法,SpecialTSVD++算法在推薦效果和推薦精度上都有明顯提升。

      猜你喜歡
      偏置特征向量矩陣
      二年制職教本科線性代數(shù)課程的幾何化教學(xué)設(shè)計——以特征值和特征向量為例
      基于40%正面偏置碰撞的某車型仿真及結(jié)構(gòu)優(yōu)化
      基于雙向線性插值的車道輔助系統(tǒng)障礙避讓研究
      中國信息化(2022年5期)2022-06-13 11:12:49
      克羅內(nèi)克積的特征向量
      一類特殊矩陣特征向量的求法
      EXCEL表格計算判斷矩陣近似特征向量在AHP法檢驗上的應(yīng)用
      一級旋流偏置對雙旋流杯下游流場的影響
      初等行變換與初等列變換并用求逆矩陣
      矩陣
      南都周刊(2015年4期)2015-09-10 07:22:44
      矩陣
      南都周刊(2015年3期)2015-09-10 07:22:44
      蒙阴县| 观塘区| 仙桃市| 肃宁县| 承德县| 常州市| 乌拉特前旗| 乳源| 大同市| 徐汇区| 卢湾区| 来宾市| 德钦县| 清远市| 德州市| 湟中县| 安徽省| 伽师县| 凤冈县| 宁陕县| 景德镇市| 丹凤县| 高要市| 玉溪市| 石渠县| 湖北省| 临高县| 宁晋县| 乃东县| 获嘉县| 九江县| 临清市| 通辽市| 安陆市| 格尔木市| 嵊州市| 平遥县| 赤壁市| 屏南县| 晋宁县| 石棉县|