掌桥专利:专业的专利平台
掌桥专利
首页

梯度更新方法及相关装置

文献发布时间:2024-04-18 19:58:26


梯度更新方法及相关装置

技术领域

本申请涉及深度学习领域,尤其涉及一种梯度更新方法及相关装置。

背景技术

随着业务的发展,训练模型时可以利用的训练数据量也越来越多。当训练数据量较多时,训练模型所需时间可能较长,为加速完成模型训练,一些实现中,可以通过异步并行的分布式算法进行模型训练。具体的,异步并行的分布式算法可以通过多个计算模块(worker)并行计算模型的梯度,并将计算得到的梯度发送给参数服务器(parameterserver,PS),参数服务器基于梯度更新模型的参数(weight,W),进而完成模型训练,但是,异步并行的分布式算法可能存在过期梯度(staleness gradient)的问题,影响模型训练结果的准确性和模型训练的收敛速度。

一些实现中,为减小过期梯度对模型训练准确度和收敛速度的影响,可以基于参数趋势对过期梯度进行更新,以减小过期梯度对模型准确度的影响,其中,参数趋势是模型参数变化的趋势。

然而,上述方式需要占用较大的存储空间。

发明内容

本申请实施例提供一种梯度更新方法及相关装置,应用于终端技术领域。该方法可以基于第一电子设备中存储的第t-1参数趋势计算最新的第t参数趋势,第一电子设备根据计算得到的第t参数趋势,判断第一电子设备获取到的梯度是否为过期梯度,并对过期梯度进行更新。

第一方面,本申请实施例提出一种梯度更新方法。该方法应用于通信系统,通信系统包括第一电子设备以及m个第二电子设备,m为正整数,包括:第一电子设备从m个第二电子设备中的任一个第二电子设备获取n个第一梯度;其中,n为正整数;对于n个第一梯度中第i维度的第一梯度,第一电子设备基于第i维度的第t参数趋势判断第i维度的第一梯度是否为过期梯度;其中,第i维度的第t参数趋势与第i维度的第t-1参数趋势以及第i维度的参数变化量有关,第i维度的参数变化量与第一差值正相关,第一差值为第i维度的第t参数与第i维度的第t-1参数的差值;其中,i为小于等于n的正整数,t为正整数。这样,第一电子设备存储第i维度的第t-1参数趋势

可能的实现方式中,参数变化量为第i维度的第t参数与第i维度的第t-1参数的差值。这样,可以基于参数的变化量,较为准确的计算出参数趋势。

可能的实现方式中,第i维度的第t参数趋势

可能的实现方式中,第一缩放因子的取值范围为[0.9,1)。这样,可以较为准确的计算出参数趋势。

可能的实现方式中,第一电子设备基于第i维度的第t参数趋势判断第i维度的第一梯度是否为过期梯度,包括:当第i维度的第t参数趋势的sign函数值与第i维度的第一梯度的sign函数值不相等时,第一电子设备判断第i维度的第一梯度不为过期梯度;当第i维度的第t参数趋势的sign函数值与第i维度的第一梯度的sign函数值相等时,第一电子设备判断第i维度的第一梯度为过期梯度。这样,第一电子设备可以通过调用sign函数,判断第i维度的第t参数趋势的sign函数值与第i维度的第一梯度的sign函数值是否相等,进而快速、准确的判断出第i维度的第一梯度是否为过期梯度。

可能的实现方式中,还包括:第一电子设备计算第二缩放因子,第二缩放因子用于更新第i维度的第一梯度;第一电子设备基于第二缩放因子更新第i维度的第一梯度,得到第i维度的第二梯度。这样,可以基于第二缩放因子更新第i维度的第一梯度,使得第一电子设备基于第i维度的第一梯度更新模型参数时,更新后的参数较准确,还可以使模型训练时的收敛速度更快。

可能的实现方式中,第一电子设备计算第二缩放因子,包括:当第i维度的第一梯度不为过期梯度时,第二缩放因子的值为1;当第i维度的第一梯度为过期梯度时,第一电子设备从n个维度的第t参数趋势中获取第一参数趋势和第二参数趋势,其中,第一参数趋势为n个维度的第t参数趋势中绝对值最大的参数趋势,第二参数趋势为n个维度的第t参数趋势中绝对值最小的参数趋势;第二缩放因子与差值比值负相关,差值比值为第三差值与第二差值之间的比值,第二差值为第一参数趋势的绝对值与第二参数趋势的绝对值之间的差值,第三差值为第i维度的第t参数趋势的绝对值与第二参数趋势的绝对值之间的差值。这样,在对过期梯度进行处理时,既使用了定性方法,即判断第i维度的参数趋势与第i维度的第一梯度的sign函数值是否相等;又使用了定量方法,即基于参数趋势计算第二缩放因子,不同的参数趋势计算得到的第二缩放因子可能不同,可以更准确的更新过期梯度,加快模型的收敛速度。

可能的实现方式中,第二缩放因子满足下述公式:

可能的实现方式中,第一电子设备基于缩放因子更新第i维度的第一梯度,得到第i维度的第二梯度之后,还包括:第一电子设备基于第i维度的第t参数和第i维度的第二梯度,得到第i维度的第t+1参数;第一电子设备将第i维度的第t+1参数传输给m个第二电子设备。这样,在参数和梯度不断迭代更新的过程中,通过第一电子设备和第二电子设备可以训练得到较准确的模型。

第二方面,本申请实施例提供一种梯度更新装置。该梯度更新装置可以是电子设备,也可以是电子设备内的芯片或者芯片系统,该梯度更新装置可以包括处理单元和通信单元,还可以包括存储单元,其中,处理单元用于实现方面或方面的任意一种可能的实现方式中电子设备执行的与处理相关的任意方法。当该梯度更新装置是电子设备时,该处理单元可以是处理器。通信单元用于支持梯度更新装置与其它设备交互。该梯度更新装置还可以包括存储单元,该存储单元可以是存储器。该存储单元用于存储指令,该处理单元执行该存储单元所存储的指令,以使该电子设备实现方面或方面的任意一种可能的实现方式中描述的电子设备执行的方法。当该梯度更新装置是电子设备内的芯片或者芯片系统时,该处理单元可以是处理器。该处理单元执行存储单元所存储的指令,以使该电子设备实现方面或方面的任意一种可能的实现方式中描述的电子设备执行的方法。该存储单元可以是该芯片内的存储单元(例如,寄存器、缓存等),也可以是该电子设备内的位于该芯片外部的存储单元(例如,只读存储器、随机存取存储器等)。

示例性的,通信单元,用于从m个第二电子设备中的任一个第二电子设备获取n个第一梯度;其中,n为正整数;对于n个第一梯度中第i维度的第一梯度,处理单元,用于基于第i维度的第t参数趋势判断第i维度的第一梯度是否为过期梯度;其中,第i维度的第t参数趋势与第i维度的第t-1参数趋势以及第i维度的参数变化量有关,第i维度的参数变化量与第一差值正相关,第一差值为第i维度的第t参数与第i维度的第t-1参数的差值;其中,i为小于等于n的正整数,t为正整数。

可能的实现方式中,参数变化量为第i维度的第t参数与第i维度的第t-1参数的差值。

可能的实现方式中,第i维度的第t参数趋势

可能的实现方式中,第一缩放因子的取值范围为[0.9,1)。

可能的实现方式中,当第i维度的第t参数趋势的sign函数值与第i维度的第一梯度的sign函数值不相等时,处理单元,具体用于判断第i维度的第一梯度不为过期梯度;当第i维度的第t参数趋势的sign函数值与第i维度的第一梯度的sign函数值相等时,处理单元,具体用于判断第i维度的第一梯度为过期梯度。

可能的实现方式中,处理单元,还用于计算第二缩放因子,第二缩放因子用于更新第i维度的第一梯度;处理单元,还用于基于第二缩放因子更新第i维度的第一梯度,得到第i维度的第二梯度。

可能的实现方式中,当第i维度的第一梯度不为过期梯度时,第二缩放因子的值为1;当第i维度的第一梯度为过期梯度时,处理单元,还用于从n个维度的第t参数趋势中获取第一参数趋势和第二参数趋势,其中,第一参数趋势为n个维度的第t参数趋势中绝对值最大的参数趋势,第二参数趋势为n个维度的第t参数趋势中绝对值最小的参数趋势;第二缩放因子与差值比值负相关,差值比值为第三差值与第二差值之间的比值,第二差值为第一参数趋势的绝对值与第二参数趋势的绝对值之间的差值,第三差值为第i维度的第t参数趋势的绝对值与第二参数趋势的绝对值之间的差值。

