数据派THU

发布清华大学数据科学相关科研动态、教学成果及线下活动

第四范式程晓澄:机器学习如何优化推荐系统

640?wx_fmt=png&wxfrom=5&wx_lazy=1

本文经AI新媒体量子位(公众号ID:qbitai )授权转载,转载请联系出处

本文长度为9532,建议阅读10分钟

本文为你介绍推荐系统的诞生土壤和早起演进、推荐系统当下的基本架构以及如何搭建一个推荐系统。


9月20日晚,我们邀请到第四范式资深算法科学家程晓澄,他以“机器学习在推荐系统中的应用”为题,与大家分享了如何用机器学习来优化推荐系统相关技术问题。


程晓澄是第四范式资深算法科学家、推荐系统服务算法负责人。目前负责逻辑思维得到 APP、海外移动新闻聚合 APP News In Palm 等多个推荐系统的搭建,以及推荐服务功能与架构的设计,用以支撑客户在各类场景和业务的需求。曾任职豆瓣算法部门,参与了豆瓣 FM 等多个推荐系统的搭建和改进。


此次分享干货满满,我们应读者要求,将分享内容编辑整理如下:


大家好,欢迎参加本次机器学习线上分享活动,我是今天的主讲人程晓澄,今天分享的主题是机器学习在推荐系统中的应用。


640?wx_fmt=png&wxfrom=5&wx_lazy=1


这个话题还蛮大的,我也只是从过往的经验里摸出了一条线,所以跟大家分享一下比较宏观的认识。主要从三个方面来说:推荐系统的诞生土壤和早起演进;推荐系统当下的基本架构;如何搭建一个推荐系统。


640?wx_fmt=png


首先讲解一下上世纪90年代—21世纪初,推荐系统诞生的土壤。先描述几个大事件:1995年亚马逊成立网上书店;1998年Google成立,相当于革新了搜索引擎,从以前目录检索式的网站到用户可以随意搜索;2004年,《长尾理论》这本神书问世,书中描述了一个长尾概念,简单来说这个概念就是,如果把世界上的文化产品或者商品做受众统计,可能头部是非常庞大的,但尾部也会非常长,虽然尾部受众人群少,但是这个尾部的所有受众人群加起来也是一个非常庞大的群体,甚至可能会超过头部人群。


举例子来说,亚马逊当时做了一个统计,50%的销量来源于销量排名13万名以后的图书;当时类似亚马逊的一个音乐唱片的网站,50%销量也来自于当年销量排名1万名以后的唱片;以及Netflix最开始做DVD租赁起家的时候,它有20%-30%的销量是来源于销量排名3000名以后的DVD。


其实在有长尾理论之前,人们在做生意,尤其是线下实体生意的时候,多是默认二八法则。二八法则的意思就是说,假如一个书店开在海淀区,那么它的受众就是整个北京的人,当我们要考虑进一批书的时候,如果有一本书属于一个特别冷门的领域,那这本书可能没有几个人会买,考虑到80%的销量是由20%的书带来的这样一个法则,又考虑到仓储空间以及店面可展示的空间,那么店主一定会挑一些热门的大众的书来放在店里。


但是亚马逊当时就颠覆了这个概念,把全世界的书都放在网上,让世界上任何一个人都能找到他感兴趣的内容,那就直接省去了店面的成本,根据喜好直接推荐给他,这个钱就赚到了。


再举个例子来说,在当年人们的文化消费渠道还比较少,一个节目的演出成本很高的年代,春晚就是遵循二八法则的状态,考虑到收视率,所以需要兼顾整个受众群体。那么对于春晚的节目来说,80%的人会喜欢,谁都不讨厌,那就是一个好节目。那事实上也是,春晚的节目就是歌唱类和语言类节目。但是作为一个观众,我如果对这个领域不感兴趣,就算是这个领域顶尖的艺术家,比如说宋祖英唱了一个歌曲,或者说小沈阳表演了一个非常多人喜欢的表演类节目,那么可能,这样节目的观感也远不如我观看喜欢的小众的长尾的领域,虽然受众不多,甚至他不需要是个职业的艺术家,可能表演者只是一个爱好者,但是他创造的内容对我的吸引也远大于其他节目。


