当前位置: 首页 > news >正文

电子商务网站建设与实践第一章课后网站有了订单邮箱提醒代码

电子商务网站建设与实践第一章课后,网站有了订单邮箱提醒代码,缩短链接的网站,asp.net做的网站文字控件随窗口大小不变化文 | 水哥源 | 知乎Saying1. 如果你面对一个全新的机器学习任务#xff0c;让你来涨点。你可能第一个想到的往往是attention#xff0c;第一个实现的是attention#xff0c;第一个真的涨点了的技术也是attention#xff1b;2. DIN的最主要的意义#xff0c;把attention引入… 文 | 水哥源 | 知乎Saying1. 如果你面对一个全新的机器学习任务让你来涨点。你可能第一个想到的往往是attention第一个实现的是attention第一个真的涨点了的技术也是attention2. DIN的最主要的意义把attention引入到用户序列上根据变化的item对象挑出合适的响应对象3. 别的地方还在吭哧吭哧研究embeddingDNN时阿里妈妈啪的一下就把attention放进来了很快啊这是【从零单排推荐系统】系列的第18讲。如果说机器学习有什么技巧是百试百灵放到哪都可以用的上的话我会推荐两个招。一是人海战术可以理解为前面讲过的ensemble learning。人海战术在工业推荐中做的不多即使是决定要用也用的很保守复杂度控制的比较小心。到了打比赛项目pk的时候那可是脱了缰了。几年前ILSVRC还有的时候上好几个模型把输出结果加起来做最终结果都只是常规操作到了要pk那项目的时候几千个模型当然不是CNN这种也是有所耳闻。二是attentionattention的发展也是比较有意思。最早的时候说自己是attention必须得旁征博引从生理角度分析引用了什么原理哪里能体现出人的认知过程。到了现在加一个系数就叫attention。不过说归说attention确实是一种非常好用的技巧在这一讲中我们先开个头关于它的更多分析留在下一讲。Deep Interest Network[1]当其他人还在学习适应embeddingDNN这种结构的形式时阿里妈妈这边已经在考虑更加细致的问题了。在今天看来DIN里面使用的attention是整个机器学习领域里面几乎最直观的attention方式其主要动机来源于对输入特征的观察如图像我们上一讲提到过的用户的特征主要有两种一种是非序列的可以称之为non-sequential的。这类特征往往是User ID年龄性别城市这种后面的可称之为profile即一些用户画像信息。另一种是序列化的sequential主要是用户的历史行为User Behaviors比如在电商场景下就是用户过去购买过的产品在短视频场景下可以是用户过去点赞的视频。为了能顺利接下面的MLP特征得是定长度的所以这里序列特征要选择最近的 个多了截断少了补0。将序列特征输入MLP时list中的每一个item都有对应的embedding如果拼接起来是一个巨大的长度非常浪费空间举个例子最近的30个如果每一个都是64维这就将近2000维了。实际上现在常见的大公司的解决方案中MLP第一层承接的输入总共也就几千维。那么sum pooling就会是一个相对柔和的方案可以保证特征的长度不会太长。但是sum pooling有两个缺点不会随着到来的广告变化而变化无论来的是美食还是母婴产品遇到的都是同样的历史行为表示。然而一个广告是否应该发生点击应该更加重视对应类别的过往行为强度是否足够大。换句话说就是美食来了应该看看过往的行为中美食的行为多不多和这个广告像不像。其他类别和当前这个广告联系并不大。所以我们需要一个动态的机制挑出需要的部分。会对信息有所压缩如果一个item的信息需要16维才能装得下最后30个item的信息也只存在于16维里面的话肯定是有压缩的。我们很难控制这个过程或许需要的信息就刚好压缩没了。所以我们也需要一个尽量不压缩关键信息的机制。而attention是什么呢它就是能够动态挑出需要的部分而且可以控制压缩的程度。所以就和上面的需求刚好对上了这也就是DIN的最主要的意义把attention引入到用户序列上根据变化的item对象挑出合适的响应对象。而为了完成这个attention我们要决定1挑选出来的部分根据谁来变化2最终融合的形式。根据上面说的为了要适应广告的变化当然要把当前的广告信息作为输入除此之外用户本身的历史序列当然也是。对于第二个问题我们最终还是希望结果的维度和sum pooling差不多因此加权和是一个好的选择这也是大多数attention的做法。综合以上两点就得到其中 就对应序列中第 个item的embedding而 是对应的attention系数。得到的结果是一个定长的向量再和其他特征的embedding一起拼接起来作为MLP的输入即可。这里没有对attention系数做归一化主要是考虑到scale其实反映了兴趣的强度。加上attention的图如下所示其中attention部分用红框突出了一下至此对DIN的思想和主要的实现就梳理完成了还留着的一个细节是上面的attention系数怎么得到。其网络结构如下这个图画的不是很清楚外积之后得到的应该是一个矩阵然后得到中间绿色的向量是通过什么方式乘以 还是拉平这里还是按照代码里面的逻辑来介绍[2]。item侧的输入是 的这里 就是embedding的大小比如64. user侧的输入是 第二项是序列的长度。先把item扩充成和user形状一样然后把itemuseritem-useritem*user四个张量在最后一维拼接。拼接后的张量经过FC层一直映射到1那么此时剩下的是 的结果了。这里的分数就是我们要的attention分数拿它和user的list做一个矩阵乘法即可还有一些别的操作这里就省略掉了。Deep Interest Evolution Network[3]有了DIN的基础我们理解DIEN就更加容易。DIEN的主要出发点是用户的历史行为体现了他自身兴趣的变化而这个过程本身是时序的。而且这是一个发展的过程这也就是题目中evolution的由来。既然用户的序列是时序发生的使用RNNGRU和LSTM就显得非常自然。这里选择的是不容易梯度消失且较快的GRU。整体架构如下图所示图中的 是用户的行为序列而 是对应的embedding。随着自然发生的顺序 被输入GRU中如果忽略上面的AUGRU环节GRU中的隐状态 就应该成为用户的行为序列最后的表示。这部分就是两大组成部分之一的Interest Extractor Layer。如果直白的做也是可以的但是会训练的不够“细”。 的迭代经过了很多步然后还要和其他特征做拼接然后还要经过MLP。这样的结果就是最后来了一个正样本归因不到 上整个网络感觉一团浆糊。基于此DIEN给出了第一个要点使用辅助loss来强化 。上面详细画了一下辅助loss的做法我们本质上认为如果发生了点击那么当前的 和即将到来的广告的embedding应该很像。也就是 时刻得到的隐状态 和下一个要来的点击广告 要相近。可以对它们做内积然后求最大。仅仅是这样还不够还可以采样一些不出现在历史序列的广告构成负样本 然后和 内积后取最小。通过这个辅助的loss让隐状态开始富有语义点击与否能具体的归因到某一个时刻的状态上。辅助loss的作用当我看到DIEN使用了辅助loss的时候就觉得很靠谱了。根据我的经验辅助任务往往能带来好处。真正应用场合下你把开始的输入和最后的要求告诉网络他就能给你一个好的结果的情况非常少。大多数时候是需要你去控制每一步的输入输出每一步的loss才能防止网络各种偷懒作弊。辅助loss1能够使得网络更受控制向我们需要的方向发展2能够把正负样本的原因更清晰的归因到特征层面。我非常建议大家在实际业务中多试试辅助lossGRU的部分体现了对于行为信息的一种更高阶的抽取但是对于evolution体现的还不够强。于是需要第二个模块Interest Evolving Layer来完成。具体来说兴趣的发展可以等价为attention的变化在GRU的不同位置加入attention则体现了不同的发展方式。attention在这里的计算方式是和状态以及当前item都有关系。在GRU中有三个地方可以放如attention对隐状态乘上attention称为AIGRU改变update gate为attention系数称为AGRU改变update gate为原来的gate乘以attention就是AUGRU了这是效果最好的选择。含义也很清楚attention决定了现在的兴趣转变有多快上面就是AUGRU的示意图先和原来的update gate相乘再以这个gate控制隐状态的更新。为什么人海战术总是有用在本讲和下一讲我们分别思考两个问题第一个问题是为什么人海战术总是有用的第二个问题是为什么attention总是有效的。在这一讲中我们先尝试回答第一个问题第二个问题留到下一讲来阐述。我们这里举一个例子来理解一下如果一个分类器在某个样本上得到正确输出的概率为 那么有 个分类器时简单起见假设他们平均意义上的概率差不多按照投票制度获得正确输出的种类为 这里忽略打平的情况所以 都取奇数。而总体的情况则是 . 我们可以验证一下是否存在如果存在这个关系那我们可以说经过人海战术我们获得了更好的结果。下面的表格对不同的 和 的取值代入进行计算我们可以发现前一项的概率确实相对于原来都获得了提升。n3n5n7p0.60.6480.6830.710p0.70.7840.8370.874p0.80.8960.9420.967p0.90.9720.9910.997但是要强调一点人海战术并不是没有条件的我这里总结的情况是原分类器均匀地有在样本上能超过半数的判对才能提升效果这个条件没有经过证明读者可以当做是辅助理解的条件。比如说有三个分类器分别在三个样本上输出 单独选一个都可以得到33%的正确率但是大家合起来却变成了0%。但是如果这个概率分布能够变的更平均一点变成 这样正确率变成了100%像后面这样的情况人海战术才能有用。不过实际中我们遇到的也都是后面的情况像前面这种非常畸形的分布很难遇见。这一讲的DINDIEN这两个方案在实现上完全可以由后续要讲的基于transformer来替换。但重要的是我们要体会这其中思考的过程。DIN出现的时候大多数人可能连embeddingDNN是什么都没搞清楚也可以说大多数人还在搞CV/NLP哈哈而DIN就抓住了用户行为信息和用户画像信息结构上不协调的点深挖了attention的操作。在DIN把attention告诉大家后DIEN又换了一个思路从行为发生的时序上进行研究。这一系列的工作从来都不是别人发表了什么我就用什么而是我的系统缺什么我就开发什么这是最需要上一讲的逍遥派学习的地方。思考题sum pooling并不是一定就会损失信息的这一点在DIN的论文中也说了embedding维度越高sum pooling保留的信息就可以越多。如何理解这句话你能设计一个embedding使得sum pooling之后没有信息损失吗下期预告推荐系统精排之锋13Attention有几种写法往期回顾召回 粗排 精排如何各司其职拍不完的脑袋推荐系统打压保送重排策略简单复读机LR如何成为推荐系统精排之锋召回粗排精排-级联漏斗上召回粗排精排-级联漏斗下推荐系统精排看阿里妈妈再试线性模型推荐精排之锋FM的一小步泛化的一大步推荐中使用FNN/PNN/ONN/NFM优化特征交叉聊聊推荐系统的高阶特征交叉问题真正的高阶特征交叉xDeepFM与DCN-V2GBDT是如何成为推荐系统顶级工具人的DNN与推荐两大门派一念神魔功不唐捐再论推荐特征与embedding生成后台回复关键词【入群】加入卖萌屋NLP/IR/Rec与求职讨论群后台回复关键词【顶会】获取ACL、CIKM等各大顶会论文集 [1]Deep Interest Network for Click-Through Rate PredictionKDD2018 https://arxiv.org/pdf/1706.06978.pdf[2]https://github.com/zhougr1993/DeepInterestNetwork/blob/9765f96202f849e59ff260c8b46931a0ddf01d77/din/model.py#L200[4]Deep Interest Evolution Network for Click-Through Rate PredictionAAAI2019 https://arxiv.org/pdf/1809.03672.pdf
http://www.pierceye.com/news/184194/

