人工智能开发实战推荐算法应用解析
天涯幺妹 2024-10-02 10:01:01 阅读 72
内容导读
个性化推荐思路推荐算法分类推荐效果评估
一、个性化推荐思路
推荐系统能为你提供个性化的智能服务,是基于以下事实认知:人们倾向于喜欢那些与自己喜欢的东西相似的其它物品,或倾向于与自己趣味相投的人有相似的爱好,或者不同的客户群体有固定的购物习惯等。
推荐系统就尝试捕捉这一规律,来预测你可能喜欢的其它东西,并主动将你可能感兴趣的内容推荐给你,从而让用户对系统产生依赖和感到较好的服务体验,提高用户忠诚度。个性化推荐的实现过程如图所示。
由个性化推荐实现过程示意图的用户信息、物品信息和用户行为数据隐藏了用户的偏好,用户的行为数据将用户和物品关联起来,例如:
小李从网上购买了一本《人工智能基础与应用》,我们就可以认为他对人工智能感兴趣,给他推荐一本《机器学习》是合情合理的。
张帅尽管没有购买人工智能方面的书,但我们发现他与小明在客户信息方面非常相似,就可以根据“相似的人具有相同的爱好”这个兴趣模型向张海推荐《人工智能基础与应用》之本书。
总而言之,推荐系统首先分析用户行为数据,然后根据用户偏好(用户爱好相似|用户喜欢相似的物品|用户有相似的购买行为等)模型和相应的推荐算法对样本数据进行筛选过滤,找到待推荐用户可能感兴趣的物品,最后按序将预测结果推荐给用户,这就是个性化推荐系统的工作过程。
推荐系统的任务就是连接用户和信息,创造价值,作为一种信息过滤系统,推荐系统具有以下两个最显著的特性:主动化、个性化。
目前,推荐系统已广泛应用于诸多领域如图所示。常见有:
电商平台个性化视频网站音乐歌单社交网络
新闻网站
冷启动:
推荐系统中常有“冷启动”的问题。它是指新用户注册或者新物品入库,该怎么样给新用户提供推荐服务让用户满意,怎么将新物品推荐出去,推荐给喜欢它的用户。
例如一个网站刚建立,用户和物品内容比较少,用户的行为数据更少,所以很难基于购买行为去推荐。
为解决这个问题,可以使用热门内容作为推荐结果,逐渐收集用户行为数据,不断完善推荐结果,吸引更多用户注册和消费,从而形成良性循环。
二、推荐算法分类
根据推荐系统使用数据的不同,可分为基于用户行为的推荐、基于内容的推荐、基于社交网络的推荐等。
主流的推荐系统算法主要有:
(1)协同过滤推荐
(2)基于内容推荐
(3)关联规则推荐
1、协同过滤推荐
协同过滤算法是推荐领域中应用最广泛的算法,该算法不需要预先获得用户或物品的特征数据,仅依赖于用户的历史行为数据对用户进行建模,从而为用户进行推荐。
协同过滤算法主要包括基于用户的协同过滤(User-Based CF)、基于物品的协同过滤(Item-Based CF)、隐语义模型(Latent Factor Model)等。
基于用户和物品的协同过滤——通过统计学方法对数据进行分析的,因此也称为基于内存的协同过滤或基于邻域的协同过滤;隐语义模型——采用机器学习等算法,通过学习数据得出模型,然后根据模型进行预测和推荐,是基于模型的协同过滤。
(1)基于用户的协同过滤(简称UserCF)
基于用户的协同过滤的基本思想为:给用户推荐和他兴趣相似的用户感兴趣的物品。
当需要为一个用户A进行推荐时,首先,找到和A兴趣相似的用户集合(用U表示),然后,把集合U中所有用户感兴趣而A没有听说过(未进行过操作)的物品推荐给A。算法分为如下两个步骤:
①计算用户之间的相似度,选取最相似的N个用户构成用户集合;
②找到集合中用户喜欢但目标用户没有用过的物品,推荐给用户。
相似度计算是协同过滤算法的重要内容,就是计算两个向量之间的距离,距离越近相似度越大。
例如,一个用户对所有物品的偏好(用户对物品的喜好程度,如评分、评论或投票等)作为一个向量,两个向量间的距离就是用户之间的相似度。相似度通常用皮尔逊相关系数或余弦向量相似度表示。
皮尔逊相关系数:
余弦向量相似度:
余弦向量相似度是用向量空间中两个向量夹角的余弦值作为衡量两个个体间差异的大小。余弦值越接近1,就表明夹角越接近0度,也就是两个向量越相似,如图5.4所示,这就叫“余弦相似性”,即个体a与b的余弦向量相似度sim(a,b)=cos(θ)。
当向量a与向量b的夹角θ为0时,sim(a,b)=1,向量a和b重合,即两者相等。当θ为90时,sim(a,b)=0,表示两者不相关。当θ为180时,sim(a,b)=-1,向量a与b方向相反,表示两者完全负相关,余弦向量相似度理论就是基于上述基本思想来计算个体之间相似度的一种方法,计算公式如下。
xi和yi分别表示用户a、用户b对物品i的评分。可以看出,无论采用皮尔逊相关系数还是余弦相关系数来计算用户之间的相似度,前提是用户对物品有评分,如果是一个新的用户,他没有购物行为,就无法用评分向量来计算相似度,我们把这种情况称为冷启动。
一种解决冷启动的方法是利用用户自身的个体特征(如兴趣、职业、性别、年龄等)来计算两者之间的相似度,然后进行用户协同推荐。
下表是三个用户购买物品的情况,我们要解决的问题是该向用户D推荐什么物品。
由上表可以看到与用户D最相似的用户集合U={用户A,用户C},那么用户A和用户C喜欢的物品很有可能用户D也喜欢,所以将用户A、用户C喜欢的{物品4、物品5}推荐给用户D是合适的。
(2)基于物品的协同过滤(简称ItemCF)
基于物品的协同过滤是目前应用最为广泛的算法,该算法的基本思想为:给用户推荐与他们以前喜欢的物品相似的物品,这里所说的相似并非从物品的内容角度出发,而是基于一种假设:喜欢物品A的用户大多也喜欢物品B代表着物品A和物品B相似。
基于物品的协同过滤算法能够为推荐结果做出合理的解释,比如,电子商务网站中的“购买该物品的用户还购买了其它物品…”。
ItemCF的计算步骤和UserCF大致相同,算法步骤如下。
①计算物品之间的相似度;
②针对目标用户u,找到和用户历史上感兴趣的物品最相似的物品集合,然后根据感兴趣程度由高到低确定N个物品推荐给用户u。
物品相似度计算如下,假设:N(i)为喜欢物品i的用户结合,N(j)为喜欢物品j的用户集合,则物品相似度计算公式可以定义为:
上述公式将物品i和物品j的相似度定义为:喜欢物品i的用户中有多少比例的用户也同时喜欢物品j。
不难看出,如果这个相似度较大,且一个用户只购买了物品i,那么我们可以认为该用户对物品j的兴趣度很高,因为多数其它用户购买i的同时也购买了j,所以将物品推荐给该用户是合理的。
但如果物品j十分热门,大部分用户都很喜欢,那么就会造成所有物品都和j有较高的相似度,因此可以对计算公式进行如下改进:
得到物品相似度后,可以根据如下公式计算用户u对感兴趣物品j的兴趣度(或评分)r(u, j)。
其中S(i)代表和物品i最相似的N个物品,N(u)为用户u曾经感兴趣的物品集合(i是该集合中的某一个物品),simij为物品i和物品j的相似度, rui为用户u对物品i的兴趣度。
该公式的含义为:与用户历史上感兴趣的物品越相似的物品,越有可能在用户的推荐列表中获得比较高的排名。
例如用户A从某网站购买了《人工智能基础》和《Python编程》两本书,试采用ItemCF方法为用户A推荐几本书。
首先计算这两本书与其它书的物品相似度,分别找出和它们最相似的三本书(此处只取前3个最类似物品),然后根据兴趣度计算公式计算用户A对每本书的感兴趣程度,最后按兴趣度大小列出书的信息即完成推荐,整个推荐过程如下图所示。
2、基于内容推荐
基于内容推荐的基本思想是为用户推荐与他感兴趣的内容相似的物品,比如用户喜欢励志类电影,那么系统会直接为他推荐《阿甘正传》这部电影,这个过程综合考虑了用户兴趣和电影内容,因此不需要提供用户的历史行为数据,这能够很好地解决新用户的冷启动问题。
基于内容推荐的关键问题是对用户兴趣特征和物品特征进行建模,主要方法有向量空间模型、线性分类、线性回归等。
基于内容推荐需要预先提供用户和物品的特征数据,比如电影推荐系统,需要提供用户感兴趣的电影类别、演员、导演等数据作为用户特征,还需要提供电影的内容属性、演员、导演、时长等数据作为电影的特征,这些需要进行预处理的数据在实际应用中往往有很大的困难,尤其是多媒体数据(视频、音频、图像等),在预处理过程中很难对物品的内容进行准确的分类和描述,且在数据量很大的情况下,预处理效率会很低下。
针对以上不足,提出了基于标签的推荐方法,可以由专家或用户为物品打标签,实现对物品的分类。
基于内容的推荐算法如下。
①为每个物品(Item)构建一个物品的特征数据(Item Profile)
②为每个用户(User)构建一个用户的喜好特征(User Profile)
③计算用户喜好特征与物品特征的相似度,相似度高意味着用户可能喜欢这个物品,相似度低往往意味着用户不喜欢这个物品,为用户推荐一组相似度最大的item即完成推荐。
3、基于关联规则的推荐
关联规则是一种常用的电子购物的个性化推荐,其原理是基于物品之间的关联性,通过对顾客的购买记录进行规则挖掘,发现不同顾客群体之间共同的购买习惯,从而实现顾客群的兴趣建模和商品推荐。
例如你在超市通道等待结账时顺手买了一包口香糖,或许在买了一些啤酒的同时顺便买了一袋花生米等,这些看似冲动的购买行为其实隐藏了某些购买模式。
早期的关联分析主要用于零售行业的购物行为分析,所以也称之为购物篮分析。
上表中表示用户交易记录,我们成为事务数据集,其中,面包、牛奶、啤酒是独立的商品项,即项目。
所有项目的集合称为总项集。下表的总项集S={牛奶,面包,尿不湿,啤酒,鸡蛋、可乐},而项集是指总项集中所有项不同组合形成的集合,例如{牛奶}、{牛奶、面包}、{牛奶、尿不湿、啤酒}等都是项集,项集中的项目数为k的称为k-项集,因此,上述项集分别是1-项集,2-项集,3-项集。
判断一个关联规则是否令人感兴趣,取决于三个统计量:支持度(Support)、置信度(Confidence)和提升度(Lift)。
(1)支持度(Support)是指两件商品A和B在总销售笔数(N)中同时出现的概率,即A与B同时被购买的概率,其计算公式如下:
(2)置信度是购买A商品同时还同时购买B商品的概率。如果置信度大说明购买A的客户有很大概率也会购买B商品,其计算公式如下:
上表中,{尿不湿}→{啤酒}的置信度为3/4=0.75,而相比之下,{牛奶}→{面包}的置信度为4/5=0.8。这意味着顾客在涉及尿不湿的一次购买中同时购买啤酒的可能性是75%,而牛奶的一次购买中同时购买面包的可能性是80%,这些信息对卖场的经营也许相当有用,如在推荐商品时,如果发现用户购买了面包,则可以向其推荐牛奶,或者搭配组合销售。
(3)提升度是指关联规则是否有效,即当销售一个商品A时,另一个商品B的销售率会增加多少,提升效果如何。计算公式如下。
一般说来,当提升度(A->B)的值大于1的时候,说明物品A卖得越多,B也会卖得越多。而提升度等于1则意味着产品A和B之间没有关联。如果提升度小于1,则意味着购买A反而会减少B的销量。
关联规则的提取过程即是找出所有支持度support≥最小支持度min_support,且置信度≥最小置信度min_confidence以及提升度靠前(>1)的关联规则。像{牛奶}→{面包}这样的规则称为强规则,因为它们同时具有高支持度和高置信度。
可以通过穷举项集的所有组合方式来找出所需要的规则,每个组合都测试其是否满足支持度和置信度条件,一个元素个数为n的项集的组合个数为2n-1,事件复杂度为O(2n)。
Apriori算法是一种基于Apriori原则的最低水平的支持度和置信度,通过减少规则的数量来迅速找到更有用的强规则,以达到一个更好的推荐效果。
下面,利用Apriori算法求解下表所示的交易事务中存在的关联规则。假设最小支持度是50%,最小置信度为50%。
应用Apriori算法的计算过程如下图所示:
从上图的计算过程可以看出,利用Apriori算法的一个简单的先验性质:非频繁项集的超集一定是非频繁的,大大减少了关联规则的搜索空间;最终得到的频繁3-项集的所有子集也一定是频繁的,各规则的置信度均超过阈值50%,所以这些规则都可以按业务进行推荐或进一步筛选备用。
顾客的这种购买模式还是非常有趣的,也值得引起我们的注意,例如在所有顾客中,有一半的人同时购买了面包、鸡蛋和啤酒,只要有顾客购买了面包、鸡蛋,那他一定也会同时购买啤酒。
利用这些典型的购买模型,为商店优化库存、宣传促销活动或者整理店内的商品摆放布局提供了新的洞察力。
推荐算法虽然都可以为用户进行推荐,但每一种算法在应用中都有不同的效果:
UserCF的推荐结果能够很好地在广泛的兴趣范围中推荐出热门的物品,但却缺少个性化;ItemCF能够在用户个人的兴趣领域发掘出长尾物品,但却缺乏多样性;基于内容推荐依赖于用户特征和物品特征,但能够很好的解决用户行为数据稀疏和新用户的冷启动问题;关联规则的推荐结果很容易理解,但对应小的数据集不是很有帮助,容易得到虚假结论。
因此,每种推荐方法都各有利弊,相辅相成。
三、推荐效果评估
通过前面的学习我们知道,推荐系统不仅可以预测用户的兴趣和行为,还能发现用户潜在的未被发现的情趣爱好,给用户以惊喜,即推荐系统在为用户推荐物品时一般采用两种方式:评分预测和TopN推荐。
(1)评分预测方法一般通过推荐算法学习用户对物品的历史评分,预测用户可能会为他没有进行评分的物品打多少分,通常用于在线视频、音乐等服务的推荐
(2)TopN推荐一般不考虑评分,而是为用户提供一个个性化推荐列表,通过预测用户对物品的兴趣度对列表进行排序,选取其中前N个物品推荐给用户,通常用于电子商务、社交网络、互联网广告推荐等领域。
一个推荐系统的推荐效果好坏,还需要用评价指标来衡量,同时,通过推荐效果评估有助于发现推荐系统存在的问题,从而进行针对性的改进,那么如何评估推荐系统的效果呢?下面我们从几个方面加以分析:
1、评估方法
常用推荐系统的评估方法有离线实验、用户调查和在线实验等。
(1)离线实验
新推荐算法要上线需要通过多个评测验证, 离线实验是目前最常用的一种方法,通过源于用户行为数据可直接验证新算的各项指标情况, 进行离线实验的要准备足够多的用户及相关行为数据, 实现步骤如下。
构建测试数据集,并按照比例将数据集分为训练集与测试集。在训练集上建立算法模型,对用户及其兴趣建模。按照预先定义的评估指标在测试集上进行预测,判断推荐效果。
(2)用户调查
用户调查的对象一般是真实用户,通过在推荐系统进行操作, 查看的准荐结果,然后与用户的问卷调查结果比对,从而验证推荐效果。这种方法存在一定的人工工作是和无效数据误差。一般在系统刚运行. 没有太多实验数据的情况下进行。
用户调查可以获得用户感受,并可与其进行对话交流,真实而全面的衡理推荐效果,但由于操作规程复杂、耗时长测试用户代价较大, 很难组织大规模用户进行验证。
(3)在线实验
在线实验最用的方法是A/B测试,在用户较多的大型系统中可按一定规则将相似用户分组,针对不同分组用户应用不同推荐算法,然后比较不同的评测结果,对比不同推荐算法的推荐效果。
这一方法的关键是要找到多组相似的用户群,如果用户群体的一致性存在误差,则对比结果将不准确。在某些用户行为数据缺失的情况下,对新功能进行验证测试效果比较好,但是在实验并不能实时获得评估结果,需要经过一定周期的实验才能得到相对可靠的结果。
2、评测指标
推荐系统的效果评估分为定量分析和定性评价,实践中因定量分析不仅可以通过离线实验快速获取结果,而且具有可量化的特点,所以优先使用,其常用指标包括如用户满意度、预测准确度和覆盖率等。
(1)用户满意度
用户满意度指标一般采用用户问卷调查或在线实验的方式进行统计,在采用问卷调查时,涉及到问卷的设计,可能有较大的误差,因为大部分用户并不能直接说出其真实的意图,所以需要对问卷精心设计,并对问卷结果的解读也有一定的要求。
一般推荐使用在线实验的方法统计用户满意度,通过对推荐结果产生的响应行为进行跟踪分析。按照用户后续行为是否与推荐结果产生了关联或影响,实践中可用转化率、点记率等进行定量分析。
(2)预测准确度
预测的准确度通常通过离线实验计算,它度量推荐系统的预测能力,是推荐系统最常用的评估指标,具体分为预测评分准确度和TopN推荐。
评分预测方法一般通过推荐算法学习用户对物品的历史评分,预测用户可能会为他没有进行评分的物品打多少分,通常用于在线视频、音乐等服务的推荐。评分预测的效果评估一般通过均方根误差(RMSE)和平均绝对误差(MAE)等指标计算。
MAE因其计算简单得到广泛应用,但其有一定的局限性,因为对MAE指标贡献比较大的往往是很难预测准确的低分商品,其计算公式为:
其中T表示测试集,包含用户u和物品i, rui是用户u对物品i的实际评分,而ȓui是推荐系统给出的预测评分,显然MAE值越小表示预测越准确。
但有时即便某推荐系统A的MAE值低于另一个推荐系统B,也很可能是由于推荐系统A更擅长预测这部分测试集的商品,显然采用MAE这样的指标在某些业务场景是不合适的。
而RMSE定义为:
RMSE加大了对预测不准的用户物品评分的惩罚,因而对系统的评测更加苛刻。
TopN推荐一般不考虑评分,而是为用户提供一个个性化推荐列表,通过预测用户对物品的兴趣度对列表进行排序,选取其中前N个物品推荐给用户,通常用于电子商务、社交网络、互联网广告推荐。其一般通过准确率(precision)、召回率(recall)度量。
准确率是指所有用户对推荐列表中真正喜欢的物品总数占所有推荐物品的比例,其值越大,表示用户喜欢的推荐物品也越多,计算公式如下。
召回率是指所有用户对推荐列表中真正喜欢的物品总数占用户在测试集上喜欢物品的比例,其值越大,说明有更多推荐的物品出现在用户喜欢的物品清单中,计算公式如下。
由前面描述可知,准确率和召回率都只能衡量推荐性能的一个方面,最理想的情况肯定是准确率和召回率都比较高。
更多精彩内容请持续关注本站!
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。