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

一种基于深度学习的推荐算法库的制作方法

2021-11-03 21:43:00 来源:中国专利 TAG:


1.本发明属于推荐系统技术领域,尤其涉及一种基于深度学习的推荐算法库。


背景技术:

2.推荐算法是一种信息过滤工具,对用户日常行为产生的数据进行处理,用得到的结果去分析用户对不同实体或内容的喜好,根据用户的喜好程度不同来推荐用户感兴趣的相关实体或内容;基于深度学习的推荐系统吸引了大量来自学术界和工业界科研人员的关注,每年都有许多新模型被提出;科研人员往往需要实现已提出模型来进行结果比较,这是一个巨大的挑战,即便有部分论文提供源代码,但所采用的编程语言或深度学习框架各种各样,想要在同一框架内进行结果对比并不容易。
3.然而目前存在的推荐系统算法包并没有跟上推荐系统算法的发展;现有的算法包多是基于传统的推荐模型,比如mymedialite,librec和suprise;这些算法包中的模型不能进行端到端的训练,甚至有的算法包不是机器学习第一语言
‑‑‑‑‑
python编写,导致不能很好的集成到现有的推荐服务中;存在唯一基于深度学习的算法库
‑‑‑‑‑
openrec,它仅仅提供基于深度学习的推荐系统模型的接口,没有对模型中的组件进行抽象,因此不具有良好的可扩展性。
4.针对目前缺少易于扩展基于深度学习的推荐系统算法包问题,基于对dcn、deepfm、nfm、afm等推荐系统中常用深度学习算法的共性分析,本发明设计并实现一个基于深度学习的推荐系统算法包
‑‑‑
deeprs,以解决上述问题。


技术实现要素:

5.本发明的目的是提供一个基于深度学习的推荐系统算法包——deeprs,推荐系统算法包deeprs是一种开源的、易扩展的算法包,丰富了推荐系统算法工具箱,填补了基于深度学习的推荐系统算法包缺口,使基于深度学习的推荐模型结果再现更容易,降低开发基于深度学习的推荐模型的门槛,同时又提高其实用性,以解决背景技术中提出的问题。
6.为了实现上述目的,本发明采用了如下技术方案:
7.一种基于深度学习的推荐算法库,包括推荐系统算法包deeprs,所述推荐系统算法包deeprs包括框架层、抽象层和算法层三层架构,所述框架层采用tensorflow开源框架,所述tensorflow开源框架为上层服务提供自动微分、张量计算、gpu计算以及数值优化算法多个接口;所述抽象层利用框架层中提供的多个接口实现嵌入层、全连接层、多层感知机层、预测层、因子分解机层、注意力网络层、交叉层以及交叉网络层多个接口;所述算法层基于抽象层和框架层实现dcn算法、deepfm算法、nfm算法和afm算法四个深度学习推荐系统算法。
8.优选的,所述tensorflow开源框架基于数据流图进行数值计算,所述数据流图将各个节点分配到不同的计算设备上完成异步并行计算;所述tensorflow开源框架的核心组件由分发式中心、数据流执行器、内核实现以及最底端的设备层和网络层组成。
9.优选的,所述tensorflow开源框架的运行过程如下:
10.a1:所述分发式中心从输入的数据流图中提取子图,将其划分为操作片段并启动数据流执行器;
11.a2:所述分发式中心处理数据流图时会预先进行设定好的优化操作,包括消去公共子表达式和常量折叠等优化方式;
12.a3:所述数据流执行器负责操作图在设备和进程中运行,收发其它所述数据流执行器的结果;所述数据流执行器在调度本地设备时会优先选择并行计算和gpu计算加速;
13.a4:所述内核实现负责单一图操作,包括数学基础运算、数组操作、控制流操作和状态管理操作;所述内核实现使用内部引擎执行张量的并行计算、gpu加速和低精度数值计算;
14.a5:所述网络层为上层提供rpc和rdma通信接口;设备层控制底层设备的处理,使其对上层提供统一的设备管理接口。
15.优选的,所述抽象层包括了嵌入层、全连接层、多层感知机层、预测层、因子分解机层、注意力网络层、交叉层和交叉网络层;
16.所述嵌入层将经过one

