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