换句话来说,YouTube、土豆等一些视频网站是比春晚更好的消费平台。随着后来互联网的对发布门槛的降低,发布成本的降低,人人都能够成为生产者之后,网站内容的销量、受众消费,也大部分是它的长尾,这个网站的业务情况很大程度上取决于把长尾分发得怎样。


640?wx_fmt=png


接下来看一下早期人们的做法,在2000年及21世纪之初,诞生了一些UGC网站:论坛类的Reddit,问答类的Quora,Stack Overflow,和向人们推荐餐馆的大众点评,每天出一些段子的糗事百科等等。


在2006年还非常早的时候,Facebook做了一版ewsfeed,最开始是通过公式的rank的方式来做的。


上图的截图是2012年阮一峰写的技术博客,他就是枚举了一些网站,把信息做排序,想把更好的信息排在更前面的一个方法。


从底下往上看,首先是delicioushacker news Reddit,他们是通过一些加权的做法。右边的这个截图是Stack Overflow公布的他们当时的做法,也就是我把一个帖子的浏览量做一个log再乘4,加上后面这样一串公式,回答数乘回答分数再除以5,再加上回答的评分。


这个算是包含了人们的聪明才智以及PM、编辑的一些经验。PM在跟工程师的沟通中大概会产生这种对话:


PM:“人数多10倍很重要,大概值4分,回答多了多少人,大概和评分人数多了100人是一样的,你把这个工序排一下。”


底下这个分母是说,我帖子越新,得分越高。同时又有一个指标是,这个帖子最近一次更新越新,他的得分越高。这样就避免了这种情况:这个帖子非常热,但是已经很久没有更新过了,那么它只是当时很火,没有持续性的热度。


再往上看这个牛顿冷却定律,大概也是描述这种根据时间衰减的方式。他的原理大概是牛顿观察了一下一杯热水以什么速度逐渐降到室温的这样的物理上的描述。


然后威尔逊区间贝叶斯平均大概是说,对于一个帖子,有顶的人也有踩的人,判断这个帖子好不好,未必是用顶的数减踩的数得到的绝对值,更好一点的方法是看一下顶踩的比例,当顶和踩都很少的时候,置信度是不够的,所以就引入了一个区间,更加宏观地来评价这个帖子。


640?wx_fmt=png


然后说一下Google以前给搜索结果排名的一个方式:PageRank,其实就是用一个公式去衡量什么是好的网站。思路比较像论文的引用,就是说一篇论文被引用得越多,那么可能它影响力更大,越被人们相。进一步推就是,我的论文被引用,得分会更高。


在互联网世界里,Google把它抽象成一个图,相当于所有的网站都是用超级链接链起来的,每个网站会把自己的得分,比如说我的网站有10个链接,就会把得分分成10份投给别的网站。右侧这个公式,意思是最右侧这个R是网站的初始得分,可能每个都是1/N,然后乘这个链接矩阵,这个矩阵就是把它的评分分到了每个网站上,随着这个矩阵不断地乘下去,可能就会出现迭代的投票的效果,最后会得到一个排名。


这个思路还有需要优化的地方。在互联网世界中,可能有那么几个部分是割裂的,比如说可能有一个网站,并没有指向任何别的网站,也没有别人指向它,那它的得分可能就是1/N,从头到尾都没有被更新,但这样其实是不合理的。所以就给他加一个随机化,用刚刚投票的方式来说,假设初始在任意一个网站上的概率其实是1/N,那么下一步用户会移动到哪个网站?先假设所有的链接都是等价的,比如说有5个链接,你就有五分之一的概率去移动到下一个网站,随着这个矩阵连通下去,其实描述的是你点击任意一个随机网站,最后会停留在哪儿的这样一个概率分布。