hot编码的高维稀疏的特征向量进行处理,保证深度推荐模型可以找到最优值;
17.所述全连接层作为深度推荐模型的基石和学习输入中的表示,所述全连接层用于将深度推荐模型学到的“分布式特征表示”映射到样本标记空间;
18.所述多层感知机层是由多个全连接层组成的网络,用于将深度推荐模型学习过程中属于复杂输入的视频和图像进行抽象表示;
19.所述预测层用于将最后一层的输入数据进行一个函数变换;
20.所述因子分解层用于在推荐系统中自动学习特征交互功能,解决大规模稀疏数据下的特征组合问题;
21.所述注意力网络层用于在推荐系统中给与不同特征组合赋予不同的权重,在推荐系统中识别不同特征交互的重要性;
22.所述交叉层用于学习交叉特征,所述交叉网络层是由多层交叉层组成的网络,用于高效的学习显式交叉特征。
23.优选的,所述嵌入层的表达式为:需要估计的参数为m∈r
m
×
n
(n<<m),其中,x∈r
m
表示类别特征one

hot编码后的向量,x
t
m∈r
n
表示该类别特征经过映射后的嵌入向量,m表示类别特征的总数,n表示嵌入向量空间的大小;
24.所述全连接层的表达式为:
25.a
(l 1)
=f(w
(l)
a
(l)
b
(l)
)
26.需要估计的参数有w
l
∈r
n
×
m
,b
(l)
∈r
n
×1,其中,l表示第l层全连接层,f是激活函数,w
(l)
和b
(l)
分别被称为第l层权重矩阵和偏置,a
(l)
表示第l层的输入,m和n分别表示第l层的神经元数量、第l 1层的神经元数量;
27.所述多层感知机层的表达式为:
28.a1=x
29.a
(2)
=f(w
(1)
a
(1)
b
(1)
)
30.........
31.a
(l

1)
=f(w
(l

2)
a
(l

2)
b
(l

2)
)
32.y
mlp
(x)=f(w
(l

1)
a
(l

1)
b
(l

1)
)
33.其中,l是多层感知机层的深度,f是激活函数,w
(l)
和b
(l)
分别被称为第l层权重矩阵和偏置,a
(l)
和a
(l 1)
分别表示第l层的输入和输出;多层感知机层的输入为x,输出为y
mlp
(x),输出维度由多层感知机层中最后一层的隐藏单元数量决定;
34.所述预测层的表达式为:
35.y
predict
(x)=f(x b);其中,x,b∈r
n
分别表示输入和偏置参数,f表示变换函数;
36.所述因子分解机层表达式为:
[0037][0038]
式中需要估计的参数是w0∈r,w∈r
n
,v∈r
n
×
k
,其中,<v
i
,v
j
>表示两个长度为k的向量的点积,w
i
反应一阶特征的重要性,v表示嵌入向量集;
[0039]
所述注意力网络层的表达式为:
[0040]
d
i,j
=h
t
relu(w(v
i

v
j
) b)
[0041]
需要估计的参数是w∈r
t
×
k
,b∈r
t
×1,h∈r
t
×1;其中,t表示注意力网络层中隐藏单元的数量,通常被称为注意力因子,k表示输入向量的长度;
[0042]
所述交叉层的表达式为:
[0043]
x
l 1
=f(x
l
,x0)=x0x
lt
w
l
b
l
x
l
[0044]
其中,x0∈r
d
,x
l
,x
l 1
∈r
d
分别表示第l层的输入和输出向量,w
l
,b
l
∈r
d
分别表示第l层的权重和偏置参数,f表示拟合一个x
l 1

