郑小坤+蔡杰+李书豪+杨盆+谯亚军
摘要:随着信息技术和Internet技术的蓬勃发展,网络用户接受信息的模式逐渐从信息匮乏到信息过载,对于网络信息的日新月异,无论是信息消费者还是信息生产者都遇到了很大的挑战。为此,本文介绍了推荐系统的发展现状,简单分析了热门的推荐算法(协同过滤算法),结合网络用户对有价值信息获取的需求,设计了网站推荐系统,完成了机器学习算法框架Mahout在推荐系统上的实现。
关键词:推荐系统;行为日志;协同过滤
中图分类号:TP311 文献标识码:A 文章编号:1007-9416(2017)06-0231-02
任何一个网站,它提供例如新闻资讯、电影音乐、视频浏览、游戏等服务的,只要有用户在上面访问,就会留下该用户的使用记录。无论这些数据如何冗余复杂,如何单一简陋,只要存在用户ID和点击量,就可以支撑一个网络广告的商业模式。而智能化发展对于当今的互联网来说是一个重要的方向。基于用户的兴趣偏好,将讯息有针对性地提供给目标用户,能够在用户没有明确目的的时候帮助他们发现感兴趣的新内容,体现服务的人性化。推荐系统作为大数据时代应运而生的产物,对互联网发展来说,有着重要的意义。
1 推荐系统的发展现状
随着Web技术的越来越成熟和电子商务、移动互联网的日益普遍,自20世纪90年代中期出现第一批关于协同过滤的文章以来,推荐系统逐渐变得越来越重要,得到很多国内外学者的关注与研究。1995年3月,卡耐基·梅隆大学的RobertArmstrong等人在美国人工智能协会上提出了个性化导航系统Web Weather;斯坦福大学的MarkoBalabanovic等人在同一会议上推出了个性化推荐系统LIRA,这在推荐系统的发展历程上是光辉的一笔。
和搜索引擎不同,个性化推荐系统需要依赖用户的行为数据,因此一般都是作为一个应用存在于不同網站之中。在互联网的各类网站中都可以看到推荐系统的应用,而个性化推荐系统在这些网站中的主要作用是通过分析大量用户行为日志,给不同用户提供不同的个性化页面展示,来提高网站的点击率和转化率。许多大型的推荐系统随着信息时代的来临应运而生。姓名(出生年-),性别(民族,汉族可省略),籍贯(具体到省市),学历,职位,职称,研究方向。
2 协同过滤算法
协同过滤推荐(Collaborative Filtering recommendation)是在信息过滤和信息系统中正迅速成为一项十分受欢迎的技术。与传统的基于内容过滤直接分析内容进行推荐不同,协同过滤通过分析用户兴趣,在用户集中挖掘出与指定用户相似(兴趣)用户,综合这些相似用户对某一项目的评价,形成系统对该指定用户对此项目的喜好程度的预测。
2.1 基于用户的协同过滤算法UserCF
基于用户的协同过滤,通过不同用户对物品的评分来评测用户之间的相似性,基于用户之间的相似性来做推荐。总的来说就是:给目标用户推荐和他兴趣相近的用户喜欢的物品。
2.2 基于物品的协同过滤算法ItemCF
基于物品的协同过滤,通过用户对不同item的评分来评测item之间的相似性,基于item之间的相似性做出推荐。简单来讲就是:给用户推荐和他之前喜欢的物品相似的物品。
3 网站推荐系统需求分析
3.1 构建用户兴趣模型
首先要保证数据的质量控制、数据的完整性与一致性、缺省值补缺、数据变换等。提取用户群体的上网行为特征,根据数据集中用户的行为日志,分析提取出UserID、网站点击次数、浏览的网址url等属性,建立用户兴趣模型,该模型的设定条件可包括用户ID、urlID以及用户偏好。兴趣模型可用于计算用户之间的相似度等。
3.2 基于用户的推荐
根据用户的上网行为处理出来的兴趣爱好,寻找与之相邻的用户,找出兴趣爱好相似的用户,给目标用户推荐和他兴趣相近的用户喜欢的网站。
例如,用户A喜欢浏览搜狐新闻资讯,当用户A登录系统后,判断同样喜欢新闻类别的用户,若找到用户B、C、D与用户A兴趣爱好相似,用户B也同样喜欢浏览搜狐新闻资讯和观看BBS新闻报道,就把用户B喜欢的搜狐新闻资讯推荐给用户A。
给定一个评分数据集和当前用户的ID作为输入,找出与当前用户过去有相似偏好的其他用户,这些用户有时也称为对等用户或最近邻用户;然后,对当前用户没有见过的每个产品p,利用其近邻对p的评分计算预测值。
3.3 基于物品的推荐
用户浏览的不同url具有一定的相似性,比如同为新闻类别、游戏类别、音乐类别等等。通过寻找内容相似的网站,给用户推荐其之前喜欢的网站内容相似的网站。
例如,用户A喜欢在淘宝上购物,或者喜欢浏览淘宝网站,淘宝网与京东网同为购物网站,可以为用户提供相似的服务,所以也可以把京东网推荐给用户A。
4 网站推荐系统设计与实现
通过对网站推荐系统的需求进行分析,明确了该系统的功能需求。本章将完成基于用户行为日志的网站推荐系统(简称:WBL系统)的设计与实现。
4.1 WBL系统总体层次图
系统如图1所示,通过分析用户文本格式的行为日志,以及以ID关联的相应的用户人口属性信息表,可以提取出用户的兴趣特征和不同url的类别特征。利用Mahout中相应的推荐算法框架实现系统推荐。由于数据存储在远程服务器的数据库中,所以系统运行需要有外网。用户登录成功后,页面可显示用户基本信息、其历史浏览记录以及相应的推荐结果。
4.2 WBL系统实现架构图
对WBL系统架构图2的处理过程简要说明如下:
(1)数据预处理。
(2)对未加工的原始数据进行处理,剔除无效数据、缺省数据等,进行数据清洗工作。让数据具有一致性与完整性。
(3)推荐规则库(MySQL)。存放不同urlID信息,用户点击url次数情况,存储用户在对Web进行访问时留下的网站链接结构,方便使用Mahout处理框架。
(4) Mahout。Mahout包含很多技术和算法:找出数据集中频繁出现部分的频繁模式挖掘、将相关的数据聚集在一起的聚类、利用行为数据,找出相关性比较紧密的项目的频繁子项挖掘等等。
(5)网站推荐库(MySQL)。存储Mahout计算出来的网站推荐结果。
5 结语
本文简单介绍了网站推荐系统的发展现状推荐,并对网站推荐系统的功能性进行了阐述,在此基础上描述了网站推荐系统的设计与实现。但网站推荐系统还需进一步完善,其中,美化界面和优化算法推荐可进行进一步的开发。
参考文献
[1]IBM协同过滤推荐算法简介[EB/OL].
[2]推荐系统[M].北京:人民邮电出版社,2015.
[3]推荐系统实践[M].北京:人民邮电出版社,2014.
[4]集体编程智慧[M].北京:中国工信出版集团,2015.
[5]使用Mahout实现协同过滤[EB/OL].
[6]Mahout算法API详解[EB/OL].endprint