当前位置:文档之家› 改进了协同过滤推荐算法的推荐系统的制作流程

改进了协同过滤推荐算法的推荐系统的制作流程

图片简介:本技术介绍了一种改进了协同过滤推荐算法的推荐系统,属于推荐系统技术相关领域。

该推荐系统包括输入模块、推荐算法和输出模块三个部分,输入模块用于输入用户个人基本信息、用户对项目的评分和用户历史信息等;推荐算法根据输入信息分析用户兴趣爱好,寻找最相似用户和项目,给出预测的评分结果;输出模块依据用户输入请求,输出相应的推荐项目。

其中改进部分是对推荐算法中冷启动问题进行优化。

针对新用户、新项目和新系统不同的冷启动问题,提出了优化解决方法。

技术要求1.一种改进了协同过滤推荐算法的推荐系统,其特征在于,包括输入模块、推荐算法和输出模块;输入模块用于输入用户个人基本信息、用户对项目的评分、用户历史信息和当前的点击操作;推荐算法根据输入信息分析用户兴趣爱好,寻找最相似用户和项目,给出预测的评分结果;输出模块依据用户输入请求,输出相应的推荐项目到客户端。

2.如权利要求1所述的一种改进了协同过滤推荐算法的推荐系统,其特征在于,所述推荐算法为协同过滤推荐算法,所述协同过滤推荐算法冷启动实现方式为:一、提供非个性化的推荐,非个性化推荐的最简单例子就是热门排行榜,可以给用户推荐热门排行榜,然后等到用户的反馈足够多,数据收集到一定的时候,再转换为个性化推荐;二、利用用户的注册信息,提供的年龄、性别、职业等数据做粗粒度的个性化;三、利用用户的社交网络账号登录,导入用户在社交网站上的好友信息,然后给用户推荐其好友喜欢的物品;四、利用物品的内容信息计算物品相关表,利用专家进行标注。

3.如权利要求2所述的一种改进了协同过滤推荐算法的推荐系统,其特征在于,在所述推荐算法中,用户点击商品链接后,推荐系统会记录用户的点击行为,然后系统计算用户间相似度,找出与当前用户最相似的前N个用户,接着在这前N个用户中找出当前用户没有点击的商品,将点击率最高的几个商品加入推荐列表,最后将推荐列表发往客户端向用户展示推荐的商品。

4.如权利要求3所述的改进了协同过滤推荐算法的推荐系统,其特征在于:推荐系统根据用户的喜好、年龄、点击量、购买量以及购买行为来为用户个性化推荐合适的商品,并将推荐列表发往前台页面进行实时展示。

技术说明书一种改进了协同过滤推荐算法的推荐系统技术领域本技术涉及一种改进了协同过滤推荐算法的推荐系统,属于推荐系统技术领域。

背景技术推荐系统应用数据分析技术,找出用户最可能喜欢的东西推荐给用户,现在很多电子商务网站都有这个应用。

目前用的比较多、比较成熟的推荐算法是协同过滤(Collaborative Filtering,CF)推荐算法,CF的基本思想是根据用户之前的喜好以及其他兴趣相近的用户的选择来给用户推荐物品。

协同过滤推荐算法诞生很早,是较为著名的推荐算法,主要的功能是预测和推荐。

CF分为两个过程,一个为预测过程,另一个为推荐过程。

预测过程是预测用户对没有购买过的物品的可能打分值,推荐是根据预测阶段的结果推荐用户最可能喜欢的一个或Top-N个物品。

算法通过对用户历史行为数据的挖掘发现用户的偏好,基于不同的偏好对用户进行群组划分并推荐品味相似的商品。

协同过滤推荐算法分为两类,分别是基于用户的协同过滤算法(User-CF),和基于物品的协同过滤算法(Item-CF)。

推荐系统需要根据用户的历史行为和兴趣预测用户未来的行为和兴趣,因此大量的用户行为数据就成为推荐系统的重要组成部分和先决条件。

很多在开始阶段就希望有个性化推荐应用的网站来说,如何在没有大量用户数据的情况下,设计个性化推荐系统并且让用户对推荐结果满意从而愿意使用推荐系统,就是冷启动问题。