x
l
残差的映射函数;
[0045]
所述交叉网络层的表达式为:
[0046][0047]
其中,x0,x1,...,x
l 1
∈r
d
,x
l
列向量表示第l交叉层的输入,而x
l 1
表示第l交叉层的输出;w
l
,b
l
∈r
d
表示第l交叉层的权重参数和偏置参数,均可以通过训练得到。
[0048]
优选的,所述afm算法、nfm算法和deepfm算法均属于可以学习任何实值特征向量的通用机器学习器,所述nfm算法用于学习推荐场景中稀疏数据之间的高低阶交互,所述deepfm算法用于学习推荐场景中稀疏数据之间的低阶交互和非线性表示。
[0049]
与现有技术相比,本发明提供了一种基于深度学习的推荐算法库,具备以下有益效果:
[0050]
(1)本发明提出了一个基于深度学习的推荐系统算法包deeprs,推荐系统算法包
deeprs是一种开源的、易扩展的算法包,丰富了推荐系统算法工具箱,填补了基于深度学习的推荐系统算法包缺口,使基于深度学习的推荐模型结果再现更容易,降低开发基于深度学习的推荐模型的门槛,同时又提高其实用性。
[0051]
(2)本发明中的推荐系统算法包deeprs包括框架层、抽象层和算法层三层架构,框架层采用tensorflow开源框架,提供自动微分、张量计算、gpu计算以及数值优化算法等接口,抽象层利用框架层中接口实现嵌入层、全连接层、多层感知机层、预测层、因子分解机层、注意力网络层、交叉层以及交叉网络层多个接口,算法层基于抽象层和框架层实现dcn、deepfm、nfm、afm等深度推荐系统算法;本发明中的推荐系统算法包deeprs是基于算法级别的模块化,因此可以轻而易举的在某个推荐算法中添加一些复杂的辅助功能;另外,推荐系统算法包deeprs的框架层是建立在tensorflow之上的,因此推荐系统可以很方便的利用现代硬件,并且扩展到分布式计算环境。
[0052]
(3)本发明中的推荐系统算法包deeprs是针对推荐数据的稀疏性和多样性,基于深度学习的推荐模型提出的完全开源的python算法包,作为建模推荐任务的工具,便于使用;通过实验验证了算法包的可行性。
[0053]
(4)本发明对推荐系统算法包deeprs的合理性进行实验分析,在各种实验环境下分析nfm算法、afm算法、deepfm算法和dcn算法的训练误差和准确率;在图7

10中描述了afm、nfm、deepfm、dcn模型的学习过程,其中,左纵坐标轴为交叉熵,右纵坐标轴为准确率,横轴表示afm、nfm、deepfm、dcn模型的迭代次数;metric

train和metric

val分别表示afm、nfm、deepfm、dcn模型在训练集和验证集中的准确率,loss

train和loss

val分别表示afm、nfm、deepfm、dcn模型在训练集和验证集中的交叉熵;根据图7

10中可以看到,随着迭代次数的增加,训练集的损失值逐渐下降,但是验证集的准确率都保持在0.75附近,即模型存在过拟合的问题。
附图说明
[0054]
图1为本发明提出的一种基于深度学习的推荐算法库的deeprs的体系架构图;
[0055]
图2为本发明提出的一种基于深度学习的推荐算法库的框架层结构设计图;
[0056]
图3为本发明提出的一种基于深度学习的推荐算法库的afm算法的网络拓扑结构图;
[0057]
图4为本发明提出的一种基于深度学习的推荐算法库的nfm算法的网络拓扑结构图;
[0058]
图5为本发明提出的一种基于深度学习的推荐算法库的deepfm算法的网络拓扑结构图;
[0059]
图6为本发明提出的一种基于深度学习的推荐算法库的dcn算法的网络拓扑结构图;
[0060]
图7为本发明提出的一种基于深度学习的推荐算法库的afm训练误差和准确率展示图;
[0061]
图8为本发明提出的一种基于深度学习的推荐算法库的nfm训练误差和准确率展示图;
[0062]
图9为本发明提出的一种基于深度学习的推荐算法库的deepfm训练误差和准确率
展示图;
[0063]
图10为本发明提出的一种基于深度学习的推荐算法库的dcn训练误差和准确率展示图。
具体实施方式
[0064]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
[0065]
实施例1:
[0066]
请参阅图1

