论文部分内容阅读
摘要:微博作为当下最受欢迎的社交网络之一,包含了大量的用户需求和兴趣偏好信息,如何动态地从微博内容中提取用户的需求和偏好信息,将推荐算法结合社交网络产生推荐结果,解决信息过载的问题,目前暂时还没有相关的较为成熟的应用。本文设计并实现了基于社交网络的物品推荐系统,提取用户微博内容关键词作为用户需求特征,建立物品信息库,通过文本相似度计算用户需求和物品信息之间的匹配度,采用基于内容的推荐算法产生推荐结果。最后进行离线实验,对推荐系统产生的推荐结果进行评测分析。
关键词:社交网络;用户需求;基于物品推荐算法;微博
中图分类号: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.
关键词:社交网络;用户需求;基于物品推荐算法;微博
中图分类号: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.