从游走的概念来说,一个用户不见得是一直一个链接接一个链接点下去,他有可能随时停掉,随机跳到新的网站,重新开始。他跳走的概率有多少呢?就是这个(1-d),所以用另一种方式理解这个rank就是,类似一个随机行走的马尔可夫模型。


这个rank也是取得了非常大的成功,每一期都更新一次,也成了当时互联网网站去描述自己的网站做得多好,推广有多成功的一个权威指标。


640?wx_fmt=png


下面介绍一下亚马逊电商网站是如何做推荐的。


它是应用了一个叫“协同过滤”的概念,就是说通过无数网民在互联网点击消费的行为,然后去挖掘、猜测每个人会喜欢什么。挖掘的信息来源就是上述的评分矩阵,竖行是网站上所有的商品,横行是网站上的用户,每个用户对一个商品有一个打分,没有打分就是零。


做一个假设,如果是用户买过商品,很大可能会消费相似的商品,什么样的商品是相似的呢?就是用这个评分矩阵来刻画,如果两个电影的评分在一个用户或者说很多用户评分里都是一致的,这两个向量相似的话,那么说明用户对它的喜好是一致的。这个相似程度则是通过比较常用的CosSim的方式推算出来。


先说一下这个user based recommendation,这是另一个假设,就是说我们生活中会发现有些跟我们口味相似的人,在很多事情上的见解一致,那如果他喜欢一个电影,但是这个电影是我没看过的,那么其实大概率上我也会喜欢。如果我身边有一群这样的朋友,他们的口味跟我的相似程度不一致,有比较相似的有非常相似的,他们来做一个加权投票的话,他们投出来高分的电影很可能也是我非常喜欢的。


那其实可以看出来对于一些口味很相似的用户,对一个item的评分做一个加权平均,就预测出了这个用户没看过的电影,他是不是喜欢。


用户相似度有很多计算方法,最简单的是点击率的相似度,假如这个电影我们都喜欢,相乘会得到一个比较大的分,反之就会得到一个比较小的分。我跟这个用户分别用两个评分向量相乘就是一个刻画。但是如果两个用户的口味是很相似的,但是一个用户喜欢用1234这么打分,但另外一个用户平常打分习惯是他的两倍,如果用上这个点击率公式,那么结果也是两倍。所以需要做一个归一化,用CosSim的方式,就能得到一个更加一致的结果。


其实还有别的打分方式,比如说一个用户对所有的打分都是偏低的,1234的评分,另一个用户是2345的评分,其实他们的口味和倾向是一样的,这个时候就能用一个pearson来把每个人的得分先减去他日常打分的均值,低于均值是负分,反之是正分,用这个pearson来计算相似程度,用这个相似再得到跟我最相似的朋友,以及这些朋友喜欢什么。同理,如果我把item到user的评分当成一个向量的话也可以做相似操作。


640?wx_fmt=png


但是我们会意识到,前面这个一系列的方式是有问题的,来自于写死的公式,来自于假设的抽象的,但衡量这个抽象的计算方式已经是最好的,可还是有问题的。


一个用户喜欢A,那么他就一定会喜欢跟A相似的东西吗?答案是未必。一个用户的行为模式真的可以用跟他口味相似的其他用户的行为来归纳吗?也未必。在这个向量中,每个item、或者每个user的权重,从公式表达来看都是一样的,但可能未必结果就是正确的。


比如说有的用户是权威用户,他的打分具有一定的原因来解释,有的用户是则凭心情打分,心情好打分就高,那这个用户表达的信息显然跟前一个不一样。每一个类别的物品表达信息含量也未必一样,比如在豆瓣,如果是动画片,那么可能会都会有偏高的分,如果是歌舞片,即便片子本身没有什么道理,只是整个剧情比较欢乐,最后人们也会倾向于给比较高的分数。甚至说有的片子本身就具备了选择观众的属性,会去看这个片的人就会惊人地一致,打出高分或者低分。