2,一种基于深度学习的推荐算法库,包括推荐系统算法包deeprs,如图1所示,所述推荐系统算法包deeprs包括框架层、抽象层和算法层三层架构,所述框架层采用tensorflow开源框架,所述tensorflow开源框架为上层服务提供自动微分、张量计算、gpu计算以及数值优化算法多个接口;所述抽象层利用框架层中提供的多个接口实现嵌入层、全连接层、多层感知机层、预测层、因子分解机层、注意力网络层、交叉层以及交叉网络层多个接口;所述算法层基于抽象层和框架层实现dcn算法、deepfm算法、nfm算法和afm算法四个深度学习推荐系统算法;
[0067]
所述tensorflow开源框架基于数据流图进行数值计算,所述数据流图将各个节点分配到不同的计算设备上完成异步并行计算;如图2所示,所述tensorflow开源框架的核心组件由分发式中心、数据流执行器、内核实现以及最底端的设备层和网络层组成;
[0068]
所述tensorflow开源框架的运行过程如下:
[0069]
a1:所述分发式中心从输入的数据流图中提取子图,将其划分为操作片段并启动数据流执行器;
[0070]
a2:所述分发式中心处理数据流图时会预先进行设定好的优化操作,包括消去公共子表达式和常量折叠等优化方式;
[0071]
a3:所述数据流执行器负责操作图在设备和进程中运行,收发其它所述数据流执行器的结果;所述数据流执行器在调度本地设备时会优先选择并行计算和gpu计算加速;
[0072]
a4:所述内核实现负责单一图操作,包括数学基础运算、数组操作、控制流操作和状态管理操作;所述内核实现使用内部引擎执行张量的并行计算、gpu加速和低精度数值计算;
[0073]
a5:所述网络层为上层提供rpc和rdma通信接口;设备层控制底层设备的处理,使其对上层提供统一的设备管理接口;
[0074]
所述抽象层包括了嵌入层、全连接层、多层感知机层、预测层、因子分解机层、注意力网络层、交叉层和交叉网络层;
[0075]
所述afm算法、nfm算法和deepfm算法均属于可以学习任何实值特征向量的通用机器学习器,所述nfm算法用于学习推荐场景中稀疏数据之间的高低阶交互,所述deepfm算法用于学习推荐场景中稀疏数据之间的低阶交互和非线性表示。
[0076]
实施例2:
[0077]
如图3

6所示,基于实施例1又有所不同的是:
[0078]
所述嵌入层将经过one

hot编码的高维稀疏的特征向量进行处理,保证深度推荐模型可以找到最优值;
[0079]
所述嵌入层的表达式为:
[0080]
需要估计的参数为m∈r
m
×
n
(n<<m),其中,x∈r
m
表示类别特征one

