5类常见的推荐算法洺剑残虹

最近因为PAC平台自动化的需求,开始探坑推荐系统。这个乍一听去乐趣无穷的课题,对于算法大神们来说是这样的:

而对于刚接触这个领域的我来说,是这样的:

在深坑外围徘徊了一周后,我整理了一些推荐系统的基本概念以及一些有代表性的简单的算法,作为初探总结,也希望能抛砖引玉,给同样想入坑的伙伴们提供一些思路。

什么是推荐系统

推荐系统是啥?

如果你是个多年电商(剁手)党,你会说是这个:

如果你是名充满文艺细胞的音乐发烧友,你会答这个:

如果你是位活跃在各大社交平台的点赞狂魔,你会答这个:

目的1.帮助用户找到想要的商品(新闻/音乐/……),发掘长尾

帮用户找到想要的东西,谈何容易。商品茫茫多,甚至是我们自己,也经常点开淘宝,面对眼花缭乱的打折活动不知道要买啥。在经济学中,有一个著名理论叫长尾理论(TheLongTail)。

目的2.降低信息过载

互联网时代信息量已然处于爆炸状态,若是将所有内容都放在网站首页上用户是无从阅读的,信息的利用率将会十分低下。因此我们需要推荐系统来帮助用户过滤掉低价值的信息。

目的3.提高站点的点击率/转化率

好的推荐系统能让用户更频繁地访问一个站点,并且总是能为用户找到他想要购买的商品或者阅读的内容。

目的4.加深对用户的了解,为用户提供定制化服务

可以想见,每当系统成功推荐了一个用户感兴趣的内容后,我们对该用户的兴趣爱好等维度上的形象是越来越清晰的。当我们能够精确描绘出每个用户的形象之后,就可以为他们定制一系列服务,让拥有各种需求的用户都能在我们的平台上得到满足。

算法是什么?我们可以把它简化为一个函数。函数接受若干个参数,输出一个返回值。

推荐算法大致可以分为以下几类[1]:

这种算法的优点是简单,适用于刚注册的新用户。缺点也很明显,它无法针对用户提供个性化的推荐。基于这种算法也可做一些优化,比如加入用户分群的流行度排序,例如把热榜上的体育内容优先推荐给体育迷,把政要热文推给热爱谈论政治的用户。

协同过滤算法(CollaborativeFiltering,CF)是很常用的一种算法,在很多电商网站上都有用到。CF算法包括基于用户的CF(User-basedCF)和基于物品的CF(Item-basedCF)。

基于用户的CF原理如下:

示意图如下:

基于物品的CF原理大同小异,只是主体在于物品:

举个栗子,基于用户的CF算法大致的计算流程如下:

首先我们根据网站的记录计算出一个用户与item的关联矩阵,如下:

图中,行是不同的用户,列是所有物品,(x,y)的值则是x用户对y物品的评分(喜好程度)。我们可以把每一行视为一个用户对物品偏好的向量,然后计算每两个用户之间的向量距离,这里我们用余弦相似度来算:

然后得出用户向量之间相似度如下,其中值越接近1表示这两个用户越相似:

最后,我们要为用户1推荐物品,则找出与用户1相似度最高的N名用户(设N=2)评价的物品,去掉用户1评价过的物品,则是推荐结果。

基于物品的CF计算方式大致相同,只是关联矩阵变为了item和item之间的关系,若用户同时浏览过item1和item2,则(1,1)的值为1,最后计算出所有item之间的关联关系如下:

我们可以看到,CF算法确实简单,而且很多时候推荐也是很准确的。然而它也存在一些问题:

对于矩阵稀疏的问题,有很多方法来改进CF算法。比如通过矩阵因子分解(如LFM),我们可以把一个nm的矩阵分解为一个nk的矩阵乘以一个k*m的矩阵,如下图:

这里的k可以是用户的特征、兴趣爱好与物品属性的一些联系,通过因子分解,可以找到用户和物品之间的一些潜在关联,从而填补之前矩阵中的缺失值。

CF算法看起来很好很强大,通过改进也能克服各种缺点。那么问题来了,假如我是个《指环王》的忠实读者,我买过一本《双塔奇兵》,这时库里新进了第三部:《王者归来》,那么显然我会很感兴趣。然而基于之前的算法,无论是用户评分还是书名的检索都不太好使,于是基于内容的推荐算法呼之欲出。

举个栗子,现在系统里有一个用户和一条新闻。通过分析用户的行为以及新闻的文本内容,我们提取出数个关键字,如下图:

将这些关键字作为属性,把用户和新闻分解成向量,如下图:

之后再计算向量距离,便可以得出该用户和新闻的相似度了。这种方法很简单,如果在为一名热爱观看英超联赛的足球迷推荐新闻时,新闻里同时存在关键字体育、足球、英超,显然匹配前两个词都不如直接匹配英超来得准确,系统该如何体现出关键词的这种“重要性”呢?这时我们便可以引入词权的概念。在大量的语料库中通过计算(比如典型的TF-IDF算法),我们可以算出新闻中每一个关键词的权重,在计算相似度时引入这个权重的影响,就可以达到更精确的效果。

