一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

融合层次注意与特征交互的推荐方法及其应用系统

2023-02-04 17:07:13 来源:中国专利 TAG:


1.本发明涉及推荐系统技术领域,更具体地说,本发明涉及一种融合层次注意与特征交互的推荐方法及其应用系统。


背景技术:

2.随着信息技术的迅猛发展,诸如电子商务、新闻资讯、社交平台等各种在线服务层出不穷,在给人们生活带来便捷的同时,也使人们陷入了“数据海量却知识贫乏”的困境,在数据海洋中难以找到满足自己需求的信息。搜索引擎的出现一定程度缓解了此难题,但其需要用户提供明确的需求,由于搜索引擎是利用关键字匹配技术将检索信息库中与用户需求匹配度最高的项目列表反馈给用户。而在现实中,人们往往很难用少数关键字准确描述其需求。另外,搜索引擎不能满足不同用户的个性化需求,由于其对于同一关键字的反馈结果是完全一样的。针对人们个性化需求难以满足的难题,信息推荐技术与推荐系统应运而生。
3.信息推荐方法中的一个核心任务就是如何高效准确地计算各个特征和交互特征的重要程度。现有推荐方法中,特征交互主要有显式特征交互和隐式特征交互两种形式。前者主要利用精心设计的交互网络,如因子分解机模型,促使各个特征之间发生明显的交互。后者多利用深度神经网络对特征进行隐式交互,如深度因子分解机模型deepfm。近来,一些比较先进的推荐方法都试图融合显式和隐式的特征交互信息。但是,这些模型在融合这两方面的信息时候没有考虑到低阶交互和高阶交互的维度,仅仅将特征的高阶交互全部丢给深度神经网络进行自我学习,导致特征交互的作用无法有效体现。


技术实现要素:

4.为了解决至少上述缺陷或问题,本发明提出了基于特征交互与层次注意的信息推荐方法,即本发明的融合层次注意与特征交互的推荐方法。该方法首先利用因子分解机进行显式地特征交互,据此交互结果,利用二阶交互算子提取交互信息,通过层次注意力进行隐式地从低阶到高阶的特征交互。在此期间通过注意力机制优化特征的表示,为下一次显式特征交互提供更高阶信息的特征表示,从而完成显式地从低阶到高阶的特征交互。这样利用二阶交互算子和层次注意力机制实现从低阶到高阶的隐式与显式特征交互,有效提高了推荐系统的性能。
5.本发明提供一种基于特征交互与层次注意的推荐方法,其包括:
6.s1、采集用户实例信息,包括用户属性、项目属性、用户历史行为属性;
7.s2、根据所述用户实例信息,利用二阶交互算子和层次注意力机制从低阶到高阶的隐式与显式特征交互训练推荐模型;
8.s3、对于待预测的用户实例信息和目标项目,利用训练好的推荐模型计算为所述用户推荐所述目标项目的概率;
9.s4、将推荐概率大于或者等于预设推荐阈值所对应的目标项目推荐给用户。
10.优选的是,s2包括:
11.s2-1,初始化所述推荐模型的参数集合;
12.s2-2,通过推荐模型的稀疏表示层将用户实例信息中的离散属性与离散化的连续属性进行独热形式或多热方式的稀疏编码,获得用户实例信息的稀疏表示;
13.s2-3,通过推荐模型的嵌入层将用户实例信息的稀疏表示转化为低维稠密向量,得到用户与项目的嵌入表示;
14.s2-4,从s2-3得到的所有实例样本的转化表示中采集小批量样本;
15.s2-5,将小批量样本利用二阶交互算子和层次注意力网络的前向过程计算为所述用户推荐所述项目的预测分数;
16.s2-6,计算基于交叉熵的预测loss;
17.s2-7,采用基于误差反向传播的adam优化器优化交叉熵损失,调整所述推荐模型的权重参数,且学习率在{0.0001,0.01}之间搜索;
18.s2-8,循环执行从s2-4到s2-7直到迭代次数等于指定迭代数。
19.优选的是,s2-5包括:
20.所述层次注意力网络由l个注意力层堆积而成,第l(l=0,1,

,l)个注意力层包括:
21.x
(0)
=[v1,v2,

,vm]
[0022][0023][0024][0025][0026][0027][0028]

