• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于MyMediaLite平臺的推薦方法探究

    2018-02-07 18:08:56林楠楊文淵馬伊莉朱婷婷陳圣磊
    軟件工程 2018年1期
    關(guān)鍵詞:個性化推薦協(xié)同過濾推薦系統(tǒng)

    林楠 楊文淵 馬伊莉 朱婷婷 陳圣磊

    摘 要:推薦系統(tǒng)是互聯(lián)網(wǎng)和電子商務的產(chǎn)物。它是建立在對海量數(shù)據(jù)訓練的基礎(chǔ)上的一種智能平臺,能夠向顧客提供個性化的信息服務和決策。隨著電子商務大數(shù)據(jù)的高速發(fā)展,推薦系統(tǒng)正逐漸成為學術(shù)界的研究熱點之一。針對推薦系統(tǒng)理論性強、內(nèi)容抽象的特點,本文介紹了以MyMediaLite為平臺的個性化推薦實踐方案,并詳細闡述了其具體的實施過程。通過介紹MyMediaLite的系統(tǒng)結(jié)構(gòu)框架,以及分析基于MyMediaLite的實驗過程,為研究者使用MyMediaLite推薦系統(tǒng)庫進行算法研究奠定了基礎(chǔ)。

    關(guān)鍵詞:個性化推薦;機器學習;MyMediaLite;推薦系統(tǒng);協(xié)同過濾

    中圖分類號:TP317 文獻標識碼:A

    Abstract:The recommendation system is the product of Internet and e-commerce.It is an intelligent platform built on the basis of massive data training.It provides personalized information service and decision-making to customers.With the rapid development of big data in electronic commerce,the recommendation system is becoming one of the hot topics in the academic field.In view of the highly theoretical and abstract nature of the recommendation system,this paper introduces the personalized recommending practice scheme based on MyMediaLite,and expounds its specific implementation process in detail.By introducing the system framework of MyMediaLite and analyzing the experimental process based on MyMediaLite,it establishes a foundation for researchers to conduct studies on the algorithms with MyMediaLite recommendation system library.

    Keywords:personalized recommendation;machine learning;Mymedialite;the recommendation system;collaborative

    filtering

    1 引言(Introduction)

    互聯(lián)網(wǎng)的日益普及,使得電子商務成為人們生活中不可或缺的一部分。隨著大量商品和用戶群體的涌入,電子商務系統(tǒng)中的數(shù)據(jù)量呈爆炸式增長,這便使得推薦系統(tǒng)獲得了極大的發(fā)展空間。短時間內(nèi)涌現(xiàn)出很多諸如SVDFeature[1]、MyMediaLite[2]、Apache Mahout[3]等知名的開源推薦系統(tǒng)。SVDFeature包含一個很靈活的Matrix Factorization推薦框架,能方便地實現(xiàn)奇異值分解(SVD)和改進的SVD++[4]等算法。Apache Mahout是一種能實現(xiàn)大多數(shù)分布式機器學習和數(shù)據(jù)挖掘的平臺。其中有一部分包含了推薦算法中的協(xié)同過濾算法,但大部分其他類型推薦算法并未涉及。MyMediaLite提供了多種項目預測和評級預測任務下先進的算法,以及為大多數(shù)推薦模型提供了增量式更新數(shù)據(jù)。與其他平臺相比,MyMediaLite囊括的算法與模型更加全面,對于推薦系統(tǒng)的系統(tǒng)學習和研究更有幫助。

    2 MyMediaLite推薦系統(tǒng)庫(MyMediaLite

    recommendation system library)

    2.1 MyMediaLite簡介

    MyMediaLite是由德國希爾德海姆大學基于微軟.NET平臺開發(fā)的輕量級、多用途、可拓展的推薦系統(tǒng)算法庫。它包含了包括SVD++算法、K-近鄰(KNN)[5]算法和直接優(yōu)化物品排序的矩陣分解算法(BPRMF)[6]等在內(nèi)的幾十個不同的推薦算法。除了提供了常見場景的推薦算法,MyMediaLite也有Social Matrix Factorization這樣獨特的功能。在實現(xiàn)方面,MyMediaLite推薦系統(tǒng)庫涉及了兩個最常見的任務:評級預測和項目預測。此外,精心設計的軟件框架可以使新算法的實現(xiàn)和評估更加容易。通過使用開源的Mono的項目,MyMediaLite可以在所有相關(guān)操作系統(tǒng)上使用。這個庫的使用不再僅限于C#,它可以很容易被其他語言如Ruby和Python調(diào)用。

    2.2 推薦任務

    2.2.1 評級預測

    評級預測加載的評級是用戶偏好的顯式反饋(explicit feedback)。評級可以分為1—n級,例如1—5級,5級表示用戶十分喜歡,而1級則表示不喜歡。評級預測算法根據(jù)給定的已知評級集估算未知的評級,從而推薦系統(tǒng)可以根據(jù)預測的評級進行推薦。

    MyMediaLite中包含的評級預測算法有:不同變種的K-近鄰(KNN)分類算法、簡單基線算法(Slop-One)[7]和矩陣分解算法(SVD++)等。

    評級預測下的常用的準確性度量指標:RMSE(均方根誤差)和MAE(平均絕對誤差)。endprint

    (1)RMSE:均方根誤差是均方誤差的算術(shù)平方根,如式(1)所示。其中observedt表示實際評級,predictedt表示預測評級。均方根誤差常用于衡量推薦結(jié)果與實際結(jié)果的離散程度。均方根誤差越大,表明推薦結(jié)果與實際結(jié)果離散程度越大,推薦算法越不精準。均方根誤差越小,表明推薦結(jié)果與實際結(jié)果的離散程度越小,推薦算法精度越高。

    2.2.2 項目預測

    與評級預測不同的是,項目預測加載的數(shù)據(jù)是用戶偏好的隱式反饋(implicit feedback),如用戶瀏覽頁面的時間、轉(zhuǎn)發(fā)行為、購買等。購買商品或者長時間瀏覽某個商品的頁面的行為可以很好地從側(cè)面體現(xiàn)出用戶的偏好。現(xiàn)實生活中的大多數(shù)推薦系統(tǒng)(如電子商務等)也往往并不依賴評級,它們往往根據(jù)用戶的歷史行為推測出用戶的偏好,從而推薦出與用戶偏好相一致的產(chǎn)品。

    MyMediaLite中包含的項目預測算法有:K-近鄰分類算法、簡單基線算法(Random,MostPopular)、矩陣分解算法(BPR-MF,WR-MF)等。

    項目預測下常用的準確性度量指標有:prec@N和AUC。

    (1)prec@N(precision at N): 推薦準確率表示算法推薦成功的比率,如式(3)所示。其中test表示測試集,top-N表示系統(tǒng)推薦給用戶的N個項目。

    (2)AUC(Area Under the ROC Curve):AUC被定義為ROC曲線下的面積。ROC(Receiver Operating Characteristic)有兩個指標:sensitivity(敏感度)和Specificity(特異度)[8]。前者為任選一個用戶喜歡的項目,該項目被系統(tǒng)推薦的概率;后者為任選一個用戶不喜歡的項目,該項目未被系統(tǒng)推薦的概率。設定一個域值,項目被正確推薦的概率大于域值的,認為是用戶喜歡的項目;概率小于域值的,認為是用戶不喜歡的項目。圖1所示為ROC曲線,縱坐標Sensitivity,橫坐標為1-specificity。

    Sensitivity值在0到1之間變化,給定一個域值,就對應圖中左上角的曲線上的一個點。圖中穿過原點和(1,1)點的直線表示一個隨機推薦的系統(tǒng),即任選一個用戶喜歡的項目,該項目被系統(tǒng)推薦的概率為0.5。由圖1可知,曲線越向左上角靠近,則AUC越大,說明推薦系統(tǒng)的推薦精度越高,反之則越低。

    3 基于MyMediaLite的實驗過程(Experimental

    process based on MyMediaLite)

    由于MyMediaLite使用C#進行編寫和Windows的廣泛使用,本次實驗將使用Visual Studio 2010的開發(fā)環(huán)境進行實驗。

    3.1 數(shù)據(jù)選取

    本次實驗我們使用的是推薦系統(tǒng)研究中權(quán)威的測試集MoiveLens-100k。數(shù)據(jù)集一共記錄了943名用戶對于1682部電影的100000條評級記錄(1—5)。其中每名用戶至少評論過20部電影。

    其中u.base文件中記錄的是數(shù)據(jù)集中完整的數(shù)據(jù)。它是一個制表符分隔數(shù)據(jù)的列表,每一行的數(shù)據(jù)包含用戶ID、項目、評級、時間戳。u1.base和u1.test到u5.base和u5.test則是將u.base中的完整數(shù)據(jù)按照80%/20%的比率分割成的5組訓練數(shù)據(jù)與比對數(shù)據(jù)。ua.base、ua.test和ub.base、ub.test則是按照將每個用戶10%的評級加入比對數(shù)據(jù)的規(guī)則進行分割得到的訓練數(shù)據(jù)和比對數(shù)據(jù)。訓練數(shù)據(jù)(.base)用于訓練模型,從而得到用戶的偏好,而比對數(shù)據(jù)(.test)則用于測試推薦系統(tǒng)推薦的精準度。

    需要注意的是,將MoiveLens數(shù)據(jù)集用于MyMediaLite時,RatingPrediction下的算法將截取前三列作為數(shù)據(jù)(用戶、項目、評分),而ItemRecommender下的算法將只取前兩列作為數(shù)據(jù)(用戶、項目)。

    3.2 運行配置

    MyMediaLite推薦系統(tǒng)庫是以C#源碼的形式提供給用戶使用的,它實際上是一個依賴于.NET框架的程序集。雖然源代碼的形式可以讓我們深入了解算法底層的細節(jié),從而根據(jù)業(yè)務的場景進行算法配置和調(diào)優(yōu),但這樣無疑增加了很多使用難度。在使用MyMediaLite進行推薦實驗之前,我們需要進行相關(guān)的配置。

    3.2.1 引用的動態(tài)鏈接庫文件

    打開程序集中源碼(src)文件夾下的解決方案文件MyMediaLite.sln,則可以在VS2010中查看MyMediaLite的解決方案。通過項目MyMediaLite,可以對MyMediaLite推薦算法庫中算法的源碼進行查看。

    MyMediaLite項目需要四個類庫文件的支持:C5、MathNet.Numerics、MathNet.Numerics.IO和Mono.Posix。

    需要注意的是,MyMediaLite推薦算法庫的發(fā)行版不會自帶Mono.Posix的庫文件,需要用戶自行下載并引用,否則項目將無法通過之后的編譯。

    3.2.2 動態(tài)鏈接庫文件的生成

    將MyMediaLite項目生成,之后便可以在src/MyMediaLite/bin/Debug目錄下找到生成的MyMediaLite.dll、MyMediaLite.pdb和項目引用的庫文件。

    動態(tài)鏈接庫文件(.dll)為我們使用MyMediaLite推薦系統(tǒng)庫提供了應用程序接口。調(diào)試配置文件(.pdb)可以為我們的應用程序和源碼之間建起一座橋梁,它將讓我們在調(diào)試時準確定位到源碼。

    3.3 新建實驗項目

    使用C#新建一個控制臺程序,在項目中引用MyMediaLite.dll,然后在主函數(shù)中輸入相應代碼(以評級預測任務中的SVD++為例),源代碼如下所示。該代碼展示了使用MyMediaLite推薦系統(tǒng)庫的常見步驟;(1)加載數(shù)據(jù);(2)建立推薦系統(tǒng)模型;(3)訓練數(shù)據(jù);(4)得出推薦結(jié)果。endprint

    3.4 參數(shù)設置

    接下來設置程序的命令行參數(shù),將一組訓練數(shù)據(jù)與比對數(shù)據(jù)作為參數(shù)傳入到應用程序中。在項目屬性中選擇調(diào)試,將啟動選項的工作目錄選定為MoiveLens數(shù)據(jù)集的文件地址,命令行參數(shù)選擇u1.base文件和u1.test文件(以空格隔開),這樣就能順利地把訓練數(shù)據(jù)和比對數(shù)據(jù)加載到應用程序中。

    3.5 結(jié)果分析

    運行應用程序的結(jié)果如圖2所示。由結(jié)果可知,通過對訓練數(shù)據(jù)集u1.base的訓練,以及與比對數(shù)據(jù)集u1.test的比對,推薦算法SVD++推薦的均方誤差(RMSE)為0.9701232,平均絕對誤差(MAE)為0.7696601。根據(jù)用戶的偏好模型,推薦算法SVD++給出了用戶1對項目1的預測評級4.022615,以及用戶1預測評級最高的20個商品的編號和相應的評級。

    4 結(jié)論(Conclusion)

    個性化推薦系統(tǒng)具有理論性強、方法繁多、實踐困難等特點。使用諸如MyMediaLite推薦算法庫這類開源的平臺,能夠幫助使用者更加全面、深入、系統(tǒng)地學習推薦系統(tǒng)。但隨著個性化推薦系統(tǒng)研究的深入和技術(shù)的快速提升,僅僅局限于學習MyMediaLite推薦系統(tǒng)庫中的推薦方法還是不夠的,我們將繼續(xù)深入研究,以改進MyMediaLite中的算法。

    參考文獻(References)

    [1] Chen T,Zhang W,Lu Q,et al.SVDFeature:a toolkit for feature-based collaborative filtering[J].Journal of Machine Learning Research(JMLR),2012,13(1):3619-3622.

    [2] Gantner Z,Rendle S,F(xiàn)reudenthaler C,et al.MyMediaLite:a free recommender system library[C].ACM Conference on Recommender Systems(RecSys),2011:305-308.

    [3] Sadafale K,Sadafale K.An online recommendation system for e-commerce based on apache mahout framework[C].Conference on Computers and People Research(SIGMIS-CPR),2013:153-158.

    [4] Koren Y.Factorization meets the neighborhood:a multifaceted collaborative filtering model[C].ACM SIGKDD International Conference on Knowledge Discovery and Data Mining(SIGKDD),2008:426-434.

    [5] 張著英,黃玉龍,王翰虎.一個高效的KNN分類算法[J].計算機科學,2008,35(3):170-172.

    [6] Salakhutdinov R,Mnih A.Bayesian probabilistic matrix factorization using Markov chain Monte Carlo[C].International Conference on Machine Learning(ICML),2008:880-887.

    [7] Lemire D,Maclachlan A.Slope One Predictors for Online Rating-Based Collaborative Filtering[J].Computer Science,

    2005:21-23.

    [8] Yang Y,Liu X.A re-examination of text catego rization methods[C].In:Proceedings of ACM SIGIR Conference on Research and Development in Information Retrieval(SIGIR),

    1999:42-49.

    作者簡介:

    林 楠(1997-),男,本科生.研究領(lǐng)域:推薦系統(tǒng).

    楊文淵(1994-),男,本科生.研究領(lǐng)域:軟件工程.

    馬伊莉(1997-),女,本科生.研究領(lǐng)域:前端開發(fā).

    朱婷婷(1997-),女,本科生.研究領(lǐng)域:前端開發(fā).

    陳圣磊(1977-),男,博士,副教授.研究領(lǐng)域:機器學習,數(shù)據(jù)挖掘.endprint

    猜你喜歡
    個性化推薦協(xié)同過濾推薦系統(tǒng)
    基于用戶偏好的信任網(wǎng)絡隨機游走推薦模型
    基于鏈式存儲結(jié)構(gòu)的協(xié)同過濾推薦算法設計與實現(xiàn)
    軟件導刊(2016年11期)2016-12-22 21:40:40
    基于相似傳播和情景聚類的網(wǎng)絡協(xié)同過濾推薦算法研究
    基于個性化的協(xié)同過濾圖書推薦算法研究
    個性化推薦系統(tǒng)關(guān)鍵算法探討
    基于協(xié)同過濾算法的個性化圖書推薦系統(tǒng)研究
    混合推薦算法在電影推薦中的研究與評述
    淺談Mahout在個性化推薦系統(tǒng)中的應用
    無線定位個性化導覽關(guān)鍵技術(shù)在博物館中的運用
    得荣县| 五华县| 乌审旗| 高雄市| 湟源县| 陕西省| 封丘县| 神农架林区| 顺昌县| 磴口县| 青川县| 祁连县| 洪洞县| 大田县| 桐庐县| 若羌县| 林西县| 京山县| 龙南县| 内江市| 嘉峪关市| 夏津县| 尖扎县| 江门市| 裕民县| 肇源县| 囊谦县| 霍城县| 银川市| 永济市| 原平市| 聂拉木县| 土默特左旗| 青海省| 同仁县| 左贡县| 高台县| 分宜县| 新郑市| 泾川县| 建湖县|