sim(user,item)=文本相似度(user,item)*词权

然而,经常接触体育新闻方面数据的同学就会要提出问题了:要是用户的兴趣是足球,而新闻的关键词是德甲、英超,按照上面的文本匹配方法显然无法将他们关联到一起。在此,我们可以引用话题聚类:

利用word2vec一类工具,可以将文本的关键词聚类,然后根据topic将文本向量化。如可以将德甲、英超、西甲聚类到“足球”的topic下,将lv、Gucci聚类到“奢侈品”topic下,再根据topic为文本内容与用户作相似度计算。

综上,基于内容的推荐算法能够很好地解决冷启动问题,并且也不会囿于热度的限制,因为它是直接基于内容匹配的,而与浏览记录无关。然而它也会存在一些弊端,比如过度专业化(over-specialisation)的问题。这种方法会一直推荐给用户内容密切关联的item,而失去了推荐内容的多样性。

基于模型的方法有很多,用到的诸如机器学习的方法也可以很深,这里只简单介绍下比较简单的方法——Logistics回归预测。我们通过分析系统中用户的行为和购买记录等数据,得到如下表:

表中的行是一种物品,x1~xn是影响用户行为的各种特征属性,如用户年龄段、性别、地域、物品的价格、类别等等,y则是用户对于该物品的喜好程度,可以是购买记录、浏览、收藏等等。通过大量这类的数据,我们可以回归拟合出一个函数,计算出x1~xn对应的系数,这即是各特征属性对应的权重,权重值越大则表明该属性对于用户选择商品越重要。

在拟合函数的时候我们会想到,单一的某种属性和另一种属性可能并不存在强关联。比如,年龄与购买护肤品这个行为并不呈强关联,性别与购买护肤品也不强关联,但当我们把年龄与性别综合在一起考虑时,它们便和购买行为产生了强关联。比如(我只是比如),20~30岁的女性用户更倾向于购买护肤品,这就叫交叉属性。通过反复测试和经验,我们可以调整特征属性的组合,拟合出最准确的回归函数。最后得出的属性权重如下:

现实应用中,其实很少有直接用某种算法来做推荐的系统。在一些大的网站如Netflix,就是融合了数十种算法的推荐系统。我们可以通过给不同算法的结果加权重来综合结果,或者是在不同的计算环节中运用不同的算法来混合,达到更贴合自己业务的目的。

在算法最后得出推荐结果之后,我们往往还需要对结果进行处理。比如当推荐的内容里包含敏感词汇、涉及用户隐私的内容等等,就需要系统将其筛除;若数次推荐后用户依然对某个item毫无兴趣,我们就需要将这个item降低权重,调整排序;另外,有时系统还要考虑话题多样性的问题,同样要在不同话题中筛选内容。

用户画像是最近经常被提及的一个名词,引入用户画像可以为推荐系统带来很多改进的余地,比如:

另外,公司的优势——社交平台也是一个很好利用的地方。利用用户的社交网络,可以很方便地通过用户的好友、兴趣群的成员等更快捷地找到相似用户以及用户可能感兴趣的内容,提高推荐的准确度。

总结

随着大数据和机器学习的火热,推荐系统也将愈发成熟,需要学习的地方还有很多,坑还有很深,希望有志的同学共勉~