所以这个假设未必准确,一个用户未必就喜欢点击率高的网页,有的用户可能就是喜欢过往沉寂很久的老帖子,也可能有的用户看电影就是根据导演来选的。


但是这些方式一定是比随机要好的,毕竟有一定道理。但是最好的情况还是,我有一个更丰富的选择和假设,每个用户有自己的行为逻辑,让评分的方式能够捕捉到他,并且根据每个用户喜欢什么不喜欢什么,自己能够去进行修正和反馈。


640?wx_fmt=png


那么这就说到机器学习的概念,机器学习在里面大概就是假设这个世界里有一个真理,这个真理做的事情就是f,我根据当前的情况,这是个什么样的人,今天天气怎么样,这是个什么样的内容,这些种种情况,推断出这个人是不是喜欢这个item。


我们不知道f具体是什么,我们只是找到一个最终的假说。这个hypothesis也就是这个g希望尽量接近f。这里面有很多组数据,也就是很多组(x,y),然后有一个假设空间,是H,通过一个算法,在A中搜索到一个最接近f的g,搜索一般会定义一个损失函数,来衡量这个输出,也就是g(x)是否足够接近于结果Y,也就是f(x),他们越接近这个效果越好,然后在这个空间,还会有一个算法,去不断优化这个g,使他越来越接近f。


640?wx_fmt=png


举个例子来说,这个f(x)我们不知道是什么,那我们可以想象他是一个公式,比如Y=ax1+bx2+c,再定义一个损失函数cost,Y减去我们做的这个预测的误差的平方,就是个正数,误差越大,这个平方越大,也就是我们的预测不准。


有一个算法去优化这件事,尽量使cost小,产生出g,打个比方来说,g(x)=3x1+4x2+2,这种方式,可以Y定义成点击或不点击,看一个电影的时长,也可能是看一个电影给的评分,也可能是量化用户体验和营收的一个方式。


640?wx_fmt=png


在这种机器学习的方式下,诞生了更多更好的推荐方式,大概在2006、2007年之前,还是普遍应用之前讲到的协同过滤的方式来做推荐,2006年Netflix设立了一个奖项,说谁能把点击率提高10%,就能拿到100万美金的奖赏,这个奖大概在一年后就被人拿到了,而用这种方法就是机器学习中矩阵分解的方法


这种方法就是说,首先要定义什么是Y,这个Y就是预测用户对一个东西的评分。这个预测过程就是已知用户ID和item ID,然后预测评分,预测越准,提升的效果越大。


这个做法是:把这个事情抽象出来,用电影来举例,每个人都有自己的喜好,比如喜欢动画片,喜欢到什么程度,是不是喜欢惊悚片,更喜欢严肃的电影还是轻松的,英文还是中文,把用户喜好展开成100维、200维,甚至更多的维度。而同样的一个电影有自己的属性,把用户喜好和影片属性相乘再加起来,得到一个总分,就是用户对这个影片的喜好程度。再定义一个损失函数的计算方式,也就是这个真实的评分减去预测出来的评分的平方,加上一些优化引导的东西,去小化这个值,算出来了每个user和每个item有一个隐含的喜好和特征的向量,从而得到一个预测的结果。这个结果比之前的结果准确率提高了10%,这也成了新一代内容推荐的标杆。


640?wx_fmt=png


但其中也是存在问题的。


我们看到这个预测中只是用到了user ID,item ID,和每个老用户历史评分,难道一个新的内容和新的用户就无法刻画了吗?比如说一个导演新拍了一个电影,根据他过往的表现,就可以从一定程度上预测出来什么人会喜欢,他的评分会怎样。


如何利用到更多的信息,也是提高推荐效果的一个方式。


