基于场感知因子分解机的推荐召回方法、设备和存储介质与流程

文档序号:20192256发布日期:2020-03-27 19:46阅读:195来源:国知局
基于场感知因子分解机的推荐召回方法、设备和存储介质与流程

本发明属于计算机技术领域,具体涉及一种基于场感知因子分解机的推荐召回方法、设备和存储介质。



背景技术:

随着信息技术和互联网的发展,人们逐渐从信息匮乏的时代走入了信息过载(information-overload)的时代。在这个时代,作为信息(包括商品)消费者,如何从大量信息中找到自己感兴趣的信息是一件非常困难的事情。推荐系统(recommendedsystem)就是解决上述问题的重要工具。推荐系统的任务是帮助用户发现对自己有价值的信息。

目前主流的推荐系统的框架主要分为两部分:第一部分为召回,第二部分为重排序。召回主要的作用是从海量的待选物品中初步筛选出目标用户感兴趣的商品。由于召回的目的是初筛,召回算法的一般是计算复杂度比较低的,满足快速筛选的要求。由于用户的行为多样,因此会从不同的角度设计多个召回路。以文本推荐为例,文本具有不同的特征,比如主题、实体和标签等,根据用户感兴趣的主题、感兴趣的实体、感兴趣的标签这三个特征可以分别设计3个召回路。然后重排序就是对多个召回路中召回的商品根据分值进行排序,选出得分较高的,推荐给用户。

但是这种推荐系统使用简单算法作为召回算法在召回时只能捕捉关于特征的线性信息,而无法捕捉非线性信息,特别是交叉特征信息,因此准确度不高。另外这种推荐系统需要设计多路召回,每一路召回都有一个超参数需要调试。



技术实现要素:

本发明的目的在于提供一种基于场感知因子分解机的推荐召回方法、设备和存储介质。

为实现上述发明目的之一,本发明一实施方式提供一种基于场感知因子分解机的推荐召回方法,所述方法包括:

通过物品库中每个物品的物品侧特征域,计算对应每个物品的物品侧特征域的域向量;

通过待推荐用户的用户侧特征域,计算待推荐用户的用户侧特征域的域向量;

计算物品库中物品的物品侧特征的一阶项得分si和待推荐用户的用户侧特征的一阶项得分su;

通过待推荐用户的所述域向量、物品库中的物品的所述域向量、所述si和所述su,计算物品库中物品的得分,选出得分前n的物品作为推荐召回物品。

作为本发明一实施方式的进一步改进,所述“通过待推荐用户的域向量、物品库中的物品的域向量、si和su,计算物品库中物品的得分”具体包括:

将待推荐用户的所有域向量分别与物品库中的物品的对应的域向量做向量内积并求和,再加上对应的su和si,得到每个物品相对于待推荐用户的得分。

作为本发明一实施方式的进一步改进,所述“通过待推荐用户的域向量、物品库中的物品的域向量、si和su,计算物品库中物品的得分”具体包括:

依次拼接每个物品的所有物品侧特征域的域向量、1和si,得到每个物品的向量;

依次拼接待推荐用户的所有用户侧特征域的域向量、su和1,得到所述待推荐用户的检索向量;

将所述检索向量与所述物品库中的每个物品的向量做向量内积,选出得分前n的物品作为推荐召回物品。

作为本发明一实施方式的进一步改进,将所述物品库中的物品的向量存储在向量数据库中,当需要给待推荐用户推荐物品时,使用所述待推荐用户的检索向量检索所述向量数据库,使用所述检索向量与物品的向量的向量内积作为检索得分,选出检索得分前n的物品作为推荐召回物品。

作为本发明一实施方式的进一步改进,所述“通过物品库中每个物品的物品侧特征域,计算对应每个物品的物品侧特征域的域向量”具体包括:

通过物品库中每个物品的m个物品侧特征域,计算每个物品侧特征域的相对于r个用户侧特征域的r个域向量,每个物品总共得到r*m个域向量。

作为本发明一实施方式的进一步改进,所述“通过待推荐用户的用户侧特征域,计算待推荐用户的用户侧特征域的域向量”具体包括:

通过待推荐用户的r个用户侧特征域,计算每个物品侧特征域相对于m个物品侧特征域的m个域向量,总共得到m*r个域向量。

作为本发明一实施方式的进一步改进,所述方法还包括:

整理用户侧特征和物品侧特征,训练ffm模型,得到ffm模型相关的参数。

作为本发明一实施方式的进一步改进,所述“整理用户侧特征和物品侧特征,训练ffm模型,得到ffm模型相关的参数”具体包括:

整理物品侧特征和用户侧特征,将物品侧特征分成m个特征域,将物品侧特征分成r个特征域;

收集历史用户的行为记录,训练ffm模型,得到每个用户侧特征相对于物品侧特征的m个特征域的m个embedding向量、用户侧特征的一阶项的权重、每个物品侧特征相对于用户侧特征的r个embedding向量和物品侧特征的一阶项的权重。

为实现上述发明目的之一,本发明一实施方式提供一种电子设备,包括存储器和处理器,所述存储器存储有可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任意一项所述基于场感知因子分解机的推荐召回方法中的步骤。

为实现上述发明目的之一,本发明一实施方式提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述基于场感知因子分解机的推荐召回方法中的步骤。

与现有技术相比,本发明的基于场感知因子分解机的推荐召回方法,将ffm算法用在推荐召回步骤中时,根据待推荐的用户快速精确的对所有的商品进行打分排序,从而给用户推荐召回更加符合心意的商品或信息;同时用一个模型替代了多个召回模型,简化了召回流程,省去了多路召回的超参数设置。

附图说明

图1是本发明第一实施方式的推荐召回方法的流程示意图。

图2是本发明第二实施方式的基于场感知因子分解机的推荐召回方法的流程示意图。

具体实施方式

以下将结合附图所示的具体实施方式对本发明进行详细描述。但这些实施方式并不限制本发明,本领域的普通技术人员根据这些实施方式所做出的结构、方法、或功能上的变换均包含在本发明的保护范围内。

传统的推荐系统包括召回和重排序两个部分,召回算法的一般是计算复杂度比较低的,需要满足快速筛选的要求,但是需要设置多路召回。运用在重排序中的算法一般计算比较复杂,但是准确度高,可以计算特征与特征之间的交叉信息,因此可以将多路召回的结果进行排序,从而选出得分靠前的物品或信息推荐给用户。现有技术中,fm算法(factorizationmachines:因子分解机)/ffm算法(field-awarefactorizationmachines:场感知因子分解机)一般作为重排序算法用在推荐系统中。

fm算法模型公式如下:

其中n代表样本的特征数量,b_i也可以写成x_i,代表第i个特征的值,w_0、w_i和w_ij是模型参数,w_i表示一阶项特征的权重(后续用wu和wi表示一阶项所有用户侧特征的权重和一阶项所有物品侧特征的权重),w_ij是二阶交叉特征的权重。将wij改写成向量内积的形式:

将其带入公式(1)得到:

公式(2)的第三项二阶交叉特征的部分(简称交叉项部分)可以继续推导如下:

最终交叉项部分可化为公式(3),从公式(3)可以看出,大括号内的前一项就是所有特征值x与其对应的embedding向量相乘后向量对位相加,最后得到的向量自身做向量内积。大括号内的第二项是特征值x与其对应的embedding向量的元素先各自平方后相乘,然后所有相乘结果再相加。

需要说明的是,embedding向量也叫嵌入向量或者隐向量,是fm模型针对每个特征训练出来的k维的向量,每个特征都具有一个embedding向量。

通过上述推导的结果,我们考虑将样本的特征分为用户侧特征和物品侧特征,然后对交叉项部分做一些条件限制,比如不考虑用户侧特征内部的特征交叉和物品侧特征内部的特征交叉,上述交叉项部分可以继续简化如下(k为embedding向量的维度):

公式(4)中展示了用户侧特征和物品侧特征的特征交叉,可以看出最后的计算是将用户侧特征乘以用户侧特征的embedding向量,然后将所有用户侧特征的向量相加得到用户特征向量,物品侧做同样的操作得到物品特征向量,然后两个向量做内积。相比公式(3)没有后面的平方项。

根据上面的推导结果,将特征分为用户侧(u)和物品侧(i),两类特征不考虑每一类内部的特征交叉(在实际运用中,每一类的内部交叉特征影响相对比较小,例如用户的年龄与用户的性别关系不大),则可以将fm模型的交叉项部分简化为用户侧特征向量vu与物品侧特征向量vi做向量内积。fm模型还包括有一阶项(计算一阶项的得分时只需要把将用户侧特征或物品侧特征的值与对应特征的一阶项权重做向量内积)和常数w_0,由于常数w_0对于最后的积分排序没有影响,所以不考虑。使用su表示用户侧一阶项得分,si表示物品侧一阶项得分,则根据用户计算商品得分时,关键在于如下公式(5)的计算结果f:

f=vu*vi+su+si(5)

其中vu=[vu1,vu2,…,vuk],vi=[vi1,vi2,…,vik],k为特征的embedding向量的维度。为了能够直接用向量分别表示用户侧相关的内容(后续简称用户的向量vus)和物品侧相关的内容(后续简称物品的向量vis),分别构建用户的向量vus和物品的向量vis:

vus=[vu1,vu2,…,vuk,su,1]

vis=[vi1,vi2,…,vik,1,si]

因此根据用户计算的商品得分f=vus*vis。

以上是fm模型的简化过程,ffm算法是在fm算法的基础上,引入了特征域的概念,ffm模型公式如下:

fm模型中每个特征都具有一个embedding向量。ffm模型中引入了特征域的概念,ffm把相同性质的特征归于同一个特征域,因此在ffm中,每一维特征x_i,针对其它特征的每一种特征域fj,都会学习一个embedding向量v_i,fj。将w_ij改写成向量内积的形式:

将其带入公式(6)得到:

在fm模型中,将样本的特征分为用户侧特征和物品侧特征,然后对交叉项部分做一些条件限制,比如不考虑用户侧特征内部的特征交叉和物品侧特征内部的特征交叉,可以对二阶交叉特征的部分进行简化。同理,在ffm模型中,也将样本的特征分为用户侧特征和物品侧特征,然后忽略用户侧特征内部的特征交叉和物品侧特征内部的特征交叉,公式(7)的第三项二阶交叉特征的部分(简称交叉项部分)可以继续进行如下推导:

最终交叉项部分可化为公式(8),其中公式中f_u和f_i分别表示用户侧特征和物品侧特征的特征域的总数,r和m分别表示用户侧特征和物品侧特征的第几个特征域,fr和fm分别表示用户侧特征的第r个、物品侧特征的第m个特征域中的特征总数,k是embedding向量的维度。

请参考公式(8)的括号内的部分,将特征域r和m看成固定值,即用户侧特征的特征域r针对物品侧特征的特征域m,将特征域内的特征值乘以对应的embedding向量后对位相加,得到一个特征域相对于另外一个特征域的总的k维向量,所述总的k维向量也叫域向量,简称e,如下:

然后两个特征域的e做向量内积,即eu_rm·ei_mr,eu表示用户侧特征的域向量,ei表示物品侧特征的域向量,eu_rm表示用户侧特征的第r个特征域相对于物品侧特征的第m个特征域的域向量,ei_mr表示物品侧特征的第m个特征域相对于用户侧特征的第r个特征域的域向量,“·”表示做向量内积。

请继续参考公式(8),整个交叉项部分相当于用户侧特征的每一个特征域的域向量与物品侧特征域的每一个特征域的域向量两两做向量内积并求和。具体的,用户侧特征总共r个特征域,物品侧特征总共m个特征域,对于用户侧特征的第一个特征域,其相对物品侧特征的m个特征域,具有m个域向量,包括eu_11、eu_12至eu_1m,而物品侧特征的m个特征域,相对于用户侧特征的第一个特征域,分别具有域向量ei_11、ei_21至ei_m1。

依次类推,用户侧特征的第r个特征域,其相对物品侧特征的m个特征域,具有的域向量为eu_r1、eu_r2至eu_rm,物品侧特征的m个特征域,相对于用户侧特征的第r个特征域,分别具有域向量ei_1r、ei_2r至ei_mr。

用户侧特征总共具有r*m个域向量,物品侧特征也具有m*r个域向量,最后将用户侧特征的所有的域向量eu_rm与物品侧特征的对应的域向量ei_mr做向量内积并求和,即公式(8)可以简化为:

根据上面的推导结果,将特征分为用户侧(u)和物品侧(i),两类特征不考虑每一类内部的特征交叉(在实际运用中,每一类的内部交叉特征影响相对比较小,例如用户的年龄与用户的性别关系不大),则可以将ffm模型的交叉项部分简化为用户侧特征的各个特征域的各个域向量与对应的物品侧特征的特征域的域向量做向量内积并求和。