可能的实现方式中,第二缩放因子满足下述公式:

可能的实现方式中,处理单元,还用于基于第i维度的第t参数和第i维度的第二梯度,得到第i维度的第t+1参数;处理单元,还用于将第i维度的第t+1参数传输给m个第二电子设备。

第三方面,本申请实施例提供一种电子设备,包括处理器和存储器,存储器用于存储代码指令,处理器用于运行代码指令,以执行第一方面或第一方面的任意一种可能的实现方式中描述的方法。

第四方面,本申请实施例提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序。计算机程序被处理器执行时实现如第一方面的方法。

第五方面,本申请实施例提供一种计算机程序产品,计算机程序产品包括计算机程序,当计算机程序被运行时,使得计算机执行如第一方面的方法。

第六方面,本申请实施例提供了一种芯片,芯片包括处理器,处理器用于调用存储器中的计算机程序,以执行如第一方面所述的方法。

应当理解的是,本申请的第二方面至第六方面与本申请的第一方面的技术方案相对应,各方面及对应的可行实施方式所取得的有益效果相似,不再赘述。

附图说明

图1A为一些实现中的基于参数趋势的异步并行模型训练的过程示意图;

图1B为一些实现中的参数矩阵的示意图;

图2为本申请实施例提供的梯度更新方法示意图;

图3为本申请实施例提供的过期梯度更新方式示意图;

图4为本申请实施例提供的第二缩放因子计算方式示意图;

图5为本申请实施例提供的一种参数更新装置的结构示意图;

图6为本申请实施例提供的一种电子设备的硬件结构示意图;

图7为本申请实施例提供的一种芯片的结构示意图。

具体实施方式

为了便于清楚描述本申请实施例的技术方案,以下,对本申请实施例中所涉及的部分技术术语和技术进行简单介绍。

1、损失函数(loss function)

本申请实施例中,损失函数可以用于衡量模型预测值与目标值的差值,损失函数的输出值越高表示差值越大,损失函数的输出值越低表示差值越小。

为使损失函数的输出值快速收敛至最小值,可以通过梯度下降法,下面,对梯度下降法进行介绍。

2、随机梯度下降法(stochastic gradient descent,SGD)

梯度是一个向量,损失函数沿其梯度相反方向(负梯度)收敛速度最快,因此,在训练模型的过程中,可以按损失函数梯度的反方向更新模型的参数,使损失函数的输出值不断减小,实现模型预测值尽可能的接近目标值,这一过程可以称为“随机梯度下降法”。

随机梯度下降法可以包括同步随机梯度下降以及异步随机梯度下降,下面分别进行阐述。

同步随机梯度下降(synchronous SGD)也可以称为同步并行算法,同步并行算法可以指,在分布式训练中,参数服务器需接收到每个计算模块各自计算的模型的梯度后,利用这些梯度的平均值来更新模型的参数。

异步随机梯度下降(asynchronous SGD)也可以称为异步并行算法,异步并行算法可以指,在分布式训练中,参数服务器每接收到一个计算模块计算的模型的梯度后,即可利用该梯度来更新模型的参数。

本申请实施例应用的随机梯度下降法是异步梯度下降,异步随机梯度下降可能会引出过期梯度的问题。

3、过期梯度

本申请实施例中,过期梯度可以指,第一计算模块将计算得到的模型的梯度传输至参数服务器、参数服务器基于获取到的梯度更新模型参数时,该模型参数已经基于除第一计算模块以外的其他计算模块传输的梯度更新过,第一计算模块传输给参数服务器的梯度可以称为过期梯度。

4、数据分片

本申请实施例中,数据分片可以指将训练数据集中的数据分别存放于多个计算模块中,通过数据分片,可以使得各计算模块的数据量在一定范围内,不需要各计算模块提高计算能力就可以存储和处理更多的数据。

数据分片的方式可以包括垂直分片和水平分片。其中,垂直分片又可以称为纵向拆分,垂直分片可以根据数据的业务维度将训练数据集中的数据分放至多个机器中,例如,按业务1、业务2等业务维度对训练数据集中的数据进行分片;水平分片又可以称为横向拆分,水平分片可以根据某种规则,将训练数据集中的数据分放至多个机器中,例如,按行号对训练数据集中的数据进行数据分片,将训练数据集中第1-5行的数据存放至机器1中,将训练数据集中6-10行的数据存放至机器2中。

可以理解的是,对训练数据集中的数据进行数据分片时,可以进行垂直分片,也可以进行水平分片,还可以对训练数据集中的数据进行垂直分片和水平分片,例如,对垂直分片后的数据再进行水平分片。另外,除垂直分片和水平分片外,数据分片还可以有其他的分片方式,本申请实施例应用的数据分片方式可以是水平分片。

5、为了便于清楚描述本申请实施例的技术方案,本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。

本申请实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。

需要说明的是,本申请实施例中的“在……时”,可以为在某种情况发生的瞬时,也可以为在某种情况发生后的一段时间内,本申请实施例对此不作具体限定。此外,本申请实施例提供的显示界面仅作为示例,显示界面还可以包括更多或更少的内容。

随着业务的发展,训练模型时可以利用的训练数据量也越来越多,以游戏皮肤推荐模型为例,游戏皮肤推荐模型可以用于根据用户的游戏皮肤使用记录、游戏皮肤订购记录和游戏皮肤浏览记录等,向用户推荐游戏皮肤。训练该模型时使用的训练数据集可以包括:大量的用户游戏皮肤使用记录、游戏皮肤订购记录以及用户游戏皮肤浏览记录等,针对这一体量庞大的训练数据集,为使游戏皮肤的推荐结果更精准,也就是为使模型的拟合能力更强,模型的参数量通常较大。

对于训练数据体量大、模型参数多的模型训练,为提高模型的训练速度,一些实现中,可以通过基于参数趋势的分布式异步并行模型训练方法进行模型训练。

示例性的,图1A为一些实现中的基于参数趋势的异步并行模型训练的过程。

如图1A所示,图1A中可以包括参数服务器和a个计算模块,a为正整数,其中,a个计算模块可以对应于图1A中的机器1、机器2、……、和机器a等。

需要说明的是,参数服务器也可以称为参数存储模块或参数存储节点,参数服务器可以用于存储模型的参数,以及根据计算模块发送的梯度更新模型的参数,并将更新后的模型参数传输至计算模块;计算模块也可以称为计算节点,计算模块可以用于基于随机梯度下降法计算模型的梯度。

参数服务器和计算模块可以是实际的硬件,例如,参数服务器和计算模块可以分别对应于多个服务器;参数服务器和计算模块还可以分别对应于一个服务器中的多个中央处理器(central processing unit,CPU),和/或,多个图形处理器(graphics processingunit,GPU)等;参数服务器和计算模块也可以是运行在服务器中的软件,本申请实施例对此不作具体限定。

在基于参数趋势的异步并行模型训练的过程中,训练数据集可以分成a个数据分片,分别为数据分片1、数据分片2、……、和数据分片a,a个计算模块可以分别基于对应的数据分片对模型副本进行训练,例如,计算模块1可以基于数据分片1对模型副本进行训练,计算模块2可以基于数据分片2对模型副本进行训练,计算模块a可以基于数据分片a对模型副本进行训练,其中,各计算模块可以从参数服务器中获取得到模型副本。

a个计算模块可以基于模型参数(weight,W)计算模型的梯度(gradient,g),并将计算得到的梯度g传输给参数服务器,参数服务器可以基于获取到的梯度g更新模型参数W,并将更新后的模型参数W分别传输给a个计算模块,a个计算模块可以基于更新后的模型参数W计算模型的梯度g。这样,通过上述方式不断的更新模型参数W,可以实现对模型的训练,使模型的预测值更接近目标值。

具体的,模型的参数可以为m行n列的矩阵,其中,m和n均为正整数,为便于描述,本申请实施例及后续实施例对上述参数矩阵中的各个参数按维度进行区分,例如,对于如图1B所示的2行2列的参数矩阵,第1行第1列的参数W

