林夢迪
摘要:微博作為當(dāng)下最受歡迎的社交網(wǎng)絡(luò)之一,包含了大量的用戶需求和興趣偏好信息,如何動態(tài)地從微博內(nèi)容中提取用戶的需求和偏好信息,將推薦算法結(jié)合社交網(wǎng)絡(luò)產(chǎn)生推薦結(jié)果,解決信息過載的問題,目前暫時還沒有相關(guān)的較為成熟的應(yīng)用。本文設(shè)計并實現(xiàn)了基于社交網(wǎng)絡(luò)的物品推薦系統(tǒng),提取用戶微博內(nèi)容關(guān)鍵詞作為用戶需求特征,建立物品信息庫,通過文本相似度計算用戶需求和物品信息之間的匹配度,采用基于內(nèi)容的推薦算法產(chǎn)生推薦結(jié)果。最后進行離線實驗,對推薦系統(tǒng)產(chǎn)生的推薦結(jié)果進行評測分析。
關(guān)鍵詞:社交網(wǎng)絡(luò);用戶需求;基于物品推薦算法;微博
中圖分類號:TP393 文獻標(biāo)識碼:A 文章編號:1009-3044(2016)24-0260-03
Abstract: Microblog is one of the most popular social networks, containing plenty of information of users preference and needs. However, there are still no mature applications to extract the information of users preference and needs from microblogs and combine those with recommendation algorithms to recommend items. Thus, this paper proposes and implements a recommendation system for social networks. First of all, users content of weibo was crawled and keywords were extracted as characteristics of users needs. Next, an item repository was built with specific characteristics of the items. Using the text similarity algorithm, similarity between users needs and items characteristics can be computed. Then with the content-based recommendation algorithm, we produced recommendation results for users which they may be interested in. At last four offline experiments on the recommendation results were done to evaluate and analyze the performance of this recommendation system.
Key words:social networks; users interests; content-based recommendation algorithm; Microblog
1 背景
近年來,社交網(wǎng)絡(luò)的發(fā)展引人注目。目前據(jù)百度百科的統(tǒng)計,約有一半以上的中國網(wǎng)民通過社交網(wǎng)絡(luò)進行溝通交流、分享信息。據(jù)尼爾森2010年的報告,全球用戶在互聯(lián)網(wǎng)上22%的時間花費在社交網(wǎng)站和社交媒體上[1]。通過社交網(wǎng)絡(luò)不僅可以很好地獲取用戶社交關(guān)系,并且允許用戶公開地展現(xiàn)自己,表達用戶個人興趣,對于研究個性化推薦系統(tǒng)具有很好的價值。本文利用社交網(wǎng)絡(luò)信息對用戶進行個性化物品推薦。
目前流行的推薦算法主要有基于內(nèi)容的推薦算法[2]、協(xié)同過濾推薦算法[3]和混合推薦算法等。本文采用基于內(nèi)容的推薦算法,其不需要獲取大量的用戶評分?jǐn)?shù)據(jù),因此不存在評分?jǐn)?shù)據(jù)稀疏性問題;對于新物品,一旦提取新物品的特征建立物品配置文件后即可向相似用戶進行推薦,解決了新物品的冷啟動問題;并且易于實現(xiàn)自動化提取物品特征算法。
2 基于社交網(wǎng)絡(luò)的物品推薦系統(tǒng)設(shè)計
2.1 系統(tǒng)框架
本文基于騰訊微博獲取用戶的需求與興趣并進行物品推薦,設(shè)計整體框架如圖1所示。通過爬蟲[4]爬取騰訊微博較為簡便,IP地址不容易被封鎖,能夠快速爬取大量用戶數(shù)據(jù)。
在用戶需求發(fā)現(xiàn)階段,首先通過爬蟲根據(jù)API爬取大量用戶的微博內(nèi)容,存儲到數(shù)據(jù)庫中。然后對每一個用戶的所有微博內(nèi)容提取關(guān)鍵詞作為每一個用戶的需求模型,構(gòu)成了用戶特征庫。
在物品推薦階段,首先根據(jù)淘寶網(wǎng)站上的物品信息,提取部分物品特征構(gòu)建適用于本文的物品信息庫,計算物品信息與用戶需求之間的相關(guān)性,將計算結(jié)果進行排序產(chǎn)生推薦結(jié)果,完成第二階段的物品推薦。
2.2 建立用戶特征庫
對一個用戶的所有獲取到的微博內(nèi)容提取關(guān)鍵詞[5]用以表示該用戶的特征。本文采用基于TF-IDF的自動文本關(guān)鍵詞提取算法[6]。
由于中文文本沒有顯示的詞邊界,增加了關(guān)鍵詞提取的難度。本課題調(diào)用jieba中文分詞模塊,對單個用戶的所有微博內(nèi)容進行分詞。jieba分詞模塊通過構(gòu)建Trie前綴樹實現(xiàn)高效的詞圖掃描,生成語句中漢字所有可能成詞情況所構(gòu)成的有向無環(huán)圖;同時采用了動態(tài)規(guī)劃查找最大概率路徑,找出基于詞頻的最大切分組合。然后使用TF-IDF算法對分詞后的單詞計算TF-IDF值,選取值最高的TOP k個單詞作為用戶微博內(nèi)容的關(guān)鍵詞進行存儲,用以表示該用戶的特征。
2.3 建立物品信息庫
根據(jù)淘寶物品數(shù)據(jù)構(gòu)建物品信息,主要包括物品的名稱、類別屬性、物品描述、物品標(biāo)簽等信息。其中,物品描述主要是對物品功能、特征、結(jié)構(gòu)等特性方面的描述。與用戶特征庫類似,物品信息同樣以關(guān)鍵詞表示。
2.4 基于內(nèi)容的推薦算法
基于內(nèi)容的推薦算法通過獲取物品的描述對物品建立配置文件,同時通過顯示或隱式的方式獲取用戶的興趣偏好描述對用戶建立用戶配置文件,然后比較用戶和物品配置文件之間的匹配度,向用戶推薦與其配置文件相似度最高的物品。本文分別采用文本相似度進行相似度匹配。
文本相似度采用余弦相似度的方法,其基本思路是參照了向量的余弦定理,見公式1所示。
根據(jù)用戶特征庫和物品信息庫,分別列出關(guān)鍵詞詞頻向量。計算兩個向量的余弦相似度,值越大則表示兩個詞頻向量之間的夾角越小,也就說明用戶的特征和物品的描述越相似。
依據(jù)上述文本相似度計算物品和用戶特征之間是否匹配,對于一個用戶,遍歷物品信息庫中的所有物品信息,計算和該用戶之間的相似度并對計算結(jié)果進行排序,選取其中相似度最高的k個物品,生成推薦列表向用戶進行推送推薦結(jié)果。
3 實驗評估
本課題采用離線實驗方法,根據(jù)推薦結(jié)果的準(zhǔn)確率、召回率、覆蓋率和多樣性4個評測指標(biāo)進行評測和性能分析。
3.1 實驗基礎(chǔ)
對一個用戶進行物品推薦,最終可能的結(jié)果有4種:系統(tǒng)推薦給用戶且用戶很喜歡,系統(tǒng)推薦給用戶但是用戶不喜歡,用戶喜歡但是系統(tǒng)沒有推薦,用戶不喜歡且系統(tǒng)沒有推薦,如表1所示。
3.2 準(zhǔn)確率評測
通過爬蟲一共抓取了31965個用戶的微博內(nèi)容,對這些用戶用余弦相似度進行物品推薦,在產(chǎn)生推薦結(jié)果的用戶中隨機挑選10000個用戶作為測試集,驗證相似度算法產(chǎn)生的推薦結(jié)果的準(zhǔn)確性。評測結(jié)果如表2和圖3所示。
從實驗數(shù)據(jù)可以看出,余弦相似度算法通過詞語出現(xiàn)的向量頻率計算用戶特征關(guān)鍵詞和物品信息之間的相似度,因此產(chǎn)生的推薦結(jié)果準(zhǔn)確率較高。
3.3 召回率評測
根據(jù)公式(3)計算余弦相似度算法產(chǎn)生的推薦結(jié)果的召回率,計算結(jié)果如表3所示。
3.4 覆蓋率評測
根據(jù)公式(4)計算余弦相似度算法產(chǎn)生的推薦結(jié)果的覆蓋率,計算結(jié)果如表4所示。
從上述數(shù)據(jù)可以看出當(dāng)用戶數(shù)量較小的時候,余弦相似度由于存在一些用戶微博內(nèi)容沒有提到任何物品的信息,因此產(chǎn)生的推薦結(jié)果覆蓋率較低,但當(dāng)用戶數(shù)量較大時,推薦結(jié)果可達到100%。
3.5 多樣性評測
根據(jù)公式(5)計算余弦相似度算法產(chǎn)生的推薦結(jié)果的多樣性,計算結(jié)果如表5所示。
4 總結(jié)與展望
以騰訊微博作為基礎(chǔ),爬取用戶的微博內(nèi)容并提取關(guān)鍵詞作為用戶的特征信息;根據(jù)淘寶的物品屬性建立物品信息庫;最后通過余弦相似度算法計算用戶特征和物品信息之間的相似度,產(chǎn)生相應(yīng)的推薦列表,并且利用真實微博數(shù)據(jù),評測準(zhǔn)確率、召回率、覆蓋率和多樣性等標(biāo)準(zhǔn),對實驗結(jié)果進行分析。本文提出的基于社交網(wǎng)絡(luò)進行物品推薦的方法被證明具有實用價值和實際意義。
在本文基礎(chǔ)上,考慮用戶微博情感內(nèi)容以及好友之間的信任度等,這些都是將來需要繼續(xù)深入研究的方向。
參考文獻
[1] 項亮. 推薦系統(tǒng)實踐[M]. 北京. 人民郵電出版社, 2012:44-64.
[2] Pazzani M J, Billsus D. Content-based recommendation systems[M]//The adaptive web.Springer Berlin Heidelberg, 2007: 325-341.
[3] Resnick P, Iacovou N, Suchak M, et al. GroupLens: an open architecture for collaborative filtering of netnews[C]//Proceedings of the 1994 ACM conference on Computer supported cooperative work. ACM, 1994: 175-186.
[4] 徐遠超, 劉江華, 劉麗珍, 等. 基于 Web 的網(wǎng)絡(luò)爬蟲的設(shè)計與實現(xiàn)[J]. 微計算機信息, 2007 (21): 119-121.
[5] Mihalcea R, Tarau P. TextRank: Bringing order into texts[C]//Proceedings of EMNLP. 2004, 4(4): 275.
[6] Ramos J. Using tf-idf to determine word relevance in document queries[C]//Proceedings of the First Instructional Conference on Machine Learning. 2003.
[7] Yuan X, Wu P. Content-Based Recommendation Model in Micro-blogs Community[C]//Management of e-Commerce and e-Government (ICMeCG), 2012 International Conference on. IEEE, 2012: 165-168.
[8] 劉建國,周濤,汪秉宏. 個性化推薦系統(tǒng)的研究進展[J]. 自然科學(xué)進展,2009,19(1):1-15.
[9] Guo W, Hu X, Zhou K, et al. An intelligent query system based on Chinese short message service for restaurant recommendation[C]//Management of Mobile Business, 2007. ICMB 2007. International Conference on the. IEEE, 2007: 60-60.