冷启动问题主要分为三类。

1.用户冷启动:用户冷启动主要解决如何给新用户做个性化推荐的问题。

当新用户到来时,没有他的行为数据,所以无法根据他的历史行为预测其兴趣,从而无法借此给他做个性化推荐。

2.物品冷启动:物品冷启动主要解决如何将新的物品推荐给可能对它感兴趣的用户这一问题,当新物品加入时,没有用户对其评分,无法根据它的评分数据来给用户推荐。

3.系统冷启动:系统冷启动主要解决如何在一个新开发的网站上(没有用户,也没有用户行为,物品数量也很少,只有一些物品的信息)设计个性化推荐系统,从而在网站发布时就让用户体验到个性化推荐服务这一问题。

技术内容本技术的目的是设计一种推荐系统,系统首先收集用户的各类历史信息及当前点击操作作为输入模块输入到推荐算法中,然后推荐算法对数据信息进行分析计算生成推荐列表,最后将推荐列表发往客户端,从而向用户展示个性化的项目推荐列表。

为了达到上述目的,本技术的技术方案是提供了一种改进了协同过滤推荐算法的推荐系统,其特征在于,包括输入模块、推荐算法和输出模块;输入模块用于输入用户个人基本信息、用户对项目的评分、用户历史信息和当前的点击操作;推荐算法根据输入信息分析用户兴趣爱好,寻找最相似用户和项目,给出预测的评分结果;输出模块依据用户输入请求,输出相应的推荐项目到客户端。

其中,对所述协同过滤推荐算法的冷启动问题的改进如下:一、提供非个性化的推荐,非个性化推荐的最简单例子就是热门排行榜,可以给用户推荐热门排行榜,然后等到用户的反馈足够多,数据收集到一定的时候,再转换为个性化推荐;二、利用用户的注册信息,提供的年龄、性别、职业等数据做粗粒度的个性化;三、利用用户的社交网络账号登录,导入用户在社交网站上的好友信息,然后给用户推荐其好友喜欢的物品;四、利用物品的内容信息计算物品相关表,利用专家进行标注。

优选的,在所述推荐算法中,用户点击商品链接后,推荐系统会记录用户的点击行为,然后系统计算用户间相似度,找出与当前用户最相似的前N个用户,接着在这前N个用户中找出当前用户没有点击的商品,将点击率最高的几个商品加入推荐列表,最后将推荐列表发往客户端向用户展示推荐的商品。

优选的,推荐系统根据用户的喜好、年龄、点击量、购买量以及购买行为来为用户个性化推荐合适的商品,并将推荐列表发往前台页面进行实时展示。

本技术与现有技术相比,该系统具有以下优势,该推荐系统可以根据用户的喜好、年龄、点击量、购买量以及各种购买行为来为用户推荐合适的商品,并将推荐列表发往前台页面进行实时展示,该系统优化了推荐算法的冷启动问题,使得用户得到更好的个性化推荐。

附图说明图1为推荐系统结构图;图2为协同过滤算法主要步骤流程图;图3为推荐系统商品推荐流程图。

具体实施方式本技术将结合附图对实施方式作以下详细说明。

如图1所示,本技术提出一种改进了协同过滤推荐算法的推荐系统,整个推荐系统主要包括输入模块、推荐算法和输出模块,输入模块用于输入用户个人基本信息、用户对项目的评分、用户历史信息和当前点击操作等;推荐算法根据输入信息分析用户兴趣爱好,寻找最相似用户和项目,给出预测的评分结果;输出模块依据用户输入请求,输出相应的推荐项目到客户端。

其核心是推荐算法,对推荐算法冷启动问题的改进如下:1.利用用户新注册的信息。

在网站中,当新用户注册时,不知道他喜欢什么物品,于是只能给他推荐一些热门的商品。

但如果我们知道她是一位女性,那么可以给她推荐女性都喜欢的热门商品。

这也是一种个性化的推荐。