可以理解的是,第t次更新的参数W

其中,t、L均为正整数,L小于等于t。需要说明的是,参数趋势反映的是一段时间内参数的变化,为得到较准确的参数趋势,L可以为较大的值,例如,L的取值范围可以为[50,200]。

计算得到参数趋势

由随机梯度下降法可知,参数服务器根据梯度的反方向不断更新模型的参数,进而使模型的预测值不断接近实际值,参数与梯度的关系可以用式(3)表示。

其中,

参数趋势

其中,

然而,在上述模型训练过程中,为得到参数W在第t-L次更新至第t次更新之间的参数变化趋势

有鉴于此,本申请实施例提供了一种梯度更新方法,该方法可以基于第一电子设备中存储的第t-1参数趋势计算最新的第t参数趋势,第一电子设备根据计算得到的第t参数趋势,判断第一电子设备获取到的梯度是否为过期梯度,并对过期梯度进行更新,在计算最新的第t参数趋势时,第一电子设备基于存储的第t-1参数趋势进行计算,无需存储多份参数,有效节约了第一电子设备的存储空间。

本申请实施例提供的梯度更新方法应用于通信系统,通信系统可以包括第一电子设备以及m个第二电子设备,m为正整数。其中,第一电子设备可以用于计算参数,第一电子设备可以对应于图1A中的参数服务器,第二电子设备可以用于计算梯度,第二电子设备可以对应于图1A中的计算模块。

可能的实现中,第一电子设备和第二电子设备还可以为可以用于训练模型的任意形式的终端设备,例如,一些终端设备为:手机(mobile phone)、平板电脑、掌上电脑、笔记本电脑、移动互联网设备(mobile internet device,MID)等,本申请实施例对此并不限定。

下面,对本申请实施例提供的梯度更新方法进行示例性的说明。

第一电子设备从m个第二电子设备中的任一个第二电子设备获取n个第一梯度;其中,n为正整数。

也就是说,任一个第二电子设备在一次计算中,计算得到的第一梯度可以为一个,也可以为多个,第一电子设备可以从m个第二电子设备其中的任一个第二电子设备,获取其计算出的n个第一梯度。

本申请实施例中,为便于描述,对于任一个第二电子设备在一次计算过程中更新的n个第一梯度,可以用不同维度的梯度来表达,例如,对第t次更新的n个第一梯度

由于在异步并行的分布式算法中,可能存在过期梯度的问题,对于n个第一梯度中第i维度的第一梯度

第i维度的参数变化量与第一差值正相关,第一差值为第i维度的第t参数

由上述实施例可知,第一电子设备基于第i维度的第t-1参数趋势

可能的实现中,第i维度的第t参数趋势

其中,

这样,计算第i维度的第t参数趋势

第一缩放因子β的取值范围可以为(0,1),可以理解的是,当第一缩放因子β的取值较小时,第i维度的第t参数趋势

可能的实现中,第一缩放因子β的取值范围可以为[0.9,1)。可以理解的是,第i维度的第t参数趋势

可能的实现中,第一电子设备基于第i维度的第t参数趋势判断第i维度的第一梯度是否为过期梯度,包括:当第i维度的第t参数趋势的sign函数值与第i维度的第一梯度的sign函数值不相等时,第一电子设备判断第i维度的第一梯度不为过期梯度;当第i维度的第t参数趋势的sign函数值与第i维度的第一梯度的sign函数值相等时,第一电子设备判断第i维度的第一梯度为过期梯度。

也就是说,第一电子设备可以调用sign函数判断第i维度的第一梯度

例如,当

例如,

基于图1A中的相关描述可知,第一电子设备根据梯度的反方向不断更新模型的参数,当第一梯度

这样,第一电子设备可以通过调用sign函数,判断第i维度的第t参数趋势的sign函数值与第i维度的第一梯度的sign函数值是否相等,进而快速、准确的判断出第i维度的第一梯度是否为过期梯度。

可能的实现中,第一电子设备计算第二缩放因子,第一电子设备基于第二缩放因子更新第i维度的第一梯度,得到第i维度的第二梯度。

本申请实施例中,第二缩放因子用于更新第i维度的第一梯度

第一电子设备基于第二缩放因子更新第i维度的第一梯度可以参照下式:

其中,α表示第二缩放因子。

这样,可以基于第二缩放因子更新第i维度的第一梯度,使得第一电子设备基于第i维度的第一梯度更新模型参数时,更新后的参数较准确,还可以使模型训练时的收敛速度更快。

可以理解的是,当第一电子设备判断第i维度的第一梯度

当第一电子设备判断第i维度的第一梯度

另一种可能的实现中,可以基于参数趋势计算对应的第二缩放因子。这是由于,对于参数趋势值较大的

具体的,当第i维度的第一梯度为过期梯度时,第一电子设备从n个维度的第t参数趋势中获取第一参数趋势和第二参数趋势,其中,第一参数趋势为n个维度的第t参数趋势中绝对值最大的参数趋势,第二参数趋势为n个维度的第t参数趋势中绝对值最小的参数趋势。

第二缩放因子与差值比值负相关,差值比值为第三差值与第二差值之间的比值,第二差值为第一参数趋势的绝对值与第二参数趋势的绝对值之间的差值,第三差值为第i维度的第t参数趋势的绝对值与第二参数趋势的绝对值之间的差值。其中,第二缩放因子与差值比值负相关,可以指第二缩放因子随差值比值的增大而减小,或者,第二缩放因子随差值比值的减小而增大。

上述过程可以通过下式表示:

其中,

可能的实现中,第二缩放因子满足下述公式:

其中,

基于参数趋势计算第二缩放因子,并通过第二缩放因子对梯度进行更新,这样,在对过期梯度进行处理时,既使用了定性方法,即判断第i维度的参数趋势与第i维度的第一梯度的sign函数值是否相等;又使用了定量方法,即基于参数趋势计算第二缩放因子,不同的参数趋势计算得到的第二缩放因子可能不同,可以更准确的更新过期梯度,加快模型的收敛速度。

可能的实现中,第一电子设备基于第二缩放因子更新第i维度的第一梯度,得到第i维度的第二梯度之后,第一电子设备基于第i维度的第t参数和第i维度的第二梯度,得到第i维度的第t+1参数,第t+1参数可以如下式所示。

其中,

得到第i维度的第t+1参数

也就是说,第一电子设备可以更新模型的参数,并将更新后的参数传输给第二电子设备,电子设备基于获取到的参数更新梯度,这样,在参数和梯度不断迭代更新的过程中,通过第一电子设备和第二电子设备可以训练得到较准确的模型。

可以理解的是,基于本申请实施例提供的梯度更新方法进行训练的模型,可以适用于下述的任一种目标场景,场景可以包括:语音识别、图像识别、语言翻译、智能客服、推荐系统,等,本申请实施例对梯度更新方法使用的场景不做具体限定。

以目标场景是语音识别场景为例,基于本申请实施例提供的梯度更新方法对语音识别模型进行训练后,训练好的语音识别模型可以适用于语音识别场景。其中,语音识别模型可以用于将用户发送/接收的语音信息转化成文字信息,训练语音识别模型时的训练数据集可以包括:大量的来自于不同国家、不同地区的用户语音信息。例如,某聊天应用(application,App)具有语音识别功能,当用户使用语音转文字功能后,该聊天App可以基于训练好的语音识别模型,将用户上传的语音信息转化为文字信息。

以目标场景是推荐系统中的游戏皮肤推荐场景为例,基于本申请实施例提供的梯度更新方法对游戏皮肤推荐模型进行训练后,训练好的游戏皮肤推荐模型可以适用于游戏皮肤推荐场景。其中,游戏皮肤推荐模型可以用于为游戏用户推荐其可能感兴趣的游戏皮肤,训练游戏皮肤推荐模型时的训练数据集可以包括:大量的用户游戏皮肤使用记录、游戏皮肤订购记录以及用户游戏皮肤浏览记录等。例如,某游戏App具有游戏皮肤推荐功能,当用户使用该游戏App后,该游戏App可以基于该用户的用户游戏皮肤使用记录、游戏皮肤订购记录以及用户游戏皮肤浏览记录等,为该用户推荐游戏皮肤。

下面,根据图2,以第一电子设备为参数服务器,第二电子设备为计算模块为例,对本申请实施例提供的梯度更新方法进行说明。

