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

基于反事实用户行为序列生成的序列推荐方法与流程

2021-11-05 20:38:00 来源:中国专利 TAG:


1.本发明涉及推荐系统领域,尤其涉及一种旨在建模反事实用户序列数据空间,利用对比学习增强序列推荐的用户表征的可靠性和准确性。


背景技术:

2.由于人们在互联网上面临海量数据,个性化推荐对于检索信息和发现内容是必不可少的工具。在个性化推荐中,准确表征和表示用户在成功的推荐框架中起着至关重要的作用。由于用户的历史行为具有顺序依赖性,其个性化兴趣也会随着自然时间的演变,因此最近的个性化模型多采用序列推荐的建模范式。序列推荐通过利用顺序建模的用户

项目交互来捕捉用户当前的偏好。
3.序列推荐方法旨在基于历史交互行为,预测用户可能与之交互的下一个项目。序列建模具有挑战性和开放性,目前成为个性化推荐中的热点问题。序列推荐传统方法主要利用马尔可夫链和因子分解机来捕获低阶顺序依赖关系。在这些工作之后,研究领域又提出了高阶马尔可夫链和rnn(循环神经网络)来模拟复杂的高阶依赖关系。最近,mind模型使用胶囊网络将历史交互行为转换为多个兴趣向量。comirec模型不同于mind,它利用注意力机制引入了一个可控因子来实现推荐准确性和多样性的动态平衡。
4.尽管这些框架取得了重大进展,但仍有一些挑战需要进一步探索。比如,一个重要的挑战在于用户隐式反馈中存在的噪声行为。具体而言,由于无处不在的干扰因素可能影响着用户的第一印象(例如标题党、位置偏差、促销),导致用户兴趣与点击行为之间存在不一致。另一个重要挑战是现有方法在解决推荐系统中的数据稀疏问题方面存在不足,在推荐系统中,与在大型实时推荐系统中可以轻松达到1亿量级的项目库相比,用户通常只与有限数量的项目进行交互。因此,仅对既稀疏又嘈杂的观察行为序列进行建模可能会导致不那么令人满意的推荐系统。为此,学习准确和可靠的用户表示对于推荐系统而言至关重要。


技术实现要素:

5.本发明的目的在于解决现有技术中存在的问题,并提供了一种基于反事实用户序列生成的序列推荐方法。
6.本发明具体采用的技术方案如下:
7.一种基于反事实用户行为序列生成的序列推荐方法,其包括如下步骤:
8.s1、将待推荐的目标项目作为参照,使用项目相似度识别用户行为序列中物品层级和兴趣层级各自的重要概念和非重要概念;
9.s2、基于s1中得到的概念识别结果以及从用户行为序列中提取的概念序列,通过数据增强手段对概念序列中的重要概念和非重要概念进行反事实替换,其中概念序列中重要概念被替换后生成反事实正用户序列,概念序列中非重要概念被替换后生成反事实负用户序列;基于反事实正用户序列和反事实负用户序列,通过用户编码器得到反事实正负用户表征;
10.s3、使用对比学习方法对反事实正负用户表征进行向量空间的对比,计算用户

用户反事实对比损失,并对反事实正负用户表征和目标项目表征进行向量空间的对比,计算用户

项目反事实对比损失;通过优化包含用户

用户反事实对比损失和用户

项目反事实对比损失在内的总损失函数,完成对序列推荐模型的训练;
11.s4:根据目标用户的历史行为序列,利用训练完毕的序列推荐模型预测用户可能与之交互的下一个项目,实现项目推荐。
12.作为优选,所述s1具体包括以下子步骤:
13.s101、首先从项目层级提取概念,用户行为序列中的每个项目都视为一个独立的概念,得到项目层级概念序列c=x∈r
t
×
d
,其中x=g
θ
(x
u,t 1
)表示项目序列的向量表示,g
θ
表示项目编码器;x
u,t 1
表示用户u点击目标项目y
t 1
之前的所有t个项目,表示为用户行为序列{y1,y2,

,y
t
},其中y
t
表示用户点击过的第t个项目,r
t
×
d
表示t个维度为d的项目向量构成的矩阵;使用目标项目y
t 1
作为指标,评估项目层级概念的重要性:
[0014][0015]
式中:是第i个项目层级概念的重要性分数,c
i
表示项目层级概念序列c中第i个概念的特征表示,y
t 1
表示目标项目的特征表示,φ
θ
是相似度评估函数;
[0016]
s102、首先根据注意力机制计算注意力矩阵:
[0017]
a=softmax(w2tanh(w1x
t
))
t
[0018]
式中:和是可训练的线性变换矩阵,d
a
是隐向量维度,k是预定义的概念抽取数量,tanh是双曲正弦激活函数,a的矩阵维度为r
t
×
k