当然这个个性化的粒度很粗,因为所有新注册的女性看到的都是同样的结果,但相对于不区分男女的方式,这种推荐的精度已经大大提高了。

因此,利用用户的注册信息可以很好地解决注册用户的冷启动问题。

在绝大多数网站中,年龄、性别一般都是注册用户的必备信息。

用户的注册信息分3种。

人口统计学信息:包括用户的年龄、性别、职业、民族、学历和居住地;用户兴趣的描述:有一些网站会让用户用文字描述他们的兴趣;从其他网站导入的用户站外行为数据:比如用户通过豆瓣、新浪微博的账号记录,就可以在得到用户同意的情况下获取用户在豆瓣或者新浪微博的一些行为数据和社交网络数据。

2.选择合适的物品启动用户的兴趣。

解决用户冷启动问题的另一个方法是在新用户第一次访问推荐系统时,不立即给用户展示推荐结果,而是给用户提供一些物品,让用户反馈他们对这些物品的兴趣,然后根据用户反馈提供个性化推荐。

对于这些通过让用户对物品进行评分来收集用户兴趣,从而对用户进行冷启动的系统,它们需要解决的首要问题就是如何选择物品让用户进行反馈。

一般来说,能够用来启动用户兴趣的物品需要具有一下特点:(1)比较热门,如果要让用户对一个物品进行反馈,前提是用户知道这个物品是什么东西。

以电影为例,如果一开始让用户进行反馈的电影都很冷门,而用户不知道这些电影的情节和内容,也就无法对它们做出准确的反馈。

(2)具有代表性和区分性,启动用户兴趣的物品不能是大众化或老少皆宜的,因为这样的物品对用户的兴趣没有区分性。

热门物品对区分用户个性化的兴趣没有帮助。

(3)启动物品集合需要有多样性,在冷启动时,不知道用户的兴趣,而用户兴趣的可能性非常多,为了匹配多样的兴趣,需要提供具有很高覆盖率的启动物品集合,这些物品能覆盖几乎所有主流的用户兴趣。

3.利用物品的内容信息。

物品冷启动需要解决的问题是如何将新加入的物品推荐给对它感兴趣的用户。

推荐系统在给用户进行推荐时,会首先找到和用户兴趣相似的一群用户,然后给用户推荐这一群用户喜欢的物品。

在很多网站中,推荐列表并不是给用户展示内容的唯一列表,当一个用户对某个物品产生反馈后,和他历史兴趣相似的其他用户的推荐列表中就有可能出现这一物品,从而更多的人就会对这个物品产生反馈,导致更多的人的推荐列表中就会出现这一物品,因此该物品就能不断地扩散开来,从而逐步展示到对它感兴趣用户的推荐列表中。

但是,有些网站中推荐列表可能是用户获取信息的主要途径。

那么推荐系统就需要解决第一推动力的问题,即第一个用户从哪儿发现新的物品。

只要有一小部分人能够发现并喜欢新的物品,推荐系统就能将这些物品扩散到更多的用户中。

解决这一问题最简单的方法是将新的物品随机展示给用户,但这样不太个性化,因此可以考虑利用物品的内容信息,将新物品先投放给喜欢过与它内容相似的物品的用户。

推荐系统会每隔一段时间利用用户行为计算物品相似度表(一般一天计算一次),在线服务时推荐算法会将之前计算好的物品相似度矩阵放在内存中。

因此,当新物品加入时,内存中的物品相似度表中不会存在这个物品,从而系统无法推荐新的物品。

解决这一问题的办法是频繁更新物品相似度表,但基于用户行为计算物品相似度是非常耗时的,主要原因是用户行为日志非常庞大。

而且,新物品如果不展示给用户,用户就无法对物品产生行为,通过行为日志计算是计算不出包含新物品的相关矩阵的。

为此,只能利用物品的内容信息计算物品相关表。

4.引入专家的知识。

很多推荐系统在建立时,既没有用户的行为数据,也没有充足的物品内容信息来计算准确的物品相似度。

为了在推荐系统建立时就让用户得到比较好的体验,很多系统都利用专家进行标注。

相关主题