我们想象一下现实生活中是怎样的。看一下上面这张图片,图中是一位女士,在一个服装店,导购在第一眼看到他的时候就会做一些判断:顾客有没有男朋友,带男朋友可能花钱更多;当前的季节是什么,秋天的话会买厚衣服;店铺的位置,是在CBD还是五道口;观察用户其他信息,身上穿的是什么牌子,同样牌子可能更有效;他拎了一个什么包,表现了这个顾客的消费能力;这个顾客以前有没有在店里买过东西;进店以后是不是盯着一个东西在看,还是随便看看。以及导购员需要对每个商品有丰富的了解:这个商品过往被什么人买,款式、面料是怎样的,有没有什么故事可以讲,是不是打折等等。


640?wx_fmt=png


这些更多的特征可以注入到机器学习这个算法模型中,去提供更多的选择,也就是我们提供了更多的空间,这个空间就不限于之前的评分公式,不限于之前的rank方法,不限于之前兴趣维度的预测指标。可以把更多更丰富的信息放进去,包括用户的信息,商品的信息,当前的一些信息比如天气,最近的情况,用户之前买过什么等等。


每一种信息都对应了一种猜想,哪一种猜想会发挥作用,哪一种猜想的权重更高,都可以用数学的方法去训练和学习。机器学习里监督学习的预测引擎也就成为了广告投放、搜索排序、电商、内容推荐领域的核心引擎。也从之前的一个选做题变成了一个必做题,甚至变成了直接衡量推荐做得怎样的一个核心指标。


640?wx_fmt=png


现在说一下推荐系统的一个典型架构,大致是三块:召回、排序、生成推荐列表。


我们刚才介绍了推荐的预测模型,那么是不是能直接用它直接做一个好的推荐呢?不是,现在数据的候选集都是百亿级千万级,这些海量信息,通过一个一个去算出一个很精细的结果,时间成本非常高。


就比如说我们公司要招聘5个人,如果收到1000个简历,面试虽然是个不错的方式,但是如果面完,显然是不可能。一般我们都会先用种种方式,来筛选出一些比较优质的人来面试,可能是根据以前工作的行业,学校、业绩等等指标进行排序,最终得到一个顺序,按排序结果得出最好的十个二十个,再邀请其中杰出的几个人来面试。


640?wx_fmt=png


首先第一步,怎么来做初步筛选,我们需要尽量用一个效率高的方式来进行初筛。最简单的方式是排序召回,召回比较新的比较热的内容,离这个用户比较近的内容。可以应用的信息比较少的一些简单模型,没有线上排序模型那么大,但是他的计算效率比较高;也可以做一些规则召回,比如说今天阴雨天,用户可能买伞,比如利用近期浏览,甚至他的关系,他的朋友买了什么等等。电商的推荐网站为了获取最好的推荐方式,不断尝试各种规则,甚至可能比你男朋友想得更细。


640?wx_fmt=png


然后在排序这个阶段,之前也提过考虑更多的因素,比如秋天到了,是不是该推荐更多的应季的商品;用户现在用的是4G网,是不是有可能更爱看短的文本内容;用户在APP上很活跃,有很多行为序列,那他的这些序列是不是会有一个行为的迁移,或者这些社交关系能不能带来什么支持。


640?wx_fmt=png


现在这个比较前沿的排序模型就是这个wide&deep models,同时结合了宽跟深的一种方式。首先所有的特征通过宽的方式注入到这个模型,以及一些比较难提取的特征,比如被推荐内容的图片信息,可以通过CNN去算出特征属性;文字信息可以通过Word2vec去得到属性;用户的观看、收藏、购买、搜索序列可以通过embedding的方式去算出来。当然这些模型是每个都会输出一个预测值,但我们一般都会退一层,用前一层的信息来做决策,比如说,我们有三个面试官,分别面一面二面三面,他们的输出是一个简单的分,通过或者不通过。但可以让面试官们把这个打分更加细化,比如说工程能力怎么样,学术能力怎么样,他来公司的意愿有多强。把这些信息用得更丰富,这个模型可能会得到一个更好的结果。


640?wx_fmt=png


这个模型是否还要去被输出呢?也不是。