相关文章:

  • 深圳h5模板建站wordpress 整合ucenter
  • 企业网站策划书下载google adsense
  • 安徽网站建设公司排名竞价托管就选微竞价
  • 笑话小网站模板html做移动网站快速排
  • c2c电子商务网站有哪些电商设计师和美工有什么区别
  • 长春电商网站建设价格低公司网站过期未续费会怎样
  • 农业综合管理网站建设做网站前期工作
  • 域名更换网站网站维护工作内容
  • 网站水印设置作教程长沙求职网招聘网
  • 八年级微机网站怎么做wordpress 链接转换
  • ppt做的模板下载网站有哪些内容wordpress 4.5.3中
  • 网站开发需求文档prd模板iis wordpress 404
  • 灰色链网站建设偃师建网站那家公司好
  • 文化网站前置审批网站运营系统
  • 现在做网站用什么学校网站的建设需求
  • 网页制作与网站建设技术大全 pdfhtml5移动端网站开发教程
  • 做任务可以给钱的网站php响应式网站模板下载
  • 平面素材设计网站东莞房价2023年最新房价走势
  • 做一个网站建设需要多少钱天津企业网站排名优化
  • 有关网站开发的论文网站建设哪公司
  • wordpress网站500导航 网站 分析
  • 软件网站开发市场前景试论述网上商城的推广技巧
  • 海洋生态文明建设的网站名廊坊网站建设电话
  • 做外贸在哪个网站比较好视频网站搭建源码
  • 网站代码优化视频教程动画制作专业大学排名
  • 安阳网站推广优化网站导航条背景图片
  • 静态网站需要数据库吗广州近期流行的传染病
  • 如何做国外的网站页面设计感想
  • 征婚网站认识的男人做定投保wordpress 中文 cms
  • 淄博百度网站建设上虞网站建设哪家好