《几种推荐算法的学习》
本文是推荐算法专科毕业论文范文跟几种和推荐和算法有关毕业论文范文.
基金项目:西北民族大学2019本科生科研创新项目《基于混合推荐算法的网络课程获取系统》;项目编号:XBMU-BYL19154
摘 要:每当我们打开淘宝时,你会发现,首页的推荐商品是你前几天搜索过或者浏览过的商品的同类商品.打开今日头条,每次他都能精准的为你推送你想看到的新闻.又例如你喜欢看关于猫的视频,在抖音、快手中看了很多条关于猫的视频,那么你会发现,你下面的视频中,关于猫的视频占比会非常之大.而这些,都是使用了各种种类的推荐算法,以此做到精准的个性化推荐.例如,微博的热搜榜,就是使用了基于热度的推荐算法.当然,不管是对于商品还是新闻(以下简称item)的推荐,不止是一种推荐算法在里面发挥作用.是多种推荐算法的融合、取权,再推荐组合.
关键词:推荐算法;热搜榜
一、基于热度的推荐算法
热度推荐算法,是计算该item在全站中的热度排名并将前几名推荐给用户的算法.
对于item的热度值的计算公式可以是:总热度等于基础热度+用户交互热度-时间衰减热度.不同item基础热度的取值不应该是固定的、相同的.因为不同时期,用户对不同item的兴趣度不同.例如在网络课程类APP的推荐中,当英语四六级或计算机二级成绩出来后.相关类课程视频必定会受到没通过的考试的喜爱,對于其的搜索势必也会增加.因此,基础热度的取值应当不一样,可以使用热词匹配的方法,将不同种类的item的基础热度区分,以达到更精准的推荐.用户交互热度是指用户对于某个item的交互行为产生的热度,可以是点赞(fabulous)、分享(share)、*(for)、评论(comment)等.当用户对一个item产生交互时,我们就可以根据交互种类分别乘以对应的热度分累加在之前的热度上.当然,不同种类的热度分是需要根据交互的重要程度设定的.例如对于*的热度分是要大于点赞的.并且不同种类的交互行为热度分也需要根据用户规模适当增加或减少,应当按热度分和用户规模的比例.
有些item具有时效性,当一段时间过去后,其重要性就会大大减少.因此需要一个时间衰减热度,与之前算出来的热度相减去来使过期item降低排名.而这个时间衰减热度不应该是线性的.参考牛顿冷却定律,这个衰减公式应该是一个指数函数:
T(Time)等于e
其中T1为当前时间,T0为item发布时间.最终热度也需要随时间的发展而无限趋近为0.因此,最终的总热度公式修改为:
总热度等于(基础热度+用户交互热度)/T(Time)
二、基于用户的协同过滤推荐算法(ItemCF)
(一)用户行为数据
对于用户行为数据的获取,最简单的一种形式应当是日志.用户对于单个item的点击、*、好评等称为显性反馈行为,对于单个item的浏览、频繁搜索等称为隐形反馈行为.
(二)算法实现
这个算法是给用户推荐和他品味差不多的其他用户喜欢的item,主要包括:
1.找到和目标用户兴趣相似的用户集合.
2.找到这个集合中的用户喜欢的,且目标用户没有浏览过的item推荐给目标用户.
对用户行为的相似度计算,我们是通过余弦公式或者jarccard进行计算的:设N(u)为用户U虚幻的物品集合,N(v)为用户v喜欢的物品集合.通过jarccard公式,计算u和v的相似度为:
Wuv等于
利用余弦公式计算相似度:
Wuv等于
下面计算用户两两之间的相似度矩阵
因为利用余弦公式,计算相似度的时间复杂度为O(N2),耗时巨大.因此需要建立一张item到用户之间的倒排表来排除没有任何联系的用户之间的相似度计算,再根据倒序表计算共同评分过的矩阵.设用户A评价过的item有abd,B评价过的有ac,C评价过的有b、c,D评价过的有cde.则有如下表:
其中每个数值都代表余弦相似度中的分子部分,通过分子除以分母以得到最终的用户兴趣.就是可以通过上图中的共同评分过的物品的矩阵转换为用户之间的相似度矩阵,且只用计算非零的部分.比如要计算A与B的用户相似度时.AB矩阵值为1,即他们共同交集的物品为1.A总共评分过的物品个数为3,B共同评分过的物品个数为2,可计算出相似度为
筛选出k个与用户目标最相似的用户
在计算出用户之间的相似度后,通过以下公式给用户推荐和他兴趣最相似的K个用户喜欢的物品.
S(u,K)是和用户u兴趣最相近的K个用户,N(i)是对物品i有过行为的用户集合,Wuv是用户u和v的兴趣相似度,rvi为1.例如,对目标用户A进行推荐.选取K等于3,用户A对物品c,e没有过行为,因此可以把这三个物品推荐给A,通过计算得用户A对c的兴趣为p(A,c)等于WAB+WAD等于0.7416,对e的兴趣为p(A,c)等于WAC+WAD等于0.7416.
三、基于内容的推荐算法(CB)
CB算法是最早被应用到推荐算法中的,它是根据用户过去喜欢的item,为用户推荐与之类似的item.
它一般分为三个步骤:
1.物品表示:为每个item概括出一些特征(也就是item的content)来表示此item.
2.特征学习:利用一个用户过去喜欢和不喜欢的item的特征数据,以此学习出此用户的喜好特征(profile).
3.生成推荐:通过比较上一步得到的用户profile与候选的item的特征,为此用户推荐一组相似度最大的item.
那么如何知道用户的喜好呢,可以在用户注册后就让用户选择感兴趣的分类,这也是较为常见的做法.我们也会获取用户的历史浏览的数据,对于用户历史浏览较高的分类关键词提取.对于item的特征获取,我们可以在入库时就为这个item添加分类标签.
结束语:
当然,推荐算法不止这几种,并且,对于以上推荐算法在项目中的使用,也需要反复的推敲,以达到精准的个性化推荐.
作者简介:李科文(1998-),男,汉族,西北民族大学,学士.研究方向:推荐算法.
综上资料:本文论述了关于经典推荐算法专业范文可作为几种和推荐和算法方面的大学硕士与本科毕业论文推荐算法论文开题报告范文和职称论文论文写作参考文献.
推荐算法引用文献:
[1] 推荐算法论文范文 推荐算法本科论文开题报告范文5000字
[2] 推荐算法和算法自考毕业论文范文 关于推荐算法和算法类本科论文怎么写3000字
[3] 推荐算法和混合式学习论文怎么写 推荐算法和混合式学习方面论文参考文献范文2万字