[0029][0030][0031]
其中上标(l)表示当前注意力层所在层次编号为l,x
(0)
=[v1,v2,

,vm]为所述推荐模型的嵌入层的输出,vi(i=1,2,

,m)是嵌入层输出的第i个特征的表示向量,m为用户实例的属性数,为输入第l层的第i个特征对应的嵌入向量vi的第k维,是第l层的交互特征向量的第k维,is
(l)
表示第l层的交互特征向量,m为输出模块对应的多层感知器的层数,wi(i=1,2,

,m)与bi(i=1,2,

,m)分别为多层感知器的第i层的权重与偏置,h与b分别为线性变换的权重与偏置;为输入第l层的第i个特征对应的嵌入向量,是第l个注意力层的注意力系数,w
(l)
与b
(l)
分别是深度模型中第l层的连接权重与偏置,是第l个注意力层的归一化注意力系数,x
(l 1)
与x
(l)
分别是深度模型中第l 1层与第l层的输入,δ是非
线性激励函数sigmoid,是多层前馈网络中第i层的输出,o
(l)
表示多层前馈网络中第最末层的输出,t表示向量转置算子;
[0032]
然后,将层次注意力网络的所有各层输出进行线性集成并利用softmax函数计算项目x的推荐预测分数具体为o=[o
(0)
,o
(1)


,o
(l)
]与其中w
p
与b
p
分别为线性变换的权重与偏置。
[0033]
优选的是,s2-6中的交叉熵损失为:
[0034][0035]
其中,θ为所述推荐模型的参数集合,n为训练实例总数,λ为正则化项的权重;vi是第i个项目是否被推荐的训练数据标签,是模型计算出来的第i个项目被推荐的概率,i的范围是i=1,2
……
n。
[0036]
本发明还有另一个目的在于利用上述方法得到一种推荐系统,其包括:
[0037]
获取单元,被配置成获取用户实例信息;
[0038]
推测单元,被配置成将所述用户实例信息输入根据权利要求1-5中任一项所述方法训练得到推荐模型,将待预测的用户实例信息利用训练好的推荐模型计算得到所述用户对目标项目推荐的概率;
[0039]
推送单元,被配置成将推荐的概率大于或者等于预设推荐阈值所对应的目标项目推荐给用户的终端。
[0040]
本发明至少包括以下有益效果:
[0041]
本发明相较于传统的推荐方法,该方法利用二阶交互算子和层次注意力机制实现从低阶到高阶的隐式与显式特征交互,能更好地刻画用户的潜在兴趣,可有效提高推荐系统的正确率等性能,可广泛应用推荐系统,提升信息主动服务质量。
[0042]
本发明的其它优点、目标和特征将部分通过下面的说明体现,部分还将通过对本发明的研究和实践而为本领域的技术人员所理解。
附图说明
[0043]
图1是本发明的推荐方法流程图。
[0044]
图2是本发明推荐模型训练示意图。
[0045]
图3是criteo数据集上不同模型每个epoch的平均运行时间的柱形图。
[0046]
图4是avazu数据集上不同模型每个epoch的平均运行时间的柱形图。
[0047]
图5是movielens-1m数据集上不同模型每个epoch的平均运行时间的柱形图。
[0048]
图6是book-crossing数据集上不同模型每个epoch的平均运行时间的柱形图。
具体实施方式
[0049]
下面结合实施例对本发明做进一步的详细说明,以令本领域技术人员参照说明书文字能够据以实施。
[0050]
需要说明的是,下述实施方案中所述实验方法,如无特殊说明,均为常规方法,所述设备和材料,如无特殊说明,均可从商业途径获得。
[0051]
如图1-2所示,本发明公开了一种基于特征交互与层次注意的推荐方法,其包括:将输入实例信息编码成稀疏特征向量,并对稀疏特征向量进行低维嵌入;利用二阶交互算子提取嵌入特征向量之间的交互信息;通过层次注意力机制实现从前往后的多层次高阶特征交互;线性组合深度神经网络不同层的输出获得用户的兴趣表示向量,据此计算各信息项的推荐概率,将推荐概率大于或者等于预设推荐阈值所对应的目标项目推荐给用户。具体操作如下:
[0052]
步骤1:输入用户实例信息,包括用户属性、项目属性、用户历史行为属性;
[0053]
用户属性主要包括但不局限于年龄、性别与职业,项目属性主要包括但不局限于类别与价格,用户历史行为属性主要包括但不局限于在线用户点击行为、浏览行为、评论行为与点赞行为。比如用户实例信息可以为[用户id:1994年,男,酒店服务员;项目id:dell笔记本或apple笔记本,3800-6000元范围;行为id:淘宝戴尔官方旗舰店,浏览时长10秒以上,戴尔京东自营官方旗舰店,浏览时长30秒以上,等等]。
[0054]
步骤2:根据所述用户实例信息训练推荐模型;
[0055]
所述步骤2进一步包括以下步骤:
[0056]
步骤2.1:初始化所述推荐模型的参数集合;
[0057]
步骤2.2:通过推荐模型的稀疏表示层将用户实例信息中的离散属性与离散化的连续属性进行独热形式或多热方式的稀疏编码,获得用户实例信息的稀疏表示向量;
[0058]
步骤2.3:通过推荐模型的嵌入层将用户实例信息的稀疏表示向量转化为低维稠密向量,得到用户实例信息的嵌入表示向量;
[0059]
步骤2.4:对由用户实例信息的嵌入表示向量所构成的集合进行采集,获得小批量样本;
[0060]
步骤2.5:将小批量样本利用二阶交互算子和层次注意力网络的前向过程计算为所述用户推荐所述项目的预测分数;
[0061]
在所述步骤2.5中,可依据如下方法计算预测分数:首先,根据如下公式计算层次注意力网络的每个层l的输出o
(l)
,然后
[0062]
x
(0)
=[v1,v2,

,vm]
[0063][0064][0065][0066][0067][0068][0069]

