代码改变世界

基于用户行为为用户推荐商品

2020-02-11 17:08  默默不语  阅读(1335)  评论(0编辑  收藏  举报

1、用户行为数据
  用户行为数据在网站中最简单的存在形式就是日志,用户行为就是指用户在系统中进行的各种操作,比如用户在电商网站中进行的浏览、点击、搜索、购买、收藏等行为。我们可以通过分析这些数据来推测用户喜爱哪种商品,从而为用户推荐他们更偏爱的商品。

2、用户行为分类

  根据反馈的明确性来说,用户行为在个性化推荐系统中一般分两种:①显性反馈行为:明确表示用户对商品喜恶的行为,比如评价、收藏等;②隐性反馈行为:不能明确表示用户喜恶的行为,比如浏览页面等。

  根据反馈的方向来说,用户行为数据可以分为:①正反馈:对于某一商品用户倾向于喜欢它;②负反馈:对于某一商品,用户倾向于厌恶它。

  对于显性反馈行为我们很容易区分一个用户行为是正反馈还是负反馈, 而在隐性反馈行为中,则相对难以确定。

3、推荐算法

  在推荐系统中,最基本也最广泛应用的算法是基于用户的协同过滤算法(UserCF)基于物品的协同过滤算法(ItemCF)基于用户的协同过滤算法(UserCF)的基本思想是:当为A用户推荐时,可以先找到和他有相似兴趣的其他用户,然后把这些用户喜欢而A用户没有浏览的物品推荐给A,即为A用户推荐与他有相似兴趣的用户喜欢的商品。

  但是随着系统用户量的增多,计算用户兴趣相似度矩阵将越来越困难,其运算时间复杂度和空间复杂度的增长和用户数的增长*似于*方关系。而且基于用户的协同过滤很难对推荐结果作出解释。因此,亚马逊提出了另一个算法——基于物品的协同过滤算法(ItemCF)。

  基于物品的协同过滤算法(ItemCF)的基本思想是:给用户推荐那些和他们之前喜欢的物品相似的物品。 比如,该算法会因为你购买过《Java从入门到精通》而给你推荐《Java并发编程实战》。不过,基于物品的协同过滤算法并不利用物品的内容属性计算物品之间的相似度,二是通过分析用户的行为数据计算物品之间的相似度。该算法认为,物品A和物品B具有很大的相似度是因为喜欢物品A的用户大都也喜欢物品B。

  ItemCF流程:

  ①计算物品间的相似度

  

  N(i)代表喜欢i商品的用户数量,由此我们可以看出,Wij代表喜欢i商品的用户中同时喜欢j商品的用户比例。

  在得到商品之间的相似度后,ItemCF通过如下公式计算用户对一个商品的兴趣:

 

  其中P(u,j)表示用户u对商品j的兴趣,S(j,K)表示和物品j最相似的k个商品,N(u)表示用户产生过行为的商品集合,Wij是物品i和j的相似度,r(u,i)表示用户u对物品i是否产生过行为。

4、UserCF与ItemCF比较

  4.1个性化程度

  UserCF的推荐结果着重于反映和用户兴趣相似的小群体的热点,而ItemCF 的推荐结果着重于维系用户的历史兴趣。换句话说,UserCF的推荐更社会化,反映了用户所在的小型兴趣群体中物品的热门程度,而ItemCF的推荐更加个性化,反映了用户自己的兴趣爱好。

  4.2易解释程度

  ItemCF基于用户的历史行为进行推荐,对推荐结果容易进行推荐解释,而UserCF很难对推荐结果作出解释。

  4.3相似度矩阵

  UserCF要计算用户相似度矩阵,适用于用户个数远少于物品个数的场景;ItemCF要计算物品相似度矩阵,适用于物品个数远少于用户个数的场景。互联网中物品的相似度相对于用户的兴趣一般比较稳定,UserCF中用户相似度矩阵相比ItemCF中物品相似度矩阵更新更为频繁。

  4.4冷启动问题

  对于物品冷启动来说,UserCF算法对物品冷启动不敏感, 对于新加入系统的物品,一旦有用户对该新物品产生行为,UserCF算法就可以将该新物品推荐给和该用户相似的人群,而ItemCF算法无法很好地推荐新加入的物品。

  对于用户冷启动来说,ItemCF算法对用户冷启动不敏感,对于新加入的用户,一旦新用户对某物品产生行为,ItemCF算法就可以给该新用户推荐和该物品相似的物品,而UserCF算法无法很好地给新加入的用户产生推荐。

  所以,新闻网站多用UserCF算法,电商推荐网站多用ItemCF算法。

  由于我们开发的为电商网站,所以接下来我们重点学习ItemCF算法。