一种模型训练方法、装置、设备及存储介质

文档序号:32402125发布日期:2022-12-02 19:22阅读:22来源:国知局
一种模型训练方法、装置、设备及存储介质

1.本发明涉及计算机技术领域,特别涉及一种模型训练方法、装置、设备及存储介质。


背景技术:

2.序列推荐的目的是根据用户的历史交互顺序建立商品之间的动态过渡模式,然后将感兴趣的商品推荐给用户。早期的序列推荐模型基于马尔可夫链(mc,markov chain)来捕获高阶序列模式。随着深度学习的兴起,基于深度神经网络的序列推荐模型逐渐占据主导地位。典型的解决方案主要是基于递归神经网络(rnn,recurrent neural network)和卷积神经网络(cnn,convolutional neural networks)来提取短期利益。然而,rnn自身存在梯度消失问题,很难在长序列上传播信息。作为替代方案,transformer(一种深度神经网络)使用自我注意层来解决rnn的局限性。自我注意机制计算一个依赖于输入的注意权重矩阵,以获得整个序列中项目之间的相关度。有了这样一个全局接收域,transformer可以高效地并行处理长序列,并在许多顺序推荐任务中取得令人印象深刻的性能。尽管transformer可以成功地捕获用户的长期兴趣,但它的二次型时间和内存复杂度使得它在处理极长的序列时效率低下。此外,自我注意需要使用附加的辅助位置嵌入对序列项的位置信息进行建模,这被证明有时会损害模型的性能。mlp-mixer(一种架构)是一种基于mlp(多层感知机,multilayer perceptron)的模型,可以在许多具有线性复杂性和位置敏感性的计算视觉任务中实现与transformer相当的性能。受此启发,已有一些工作将mlp架构引入推荐系统,用于解决序列推荐任务。moi-mixer提出了一个多阶交互层来提高其性能。mlp4rec开发了一个三方向融合方案,以相互捕获顺序、跨通道和跨特征的相关性。然而现有的基于mlp的模型假设用户的偏好转移模式是静态的,可以被具有固定权重的mlp统一捕获。实际上,用户的偏好是随着实际情况不断变化的,这种序列转换模式的不确定性使得模型难以动态适应。


技术实现要素:

3.有鉴于此,本发明的目的在于提供一种模型训练方法、装置、设备和存储介质,能够增强模型的稳健性与效率,并提升模型在使用过程中答案的准确性。其具体方案如下:
4.第一方面,本技术公开了一种模型训练方法,包括:
5.获取用户交互序列中的物品id,并基于所述物品id获取物品嵌入向量;
6.基于所述用户交互序列中全部所述物品id对应的全部所述物品嵌入向量生成对应的物品嵌入矩阵,并将所述物品嵌入矩阵输入至动态混合层和通道混合层,以得到动态混合矩阵;
7.基于所述动态混合矩阵与预设损失函数得到当前损失值,并判断所述当前损失值是否满足预设条件;
8.若所述当前损失值满足所述预设条件,则基于当前所述动态混合层和所述通道混
合层中的当前参数得到目标模型。
9.可选的,所述基于所述用户交互序列中全部所述物品id对应的全部所述物品嵌入向量生成对应的物品嵌入矩阵,包括:
10.获取全部所述物品嵌入向量,将全部所述物品嵌入向量进行拼接,以得到所述物品嵌入矩阵;所述用户交互序列中的所述物品id的数量不大于物品集合中元素的数量。
11.4、可选的,所述将所述物品嵌入矩阵输入至动态混合层和通道混合层,以得到动态混合矩阵,包括:
12.将所述物品嵌入矩阵输入至dynamixer进行计算,以得到第一输出值;
13.将所述第一输出值输入至channel mixer进行计算,以得到第二输出值;
14.基于所述第二输出值得到所述动态混合矩阵。
15.可选的,所述将所述物品嵌入矩阵输入至dynamixer进行计算,以得到第一输出值,包括:
16.将所述物品嵌入矩阵输入至动态序列混合器,以便通过预设动态序列混合操作对当前信息片段进行混合,以得到每个所述当前信息片段对应的动态序列混合器输出值;
17.将全部的所述动态序列混合器输出值拼接,以得到目标动态序列混合器输出值;
18.通过线性层将同一通道中的项进行线性变换操作,以得到通道融合输出值;
19.基于所述目标动态序列混合器输出值与所述通道融合输出值得到所述第一输出值。
20.可选的,所述将所述第一输出值输入至channel mixer进行计算,以得到第二输出值,包括:
21.将所述第一输出值输入至channel mixer中的通道混合器,以便基于所述目标动态序列混合器输出值与所述通道融合输出值并通过预设通道混合公式进行计算,以得到每层所述通道混合器的所述第二输出值。
22.可选的,所述基于所述动态混合矩阵与预设损失函数得到当前损失值,并判断所述当前损失值是否满足预设条件,包括:
23.获取所述动态混合矩阵中最后一个物品对应的嵌入向量,以得到目标物品嵌入向量;
24.基于所述目标物品嵌入向量并通过预设归一化公式对当前层进行归一化操作,以得到所述最后一个物品对应的归一化目标值;
25.基于所述归一化目标值与所述用户物品交互序列,并通过预设损失函数进行计算,以得到当前损失值;
26.判断所述当前损失值是否满足预设损失值变化规律。
27.可选的,所述判断所述当前损失值是否满足预设损失值变化规律之后,还包括:
28.若所述当前损失值不满足所述预设损失值变化规律,则使用预设梯度下降规则对所述当前损失值进行调整,以得到调整后损失值;
29.将所述调整后损失值反向传播,以便基于所述调整后损失值调整当前模型中的目标参数,得到调整后参数;
30.相应的,所述若所述当前损失值满足所述预设条件,则基于当前所述动态混合层和所述通道混合层中的当前参数得到目标模型,包括:
31.若基于所述调整后参数以及所述预设损失函数得到的调整后损失值满足所述预设条件,则将所述调整后参数确定为最终参数,并基于所述最终参数得到所述目标模型。
32.第二方面,本技术公开了一种模型训练装置,包括:
33.嵌入向量获取模块,用于获取用户交互序列中的物品id,并基于所述物品id获取物品嵌入向量;
34.混合模块,用于基于所述用户交互序列中全部所述物品id对应的全部所述物品嵌入向量生成对应的物品嵌入矩阵,并将所述物品嵌入矩阵输入至动态混合层和通道混合层,以得到动态混合矩阵;
35.损失值计算模块,用于基于所述动态混合矩阵与预设损失函数得到当前损失值,并判断所述当前损失值是否满足预设条件;
36.模型获取模块,用于若所述当前损失值满足所述预设条件,则基于当前所述动态混合层和所述通道混合层中的当前参数得到目标模型。
37.第三方面,本技术公开了一种电子设备,包括:
38.存储器,用于保存计算机程序;
39.处理器,用于执行所述计算机程序,以实现如前述公开的模型训练方法的步骤。
40.第四方面,本技术公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现如前述公开的模型训练方法。
41.可见,本技术提供了一种模型训练方法,包括:获取用户交互序列中的物品id,并基于所述物品id获取物品嵌入向量;基于所述用户交互序列中全部所述物品id对应的全部所述物品嵌入向量生成对应的物品嵌入矩阵,并将所述物品嵌入矩阵输入至动态混合层和通道混合层,以得到动态混合矩阵;基于所述动态混合矩阵与预设损失函数得到当前损失值,并判断所述当前损失值是否满足预设条件;若所述当前损失值满足所述预设条件,则基于当前所述动态混合层和所述通道混合层中的当前参数得到目标模型。由此可见,本技术通过物品的id获取对应的物品嵌入矩阵,然后通过动态混合层和所述通道混合层得到动态混合矩阵,再基于预设损失函数确定最终的模型参数,即动态的调整动态混合层中的参数,从而选择最合适的参数得到目标模型,增强了模型的稳健性与效率,并提升了模型在使用过程中答案的准确性。
附图说明
42.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
43.图1为本技术公开的一种模型训练方法流程图;
44.图2为本技术公开的模型示意图;
45.图3为本技术公开的一种具体的模型训练方法流程图;
46.图4为本技术提供的模型训练装置结构示意图;
47.图5为本技术提供的一种电子设备结构图。
具体实施方式
48.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
49.目前,已有一些工作将mlp架构引入推荐系统,用于解决序列推荐任务。moi-mixer提出了一个多阶交互层来提高其性能。mlp4rec开发了一个三方向融合方案,以相互捕获顺序、跨通道和跨特征的相关性。然而现有的基于mlp的模型假设用户的偏好转移模式是静态的,可以被具有固定权重的mlp统一捕获。实际上,用户的偏好是随着实际情况不断变化的,这种序列转换模式的不确定性使得模型难以动态适应。为此,本技术提供了一种模型训练方法,能够增强模型的稳健性与效率,并提升模型在使用过程中答案的准确性。
50.本发明实施例公开了一种模型训练方法,参见图1所示,该方法包括:
51.步骤s11:获取用户交互序列中的物品id,并基于所述物品id获取物品嵌入向量。
52.本实施例中,获取用户交互序列中的物品id,并基于所述物品id获取物品嵌入向量。可以理解的是,获取用户的集合u以及用户的数量|u|,物品的集合i以及物品的数量|i|。我们构建用户u的交互序列其中表示用户u交互过的第t个物品,n表示交互序列的长度,也是物品集合中物品的数量。然后定义序列推荐,获得用户物品交互序列su,目的是预测用户u的下一个最有可能点击的商品如图2所示构建模型,模型包含嵌入层、动态混合层以及通道混合层。基于序列推荐系统中的目标策略,从预设的查找表中获取每个物品id对应的物品嵌入向量以及每个用户id对应的用户嵌入向量。
53.步骤s12:基于所述用户交互序列中全部所述物品id对应的全部所述物品嵌入向量生成对应的物品嵌入矩阵,并将所述物品嵌入矩阵输入至动态混合层和通道混合层,以得到动态混合矩阵。
54.本实施例中,基于所述物品id获取物品嵌入向量之后,基于所述用户交互序列中全部所述物品id对应的全部所述物品嵌入向量生成对应的物品嵌入矩阵,并将所述物品嵌入矩阵输入至动态混合层和通道混合层,以得到动态混合矩阵。具体的,获取全部所述物品嵌入向量,将全部所述物品嵌入向量进行拼接,以得到所述物品嵌入矩阵;所述用户交互序列中的所述物品id的数量不大于物品集合中元素的数量。需要指出的是,上述全部所述物品嵌入向量为在前一步骤中的用户交互序列中获取到的物品id对应的嵌入向量的总和。用户交互序列中的物品id并不一定包含物品集合中的全部物品id,可能只是部分物品id,全部的用户交互序列中包含的全部物品id会覆盖所述物品集合中的全部物品id。例如总共有600个用户,9000个物品,每个用户与一系列的物品交互,形成交互序列,这600个用户的交互序列能覆盖9000个物品。某个用户的交互序列为[4,86,542,49,94]这5个物品,每个物品转成d维嵌入向量,5个物品就对应了5
×
d的矩阵,模型每次处理的是一个序列的嵌入矩阵,而不是全部。
[0055]
例如用户交互序列中有n个物品id,获取每个物品id对应的一行m列物品嵌入向量,将n个物品嵌入向量进行拼接,得到n*m的物品嵌入矩阵,保持一个嵌入矩阵和ei∈r
|i|
×d,其中d是嵌入大小。需要指出的是,现有技术中将物品id转化为高维独热编码,再由高维独热编码投影到一个低维密集表示上,得到最终的物品嵌入矩阵。而本方案省去转化为高维独热编码这一步骤,可以直接通过物品id得到对应的低维密集表示,并且与注意力或transformer不同,本方案中设计的模型对输入序列的顺序很敏感,因此不需要进行位置编码。具体的,在得到用户交互序列对应的物品嵌入矩阵之后,将上述物品嵌入矩阵输入至动态序列混合器以获取序列间的相关信息。传统的序列混合器是一个线性变换的过程,即将输入的矩阵与另一个线性变换矩阵相乘,而本方案则是用另一个线性层来生成这里的线性变换矩阵,使得该线性变换矩阵能够根据不同的输入矩阵进行动态的调整,随后将通过动态序列混合器的表示经过转置后输入至通道混合器,以获取嵌入维度之间的依赖关系,最终得到所述动态混合矩阵。
[0056]
可以理解的是,在计算机视觉领域,提出了动态卷积网络,根据不同的输入数据动态调整卷积核的权值参数。同样在nlp领域,动态卷积在许多nlp任务上也取得了显著的效果,即根据不断变化的输入数据生成相应的动态权值,动态权重模型类似于自适应模型。在物品信息向上传递的过程中,必须通过“用户敏感”的动态权重对其进行“调制”,根据不同的用户,前一层的模式是局部放大或衰减的。因此设计基于动态mlp的序列推荐体系结构(dm4rec),具有线性计算复杂度,同时在聚合项目表示时能够考虑交叉位置信息。具体地说,模型由两个主要组件组成,分别是dynamixer和channel mixer。dynamixer的目标是通过动态混合序列中的项来获得整个序列的信息。使模型能够根据输入数据自适应地调整mlp权重,而不需要其他先验知识或用户信息。在处理出现新用户或不同用户交互序列的顺序推荐任务时,动态性具有很大的优势。同时channel mixer对每个项目自身的嵌入表示进行多维混合,实现通道依赖。为了增强模型的稳健性,将项目嵌入划分为代表不同语义的多段,以进行分段动态混合。
[0057]
步骤s13:基于所述动态混合矩阵与预设损失函数得到当前损失值,并判断所述当前损失值是否满足预设条件。
[0058]
本实施例中,将所述物品嵌入矩阵输入至动态混合层和通道混合层,得到动态混合矩阵之后,基于所述动态混合矩阵与预设损失函数得到当前损失值,并判断所述当前损失值是否满足预设条件。
[0059]
步骤s14:若所述当前损失值满足所述预设条件,则基于当前所述动态混合层和所述通道混合层中的当前参数得到目标模型。
[0060]
本实施例中,基于所述动态混合矩阵与预设损失函数得到当前损失值,并判断所述当前损失值是否满足预设条件之后,若所述当前损失值满足所述预设条件,则基于当前所述动态混合层中的当前参数得到目标模型。可以理解的是,得到所述目标模型之后,在使用该目标模型时,接收用户输入的现有的全部数据,通过上述模型计算后输出对候选物品的偏好得分,然后将获取到的偏好得分进行排序,将分值最高的一项作为最后的推荐结果。
[0061]
在训练模型的过程中,为了模型性能,在广泛使用的四个用于推荐的数据集上进行实验。数据集分别为diginetica、ml-100k、amazon-baby以及amazon-music,数据集详细数据如下表1所示:
[0062]
表1
[0063]
datasetusersitemsinteractionsavg.lengthsparsity
baby1944670511607928.399.88%music1430901102617.299.20%diginetica48157206123549427.499.96%ml-100k944135099287105.392.21%
[0064]
然后进入推荐性能比较的步骤,具体的,采用了两个最常用的性能评估指标,即召回和归一化折扣累积增益(ndcg,normalized discounted cumulative gain)。召回率是出现在前n个推荐中的ground-truth项目的准确性。ndcg是一种排名损失,用于衡量真实项目在前n个推荐中的位置。对于每个用户,根据预测得分对每个项目进行降序排序并生成推荐列表,并截取前n个项目,计算出评价指标的前n个结果。由于recall@1等价于ndcg@1,因此报告recall@{5,10,20}和ndcg@{5,10,20}的结果。此外,将本模型与常见的序列推荐模型进行比较,具体的推荐性能以及本模型相较于常见的序列推荐模型提升的百分比数值如下表2所示:
[0065]
表2
[0066]
[0067][0068]
可见,本技术提供了一种模型训练方法,包括:获取用户交互序列中的物品id,并基于所述物品id获取物品嵌入向量;基于所述用户交互序列中全部所述物品id对应的全部所述物品嵌入向量生成对应的物品嵌入矩阵,并将所述物品嵌入矩阵输入至动态混合层和通道混合层,以得到动态混合矩阵;基于所述动态混合矩阵与预设损失函数得到当前损失值,并判断所述当前损失值是否满足预设条件;若所述当前损失值满足所述预设条件,则基于当前所述动态混合层和所述通道混合层中的当前参数得到目标模型。由此可见,本技术通过物品的id获取对应的物品嵌入矩阵,然后通过动态混合层和所述通道混合层得到动态混合矩阵,再基于预设损失函数确定最终的模型参数,即动态的调整动态混合层中的参数,从而选择最合适的参数得到目标模型,增强了模型的稳健性与效率,并提升了模型在使用
过程中答案的准确性。
[0069]
参见图3所示,本发明实施例公开了一种模型训练方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。
[0070]
步骤s21:获取用户交互序列中的物品id,并基于所述物品id获取物品嵌入向量。
[0071]
步骤s22:基于所述用户交互序列中全部所述物品id对应的全部所述物品嵌入向量生成对应的物品嵌入矩阵,并将所述物品嵌入矩阵输入至dynamixer进行计算,以得到第一输出值。
[0072]
本实施例中,基于所述物品id获取物品嵌入向量之后,基于所述物品嵌入向量生成对应的物品嵌入矩阵,并将所述物品嵌入矩阵输入至dynamixer进行计算,以得到第一输出值。具体的,将所述物品嵌入矩阵输入至动态序列混合器,以便通过预设动态序列混合操作对当前信息片段进行混合,以得到每个所述当前信息片段对应的动态序列混合器输出值;将全部的所述动态序列混合器输出值拼接,以得到目标动态序列混合器输出值;通过线性层将同一通道中的项进行线性变换操作,以得到通道融合输出值;基于所述目标动态序列混合器输出值与所述通道融合输出值得到所述第一输出值。
[0073]
动态序列混合器是本模型的关键组件,动态序列混合器的原始版本序列混合器是一个线性变换的过程,本质就是把输入矩阵例如e∈r4×5与矩阵5*9相乘,最终得到4*9的矩阵。上述动态的意思是指5*9的矩阵并不是固定的,而是用另一个矩阵9*4(即公式中的w,这里的w是固定的)与e生成的,9*4*4*5=9*5,在转置后得到矩阵5*9(即公式中的wd),这样一来,线性变换的矩阵就不是固定的了,而是根据不同的输入e生成不同的5*9(公式中的wd)的矩阵,这就是动态的思想。需要指出的是,传统的序列混合器就是一个线性变换的过程,即将输入矩阵与另一个线性变换矩阵相乘,而本方案的动态序列混合器则是用另一个线性层来生成将这里要使用的线性变换矩阵,使得该线性变换矩阵能够根据不同的输入矩阵动态的调整。
[0074]
可以理解的是,通过一个线性层传递输入序列表示获得动态混合矩阵,首先将动态序列混合操作应用于每一项对应的序列嵌入表示。动态混合层包括dyna mixer与channel mixer两部分,dynamixer模块由动态序列混合器和通道融合两部分组成,在动态序列混合器中将属于同一通道的项通过动态混合操作进行混合,得到目标动态序列混合器输出值,将同一通道中的项通过预设动态混合操作进行混合,以得到通道融合输出值,然后基于所述目标动态序列混合器输出值与所述通道融合输出值得到所述第一输出值。
[0075]
进一步的,动态序列混合器的目标是通过考虑用户交互序列的内容学习它们之间的序列相关性。所以动态序列混合器的输入维度即为输入序列的长度。为减少模型的参数数量,提高训练效率,使用线性层进一步减少物品嵌入表示的维度,然后对该矩阵做一个转置操作,使得输入维度匹配。形式上定义每层动态序列混合器的输出如下:
[0076]
wd=softmax(flat(e)w+b)
ꢀꢀꢀꢀ
公式1;
[0077]
dm(e)=wdlayernorm(e)
ꢀꢀꢀ
公式2;
[0078][0079]
通过采用层归一化和残差连接来保持训练过程的稳定性,此外为了防止过拟合,在每个动态序列混合层后使用dropout机制,使模型更快地收敛。现有技术中在基于transformer的模型中,利用多头自注意机制从不同的表示子空间中提取不同的语义信息。
因此利用多个不同的线性投影层将原始输入表示投影到不同表示子空间的s段中,然后对每个段进行dynamixer运算,得到不同的语义表示。例如:
[0080]
e(i)=w(i)e+b(i)ꢀꢀꢀꢀꢀꢀꢀ
公式4;
[0081][0082][0083]
其中表示第i段的动态序列混合矩阵,wo∈rd×d是一个输出的段混合权重矩阵。
[0084]
最后,将语义信息片段(即segi)拼接在一起,并使用线性投影层来统一维度。计算公式如下:
[0085]
multiseg(e)=concat(seg1;seg2;...;segs)wo。
[0086]
需要指出的是,最终动态序列混合器输出miltiseg(e)(即为y
t
),通道融合输出yc,并且dynamixer中的参数在各通道之间共享。可以理解的是,通道融合的具体过程如下:对原始的用户交互序列对应的物品嵌入矩阵沿着通道维度使用线性层进行线性变换,得到通道融合之后的嵌入矩阵。这个过程与动态序列混合是并行独立的,两者互不相干。
[0087]
将y
t
与yc输入至以下公式,得到dynamixer最终输出的第一输出值yd:
[0088]
yd=(y
t
+yc)wo+bo。
[0089]
步骤s23:将所述第一输出值输入至channel mixer进行计算,以得到第二输出值。
[0090]
本实施例中,将所述物品嵌入矩阵输入至dynamixer进行计算,得到第一输出值之后,将所述第一输出值输入至channel mixer进行计算,以得到第二输出值。具体的,将所述第一输出值输入至channel mixer中的通道混合器,以便基于所述目标动态序列混合器输出值与所述通道融合输出值并通过预设通道混合公式进行计算,以得到每层所述通道混合器的所述第二输出值。
[0091]
可以理解的是,通道混合器与动态序列混合器具有相似的宏观结构,二者的关键区别在于它们的用途。channel mixer的目标是学习每个项目的嵌入向量之间的相关性,由于嵌入向量的每个维度通常表达不同的语义,集体学习它们的表示对于做出预测是至关重要的。此外channel mixer还可以从不同维度传递序列信息,从而可以相干地学习序列信息的隐藏表示。因此通道混合器的输入尺寸必须与嵌入向量的尺寸(d)匹配。使用动态序列混合器捕获动态序列转换模式,模型权重根据输入数据自适应的调整,然后使用通道混合器来建模物品的通道依赖性,同时使用随机丢弃以防止过拟合以及使用归一化提高训练速度和稳定性,最后得到最终的用户和物品向量表示。
[0092]
每层通道混合器的输出如下:
[0093]
y=yd+w2g(w1layernorm(yd)+b1)+b2;
[0094]
其中分别表示channelmixer的第一个和第二个全连接层可学习权重。
[0095]
步骤s24:基于所述第二输出值得到所述动态混合矩阵。
[0096]
本实施例中,所述第一输出值输入至channel mixer进行计算,得到第二输出值之后,基于所述第二输出值得到所述动态混合矩阵。即基于每层通道混合器的输出得到最终
的所述动态混合矩阵。
[0097]
步骤s25:基于所述动态混合矩阵与预设损失函数得到当前损失值,并判断所述当前损失值是否满足预设条件。
[0098]
本实施例中,基于所述第二输出值得到所述动态混合矩阵之后,基于所述动态混合矩阵与预设损失函数得到当前损失值,并判断所述当前损失值是否满足预设条件。具体的,获取所述动态混合矩阵中最后一个物品对应的嵌入向量,以得到目标物品嵌入向量;基于所述目标物品嵌入向量并通过预设归一化公式对当前层进行归一化操作,以得到所述最后一个物品对应的归一化目标值;基于所述归一化目标值与所述用户物品交互序列,并通过预设损失函数进行计算,以得到当前损失值;判断所述当前损失值是否满足预设损失值变化规律。即得到用户序列的最终嵌入矩阵后,取最后一个物品的表示作为预测物品的表示,并将其与候选集中不同的候选物品对应的嵌入表示内积计算得分,将计算出的得分进行排序得到最后的推荐结果。
[0099]
可以理解的是,通道混合器层的输出是多层感知器混合后的序列表示,其中每个项向量合并序列间依赖和项内跨通道连接。对于最终的推荐,只通过物品嵌入矩阵的最后一个物品嵌入向量,然后对层进行归一化,得到归一化目标值,如下所示:
[0100]yfinal
=layernorm(yn);
[0101]
然后基于所述归一化目标值与所述用户物品交互序列,并通过预设损失函数进行计算,以得到当前损失值。例如采用交叉熵损失函数,预测表示与正样本拉近,与负样本推远。计算公式如下:
[0102][0103]
其中,su表示用户u的交互序列;σ是sigmoid函数。
[0104]
得到当前损失值lu之后,判断所述当前损失值是否满足预设条件。
[0105]
步骤s26:若所述当前损失值满足所述预设条件,则基于当前所述动态混合层和所述通道混合层中的当前参数得到目标模型。
[0106]
本实施例中,判断所述当前损失值是否满足预设条件之后,若所述当前损失值满足所述预设条件,则基于当前所述动态混合层中的当前参数得到目标模型。若所述当前损失值不满足所述预设损失值变化规律,则使用预设梯度下降规则对所述当前损失值进行调整,以得到调整后损失值;将所述调整后损失值反向传播,以便基于所述调整后损失值调整当前模型中的目标参数,得到调整后参数;若基于所述调整后参数以及所述预设损失函数得到的调整后损失值满足所述预设条件,则将所述调整后参数确定为最终参数,并基于所述最终参数得到所述目标模型。
[0107]
可以理解的是,在训练模型的过程中,通过利用已知序列中的部分数据对模型进行训练,将得到的当前损失值与已知序列中的数据进行比较,判断两者之间的差异是否满足预设条件,若不满足,则需要调整所述模型中的参数,直至得到的当前损失值趋向平稳,即满足预设条件时,确定当前参数为最终参数,并根据所述最终参数得到目标模型。
[0108]
关于上述步骤s21的具体内容可以参考前述实施例中公开的相应内容,在此不再进行赘述。
[0109]
可见,本技术实施例通过获取用户交互序列中的物品id,并基于所述物品id获取
物品嵌入向量;基于所述用户交互序列中全部所述物品id对应的全部所述物品嵌入向量生成对应的物品嵌入矩阵,并将所述物品嵌入矩阵输入至dynamixer进行计算,以得到第一输出值;将所述第一输出值输入至channel mixer进行计算,以得到第二输出值;基于所述第二输出值得到所述动态混合矩阵;基于所述动态混合矩阵与预设损失函数得到当前损失值,并判断所述当前损失值是否满足预设条件;若所述当前损失值满足所述预设条件,则基于当前所述动态混合层和所述通道混合层中的当前参数得到目标模型,增强了模型的稳健性与效率,并提升了模型在使用过程中答案的准确性。
[0110]
参见图4所示,本技术实施例还相应公开了一种模型训练装置,包括:
[0111]
嵌入向量获取模块11,用于获取用户交互序列中的物品id,并基于所述物品id获取物品嵌入向量;
[0112]
混合模块12,用于基于所述用户交互序列中全部所述物品id对应的全部所述物品嵌入向量生成对应的物品嵌入矩阵,并将所述物品嵌入矩阵输入至动态混合层和通道混合层,以得到动态混合矩阵;
[0113]
损失值计算模块13,用于基于所述动态混合矩阵与预设损失函数得到当前损失值,并判断所述当前损失值是否满足预设条件;
[0114]
模型获取模块14,用于若所述当前损失值满足所述预设条件,则基于当前所述动态混合层和所述通道混合层中的当前参数得到目标模型。
[0115]
可见,本技术包括:获取用户交互序列中的物品id,并基于所述物品id获取物品嵌入向量;基于所述用户交互序列中全部所述物品id对应的全部所述物品嵌入向量生成对应的物品嵌入矩阵,并将所述物品嵌入矩阵输入至动态混合层和通道混合层,以得到动态混合矩阵;基于所述动态混合矩阵与预设损失函数得到当前损失值,并判断所述当前损失值是否满足预设条件;若所述当前损失值满足所述预设条件,则基于当前所述动态混合层和所述通道混合层中的当前参数得到目标模型。由此可见,本技术通过物品的id获取对应的物品嵌入矩阵,然后通过动态混合层和所述通道混合层得到动态混合矩阵,再基于预设损失函数确定最终的模型参数,即动态的调整动态混合层中的参数,从而选择最合适的参数得到目标模型,增强了模型的稳健性与效率,并提升了模型在使用过程中答案的准确性。
[0116]
在一些具体实施例中,所述嵌入向量获取模块11,具体包括:
[0117]
id获取单元,用于获取用户交互序列中的物品id;
[0118]
嵌入向量获取单元,用于基于所述物品id获取物品嵌入向量。
[0119]
在一些具体实施例中,所述混合模块12,具体包括:
[0120]
物品嵌入矩阵获取单元,用于获取全部所述物品嵌入向量,将全部所述物品嵌入向量进行拼接,以得到所述物品嵌入矩阵;所述用户交互序列中的所述物品id的数量不大于物品集合中元素的数量;
[0121]
序列混合器输出值获取单元,用于将所述物品嵌入矩阵输入至动态序列混合器,以便通过预设动态序列混合操作对当前信息片段进行混合,以得到每个所述当前信息片段对应的动态序列混合器输出值;
[0122]
拼接单元,用于将全部的所述动态序列混合器输出值拼接,以得到目标动态序列混合器输出值;
[0123]
通道融合单元,用于通过线性层将同一通道中的项进行线性变换操作,以得到通
道融合输出值;
[0124]
第一输出值生成单元,用于基于所述目标动态序列混合器输出值与所述通道融合输出值得到所述第一输出值;
[0125]
第二输出值获取单元,用于将所述第一输出值输入至channel mixer中的通道混合器,以便基于所述目标动态序列混合器输出值与所述通道融合输出值并通过预设通道混合公式进行计算,以得到每层所述通道混合器的所述第二输出值;
[0126]
动态混合矩阵获取单元,用于基于所述第二输出值得到所述动态混合矩阵。
[0127]
在一些具体实施例中,所述损失值计算模块13,具体包括:
[0128]
目标物品嵌入向量获取单元,用于获取所述动态混合矩阵中最后一个物品对应的嵌入向量,以得到目标物品嵌入向量;
[0129]
归一化单元,用于基于所述目标物品嵌入向量并通过预设归一化公式对当前层进行归一化操作,以得到所述最后一个物品对应的归一化目标值;
[0130]
损失值计算单元,用于基于所述归一化目标值与所述用户物品交互序列,并通过预设损失函数进行计算,以得到当前损失值;
[0131]
损失值判断单元,用于判断所述当前损失值是否满足预设损失值变化规律。
[0132]
在一些具体实施例中,所述模型获取模块14,具体包括:
[0133]
损失值调整调整单元,用于若所述当前损失值不满足所述预设损失值变化规律,则使用预设梯度下降规则对所述当前损失值进行调整,以得到调整后损失值;
[0134]
参数调整单元,用于将所述调整后损失值反向传播,以便基于所述调整后损失值调整当前模型中的目标参数,得到调整后参数;
[0135]
目标模型获取单元,用于若基于所述调整后参数以及所述预设损失函数得到的调整后损失值满足所述预设条件,则将所述调整后参数确定为最终参数,并基于所述最终参数得到所述目标模型。
[0136]
进一步的,本技术实施例还提供了一种电子设备。图5是根据一示例性实施例示出的电子设备20结构图,图中的内容不能认为是对本技术的使用范围的任何限制。
[0137]
图5为本技术实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的模型训练方法中的相关步骤。另外,本实施例中的电子设备20具体可以为电子计算机。
[0138]
本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本技术技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
[0139]
另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源可以包括操作系统221、计算机程序222等,存储方式可以是短暂存储或者永久存储。
[0140]
其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序
222,其可以是windows server、netware、unix、linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的模型训练方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。
[0141]
进一步的,本技术实施例还公开了一种存储介质,所述存储介质中存储有计算机程序,所述计算机程序被处理器加载并执行时,实现前述任一实施例公开的模型训练方法步骤。
[0142]
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0143]
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0144]
以上对本发明所提供的一种模型训练方法、装置、设备及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1