• 
    

    
    

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

      加入用戶和項(xiàng)目屬性的奇異值分解推薦算法

      2021-04-23 01:41:00梁京章
      裝備制造技術(shù) 2021年12期
      關(guān)鍵詞:顯性隱性矩陣

      李 浩,潘 瑩,梁京章

      (1.廣西大學(xué) 電氣工程學(xué)院,廣西 南寧 530004;2.廣西大學(xué) 信息網(wǎng)絡(luò)中心,廣西 南寧 530004)

      0 引言

      在當(dāng)今數(shù)據(jù)化時(shí)代,海量信息的不斷產(chǎn)生和傳播的同時(shí),也使我們面臨著嚴(yán)重的“信息過載”問題[1]。如在電子商務(wù)領(lǐng)域,在面對(duì)海量商品的情況下,一方面商家希望能將自己的物品及時(shí)推薦給需要的用戶,另一方面用戶希望能夠準(zhǔn)確快速找到自己感興趣商品。推薦系統(tǒng)的出現(xiàn)為解決這一問題提供了方法。在各種推薦技術(shù)中。協(xié)同過濾(Collaborative Filtering,CF)[2]是最成功的個(gè)性化推薦算法。協(xié)同過濾推薦算法的主要思想是通過用戶-項(xiàng)目的評(píng)分矩陣來計(jì)算用戶之間的相似度并實(shí)現(xiàn)為目標(biāo)用戶的相關(guān)推薦。目前協(xié)同過濾算法主要?jiǎng)澐譃榛谀P停╩odel-based)的推薦和基于鄰域(memory-based)的推薦2 種[3]。其中基于模型的協(xié)同過濾算法中,基于矩陣分解的推薦算法應(yīng)用最為廣泛[4],其具有良好的推薦性能,且對(duì)于大規(guī)模評(píng)分?jǐn)?shù)據(jù)有著優(yōu)秀的處理能力。

      文獻(xiàn)[5]中利用奇異值分解(Singule Value Decomposition,SVD)來進(jìn)行矩陣分解,但SVD 算法存在當(dāng)數(shù)據(jù)稀疏時(shí)無法正常運(yùn)行的問題,需要對(duì)稀疏矩陣進(jìn)行補(bǔ)全,計(jì)算復(fù)雜度高。為解決這一問題,在Netflix Prize 大賽中,Simon Funk 提出了Funk-SVD 算法。該算法僅對(duì)已存在的數(shù)據(jù)進(jìn)行處理,可直接對(duì)稀疏矩陣進(jìn)行分解;Koren 在Funk-SVD 算法的基礎(chǔ)上加入了用戶的歷史行為,提出了SVD++算法[6],使得推薦效果進(jìn)一步提升。文獻(xiàn)[7]將時(shí)間效應(yīng)引入SVD++算法中,提出了timeSVD++LR 算法,有效提高了模型的預(yù)測準(zhǔn)確度。文獻(xiàn)[8]將社會(huì)信任關(guān)系加入矩陣分解模型中,提出了TrustSVD 算法,文獻(xiàn)[9]在TrustSVD 算法的基礎(chǔ)上融入了用戶之間的隱式信任關(guān)系,對(duì)TrustSVD 算法作了進(jìn)一步改進(jìn),提高了該算法的推薦精度。文獻(xiàn)[10]將BiasSVD 算法與聚類算法結(jié)合,有效地改善了用戶-項(xiàng)目矩陣的可擴(kuò)展性問題,提高了評(píng)分預(yù)測的準(zhǔn)確度。

      上述算法都證明了SVD 算法以及其相關(guān)改進(jìn)算法能夠有效地從用戶-項(xiàng)目矩陣中挖掘出用戶和項(xiàng)目隱藏特征信息,但都較少地考慮或忽略了用戶和項(xiàng)目自身的屬性信息,而用戶或項(xiàng)目的顯性特征對(duì)于推薦效果是存在影響的,例如,十五歲的女孩和三十歲的成年男性在推薦選擇上是存在較大差異的,因此,本研究在BiasSVD 算法的基礎(chǔ)上提出加入用戶和項(xiàng)目屬性的奇異值分解(UIA-SVD)推薦算法,將用戶和項(xiàng)目的屬性信息加入到BiasSVD 算法中,并提出一種新的相似度計(jì)算方法,對(duì)用戶和項(xiàng)目的屬性信息賦予合適的權(quán)重,計(jì)算出最相似用戶集和項(xiàng)目集,對(duì)求得的集合繼續(xù)使用BiasSVD 算法得出最終的TopN 推薦。同時(shí),引入用戶和項(xiàng)目的屬性,可以在用戶或項(xiàng)目冷啟動(dòng)問題出現(xiàn)時(shí),提供一定的數(shù)據(jù)支持,減輕冷啟動(dòng)帶來的影響。

      1 BiasSVD 模型

      對(duì)于擁有M個(gè)用戶,N個(gè)項(xiàng)目的用戶- 項(xiàng)目矩陣A,其中元素au,i為用戶u對(duì)項(xiàng)目i的評(píng)分。

      SVD 算法的基本原理是將矩陣A分解為3 個(gè)低秩矩陣U、S、V:

      SVD 算法在使用時(shí)要求矩陣A稠密,但在實(shí)際應(yīng)用過程中,所獲得的用戶-項(xiàng)目矩陣多為稀疏矩陣,因此,若要使用SVD 算法就必須手動(dòng)填充矩陣,但這樣的矩陣就可能會(huì)失真,從而影響推薦結(jié)果,而且對(duì)于高階稠密矩陣,使用SVD 算法計(jì)算復(fù)雜,效率低下。

      Funk-SVD 算法為改進(jìn)SVD 算法的效率問題,將矩陣A分解為兩個(gè)低維矩陣P、Q:

      式中:P為用戶k×m階隱性特征矩陣,Q為物品k×n階隱性特征矩陣,F(xiàn)unk-SVD 算法將矩陣A中未評(píng)分項(xiàng)的位置權(quán)重設(shè)置為0,存在評(píng)分的設(shè)置為1,因此Funk-SVD 算法可以直接對(duì)稀疏的評(píng)分矩陣進(jìn)行計(jì)算,用戶u對(duì)項(xiàng)目i的預(yù)測評(píng)分可表示為:

      BiasSVD 算法就是對(duì)上述Funk-SVD 算法加入了偏置項(xiàng)的改進(jìn),即將用戶u對(duì)項(xiàng)目i的預(yù)測評(píng)分改為:

      式中μ為訓(xùn)練集中所有已知評(píng)分的全局平均數(shù),表示訓(xùn)練集中數(shù)據(jù)的總體評(píng)分水平,bu為用戶的評(píng)分偏差,bi為物品的得分偏差;bu表示為某一用戶的評(píng)分習(xí)慣,用戶給出的評(píng)分低,并不一定代表用戶對(duì)該物品的喜好程度低,可能是該用戶對(duì)所有物品都普遍給予低分;bi表示為某一物品的得分情況,同一物品可能存在其他方面的差異,如質(zhì)量好的物品得分普遍會(huì)比質(zhì)量差的物品得分高。

      則實(shí)際評(píng)分au,i與預(yù)測評(píng)分的誤差為:

      損失函數(shù)為(為防止過擬合,增加正則項(xiàng)):

      根據(jù)梯度下降法來逐步減小損失函數(shù),令更新步長為γ,則可得到pu,qi,bu,bi的迭代公式:

      2 UIA-SVD 推薦算法

      以電影推薦系統(tǒng)為例,介紹UIA-SVD 推薦算法的主要內(nèi)容,場景為目標(biāo)用戶甲剛看完一部電影X,現(xiàn)需要為用戶甲推薦一部電影。

      2.1 用戶顯性特征信息

      在現(xiàn)如今的電影推薦系統(tǒng)中,用戶在初始注冊時(shí),一般需要填寫年齡、性別、職業(yè)等個(gè)人基本信息,這些信息反映了用戶的顯性特征。例如,用戶一為三十歲女教師,用戶二和用戶三同為二十歲男大學(xué)生,用戶二和用戶三之間大概存在更多的觀影愛好,因此,可以看出用戶的顯性特征信息對(duì)于推薦效果存在一定的影響。用戶的顯性特征信息相似度計(jì)算步驟如下:

      (1)基于用戶年齡的相似度計(jì)算

      年齡差距越小的用戶可能具有更多的觀影愛好,文獻(xiàn)[11]將不同用戶的年齡差距閾值設(shè)為5,設(shè)用戶u的年齡為Du,用戶v的年齡為Dv,則用戶的年齡相似度Sim(u,v)a為:

      (2)基于用戶性別的相似度計(jì)算

      性別不同對(duì)于電影的興趣偏好也會(huì)存在較大的差異。設(shè)用戶u的性別為Gu,用戶v的性別為Gv,則用戶的性別相似度Sim(u,v)b為:

      (3)基于用戶職業(yè)的相似度計(jì)算

      用戶的職業(yè)環(huán)境也會(huì)對(duì)用戶對(duì)電影的偏好產(chǎn)生影響,設(shè)用戶u的職業(yè)為Ju,用戶v的職業(yè)為Jv,則用戶的職業(yè)相似度Sim(u,v)c為:

      2.2 用戶的相似度計(jì)算

      通過式(4)得到用戶u的隱性特征pu,用戶v的隱性特征pv,通過用戶-項(xiàng)目矩陣,可以得到每一個(gè)用戶觀看過的電影總數(shù)F,通過式(4)可以得出用戶的隱性特征p會(huì)受到用戶所看過的電影總數(shù)F的影響,F(xiàn)越大,用戶的隱性特征p所包含的隱藏信息越真實(shí)。因此需要將用戶的觀看次數(shù)引入用戶的隱性特征中,用戶u的隱性特征du:

      利用余弦相似度[12]計(jì)算得到用戶的隱性特征相似度Sim(u,v)d為:

      通過式(11)得到年齡相似度Sim(u,v)a,式(12)得到性別相似度Sim(u,v)b,式(13)得到職業(yè)相似度Sim(u,v)c,則用戶u和用戶v的相似度計(jì)算為:

      其中α1+α2+α3+α4=1,α1、α2、α3、α4∈[0,1],分別為不同屬性的權(quán)重。

      2.3 項(xiàng)目顯性特征信息

      在電影推薦系統(tǒng)中,電影的顯性特征包含如主演、電影類型等電影的基本信息。用戶可能會(huì)因?yàn)橄矚g某一位演員而去找該演員主演的電影。因此可以看出電影的顯性特征信息對(duì)于推薦效果也存在一定的影響。電影的顯性特征信息相似度計(jì)算步驟如下:

      (1)基于電影的主演、類型的相似度計(jì)算

      一部電影的主演可能不止一位,類型不止一種。設(shè)電影x的主演為集合φx,類型為集合ζx;電影y的主演為集合φy,類型為集合ζy;則電影的主演相似度Sim(x,y)a為:

      電影的類型相似度Sim(x,y)b為:

      2.4 項(xiàng)目的相似度計(jì)算

      形如式(14),式(15),項(xiàng)目的隱性特征q受到對(duì)該項(xiàng)目有歷史行為的用戶總數(shù)E的影響,項(xiàng)目x的隱性特征gx為:

      電影x和電影y的隱性特征相似度Sim(x,y)c為:

      則電影x和電影y的相似度計(jì)算為:

      其中β1+β2+β3=1,β1、β2、β3?[0,1],分別為不同屬性的權(quán)重。

      2.5 TopN 推薦

      由公式(15)求出目標(biāo)用戶甲與其他用戶的相似程度并排序,從中選取前K名用戶作為目標(biāo)用戶的最相似用戶集R。同理由公式(19)求出電影X與其他電影的相似程度并排序,從中選取前K部且用戶甲未看過的電影作為電影X的最相似電影集H。

      找到用戶集R內(nèi)用戶r的pr,br(r?R),電影集H內(nèi)電影h的qh,bh(h?H),利用公式(4)求得則目標(biāo)用戶甲最終對(duì)電影集H內(nèi)電影h的評(píng)分預(yù)測為:

      將電影集H內(nèi)的前N項(xiàng)電影推薦給目標(biāo)用戶。其中K > N。

      2.6 算法流程

      UIA-SVD 推薦算法的流程如圖1 所示。

      圖1 算法流程圖

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

      3.1 實(shí)驗(yàn)設(shè)計(jì)

      本研究的數(shù)據(jù)使用美國Minnesota 大學(xué)創(chuàng)辦的2個(gè)公開數(shù)據(jù)集:MovieLens-ml-latest-small,見表1。實(shí)驗(yàn)將數(shù)據(jù)集的80%數(shù)據(jù)用作實(shí)驗(yàn)的訓(xùn)練,20%數(shù)據(jù)用作測試。實(shí)驗(yàn)對(duì)UIA-SVD 推薦算法在數(shù)據(jù)集上分別基于正則化的RSVD 算法[13],SVD++算法、timeSVD++LR 算法進(jìn)行對(duì)比實(shí)驗(yàn)。

      表1 數(shù)據(jù)集表述

      3.2 實(shí)驗(yàn)配置

      硬件環(huán)境:

      (1)Windows10

      (2)CPU:Intel7 代6700k

      (3)內(nèi)存16G

      軟件環(huán)境:Pycharm

      Python3.7

      3.3 算法評(píng)價(jià)指標(biāo)

      文獻(xiàn)[14]對(duì)推薦算法領(lǐng)域內(nèi)的多種評(píng)價(jià)指標(biāo)做了總結(jié),本文將使用平均絕對(duì)誤差(Mean Absolute Deviation,MAE)、均 方 根 誤 差(Root Mean Square Error,RMSE)作為實(shí)驗(yàn)指標(biāo)[15]:

      其中N為測試集項(xiàng)目的數(shù)量,X表示對(duì)項(xiàng)目的預(yù)測評(píng)分,Y表示用戶的實(shí)際評(píng)分。MAE,RMSE 的數(shù)值越小,算法的推薦效果越好。

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

      (1)實(shí)驗(yàn)一

      最相似用戶集和最相似目標(biāo)集內(nèi)成員的個(gè)數(shù)直接影響到最終對(duì)評(píng)分的預(yù)測,所以需要通過實(shí)驗(yàn)來選取最佳個(gè)數(shù)K,來保證最終的推薦效果。

      通過固定單值,調(diào)參步進(jìn)的方法來分別確定式(16),式(21)中不同權(quán)重的最佳取值。

      實(shí)驗(yàn)一結(jié)果如圖2、圖3 所示。

      圖2 參數(shù)K 對(duì)RMSE 的影響

      圖3 參數(shù)K 對(duì)MAE 的影響

      從圖1 和圖2 中可以看出,隨著K值的增大,MAE 和RMSE 最終都趨于平緩,對(duì)于最相似用戶集的K和最相似項(xiàng)目集的K的最佳取值并不相同,對(duì)于最相似用戶集,K的最佳取值為40,對(duì)于最相似項(xiàng)目集,K的最佳取值為50。并求得最佳推薦效果下;式(15)中的權(quán)重分別為α1≈0.5、α2≈0.1、α3≈0.1、α4≈0.3。式(21)中的權(quán)重β1≈0.2、β2≈0.4、β3≈0.4。

      (2)實(shí)驗(yàn)二

      UIA-SVD 算 法 與RSVD 算 法、SVD++ 算 法、timeSVD++LR 算法的對(duì)比實(shí)驗(yàn)。在MovieLens 數(shù)據(jù)集上,令各算法學(xué)習(xí)率= 0.002,矩陣分解維度= 20,測試不同的迭代次數(shù)下,各算法的推薦效果。實(shí)驗(yàn)結(jié)果如圖4,圖5 所示。

      圖4 不同迭代次數(shù)下各算法的MAE 比較

      圖5 不同迭代次數(shù)下各算法的RMSE 比較

      從圖4 和圖5 可以看出相比較其他算法,UIA-SVD 算法的MAE 和RMSE 值較小,其MAE 在迭代次數(shù)為80 時(shí),UIA-SVD 算法的RMSE 值達(dá)到最小,約為0.857,當(dāng)?shù)螖?shù)達(dá)到100 時(shí),UIA-SVD 算法的MAE 值達(dá)到最小,約為0.664。實(shí)驗(yàn)說明在BiasSVD 算法中加入用戶和項(xiàng)目的屬性信息能進(jìn)一步提高算法的推薦效果。

      4 結(jié)束語

      本文提出一種加入用戶和項(xiàng)目屬性的奇異值分解推薦算法。在BiasSVD 算法模型中加入用戶和項(xiàng)目的顯性特征,再利用改進(jìn)的相似度計(jì)算方法求得目標(biāo)用戶和項(xiàng)目的最相近用戶集和最相近項(xiàng)目集,最終根據(jù)算法模型求得預(yù)測評(píng)分。實(shí)驗(yàn)結(jié)果表明,UIA-SVD算法的推薦效果較傳統(tǒng)矩陣分解算法有明顯提高,同時(shí)能較好地改善推薦系統(tǒng)的冷啟動(dòng)問題。下一步將在本算法的基礎(chǔ)上研究其他的屬性關(guān)系對(duì)推薦系統(tǒng)的影響。

      猜你喜歡
      顯性隱性矩陣
      隱性就業(yè)歧視的司法認(rèn)定
      顯性激勵(lì)與隱性激勵(lì)對(duì)管理績效的影響
      社會(huì)權(quán)顯性入憲之思考
      初等行變換與初等列變換并用求逆矩陣
      矩陣
      南都周刊(2015年4期)2015-09-10 07:22:44
      矩陣
      南都周刊(2015年3期)2015-09-10 07:22:44
      矩陣
      南都周刊(2015年1期)2015-09-10 07:22:44
      芻議隱性采訪
      新聞傳播(2015年14期)2015-07-18 11:14:05
      新聞報(bào)道隱性失實(shí)的四種表現(xiàn)
      新聞傳播(2015年8期)2015-07-18 11:08:25
      顯性的寫作,隱性的積累——淺談學(xué)生寫作動(dòng)力的激發(fā)和培養(yǎng)
      兴山县| 珠海市| 仁布县| 清徐县| 漳平市| 买车| 通化县| 黄山市| 泾阳县| 仪征市| 和顺县| 胶州市| 平远县| 天峻县| 剑川县| 峡江县| 沛县| 襄城县| 都江堰市| 南开区| 化隆| 荔浦县| 思南县| 崇仁县| 灵山县| 合阳县| 科技| 克什克腾旗| 武夷山市| 郴州市| 县级市| 潞城市| 门头沟区| 南宫市| 阿图什市| 新龙县| 章丘市| 奉节县| 五台县| 荔波县| 莱州市|