[0070]
[0071][0072]
其中上标(l)表示当前注意力层所在层次编号为l,x
(0)
=[v1,v2,

,vm]为所述推荐模型的嵌入层的输出,vi(i=1,2,

,m)是嵌入层输出的第i个特征的表示向量,m为用户实例的属性数,为输入第l层的第i个特征对应的嵌入向量vi的第k维,是第l层的交互特征向量的第k维,is
(l)
表示第l层的交互特征向量,m为输出模块对应的多层感知器的层数,wi(i=1,2,

,m)与bi(i=1,2,

,m)分别为多层感知器的第i层的权重与偏置,h与b分别为线性变换的权重与偏置;为输入第l层的第i个特征对应的嵌入向量,是第l个注意力层的注意力系数,w
(l)
与b
(l)
分别是深度模型中第l层的连接权重与偏置,是第l个注意力层的归一化注意力系数,x
(l 1)
与x
(l)
分别是深度模型中第l 1层与第l层的输入,δ是非线性激励函数sigmoid,是多层前馈网络中第i层的输出,o
(l)
表示多层前馈网络中第最末层的输出,t表示向量转置算子
[0073]
然后;将层次注意力网络的所有各层输出进行线性集成并利用softmax函数计算项目x的推荐预测分数具体为o=[o
(0)
,o
(1)


,o
(l)
]与其中w
p
与b
p
分别为线性变换的权重与偏置。
[0074]
步骤2.6:计算基于交叉熵的预测loss,其计算公式为θ为所述推荐模型的参数集合,n为训练实例总数,λ为正则化项的权重;yi是第i个项目是否被推荐的训练数据标签,是模型计算出来的第i个项目被推荐的概率,i的范围是i=1,2
……
n;
[0075]
步骤2.7:采用基于误差反向传播的adam优化器优化交叉熵损失,调整所述推荐模型的权重参数,且学习率在{0.0001,0.01}之间搜索;
[0076]
步骤2.8:以循环执行从步骤2.4到步骤2.7直到迭代次数等于指定迭代数的方式训练所述推荐模型;指定迭代数具体根据循环执行得到的交叉熵损失的误差稳定性决定,通常以最后连续10次得到交叉熵损失的波动小于10-8
,训练完成,训练好的推测模型记为hafm。
[0077]
步骤3:对于待预测的用户实例信息和目标项目,利用训练好的推荐模型计算为所述用户推荐所述目标项目的概率;
[0078]
步骤4:将推荐概率大于或者等于预设推荐阈值所对应的目标项目推荐给用户。
[0079]
《对训练好的推测模型hafm效果测试》
[0080]
实验环境
[0081]
本发明所涉及的实验全部采用统一的实验环境,基于深度模型的要求,实验所使用的硬件环境和软件环境主要参数如表1所示。
[0082]
表1实验环境的基本信息
[0083][0084]
数据集
[0085]
为了评估模型的性能和效率,采用了用于点击率预测的4个标准数据集进行了实验。表2列出了这4个数据集的统计数据,对每个数据集都是按8∶1∶1比例进行划分,分别用于训练、验证和测试。
[0086]
表2四个数据集的基本统计信息
[0087][0088]
基线模型
[0089]
基线模型大致可分为三大类:逻辑回归模型、基于fm的模型和基于深度网络的模型,简述如下。
[0090]

逻辑回归模型
[0091]
·
lr:lr模型是点击率预估中最经典的基线模型。
[0092]

