
[0001]
本发明涉及计算机技术领域,特别涉及一种商品推荐方法、装置、存储介质及终端设备。
背景技术:[0002]
在现代生活中,我们处于信息过载的时代,人们难以从海量的信息中选出符合自己需求的商品,而个性化推荐能在一定程度上缓解该问题,并在我们的生活中扮演着十分重要的角色,如电商平台的商品推荐、电影音乐推荐和新闻推荐等。
[0003]
在这些场景中,用户的反馈是多样且异构的。它们有如下特点:(1)辅助反馈的不确定性。用户的不同行为表达了他们不同程度的偏好,在电商场景中,用户的购买行为可以看作目标反馈,浏览行为可以看作辅助反馈,因为用户的浏览行为具有较大的随机性,因此这类数据存在一定的噪音,具有不确定性。(2)不同类型反馈的不平衡性。用户的购买反馈数据较为稀疏,但是这类反馈通常能准确地反映用户的真实偏好,而用户的浏览反馈数量一般比较多,但是这类数据具有不确定性。(3)用户偏好的表达局限性。我们知道,用户的偏好可能是复杂多变的,传统的模型可能受限于表达能力从而导致推荐效果不好。
[0004]
因而现有技术还有待改进和提高。
技术实现要素:[0005]
本发明要解决的技术问题在于,针对现有技术的不足,提供一种商品推荐方法、装置、存储介质及终端设备,以提高商品的推荐效果。
[0006]
本发明所采用的技术方案如下:
[0007]
第一方面,本发明实施例提供一种商品推荐方法,其包括:
[0008]
获取目标用户对应的数据信息,其中,所述数据信息包括浏览数据以及购买数据;
[0009]
基于训练好的浏览模型构建购买模型,并对所述购买模型进行训练,得到训练好的购买模型;
[0010]
基于所述训练好的浏览模型以及所述训练好的购买模型,得到所述目标用户的推荐商品。
[0011]
作为进一步的改进技术方案,所述训练好的浏览模型的训练过程具体包括:
[0012]
获取第一训练集,构建浏览模型,其中,所述训练集包括若干用户的浏览样本,以及每个浏览样本对应的第一真实偏好;
[0013]
将所述第一训练集中的浏览样本输入所述浏览模型进行训练,通过所述浏览模型确定浏览样本对应的第一预测偏好;
[0014]
根据所述浏览样本对应的第一真实偏好和所述第一预测偏好的比较结果调整所述浏览模型的模型参数,直至所述比较结果满足第一预设训练条件时停止对所述浏览模型的训练;
[0015]
将停止训练时得到的浏览模型作为所述训练好的浏览模型。
[0016]
作为进一步的改进技术方案,所述对所述购买模型进行训练之前还包括:
[0017]
获取训练好的浏览模型;
[0018]
获取第一训练集,将所述第一训练集中的浏览样本输入所述训练好的浏览模型,基于所述训练好的浏览模型得到浏览样本对应的浏览偏好。
[0019]
作为进一步的改进技术方案,所述训练好的购买模型的训练过程具体包括:
[0020]
获取第二训练集,构建购买模型,其中,所述第二训练集包括若干用户的购买样本,以及每个购买样本对应的第二真实偏好,其中,每个购买样本与浏览偏好对应同一用户;
[0021]
将所述第二训练集中的购买样本以及所述购买样本对应的浏览偏好输入所述购买模型进行训练,通过所述购买模型确定购买样本对应的第二预测偏好;
[0022]
根据所述购买样本对应的第二真实偏好和所述第二预测偏好的比较结果调整所述购买模型的模型参数,直至所述比较结果满足第二预设训练条件时停止对所述购买模型的训练;
[0023]
将停止训练时得到的购买模型作为所述训练好的购买模型。
[0024]
作为进一步的改进技术方案,所述基于所述训练好的浏览模型以及所述训练好的购买模型,得到所述目标用户的推荐商品具体包括:
[0025]
基于所述训练好的浏览模型以及所述训练好的购买模型,得到所述目标用户对每个商品的偏好值;
[0026]
根据所述每个商品的偏好值的大小,对商品进行从大到小排序;
[0027]
从排序后的商品中选取前n个商品作为推荐商品,其中,所述n为正数。
[0028]
作为进一步的改进技术方案,所述基于所述训练好的浏览模型以及所述训练好的购买模型,得到所述目标用户对每个商品的偏好值具体包括:
[0029]
采用多热编码技术将所述数据信息分别转化成浏览向量以及购买向量;
[0030]
将所述浏览向量输入至所述训练好的浏览模型,得到用户的浏览表征向量;
[0031]
将所述浏览表征向量与所述购买向量输入至所述训练好的购买模型,得到,得到所述目标用户对每个商品的偏好值。
[0032]
作为进一步的改进技术方案,所述采用多热编码技术将所述数据信息分别转化成浏览向量以及购买向量之前还包括:
[0033]
对所述数据信息进行预处理,以使得所述数据信息满足预设规则。
[0034]
第二方面,本发明实施例提供一种商品推荐装置,其中,所述商品推荐装置包括:
[0035]
获取模块,用于获取目标用户对应的数据信息,其中,所述数据信息包括浏览数据以及购买数据;
[0036]
训练模块,用于基于训练好的浏览模型构建购买模型,并对所述购买模型进行训练,得到训练好的购买模型;
[0037]
推荐模块,用于基于所述训练好的浏览模型以及所述训练好的购买模型,得到所述目标用户的推荐商品。
[0038]
第三方面,本发明实施例提供一种计算机可读存储介质,其中,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上任意一项所述的商品推荐方法中的步骤。
[0039]
第四方面,本发明实施例提供一种终端设备,其包括:处理器和存储器;所述存储器上存储有可被所述处理器执行的计算机可读程序;所述处理器执行所述计算机可读程序时实现如上任意一项所述的商品推荐方法中的步骤。。
[0040]
有益效果:与现有技术相比,本发明提供了一种商品推荐方法、装置、存储介质及终端设备,所述方法包括:获取目标用户对应的数据信息,其中,所述数据信息包括浏览数据以及购买数据;基于训练好的浏览模型构建购买模型,并对所述购买模型进行训练,得到训练好的购买模型;基于所述训练好的浏览模型以及所述训练好的购买模型,得到所述目标用户的推荐商品。本发明基于训练好的浏览模型来得到关于用户的浏览偏好,再通过该浏览偏好以及购买数据共同训练购买模型,使得训练好的购买模型为用户提供更加精准的商品推荐。
附图说明
[0041]
图1为本发明提供的商品推荐方法的流程图。
[0042]
图2是本发明提供的商品推荐方法中模型训练的原理示意图。
[0043]
图3是本发明提供的商品推荐装置的结构原理图。
[0044]
图4为本发明提供的终端设备结构原理图。
具体实施方式
[0045]
本发明提供一种商品推荐方法、装置、存储介质及终端设备,为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
[0046]
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
[0047]
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
[0048]
下面结合附图,通过对实施例的描述,对发明内容作进一步说明。
[0049]
在现代生活中,我们处于信息过载的时代,人们难以从海量的信息中选出符合自己需求的商品,而个性化推荐能在一定程度上缓解该问题,并在我们的生活中扮演着十分重要的角色,如电商平台的商品推荐、电影音乐推荐和新闻推荐等。
[0050]
在这些场景中,用户的反馈是多样且异构的。它们有如下特点:(1)辅助反馈的不确定性。用户的不同行为表达了他们不同程度的偏好,在电商场景中,用户的购买行为可以
看作目标反馈,浏览行为可以看作辅助反馈,因为用户的浏览行为具有较大的随机性,因此这类数据存在一定的噪音,具有不确定性。(2)不同类型反馈的不平衡性。用户的购买反馈数据较为稀疏,但是这类反馈通常能准确地反映用户的真实偏好,而用户的浏览反馈数量一般比较多,但是这类数据具有不确定性。(3)用户偏好的表达局限性。我们知道,用户的偏好可能是复杂多变的,传统的模型可能受限于表达能力从而导致推荐效果不好。
[0051]
现有技术是采用多项式变分自编码器模型(multi-vae)和基于角色的迁移排序模型(rotor)。前者针对用户的一种反馈进行建模,通过拟合两个概率分布去生成隐变量,然后还原输入样本,该模型对用户单种反馈的建模效果较好;后者有两个变体,其中的一个变体是两阶段的模型,在第一阶段,从用户扮演浏览者的角色出发,对浏览数据建模,输出候选物品的列表;在第二阶段,从用户扮演购物者的角色出发,利用购买数据训练模型,然后对候选物品列表重排,得到最终的列表。在这里,候选物品列表可以看作迁移的知识,用于辅助第二阶段的建模。
[0052]
然而,多项式变分自编码器模型(multi-vae)仅适用于对用户的单种反馈进行建模,在现实的应用场景中,需要对用户的不同反馈同时建模,因此该模型具有一定的局限性。
[0053]
基于角色的迁移排序模型(rotor)的其中一个变体是两阶段的模型,它在第一阶段利用基于邻域的协同过滤算法对用户的浏览反馈进行建模,然后生成推荐的候选商品列表,第二阶段利用基于分解的协同过滤算法对用户的购买反馈进行建模,最后再对第一阶段生成的候选物品列表重排。该方法的缺点是两个阶段都是采用传统的推荐算法进行建模,因此模型的表达能力有一定的局限性;其次,rotor中最终的推荐商品列表只能来自第一阶段生成的候选商品列表,这要求第一阶段的模型的鲁棒性比较强,才能生成符合用户兴趣爱好的候选商品列表,否则第二阶段的模型无法发挥作用。同时也需要额外的时间和空间去维护用户的候选商品列表。
[0054]
为了解决已有方法的缺点,本文提出了一种面向用户异构反馈的迁移推荐技术—阶段式变分自编码器(svae)。该模型是面向用户异构反馈进行建模,解决了多项式变分自编码器模型(multi-vae)仅对一种反馈进行建模的缺点。同时,svae以变分自编码器为基础模型进行建模,比传统模型具有更强的特征表达能力,而且svae以生成的浏览表征向量作为迁移的知识,用于辅助第二阶段模型的训练。同时,候选商品是所有的商品而不局限于部分商品,解决了基于角色的迁移排序模型(rotor)中存在的缺点。相应的,本实施例提供了一种商品推荐方法,如图1和图2所示,所述方法包括:
[0055]
s100、获取目标用户对应的数据信息,其中,所述数据信息包括浏览数据以及购买数据。
[0056]
具体地,本发明基于目标用户对应的浏览记录数据以及购买记录数据得到训练好的浏览模型和训练好的购买模型,从而根据训练好的模型为用户进行商品推荐,提高商品推荐的准确性。
[0057]
本实施例中,通过多热编码技术对目标用户对应的浏览记录数据以及购买记录数据进行数据的向量转化,以方便对模型进行训练。对于浏览数据,若用户对物品i有浏览记录,则向量的第i位设为1,否则设为0。对于购买数据也类似。
[0058]
示例性的,一共有五个物品,用户浏览了1,3,5,购买了3,5。那该用户对应的浏览
向量为[1,0,1,0,1],购买向量为[0,0,1,0,1]。对于浏览模型:[1,0,1,0,1]
–
>编码器
–
>[0.4,0.8]->解码器
–
>[0.8,0.2,0.9,0.1,0.85],然后通过最小化输出向量[0.8,0.2,0.9,0.1,0.85],与输入向量[1,0,1,0,1]的重构误差对模型参数进行更新;对于购买模型:[0,0,1,0,1]+[0.4,0.8]
–
>编码器
–
>[0.7,0.9]+[0.4,0.8]
–
>解码器
–
>[0.3,0.2,0.9,0.1,0.95],然后通过最小化输出向量[0.3,0.2,0.9,0.1,0.95]与输入向量[0,0,1,0,1]的重构误差对模型参数进行更新。
[0059]
s200、基于训练好的浏览模型构建购买模型,并对所述购买模型进行训练,得到训练好的购买模型。
[0060]
本实施例中,如图2所示,采用一种面向用户异构反馈的迁移推荐技术—阶段式变分自编码器模型(svae),分别构建浏览模型和购买模型对用户的异构反馈进行建模。在浏览模型中,输入是用户的浏览反馈数据,以多项式变分自编码(multi-vae)为基础模型进行学习,模型生成的隐特征变量作为用户的浏览表征;在购买模型中,我们迁移浏览模型生成的隐特征向量,与用户的购买反馈数据一起作为另一路多项式变分自编码器(multi-vae)的输入,用于帮助购买反馈的建模。最后根据训练好的模型为用户进行商品推荐。
[0061]
下面在进行详细阐述前,先列出本文使用的一些符号描述和相应的解释,具体如下标识所示。
[0062]
表1常用符号描述表
[0063][0064]
本实施例中,所述训练好的浏览模型的训练过程具体包括:
[0065]
s10、获取第一训练集,构建浏览模型,其中,所述训练集包括多个若干用户的浏览样本,以及每个浏览样本对应的第一真实偏好;
[0066]
s20、将所述第一训练集中的浏览样本输入所述浏览模型进行训练,通过所述浏览模型确定浏览样本对应的第一预测偏好;
[0067]
s30、根据所述浏览样本对应的第一真实偏好和所述第一预测偏好的比较结果调
整所述浏览模型的模型参数,直至所述比较结果满足第一预设训练条件时停止对所述浏览模型的训练;
[0068]
s40、将停止训练时得到的浏览模型作为所述训练好的浏览模型。
[0069]
具体地,首先要构建第一训练集,其中,所述训练集包括若干用户的浏览样本,以及每个浏览样本对应的第一真实偏好,需要说明的是,所述若干用户为商品系统中全部的用户,这样通过大量的用户真实数据来进行模型训练,从而提高商品推荐的准确性。本实施例中,对于每一个用户,都有其相应的购买记录和浏览记录我们通过多热编码技术将用户关于物品的购买反馈和浏览反馈转换成对应的向量和并初始化模型其他的超参数。
[0070]
浏览模型训练:主要是利用用户的浏览反馈学习浏览表征向量(浏览偏好),并将其作为辅助信息(知识)帮助购买模型更好地学习用户的偏好。由于multi-vae具有良好的表现和较强的特征抽象能力,我们以multi-vae为基础模型进行建模。在浏览模型中,输入的是用户对所有物品的浏览向量模型以重构用户的浏览样本为目标进行优化,具体的目标函数如下:
[0071][0072]
其中,是模型求解的参数,β是需要通过验证集选择的超参数。具体的训练过程是:对于每一个用户,我们从标准正态分布采样噪声,根据重参数技巧计算相应的隐变量然后输入该隐变量到解码器计算用户对物品的预测偏好,最后根据目标函数更新模型的参数值。浏览模型训练完毕后,我们提取浏览模型编码器生成的隐变量作为用户的浏览表征向量。
[0073]
进一步,所述对所述购买模型进行训练之前还包括:
[0074]
获取训练好的浏览模型;
[0075]
获取第一训练集,将所述第一训练集中的浏览样本输入所述训练好的浏览模型,基于所述训练好的浏览模型得到浏览样本对应的浏览偏好,并将浏览偏好作为第二真实偏好。
[0076]
相应的,本实施例中,所述训练好的购买模型的训练过程具体包括:
[0077]
m10、获取第二训练集,构建购买模型,其中,所述第二训练集包括若干用户的购买样本,以及每个购买样本对应的第二真实偏好,其中,每个购买样本与浏览偏好对应同一用户;
[0078]
m20、将所述第二训练集中的购买样本以及所述购买样本对应的浏览偏好输入所述购买模型进行训练,通过所述购买模型确定购买样本对应的第二预测偏好;
[0079]
m30、根据所述购买样本对应的第二真实偏好和所述第二预测偏好的比较结果调整所述购买模型的模型参数,直至所述比较结果满足第二预设训练条件时停止对所述购买模型的训练;
[0080]
m40、将停止训练时得到的购买模型作为所述训练好的购买模型。
[0081]
本实施例中,经过浏览模型的训练,生成的抽象特征可迁移至购买模型帮助建模。因此在购买模型中,我们利用条件变分自编码器的结构融合从浏览模型学到的知识进
行建模。条件变分自编码器与vae的结构类似,区别在于条件变分自编码器的输入不仅有原始输入样本,还有浏览模型学到的条件信息(浏览偏好),用于帮助购买模型建模,而且解码器的输入除了生成的隐变量同时也把条件信息一起输入。具体的目标函数如下:
[0082][0083]
其中,是模型求解的参数,β是需要手动选择的超参数。具体的训练过程是:输入是用户对所有物品的购买向量以及迁移的条件信息经过采样和重参数技巧生成隐向量然后把该隐变量与条件信息拼接后输入到解码器,并以重构购买反馈样本为目标进行参数更新与优化。
[0084]
s300、基于所述训练好的浏览模型以及所述训练好的购买模型,得到所述目标用户的推荐商品。
[0085]
本实施例中,当模型达到收敛条件时,我们认为模型训练完毕。对于每一个用户,输入其购买记录和浏览记录对应的向量到训练完毕的模型,可以得到用户对所有物品的预测偏好,然后根据预测偏好值的大小选取预设数量的商品作为推荐商品。相应的,所述基于所述训练好的浏览模型以及所述训练好的购买模型,得到所述目标用户的推荐商品将所述数据信息输入至所述训练好的购买模型,得到所述目标用户的推荐商品具体包括:
[0086]
s301、基于所述训练好的浏览模型以及所述训练好的购买模型将所述数据信息输入至所述训练好的购买模型,得到所述目标用户对每个商品的偏好值;
[0087]
s302、根据所述每个商品的偏好值的大小,对商品进行从大到小排序;
[0088]
s303、从排序后的商品中选取前n个商品作为推荐商品,其中,所述n为正数。
[0089]
在实际应用中,所述基于所述训练好的浏览模型以及所述训练好的购买模型,得到所述目标用户对每个商品的偏好值将所述数据信息输入至所述训练好的购买模型,得到所述目标用户对每个商品的偏好值具体包括:
[0090]
s3011、采用多独热编码技术将所述数据信息分别转化成浏览向量以及购买向量;
[0091]
s3012、将所述浏览向量输入至所述训练好的浏览模型,得到用户的浏览表征向量;
[0092]
s3013、将所述浏览表征向量与所述购买向量输入至所述训练好的购买模型,得到以及所述购买向量输入至所述训练好的购买模型,得到所述目标用户对每个商品的偏好值。
[0093]
本发明实施例中,所述采用多热编码技术将所述数据信息分别转化成浏览向量以及购买向量之前还包括:对所述数据信息进行预处理,以使得所述数据信息满足预设规则。这样,通过对数据信息进行预处理,从而过滤掉原始数据中包含的不满足规则的字符,这样便于后续的向量转化,另一方面,也提高了模型训练的准确性。
[0094]
综上所述,本发明所采用的技术方案与多项式变分自编码器模型(multi-vae)相比,svae能够对用户的多种异构反馈进行建模,更符合现实生活的应用场景。
[0095]
与基于角色的迁移排序模型(rotor)相比,svae采用的基础模型是变分自编码器模型,与传统模型相比,它的特征表达能力更强。其次,svae迁移的是用户的浏览表征向量,不需要额外地进行维护用户的候选商品列表,同时svae的候选商品不局限于部分商品,而
是从全部商品中进行推荐。
[0096]
综上所述,与现有技术相比,本发明实施例具有以下优点:
[0097]
本发明公开了一种商品推荐方法,所述方法包括:获取目标用户对应的数据信息,其中,所述数据信息包括浏览数据以及购买数据;基于训练好的浏览模型构建购买模型,并对所述购买模型进行训练,得到训练好的购买模型;基于所述训练好的浏览模型以及所述训练好的购买模型,得到所述目标用户的推荐商品。本发明基于训练好的浏览模型来得到关于用户的浏览偏好,再通过该浏览偏好以及购买数据共同训练购买模型,使得训练好的购买模型为用户提供更加精准的商品推荐。
[0098]
基于上述商品推荐方法,本发明还提供了一种商品推荐装置,如图3所示,所述装置包括:
[0099]
获取模块41,用于获取目标用户对应的数据信息,其中,所述数据信息包括浏览数据以及购买数据;
[0100]
训练模块42,用于基于训练好的浏览模型构建购买模型,并对所述购买模型进行训练,得到训练好的购买模型;
[0101]
推荐模块43,用于基于所述训练好的浏览模型以及所述训练好的购买模型,得到所述目标用户的推荐商品。
[0102]
需要说明的是,所属领域的技术人员可以清楚地了解到,上述商品推荐装置和各模块的具体实现过程,可以参考前述商品推荐方法实施例中的相应描述,为了描述的方便和简洁,在此不再赘述。
[0103]
上述商品推荐装置可以实现为一种计算机程序的形式,该计算机程序可以如图4所示的终端设备上运行。
[0104]
基于上述商品推荐方法,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述实施例所述的商品推荐方法中的步骤。
[0105]
基于上述商品推荐方法,本发明还提供了终端设备,如图4所示,其包括至少一个处理器(processor)20;显示屏21;以及存储器(memory)22,还可以包括通信接口(communications interface)23和总线24。其中,处理器20、显示屏21、存储器22和通信接口23可以通过总线24完成相互间的通信。显示屏21设置为显示初始设置模式中预设的用户引导界面。通信接口23可以传输信息。处理器20可以调用存储器22中的逻辑指令,以执行上述实施例中的方法。
[0106]
此外,上述的存储器22中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
[0107]
存储器22作为一种计算机可读存储介质,可设置为存储软件程序、计算机可执行程序,如本公开实施例中的方法对应的程序指令或模块。处理器20通过运行存储在存储器22中的软件程序、指令或模块,从而执行功能应用以及数据处理,即实现上述实施例中的方法。
[0108]
存储器22可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端设备的使用所创建的数据等。此外,存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器。例如,u盘、移动
硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等多种可以存储程序代码的介质,也可以是暂态存储介质。
[0109]
此外,上述存储介质以及终端设备中的多条指令处理器加载并执行的具体过程在上述方法中已经详细说明,在这里就不再一一陈述。
[0110]
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。