[0019]
再利用注意力矩阵提取兴趣层级概念,得到兴趣层级概念序列:
[0020]
i=a
t
x
[0021]
式中:i的矩阵维度为r
k
×
d
,表示k个维度为d的兴趣层级概念向量;
[0022]
最后通过项目层级分数的加权之和来计算概念分数:
[0023]
p
interest
=a
t
φ
θ
(x,y
t 1
)
[0024]
式中:p
interest
矩阵维度为r
k
,表示k个兴趣层级概念的重要性分数;
[0025]
s103、以项目层级概念序列中每个项目层级概念的重要性分数为依据,按照设定比例将所有项目层级概念划分为项目层级的重要概念和非重要概念两类;以兴趣层级概念序列中每个兴趣层级概念的重要性分数为依据,按照设定比例将所有兴趣层级概念划分为兴趣层级的重要概念和非重要概念两类。
[0026]
进一步的,所述s2具体包括以下子步骤:
[0027]
s201、将项目层级概念序列和兴趣层级概念序列均作为用户序列,针对每一条用户序列,以r
rep
的比率替换用户序列中的非重要概念得到m条反事实正用户序列,另外以r
rep
的比率替换用户序列中的重要概念得到n条反事实负用户序列;
[0028]
s202、利用用户编码器f
θ
,从m条反事实正用户序列中获得反事实的正用户表征{x
,m
}
m=1,

,m
,同时从n条反事实负用户序列中获得反事实的负用户表征{x

,n
}
n=1,

,n

[0029]
进一步的,所述的s3具体包括以下子步骤:
[0030]
s301、在训练过程中,使用三元组边际损失来衡量样本之间的相对相似性,得到用户

用户反事实对比损失:
[0031][0032]
其中x
q
表示未进行概念替换的原始用户表征,x
,m
表示根据第m条反事实正用户序列得到的反事实的正用户表征,x

,n
表示根据第n条反事实负用户序列得到的反事实的负用户表征,d表示距离函数,δ
co
为超参数;
[0033]
s302、在训练过程中,利用目标项目y
t 1
增强用户表示学习,得到用户

项目反事实对比损失:
[0034][0035]
式中:为l2归一化后的目标项目的特征表示,为l2归一化后的反事实的正用户表征,为l2归一化后的反事实的负用户表征,δ
ii
为超参数,“·”表示向量点积;
[0036]
s303、在训练过程中,计算sampledsoftmax损失为:
[0037][0038]
其中:为随机采样的负样本项目表征集合,其中n
k
表示负样本项目集合的数量。
[0039]
s304、以所述l
co
、l
ii
和l
ssm
三者之和作为总损失,以最小化总损失值为目标对由项目编码器和用户编码器构成的序列推荐模型进行训练,得到具有最优参数的序列推荐模型。
[0040]
进一步的,所述的s4具体包括以下子步骤:
[0041]
在序列推荐模型服务期间,输入待推荐用户历史点击过的项目序列x
u,t 1
,通过用户编码器f
θ
得到用户特征表示x;同时对于系统中所有的项目得到用户特征表示x;同时对于系统中所有的项目通过项目编码器得到所有项目的表征其中表示项目集合中的项目总数量;使用k

近邻算法,以向量点积作为相似度函数计算用户特征表示x与每个项目的表征之间的相似度,得到与用户特征表示x相似度最高的k个项目,作为k个推荐返回给待推荐用户。
[0042]
进一步的,所述s2中,通过数据增强手段对每个层级的概念序列中概念进行反事实替换时,预先维护一个先进先出队列作为每个层级的概念存储器,并使用队列出列的概念作为替代概念,完成一个批次后将从当前批次中提取的概念加入队列。
[0043]
进一步的,所述项目编码器g
θ
中,使用嵌入层通过行为id直接得到项目表征。
[0044]
进一步的,所述用户编码器f
θ
中,针对给定用户行为序列x
u,t 1
={y1,y2,

,y
t
},用户编码器首先使用项目编码器g
θ
得到每个项目的表征{y1,y2,

,y
t
},然后使用均值池化得到整体表征最后将整体表征通过多层感知机得到用户的表征。
[0045]
进一步的,相似度评估函数φ
θ
通过计算向量的点积实现。
[0046]
进一步的,所述的距离函数d设置为欧几里得距离。
[0047]
本发明将反事实样本生成和对比学习应用于序列个性化推荐。相比一般序列推荐
方法,本发明通过建模反事实用户序列空间,能够缓解用户点击行为稀疏问题;通过识别物品层级和兴趣层级的重要概念和非重要概念,并以此进行用户表征学习,能够学习更加准确可靠的用户表征。
附图说明
[0048]
图1是基于反事实用户行为序列生成的序列推荐方法流程示意图。
具体实施方式
[0049]
下面结合附图和具体实施方式对本发明做进一步阐述和说明。
[0050]
本发明的核心在于将反事实样本生成以及对比学习应用于个性化序列推荐模型的训练过程中,使得序列推荐模型能够学习到更加准确可靠的用户表征。
[0051]
在本发明中,具体的序列推荐模型结构不限,例如gru4rec、comirec