就像一个用户在餐馆,每次吃完饭都能得到一个评价,通过模型训练可能发现这个人最喜欢吃排骨,那么通过这个排序,排名前十的可能就是红烧排骨、糖醋排骨、清蒸排骨、排骨汤等等,但是显然这么一桌菜摆上来用户的体验很不好。


作为推荐系统来说也是,我们希望结果尽量多样化,这个用户最喜欢的领域是足球,最喜欢梅西,凡是梅西的话题必点,但是我们也不可能只推荐梅西的内容给他,那他可能就这个系统绝望了。用户还是希望看到多样化的内容,时政娱乐军事都需要。从体验上来讲,也要权衡,是着重挖掘,根据现在已知到的用户喜欢的内容不断去展现;还是要考虑到给用户展现不同内容,来收集他其他的领域的一些偏好。虽然会有推荐用户不喜欢推荐内容的风险,但其实也有可能收获到用户喜欢的一个新领域,那我们之后的推荐选择面会更广,用户体验也会更好。除此之外,这个推荐系统,在准确性、多样性和新颖性上也需要有一定的权衡。


640?wx_fmt=png


下面来说一下,实现这个推荐系统的架构,需要怎么做。


首先,线上请求发生的时候我们需要做哪些事情。我们需要从整个候选集中通过多种规则去选择,然后选择完需要过滤,筛掉用户已经看过的不喜欢的,再进入排序,再通过模型获取参数来做一个计算,最后根据一些规则,多样化去重去生成一个列表。有可能通过这个过程产生的结果还不够一次展示,就需要倒回去用更大的召回范围来丰富内容。在整个流程中,考虑到用户体验,需要把完成时间控制在200毫秒100毫秒以内,这还是一个蛮强的工作挑战,需要不少的优化工作。


640?wx_fmt=png


为了让这个机器学习模型获得足够丰富的数据,还要搭建一个线下数据流的闭环。最开始首先要有一个全部候选集信息存储的一个表格,来根据这个表格做搜索,然后线上去实时地做记录最后做拼接。


然后我们做一个推荐的时候,我们要把这个用户特征和物品特征做一个拼接。当用户点了是否喜欢或者选择购买,或者关闭,删除等等一些操作后,会把用户行为反馈到之前的生成特征上,然后把这些特征整体送入到这个模型中去进行训练。


640?wx_fmt=png


这整个系统,是需要能够快速迭代,快速回应产品和性能上算法上要求,需要更多的进步和进化。


有一句话是说“一个象棋大师会被一个每回合走两步的业余选手轻松击败。”就是说哪怕想得再精确,目标再对,如果走得非常慢的话,也是会被别人进步的步伐甩开。


我们这个架构也是,如果产品的需求来了,就需要非常快地从推荐结果中显示出来。如果模型更新没有这么快的话,能不能用其他的策略或者通过其他的规则显示出来。以及模型需要更新,尽量做更多的实验,去收集这个数据,然后做出更好的选择。


640?wx_fmt=png


机器学习这一块还有很多挑战。首先是速度,数据的增长是不受技术控制的,尤其是产品成功之后,会有更多的用户、更多的数据和更多特征,如何在有限的时间内完成模型训练更新是机器学习计算框架最大的挑战之一。


用到这么多的特征,用更复杂的模型,效果提高了,那么这些效果和成本之间如何平衡和取舍也是一个问题。


还有专门针对机器学习任务优化的计算框架。


另一个问题是从可扩展性来说,业务增长的速度不仅是量的增长也可能是维度增长,比如说我们拥有了更多的用户种类,更多的内容种类,以及特征的增长同时也都是带来了更大的挑战。


这个公司从小到大,适合的是不同的推荐模式;一个公司变成了一个更大的公司,有了足够多的数据比例,更多的数据其实能够允许我们建立更复杂的模型,去输出更好的结果,如果充分利用了这些数据,那么这个推荐结果也会成为一个更大的壁垒。换句话说,如果跑得足够早,仅仅依靠这个壁垒,别人也很难追上你。


