本发明涉及推荐系统领域,具体地,涉及一种基于sta-tcn神经网络框架的兴趣点推荐方法及系统。
背景技术:
如今,随着foursquare和yelp等基于位置的社交网络(lbsn)平台的飞速发展,越来越多的用户希望与朋友分享他们在不同位置的兴趣点(pointofinterest)签到记录,如餐馆、博物馆等。大量的用户签到数据有助于学习用户对兴趣点的偏好研究。怎么准确地向用户推荐兴趣点,这对兴趣点所有者吸引潜在用户,以及用户探索周围环境并发现潜在的有趣景点都具有很高的价值。针对专有的一些名词做如下解释:
兴趣点(poi,point-of-interest):位于地图上的某一地点,可以是娱乐场所、餐饮场所、景点等,其所在位置由gps表示。
基于位置的社交网络(lbsn,location-basedsocialnetworks):其中用户集合表示为
签到记录(check-in):用户签到记录表示为三元组
签到历史(check-inhistory):给定数据集,用户
兴趣点推荐(poirecommendation):对于给定的目标用户
实际上,用户的兴趣点访问行为显示出很强的顺序过渡相关性。也就是说,用户下一次访问的兴趣点与用户以往访问过的兴趣点高度相关。例如,在周末在饭店吃晚餐之后,某些用户很有可能随后会去电影院、酒吧或者其他娱乐场所。自然地,在签到记录之间捕获这种顺序过渡相关性对于兴趣点推荐系统至关重要。
基于循环神经网络(rnn)的模型率先被用来解决兴趣点推荐问题,循环神经网络可以通过用户的签到记录学习到用户兴趣点签到记录之间的顺序过渡相关性。要想训练这种基于神经网络的模型,必须将用户的历史签到序列分为多个较短的子序列,然后将它们逐个输入这些模型,这不可避免地会非常耗时。
经过检索,专利文献cn111241306a公开了一种基于知识图谱和指针网络的路径规划方法,包括:获取旅游图中兴趣点作为节点构建知识图谱,每个节点中包括兴趣点的四维信息,利用图神经网络对知识图谱中每个节点的四维信息进行聚合生成兴趣点的嵌入矩阵;将嵌入矩阵作为训练样本输入到指针网络,对指针网络进行训练,得到训练后的指针网络;针对旅游图中待测试的兴趣点,获得兴趣点的嵌入矩阵作为测试样本输入到训练后的指针网络中,依次选择输出概率最高的兴趣点,作为当前路线的下一个兴趣点,完成路径规划。该现有技术需要兴趣点的经度、纬度、热度和游玩时长等信息之后,并且根据这些信息数据先构建知识图谱并存储,实际运用过程中也需要不断对知识图谱进行更新,流程比较繁琐。同时,没有使用时间信息,对于空间信息到使用也仅限于构建知识图谱,对知识图谱并不能充分挖掘兴趣点的空间相关性。
专利文献cn109885756a公开了一种基于cnn和rnn的序列化推荐方法,该算法利用cnn的局部特征学习能力来捕捉最近历史行为数据中存在的相关关系,同时利用rnn的全局和序列学习能力来学习用户历史行为的长短期偏好,最后通过学习到的特征表达利用多层感知机预测用户未来会产生的行为并提供推荐,实验表明该算法的效果优于单一的基于cnn或rnn的序列化推荐。该现有技术没有使用数据中的时间信息和空间信息,并不能充分挖掘兴趣点的时间和空间相关性。
并且,上述两篇现有技术都使用rnn进行训练,rnn可以处理普通的序列问题,但对于长序列问题,rnn则无能为力,rnn会出现梯度消失/爆炸的问题,并且无法保留长序列信息,只能串行训练的特点导致模型的训练异常耗时。
因此,亟需研发设计一种新的神经网络框架来更好地学习用户兴趣点推荐的签到历史记录的局部过渡相关性和全局空间相关性。
技术实现要素:
针对现有技术中的缺陷,本发明的目的是提供一种基于sta-tcn神经网络框架的兴趣点推荐方法及系统,本发明充分利用了数据中的时间信息和空间信息,无需构建知识图谱,使用st-attention将时间信息和空间信息融入到attention机制中,极大促进模型学习兴趣点之间的多种相关性。
根据本发明提供的一种基于sta-tcn神经网络框架的兴趣点推荐方法,包括如下步骤:
步骤s1:将用户签到序列的数据进行预处理,过滤不活跃用户和不活跃兴趣点;
步骤s2:预处理之后的数据转化为高维的嵌入向量序列;
步骤s3:利用神经网络学习嵌入向量序列的顺序过渡相关性,输出得到包含顺序过渡相关性信息的结果向量;
步骤s4:对包含顺序过渡相关性信息的结果向量利用时空自注意力机制学习全局时空相关性,输出最终的表示向量;
步骤s5:根据最终的表示向量得出兴趣点推荐结果。
优选地,步骤s1中通过删除少于10个签到记录的不活跃用户和少于10个访问用户的不受欢迎的兴趣点的方式对两个数据集进行预处理。
优选地,步骤s2包括如下:
步骤s2.1:通过tilemapsystem嵌入gps坐标转化为r维的gps坐标向量;
步骤s2.2:嵌入时间戳向量;
步骤s2.3:嵌入兴趣点向量。
优选地,步骤s3中使用时序卷积网络学习用户签到序列之间的顺序过渡相关性。
优选地,步骤s3包括:将长度为l的兴趣点嵌入序列x1:l=(x1,x2,…,xl)输入到时序卷积网络中,其中
其中,*表示膨胀的因果卷积操作,f表示核大小为h的卷积滤波器,e是控制卷积核的接收窗口大小的膨胀因子,xj-eh表示位置j之前的第(e×h)个向量。
优选地,步骤s3还包括:对于所有输入的向量都使用相同的核权重矩阵,再利用激活函数得到输出特征x1:l的非线性信息。
y1:l=relu(w*x1:l)
其中,w表示时序卷积网络中共享的核权重矩阵,relu是非线性的激活函数,而y1:l表示输出特征。
优选地,步骤s4中的时空自注意力机制包括网格距离学习机制和时间敏感性学习机制。
优选地,网格距离学习机制通过执行以下公式的运算获得两个gps位置的网格距离向量
其中
优选地,时间敏感性学习机制将时间嵌入向量序列c1:l=(c1,c2,…,cl)和时间嵌入向量序列t1:l=(t1,t2,…,tl)作为输入,其中
其中,wt表示t-sl机制中的参数。
根据本发明提供的一种基于sta-tcn神经网络框架的兴趣点推荐系统,包括:
输入嵌入层:输入嵌入层将用户签到序列作为输入,由兴趣点、gps位置和时间戳组成,并分别输出其嵌入向量序列;
时序卷积网络:时序卷积网络将兴趣点嵌入向量作为输入,并输出得到包含顺序过渡相关性信息的结果向量;
时空注意力模块:将时序卷积网络的输出以及签到记录的时间戳和gps位置嵌入向量作为输入,并输出学习到的全局空间和时间相关性的最终的表示向量;
输出模块:输出模块使用选择器根据最终的表示向量得出兴趣点推荐结果。
与现有技术相比,本发明具有如下的有益效果:
1、本发明充分利用时间和空间信息,无需构建知识图谱,使用st-attention将时间信息和空间信息融入到attention机制中,极大促进模型学习兴趣点之间的多种相关性。
2、本发明利用sta-tcn神经网络进行兴趣点的搜索,其中tcn加入残差模型解决梯度消失/爆炸的问题,能够使用因果卷积、膨胀卷积捕捉长序列信息,同时使得浅层模型很容易扩展为深层模型。
3、本发明中tcn利用因果卷积屏蔽未来信息,使得模型可以处理时序问题,膨胀卷积则让模型能够捕捉更长的序列长度。
4、本发明中的attention可以获取全局与局部的联系,不会像rnn网络那样对长期依赖的捕捉会收到序列长度的限制;相比cnn与rnn,参数少,模型复杂度低;每步的结果不依赖于上一步,可以并行计算。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明中基于sta-tcn神经网络框架的兴趣点推荐系统的整体架构图;
图2为本发明中的基于tilemapsystem的分层网格化第一级地图;
图3为本发明中的基于tilemapsystem的分层网格化第二级地图;
图4为本方法在不同的超参数下,在gowalla数据集上的hr@10(推荐列表长度为10时的命中率)的表现效果;
图5为本方法在不同的超参数下,在foursquare数据集上的hr@10(推荐列表长度为10时的命中率)的表现效果;
图6为本方法在不同的超参数下,在gowalla数据集上的ndcg@10(归一化折损累计增益)的表现效果;
图7为本方法在不同的超参数下,在foursquare数据集上的ndcg@10(归一化折损累计增益)的表现效果;
图8为当下流行的poi推荐方法与本方法在gowalla数据集上达到最好的表现效果(推荐列表长度为5时的命中率)时所花费的时间;
图9为当下流行的poi推荐方法与本方法在foursquare数据集上达到最好的表现效果(推荐列表长度为5时的命中率)时所花费的时间;
图10为当下流行的poi推荐方法与本方法在gowalla数据集上达到最好的表现效果(推荐列表长度为5时的归一化折损累计增益)时所花费的时间;
图11为当下流行的poi推荐方法与本方法在foursquare数据集上达到最好的表现效果(推荐列表长度为5时的归一化折损累计增益)时所花费的时间。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
如图1-11所示,本发明提供了一种基于sta-tcn神经网络框架的兴趣点推荐方法,包括如下步骤:
步骤s1:将用户签到序列的数据进行预处理,过滤不活跃用户和不活跃兴趣点;
步骤s2:预处理之后的数据转化为高维的嵌入向量序列;
步骤s3:利用神经网络学习嵌入向量序列的顺序过渡相关性,输出得到包含顺序过渡相关性信息的结果向量;
步骤s4:对包含顺序过渡相关性信息的结果向量利用时空自注意力机制学习全局时空相关性,输出最终的表示向量;
步骤s5:根据最终的表示向量得出兴趣点推荐结果。
具体地,进一步来说,步骤s1包括以下具体步骤:
步骤s1.1:实验是在两个真实世界的lbsn数据集gowalla和foursquare上进行的,它们被广泛用于评估兴趣点推荐方法。gowalla数据集包含2009年2月至2010年10月在全球范围内的签到记录,foursquare数据集的签到样本都发生在2010年2月至2011年1月的纽约市。通过删除少于10个签到记录的不活跃用户和少于10个访问用户的不受欢迎的兴趣点的方式对两个数据集进行预处理。为了确保用户兴趣的多样性,同时将少于5个不同兴趣点访问记录的用户排除掉。表1给出了这两个数据集的详细的统计结果。
表1数据集统计结果
骤s2包括:将数据输入到嵌入层,由于数据集中存在大量的兴趣点索引
步骤s2.1:gps坐标嵌入。如图2、图3和图4-7所示,首先使用tilemapsystem将整个区域分层划分为多层级的网格,并使用哈希键表示每个网格,每个网格可以由向量
步骤s2.2:时间戳嵌入:考虑到用户通常在一天中的不同时间和不同的日期有不同的兴趣点访问行为,首先将一天划分为n个间隔相等的时间段,然后根据每个时间段
步骤s2.3:兴趣点嵌入,显然,用户访问兴趣点的概率在一天中的不同时间有所不同。本发明利用这种时间敏感性对兴趣点进行分类,具体地说,对于签到序列中的每个兴趣点,在整个数据集中计算上述2n个时间段内所有用户的签到频率,这些签到频率进一步组合为时间敏感度嵌入向量
通过共同执行以上三种类型的嵌入,输入嵌入层将把长度为l的用户签到序列转换为四个嵌入矢量序列,包括兴趣点嵌入向量序列x1:l,时间敏感度嵌入向量序列表示为g1:l,gps嵌入向量序列表示为g1:l,时间嵌入向量序列表示为t1:l。
步骤s3包括以下具体步骤:
步骤s3.1:本发明使用时序卷积网络来学习用户签到记录之间的顺序过渡相关性。循环神经网络使用串行结构处理和传递输入信息,并且利用大量的单元状态和隐藏状态存储信息,而时序卷积网络使用并行架构对输入信息进行卷积运算,从而实现了较少的内存需求和更快的训练速度。与原始的卷积神经网络相比,时序卷积网络采用了被称为因果卷积的特殊卷积结构,在很大程度上促进了输入序列的顺序过渡相关性学习效果。一方面,时序卷积网络的因果卷积运算将输入与过去的时间戳进行兴趣点嵌入,对输入向量进行卷积运算,从而保留了用户签到序列的时间顺序;另一方面,时序卷积网络的卷积运算具有膨胀性质,因此可以成倍地扩大接收域,以处理长度过长的输入序列。
更具体地说,将长度为l的兴趣点嵌入序列x1:l=(x1,x2,…,xl)输入到时序卷积网络中,其中
其中*表示膨胀的因果卷积操作,f表示核大小为h的卷积滤波器,e是控制卷积核的接收窗口大小的膨胀因子,xj-eh表示位置j之前的第(e×h)个向量。
步骤s3.2:本发明对于所有输入的向量都使用相同的核权重矩阵,然后,利用激活函数得到输出特征x1:l的非线性信息。
y1:l=relu(w*x1:l)
其中w表示时序卷积网络中共享的核权重矩阵,relu是非线性的激活函数,而y1:l表示输出特征。为了产生等长的输出序列,将零填充到输入序列x1:l的末尾。
此外,为了更好地表示用户对兴趣点的偏爱程度,本发明还设计了门控注入机制,该机制将经过门控单元的原始输入向量与时序卷积网络的输出特征相加。
y1:l=y1:l+x1:l⊙σ(wg·x1:l+bg)
最终输出的y1:l融合了tcn输出的卷积特征和输入信息x1:l,x1:l注入的信息量由门控机制控制,其中wg和bg表示参数,σ(·)表示sigmoid型函数,⊙表示基于矩阵元素的乘法。
步骤s4包括以下具体步骤:
尽管时序卷积网络可以帮助捕获用户签到序列之间的顺序转换相关性,但仅考虑这种顺序过渡相关性并不足以准确地学习用户对兴趣点的偏好程度。用户通常一天中的相同时间段和地理位置的较近区域有相似的兴趣点访问行为,为了学习这种全局时空相关性,本发明在时序卷积网络的基础上提出了一种时空自注意力(statt)模块,该模块通过两种新颖的方法增强了自注意力网络。分别是网格距离学习(g-dl,grid-differencelearning)机制和时间敏感性学习(t-sl,time-sensitivitylearning)机制。
步骤s4.1:首先根据步骤s2得到gps嵌入序列g1:l=(g1,g2,…,gl),
其中
as=ws·ms+bs
步骤s4.2:用户的兴趣点访问偏好显示了时间敏感性属性。受此启发,本发明提出了t-sl机制来学习输入序列的全局的时间相关性。这种机制将时间嵌入向量序列c1:l=(c1,c2,…,cl)和时间嵌入向量序列t1:l=(t1,t2,…,tl)作为输入,其中
步骤s4.3:为了更好地学习用户签到之间的全局时空相关性,statt将上述时空相关性得分矩阵与传统的自注意力机制相结合,并输出最终的表示向量序列z1:l。
其中
最后,statt将z1:l中的最后一个向量zl作为用户偏好的最终表示向量。
步骤s5包括以下具体步骤:
步骤s5.1:如图1所示,输出模块将zl输入选择器以产生推荐结果。具体地说,首先输出模块通过检索距离用户当前签到位置最近的
本发明使用新型的深度学习模型--sta-tcn神经网络框架,与以往的模型分别在gowalla和foursquare数据集上进行实验,通过hr标准比较模型和ndcg标准比较模型两个标准比较模型的性能。
hr标准比较模型是指代命中率模型,用户关心的出现在推荐列表中即为命中;
ndcg标准比较模型指归一化折损累计增益,由折损累计增益(dcg)除以理想情况下最大的dcg值(idcg)得到。
在训练过程中,将输入签到序列的最大长度设置为100,长序列将从右到左被分为长度为100的非重叠子序列。在测试过程中将用户的所有签到记录都作为输入用于推荐下一个兴趣点,对于每条用户签到序列,采用最新的且未在以往记录中出现的兴趣点作为目标兴趣点来评估模型性能。将每天的时间段数n设置为12,将层次图网格划分的级别r设置为17;将卷积层数和时序卷积网络的内核大小分别设置为2和6;此外,时序卷积网络的两个卷积层中的膨胀因子分别为1和2;兴趣点候选集大小
在实验中采用两种常用的评估指标,即命中率(hr)和归一化的累积收益(ndcg)。hr@k计算了出现在推荐列表前k个兴趣点中的目标兴趣点所占的比例,ndcg@k进一步计算列表中前k个兴趣点中目标兴趣点的排名得分。
表2各模型在gowalla数据集上的表现
表3各模型在foursquare数据集上的表现
表2和表3总结了sta-tcn和所有baseline方法的结果,其中最优结果已经以黑体字突出显示。显而易见,本发明提出的sta-tcn在每个数据集上的所有指标上均表现出最优性能。sta-tcn通过g-dl和t-dl机制改进了自注意力架构,并且增强其学习时空相关性的能力,与次优的geosan相比,sta-tcn在gowalla和foursquare数据集上的hr@5/10分别显著提高了8.53%/11.81%和6.23%/10.26%。
进行对比试验,从超参数对模型的影响和模型训练效率两个角度进行评估。具体地,分析时序卷积网络的超参数设置对模型性能的影响。通过对时序卷积网络中卷积层数和内核大小的不同组合进行实验,分析超参数设置对模型性能的影响。实验中将内核大小从2开始以2为步长增加到12,将层数从2开始以2为步长增加到4,并在两个数据集上评估sta-tcn的性能变化。如图4-7所示,本发明提出的sta-tcn的性能非常强大且稳定,在卷积层数和内核大小方面只有很小的性能波动。
进一步来说,比较不同模型的训练效率。在相同训练环境下,实验统计了从训练开始到训练损失收敛时每种方法消耗的时间,并在两个数据集上计算了它们的所表现的推荐性能。图8-11显示了每种方法的训练时间消耗和相应的hr@5和ndcg@5,那些更靠近左上角的标记表示该方法具有较高的训练效率和更好的表现。可以看到,由于循环神经网络的串行训练结构,大多数基于循环神经网络的模型的训练非常耗时,本发明提出的sta-tcn显著提高了训练速度和推荐系统的性能。
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统及其各个装置、模块、单元以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统及其各个装置、模块、单元以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同功能。所以,本发明提供的系统及其各项装置、模块、单元可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置、模块、单元也可以视为硬件部件内的结构;也可以将用于实现各种功能的装置、模块、单元视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。