基于用户行为为用户推荐商品
2020-02-11 17:08 默默不语 阅读(1489) 评论(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算法。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
2018-02-11 《需求工程 ——软件建模与分析》读书笔记02