sa均可,不同序列推荐模型的基本组成均可以分为项目编码器g
θ
和用户编码器f
θ
两部分。下面对本发明的具体实现方法进行详细展开描述。
[0052]
在本发明的一个较佳实施例中,提供了一种基于反事实用户行为序列生成的序列推荐方法,如图1所示为其流程框架图,该方法具体包括如下步骤:
[0053]
s1、将待推荐的目标项目作为参照,使用项目相似度识别用户行为序列中物品层级和兴趣层级各自的重要概念和非重要概念。
[0054]
为了识别重要/非重要的概念,我们建议首先从用户序列中提取概念并计算概念重要性分数。除了项目级概念之外,我们还通过利用注意力机制来提取兴趣层级概念。因此,在本实施例中,上述s1具体包括以下子步骤:
[0055]
s101、首先从项目层级提取概念,用户行为序列中的每个项目都视为一个独立的概念,得到项目层级概念序列c=x∈r
t
×
d
,其中x=g
θ
(x
u,t 1
)表示项目序列的向量表示,g
θ
表示项目编码器;x
u,t 1
表示用户u点击目标项目y
t 1
之前的所有t个项目,表示为用户行为序列{y1,y2,

,y
t
},其中y
t
表示用户点击过的第t个项目,r
t
×
d
表示t个维度为d的项目向量构成的矩阵;使用目标项目y
t 1
作为指标,评估项目层级概念的重要性:
[0056][0057]
式中:是第i个项目层级概念的重要性分数,c
i
表示项目层级概念序列c中第i个概念的特征表示,y
t 1
表示目标项目的特征表示,φ
θ
是相似度评估函数。
[0058]
在本实施例中,相似度评估函数φ
θ
通过计算向量的点积实现。
[0059]
s102、首先根据注意力机制计算注意力矩阵:
[0060]
a=softmax(w2tanh(w1x
t
))
t
[0061]
式中:和是可训练的线性变换矩阵,d
a
是隐向量维度,k是预定义的概念抽取数量,tanh是双曲正弦激活函数,a的矩阵维度为r
t
×
k

[0062]
再利用注意力矩阵提取兴趣层级概念,得到兴趣层级概念序列:
[0063]
i=a
t
x
[0064]
式中:i的矩阵维度为r
k
×
d
,表示k个维度为d的兴趣层级概念向量;
[0065]
最后由于兴趣级别的概念和目标物品不是自然嵌入在同一空间中,因此通过项目
层级分数的加权之和来计算概念分数:
[0066]
p
interest
=a
t
φ
θ
(x,y
t 1
)
[0067]
式中:p
interest
矩阵维度为r
k
,表示k个兴趣层级概念的重要性分数;
[0068]
s103、以项目层级概念序列中每个项目层级概念的重要性分数为依据,按照设定比例将所有项目层级概念划分为项目层级的重要概念和非重要概念两类;以兴趣层级概念序列中每个兴趣层级概念的重要性分数为依据,按照设定比例将所有兴趣层级概念划分为兴趣层级的重要概念和非重要概念两类。
[0069]
划分重要概念和非重要概念的具体比例可以根据实际需要调整,对于项目层级概念和兴趣层级概念,我们将得分最高的序列前一半概念视为重要概念,将序列后一半概念视为非重要概念。
[0070]
s2、基于s1中得到的概念识别结果以及从用户行为序列中提取的概念序列,通过数据增强手段对概念序列中的重要概念和非重要概念进行反事实替换,其中概念序列中重要概念被替换后生成反事实正用户序列,概念序列中非重要概念被替换后生成反事实负用户序列;基于反事实正用户序列和反事实负用户序列,通过用户编码器得到反事实正负用户表征。
[0071]
上述s2中所提出的反事实变换旨在原始用户序列的基础上,构建训练数据分布外的用户序列,以便于序列推荐模型能够更好地学习准确可靠的用户表征。
[0072]
在本实施例中,上述s2具体包括以下子步骤:
[0073]
s201、将项目层级概念序列和兴趣层级概念序列均作为用户序列,针对每一条用户序列,以r
rep
的比率替换用户序列中的非重要概念得到m条反事实正用户序列,另外以r
rep
的比率替换用户序列中的重要概念得到n条反事实负用户序列;
[0074]
上述概念替换过程,本质上是一种数据增强的过程,原始的用户序列每一次被替换都会生成一条反事实正/负用户序列。而且由于每一次替换均是按照比率r
rep
替换了原始的用户序列中的部分概念,因此不断重复多次替换就可以形成多条反事实正/负用户序列。上述概念替换的具体做法可以是多样的,在本实施例中,通过数据增强手段对每个层级的概念序列中概念进行反事实替换时,预先维护一个先进先出队列作为每个层级的概念存储器,并使用队列出列的概念作为替代概念,完成一个批次后将从当前批次中提取的概念加入队列。
[0075]
s202、利用用户编码器f
θ
,从m条反事实正用户序列中获得反事实的正用户表征{x
,m
}
m=1,

