基于物品相似度的协同过滤算法的特点及适用机制
优采云 发布时间: 2021-06-28 05:03
基于物品相似度的协同过滤算法的特点及适用机制
最近接到一个任务,一个教育类APP的智能推荐板块,根据用户的购买习惯推荐相应的可购买内容,满足客户的个性化需求,增加产品的点击量以及购买量。
一、业务逻辑及适用机制
客户要求如下:
可以看出用户对这里的智能推荐的个性化需求非常强烈,推测用户对之前购买过的同类型商品更加着迷。
目前市面上主流的推荐算法大致可以分为以下几类:
这个项目非常符合基于物品相似度的协同过滤算法的使用场景。
二、算法特点
基于物品相似度的协同过滤算法的适用场景具有以下特点:
长尾商品丰富、用户个性化需求强的区域;长尾效应很好理解。比如,最主流、最热的书总是占据书店最显眼的位置,而不太受欢迎的同类型书放在书架上的可能性要小得多,即使这些冷门书籍确实还有市场要求。如果用户购买了某本热门书籍,那么我会向老用户推荐相同类型但不是很好的书籍。这是非常合理的吗?每个人阅读的书籍类型千差万别。我告诉你,你不认识的人也喜欢看书,你不一定想买。
当物品数量远小于用户数量时; item数据比用户数据本身更稳定,item数据的样本量小。这时候物品的相似度计算不仅小,而且不需要经常更新。程序压力小。
因此,该算法常被应用于图书、电商、教育和电影网站,这些领域都符合以上两个特点。
基于物品相似度的协同过滤算法侧重于维护用户的历史兴趣,其交互特征是推荐结果的实时变化。其优缺点如下:
三、算法的实现
本项目中,基于物品相似度的协同过滤算法的实现大致如下:
计算项目的相似度(课程/活动/表演/展览/比赛等)。
步骤如下:
使用物品的内容属性来计算相似度。内容属性类似于一个标签,可以反映项目的共性。
项目可以是物理对象或虚拟娱乐服务。比如某个表演的类型,是戏剧、舞蹈还是唱歌?适合人群是10-18岁的表演青少年、二十多岁的大学生,还是工作稳定、家庭富裕的中年人?演出场地是茶馆、体育馆还是歌剧院?
一个item可以有多个tag,两个item具有相同tag的tag越多,两个item的相似度就越高。
分析用户行为记录以计算相似度。用户的行为记录包括观看过的演出、观看过的展览、参加过的比赛、购买过的商品等,在确认用户的行为偏好后,“适合自己”。
为用户生成推荐列表。将物品与用户的行为关联起来,与用户历史中感兴趣的物品越相似的物品,就越有可能在用户的推荐列表中获得更高的排名。需要考虑以下几个方面:
业务场景:可分为冷启动、非冷启动新用户、非冷启动老用户、匿名用户四种。不同的业务场景应用不同的算法。对于本项目,基于物品的协同过滤推荐算法适用于非冷启动老用户。
不同的业务场景应用不同的算法
推荐位置:前端推荐列表的入口(首页或某个模块)和内部接口层次要考虑。
结果评估:推荐列表上线后,采集数据进行算法优化。需要对比算法前后的销量和销量增长情况,以衡量算法的有效性,及时调整推荐机制。
本项目在前端给出了智能推荐主入口,提供展示服务、比赛服务、演出服务三个次入口。
需要说明的是,这三个二级入口导入的内容一直保持不变,但属于同类项目的长尾列表,曝光率可能偏低。智能推荐需要做的就是增加这些内容的曝光率。
考虑的物品的内容属性和权重系数不同:
展览服务(展览):
比赛服务(比赛):比赛类型(书法、绘画、朗诵、小发明等标签)。
表演服务(表演):表演地点、表演类型(朗诵、唱歌、舞蹈、素描等标签)、表演时间(近期推荐)等,类似展览。
后台给出了算法的模板配置页面、推荐配置页面和结果评估页面。
本文由@Smile 原创发表在人人网是产品经理。未经许可禁止转载
标题图片来自Unsplash,基于CC0协议
奖励作者,鼓励他努力!
欣赏