hot编码后的向量,x
t
m∈r
n
表示该类别特征经过映射后的嵌入向量,m表示类别特征的总数,n表示嵌入向量空间的大小;
[0081]
所述全连接层作为深度推荐模型的基石和学习输入中的表示,所述全连接层用于将深度推荐模型学到的“分布式特征表示”映射到样本标记空间;
[0082]
所述全连接层的表达式为:
[0083]
a
(l 1)
=f(w
(l)
a
(l)
b
(l)
)
[0084]
需要估计的参数有w
l
∈r
n
×
m
,b
(l)
∈r
n
×1,其中,l表示第l层全连接层,f是激活函数,w
(l)
和b
(l)
分别被称为第l层权重矩阵和偏置,a
(l)
表示第l层的输入,m和n分别表示第l层的神经元数量、第l 1层的神经元数量;
[0085]
所述多层感知机层是由多个全连接层组成的网络,用于将深度推荐模型学习过程中属于复杂输入的视频和图像进行抽象表示;所述多层感知机层的表达式为:
[0086]
a1=x
[0087]
a
(2)
=f(w
(1)
a
(1)
b
(1)
)
[0088]
........
[0089]
a
(l

1)
=f(w
(l

2)
a
(l

2)
b
(l

2)
)
[0090]
y
mlp
(x)=f(w
(l

1)
a
(l

1)
b
(l

1)
)
[0091]
其中,l是多层感知机层的深度,f是激活函数,w
(l)
和b
(l)
分别被称为第l层权重矩阵和偏置,a
(l)
和a
(l 1)
分别表示第l层的输入和输出;
[0092]
所述预测层用于将最后一层的输入数据进行一个函数变换;
[0093]
所述预测层的表达式为:
[0094]
y
predict
(x)=f(x b);其中,x,b∈r
n
分别表示输入和偏置参数,f表示变换函数;
[0095]
所述因子分解层用于在推荐系统中自动学习特征交互功能,解决大规模稀疏数据下的特征组合问题;
[0096]
所述因子分解机层表达式为:
[0097][0098]
式中需要估计的参数是w0∈r,w∈r
n
,v∈r
n
×
k
,其中,<v
i
,v
j
>表示两个长度为k的向量的点积,w
i
反应一阶特征的重要性,v表示嵌入向量集;
[0099]
所述注意力网络层用于在推荐系统中给与不同特征组合赋予不同的权重,在推荐系统中识别不同特征交互的重要性;
[0100]
所述注意力网络层的表达式为:
[0101]
d
i,j
=h
t
relu(w(v
i

v
j
) b)
[0102]
需要估计的参数是w∈r
t
×
k
,b∈r
t
×1,h∈r
t
×1;其中,t表示注意力网络层中隐藏单元的数量,通常被称为注意力因子,k表示输入向量的长度;
[0103]
所述交叉层用于学习交叉特征,所述交叉层的表达式为:
[0104]
x
l 1
=f(x
l
,x0)=x0x
lt
w
l
b
l
x
l
[0105]
其中,x0∈r
d
,x
l
,x
l 1
∈r
d
分别表示第l层的输入和输出向量,w
l
,b
l
∈r
d
分别表示第l层的权重和偏置参数,f表示拟合一个x
l 1

x
l
残差的映射函数;
[0106]
所述交叉网络层是由多层交叉层组成的网络,用于高效的学习显式交叉特征,所述交叉网络层的表达式为:
[0107][0108]
其中,x0,x1,...,x
l 1
∈r
d
,x
l
列向量表示第l交叉层的输入,而x
l 1
表示第l交叉层的输出;w
l
,b
l
∈r
d
表示第l交叉层的权重参数和偏置参数,均可以通过训练得到。
[0109]
实施例2:
[0110]
如图3

6,基于实施例1又有所不同的是:
[0111]
算法层中的四个深度学习推荐系统算法相关模型的网络拓扑结构和公式,以及使用的正则化方法和优化方式如下:
[0112]
(1)afm算法
[0113]
afm算法的网络拓扑结构如图3所示:
[0114]
其中,afm模型的最终表达式如式(1)和(2)所示:
[0115][0116][0117]
上述x∈r
n
是输入的稀疏向量,该向量通常是由原始数据通过one

hot编码后形成的;当输入向量中x
i
=0意味着该实例中不存在第i个特征;其中,第一项和第二项是线性回归部分,主要用于学习低阶特征之间的权重和建模数据的偏置,第三项是一个注意力层的池化操作网络,主要为二阶特征组合分配不同的权重;稀疏输入层的数据通过嵌入层后,获得一个嵌入向量集:v
x
={x1v1,

,x
n
v
n
},模型中需要求解的参数有θ={w0,{w
i
,v
i
},p,h,w,b}。选择l2范数来防止afm模型的过拟合,这里主要集中在显式反馈实数目标值的回归任务,采用式(3)进行优化,式(3)如下所示:
[0118][0119]
其中,x表示训练集,x表示训练集中的一个实例,w表示注意力层的权重矩阵,λ控制正则化的强度;优化该目标函数使用随机梯度下降算法;其核心思想是迭代更新参数直到函数收敛,如式(4)所示;在迭代过程中,每次随机的选择一个训练样本x,朝模型参数的
负梯度方向进行更新,其时间复杂度大约为o(n2(t
×
k));
[0120][0121]
(2)nfm算法
[0122]
nfm算法由嵌入层、多层感知机层、全连接层、预测层组成,其主要作用是学习推荐场景中稀疏数据之间的高低阶交互;nfm是一个可以学习任何实值特征向量的通用机器学习器,nfm算法的网络拓扑结构如图4所示;
[0123]
其中,nfm模型的最终表达式如式(5)所示:
[0124][0125]
需要特别强调的是第三项是一个堆叠多层全连接层的多层前向神经网络,以捕捉更高阶的特征之间的关系;l表示多层感知机层的深度,w
l
、b
l
、σ
l
分别表示第l层的权重矩阵、偏置向量和激活函数;向量h表示预测层(最后一层)的权重;模型中需要求解的参数有θ={w0,{w
i
,v
i
},h,{w1,b1}};最后,采用dropout技术来防止模型的过拟合;
[0126]
这里主要集中在隐式反馈推荐的二分类任务,因此用交叉熵函数,即式(6)进行优化;优化该目标函数同样使用随机梯度下降算法,如式(7);考虑到基于深度学习的推荐系统中数据稀疏问题,采用批量adagrad算法作为优化器而不是朴素版本的sgd算法,因为adagrad算法学习速度在训练阶段可以自适应,结果就是它的收敛速度更快;同时,为了处理模型的过拟合问题,在池化操作上使用了dropout技术;式(6)和式(7)分别如下:
[0127][0128][0129]
(3)deepfm算法
[0130]
deepfm算法由嵌入层、因子分解机层、多层感知机层、全连接层、预测层组成,其主要作用是学习推荐场景中稀疏数据之间的低阶交互和非线性表示;deepfm是基于因子分解机器的神经网络,是一个可以学习任何实值特征向量的通用机器学习器;deepfm模型由fm组件和dnn组件组成,它们共享相同的输入;y
fm
(x)、y
dnn
(x)分别是fm组件和dnn组件的输出;fm组件是一个堆叠在嵌入层和输入层上的fm层,其主要建模数据的偏置和特征的权重以及二阶特征交互;dnn组件是一个堆叠在嵌入层上的多层感知机层和全连接层,主要建模高阶特征交互;deepfm算法的网络拓扑结构如图5所示;
[0131]
其中,afm模型的最终表达式为式(8)所示:
[0132]
y
deepfm
(x)=f(y
fm
(x) y
dnn
(x))
ꢀꢀꢀ
(8)
[0133]
fm组件的表达式为式(9)所示:
[0134]
[0135]
dnn组件的表达式如式(10)所示:
[0136]
y
dnn
(x)=σ
l
(w
l
(...σ1(w1f
bi
(v
x
) b1)...) b
l
)
ꢀꢀꢀ
(10)
[0137]
f表示预测层中使用的函数;l表示多层感知机层的深度,σ是激活函数;除了第0层,a
(l)
、w
(l)
、b
(l)
分别表示第l层的输出、模型权重、偏置;a
(0)
∈r1×
(m
×
k)
表示把嵌入向量集拼接层的一个行向量,嵌入向量集中不包括x中值为0的项;y
mlp
表示一个多层感知机层的输出;这里仅描述采用对数似然损失函数的二分类任务,如式(11)所示;使用随机梯度下降及其变体算法,如式(12)所示;防止过拟合方面:在dnn组件中使用dropout技术,嵌入层中使用l2正则化;在学习的过程中使用早停止策略来选择最佳的迭代次数。
[0138][0139][0140]
(4)dcn算法
[0141]
dcn算法为深度交叉网络,其主要目的是学习特征的抽象表示和更加有效地学习指定阶数内的特征交互;dcn算法的网络拓扑结构如图6所示;
[0142]
其中,nfm模型的最终表达式为式(13)、(14)、(15)、(16):
[0143][0144]
x1=y
embedding
(x)
ꢀꢀ
(14)
[0145]
x
out
=[y
cnl
(x1),y
mlp
(x1)]
ꢀꢀ
(15)
[0146]
y
dcn
(x)=y
prediction
(y
fcl
(x
out
))
ꢀꢀ
(16)
[0147]
式中x
dense
∈r
a
表示实值特征列向量,x
sparse
∈r
b
表示类别特征列向量,x∈r
(a b)
表示把实值特征列向量和类别特征列向量拼接成的列向量,y
embedding
、y
cnl
、y
mlp
、y
fcl
、y
predict
分别表示嵌入层组件、交叉网络层组件、多层感知机层组件、全连接层组件、预测层组件,x1是嵌入层组件的输出,x
out
是交叉网络层组件输出和多层感知机层组件输出拼接而成的列向量;在这里仅描述采用对数似然损失函数的二分类任务,如式(17)所示;使用随机梯度下降及其变体算法,如式(18)所示;式(17)和式(18)分别如下:
[0148][0149][0150]
实施例3:
[0151]
如图7