,m
,同时从n条反事实负用户序列中获得反事实的负用户表征{x

,n
}
n=1,

,n

[0076]
在本实施例中,项目编码器g
θ
获得项目表征、用户编码器f
θ
获得用户表征的具体方式需要根据具体的序列推荐模型而定。在本实施例中,项目编码器g
θ
中,使用嵌入层通过行为id直接得到项目表征。用户编码器f
θ
中,针对给定用户行为序列x
u,t 1
={y1,y2,

,y
t
},用户编码器首先使用项目编码器g
θ
得到每个项目的表征{y1,y2,

,y
t
},然后使用均值池化得到整体表征最后将整体表征通过多层感知机得到用户的表征。
[0077]
在本发明中,概念存在两个层级,即项目层级和兴趣层级,任一层级均可用于构建对应层级的用户表征模型架构。一方面,将仅建模项目层级概念的模型架构表示为causerec

item。causerec

item使用原始用户编码器f
θ
从反事实项目层级概念序列中获得
反事实的正/负用户表征{x
,m
}
m=1,

,m
/{x

,n
}
m=1,

,n
。另一方面,将仅建模兴趣层级概念的架构表示为causerec

interest。与causerec

item不同,兴趣层级的概念是用可学习的参数构建的,即公式a=softmax(w2tanh(w1x
t
))
t
中的w1和w2。causerec

interest中的用户编码器的输入是兴趣层级的概念序列,而不是项目层级的行为序列。用户编码器的架构可以保持与原始基础模型相同。causerec

interest使用原始用户编码器f
θ
从反事实兴趣层级概念序列中获得反事实正/负用户特征表示。
[0078]
但在本发明中,我们同时结合了项目层级和兴趣层级两方面进行用户表征,因此将在项目层级概念序列和兴趣层级概念序列上都进行反事实转换的架构表示为causerec

h(ierarchical)。causerec

h将兴趣层级的概念作为用户编码器的输入。与causerec

interest不同,causerec

h进一步考虑了对项目层级概念的反事实转换。每个反事实用户表示都是仅通过对序列从一个级别进行变换来构建。因此,在上述s201中,通过数据增强形成反事实正/负用户序列样本的原始用户序列既包含了项目层级概念序列,也包含了兴趣层级概念序列;由此s202中获得的m条反事实正用户序列对应的反事实的正用户表征包含了两种层级,n条反事实负用户序列对应的反事实的负用户表征也包含了两种层级。这种做法下,在后续的模型训练学习过程中,序列推荐模型能够学习更加准确可靠的用户表征。
[0079]
s3、使用对比学习方法对反事实正负用户表征进行向量空间的对比,计算用户

用户反事实对比损失,并对反事实正负用户表征和目标项目表征进行向量空间的对比,计算用户

项目反事实对比损失;通过优化包含用户

用户反事实对比损失和用户

项目反事实对比损失在内的总损失函数,完成对序列推荐模型的训练。
[0080]
在本实施例中,上述s3具体包括以下子步骤:
[0081]
s301、在训练过程中,使用三元组边际损失来衡量样本之间的相对相似性,得到用户

用户反事实对比损失:
[0082][0083]
其中x
q
表示未进行概念替换的原始用户表征,x
,m
表示根据第m条反事实正用户序列得到的反事实的正用户表征,x

