CN115082147B - 一种基于超图神经网络的序列推荐方法及装置 - Google Patents
一种基于超图神经网络的序列推荐方法及装置 Download PDFInfo
- Publication number
- CN115082147B CN115082147B CN202210668287.XA CN202210668287A CN115082147B CN 115082147 B CN115082147 B CN 115082147B CN 202210668287 A CN202210668287 A CN 202210668287A CN 115082147 B CN115082147 B CN 115082147B
- Authority
- CN
- China
- Prior art keywords
- user
- commodity
- vector
- hypergraph
- dynamic
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 51
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 18
- 239000013598 vector Substances 0.000 claims abstract description 317
- 230000003993 interaction Effects 0.000 claims abstract description 107
- 238000012549 training Methods 0.000 claims abstract description 71
- 230000003068 static effect Effects 0.000 claims abstract description 66
- 235000019580 granularity Nutrition 0.000 claims abstract description 22
- 230000006870 function Effects 0.000 claims description 40
- 239000011159 matrix material Substances 0.000 claims description 28
- 230000002452 interceptive effect Effects 0.000 claims description 23
- 230000004927 fusion Effects 0.000 claims description 18
- 230000004913 activation Effects 0.000 claims description 16
- 238000010276 construction Methods 0.000 claims description 11
- 230000007246 mechanism Effects 0.000 claims description 11
- 238000007781 pre-processing Methods 0.000 claims description 6
- 238000012163 sequencing technique Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 claims description 5
- 230000007774 longterm Effects 0.000 claims description 3
- 238000000605 extraction Methods 0.000 description 11
- 238000005070 sampling Methods 0.000 description 10
- 230000002829 reductive effect Effects 0.000 description 9
- 230000006399 behavior Effects 0.000 description 8
- 238000009825 accumulation Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 6
- 238000003062 neural network model Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 238000005096 rolling process Methods 0.000 description 5
- 230000036961 partial effect Effects 0.000 description 4
- 238000006467 substitution reaction Methods 0.000 description 4
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000000670 limiting effect Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000000306 recurrent effect Effects 0.000 description 3
- 238000003860 storage Methods 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000012512 characterization method Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 238000001125 extrusion Methods 0.000 description 1
- 238000011478 gradient descent method Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 210000001503 joint Anatomy 0.000 description 1
- 238000003064 k means clustering Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0631—Item recommendations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02A—TECHNOLOGIES FOR ADAPTATION TO CLIMATE CHANGE
- Y02A10/00—TECHNOLOGIES FOR ADAPTATION TO CLIMATE CHANGE at coastal zones; at river basins
- Y02A10/40—Controlling or monitoring, e.g. of flood or hurricane; Forecasting, e.g. risk assessment or mapping
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Strategic Management (AREA)
- Marketing (AREA)
- Economics (AREA)
- Development Economics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- General Business, Economics & Management (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于超图神经网络的序列推荐方法及装置,其中方法包括:根据数据集构建超图;通过超图卷积学习动态短时用户/商品嵌入向量;将动态/静态用户、动态/静态商品相结合,获得用户与商品交互嵌入向量;通过把用户‑商品交互序列输入transfomer模块中,根据滑动窗口的不同,学习出不同时间粒度用户嵌入向量;将不同时间粒度的动态用户嵌入向量进行融合;使用最终动态用户嵌入向量和静态/动态融合的商品嵌入向量进行偏好预测,得到推荐顺序。本发明综合考虑了用户与商品交互的多时间粒度下的信息,使用户向量中包含用户与用户之间的相关性信息,保证特征的有效性,降低主模型上训练的时间复杂度,可广泛应用于序列推荐技术领域。
Description
技术领域
本发明涉及序列推荐技术领域,尤其涉及一种基于超图神经网络的序列推荐方法及装置。
背景技术
21世纪以来,随着网络技术的发展和手机与电脑的普及,网购已经成为居民生活不可或缺的一部分。互联网技术的飞速发展,同时也给居民带来了信息***的问题,海量无关信息每天充斥着人们的生活。如何帮助居民更好的在海量的商品中,选择出他们最需要,最匹配的商品,成为了一个各大电商平台一个重要的难点。这不仅能更好的满足居民的生活需求,同时可以更好的为商家精准定位客源,更好的销售产品解决库存挤压等问题。推荐***是一种根据用户历史购物等行为以及个人偏好来为用户推荐商品的技术应用,可以更精准地为客户提供推荐优质的商品,让用户感受到所见即所需,减少被海量无兴趣商品信息包围的困扰,从而有效的缓解信息过载的问题;另一方面也为商家的决策提供更加科学的数据支撑,提升电商行业的服务质量。
目前序列推荐算法可以简单的分为三类:基于传统的递归神经网络模型,如GRU4Rec+;基于注意力机制神经网络模型,如BERT4Rec与SASRec;基于图神经网络的序列推荐模型,如HyperRec。基于传统的递归神经网络模型,一般将序列化的物品嵌入表示向量输入到GRU神经网络中,每一时序帧的输出是一个向量,这一向量经过多层感知机后转化为对下一个时序用户选择所有物品的预测评分。然而这种传统的递归神经网络模型的缺陷在于只利用了物品顺序的信息,而且一般在训练最开始阶段均是随机初始化,并没有很好的利用用户的信息以及商品之间的内在关系。
基于注意力机制神经网络模型一般在序列推荐模型中加入注意力机制,它试图根据用户最近交互来捕捉用户活动的信息,可以较好的捕捉长期语义,从用户的历史交互信息中找出哪些项目是‘相关的’,并使用它们来预测下一个项目。但是该类型的模型依旧没有很好的引入用户端的信息,只使用了用户的行为信息;同时序列上仅考虑了用户同一时间粒度上的信息,并没考虑跨时间粒度上的信息。
基于图神经网络的序列推荐模型,通过构造用户与商品的图,图卷积的帮助下,可以更好的学到用户与用户,用户与商品之间的多跳关系,更好学习出用户与商品的偏好与特征,多层图卷积下捕获多阶连接。因此在预测下一个商品时,用户与商品的表征向量将会更加的丰富,包含的语义也会更加全面。然而,图卷积的计算运算与复杂度都远远大于传统的神经网络模型,对于图的构建依赖程度很高,同样受困与图里的数据稀缺的困扰。因此更好的解决图的数据稀缺的问题,将更有效地用户与物品交互信息融合到模型中变得尤为重要。
发明内容
为至少一定程度上解决现有技术中存在的技术问题之一,本发明的目的在于提供一种基于超图神经网络的序列推荐方法及装置。
本发明所采用的技术方案是:
一种基于超图神经网络的序列推荐方法,包括以下步骤:
获取带有用户与商品交互信息、时间信息的数据集,根据获得的数据集构建超图,利用不同的时间段对超图进行划分;
划分获得每个时间段的超图子图,对每个时刻下的超图子图中的超边用户进行聚类操作,以将相似的超边进行聚类;
通过引入对比学习与图卷积进行预训练学习,获得商品与用户的初始嵌入向量;
将划分好的每个时间段的超图子图,以及预训练学习的商品/用户初始嵌入向量,输入主模型中,进行超图卷积学习动态商品/用户嵌入向量;通过融合层将静态/动态商品与静态/动态用户嵌入向量进行融合,得到用户与商品的交互嵌入向量;
将用户与商品交互嵌入向量输入transformer模块中,根据不同的时间滑动窗口,学习获得短中长三种动态用户嵌入向量,将三种动态用户嵌入向量融合成最终动态用户嵌入向量;
将最终动态用户嵌入向量与融合动态和静态的商品嵌入向量进行偏好预测,获得推荐顺序。
进一步地,所述根据获得的数据集构建超图,包括:
对数据集进行预处理,将经过预处理的数据集用于不同时间下的商品与用户超图子图构建中;
所述将经过预处理的数据集用于不同时间下的商品与用户超图子图构建中,包括:
用户:U={u1,u2,…uL,};其中,uj为第j个的用户嵌入向量,1≤j≤L,L为用户数量总数量;
商品:I={i1,i2,…iN,};其中,ij为第j个的商品嵌入向量,1≤j≤N,N为物品总数量;
时间:T={t1,t2,…tC,};其中,tj为第j个时间刻,1≤j≤C,C为时间总长度;
表示一个用户与商品的交互序列,按交互时间排序;其中,/>表示的物品ID为1的嵌入向量,m为物品ID;/>表示用户n与商品1交互的时间t1;
其中G表示每个时间t下的所构建的商品与用户的超图子图,t代表时间刻,/>表示在时间刻tc下,商品与用户的超图子图。
进一步地,所述对每个时刻下的超图子图中的超边用户进行聚类操作的步骤中,采用的聚类公式如下:
其中,初始化超边用户的簇划分为(C1,C2,…Ck),则目标最小化平方误差E;ui是簇Ci的均值向量;X是属于ci簇中心的所有超边用户,Xi为超边用户i,k是k个簇类中心。
进一步地,所述通过引入对比学习与图卷积进行预训练学习的步骤中,预训练阶段的损失函数包括两个部分:
第一部分BPRLoss的部分公式:
预训练阶段,对于用户ui和正样例商品以及负样例商品/>需要对输出的预测值进行监督训练,训练的损失定义如下:
BPRLoss:
式中,o表示:o={(u,i,j)|(u,i)∈R+,(u,j)∈R-},其中R+为观察到样本,R-为未观测到样本;(u,i)表示用户与其正样本对,(u,j)表示用户与其负样本对;(u,i,j)表示用户与其正样本对、用户与其负样本对;
第二个部分对比学习公式:
首先运用LSTM序列模型,将最后一个时间步的输出作为用户潜在嵌入向量;随机初始化的用户嵌入向量与同用户潜在嵌入向量为正样本,其他用户为负样本;
公式为:式中{(z′u,z″u)|u∈U}属于一对正样本,{(z′u,z″v)|u,v∈U,v≠u}属于一对负样本;其中s()余弦相似度是用于预测两个向量的相关性,τ是超参数。
进一步地,所述将划分好的每个时间段的超图子图,以及预训练学习的商品/用户初始嵌入向量,输入主模型中,进行超图卷积学习动态商品/用户嵌入向量,包括:
静态商品初始嵌入向量:
其中,/>为经过了多层超图卷积后的商品嵌入向量;/>表示静态商品初始嵌入向量;/>表示商品与用户的超图子图在时间刻tn,/>是对角矩阵表示超边的权重矩阵,/>表示商品与用户的超图子图在时间刻tn的转置,P0表示可学习的参数矩阵;τ为非线性激活函数;
超图卷积学习商品嵌入向量公式进一步拓展为:
动态商品初始嵌入向量:
其中,表示超图中节点的对角度矩阵,/>表示超图中超边的对角度矩阵,/>表示动态商品初始嵌入向量。
进一步地,所述通过融合层将静态/动态商品与静态/动态用户嵌入向量进行融合,得到用户与商品的交互嵌入向量,包括:
融合层:式中,/>表示静态用户初始嵌入向量,表示动态用户初始嵌入向量;
将和/>四者进行相加,最后得到每个用户与商品交互嵌入向量,其中i代表对用的商品ID;u代表对应的用户ID,tn为对应相互交互的时间。
进一步地,将用户与商品交互嵌入向量输入transformer模块,transformer模块中的注意力机制部分计算过程如下:
式中,表示用户与不同商品交互嵌入向量,计算两者的注意力系数;Wq、WK、WV表示可学习的参数矩阵,/>表示用户u与商品Lu嵌入向量,/>表示可学习的参数矩阵与用户u与商品j嵌入向量,d表示向量维度;
取最后一个时间t下,通过加权求和得到短时动态用户嵌入向量
将短中长三者相加:获得最终动态用户嵌入向量;其中,/>为中时动态用户嵌入向量,/>为长时动态用户嵌入向量。
进一步地,所述将最终动态用户嵌入向量与融合动态和静态的商品嵌入向量进行偏好预测,获得推荐顺序,包括:
使用BPRLoss作为损失函数进行对预测进行监督,以及将梯度反向传播到网络中进行参数更新;
预测公式:其中/>为动态商品,/>为静态商品嵌入向量;
BPRLoss的表达式为:
式中,o表示:Loss为损失值,o={(u,i,j)|(u,i)∈R+,(u,j)∈R-},其中R+为观察到样本,R-为未观测到样本;sigmoid为非线性激活函数;为用户与正样本对预测评分,为用户与负样本j的预测评分,λ为用来决定L2正则化损失的权重,Θ表示可学习参数。
进一步地,还包括构建端到端模型,利用训练数据进行参数学习与更新的步骤:
获取用户与商品的交互数据以及具体的时间数据,利用不同的时间段,构建用户与商品的超图子图;
将用户与商品交互数据输入预训练模型,将用户购买物品序列通过随机增强和扰动后,输入LSTM模型,输出用户潜在嵌入向量;接着进入对比学习模块,学习获得静态商品/用户嵌入向量;
通过超图卷积学习出每个时刻下的动态商品/用户的嵌入向量;通过融合层,将获得的嵌入向量融合后,得到用户与商品的交互嵌入向量;
利用transformer模块,通过滑动窗口实现短中长三个时间粒度下的动态用户嵌入向量,将三种动态用户嵌入向量结合后,与结合动态/静态的商品嵌入向量做点乘,使用BPRLoss作为损失函数进行监督,在训练集上利用梯度下降反向传播方进行模型参数学习,直到模型收敛。
本发明所采用的另一技术方案是:
一种基于超图神经网络的序列推荐装置,包括:
至少一个处理器;
至少一个存储器,用于存储至少一个程序;
当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现上所述方法。
本发明的有益效果是:本发明综合考虑了用户与商品交互的多时间粒度下的信息,先利用预训练阶段引入对比学习模块,更好地学习出静态用户与商品嵌入向量,使用户向量中包含用户与用户之间的相关性信息,既保证了特征的有效性,也降低了主模型上训练的时间复杂度。
附图说明
为了更清楚地说明本发明实施例或者现有技术中的技术方案,下面对本发明实施例或者现有技术中的相关技术方案附图作以下介绍,应当理解的是,下面介绍中的附图仅仅为了方便清晰表述本发明的技术方案中的部分实施例,对于本领域的技术人员而言,在无需付出创造性劳动的前提下,还可以根据这些附图获取到其他附图。
图1是本发明实施例中一种基于超图卷积的序列推荐商品预测的方法的流程图;
图2是本发明实施例中预训练阶段的示意图;
图3是本发明实施例中主模型模块的结构图;
图4是本发明实施例中一种基于超图神经网络的序列推荐方法的步骤流程图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。对于以下实施例中的步骤编号,其仅为了便于阐述说明而设置,对步骤之间的顺序不做任何限定,实施例中的各步骤的执行顺序均可根据本领域技术人员的理解来进行适应性调整。
在本发明的描述中,需要理解的是,涉及到方位描述,例如上、下、前、后、左、右等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
在本发明的描述中,若干的含义是一个或者多个,多个的含义是两个以上,大于、小于、超过等理解为不包括本数,以上、以下、以内等理解为包括本数。如果有描述到第一、第二只是用于区分技术特征为目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先后关系。
本发明的描述中,除非另有明确的限定,设置、安装、连接等词语应做广义理解,所属技术领域技术人员可以结合技术方案的具体内容合理确定上述词语在本发明中的具体含义。
如图4所示,本实施例提供一种基于超图神经网络的序列推荐方法,首先通过对商品与用户的交互数据以及具体的交互的时间数据构建超图子图,对于每个时间戳下的子图的超边进行K-Means聚类处理,从而压缩了图的稀疏程度;接着通过预训练阶段融入对比学习,增强了用户之间的互信息,获得静态用户/商品初始嵌入向量;进一步地在主模型中使用超图卷积学习商品与用户嵌入向量,并融合预训练得到静态用户/商品初始嵌入向量,得出用户与商品交互嵌入向量;进一步,将用户与商品交互序列输入到transformer模块,根据不同的时间滑动窗口,学习不同时间粒度下的动态用户嵌入向量,使得用户的特征融合了多时间粒度下的信息,最后将短中长融合成动态用户嵌入向量,丰富了用户的语义,提升了用户的商品预测的效果和准确率。该方法具体包括以下步骤:
S1、获取带有用户与商品交互信息、时间信息的数据集,根据获得的数据集构建超图,利用不同的时间段对超图进行划分。
直接获取数据集,通过开源数据集,获取带有用户与商品交互信息并有交互的具体时间信息的数据集,并过滤无效数据以及进行负采样;公开数据集,如goodreads_large、newAmazon数据集等,这几个数据集包含上述几种关系,经过数据预处理后可用于不同时间下的商品与用户超图子图构建中。
作为一种可选的实施方式,对于获取到的数据集,首先进行预处理操作;将数据集的时间进行划分,通过人为的将不同年份与12个月份进行归类和划分;便于后续的每个时间粒度下的超图子图构建。遍历所有数据取出每个用户与相应的物品以及交互的时间信息,将每个用户交互过的商品放入用户字典中,依次排序;同时交互的时间信息放入用户时间字典中保存用户与商品交互的时间信息。
得出用户字典后,我们对所有用户进行一一遍历,如果用户与商品的交互次数少于3的,我们将该用户进行剔除,可以一定程度上避免污染有效数据,减小数据的稀疏程度。对于有效数据,我们将每个用户与商品交互的倒数第二个之前的商品作为训练集,将倒数第二个商品作为验证集,将最后一个商品作为测试集,对应的交互时间信息也是按上述方式进行存放;我们构建用户,商品以及时间的表示:
用户:U={u1,u2,…uL,};其中,uj为第j个的用户嵌入向量,1≤j≤L,L为用户数量总数量;
商品:I={i1,i2,…iN,};其中,ij为第j个的商品嵌入向量,1≤j≤N,N为物品总数量;
时间:T={t1,t2,…tC,};其中,tj为第j个时间刻,1≤j≤C,C为时间总长度;
表示一个用户与商品的交互序列,按交互时间排序;其中/>为的物品ID为1的嵌入向量,m为物品ID;/>为用户n与商品1交互的时间t1。
S2、划分获得每个时间段的超图子图,对每个时刻下的超图子图中的超边用户进行聚类操作,以将相似的超边进行聚类。
自行收集或生成数据集,网络服务提供商可以自行收集数据,一般使用者则可以通过收集用户-商品交互数据与交互时间信息数据,通过时间划分构建用户与商品交互关系的超图子图。将划分好的每个时间段的超图子图,紧接着我们将对每个时刻下的超图子图中的超边用户使用K-Means算法进行聚类操作,把相似的超边进行聚类,从而更好的减少商品与用户超图的稀疏程度,压缩了超图的大小,加快了超图卷积的运算,更好的学习动态用户/商品的嵌入向量。
根据构建好的训练集,和划分好的时间,进行不同时间下的超图子图构建;在每个时间下,构建商品与用户超图子图;具体如下:
其中G表示每个时间t下的所构建的商品与用户的超图,t代表时间刻;
构造超图需要包含元素;其中每个时间刻下的超图G,由4个部分组成;/>代表在这个超图下的商品节点;/>代表在这个超图下的用户为代表的超边;tn代表时间刻;/>为商品与用户的邻接矩阵,n为商品个数,m为用户个数即对应的超边;
紧接着我们将对每个时刻下的商品与用户超图子图中的超边,即用户进行聚类操作,使用K-Means算法,从而更好的减少超图的稀疏程度,把相似的商品进行聚合;
kmean公式:
其中我们先初始化假设超边用户的簇划分为(C1,C2,…Ck),则目标最小化平方误差E,其中ui是簇Ci的均值向量,称为质心;通过启发式的迭代方法多次后,将超图里的超边用户进行聚类。
S3、通过引入对比学习与图卷积进行预训练学习,获得商品与用户的初始嵌入向量。
每个超图子图构建完成后,我们进入预训练阶段,预训练的作用主要在于可以避免主模型训练时候,随机初始化商品初始嵌入向量与用户初始嵌入向量,对模型训练存在随机性的问题,减少冷启动,以及加快模型训练收敛速度;同时我们的预训练映入了对比学习模块,可以在传统的BPRLoss的训练基础上,通过对比学习学习用户之间相关性的信息,更好的学出不同用户之间的表征向量;预训练阶段的主要包含两步骤:
预训练阶段,随机采样用户后,遍历每一个用户与商品的交互,随机抽取一个正样本与负样本,组成一个三个元素的列表输入到预训练模型中;
预训练阶段模型,损失函数主要包括两个部分组成PretrainLoss=BPRLoss+CLoss;第一部分主要通过随机抽取的n个用户,通过将用户初始嵌入向量与正负商品的初始嵌入向量做点乘得到的用户对商品的分数,用BPRLoss对模型进行监督。训练的BPRLoss损失可以如下定义:
BPRLoss:这里的o表示:o={(u,i,j)|(u,i)∈R+,(u,j)∈R-},其中R+为观察到样本,R-为未观测到样本;σ为非线性激活函数;Θ表示/>可学习参数,使用L2正则化简小模型的过拟合问题。
第二部分对比学习的CLoss,需先对用户与商品交互数据进行处理;随机抽取50个用户,相同2个用户放在用户正样本中,不同2个用户放在负样本中,用户交互的商品用列表表示。
将2个用户与商品交互序列输入到LSTM模型中,取出LSTM模型中的最后一个嵌入向量,作为两个用户的嵌入向量,两者进行向量点乘,再通过非线性激活函数,判断两个序列是否为同一个用户;通过与正标签做交叉熵损失函数进行监督,根据梯度反向传播到网络中,用于更新对比学习模块中的参数。
公式:其中{(z′u,z″u)|u∈U}属于一对正样本,{(z′u,z″v)|u,v∈U,v≠u}属于一对负样本。最后预训练损失由上述两部分共同组成,通过梯度反向传播来更新网络中的参数。
S4、将划分好的每个时间段的超图子图,以及预训练学习的商品/用户初始嵌入向量,输入主模型中,进行超图卷积学习动态商品/用户嵌入向量;通过融合层将静态/动态商品与静态/动态用户嵌入向量进行融合,得到用户与商品的交互嵌入向量。
主模型阶段包括样本采样;超图卷积学习动态用户/商品嵌入向量;融合层:将静态/动态的用户与静态/动态的商品嵌入向量进行融合,构建用户与商品交互嵌入向量;将用户与商品的序列输入transfomer模块,通过不同的时间滑动窗口,得出不同时间粒度下的动态用户嵌入向量,将短中长三个时间粒度进行融合,得到最终的动态用户嵌入向量,与商品嵌入向量做预测,以下是具体步骤:
第一步,进行样本采样。在所有用户的交互顺序序列中,随机选取n个用户,取出他们交互序列中,对于每个序列中交互的顺序值,选出该交互的商品以及对应的时间;接着遍历十个负样本,随机抽取一个负样本。
采样阶段完成后,将采样的样本数据输入到主模型中;
模型的第一步是提取采样样本数据,在预训练阶段学习出的静态商品/用户嵌入向量,作为主模型中的初始嵌入向量。从而避免随机初始化的随机性和偶然性的问题;减少冷启动,以及加快模型训练收敛速度;同时,对比学习模块提取了用户之间的互信息;他们的表示如下:
静态商品初始化嵌入向量:n代商品ID;
静态用户初始化嵌入向量:n代用户ID;
遍历所有时间段,抽取该时间段内交互过的采样用户和商品的初始嵌入向量。
将静态用/商品嵌入向量,与超图子图一同输入到超图卷积模块;
首先,商品嵌入向量经过一层全联接层进行线性变换,全联接层维度是(100,100)得出的商品嵌入向量维度保持(n,100);接着商品嵌入向量输入超图卷积中,与超图矩阵相乘,进过一层的超图卷积后,得到的商品嵌入向量过一层relu非线性激活函数,使得数据具有非线性;具体公式如下:
其中/>保存最开始的商品嵌入向量;/>为经过了多层超图卷积后的商品嵌入向量;P0表示可学习的参数矩阵;τ为非线性激活函数。
接着,我们将过了一层超图卷积的商品嵌入向量,进入第二层超图卷积,层数作为超参可以调整;重复这个过程数次,得到不同层级下的结点嵌入矩阵。
对于用户方来说,我们将超图与预训练的静态商品嵌入向量进行超图卷积,学出了动态用户嵌入向量;最后过一层relu非线性激活,得到超图卷积后的短时动态用户嵌入向量;
超图卷积学习用户的嵌入向量公式进一步拓展为:
公式:
接着,将每个时间刻下学到的动态用户/商品嵌入向量,放入用户嵌入向量字典与商品嵌入向量字典。
将每次实验中,在每个批次,用户与商品交互序列的索引值在商品嵌入向量字典里,可以对应找到商品的嵌入向量;输出的维度是3纬张量n×50×100;n是采样的数量,每个用户是一个50×100的矩阵,每行代表一个交互商品嵌入向量。
对于静态商品嵌入向量,我们同样的通过将原始数据中的用户与商品交互的序列n×50,在预训练中学习得到的静态商品字典中,得到静态商品嵌入向量n×S0×100。
对于用户端,我们通过采样用户的索引值,找到静态/动态用户嵌入向量。
接下来,我们将静态/动态用户嵌入向量,静态/动态商品嵌入向量,四个向量进行结合,学出的用户与商品交互嵌入向量,这个方法的具体思路是:
融合层公式:将四者按权重进行相加,得到用户与商品交互嵌入向量。
S5、将用户与商品交互嵌入向量输入transformer模块中,根据不同的时间滑动窗口,学习获得短中长三种动态用户嵌入向量,将三种动态用户嵌入向量融合成最终动态用户嵌入向量。
将用户与商品交互序列输入transformer模块中,通过滑动窗口的操作,得出短中长时间段的动态用户嵌入向量,将三者融合成最终的动态用户嵌入向量,与动态/静态融合的商品嵌入向量做对商品喜欢预测;使用BPRLoss作为损失函数进行监督,然后将梯度反向传播到网络中进行参数更新。
引入transformer模块,我们对用户与商品交互的序列进行部分交互行为进行mask的操作,每个用户的序列长度保持一致,具体操作如下:
对于用户与商品交互序列,对于每一行我们先将不为0的值用True值表示,在通过维度进行转化,变成n×1×50,我们将用户与商品交互序列星乘mask向量,获得经过mask处理的用户与商品交互序列。
接下来,我们进入transform模块,该模块我们分别在三个时间粒度上进行;对用户与商品交互的序列运用transform模型来进行多维时间特征提取,最终获取整个序列的特征表示,作为一个用户结合该时间粒度下长序信息的嵌入向量,具体步骤如下:
首先是短时序列上的特征提取,考虑用户与单个商品交互行为,滑动窗口设置为1。
将融合层得到用户与商品交互序列n×50×100,输入transformer模块之前;通过单个交互进行累加,由于第一步是短时序列,因此累加就是自身的值,最终的维度保持n×50×100;再将这个用户与商品交互嵌入序列输入transformer模块中。
用户与商品交互序列输入第一层transformer模块后,输出的结果维度为n×50×100经过多次transformer模块后,我们的输出维度依旧是n×50×100。
由于我们需要从用户交互行为的提取最终的动态用户嵌入向量,因此我们通过将结果的维度进行压缩,得到最后一个的结果维度是n×100。其中注意力机制的计算公式如下:
公式:
其中,
其中分别三个全局共享的可训练参数矩阵,/> 其中dmodel是用户与商品交互嵌入向量的维度,k是参数矩阵的维度;
具体计算公式:
其中表示一个用户在不同时间段与不同商品的交序列;/>表示用户与不同的商品交互嵌入向量,计算两者的注意力系数;最后取最后一个时间t下,通过加权求和得到动态用户嵌入向量/>
对于中等时序,滚动的时间窗口为2天,与滚动窗口为一天的短时的整体思路一致;最终输出的结果维度为n×25×100,再进行维度的压缩,得到最后一个结果n×100。
同理,对于长时序列,滑动窗口为5天,最后得到的结果维度为n×10×100,再进行维度的压缩,得到最后的一个结果n×100。
进一步地,将短中长三个时间序列的特征提取进行相加,最终得出的动态用户嵌入向量,不仅包含了短时间的用户兴趣信息,还包含了用户中长时间的兴趣特征提取,更加丰富了用户的语义信息n×100。
接着根据随机采样的正样本m个item的id值,获取这m个静态/动态商品的嵌入向量m×100;同理m个负样本获取静态/动态商品嵌入向量m×100。
S6、将最终动态用户嵌入向量与融合动态和静态的商品嵌入向量进行偏好预测,获得推荐顺序。
接着将动态与静态商品嵌入向量进行相加,构建商品的最终商品嵌入向量;最终,利用用户嵌入向量与商品嵌入向量进行点乘,对商品的偏好进行预测。
计算公式:
最后构建,损失函数:BPRLoss:
这里的o表示:Loss为损失值,o=((u,i,j)|(u,i)∈R+,(u,j)∈R-},其中R+为观察到样本,R-为未观测到样本;sigmoid为非线性激活函数;Θ表示可学习参数,使用L2正则化简小模型的过拟合问题。
S7、构建端到端的模型,利用训练数据进行参数学习与更新。
将用户与商品的交互数据以及具体的时间数据,利用不同的时间段,构建用户与商品超图子图;首先将用户与商品交互数据输入预训练模型,将用户购买物品序列通过随机增强和扰动后,输入LSTM模型,输出用户潜在嵌入向量;接着进入对比学习模块,通过拉近与自身嵌入向量为正样本,其他用户嵌入向量为负样本,来增强自身的特征提取;预训练的另一个损失由BPRLoss组成,最终通过优化这两个损失,将梯度反向传播到网络中,来学习出静态商品/用户嵌入向量。接着通过超图卷积学习出每个时刻下的动态商品/用户的嵌入向量;通过融合层,将四者融合后得到用户与商品的交互嵌入向量;接着利用transformer模块,通过滑动窗口实现短中长三个时间粒度下的,动态用户嵌入向量,三者结合后,与结合动态/静态的商品嵌入向量做点乘,使用BPRLoss作为损失函数进行监督,在训练集上利用梯度下降反向传播方进行模型参数学习,直到模型收敛。
以下结合附图及具体实施例对上述方法进行说明。
如图1所示,本实施例提供一种基于超图卷积的序列推荐商品预测的方法,具体包括:
(1)、数据准备:
直接获取数据集,通过开源数据集,获取带有用户与商品交互信息并有交互的具体时间信息的数据集,并过滤无效数据以及进行负采样;直接收集现有的公开数据集,如goodreads_large、newAmazon数据集等,这几个数据集包含上述几种关系,经过数据预处理后可用于不同时间下的商品与用户超图构建中。
具体如下:
对于获取到的数据集,首先进行预处理操作;遍历每条用户与物品交互数据后,将数据集的时间进行划分,通过人为的将不同年份和12个月份进行归类和划分。
遍历所有数据取出每个用户与相应的物品以及交互的时间信息,将每用户交互的商品放入用户字典中,依次排序;同时交互的时间信息放入用户_时间字典中保存用户与商品交互的时间信息。
用户:U={u1,u2,…ul,};其中,un为第n个用户嵌入向量,1≤t≤L,L为用户数量总数量。
商品:I={i1,i2,…im,};其中,in为第n个商品嵌入向量,1≤n≤m,m为物品总数量。
时间:T={t1,t2,…tc,};其中,tc为第c个时间刻,1≤n≤c,c为时间总长度。
表示一个用户与商品的交互序列,按交互时间排序;其中/>为的物品ID为1的嵌入向量,m为物品ID;/>为用户n与商品1交互的时间t1。
得出用户字典后,我们对所有用户进行一一遍历,如果用户与商品的交互次数少于三次的,我们将该用户进行剔除,可以一定程度上避免污染有效数据,减小数据的稀疏程度。
对于有效数据,我们将每个用户与商品交互的倒数第二个之前的商品作为训练集,将倒数第二个商品作为验证集,将最后一个商品作为测试集,对应的交互时间信息也是按上述方式进行存放。
进一步地,根据构建好的训练集和划分好的时间,进行不同时间下的超图子图构建。在每个时间下,分别构建商品与用户的超图子图;表示如下:
其中G表示每个时间t下的所构建的商品与用户的超图,t代表时间刻。/>
其中每个时间刻下的超图G,由4个部分组成;/>代表在这个超图下的商品节点;/>代表在这个超图下的用户为代表的超边;tn代表时间刻;/>为商品与用户的邻接矩阵,n为商品个数,m为用户个数即对应的超边。
进一步地,我们将对每个时刻下的商品与用户超图子图中的超边用户进行聚类操作。运用机器学习中K-Means算法,从而更好的减少超图的稀疏程度,把相似的商品进行聚合;最终每个时刻的超图子图中用户的数量会变成k个,k为超参数,本案例设为200。
kmean公式:
其中我们先初始化假设超边用户的簇划分为(C1,C2,…Ck),k的数量是超参数,目标最小化平方误差E,其中ui是簇Ci的均值向量,称为质心;通过启发式的迭代方法多次后,将超图里的超边用户进行聚类。
k的计算方式如下:每个时刻下,用户数量整除与五;如果大于200,则把用户数量聚类成200个;若原本数量小于200,则直接等于用户数量;
每个超图子图构建完成后,我们首先进行预训练阶段。
(2)预训练阶段学习得出商品与用户的初始嵌入向量:
预训练的作用主要包括:
第一,避免主模型训练时,随机初始化商品嵌入向量与用户嵌入向量,随机初始化会导致训练可能难收敛,消耗时间长的问题。
第二,引入了对比学习模块后,可以考虑到用户之间的关联性,通过拉近相近客户的嵌入向量,拉远不相似客户的嵌入向量,使得学习出的用户嵌入向量可以更好的结合用户间的高阶语义信息,融入相关性信息。
参见图2,预训练阶段的主要包含三个步骤:
第一步预训练阶段采样,预训练阶段,一个训练批次的样本数量为n,遍历每一个用户与商品的交互,随机抽取一个正样本与负样本,输入到预训练模型中。
预训练模型中包含对比学习步骤,因此需先对用户与商品交互数据进行处理;遍历n个用户,相同2个用户放在用户正样本中,不同2个用户放在负样本中。
第二步,预训练阶段模型,损失函数主要包括两个部分Pretrain_loss=BPR_loss+CLoss
BPR_loss主要通过随机抽取的n个用户与商品,通过nn.Embedding随机初始化用户与商品的初始嵌入向量,通过将用户嵌入向量与正负商品的嵌入向量做点乘,得到的分数,运用BPR_loss来对模型进行监督;具体公式如下:
BPRLoss:这里的o表示:o={(u,i,j)|(u,i)∈R+,(u,j)∈R-},其中R+为观察到样本,R-为未观测到样本;σ为非线性激活函数;Θ表示/>可学习参数,使用L2正则化简小模型的过拟合问题。
第三步,对比学习的损失计算;遍历所有的采样样本,抽取其中2个用户;将他们交互的商品序列取出来,两个用户交互过的商品序列,做随机替代的操作,给予序列数据增强的作用。
分别将两个用户与商品交互的序列输入到LSTM模型中,分别取出经过LSTM模型最后一个嵌入向量,作为两个用户的嵌入向量。
进一步地,得出的两个嵌入向量进行向量点乘,再通过sigmoid非线性激活函数,判断两个序列是否为同一个序列;最后通过与正负式标签做交叉熵损失函数对模型进行监督,进行梯度的更新。
公式:其中{(z′u,z″u)|u∈U}属于一对正样本,((z′u,z″v)|u,v∈U,v≠u}属于一对负样本;其中s余弦相似度是用于预测两个向量的相关性,τ是超参数,类似softmax的效果。
预训练阶段,通过上述2个损失函数共同组成,PretrainLoss=BPRLoss+CLoss;监督模型训练,最后根据梯度反向传播进行参数的更新;通过梯度反向传播学习网络参数,直到收敛。
(3)、通过超图卷积得出动态用户/商品嵌入向量;通过融合层进行结合,获得用户与商品交互嵌入向量:
参见图3,将划分好的每个时间段的超图子图,与预训练获得的商品/用户初始嵌入向量,一同输入主模型中;进行超图卷积学习动态商品/短期用户嵌入向量,再通过融合层将静态/动态商品与短期用户嵌入向量进行融合,得到用户与商品的交互嵌入向量;具体步骤如下:
将预训练阶段得到的静态商品/用户初始嵌入向量,与超图子图一同输入到超图卷积模块;静态商品初始化嵌入向量:用户初始化嵌入向量:/> 其中t表示不同时间的交互。
首先静态商品初始嵌入向量过一层全联接层,全联接层维度是100×100,得出的商品的嵌入向量纬度保持是n×100,接着商品嵌入向量输入超图卷积中,进行矩阵相乘;这里我们使用torch.sparse.mm()接口;进过一层的超图卷积后,学出来的商品嵌入向量再过一层relu非线性激活函数,使得数据具有非线性;具体公式如下:
其中/>保存最开始的商品嵌入向量;/>为经过了多层超图卷积后的商品嵌入向量;P0表示可学习的参数矩阵;τ为非线性激活函数。
超图卷积学习商品嵌入向量公式进一步拓展为:
公式:
进一步地,我们将过了一层超图卷积的商品嵌入向量,进入第二层超图卷积,层数作为超参可以调整;重复这个过程数次,得到不同层级下的结点嵌入矩阵,每层超图卷积输出对应不同结点特征,浅层的特征更好地描述结点本身以及与结点直接相连的邻居特征,而深圳特征得到的是结点的高阶抽象特征,更好的表达商品的嵌入向量;
最终获得动态商品嵌入向量:
对于用户方来说,我们将用户超图与学好的动态商品嵌入向量进行矩阵相乘,学出了动态用户嵌入向量;最后过一层relu非线性激活,得到超图卷积后的动态用户嵌入向量;超图卷积学习用户的嵌入向量公式进一步拓展为:
公式:
最终获得动态用户嵌入向量:
进一步地,将每个时间刻下,动态用户与商品的嵌入向量与静态用户与商品嵌入向量,进行拼接,将会得到用户嵌入向量字典与商品嵌入向量字典。
每次训练中,每个批次的用户与商品的交互序列输入到商品嵌入向量字典,通过样本中的交互序列,每行商品的id值,可以对应找到索引值的商品嵌入向量;最终输出的维度是3维张量n×50×100,n是样本的数量,每个样本里是一个50×100的矩阵,每行代表一个交互商品的嵌入向量。
对于用户端,同理我们将用户id,输入到动态用户嵌入向量字典,选取对应的用户嵌入向量n×50×100。
接下来,我们将上方学习出得静态/动态用户嵌入向量,静态/动态商品嵌入向量,四个向量进行相加,学出的用户与商品交互嵌入向量,这个方法的具体步骤如下:
将四个向量进行相加,融合层公式:最后得到用户与商品交互嵌入向量。
(4)、将用户与商品交互序列输入transfomrer模块,根据不同的时间粒度进行窗口滑动,从而获得不同时间粒度下动态用户嵌入向量,将不同时间粒度下的动态用户嵌入向量进行合并,获得带有短中长时间信息的用户嵌入向量:
在输入transformer模块前,我们需要对用户与商品交互的序列进行部分交互行为进行mask的操作,使得输入的序列长度保持一致,具体操作如下:
对于用户与商品交互序列,对于每一行我们先将不为0的值用bool值表示,在通过压缩对维度进行转化,变成n×1×50,我们再将学好的用户与商品交互嵌入向量星乘,获得经过mask处理的用户与商品交互嵌入向量。
进一步地,我们将会进入transform模块,该模块我们分别在三个时间纬度上进行;对一个用户交互的序列运用transform模型来进行特征提取,通过transform内在的位置编码,可以让商品嵌入向量中保存时间与顺序信息;以及注意力机制可以学习到序列中的商品与商品之间的内在关系。
注意力机制可以更好的提取用户长时和短时间的信息,保证提取的信息不会因为时序过长,导致前列信息失效;从而更加丰富用户的语义,最终获取整个序列的特征表示作为一个用户结合来长短时序信息的嵌入向量,具体步骤如下:
根据短中长三个时间滑动窗口,首先是短时序上的特征提取,考虑单个交互行为,滑动窗口数为1。
通过torch.sum用于商品交互序列进行累加。由于第一步是短时序列,因此累加就是自身的值,最终的维度依旧是n×50×100;再将累计后的用户与商品交互序列输入transformer模块中。
Transformer模块我们使用的是pytorch中自带的api接口nn.tranformerencoderlayer;(in_features=100,out_features=100,bias=true),多头注意力机制的头数是超参,设为1,内部设置2层全联接,第一层为100×n;第二层n×100;dropout rate为0.1;初始化两层transformer层。
用户与商品交互序列输入第一层transformer模块后,输出的结果维度为n×50×100。
进一步地,将新得到的结果输入到第二层transformer层中;得到的最终结果维度依旧是n×50×100;
由于我们只需要从用户交互行为的提取最终的动态用户嵌入向量,因此我们通过将结果的维度进行压缩,得到最后一个作为输出n×100。其中transform模型中注意力机制计算如下:
公式:
其中,
其中/>分别三个全局共享的可训练参数矩阵,/>其中dmodel是用户与商品交互嵌入向量的维度,k是参数矩阵的维度;得到每个商品嵌入向量的query,key,和value三个向量后,query向量用于匹配每一个key向量,两者点乘,用于求出query向量与key向量的相关性权重大小,再与value向量进行点乘后,得到相关性大小,运用softmax激活函数得出对应的权重值;加权求和更新得出每一个商品嵌入向量;最后通过多头对每一个头进行平接后,与Wo参数矩阵,/>
具体计算公式: 得出的是用户u在不同商品交互下的注意力权重;/>其中/>表示一个用户在不同时间段与不同商品的交序列;/>表示不同的用户与商品的交互嵌入向量,/>为该用户与别的商品交互嵌入向量,计算两者的注意力系数;最后取最后一个时间t下,通过加权求和得到动态用户嵌入向量/>
对于中时序列,滚动的时间窗口为2天,与上述单日滚动的整体思路一致;最终输出的结果维度为n×25×100;再进行维度的压缩,得到最后一个输出n×100。
同理,对于长时序列,滑动窗口为5天,最后得到的结果维度为n×10×100,再进行维度的压缩,得到最后的一个为输出n×100。
将短中长三个时间序列的特征提取进行相加。最终得出的动态用户嵌入向量,不仅包含了短时的用户兴趣,还包含了用户中长时间的兴趣特征提取,丰富了用户的语义信息。
(5)、主模型模块---预测模块:使用动态用户嵌入向量与商品嵌入向量进行偏好预测,并得到推荐顺序:
接着根据随机采样的正样本n个item的id值,获取这n个商品的嵌入向量n×100;同理n个负样本,获取负样本的商品嵌入向量n×100。
接着将正样本n×100与负样本n×100的动态与静态分别进行相加,构建商品的最终商品嵌入向量。
对于正样本,用动态用户嵌入向量n×100星乘正样本的商品嵌入向量n×100在用torch.sum(axis=-1)进行每行累加,最终得到用户对n个商品的得分pos_logit;对于负样本商品n×100来说,动态用户嵌入向量负样本商品嵌入向量进行星乘,得到用户对n个负样本商品的评分。
最后构建主模型BPRLoss损失函数,用于对模型的监督与训练,根据反向梯度传播进行参数的更新,实现模型的收敛。
公式:公式:BPRLoss:/> 这里的o表示:Loss为损失值,o={(u,i,j)|(u,i)∈R+,(u,j)∈R-},其中R+为观察到样本,R-为未观测到样本;sigmoid为非线性激活函数;Θ表示/>可学习参数,使用L2正则化简小模型的过拟合问题。
进一步地,构建端到端模型,利用训练数据进行参数学习与更新,具体为:
将用户与商品的交互数据以及具体的时间数据,利用不同的时间段,构建商品与用户超图。首先将用户与商品交互数据输入预训练模型,将用户与商品交互序列通过随机增强和扰动后,输入LSTM模型,输出用户嵌入向量。接着映入对比学习模块,将其输入对比学习模块,通过拉近自身交互序列为正样本,其余用户为负样本,来增强自身的特征提取,使用户向量中包含用户与用户之间的相关性信息;预训练的另一个损失由BPRLoss组成,最终通过优化这两个损失,来学习出静态用户与商品嵌入向量;接着通过超图卷积学习出每个时刻下的动态商品与用户的嵌入向量,最终通过融合层,利用注意力机制将四者融合后得到用户与商品交互嵌入向量;接着利用transformer模块,根据不同的时间粒度,学习整个序列的最终用户表达形式,将短中长动态用户嵌入向量进行相加;将其与结合动态静态的商品嵌入向量做点乘,在训练集上利用随机梯度下降方进行模型参数学习,直到模型收敛。
由上可知,本实施例方法综合考虑了用户与商品交互的多时间粒度下的信息,先利用预训练阶段引入对比学习模块,更好的学习出静态商品与静态用户初始嵌入向量,既保证了特征的有效性,也融入了用户之间的相互关系,同时降低了主模型上训练的时间耗时,与模型收敛复杂度;主模型上利用多时间维度的超图卷积提取商品与用户的有效信息,将结点的邻居信息进行了多阶聚合,浅层的特征更好的描述结点自身以及结点直接相连的邻居特征,而深层特征得到的是结点的高阶抽象特征,从而丰富了商品与用户的嵌入向量;接着通过融合层将静态商品/动态商品与静态/动态用户四者关系进行融合得到用户与商品交互嵌入向量,最后将其输入transformer模块,不同的时间粒度下进行合并,丰富了用户的语义与特征,获得动态用户嵌入向量;最后通过BPRLoss来预测用户下一个购买的商品。
本实施例还提供一种基于超图神经网络的序列推荐装置,包括:
至少一个处理器;
至少一个存储器,用于存储至少一个程序;
当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现图4所示方法。
本实施例的一种基于超图神经网络的序列推荐装置,可执行本发明方法实施例所提供的一种基于超图神经网络的序列推荐方法,可执行方法实施例的任意组合实施步骤,具备该方法相应的功能和有益效果。
在一些可选择的实施例中,在方框图中提到的功能/操作可以不按照操作示图提到的顺序发生。例如,取决于所涉及的功能/操作,连续示出的两个方框实际上可以被大体上同时地执行或所述方框有时能以相反顺序被执行。此外,在本发明的流程图中所呈现和描述的实施例以示例的方式被提供,目的在于提供对技术更全面的理解。所公开的方法不限于本文所呈现的操作和逻辑流程。可选择的实施例是可预期的,其中各种操作的顺序被改变以及其中被描述为较大操作的一部分的子操作被独立地执行。
此外,虽然在功能性模块的背景下描述了本发明,但应当理解的是,除非另有相反说明,所述的功能和/或特征中的一个或多个可以被集成在单个物理装置和/或软件模块中,或者一个或多个功能和/或特征可以在单独的物理装置或软件模块中被实现。还可以理解的是,有关每个模块的实际实现的详细讨论对于理解本发明是不必要的。更确切地说,考虑到在本文中公开的装置中各种功能模块的属性、功能和内部关系的情况下,在工程师的常规技术内将会了解该模块的实际实现。因此,本领域技术人员运用普通技术就能够在无需过度试验的情况下实现在权利要求书中所阐明的本发明。还可以理解的是,所公开的特定概念仅仅是说明性的,并不意在限制本发明的范围,本发明的范围由所附权利要求书及其等同方案的全部范围来决定。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行***、装置或设备(如基于计算机的***、包括处理器的***或其他可以从指令执行***、装置或设备取指令并执行指令的***)使用,或结合这些指令执行***、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行***、装置或设备或结合这些指令执行***、装置或设备而使用的装置。
计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行***执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的上述描述中,参考术语“一个实施方式/实施例”、“另一实施方式/实施例”或“某些实施方式/实施例”等的描述意指结合实施方式或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施方式或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施方式或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施方式或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施方式,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施方式进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。
以上是对本发明的较佳实施进行了具体说明,但本发明并不限于上述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。
Claims (3)
1.一种基于超图神经网络的序列推荐方法,其特征在于,包括以下步骤:
获取带有用户与商品交互信息、时间信息的数据集,根据获得的数据集构建超图,利用不同的时间段对超图进行划分;
划分获得每个时间段的超图子图,对每个时刻下的超图子图中的超边用户进行聚类操作,以将相似的超边进行聚类;
通过引入对比学习与图卷积进行预训练学习,获得商品与用户的初始嵌入向量;
将划分好的每个时间段的超图子图,以及预训练学习的商品/用户初始嵌入向量,输入主模型中,进行超图卷积学习动态商品/用户嵌入向量;通过融合层将静态/动态商品与静态/动态用户嵌入向量进行融合,得到用户与商品的交互嵌入向量;
将用户与商品交互嵌入向量输入transformer模块中,根据不同的时间滑动窗口,学习获得短中长三种动态用户嵌入向量,将三种动态用户嵌入向量融合成最终动态用户嵌入向量;
将最终动态用户嵌入向量与融合动态和静态的商品嵌入向量进行偏好预测,获得推荐顺序;
所述根据获得的数据集构建超图,包括:
对数据集进行预处理,将经过预处理的数据集用于不同时间下的商品与用户超图子图构建中;
所述将经过预处理的数据集用于不同时间下的商品与用户超图子图构建中,包括:
用户:U={u1,u2,…uL};其中,uj为第j个的用户嵌入向量,1≤j≤L,L为用户数量总数量;
商品:I={i1,i2,…iN};其中,ij为第j个的商品嵌入向量,1≤j≤N,N为物品总数量;
时间:T={t1,t2,…tC};其中,tj为第j个时刻,1≤j≤C,C为时间总长度;
表示一个用户与商品的交互序列,按交互时间排序;其中,/>表示的商品ID为m的嵌入向量;/>表示用户n与商品m交互的时间;
其中G表示每个时间t下的所构建的商品与用户的超图子图,t代表时刻,/>表示在时刻tc下,商品与用户的超图子图;
所述对每个时刻下的超图子图中的超边用户进行聚类操作的步骤中,采用的聚类公式如下:
其中,初始化超边用户的簇划分为(C1,C2,…Ck),则目标最小化平方误差E;ui是簇Ci的均值向量,i∈(1,k);X表示所有的超边用户,Xi为第i个超边用户,k是k个簇类中心;所述将划分好的每个时间段的超图子图,以及预训练学习的商品/用户初始嵌入向量,输入主模型中,进行超图卷积学习动态商品/用户嵌入向量,包括:
静态商品初始嵌入向量:
其中,/>为经过了多层超图卷积后的商品嵌入向量;表示时刻tn商品k的静态商品初始嵌入向量;/>表示商品与用户的超图子图在时刻tn,是对角矩阵表示超边的权重矩阵,/>表示商品与用户的超图子图在时刻tn的转置,P0表示可学习的参数矩阵;τ为非线性激活函数;
超图卷积学习商品嵌入向量公式进一步拓展为:
动态商品初始嵌入向量:
其中,表示超图中节点的对角度矩阵,/>表示超图中超边的对角度矩阵,表示时刻tn经过超图卷积l后商品k的动态商品初始嵌入向量;
用户初始化嵌入向量: 为时刻tn用户s的用户初始化嵌入向量;
动态用户嵌入向量: 为时刻tn经过超图卷积l后用户s的动态用户嵌入向量;
所述通过融合层将静态/动态商品与静态/动态用户嵌入向量进行融合,得到用户与商品的交互嵌入向量,包括:
融合层:式中,/>表示静态用户初始嵌入向量,/>表示动态用户初始嵌入向量;
将和/>四者进行相加,最后得到每个用户与商品交互嵌入向量,其中i代表对应的商品ID;u代表对应的用户ID,tn为对应相互交互的时间;
将用户与商品交互嵌入向量输入transformer模块,transformer模块中的注意力机制部分计算过程如下:
式中,表示用户与不同商品交互嵌入向量,计算两者的注意力系数;Wq、WK、WV表示可学习的参数矩阵,/>表示用户u与商品Lu嵌入向量,/>表示可学习的参数矩阵与用户u与商品j嵌入向量,d表示向量维度;
取最后一个时间t下,通过加权求和得到短时动态用户嵌入向量
将短中长三者相加:获得最终动态用户嵌入向量;其中,/>为中时动态用户嵌入向量,/>为长时动态用户嵌入向量;
所述将最终动态用户嵌入向量与融合动态和静态的商品嵌入向量进行偏好预测,获得推荐顺序,包括:
使用BPRLoss作为损失函数进行对预测进行监督,以及将梯度反向传播到网络中进行参数更新;
预测公式:其中/>为动态商品,/>为静态商品嵌入向量,T是转置。
2.根据权利要求1所述的一种基于超图神经网络的序列推荐方法,其特征在于,还包括构建端到端模型,利用训练数据进行参数学习与更新的步骤:
获取用户与商品的交互数据以及具体的时间数据,利用不同的时间段,构建用户与商品的超图子图;
将用户与商品交互数据输入预训练模型,将用户购买物品序列通过随机增强和扰动后,输入LSTM模型,输出用户潜在嵌入向量;接着进入对比学习模块,学习获得静态商品/用户嵌入向量;
通过超图卷积学习出每个时刻下的动态商品/用户的嵌入向量;通过融合层,将获得的嵌入向量融合后,得到用户与商品的交互嵌入向量;
利用transformer模块,通过滑动窗口实现短中长三个时间粒度下的动态用户嵌入向量,将三种动态用户嵌入向量结合后,与结合动态/静态的商品嵌入向量做点乘,使用BPRLoss作为损失函数进行监督,在训练集上利用梯度下降反向传播方进行模型参数学习,直到模型收敛。
3.一种基于超图神经网络的序列推荐装置,其特征在于,包括:
至少一个处理器;
至少一个存储器,用于存储至少一个程序;
当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现权利要求1-2任一项所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210668287.XA CN115082147B (zh) | 2022-06-14 | 2022-06-14 | 一种基于超图神经网络的序列推荐方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210668287.XA CN115082147B (zh) | 2022-06-14 | 2022-06-14 | 一种基于超图神经网络的序列推荐方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115082147A CN115082147A (zh) | 2022-09-20 |
CN115082147B true CN115082147B (zh) | 2024-04-19 |
Family
ID=83251505
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210668287.XA Active CN115082147B (zh) | 2022-06-14 | 2022-06-14 | 一种基于超图神经网络的序列推荐方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115082147B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115545300B (zh) * | 2022-09-30 | 2023-07-11 | 哈尔滨工业大学(深圳)(哈尔滨工业大学深圳科技创新研究院) | 一种基于图神经网络进行用户行为预测的方法及装置 |
CN115858926B (zh) * | 2022-11-29 | 2023-09-01 | 杭州电子科技大学 | 基于用户的复杂多模式兴趣提取与建模的序列推荐方法 |
CN116204729B (zh) * | 2022-12-05 | 2024-05-10 | 武汉光谷康服信息科技有限公司 | 一种基于超图神经网络的跨领域群组智能推荐方法 |
CN116055224B (zh) * | 2023-03-29 | 2023-06-16 | 山东省计算中心(国家超级计算济南中心) | 基于时空超图卷积的加密应用程序行为流量检测方法 |
CN116257659A (zh) * | 2023-03-31 | 2023-06-13 | 华中师范大学 | 一种智能导学***的动态图嵌入方法及*** |
CN116108283B (zh) * | 2023-04-13 | 2023-10-13 | 苏州大学 | 一种序列推荐的不确定性感知对比学习方法 |
CN116541593B (zh) * | 2023-04-28 | 2024-05-31 | 华中师范大学 | 一种基于超图神经网络的课程推荐方法 |
CN116662676A (zh) * | 2023-06-09 | 2023-08-29 | 北京华品博睿网络技术有限公司 | 一种基于多行为建模的在线招聘双向互惠推荐***及方法 |
CN117474637B (zh) * | 2023-12-28 | 2024-04-16 | 中国海洋大学 | 基于时序图卷积网络的个性化商品推荐方法及*** |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112990972A (zh) * | 2021-03-19 | 2021-06-18 | 华南理工大学 | 一种基于异构图神经网络的推荐方法 |
CN113672811A (zh) * | 2021-08-24 | 2021-11-19 | 广东工业大学 | 一种基于拓扑信息嵌入的超图卷积协同过滤推荐方法、***及计算机可读存储介质 |
-
2022
- 2022-06-14 CN CN202210668287.XA patent/CN115082147B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112990972A (zh) * | 2021-03-19 | 2021-06-18 | 华南理工大学 | 一种基于异构图神经网络的推荐方法 |
CN113672811A (zh) * | 2021-08-24 | 2021-11-19 | 广东工业大学 | 一种基于拓扑信息嵌入的超图卷积协同过滤推荐方法、***及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115082147A (zh) | 2022-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115082147B (zh) | 一种基于超图神经网络的序列推荐方法及装置 | |
Pan et al. | Study on convolutional neural network and its application in data mining and sales forecasting for E-commerce | |
Yang et al. | Click-through rate prediction in online advertising: A literature review | |
CN110955826B (zh) | 基于改进型循环神经网络单元的推荐*** | |
Chu et al. | Short-term recommendation with recurrent neural networks | |
Navgaran et al. | Evolutionary based matrix factorization method for collaborative filtering systems | |
CN115099886B (zh) | 一种长短兴趣序列推荐方法、装置及存储介质 | |
Khoali et al. | Advanced recommendation systems through deep learning | |
Wei et al. | DLGNN: A Double-layer Graph Neural Network Model Incorporating Shopping Sequence Information for Commodity Recommendation. | |
CN116071128A (zh) | 一种基于多行为特征提取与自监督学习的多任务推荐方法 | |
Wambura et al. | Long-range forecasting in feature-evolving data streams | |
Hazrati et al. | Entity representation for pairwise collaborative ranking using restricted Boltzmann machine | |
Li | Cross‐Border E‐Commerce Intelligent Information Recommendation System Based on Deep Learning | |
Chen et al. | Poverty/investment slow distribution effect analysis based on Hopfield neural network | |
Liu | Deep learning in marketing: a review and research agenda | |
Pughazendi et al. | Graph sample and aggregate attention network optimized with barnacles mating algorithm based sentiment analysis for online product recommendation | |
CN117392686A (zh) | 一种基于改进的动态图神经网络的不实信息检测方法 | |
Cao et al. | Implicit user relationships across sessions enhanced graph for session-based recommendation | |
Wang et al. | TANGO: A temporal spatial dynamic graph model for event prediction | |
CN113888238B (zh) | 一种广告点击率预测方法、装置及计算机设备 | |
Öztürk | Hyperparameter optimization of a parallelized LSTM for time series prediction | |
CN115293812A (zh) | 一种基于长短期兴趣的电商平台会话感知推荐预测方法 | |
Shen et al. | A deep embedding model for co-occurrence learning | |
Li et al. | Research on recommendation algorithm based on e-commerce user behavior sequence | |
CN114519600A (zh) | 一种融合相邻节点方差的图神经网络ctr预估算法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |