发明内容
本发明为了克服以上技术的不足,提供了一种基于自监督学习和图神经网络的个性化兴趣推荐方法,实现用户在一定区域内的行动轨迹和行为模式是有迹可循的,并且在现实生活中,在一定区域内的不同用户的行为模式和行动轨迹也具有高度重合性。因此对兴趣访问点(下文简称兴趣点)根据空间坐标和访问流行度进行图结构的建模可以学习出兴趣点之间的一种普遍的行为模式,且用于单个用户时可以将这种行为模式视为用户的长期兴趣。
本发明克服其技术问题所采用的技术方案是:
一种基于自监督学习和图神经网络的个性化兴趣推荐方法,包括如下步骤:
a)从Gowalla这个数据集读取兴趣点集合
和用户集合
其中p
i为第i个兴趣点,1≤i≤n
P,n
P为兴趣点集合P的长度,u
o为第o个用户,1≤o≤n
U,n
U为用户集合U的长度;b)根据第o个用户的签到时间生成用户o在第b天的日签到序列
用户o的全部签到序列
全部用户的全部签到序列
其中
为第o个用户待推荐的那一天,
为第o个用户第b天的第z个签到点,
为用户o在第b天的日签到序列
的长度;
c)将兴趣点集合P中的每一个兴趣点初始化为原始特征向量e,将所有兴趣点的原始特征向量表示为
e
i为第i个兴趣点p
i的原始特征向量,1≤i≤n
P;
d)将全部用户的全部签到序列
根据签入签出记录构建兴趣点全局图,该兴趣点全局图由用户的历史签到序列创建兴趣点之间的邻接矩阵
构成,
为实数空间,该兴趣点全局图的节点为兴趣点集合P中全部兴趣点;
e)采用随机删边法,随机删除邻接矩阵W
*中的元素,分别获得增强视图邻接矩阵
及
f)创建一个基于图同构网络的图编码器模型GraphEncoder,将兴趣点的原始特征向量E及邻接矩阵W
*输入到图编码器模型GraphEncoder中,输出得到邻接矩阵W
*的兴趣点局部图特征向量G、增强视图邻接矩阵
的兴趣点局部图特征向量G
q、增强视图邻接矩阵
的兴趣点局部图特征向量G
k;
g)计算InfoNCE损失函数losspre,利用损失函数losspre迭代训练图编码器模型GraphEncoder,通过反向传播更新兴趣点的原始特征向量E,得到带有空间特征和流行度特征的兴趣点特征向量E*;
h)在兴趣点集合P中创建用户历史交互兴趣点的掩码数组,已交互的为1,未交互的为0,根据掩码数组从邻接矩阵W
*中提取出第o个用户的邻接矩阵
i)将带有空间特征和流行度特征的兴趣点特征向量E
*及第o个用户的邻接矩阵
输入到步骤g)中训练完成的图编码器模型GraphEncoder中,输出得到第o个用户的交互子图特征表示
j)通过公式
计算得到用户的长期兴趣值
MLP(·)为多层感知机;
k)获取第o个用户要预测当天t的签到序列
按顺序从带有空间特征和流行度特征的兴趣点特征向量E
*中取出该签到序列里访问的兴趣点的特征向量,按顺序依次标记为
其中h
m为预测当天t的第m个访问的兴趣点的特征向量,
为用户o在预测当天t的日签到序列
的长度,将一天时间分成24个时间片,计算当天第m个访问的兴趣点与最后第
个访问的兴趣点之间的时间片差值,并将差值编码为64维向量
定义一个时间片偏移嵌入矩阵
矩阵长度为当前序列长度
其中
为
q
m为第m个兴趣点对应的时间片偏移嵌入向量,
通过半正矢公式计算当天第m个访问的兴趣点与最后第
个访问的兴趣点之间的距离,将距离值编码为64维向量
定义一个空间偏移嵌入矩阵
矩阵长度为当前序列长度
其中
为
pos
m为第m个访问的兴趣点对应的空间偏移嵌入向量,
l)使用softmax计算注意力权重,将所有兴趣点的特征嵌入向量相加生产短期兴趣值
m)通过公式
计算得到用户兴趣向量
式中
和
均为注意力权重;
n)通过公式
计算得到候选兴趣点在预测当天t被签到的概率p
candi,完成模型的建立;
o)将概率pcandi中最大的前10个兴趣点推荐给用户。
进一步的,步骤c)中将兴趣点集合P中的每一个兴趣点初始化为64维的原始特征向量e。
进一步的,步骤d)包括如下步骤:
d-1)通过公式si,j=ln(freqi,j)计算得到第i个兴趣点pi到第j个兴趣点pj的权重影响度si,j,式中freqi,j为第i个兴趣点pi到第j个兴趣点pj访问的次数;
d-2)通过公式
计算得到归一化后的影响度
s
i,min为第i个兴趣点p
i的出度边的最小值,s
i,max为第i个兴趣点p
i的出度边的最大值;
d-3)通过公式di,j=haversine(loni,lati,lonj,latj)计算得到第i个兴趣点pi与第j个兴趣点pj之间的距离di,j,式中haversine(·)为半正矢函数,loni为第i个兴趣点pi的经度,lati为第i个兴趣点pi的纬度,lonj为第j个兴趣点pj的经度,latj为第j个兴趣点pj的纬度;
d-4)通过公式
计算得到标准化的空间影响度
式中sigmoid(·)为sigmoid函数;
d-5)通过公式
计算得到第i个兴趣点p
i到第j个兴趣点p
j边的权重w
i,j,δ为权重温度系数;
d-6)根据用户的历史签到序列创建兴趣点之间的邻接矩阵
完成兴趣点全局图的构建,W
*中的元素
为第i个兴趣点p
i到第j个兴趣点p
j的边缘归一化权重。
优选的,步骤d-5)中δ取值为0.5。
进一步的,步骤d-6)中通过公式
计算得到边缘归一化权重
式中softmax(·)为softmax函数。
优选的,步骤e)中以0.9的概率随机删除邻接矩阵W*中的元素。
进一步的,步骤f)包括如下步骤:
f-1)在编码器GraphEncoder中通过公式E
(k)=MLP
(k)(W
*E
(k-1))计算得到邻接矩阵W
*经过k次节点更新后的兴趣点特征表示E
(k),式中k={1,2},MLP
(k)(·)为多层感知机,E
(k -1)为经过k-1次节点更新后的兴趣点特征表示,当k取值为1时,E
(0)为所有兴趣点的原始特征向量E,通过公式
计算得到增强视图邻接矩阵
经过k次节点更新后的兴趣点特征表示
通过公式
计算得到增强视图邻接矩阵
经过k次节点更新后的兴趣点特征表示
f-2)在编码器GraphEncoder中通过公式G=concat(sum(E
(l))l=0,1,2)计算得到邻接矩阵W
*的兴趣点局部图特征向量G,式中concat(·)为拼接操作,sum(·)为求和操作,E
(l)为邻接矩阵W
*经过第l次节点更新后的兴趣点特征表示,通过公式
计算得到增强视图邻接矩阵
的兴趣点局部图特征向量G
q,
为增强视图邻接矩阵
经过第l次节点更新后的兴趣点特征表示,通过公式
计算得到增强视图邻接矩阵
的兴趣点局部图特征向量G
k,
为增强视图邻接矩阵
经过第l次节点更新后的兴趣点特征表示。
进一步的,步骤g)中通过公式
计算得到InfoNCE损失函数loss
pre,式中T为转置,G
k,+为一个训练批次兴趣点局部图特征向量G
q对应生成的兴趣点局部图特征向量G
k,G
k,i为全部训练批次兴趣点局部图特征向量G
q对应生成的兴趣点局部图特征向量G
k,0≤i≤K,K为一个迭代周期内的训练批次大小,τ为温度系数,τ取值为0.7,利用InfoNCE损失函数loss
pre迭代100次训练图编码器模型GraphEncoder。
进一步的,步骤l)包括如下步骤:
l-1)通过公式
计算得到注意力分数
式中ω、ω
1、ω
2、ω
3、ω
4为可训练权重向量,T为转置;
l-2)通过公式
计算得到兴趣点的特征嵌入向量相加生产短期兴趣值
式中softmax(·)为softmax函数。
进一步的,还包括通过公式
计算得到损失函数loss,式中NUM为所有候选兴趣点的总数,y
candi取值为0或1,y
candi取值为0表示为负采样,y
candi取值为1表示为正采样,利用损失函数loss通过二元交叉熵损失迭代500次训练步骤n)中的模型。
本发明的有益效果是:使用自监督的图对比学习的方法预训练兴趣点特征表示向量,深度学习兴趣点之间的流行度访问行为模式,训练图编码器模型,使兴趣点特征向量融合空间关联性和交互行为关联性。同时在下游推荐任务中将目标用户个人的兴趣点交互图通过预训练中训练好的图编码器模型学习用户个人的长期行为模式作为长期兴趣,以达到个性化的目的。创新注意力公式,将短期的时间和空间特性考量到注意力机制中,学习用户的短期兴趣,大大的提高推荐任务的准确率。相交其他方法,本方法首次使用图对比学习来捕获兴趣点之间的客观行为趋势,并学习用户长期的行为模式图并把图特征表示向量作为长期兴趣,充分考量了兴趣点推荐中的短期访问兴趣点对推荐任务的影响,大大提高了模型的泛化能力和推荐召回率,实现根据兴趣个性化解决用户出行需求的目的。
具体实施方式
下面结合附图1对本发明做进一步说明。
用户在一定区域内的行动轨迹和行为模式是有迹可循的,并且在现实生活中,在一定区域内的不同用户的行为模式和行动轨迹也具有高度重合性。因此对兴趣访问点(下文简称兴趣点)根据空间坐标和访问流行度进行图结构的建模可以学习出兴趣点之间的一种普遍的行为模式,且用于单个用户时可以将这种行为模式视为用户的长期兴趣。
本发明共分为预训练和下游推荐任务两大阶段。在预训练阶段,初始化全体兴趣点的特征表示向量,将所有兴趣点根据全体用户的签到行为构建兴趣点-兴趣点访问全局流图(下文简称兴趣点全局图),并对其进行基于访问量和空间特征的图同构网络编码器建模,使用自监督的图对比学习方法学习兴趣点之间的全局访问模式以获取兴趣点的初级特征表示。在下游推荐任务阶段,首先将待推荐目标用户的历史访问兴趣点构建成兴趣点-兴趣点用户访问子图,以预训练阶段训练完成的图同构网络编码器对目标用户的长期兴趣行为模式进行学习,生成目标用户的长期兴趣。其次将待推荐当天目标用户访问的兴趣点通过时空片注意力机制学习短期兴趣。最后,将目标用户的长期兴趣与短期兴趣输入到预测层,输出最终的推荐结果。
具体的,一种基于自监督学习和图神经网络的个性化兴趣推荐方法,包括如下步骤:
(1)获取数据
a)Gowalla这个数据集包括用户与兴趣点的交互记录、交互时间和兴趣点的坐标(经纬度),因此从Gowalla这个数据集读取兴趣点集合
和用户集合
其中p
i为第i个兴趣点,1≤i≤n
P,n
P为兴趣点集合P的长度,u
o为第o个用户,1≤o≤n
U,n
U为用户集合U的长度。
b)根据第o个用户的签到时间生成用户o在第b天的日签到序列
用户o的全部签到序列
全部用户的全部签到序列
其中
为第o个用户待推荐的那一天,
为第o个用户第b天的第z个签到点,
为用户o在第b天的日签到序列
的长度。每一个签到点c都由(u,p,t)三元组组成,u是某一个用户,p是某一个兴趣点,t(t=1,2,...,24)是一天24小时中某一个签到小时。
(2)对比学习预训练
c)将兴趣点集合P中的每一个兴趣点初始化为原始特征向量e,将所有兴趣点的原始特征向量表示为
e
i为第i个兴趣点p
i的原始特征向量,1≤i≤n
P。E的长度为兴趣点集合P的长度。
d)将全部用户的全部签到序列
根据签入签出记录构建兴趣点全局图,兴趣点全局图为有向图,根据签到序列中两个兴趣点之间的访问先后关系构成边,边缘权重由边连接的两个兴趣点先后访问次数和兴趣点之间的距离影响,该兴趣点全局图由用户的历史签到序列创建兴趣点之间的邻接矩阵
构成,
为实数空间,该兴趣点全局图的节点为兴趣点集合P中全部兴趣点。
e)采用图对比学习常用的随机删边法,随机删除邻接矩阵W
*中的元素,分别获得增强视图邻接矩阵
及
f)创建一个基于图同构网络的图编码器模型GraphEncoder,将兴趣点的原始特征向量E及邻接矩阵W
*输入到图编码器模型GraphEncoder中,输出得到邻接矩阵W
*的兴趣点局部图特征向量G,为了为了获取兴趣点之间全局访问模式,我们需要采用自监督对比学习的方式通过两个增强视图
和
学习兴趣点全局图各个节点的局部图结构。将两个增强视图邻接矩阵输入到GraphEncoder中,分别获得图特征表示向量,获得增强视图邻接矩阵
的兴趣点局部图特征向量G
q、增强视图邻接矩阵
的兴趣点局部图特征向量G
k。
g)计算InfoNCE损失函数losspre,利用损失函数losspre迭代训练图编码器模型GraphEncoder,通过反向传播更新兴趣点的原始特征向量E,得到带有空间特征和流行度特征的兴趣点特征向量E*。
(3)下游推荐任务
h)在兴趣点集合P中创建用户历史交互兴趣点的掩码数组,已交互的为1,未交互的为0,根据掩码数组从邻接矩阵W
*中提取出第o个用户的邻接矩阵
i)将带有空间特征和流行度特征的兴趣点特征向量E
*及第o个用户的邻接矩阵
输入到步骤g)中训练完成的图编码器模型GraphEncoder中,输出得到第o个用户的交互子图特征表示
j)通过公式
计算得到用户的长期兴趣值
MLP(·)为多层感知机。
k)获取第o个用户要预测当天t的签到序列
按顺序从带有空间特征和流行度特征的兴趣点特征向量E
*中取出该签到序列里访问的兴趣点的特征向量,按顺序依次标记为
其中h
m为预测当天t的第m个访问的兴趣点的特征向量,
为用户o在预测当天t的日签到序列
的长度,签到时间对短期兴趣有直观的影响,如果一个签到发生在上午6点,那对于晚上8点的签到影响就微乎其微了,这里我们将一天时间分成24个时间片,计算当天第m个访问的兴趣点与最后第
个访问的兴趣点之间的时间片差值,并将差值编码为64维向量
定义一个时间片偏移嵌入矩阵
矩阵长度为当前序列长度
其中
为
q
m为第m个兴趣点对应的时间片偏移嵌入向量,
另一方面,预测当天访问的兴趣点之间的空间距离也会影响到用户的短期兴趣,距离近的影响度会变高,这里通过半正矢公式计算当天第m个访问的兴趣点与最后第
个访问的兴趣点之间的距离,将距离值编码为64维向量
定义一个空间偏移嵌入矩阵
矩阵长度为当前序列长度
其中
为
pos
m为第m个访问的兴趣点对应的空间偏移嵌入向量,
l)使用softmax计算注意力权重,将所有兴趣点的特征嵌入向量相加生产短期兴趣值
(4)预测层
m)通过公式
计算得到用户兴趣向量
式中
和
均为注意力权重。此时长期兴趣、短期兴趣和兴趣点高阶空间信息的潜在特征向量都为64维。
n)通过公式
计算得到候选兴趣点在预测当天t被签到的概率p
candi,完成模型的建立。
(5)推荐
o)将概率pcandi中最大的前10个兴趣点推荐给用户。
使用自监督的图对比学习的方法预训练兴趣点特征表示向量,深度学习兴趣点之间的流行度访问行为模式,训练图编码器模型,使兴趣点特征向量融合空间关联性和交互行为关联性。同时在下游推荐任务中将目标用户个人的兴趣点交互图通过预训练中训练好的图编码器模型学习用户个人的长期行为模式作为长期兴趣,以达到个性化的目的。创新注意力公式,将短期的时间和空间特性考量到注意力机制中,学习用户的短期兴趣,大大的提高推荐任务的准确率。相交其他方法,本方法首次使用图对比学习来捕获兴趣点之间的客观行为趋势,并学习用户长期的行为模式图并把图特征表示向量作为长期兴趣,充分考量了兴趣点推荐中的短期访问兴趣点对推荐任务的影响,大大提高了模型的泛化能力和推荐召回率,实现根据兴趣个性化解决用户出行需求的目的。
实施例1:
步骤c)中将兴趣点集合P中的每一个兴趣点初始化为64维的原始特征向量e。
实施例2:
步骤d)包括如下步骤:
d-1)通常情况下,节点的影响度为长尾分布,部分节点的具有稠密的连通性(即很受欢迎),因此需要使用对数函数对其频率进行处理。因此,通过公式si,j=ln(freqi,j)计算得到第i个兴趣点pi到第j个兴趣点pj的权重影响度si,j,式中freqi,j为第i个兴趣点pi到第j个兴趣点pj访问的次数。
d-2)通过公式
计算得到归一化后的影响度
s
i,min为第i个兴趣点p
i的出度边的最小值,s
i,max为第i个兴趣点p
i的出度边的最大值。
d-3)通过haversine(半正矢公式)di,j=haversine(loni,lati,lonj,latj)计算得到第i个兴趣点pi与第j个兴趣点pj之间的距离di,j,式中haversine(·)为半正矢函数,loni为第i个兴趣点pi的经度,lati为第i个兴趣点pi的纬度,lonj为第j个兴趣点pj的经度,latj为第j个兴趣点pj的纬度。
d-4)由于距离影响也呈现长尾分布,因此使用sigmoid进行标准化得到标准化的空间影响度,具体的,通过公式
计算得到标准化的空间影响度
式中sigmoid(·)为sigmoid函数。
d-5)通过公式
计算得到第i个兴趣点p
i到第j个兴趣点p
j边的权重w
i,j,δ为权重温度系数。
d-6)根据用户的历史签到序列创建兴趣点之间的邻接矩阵
完成兴趣点全局图的构建,W
*中的元素
为第i个兴趣点p
i到第j个兴趣点p
j的边缘归一化权重。
实施例3:
步骤d-5)中δ取值为0.5。
实施例4:
步骤d-6)中通过公式
计算得到边缘归一化权重
式中softmax(·)为softmax函数。
实施例5:
步骤e)中以0.9的概率随机删除邻接矩阵W*中的元素。
实施例6:
步骤f)包括如下步骤:
f-1)在编码器GraphEncoder中通过公式E
(k)=MLP
(k)(W
*E
(k-1))计算得到邻接矩阵W
*经过k次节点更新后的兴趣点特征表示E
(k),式中k={1,2},MLP
(k)(·)为多层感知机,E
(k -1)为经过k-1次节点更新后的兴趣点特征表示,当k取值为1时,E
(0)为所有兴趣点的原始特征向量E,通过公式
计算得到增强视图邻接矩阵
经过k次节点更新后的兴趣点特征表示
通过公式
计算得到增强视图邻接矩阵
经过k次节点更新后的兴趣点特征表示
f-2)在编码器GraphEncoder中通过公式G=concat(sum(E
(l))|l=0,1,2)计算得到邻接矩阵W
*的兴趣点局部图特征向量G,式中concat(·)为拼接操作,sum(·)为求和操作,E
(l)为邻接矩阵W
*经过第l次节点更新后的兴趣点特征表示,通过公式
计算得到增强视图邻接矩阵
的兴趣点局部图特征向量G
q,
为增强视图邻接矩阵
经过第l次节点更新后的兴趣点特征表示,通过公式
计算得到增强视图邻接矩阵
的兴趣点局部图特征向量G
k,
为增强视图邻接矩阵
经过第l次节点更新后的兴趣点特征表示。
实施例7:
步骤g)中通过公式
计算得到InfoNCE损失函数loss
pre,式中T为转置,G
k,+为一个训练批次兴趣点局部图特征向量G
q对应生成的兴趣点局部图特征向量G
k,G
k,i为全部训练批次兴趣点局部图特征向量G
q对应生成的兴趣点局部图特征向量G
k,0≤i≤K,K为一个迭代周期内的训练批次大小,τ为温度系数,τ取值为0.7,利用InfoNCE损失函数loss
pre迭代100次训练图编码器模型GraphEncoder。
实施例8:
步骤l)包括如下步骤:
l-1)通过公式
计算得到注意力分数
式中ω、ω
1、ω
2、ω
3、ω
4为可训练权重向量,T为转置。
l-2)通过公式
计算得到兴趣点的特征嵌入向量相加生产短期兴趣值
式中softmax(·)为softmax函数。
实施例9:
还包括通过公式
计算得到损失函数loss,式中NUM为所有候选兴趣点的总数,y
candi取值为0或1,y
candi取值为0表示为负采样,y
candi取值为1表示为正采样,利用损失函数loss通过二元交叉熵损失迭代500次训练步骤n)中的模型。
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。