ffm模型还包括有一阶项(计算一阶项的得分时只需要把将用户侧特征或物品侧特征的值与对应特征的一阶项权重做向量内积)和常数w_0,由于常数w_0对于最后的积分排序没有影响,所以不考虑。使用su表示用户侧一阶项得分,si表示物品侧一阶项得分,则根据用户计算商品得分时,关键在于如下公式(10)的计算结果f:

与fm相同,为了能够直接用向量分别表示用户侧相关的内容(后续简称用户的向量vus)和物品侧相关的内容(后续简称物品的向量vis),分别构建用户的向量vus和物品的向量vis:

vus=[eu_11,eu_12,…,eu_1m,…,eu_r1,eu_r2,…,eu_rm,su,1]

vis=[ei_11,ei_21,…,ei_m1,…,ei_1r,ei_2r,…,ei_mr,1,si]

因此根据用户计算的商品得分f=vus*vis。

从上面的推导结果可以看出,fm和ffm模型公式在计算一个物品的得分时,计算过程大大简化了。因此,fm和ffm算法能够用在推荐系统的召回中,在fm和ffm算法用在推荐召回中时,能够捕捉用户侧特征与物品侧特征的交叉特征,因此可以根据用户快速准确的对所有的商品进行排序,从而能够给用户推荐召回更加符合心意的商品或信息;同时替代了多路召回的步骤,简化了召回流程,省去了各路召回的超参数设置。

另外,需要说明的是,由于简化后的fm/ffm模型省略了用户侧特征的内部交叉特征和物品侧特征的内部交叉特征,因此精度比原始的fm/ffm模型的精度低,所以优选在召回后再使用精度更高的模型(比如原始的fm/ffm模型)对召回的物品进行重排序,此过程中,优选召回的数量多于重排序后推荐给用户的数量,即如果需要推荐10件物品给用户时,召回100件物品,然后对这100件进行重排序,选出前10的商品推荐给用户。当然,如果精度要求不是很高的情况下,也可以直接将召回的物品推荐给用户,而省略重排序的步骤。

根据上述推导结果,本发明第一实施方式提供一种推荐召回方法,所述方法可以采用fm模型来实现,也可以采用ffm模型来实现,如图1所示,所述方法包括:

步骤s110:根据物品侧特征,计算物品库中的每个物品的向量。

采用fm模型时,所述步骤s110具体包括:

步骤s111:训练fm模型,得到物品侧特征的embedding向量。

首先整理物品侧特征和用户侧特征,比如物品侧特征可以包括物品id、物品标签和物品价格等,用户侧特征可以包括用户id、用户性别和用户年龄等。

然后收集历史用户点击或浏览物品的记录,训练fm模型,得到各个特征的embedding向量和一阶项的权重,具体包括各个用户侧特征的embedding向量、各个物品侧特征的embedding向量、用户侧特征一阶项的权重wu和物品侧特征的一阶项的权重wi。

步骤s112:将物品库中的每个物品的各个物品侧特征的值与对应embedding向量相乘后得到的向量对位相加,每个物品得到一个特征向量vi。

物品库存在很多的物品,计算一个物品的特征向量,就是将这个物品的每一个物品侧特征的值与对应的embedding向量相乘后,得到多个k维向量,将这多个k维向量对位相加,即得到这个物品的特征向量vi。

举一个简单的例子,假设物品侧特征有3个,其对应的embedding向量分别为a、b、c,其中a=[a1,a2,…,ak],b=[b1,b2,…,bk],c=[c1,c2,…,ck]。一个物品的物品侧特征值分别为1、1、1,则这个物品的特征向量vi=[a1+b1+c1,a2+b2+c2,…,ak+bk+ck]。

步骤s113:计算物品库中每个物品的物品侧特征的一阶项得分si。

前面在训练fm模型时,已经得到物品侧特征的一阶项的权重wi,将物品库中的物品的各个物品侧特征的值与所述wi做加权求和,得到每个物品的物品侧一阶项得分si。

假设有m个物品侧特征,则wi=[wi1,wi2,…,wim],一个物品的物品侧特征的值为[x1,x2,…,xm],则si=wi1*x1+wi2*x2+…+wim*xm。

步骤s114:依次拼接所述vi、1和si,得到所述物品的向量。

