电子商务网站的开发流程包括,临沂专业做网站公司,浅谈阿里企业的电子网站建设,二维码在线生成文 | 水哥源 | 知乎saying1.懂模型不只是要知道模型能干什么#xff0c;更要知道它不能干什么2.在从业一段时间后应该有一次“转职”#xff0c;如果你相信模型无所不能#xff0c;你应该走科研路线#xff1b;如果你对模型不是很放心#xff0c;那你应该成为一名工程师3.… 文 | 水哥源 | 知乎saying1.懂模型不只是要知道模型能干什么更要知道它不能干什么2.在从业一段时间后应该有一次“转职”如果你相信模型无所不能你应该走科研路线如果你对模型不是很放心那你应该成为一名工程师3.舍弃一些眼前利益是短痛把平台的活力做没了就是长痛了4.我们要把模型看作是一个喜欢敷衍甩锅的人时时刻刻要防止它在我们给定的任务上作弊偷懒5.做模型好看是好看但是慧极必伤。只有拍脑袋才是永恒误在这一讲开始之前我们先回答上一讲留下的问题几千阅读都没有人回答下的嘛。。。Q为什么我们需要多路召回而不是一个主路就把所有的情况都涵盖了A由于之前讲过的原因召回是时延负担最大的地方这个客观条件使得我们设计的模型都相对简单。在这样的情况下模型能力比较弱不太可能做到“涵盖所有情况”。Q为什么刷单对商家有利可图它符合我们这两讲中的哪一条性质刷单这种手段是否可以检测出来涉及到哪一类算法A刷单就是漏斗的后面环节。订单购买等行为是较强的正样本根据前面讲的正反馈性质这一系列正样本会使得商家在模型的预估和排序上更靠前不论是推荐中还是搜索中都有可能。这个手段涉及的算法是反作弊举个例子就是下单行为总是集中在某几个账号或者有个下单行为连商品都没看完一路直捣黄龙就付款了可能会被标记。这一讲中我们要讲一讲模型之外的环节。这些环节看起来并不高大上但是他们的重要性一点也不低。在推荐的整过程中穿插着许多策略环节来辅助。这些策略有些是为了推荐的结果更好有些则是为了某种长期规划或者营利诉求。刚毕业的同学可能会觉得模型很高级写ifelse很low。我个人不提倡大家这样想问题因为在求学阶段我们天天面对的都是模型所以会不自觉的带着“模型即世界”这样的思维惯性。我们跳出这个视角现在的主流模型无非就是一些MLPtransformer啊mmoe之类的。你要说这些新模型距离线性回归变化大那当然是很大。但是你要说现在的模型无所不能了那显然也还差的远。有很多的策略机制都是在弥补模型能力的欠缺。当我们称为一名工程师的时候除了知道模型能做什么之外还需要想想模型不能做什么。我一直说相对于模型策略其实是一个更有门槛的领域模型研究的是客观规律而策略可能研究的是人心。研究模型易读懂人心难。在本讲我们介绍几种最常见的策略环节。上面的图展示了策略可能在模型附近出现的环节当然做活动撒币之类的都算策略不过些我们可以留到运营篇再慢慢讲其中黄色标出来的部分都是策略部分。可以看到策略本身就可以成为一路召回比如前面讲的按照热度或者精品池召回。策略可以强行在排序的过程中保送一部分内容还可以在输出结果后进行重组。本讲具体介绍下面几种策略根据标签区分对待标签系统高度渗透在整个推荐的流程中。标签系统最重要的功能是对用户进行分层。根据当前用户是属于活跃或者非活跃是老用户还是新用户是哪一个年龄段的用户都要制定具体的策略。许多产品运营同学的第一课就是一定要学会分层的看待用户针对性的优化每一种群体的体验。这就需要我们通过用户的历史行为或者调查问卷等信息来进行判别。我们先忽略如何得到用户的标签讨论下有了用户的标签之后怎么用。假如有一个金币的补贴策略意思是说用户做了任务之后会有奖励。这个任务可能是看视频点关注分享之类的。我们当然不能对所有的用户都一视同仁了发金币本身是要算亏损的最后要评估得到的收益是不是值得这样的亏损一方面这个活动的主要点当然是在刺激那些看视频不是很多的用户那一个本来就会看很多视频的用户激励自然就没必要那么多。除此之外在不活跃的用户里面还要区分敏感与不敏感的用户。有的用户很喜欢这种激励本来没什么热情你一发金币他马上就看得多了起来。但是有的用户可能很佛系你发了他也不怎么受到鼓励那我们就会倾向于给那些容易受到激励的用户多发金币。这个例子中判别用户是不是活跃是不是容易受到激励就是非常重要的。这是标签系统指导策略的一个例子。标签系统的另一个要点是要突破“语义鸿沟”。比如说当我搜索“盘古七星”的时候我可能不是要看这个酒店的客房而是看内部的商户或者周边有什么吃的盘古七星打钱。但是周围的商户的店名不可能都带着这四个字。这个时候内部的标签可以给它们打上“盘古七星周边美食”这样一个标签就可以把它们展示出来。这种用途非常关键其作用也非常提升用户体验。打压与保送并非所有的生产内容在平台看来都是平等的。有的内容是政府要传达的重要精神那就算点击率不高也要放出去。有的内容虽然吸引人但是很容易消耗掉用户的兴趣所以要控制度。因此有的内容我们要打压有的则要保送。需要打压的一般有这么几种情况第一种是观感容易引起不适的比如各种皮肤病广告。这种内容的密度需要控制不然天天推这种东西谁顶得住啊。第二种是存在政策风险的比如某些擦边球内容平台可能不会强制取消但是不敢放任不然容易被警告。第三种是不合时宜的类型比如时效性很强的新闻奥运已经过去一个多月了就应该少出现这类内容了。需要保送的一般则有这些情况最直接的就是掏钱了那我们就往前排。这样的例子就有淘宝直通车。也没什么别的理由就是可以创收呗。另一种是平台已经钦定了比如说我这个APP就要走高端名媛风那这类内容就得多多推送我也不在乎不喜欢的用户怎么想我的人设就这样。打压和保送的决定一般很早就出现了比如我们要给哪种item加量但是实际操作一般是在精排出结果之后按照他们的标签就是上面的标签系统偷偷做点手脚。操作时可以直接对输出分数做boost加偏置或者乘一个系数。探索与利用含泪笑承损探索和利用本身是一个很大的方向这里所涉及的也是在精排输出之后的一个环节。其实在这里操作本身也是打压保送的一种情况。但是探索与利用这里想强调的是它是一个较为长期的规划而且可能要承受一定的损失。探索与利用全称是Exploration and Exploitation也叫做EE问题。大概可以理解为当我有一个机会的时候我可以选择一个未知的东西拿来试试我也可以选择一个已知的东西来获取收益如何操作才能使得利益最大化这样揪心的选择往往出现在item冷启动的环节。新视频我们往往要进行保送有的时候即使其他视频预估的结果更好甚至它实际上也会更好我们也要把新视频推出去。一方面把新视频推出去我们能获得更加丰富的数据另一方面不把它推出去我们也不知道它到底好不好。最重要的是新视频的多少决定了整个平台的活力永远有新的内容出现才是一个生命力旺盛的产品。这个东西很像现在的国乒。即使马龙打的好小胖没有赢过他大比赛也可能把名额给年轻人。从成绩的角度来讲当然可能会承受风险因为你派水平更高的人拿奖更稳但是这是有隐患的。因为马龙年纪已经比较大了如果年轻人没有很好的接班以后的国家队水平会不会倒退新视频老视频也是这样的。有一些老视频我们当然知道他好但是必须舍弃这个机会给新视频。否则有一天用户发现平台上全是老内容就可能会觉得索然无味然后离开平台。如果不愿意付出短期的一点小损失会导致未来的重大损失。实现这种控制的做法一般有两种一种是区分新老队列也就是上面图上所画出来的情况保送队列里面只有新视频那么一直到最终决策之前新视频都只和新视频竞争。另一种做法是强制比例比如我就要我的内容10%是新的那么每次推送都会看一眼如果新视频比例不够我就根据差多远给新视频加权重反之就减权重。EE问题的难点是如何把控短期收益和长期收益的关系。就像上面这个例子投放新视频短期内可能是有损的但是这个损失是多大长期的收益怎么衡量我又怎么知道我所谓的长期收益值得现在的付出呢这些问题是很难解决的可能也区分一个决策者的水平。重排序生态控制重排序一般来说要做这么几件事情控制展示内容的多样性。含义就是我可能一次输出n个结果这n个结果不能都讲的是同一件事情。否则对用户体验的伤害极大。不知道有没有同学记得大概17年底某资讯软件A被停了三天那几天我下载了其他几个资讯软件BC但是一刷就发现每次出来的n个内容虽然不是同一个人所写但是讲得都是同一件事情。很快我就又把它们删掉了。去重复。用户已经看过的或者类似的进行去除这个很好理解。强插和上面讲的打压保送类似这里的做法更加直接强插的内容可能是不需要经过前面环节的。在这个部分我们要说明的一件事情是策略能做到的一些事情模型可能很难做到。这里以图文内容和视频的混排做一个例子。具体来说就是有的APP上既有图文内容也有视频。放到同一个模型里面预估当然是可行的。但是实践中往往会出现偏差。视频内容和图像内容比起来很有可能在很多指标上都是领先的。当这个领先到一定程度模型就会说啊我发现了视频就是比图文好啊于是它直接把所有视频的预估都提高。这样下来模型就没有达到当初我们给他的设想我们认为理论上他能分别学习图文和视频的规律理论当然是对的但是机器学习没有理所当然的事情。实践中往往会退化到简单的一刀切结果上。为了纠正他我们可能又要在数据采样loss设计上花很多功夫。这样下来不仅目的很难达到解决方案还会变的很丑。其实这样的问题用一个策略就可以很好地解决我们先看看总共有多少视频多少图文然后按照比例从各个队列里面抽就行了。一个探究黑盒模型能力上限的问题用几行ifelse就能极大的缓解。类似的一个策略在美团的公开资料中也存在[1]比如美食可以分为两种一种是根据用户过往行为预估出来的喜好一种是根据用户所处的位置的推荐。这两种我们都需要留一些空间如果把它们都丢进一个模型去排序很可能会形成一边倒的结果。这里的策略其实和模型的边界不是那么严格的。在重排列这块也会有人用模型来做我们后面也会讲到。策略必须存在策略必须存在一个理由就是上面所说的模型能力不足。另一个理由是可解释性在有的场景下可解释性的重要性是要大于性能的。比如在广告投放中你可能可以做到把某个环节替换为模型但是广告主马上就要问他的素材为什么投不出去了你的模型是不是对他有意见。这个时候就很难解释。与其惹了金主爸爸不开心还不如老老实实写ifelse。当你有一套策略的时候你就可以告诉他他们的素材哪里哪里不够好在什么地方根据什么规则吃亏了。到了这里我们这个专栏的第一个篇章基本就结束了。这个篇章是对整个推荐系统的概述。我们称之为“总览篇”。在这个部分我们其实没有把重点放在某一种具体的算法或者某一篇具体的论文上而是放在推荐系统的各个需要联合相互影响的环节上。换句话说在这一篇希望强调的是某种“大局观”。写这个部分的时候我也注意到很多的产品运营同学点了关注这也是我觉得很好的一件事情。下一个篇章是“模型篇”在模型篇里面我们会涉及具体的模型。会按照一种模型整体介绍其进展以及优缺点等。ps如果您觉得学到了一点东西请一键三连呀~下期预告精排之锋1简单复读机LR后台回复关键词【入群】加入卖萌屋NLP/IR/Rec与求职讨论群后台回复关键词【顶会】获取ACL、CIKM等各大顶会论文集 [1]. 旅游推荐系统演进 https://tech.meituan.com/2017/03/24/travel-recsys.html