位置: IT常识 - 正文

PyTorch 深度学习实战 | DIEN 模拟兴趣演化的序列网络

编辑:rootadmin
PyTorch 深度学习实战 | DIEN 模拟兴趣演化的序列网络 01、实例:DIEN 模拟兴趣演化的序列网络

推荐整理分享PyTorch 深度学习实战 | DIEN 模拟兴趣演化的序列网络,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

深度兴趣演化网络(Deep Interest Evolution Network,DIEN)是阿里巴巴团队在2018年推出的另一力作,比DIN 多了一个Evolution,即演化的概念。

在DIEN 模型结构上比DIN 复杂许多,但大家丝毫不用担心,我们将DIEN 拆解开来详细地说明。首先来看从DIEN 论文中截下的模型结构图,如图1所示。

■ 图1 DIEN模型结构全图

这张图初看之下很复杂,但可从简单到难一点点来说明。首先最后输出往前一段的截图如图2所示。

■ 图2 DIEN模型结构局部图(1)

这部分很简单,是一个MLP,下面一些箭头表示经过处理的向量。这些向量会经一个拼接层拼接,然后经几个全连接层,全连接层的激活函数可选择PReLU 或者Dice。最后用了一个Softmax(2)表示二分类,当然也可用Sigmoid进行二分类任务。

对输出端了解过后,再来看输入端,将输入端的部分放大后截图如图3所示。

■ 图3 DIEN模型结构局部图(2)

从右往左看,UserProfile Feature 指用户特征,Context Feature指内容特征,Target Ad指目标物品,其实这3个特征表示的无非是随机初始化一些向量,或者通过特征聚合的方式量化表达各种信息。

DIEN 模型的重点就在图3的user behavior sequence区域。user behavior sequence代表用户行为序列,通常利用用户历史交互的物品代替。图4展示了这块区域的全貌。

■ 图4 DIEN模型结构局部图(3)

这部分是DIEN 算法的核心:

PyTorch 深度学习实战 | DIEN 模拟兴趣演化的序列网络

第一部分: 用户行为序列,是将用户历史交互的物品序列经Embedding层初始化物品序列向量准备输入下一层,代码如下:

#recbyhand\chapter3\s34_DIEN.py#初始化embeddingitems = nn.Embedding( n_items, dim, max_norm = 1 )#[batch_size, len_seqs, dim]item_embs = items(history_seqs)#history_seqs指用户历史物品序列id

所以输出的是一个[批次样本数量,序列长度,向量维度]的张量。

第二部分: 兴趣抽取层,是一个GRU 网络,将上一层的输出在这一层输入。GRU 是RNN 的一个变种,在PyTorch里有现成模型,所以只有以下两行代码。

#recbyhand\chapter3\s34_DIEN.py#初始化gru网络,注意正式写代码时,初始化动作通常写在__init__() 方法里GRU = nn.GRU( dim, dim, batch_first=True)outs, h = GRU(item_embs)

和RNN 网络一样,会有两个输出,一个是outs,是每个GRU 单元输出向量组成的序列,维度是[批次样本数量,序列长度,向量维度],另一个h 指的是最后一个GRU 单元的输出向量。在DIEN 模型中,目前位置处的h 并没有作用,而outs却有两个作用。一个作用是作为下一层的输入,另一个作用是获取辅助loss。

什么是辅助loss,其实DIEN 网络是一个联合训练任务,最终对目标物品的推荐预测可以产生一个损失函数,暂且称为Ltarget,而这里可以利用历史物品的标注得到一个辅助损失函数,此处称为Laux。总的损失函数的计算公式为

其中,α 是辅助损失函数的权重系数,是个超参。DIEN 给出的方法是一个二分类预测,如图5所示。

■ 图5 DIEN模型结构局部图(4)

历史物品标注指的是用户对对应位置的历史物品交互的情况,通常由1和0组成,1表示“感兴趣”,0则表示“不感兴趣”,如图5所示,将GRU 网络输出的outs与历史物品序列的Embedding输入一个二分类的预测模型中即可得到辅助损失函数,代码如下:

#recbyhand\chapter3\s34_DIEN.py#辅助损失函数的计算过程def forwardAuxiliary( self, outs, item_embs, history_labels ):''':param item_embs: 历史序列物品的向量 [ batch_size, len_seqs, dim ]:param outs: 兴趣抽取层GRU网络输出的outs [ batch_size, len_seqs, dim ]:param history_labels: 历史序列物品标注 [ batch_size, len_seqs, 1 ]:return: 辅助损失函数'''#[ batch_size * len_seqs, dim ]item_embs = item_embs.reshape( -1, self.dim )#[ batch_size * len_seqs, dim ]outs = outs.reshape( -1, self.dim )#[ batch_size * len_seqs ]out = torch.sum( outs * item_embs, dim = 1 )#[ batch_size * len_seqs, 1 ]out = torch.unsqueeze( torch.sigmoid( out ), 1 )#[ batch_size * len_seqs,1 ]history_labels = history_labels.reshape( -1, 1 ).float()return self.BCELoss( out, history_labels )