基于fm的模型
[0093]
·
fm:在lr的基础上,引入了特征二阶交互操作,提升模型表现。
[0094]
·
nfm:在fm二阶交互后,取消求和操作,用dnn对fm的结果进行更深层次的特征交互。
[0095]
·
ffm:引入了特征域的概念,替每一个特征在每一个特征域都学习了一个嵌入,增强了特征表示。
[0096]
·
afm:用注意力网络为每一个交互特征学习一个权重。
[0097]
·
deepfm:将深度学习网络和fm并行结合起来,同时学习一阶特征、显式二阶特征交互和隐式特征交互。
[0098]
·
xdeepfm:在deepfm的基础上,进一步设计了一个cin网络替代了显式交互模块,在向量级别进行特征交互提升模型的预估能力。
[0099]
·
ifm:提出样本感知,给每一个输入样本赋予不同的权重,以此来更新优化特征的嵌入表示。
[0100]
·
difm:在ifm的基础上,引入了transformer中的主要思想,通过自注意力学习向量级别的交互。
[0101]

基于深度网络的模型
[0102]
·
fnn:先利用fm预训练特征嵌入,再用dnn进行后续的深度特征交互。
[0103]
·
afn:设计了自适应调整交互阶数的对数神经网络层,通过该网络可以选择特征交互的阶数,以此来提升模型性能。
[0104]
·
wd:从“泛化”和“记忆”的角度,将深度学习网络和lr并行结合起来。
[0105]
·
dcn:提出交叉网络学习特征的显式交互,用神经网络模块学习特征的隐式交互,最后综合两个模块的输出。
[0106]
·
ipnn:属于pnn模型,与opnn同族。在嵌入层之后,采用内积方式进行显式特征交互。
[0107]
·
opnn:属于pnn模型,与ipnn同族。在嵌入层之后,采用外积方式进行显式特征交互。
[0108]
·
drm:通过一个注意力结构来计算出每一个嵌入维度对于模型的重要性,来提升特征的嵌入品质。
[0109]
·
masknet:利用maskblock可以提升dnn挖掘复杂交互特征的能力,由于maskblock的堆积方式不同,masknet族有并行和串行两种模型,本文设定串行模型为masknety,并行模型为masknetx。
[0110]
评价指标
[0111]
实验采用点击率预估任务中最常用的两个评价指标auc和logloss。auc是指roc曲线下的面积,其是衡量二分类模型性能的一种评价指标,可以表征预测的正例排在负例前面的概率,auc值越高表示性能越好。logloss是指交叉熵损失,可以表征真实样本和预测概率之间的差值,在点击率预估模型中,logloss越小,表示模型预测越准确。需要强调得是,在点击率预估任务的离线预测中1

的auc提升和logloss的降低都是巨大的进步。
[0112]
实验细节
[0113]
本文使用pytorch框架训练所有模型,为了比较的公平性,所有模型都采用adam优化器优化交叉熵损失进行学习,且学习率在{0.0001,0.001,0.01}之间搜索。嵌入大小均设置为16,其他超参数与其论文报告或开源代码中的默认参数保持一致。对于含有dnn模块的模型,统一将dnn隐藏层深度设为2,每个隐藏层的神经元个数设为16。对于criteo数据集,批处理大小(batch size)设置为4096,avazu数据集batch size设置为2048,对于movielens-1m和book-crossing数据集,batch size均设置为128。正则化参数λ在{0.00001,0.0001,0.001}之间搜索。在模型对比时,分别固定多组随机数种子,进行多组实验,再对结果取平均值。
[0114]
接下来,描述了部分模型的私有超参数:
[0115]
afm模型注意力因子大小设置为16。
[0116]
dcn模型的交叉层层数设置为3。
[0117]
xdeepfm模型的cin网络层参数与默认的dnn参数保持一致,设置为[16,16]。
[0118]
afn模型的对数神经网络维度设置为1500。
[0119]
difm模型中的多头注意力模块,注意力头数设置为4,注意力层数为3层,注意力的
维度大小设置为16。
[0120]
masknet模型的maskblock数目设置为3。
[0121]
hafm模型采用3层注意力网络,即l=3。
[0122]
模型的最大迭代周期(epoch)设置为50,并采用早期停止法(性能最大下降步数设置为2)避免模型过度拟合训练数据,缩短训练时间。具体操作为:
[0123]

继续完成当前周期训练,在结束时,判断是否达到最大训练周期,若达到最大训练周期,训练终止,转到步骤

;否则,跳转至步骤


[0124]

使用验证集计算当前模型的auc,若auc上升,进行下一个周期训练,跳转至步骤

;否则,记录auc最大下降次数,跳转至步骤


[0125]

判断auc最大下降次数,若次数大于2,则终止训练,跳转至步骤