如图2所示,图2中可以包括参数服务器和a个计算模块,m为正整数,其中,a个计算模块可以对应于图2中的机器1、机器2、……、和机器m等。

S201、模型参数初始化。

训练模型之前,需要初始化模型参数,给参数赋初始值,参数的初始值可以是基于经验或实验结果设定的值,本申请实施例对此不做具体限制。

另外,参数趋势trend也需要赋初始值,可能的实现中,参数趋势的初始值trend

需要说明的是,对应于m行n列的参数的矩阵,梯度g也为m行n列的矩阵,参数趋势trend也为m行n列的矩阵,下面,以梯度矩阵中第i维度的g

S202、如图3所示,参数服务器通过sign函数判断梯度

/>

其中,

S203、如图3所示,当

基于图1A中的相关描述可知,当梯度

计算方式如图4和式(15)所示。

其中,

如式(16)所示,参数服务器通过max函数得到第t次更新的m*n个维度的参数趋势中最大的

S204、当

如图3所示,当

S205、参数服务器基于缩放因子

参数服务器可以通过genertate_update函数计算更新后的梯度,计算方式如式(20)。

其中,

S206、参数服务器基于更新后的梯度

参数服务器计算出更新后的梯度

其中,lr为学习率,lr的相关描述可以参照图1A中的相关描述,此处不再赘述。

另外,参数服务器计算出第t+1次更新的参数

S207、参数服务器更新参数趋势并存储更新后的

参数服务器基于第t次更新的参数趋势

其中,

参数服务器保存更新后的

本申请实施例中,参数服务器基于第t次更新的参数趋势

上面结合图2至图4,对本申请实施例提供的方法进行了说明,下面对本申请实施例提供的执行上述方法的装置进行描述。如图5所示,图5为本申请实施例提供的一种参数更新装置的结构示意图,该参数更新装置可以是本申请实施例中的第一电子设备,也可以是第一电子设备内的芯片或芯片系统。

如图5所示,参数更新装置500可以用于电路、硬件组件或者芯片中,该参数更新装置包括处理单元501。其中,处理单元501用于支持参数更新装置执行的步骤,例如,处理单元可以用于处理步骤S201至S207。

一种可能的实现方式中,该参数更新装置还可以包括:存储单元503。其中,存储单元503可以包括一个或者多个存储器,存储器可以是一个或者多个设备、电路中用于存储程序或者数据的器件。

存储单元503可以独立存在,通过通信总线与处理单元501相连。存储单元503也可以和处理单元501集成在一起。

以参数更新装置可以是本申请实施例中的第一电子设备的芯片或芯片系统为例,存储单元503可以存储第一电子设备的方法的计算机执行指令,以使处理单元501执行上述实施例中第一电子设备的方法。存储单元503可以是寄存器、缓存或者随机存取存储器(random access memory,RAM)等,存储单元503可以和处理单元501集成在一起。存储单元503可以是只读存储器(read-only memory,ROM)或者可存储静态信息和指令的其他类型的静态存储设备,存储单元503可以与处理单元501相独立。

一种可能的实现方式中,参数更新装置还可以包括:通信单元502。其中,通信单元502用于支持参数更新装置与其它设备交互。示例性的,当该参数更新装置是第一电子设备时,该通信单元502可以是通信接口或接口电路。当该参数更新装置是第一电子设备内的芯片或芯片系统时,该通信单元502可以是通信接口。例如通信接口可以为输入/输出接口、管脚或电路等。

本实施例的装置对应地可用于执行上述方法实施例中执行的步骤,其实现原理和技术效果类似,此处不再赘述。

图6为本申请实施例提供的一种电子设备的硬件结构示意图,如图6所示,该电子设备包括处理器601,通信线路604以及至少一个通信接口(图6中示例性的以通信接口603为例进行说明)。

处理器601可以是一个通用中央处理器(central processing unit,CPU),微处理器,特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制本申请方案程序执行的集成电路。

通信线路604可包括在上述组件之间传送信息的电路。

通信接口603,使用任何收发器一类的装置,用于与其他设备或通信网络通信,如以太网,无线局域网(wireless local area networks,WLAN)等。

可能的,该电子设备还可以包括存储器602。

