林夢迪
摘要:微博作為當下最受歡迎的社交網絡之一,包含了大量的用戶需求和興趣偏好信息,如何動態地從微博內容中提取用戶的需求和偏好信息,將推薦算法結合社交網絡產生推薦結果,解決信息過載的問題,目前暫時還沒有相關的較為成熟的應用。本文設計并實現了基于社交網絡的物品推薦系統,提取用戶微博內容關鍵詞作為用戶需求特征,建立物品信息庫,通過文本相似度計算用戶需求和物品信息之間的匹配度,采用基于內容的推薦算法產生推薦結果。最后進行離線實驗,對推薦系統產生的推薦結果進行評測分析。
關鍵詞:社交網絡;用戶需求;基于物品推薦算法;微博
中圖分類號:TP393 文獻標識碼: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 背景
近年來,社交網絡的發展引人注目。目前據百度百科的統計,約有一半以上的中國網民通過社交網絡進行溝通交流、分享信息。據尼爾森2010年的報告,全球用戶在互聯網上22%的時間花費在社交網站和社交媒體上[1]。通過社交網絡不僅可以很好地獲取用戶社交關系,并且允許用戶公開地展現自己,表達用戶個人興趣,對于研究個性化推薦系統具有很好的價值。本文利用社交網絡信息對用戶進行個性化物品推薦。
目前流行的推薦算法主要有基于內容的推薦算法[2]、協同過濾推薦算法[3]和混合推薦算法等。本文采用基于內容的推薦算法,其不需要獲取大量的用戶評分數據,因此不存在評分數據稀疏性問題;對于新物品,一旦提取新物品的特征建立物品配置文件后即可向相似用戶進行推薦,解決了新物品的冷啟動問題;并且易于實現自動化提取物品特征算法。
2 基于社交網絡的物品推薦系統設計
2.1 系統框架
本文基于騰訊微博獲取用戶的需求與興趣并進行物品推薦,設計整體框架如圖1所示。通過爬蟲[4]爬取騰訊微博較為簡便,IP地址不容易被封鎖,能夠快速爬取大量用戶數據。
在用戶需求發現階段,首先通過爬蟲根據API爬取大量用戶的微博內容,存儲到數據庫中。然后對每一個用戶的所有微博內容提取關鍵詞作為每一個用戶的需求模型,構成了用戶特征庫。
在物品推薦階段,首先根據淘寶網站上的物品信息,提取部分物品特征構建適用于本文的物品信息庫,計算物品信息與用戶需求之間的相關性,將計算結果進行排序產生推薦結果,完成第二階段的物品推薦。
2.2 建立用戶特征庫
對一個用戶的所有獲取到的微博內容提取關鍵詞[5]用以表示該用戶的特征。本文采用基于TF-IDF的自動文本關鍵詞提取算法[6]。
由于中文文本沒有顯示的詞邊界,增加了關鍵詞提取的難度。本課題調用jieba中文分詞模塊,對單個用戶的所有微博內容進行分詞。jieba分詞模塊通過構建Trie前綴樹實現高效的詞圖掃描,生成語句中漢字所有可能成詞情況所構成的有向無環圖;同時采用了動態規劃查找最大概率路徑,找出基于詞頻的最大切分組合。然后使用TF-IDF算法對分詞后的單詞計算TF-IDF值,選取值最高的TOP k個單詞作為用戶微博內容的關鍵詞進行存儲,用以表示該用戶的特征。
2.3 建立物品信息庫
根據淘寶物品數據構建物品信息,主要包括物品的名稱、類別屬性、物品描述、物品標簽等信息。其中,物品描述主要是對物品功能、特征、結構等特性方面的描述。與用戶特征庫類似,物品信息同樣以關鍵詞表示。
2.4 基于內容的推薦算法
基于內容的推薦算法通過獲取物品的描述對物品建立配置文件,同時通過顯示或隱式的方式獲取用戶的興趣偏好描述對用戶建立用戶配置文件,然后比較用戶和物品配置文件之間的匹配度,向用戶推薦與其配置文件相似度最高的物品。本文分別采用文本相似度進行相似度匹配。
文本相似度采用余弦相似度的方法,其基本思路是參照了向量的余弦定理,見公式1所示。
根據用戶特征庫和物品信息庫,分別列出關鍵詞詞頻向量。計算兩個向量的余弦相似度,值越大則表示兩個詞頻向量之間的夾角越小,也就說明用戶的特征和物品的描述越相似。
依據上述文本相似度計算物品和用戶特征之間是否匹配,對于一個用戶,遍歷物品信息庫中的所有物品信息,計算和該用戶之間的相似度并對計算結果進行排序,選取其中相似度最高的k個物品,生成推薦列表向用戶進行推送推薦結果。
3 實驗評估
本課題采用離線實驗方法,根據推薦結果的準確率、召回率、覆蓋率和多樣性4個評測指標進行評測和性能分析。
3.1 實驗基礎
對一個用戶進行物品推薦,最終可能的結果有4種:系統推薦給用戶且用戶很喜歡,系統推薦給用戶但是用戶不喜歡,用戶喜歡但是系統沒有推薦,用戶不喜歡且系統沒有推薦,如表1所示。
3.2 準確率評測
通過爬蟲一共抓取了31965個用戶的微博內容,對這些用戶用余弦相似度進行物品推薦,在產生推薦結果的用戶中隨機挑選10000個用戶作為測試集,驗證相似度算法產生的推薦結果的準確性。評測結果如表2和圖3所示。
從實驗數據可以看出,余弦相似度算法通過詞語出現的向量頻率計算用戶特征關鍵詞和物品信息之間的相似度,因此產生的推薦結果準確率較高。
3.3 召回率評測
根據公式(3)計算余弦相似度算法產生的推薦結果的召回率,計算結果如表3所示。
3.4 覆蓋率評測
根據公式(4)計算余弦相似度算法產生的推薦結果的覆蓋率,計算結果如表4所示。
從上述數據可以看出當用戶數量較小的時候,余弦相似度由于存在一些用戶微博內容沒有提到任何物品的信息,因此產生的推薦結果覆蓋率較低,但當用戶數量較大時,推薦結果可達到100%。
3.5 多樣性評測
根據公式(5)計算余弦相似度算法產生的推薦結果的多樣性,計算結果如表5所示。
4 總結與展望
以騰訊微博作為基礎,爬取用戶的微博內容并提取關鍵詞作為用戶的特征信息;根據淘寶的物品屬性建立物品信息庫;最后通過余弦相似度算法計算用戶特征和物品信息之間的相似度,產生相應的推薦列表,并且利用真實微博數據,評測準確率、召回率、覆蓋率和多樣性等標準,對實驗結果進行分析。本文提出的基于社交網絡進行物品推薦的方法被證明具有實用價值和實際意義。
在本文基礎上,考慮用戶微博情感內容以及好友之間的信任度等,這些都是將來需要繼續深入研究的方向。
參考文獻
[1] 項亮. 推薦系統實踐[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 的網絡爬蟲的設計與實現[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] 劉建國,周濤,汪秉宏. 個性化推薦系統的研究進展[J]. 自然科學進展,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.