THE END
1.最新推荐算法引领个性化推荐未来趋势淘宝模特摘要:最新推荐算法引领个性化推荐的未来。该算法具备高度智能化和精准化特点,能够深度分析用户行为和偏好,为用户提供更加个性化的推荐服务。该算法采用最新的机器学习和人工智能技术,不断优化模型,提高推荐质量和准确性。该算法将在电商、社交、娱乐等领域得到广泛应用,为用户带来更加便捷、个性化的体验。 https://news.hbhuizhan.cn/post/8859.html
2.常用的几种推荐算法介绍本文详细介绍了个性化推荐系统中的各种推荐算法,包括基于内容、协同过滤、关联规则、效用推荐、知识推荐、上下文推荐和深度学习等,并对比了UserCF和ItemCF的优缺点,适用于电商、资讯、音乐、短视频等领域。 摘要由CSDN通过智能技术生成 个性化推荐(推荐系统)经历了多年的发展,已经成为互联网产品的标配,也是 AI 成功落地的https://blog.csdn.net/leyang0910/article/details/135395507
3.推荐算法有哪些推荐算法有哪些 推荐算法是机器学习和数据挖掘领域的一个研究方向,其目的是向用户或者群体推荐可能感兴趣的物品或者信息。常见的推荐算法有以下几种: 1. 基于规则算法:根据用户的历史行为和一些先验知识,制定一些推荐规则,将合适的物品推荐给用户。 2. 协同过滤算法:基于用户行为数据进行推荐,在用户历史数据集合中找到https://www.jianshu.com/p/accb96c6df67
4.推荐算法中有哪些常用排序算法?推荐算法中有哪些常用排序算法? 夏老师 03-21 00:13 千锋教育一、协同过滤 协同过滤是一种基于用户行为的推荐算法。它通过分析用户历史行为数据,发现用户之间的相似性,从而推荐给某个用户其他与其相似用户喜欢的物品。协同过滤算法分为基于用户的协同过滤和基于物品的协同过滤两种类型。 二、基于内容的推荐 这种算法https://localsite.baidu.com/article-detail.html?articleId=20190018&ucid=n1DvP1c3nHf&categoryLv1=%E6%95%99%E8%82%B2%E5%9F%B9%E8%AE%AD&ch=54&srcid=10004
5.常见的推荐算法有哪些及它们的优缺点。腾讯云开发者社区常见的推荐算法有哪些及它们的优缺点。 大家好,我是贤弟! 常见的推荐算法包括以下几种: 一、基于内容的推荐算法 基于内容的推荐算法是将用户的历史偏好和物品的属性进行比较,从而为用户推荐相似的物品。算法主要思想是在物品的内容描述中提取特征向量,并计算不同物品之间的相似度,然后推荐与用户过去喜欢的物品相似的https://cloud.tencent.com/developer/news/1278222
6.推荐算法有哪些推荐算法有哪些 低调2024-08-03 14:08:30 推荐回答 低调2024-08-05 09:54:17 推荐算法是计算机专业中的一种算法,通过一些数学算法,推测出用户可能喜欢的东西,目前应用推荐算法比较好的地方主要是网络,其中淘宝做的比较好。推荐算法主要分为6种。基于内容的信息推荐方法的理论依据主要来自于信息检索和信息过滤,https://m.yyk.iask.sina.com.cn/q/87Uy60hTGWW9.html
7.快手客服怎么联系人工客服?快手规则有哪些?推荐算法有哪些? (1)审查机制:作品发布后,平台将对作品进行初步审查,即筛选一些违法作品,杜绝色情暴力、迷信传播、广告营销等垃圾内容。 (2)智能分发:当您通过审核时,系统将向初级流量池推荐您的工作。在用户互动后,系统将对工作做出判断。如果条件满足,则不推荐。 https://www.mmker.cn/article/14189.html
8.抖音海外版TikTok揭秘短视频推荐算法的工作机制就在今天,TikTok在海外官方博客发表了一篇文章,详细介绍了推荐算法的工作机制,以及如何针对用户进行加权运算,以实现精准推荐的。 总的来说,TikTok的推荐算法是基于输入因素构建的,这与YouTube测量和监控参与度的方式有些相似。人们与应用程序的交互方式、发布的评论或关注的帐户,都会影响到推荐。比如,如果某人只关注了可https://www.thepaper.cn/newsDetail_forward_7914836
9.媒体客户端高质量发展,技术和经营领域有哪些对策2.优化推荐算法,赋能正向化智能推荐 算法推荐可有效缓解信息过载的问题,同时,由于其对“技术逻辑”与“商业逻辑”的过度重视,容易造成“信息茧房”下的认知失衡等一系列隐患。媒体应服务于公共利益,如叠加推荐算法,指在前期流量的基础上,根据算法判断作品是否为受欢迎的内容,算法会为优质内容自动加权、叠加推荐。叠加https://www.cnr.cn/yggg/hyzx/20230908/t20230908_526412502.shtml
10.五大推荐系统算法java推荐系统算法有哪些五大推荐系统算法java 推荐系统算法有哪些 受到大家公认的推荐算法基本包括以下几种:基于内容的推荐、协同过滤推荐、基于关联规则的推荐、基于知识的推荐、组合(混合)推荐及其他推荐 1 基于内容的推荐 基于内容的推荐是根据用户已经选择的对象,从推荐对象中选择其他特征相似的对象作为推荐结果。https://blog.51cto.com/u_16099166/9068610
11.新传考研热词——算法推荐1.新闻的呈现方式、生产方式、盈利模式有所变化 算法推荐出现后,使得原来的新闻业呈现的“拼盘”的版面-频道式,被单个单个的“爆款”所取代。算法新闻通过数据处理和定制化的方式,提高了信息传播的到达率,满足了用户分众化的信息需求,节省了用户获取新闻的成本;在生产方式上,以传者为中心的模式转变成以受者为中心,https://m.douban.com/note/819182888/
12.如何增加抖音权重抖音常用运营方法分享运营技巧自媒体搬运视频是一个捷径,但是有的时候捷径并不适合所有人走,有些人能火是有很多运气成分在里面,短期可以玩玩,对于长期做号是很危险的。最保险的生产方式还是踏踏实实做原创。 8.抖音的算法是怎么回事? 抖音的算法,其实是一个漏斗机制,跟今日头条等其他自媒体平台的中心化的推荐算法原理基本一致。它分为三个步骤: https://www.jb51.net/zimeiti/753669.html