存储器602可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electricallyerasable programmable read-only memory,EEPROM)、只读光盘(compact disc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过通信线路604与处理器相连接。存储器也可以和处理器集成在一起。

其中,存储器602用于存储执行本申请方案的计算机执行指令,并由处理器601来控制执行。处理器601用于执行存储器602中存储的计算机执行指令,从而实现本申请实施例所提供的方法。

可能的,本申请实施例中的计算机执行指令也可以称之为应用程序代码,本申请实施例对此不作具体限定。

在具体实现中,作为一种实施例,处理器601可以包括一个或多个CPU,例如图6中的CPU0和CPU1。

在具体实现中,作为一种实施例,电子设备可以包括多个处理器,例如图6中的处理器601和处理器605。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。

示例性的,图7为本申请实施例提供的一种芯片的结构示意图。芯片700包括一个或两个以上(包括两个)处理器720和通信接口730。

在一些实施方式中,存储器740存储了如下的元素:可执行模块或者数据结构,或者他们的子集,或者他们的扩展集。

本申请实施例中,存储器740可以包括只读存储器和随机存取存储器,并向处理器720提供指令和数据。存储器740的一部分还可以包括非易失性随机存取存储器(non-volatile random access memory,NVRAM)。

本申请实施例中,存储器740、通信接口730以及处理器720通过总线系统710耦合在一起。其中,总线系统710除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。为了便于描述,在图7中将各种总线都标为总线系统710。

上述本申请实施例描述的方法可以应用于处理器720中,或者由处理器720实现。处理器720可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器720中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器720可以是通用处理器(例如,微处理器或常规处理器)、数字信号处理器(digitalsignal processing,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门、晶体管逻辑器件或分立硬件组件,处理器720可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。

结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。其中,软件模块可以位于随机存储器、只读存储器、可编程只读存储器或带电可擦写可编程存储器(electricallyerasable programmable read only memory,EEPROM)等本领域成熟的存储介质中。该存储介质位于存储器740,处理器720读取存储器740中的信息,结合其硬件完成上述方法的步骤。

在上述实施例中,存储器存储的供处理器执行的指令可以以计算机程序产品的形式实现。其中,计算机程序产品可以是事先写入在存储器中,也可以是以软件形式下载并安装在存储器中。

计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包括一个或多个可用介质集成的服务器、数据中心等数据存储设备。例如,可用介质可以包括磁性介质(例如,软盘、硬盘或磁带)、光介质(例如,数字通用光盘(digital versatile disc,DVD))、或者半导体介质(例如,固态硬盘(solid state disk,SSD))等。

本申请实施例还提供了一种计算机可读存储介质。上述实施例中描述的方法可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。计算机可读介质可以包括计算机存储介质和通信介质,还可以包括任何可以将计算机程序从一个地方传送到另一个地方的介质。存储介质可以是可由计算机访问的任何目标介质。

作为一种可能的设计,计算机可读介质可以包括紧凑型光盘只读储存器(compactdisc read-only memory,CD-ROM)、RAM、ROM、EEPROM或其它光盘存储器;计算机可读介质可以包括磁盘存储器或其它磁盘存储设备。而且,任何连接线也可以被适当地称为计算机可读介质。例如,如果使用同轴电缆,光纤电缆,双绞线,DSL或无线技术(如红外,无线电和微波)从网站,服务器或其它远程源传输软件,则同轴电缆,光纤电缆,双绞线,DSL或诸如红外,无线电和微波之类的无线技术包括在介质的定义中。如本文所使用的磁盘和光盘包括光盘(CD),激光盘,光盘,数字通用光盘(digital versatile disc,DVD),软盘和蓝光盘,其中磁盘通常以磁性方式再现数据,而光盘利用激光光学地再现数据。

上述的组合也应包括在计算机可读介质的范围内。以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。

相关技术
  • 结构光文件的更新方法及相关装置
  • 判断数据状态的装置和方法以及数据更新的装置和方法
  • 神经网络的更新方法、更新装置和电子设备
  • 一种车辆控制器软件更新方法和更新装置
  • 一种分布式深度学习的梯度信息更新方法及相关装置
  • 基于选择性梯度更新的联邦建模方法及相关设备
技术分类

06120116490145