为了存储方便且能够快速计算,直接用向量表示物品侧相关的内容,即物品的向量vis,假设vi=[vi1,vi2,…,vik],则vis=[vi1,vi2,…,vik,si,1]。

采用ffm模型时,所述步骤s110具体包括:

步骤s111':整理物品侧特征和用户侧特征,训练ffm模型。

整理物品侧特征和用户侧特征,将物品侧特征分成m个特征域,将物品侧特征分成r个特征域;

收集历史用户的行为记录(浏览历史或者购买历史等),训练ffm模型,得到每个用户侧特征相对于物品侧特征的m个特征域的m个embedding向量、用户侧特征的一阶项的权重、每个物品侧特征相对于用户侧特征的r个embedding向量和物品侧特征的一阶项的权重。

步骤s112':根据物品侧特征,计算物品库中的每个物品的向量。

计算物品库中的每个物品的物品侧特征的每个特征域的相对于用户侧特征的r个特征域的r个域向量,每个物品总共得到r*m个域向量,r*m个域向量为eu_11,eu_12,…,eu_1m,…,eu_r1,eu_r2,…,eu_rm。

计算物品库中每个物品的物品侧特征的一阶项得分si,此步骤同fm模型的计算步骤。

依次拼接所述r*m个域向量、1和si,得到所述物品的向量vis=[ei_11,ei_21,…,ei_m1,…,ei_1r,ei_2r,…,ei_mr,1,si]。

上述步骤中,由于一个物品侧特征相对于用户侧特征的每个特征域都训练得到一个embedding向量,因此计算一个物品的物品侧特征的一个特征域m相对于用户侧特征的一个特征域r的域向量ei_mr,具体包括:

将所述物品的物品侧特征的所述特征域m的各个特征的值与对应用户侧特征的所述特征域r的embedding向量相乘后得到的向量对位相加,得到物品侧特征的所述特征域m相对于用户侧特征的所述特征域r的域向量ei_mr。

举一个简单的例子,假设物品侧特征的特征域m包括3个特征,所述物品的这三个特征的值分别为a、b和c,物品侧特征的特征域m的3个特征相对于用户侧特征的特征域r的embending向量分别为e1、e2和e3,则所述ei_mr=a*e1+b*e2+c*e3。

经过上述步骤s110,可以将物品库中的每个物品的向量计算出来,优选所述物品库中的物品以向量的形式存储。

在物品库中的物品的特征没有变动的情况下,每个物品的向量只需要计算一次,就可以一直使用,简单方便。

需要说明的是,本发明中物品库中的物品并不局限与实际销售的商品,还可以表示其它任何可以用来推荐信息,例如新闻、视频、音乐等。

步骤s120:根据用户侧特征,计算待推荐用户的检索向量。

在采用fm模型时,所述步骤s120包括:

计算带推荐用户的检索向量与计算物品的向量类似。前述训练fm模型时已经得到用户侧特征的embedding向量,将待推荐用户的用户侧特征的值与对应embedding向量相乘后得到的向量对位相加,得到待推荐用户的特征向量vu=[vu1,vu2,…,vuk]。

计算待推荐用户的用户侧特征的一阶项得分su:假设有r个用户侧特征,则wu=[wu1,wu2,…,wur],带推荐用户的用户侧特征的值为[x1,x2,…,xr],则su=wu1*x1+wu2*x2+…+wur*xr。

依次拼接所述vu、su和1,得到所述待推荐用户的检索向量vus,vus=[vu1,vu2,…,vuk,su,1]。

在一个优选的实施方案中,所述用户侧特征分为固定特征和变化特征;所述固定特征可以包括用户id、用户性别和用户年龄等用户登录网站后一般不会发生变化的特征;所述变化特征可以包括用户访问的时间、用户访问的地点、用户的兴趣标签和用户的浏览历史等,所述变化特征在用户登录网站后可能会随着时间而发生改变。

因此所述待推荐用户的特征向量vu包括固定特征向量vuf和变化特征向量vuv,所述待推荐用户的用户侧特征的一阶项得分su包括固定特征的一阶项得分suf和变化特征的一阶项得分suv。

由于用户上线后需要定期给用户推荐物品,因此在计算待推荐用户的检索向量vus时,除了第一次推荐的时候需要计算vuf和suf,后续的推荐都可以只计算vuv和suv,从而加快了计算的速度。

采用ffm模型时,所述步骤s120具体包括:

计算待推荐用户的用户侧特征的每个特征域的相对于物品侧特征的m个特征域的m个域向量,总共得到m*r个域向量,所述m*r个域向量为eu_11,eu_12,…,eu_1m,…,eu_r1,eu_r2,…,eu_rm。

计算待推荐用户的用户侧特征的一阶项得分su,此步骤同fm模型的计算步骤。

依次拼接所述m*r个域向量、su和1,得到所述待推荐用户的检索向量vus=[eu_11,eu_12,…,eu_1m,…,eu_r1,eu_r2,…,eu_rm,su,1]。

上述步骤中,计算用户侧特征的一个特征域r相对于物品侧特征的一个特征域m的域向量eu_rm,具体包括:

将用户侧特征的所述特征域r的各个特征的值与对应物品侧特征的所述特征域m的embedding向量相乘后得到的向量对位相加,得到用户侧特征的所述特征域r相对于物品侧特征的所述特征域m的域向量eu_rm。

需要说明的是,与fm模型相同的是,优选所述用户侧特征包括固定特征和变化特征。因此用户侧特征包括一个或多个固定特征域和一个或多个变化特征域。在计算域向量时,固定特征域的域向量只需要计算一次,然后实时计算变化特征域的域向量,从而加快了推荐召回的速度。

步骤s130:将所述检索向量与所述物品库中的每个物品的向量做向量内积,选出得分前n的物品作为推荐召回物品。

采用fm模型时,物品得分f=vus*vis=vu*vi+su+si。选出得分前n的物品作为推荐召回物品,直接推荐给用户,或者将所述推荐召回物品重排序后推荐给用户。

采用ffm模型,在针对待推荐用户做推荐召回时,根据公式(10)计算每个物品的得分,得分前n的物品作为推荐召回物品。

在一个优选的实施例中,为了加快推荐或计算的速度,将所述物品库中的物品的向量存储在向量数据库中,当需要给待推荐用户推荐物品时,使用所述待推荐用户的检索向量检索所述向量数据库,使用所述检索向量与物品的向量的向量内积作为检索得分,选出检索得分前n的物品作为推荐召回物品。

在一个具体的实施例中,用户在商品库(物品库)注册基本信息,且上线后在商品库中挑选商品(可以是浏览或者购买),根据历史用户的行为和整理出来的物品侧特征和用户侧特征(用户侧特征包括固定特征和变化特征),训练fm模型,得到各个特征的embedding向量和一阶项的权重,具体包括各个用户侧特征的embedding向量、各个物品侧特征的embedding向量、用户侧特征一阶项的权重wu和物品侧特征的一阶项的权重wi。将这些数据存储起来,以便后续增加或修改商品时,计算商品的向量。

根据训练的fm模型,计算商品库中各个商品的向量,存储到向量数据库中。当某个用户上线后,根据这个用户的特征,比如性别、年龄、上线地点、浏览历史(如果有的话)等,计算用户的检索向量,将所述检索向量与商品库中各个商品的向量做向量内积,选出得分前n的商品作为推荐召回商品,将推荐召回商品重排序后,推荐给用户。

在另一个具体的实施例中,用户在商品库(物品库)注册基本信息,且上线后在商品库中挑选商品(可以是浏览或者购买),根据历史用户的行为和整理出来的物品侧特征和用户侧特征(用户侧特征包括固定特征和变化特征),将物品侧特征分成m个特征域,将物品侧特征分成r个特征域,训练ffm模型,得到每个用户侧特征相对于物品侧特征的m个特征域的m个embedding向量、用户侧特征的一阶项的权重、每个物品侧特征相对于用户侧特征的r个embedding向量和物品侧特征的一阶项的权重。将这些数据存储起来,以便后续增加或修改商品时,计算商品的向量。

根据训练的ffm模型,计算商品库中各个商品的向量,存储到向量数据库中。当某个用户上线后,根据这个用户的特征,比如性别、年龄、上线地点、浏览历史(如果有的话)等,计算用户的检索向量,将所述检索向量与商品库中各个商品的向量做向量内积,选出得分前n的商品作为推荐召回商品,将推荐召回商品重排序后,推荐给用户。需要说明的是,随着用户的不断浏览,由于用户的变化特征的值在不停的变化,所以所述推荐商品也在不停的发生变化。在计算时,可以将用户侧特征分成两部分计算,实时计算变化特征的值,而保存第一次计算的固定特征的值。