;否则,跳转至步骤


[0126]

终止模型训练,输出验证集auc最高时的模型结果。
[0127]
表3四个数据集上点击率预测的auc和logloss结果
[0128][0129][0130]
预测准确性分析
[0131]
表3展示了不同模型在四个不同的数据集上的整体表现。从实验结果可以观察到:1)从整体来看,与最先进的基于fm和基于深度网络的模型相比,本发明模型hafm在指标auc与logloss上都有很大改进,在所有四个数据集上都取得了更好的性能。2)与lr模型相比,
其余所有含有特征交互模型均具有更优预测准确性,这表明了特征交互操作对于ctr预估的重要性与有效性。3)与fm模型相比,nfm在criteo与avazu数据集上都取得了性能提升,但是在特征数目较少的小数据集movielens-1m和book-crossing上却取得了相反的效果,反观其他利用dnn的进行模型交互的方法均可以取得较大的提升。这一方面说明dnn对于特征深层次的高阶交互和非线性交互有促进作用,但简单的将dnn堆叠在特征二阶交互之后似乎提升较小且在对于特征数目较少的场景便不再适用。另一方面表明了基于fm的显式二阶特征交互在特征数目较少的场景仍然大有可为。可见,hafm引入dnn对特征进行隐式地高阶特征交互和非线性交互以及显式特征交互模块,能有效提升点击率预测准确性。4)与fm模型相比,afm和ffm模型在除movielens-1m数据集之外,均取得了性能提升。这表明了无论引入特征的注意力,还是引入特征域感知注意都对性能有一定的提升。这也说明了注意力机制对于ctr预估的特征交互有一定的促进作用。hafm模型引入语言学中的层次注意力机制,从低阶到高阶地层次捕获特征交互获得了效果的显著提升。5)与其他基于fm的高阶特征交互模型和深度网络先进模型相比,hafm模型的表现均显著地优于它们。这也表明本发明提出的层次注意力网络的有效性。
[0132]
时间效率分析
[0133]
图3-6展示了所有的模型在四个数据集上每个迭代周期(epoch)的运行时间对比。每一个柱形的横坐标表示当前模型,纵坐标表示当前模型一个迭代周期的训练时间,颜色加深的柱体代表本发明提出的模型hafm。从图中可以观察到:1)从整体可以看到,模型在criteo和avazu数据集上的运行时间明显高于movielens-1m和book-crossing数据集,这是由于相对于后两个数据集,前两个数据集的特征数目和样本数量都较多,正如表2所示。2)在所有的数据集上,lr的时间效率最高,fm次之,这是由于两个模型相对简单,fm是在lr的基础上加入了二阶特征交互操作。在criteo和avazu数据集上xdeepfm是效率最低的模型,ffm次之。因为这两个模型有太多的模型参数和计算操作。xdeepfm模型引入的cin网络的每一层计算都需要和输入层的所有向量两两做哈达玛(hadamard)积运算。ffm模型为每一个特征在不同的特征域都嵌入了独立的表示向量,引入了太多参数。在movielens-1m和book-crossing数据集上,hafm是效率最低的模型。这是因为对于特征数目和样本较少的小型数据集,其特征字段数目都小于特征嵌入大小,模型的计算开销占据了大部分的运行时间,hafm模型包含了3层的注意力计算,会降低模型运行效率,但这在特征数目较多的大型数据集上便可以忽略。
[0134]
经上述测试分析,本发明利用二阶交互算子和层次注意力机制实现从低阶到高阶的隐式与显式特征交互,有效提高推荐系统的正确率、运行速率等性能,可广泛应用推荐系统,提升信息主动服务质量。
[0135]
根据本发明的推荐方法,本发明还提供了一种推荐系统,其包括:
[0136]
获取单元,被配置成获取用户实例信息;比如手机客户端或电脑客户端等后台对用户的年龄、性别、职业,喜爱项目的类别与价格,网页点击行为、浏览行为、评论行为与点赞行为等数据采集,得到用户实例信息;
[0137]
推测单元,被配置成将所述用户实例信息输入根据权利要求1-5中任一项所述方法训练得到推荐模型,将待预测的用户实例信息利用训练好的推荐模型计算得到所述用户对目标项目推荐的概率;
[0138]
推送单元,被配置成将推荐的概率大于或者等于预设推荐阈值所对应的目标项目推荐给用户的终端。
[0139]
尽管本发明的实施方案已公开如上,但其并不仅仅限于说明书和实施方式中所列运用。它完全可以被适用于各种适合本发明的领域。对于熟悉本领域的人员而言,可容易地实现另外的修改。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献