640?wx_fmt=png


机器学习在研究上也有这么几个优化方向。


比如说我们优化的是y=f(x)这件事,那我们能不能收集到更好的y,比如说更好的产品形式和交互设计,能让用户更加无负担地给出一个真实的反馈,甚至能不能有一个更革新的产品形式,让用户和推荐系统的互动更加融合。


从X的角度来说,有更多的特征种类可以利用,比如被推荐内容的图像、音频、文本特征、session特征,我们有了更多特征,做特征组合和特征变换,如何得到一个更优质的X,以及如何去丰富我们的假设空间,我们如何去抽象我们要处理的问题,去设计与它相匹配的优化算法,这些都是未来的优化方向。


Q&A


能不能具体讲一下真实业务场景中常用的推荐算法模型,或者给一下具体paper的名字?以及现在主流推荐算法是什么?


一个现在最主流的也是一个很古老的算法,就是逻辑回归。


现在比较前沿的应用,可以搜一下ftrl和lr两个关键词,是Google在落地回归上做的一些更新的尝试,现在基本上所有做广告推荐,以及一些做内容推荐的场景都是用lr,因为它能用到极其丰富的特征,它的模型特点是:简单的一个线性模型,但是模型的并发性能非常好,而且在并发训练的实践上已经有了一些非常深的积累。


对于一个新用户,也没有其他的用户的交互信息,一般是怎么来对其做推荐的?


首先任何一个用户其实都不是全新的,他其实到这个网站,都有一些原始信息。比如用户使用的是iPhone还是安卓;用的是电信还是网通;GPS是在什么位置,他在这些信息里面就包含了一定量的人群刻画信息。那再组合一下,如果识别到这个人是在五道口,在用WiFi和校园网,那么极大可能这就是一个在校学生,在宿舍或者教室上网。那这样的人群可能在你的浏览和点击喜好上一定有统计特征,把这些特征组合起来,大概就能识别某一些人群刻画的特征。


再比如从社交网站,比如用微博登陆,把它关注的人群和你要推荐的内容绑定在一起,也许就有不错的效果。


深度学习在推荐领域有什么应用?


在有一些场景下能够拿到的信息是非常少的,比如说一个直播推荐,这个主播是一个新主播,没有历史的数据,在注册的时候也没有填什么信息。这样的话手上对于用户的信息就很少,那现在你只能去主动挖掘一些他没有提供,但是你能收集到的信息。比如他的头像,能不能识别出颜值,比如直播过程中的背景音乐,从图像来看是打游戏还是美妆还是跟我一样在讲PPT,都能识别出一些信号。或者说如果是一个新闻推荐,而收集到的类别信息又不够多的话,可以从文本信息中去提取到类别和关键字之类的,那这些用到的就是深度学习的方法。


对于物料更新比较频繁的应用,比如新闻推荐,ID类特征是否能提升效果?


这个内容刚刚出现在推荐平台上的时候,是没有任何历史信息,但是我们其实有几种维度的方式来解决。从能提供的来讲,把现有的用户分成几群,甚至把信息掌握已经非常丰富的用户给他做一个聚类,生成十几二十个群,再把一个新的内容做一个随机分发,比如说UCB或者其他方法收集一些不同类型用户的反馈,就能得到一个信息,这个新闻ID更适合哪种人群,然后再用这种比较粗糙一点的规模去做一个分发,度过这个分发初期之后,如果这个模型支持线上学习的话,可能一个小时或者30分钟之后你的模型就能把这个ID类信息训练出一个更好的推荐结果。


今天的分享就到这里结束了,谢谢大家观看~


编辑:文婧0?wx_fmt=jpeg

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/tMb8Z9Vdm66wH68VX1/article/details/78179061
想对作者说点什么? 我来说一句

非线性最优化计算方法

2010年11月21日 5.45MB 下载

没有更多推荐了,返回首页

不良信息举报

第四范式程晓澄:机器学习如何优化推荐系统

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