本发明还提供一种电子设备,包括存储器和处理器,所述存储器存储有可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现上述所述推荐召回方法中的任意一个步骤,也就是说,实现上述所述推荐召回方法中任意一个技术方案中的步骤。

本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述所述推荐召回方法中的任意一个步骤,也就是说,实现上述所述推荐召回方法中的任意一个技术方案中的步骤。

如图2所示,本发明第二实施方式还提供一种基于场感知因子分解机的推荐召回方法,所述方法包括:

步骤s210:通过物品库中每个物品的物品侧特征域,计算对应每个物品的物品侧特征域的域向量。

所述步骤s210具体包括:通过物品库中每个物品的m个物品侧特征域,计算每个物品侧特征域的相对于r个用户侧特征域的r个域向量,每个物品总共得到r*m个域向量。需要说明的是,本文中物品侧特征域是指物品侧特征的特征域,用户侧特征域是指用户侧特征的特征域。

步骤s220:通过待推荐用户的用户侧特征域,计算待推荐用户的用户侧特征域的域向量。

所述步骤s220具体包括:通过待推荐用户的r个用户侧特征域,计算每个物品侧特征域相对于m个物品侧特征域的m个域向量,总共得到m*r个域向量。

步骤s230:计算物品库中物品的物品侧特征的一阶项得分si和待推荐用户的用户侧特征的一阶项得分su。

步骤s240:通过待推荐用户的域向量、物品库中的物品的域向量、si和su,计算物品库中物品的得分,选出得分前n的物品作为推荐召回物品。

所述步骤s240具体包括:

将待推荐用户的所有域向量分别与物品库中的物品的对应的域向量做向量内积并求和,再加上对应的su和si,得到每个物品相对于待推荐用户的得分。

为了加快计算速度,在一个优选的实施方式中,所述步骤s240包括:

依次拼接每个物品的所有物品侧特征域的域向量、1和si,得到每个物品的向量;

依次拼接待推荐用户的所有用户侧特征域的域向量、su和1,得到所述待推荐用户的检索向量;

将所述检索向量与所述物品库中的每个物品的向量做向量内积,选出得分前n的物品作为推荐召回物品。

为了进一步加快计算速度,优选将所述物品库中的物品的向量存储在向量数据库中,当需要给待推荐用户推荐物品时,使用所述待推荐用户的检索向量检索所述向量数据库,使用所述检索向量与物品的向量的向量内积作为检索得分,选出检索得分前n的物品作为推荐召回物品。

在一个具体的实施方式中,所述方法还包括:

整理用户侧特征和物品侧特征,训练ffm模型,得到ffm模型相关的参数,即:

整理物品侧特征和用户侧特征,将物品侧特征分成m个特征域,将物品侧特征分成r个特征域;收集历史用户的行为记录,训练ffm模型,得到每个用户侧特征相对于物品侧特征的m个特征域的m个embedding向量、用户侧特征的一阶项的权重、每个物品侧特征相对于用户侧特征的r个embedding向量和物品侧特征的一阶项的权重。

优选的,计算一个物品的物品侧特征的一个特征域相对于用户侧特征的一个特征域的域向量,具体包括:

将物品的物品侧特征的所述特征域的各个特征的值与对应用户侧特征的所述特征域的embedding向量相乘后得到的向量对位相加,得到所述物品的物品侧特征的所述特征域相对于用户侧特征的所述特征域的域向量。

优选的,计算待推荐用户的用户侧特征的一个特征域相对于物品侧特征的一个特征域的域向量,具体包括:

将所述待推荐用户的用户侧特征的所述特征域的各个特征的值与对应物品侧特征的所述特征域的embedding向量相乘后得到的向量对位相加,得到待推荐用户的用户侧特征的所述特征域相对于物品侧特征的所述特征域的域向量。

本发明还提供一种电子设备,包括存储器和处理器,所述存储器存储有可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现上述所述基于场感知因子分解机的推荐召回方法中的任意一个步骤,也就是说,实现上述所述基于场感知因子分解机的推荐召回方法中任意一个技术方案中的步骤。

本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述所述基于场感知因子分解机的推荐召回方法中的任意一个步骤,也就是说,实现上述所述基于场感知因子分解机的推荐召回方法中的任意一个技术方案中的步骤。

应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施方式中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。

上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1