调整张量形状后做点乘,Sigmoid激活后与历史序列物品标注做二分类交叉熵损失函数(BCEloss)。

以上是第二部分兴趣抽取层所做的事情,最后来看最关键的第三部分。

第三部分: 兴趣演化层,主要由一个叫作AUGRU 的网络组成,AUGRU 是在GRU 的基础上增加了注意力机制。全称叫作GRU With Attentional Update Gate。AUGRU 的细节结构如图6所示。

■ 图6 AUGRU 单元细节

02、图书推荐

在大数据时代背景下,统计学作为数据分析领域的基础,被应用于各行各业,其方法发挥着重要作用。为了更广泛地普及统计学知识,培养更多的统计学人才,本书应运而生。

本书融合大量情景案例,轻松理解统计知识;零基础起步商务统计,培养数据价值思维。入门级统计学教程,培养数据价值思维。

作为入门级图书,本书内容安排如下。第1章从不确定性出发,讲述统计学和不确定性的关系,以及统计学中用于描述不确定性的各种概率模型。第2章是参数估计,系统讲述统计学中矩估计和极大似然估计两种常用的参数估计方法,并基于两种方法介绍各种常见概率分布中参数的点估计和区间估计。第3章是假设检验,首先从不确定性的角度探讨实际中的各种决策问题,帮助读者理解假设检验的思想和应用场景,然后系统介绍假设检验的方法论及各种常见推广。第4章是回归分析,首先介绍回归分析的思想和广泛的应用场景,然后系统地介绍各类常用模型,从线性回归到广义线性回归,最终落脚到两种机器学习算法(决策树、神经网络)。

本书特别强调实际应用,因此各个章节都辅以大量的实际案例,在介绍统计学基础知识的同时培养读者使用统计学方法解决实际问题的能力。

本文链接地址:https://www.jiuchutong.com/zhishi/300471.html 转载请保留说明!

上一篇:JS中操作<select>标签选的值(Js中操作数组的方法)