10所示,基于实施例1

2又有所不同的是:
[0152]
本发明对推荐系统算法包deeprs的合理性进行实验分析,在各种实验环境下分析nfm算法、afm算法、deepfm算法和dcn算法的训练误差和准确率;
[0153]
(1)实验平台及数据集:
[0154]
算法包在windows10环境下,以vs code为集成开发工具,采用tensorflow开源框架作为框架层,python作为开发语言,pypi做第三方仓库,进行研发;评估本发明已实现的nfm、afm、deepfm、dcn算法采用公开数据集
‑‑
movielens;这个电影评价数据集被广泛地用于评估协同过滤算法;它包含17045个用户应用在23743个产品的668953个标签;把每个标签应用(用户id,电影id和标签id)转化为一个特征向量,总共产生90445个特征。
[0155]
(2)评估方案及实验结果
[0156]
在movielens数据集,每条日志记录都被分配一个值为1的目标,这意味着用户已经在电影上应用了标签;对于movielens中的每条记录,随机采样两个用户没有分配给电影的标签;每条采样的实例其目标值设为

1;因此,movielens的最终实验数据包含2006859个实例;将每个数据集随机分成两个部分:80%用于训练,20%用于验证;训练集用于学习模型,验证集被用于超参数的调优。logloss和auc广泛用于带有显示反馈推荐的分类任务;因此采用auc作为评价指标、logloss为损失函数;auc值越高表明效率越好,与之相反;
[0157]
表(1)afm、dfm、deepfm、dcn四种算法的默认值
[0158][0159]
如表(1)给出了各算法主要的参数设置,取不同算法在movielens数据集各算法训练收敛后稳定在某范围内震荡的平均值作评价指标;图7

10中描述了afm、nfm、deepfm、dcn模型的学习过程;其中,左纵坐标轴为交叉熵,右纵坐标轴为准确率,横轴表示afm、nfm、deepfm、dcn模型的迭代次数;metric

train和metric

val分别表示afm、nfm、deepfm、dcn模型在训练集和验证集中的准确率,loss

train和loss

val分别表示afm、nfm、deepfm、dcn模型在训练集和验证集中的交叉熵;从图7

10中可以看到,随着迭代次数的增加,训练集的损失值逐渐下降,但是验证集的准确率都保持在0.75附近,即模型存在过拟合的问题;
[0160]
本发明针对推荐数据的稀疏性和多样性,设计了基于深度学习的推荐模型的完全开源的python算法包
‑‑‑
deeprs,作为建模推荐任务的工具,便于研究者和实践者使用;通过实验直接验证了算法包的可行性。
[0161]
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献