基于内容的推荐算法详解+问题思考

本文探讨了基于内容的推荐系统在电商场景的应用,介绍了构建商品与用户特征的方法,并讨论了多种推荐算法及其优缺点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

最近参加了一个推荐的比赛,就像了解一些推荐相关的技术,也跟着学习总结一下,相同的内容不同的理解,我也要记录下我的思考。

场景

我们假设一个电商的场景,电商有很多商品,怎么把商品推荐给用户 就是我们思考的问题,这么多的商品,有那些方法来做这么一件事。

基于内容的推荐(Content-based Recommendations)

思路:构建每个用户特征,构建每个商品特征,计算用户与商品的相似性,将相似性高并且用户没有购买的商品推荐给这个用户。思路很简单,但是要思考的问题很多。

问题:

  • 1、商品特征属性如何构建?用户特征属性如何构建?
    首先提取商品特征,这个不依赖与用户,跟用户没有任何关联,单纯的商品的特征,比如品类、价格、数量、品牌、适用人群年纪等等,当然也可以从商品评论中获取一些关键词来补充,但那些事非结构化的特征,操作空间非常多。
    然后构建用户特征,这个很难,用户的特征跟商品没有任何关系,如何构建?具体看用户的行为,比如用户在之前有没有喜欢过什么商品,把这些商品特征组合归纳出来,每一个商品特征求一个平均值,就得到这个用户对商品的喜好特征,这样商品特征跟用户特征是统一的,特征数值不一样而已,这样用户喜好特征和商品特征都是统一的。

  • 2、构建之后他们的相似性如何计算?一般计算相似性都是特征属性之间,如果用户属性与商品属性不一致,这该如何处理?
    利用相似度计算、分类算法等等,其中相似度算法就是普通的余弦相似度,二分类算法则有很多,决策树、线性分类、贝叶斯等算法都是可以用来把商品分类,一类是推荐给用户的,一类是不推荐给用户的。

  • 3、一个推荐技巧
    这个技巧是Rocchio算法,它信息检索中处理相关反馈(Relevance Feedback)的一个著名算法,大致思想就是根据用户对搜索的结果的点击反馈来实时更新用户的特征,参考博客里有一个搜索引擎的例子,我就不列举了,换一个例子,比如给用户推荐了10个商品,他点击了其中的两个商品,那么我们可以根据这两个特征来实时更新用户特征,然后下一次推荐的时候,就用更新后的用户特征来更新这些数据。

算法的适用性讲解

分类算法中有一个问题,就是用户特征包括两个类别:用户喜欢的,以及他不喜欢的。用户喜欢的我们可以比较轻松搞定,但是不喜欢的就不好确定,很容易就把用户潜在兴趣的商品给作为不喜欢的,稳妥的做法就是把用户近期购买的商品作为他不喜欢的商品。

  • 决策树
    当item的属性较少而且是结构化属性时,决策树一般会是个好的选择。这种情况下决策树可以产生简单直观、容易让人理解的结果。而且我们可以把决策树的决策过程展示给用户u,告诉他为什么这些item会被推荐。但是如果item的属性较多,且都来源于非结构化数据(如item是文章),那么决策树的效果可能并不会很好。
  • 线性分类
    比如Logistic Regression和 线性svm算法,
  • 贝叶斯分类
    这个分类算法比较简单,但是局限性比较大,因为用户喜欢的商品可能太少了,讨厌的商品也太少了,样本集不足够大,对于一个几十万商品的电商公司来讲,似乎推荐的商品种类、品牌都会比较多。一种思想是去扩展用户喜欢的商品和不喜欢的商品,通过商品之间的相似度来做扩展,选取相似度高的商品。

总体感觉分类算法在实际推荐中还是有一些问题的,实际效果比较不好。

构建特征

所谓基于内容的推荐算法(Content-Based Recommendations)是基于标的物相关信息、用户相关信息、用户对标的物的操作行为来构建推荐算法模型,为用户提供推荐服务。

  • 标的物相关信息可以是对标的物文字描述的metadata信息、标签、用户评论、人工标注的信息等,对于电商来说,商品就是标的物,商品会涉及品牌、类目、用户群体、价格、国家等做特征。
  • 用户相关信息是指人口统计学信息(如年龄、性别、偏好、地域、收入等等)。
  • 用户对标的物的操作行为可以是评论、收藏、点赞、观看、浏览、点击、加购物车、购买等。

基于内容的推荐算法一般只依赖于用户自身的行为为用户提供推荐,不涉及到其他用户的行为,也就是不涉及到用户跟用户之间的连续,每个用户都是独立的。很重要的一点就是基于内容的推荐系统其实只维护来商品特征,因为在构建用户特征的时候,其实是利用用户对商品的行为得到一系列商品,对商品特征做平均、去冗余等操作方法来得到用户喜好的商品特征,只不过特征值不一样而已。

优点
  • 1、用户独立,不受其他用户影响,特别是垃圾账号,刷单账号
  • 2、新商品上架后可以根据它与其他商品的相似性来推荐,那协同过滤就不太行,因为刚上架还没人买,也就短期内无法推荐,不能增加产品曝光率,也就知道的更少。
缺点:
  • 1、无法挖掘用户的潜在需求:你只能推荐用户使用过或者点赞过等行为得到的相似商品,你不清楚用户在未来需要的是什么。就好像我们去逛超市,经常会买很多东西,其实很多东西不是自己一开始就想要的,但是逛超市的过程中,我们就突然觉得这东西有一些需求,我们可以来购买,于是我们就买了,需求不会那么强,但是似乎买了也是一件不错的事,推荐就是这样,它最好可以帮助我们来筛选一些我们可能需要的东西,让用户看到突然想起家里什么东西好像快用完了,需要买新的了。那么基于内容的算法可能不太满足这种场景。
  • 2、提取特征要根据具体的场景,很多特征是跟业务关联的,有些是商品基本特征属性,在不同的业务场景中会有其他不同的特征,这些得靠人工提取,推荐的结果也非常依赖这些特征。
  • 3、无法给新用户推荐,这也是很尴尬的地方,新用户进来,无任何行为,可能都是随意购买,那么用户特征也无法关联商品,也就无法推荐。

参考博客

推荐系统从入门到接着入门
基于内容推荐算法详解(比较全面的文章)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值