下一篇:WordPress 中的常规设置(wordpress neve)

  • 删了对方微信对方知道吗(删了对方微信对方没删我再加回来聊天记录)

    删了对方微信对方知道吗(删了对方微信对方没删我再加回来聊天记录)

  • 视频会议画面黑屏(视频会议画面模糊)

    视频会议画面黑屏(视频会议画面模糊)

  • oppo手机发烫怎么办 解决(OPPO手机发烫怎么快速降温)

    oppo手机发烫怎么办 解决(OPPO手机发烫怎么快速降温)

  • 电脑上多选按哪个键(电脑上多选是哪两个键)

    电脑上多选按哪个键(电脑上多选是哪两个键)

  • 为什么iphone手机会延迟收信息(为什么iphone手机热点电脑搜不到)

    为什么iphone手机会延迟收信息(为什么iphone手机热点电脑搜不到)

  • 手机黑屏是内屏坏了吗(手机黑屏是内屏坏了还是外屏)

    手机黑屏是内屏坏了吗(手机黑屏是内屏坏了还是外屏)

  • 电脑运行中突然黑屏怎么办(电脑运行中突然关机打不开了)

    电脑运行中突然黑屏怎么办(电脑运行中突然关机打不开了)

  • 小米手机校正流量失败是怎么回事(小米手机校正流量指令)

    小米手机校正流量失败是怎么回事(小米手机校正流量指令)

  • 华为p40和荣耀30有什么区别(华为p40和荣耀30pro)

    华为p40和荣耀30有什么区别(华为p40和荣耀30pro)

  • 微博提示音怎么设置(微博提示音怎么设置自己喜欢的)

    微博提示音怎么设置(微博提示音怎么设置自己喜欢的)

  • 苹果有背光无显示黑屏(苹果有背光无显示属于质量问题吗)

    苹果有背光无显示黑屏(苹果有背光无显示属于质量问题吗)

  • 拼多多退货单号填错了还能修改吗(拼多多退货单号没有怎么办)

    拼多多退货单号填错了还能修改吗(拼多多退货单号没有怎么办)

  • cad无法识别的版本 不能读取(cad无法识别的版本不能读取没有无的文件怎么办)

    cad无法识别的版本 不能读取(cad无法识别的版本不能读取没有无的文件怎么办)

  • 天猫魔盒蓝牙没有了怎么办(天猫魔盒找不到蓝牙设置)

    天猫魔盒蓝牙没有了怎么办(天猫魔盒找不到蓝牙设置)

  • 小米ai音箱能连几个手机(小米ai音箱能连接电视吗)

    小米ai音箱能连几个手机(小米ai音箱能连接电视吗)

  • 为什么pr导出视频变绿(为什么pr导出视频只有一秒)

    为什么pr导出视频变绿(为什么pr导出视频只有一秒)

  • 显示器acin是插什么的(显示器ac和dc电源)

    显示器acin是插什么的(显示器ac和dc电源)

  • 抖音被拉黑还可以@他吗(抖音被拉黑还可以@对方吗)

    抖音被拉黑还可以@他吗(抖音被拉黑还可以@对方吗)

  • 苹果发语音没有声音怎么回事(苹果发语音没有声音只有噪音,语音视频没有问题)

    苹果发语音没有声音怎么回事(苹果发语音没有声音只有噪音,语音视频没有问题)

  • mh182zp是ipad第几代(mh172zp/a是ipad几)

    mh182zp是ipad第几代(mh172zp/a是ipad几)

  • 华硕xmp1和xmp2 区别(华硕bios xmp1,2有什么区别)

    华硕xmp1和xmp2 区别(华硕bios xmp1,2有什么区别)

  • 怎么设置微信自动运行(怎么设置微信自动添加好友)

    怎么设置微信自动运行(怎么设置微信自动添加好友)

  • 华为p30有智能语音吗(华为p30智能语音从哪里召唤)

    华为p30有智能语音吗(华为p30智能语音从哪里召唤)

  • p30手机有红外功能吗(华为p30s有红外)

    p30手机有红外功能吗(华为p30s有红外)

  • Vue报错:Error in v-on handler: “TypeError: Cannot read properties of undefined (reading ‘skuId‘)“(vue报错cannot read property)

    Vue报错:Error in v-on handler: “TypeError: Cannot read properties of undefined (reading ‘skuId‘)“(vue报错cannot read property)

  • 织梦dedecms自定义表单获取IP地址和提交时间(织梦怎么改网站主页)

    织梦dedecms自定义表单获取IP地址和提交时间(织梦怎么改网站主页)

  • 自来水适用高税率吗
  • 子公司注销母公司投资损失企业所得税
  • 航天金税的服务费如何抵扣
  • 管理人员工作服计入什么科目
  • 发票税号错了怎么重开
  • 冲销暂估入账原材料的会计分录
  • 幼儿园增值税优惠政策
  • 出售旧固定资产的税率是多少
  • 固定资产忘了折旧有什么影响
  • 税务实名制法人和财务负责人可以是同一人吗?
  • 当期损益包括营业外收支吗
  • 公司筹建期产生的费用如何开票?
  • 金税盘服务费可以当月抵扣吗
  • 废品残料回收入库
  • 所得税补缴自查需要缴纳什么
  • 培训费和差旅费可以一起报嘛
  • 投资性房地产房产税如何计算
  • 增值税发票和收据的区别
  • 解决口苦最快的方法
  • 代扣代缴税款的完税凭证抵扣期限
  • 苹果mac恢复出厂设置
  • php清空数据表
  • icon files
  • 酒水入库的会计分录怎么做
  • 增值税发票开红字发票后账务处理?
  • 资产负债所有者权益损益类会计科目
  • php函数传递参数方式
  • 微前端Qiankun
  • 企业会计核算应当以权责发生制为基础
  • pgadmin配置
  • 小轿车折旧年限
  • opengl设置
  • phpcms上传视频
  • 无形资产转让手续怎么办
  • 利润分配的账务处理会计分录
  • python3 zipfile模块
  • mongodb简单使用
  • 中国移动发票抬头开错了可以重开吗
  • 往来账户余额
  • 个体户取现金的几种方法
  • 个税返还手续费政策
  • t3怎么查资产负债表
  • 账务处理程序的定义
  • 双分录怎么做记账凭证
  • 去年亏损今年盈利能分红吗
  • 广交会展务
  • 收到土地使用权转让怎么做账
  • 收到社保局的生育津贴并付给职工如何入账
  • 共同类科目性质
  • 费用利润率计算公式是怎样的?
  • 购买的税控盘可以全额抵扣,怎么报
  • 总账科目有应交税费对吗
  • 小规模企业开具增值税专用发票
  • 进项增值税发票抵扣期限
  • 我是小规模纳税人,客户都想获得13%的专票
  • 管理成本分摊比例是多少
  • 费用报销有哪些
  • 分公司可以设立公司吗
  • 公司的三证合一是什么
  • 会计净资产计算公式
  • 检查sql脚本语法
  • JDBC探索之SQLException解析
  • centos6.5修改用户名
  • windows8.1的设置在哪
  • 雨林木风软件网
  • windows7桌面背景怎么设置
  • 如何保留windows.old
  • win7不激活怎么换壁纸
  • linuxvim编辑器的用法
  • 网页字体大小调整方案
  • python根据ip获取主机名
  • etmvc+jQuery EasyUI+combobox多值操作实现角色授权实例
  • shell脚本clear
  • python 网络编程总结
  • 编程 delphi
  • 个人可以到税务开物业费的
  • 宁波地税如何网上缴费
  • 江苏专家库申报在哪个网站
  • 纳税人总机构和分机构不在同一县怎么办
  • 银行收取手续费可以抵扣进项税额吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设