,n
表示根据第n条反事实负用户序列得到的反事实的负用户表征,d表示距离函数,δ
co
为超参数。在本实施例中,距离函数d设置为欧几里得距离。
[0084]
可靠用户表示减轻对非重要概念的敏感度,因此转换反事实序列中的重要概念,以此学习到的用户表示在表征空间中应该直观地远离原始用户表示。类似的,准确用户表示应该更多地信任重要的的概念,因此转换反事实序列中的非重要概念,以此学习到的用户表示在表征空间中应该直观地接近原始用户表示。上述s301中计算的三元组边际损失刚好能够衡量样本之间的相对相似性。
[0085]
s302、在训练过程中,利用目标项目y
t 1
增强用户表示学习,得到用户

项目反事实对比损失:
[0086][0087]
式中:为l2归一化后的目标项目的特征表示即y
t 1
的l2归一化结果,为l2归
一化后的反事实的正用户表征即x
,m
的l2归一化结果,为l2归一化后的反事实的负用户表征即x

,n
的l2归一化结果,δ
ii
为超参数,“·”表示向量点积。
[0088]
另外,该损失l
ii
还能防止用户编码器对反事实用户序列学习到琐碎表征。本实施例可设置margin值δ
ii
=0.5。
[0089]
s303、在训练过程中,还使用sampledsoftmax损失进行模型训练,计算sampledsoftmax损失为:
[0090][0091]
其中:为随机采样的负样本项目表征集合,其中n
k
表示负样本项目集合的数量。
[0092]
s304、以上述l
co
、l
ii
和l
ssm
三者之和作为总损失,以最小化总损失值为目标对由项目编码器和用户编码器构成的序列推荐模型进行训练,得到具有最优参数的序列推荐模型。需注意的是,上述s301~s303中的三个损失,在每一轮训练过程中均需要计算。
[0093]
s4:根据目标用户的历史行为序列,利用训练完毕的序列推荐模型预测用户可能与之交互的下一个项目,实现项目推荐。
[0094]
需注意的是,上述s1~s3中,在模型测试和上线服务期间,只需要主干模型用以生成用户特征表示,重要和非重要的概念识别和反事实用户序列变换过程不需要进行计算。
[0095]
因此在本实施例中,上述s4具体包括以下子步骤:
[0096]
在序列推荐模型服务期间,输入待推荐用户历史点击过的项目序列x
u,t 1
,通过用户编码器f
θ
得到用户特征表示x;同时对于系统中所有的项目得到用户特征表示x;同时对于系统中所有的项目通过项目编码器得到所有项目的表征其中表示项目集合中的项目总数量;使用k

近邻算法,以向量点积作为相似度函数计算用户特征表示x与每个项目的表征之间的相似度,得到与用户特征表示x相似度最高的k个项目,作为k个推荐返回给待推荐用户。具体返回的项目数量k可根据推荐场景的具体需要进行设置。
[0097]
为了更充分清晰地展现本发明的技术方案、特点及优点,下面结合实施例与附图,对本发明进行进一步的详细说明。显然,所描述的实施例仅仅是本发明的一个实施例,而不是全部的实施例。
[0098]
实施例
[0099]
本实施例中,具体的基于反事实用户行为序列生成的序列推荐方法如前述s1~s4所示,对此不再赘述,主要展示其具体实现和技术效果。在本实施例中,获取推荐数据为amazon books的书籍推荐数据,共包含459133个用户,313966个物品,8898041个交互记录。数据集的用户按照8:1:1的比例分成训练/验证/测试子集。对于训练序列推荐模型,我们通过将行为序列中的每个物品视为潜在目标物品,并使用在用户点击目标物品之前点击的所有行为来生成用户特征表示。对于评估,我们只考虑验证/测试集中的用户。我们使用每个用户前80%的行为来对用户进行表征,并使用剩下的20%行为评估模型效果的优劣。我们采用了三个广泛使用的数值指标,即recall、normalized discounted cumulative gain(ndcg)和hit rate。表展示了基于推荐模型推荐的前50个物品而计算的指标。较高的值表示所有指标的性能更好。gru4rec是使用循环神经网络建模用户序列的模型,comirec

sa是
通过自注意力模型建模用户序列并得到多兴趣向量的模型。可见,本发明的方法的效果显著优于另两种方法。
[0100]
表1
[0101]
方法名称recallndcghit rategru4rec0.06500.10370.1370comirec

sa0.08470.13560.1720本方法(causerec

h)0.10180.16550.2113
[0102]
以上所述的实施例只是本发明的一种较佳的方案,然其并非用以限制本发明。有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型。因此凡采取等同替换或等效变换的方式所获得的技术方案,均落在本发明的保护范围内。
再多了解一些

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

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

相关文献