本公开属于互联网
技术领域:
的信息处理技术、网络通信
技术领域:
,特别涉及一种基于层次注意力机制的poi推荐方法。
背景技术:
:随着移动设备和位置获取技术的快速发展,人们获取实时位置信息变得越来越方便,包括yelp、foursquare、dianping和mafengwo在内的基于位置的社交网络(lbsns)的相关平台也相应得到了飞速发展。这些平台的用户在他们访问过的场所(如旅游景点、餐馆和商店等)共享他们的位置以及分享他们的相关体验,产生了大量的用户签到数据(checkin)。这些用户访问过并且感兴趣的场所即是兴趣点(point-of-interest,poi)。大量的用户与poi的交互数据给这些基于lbsns的移动互联网平台带来了潜在数据财富的同时,也引入了信息过载的问题。因此,能够理解用户个性化需求减轻其筛选信息的压力,以及帮助用户了解周围环境,辅助其进行决策的兴趣点(pois)推荐应运而生。上述lbsns应用平台积累了大量的签入数据。这些签入数据经历了包含简单社交关系数据、包含丰富的结构化数据和包含大量非结构化数据的阶段。同时,应用于poi推荐领域的计算模型也经历了多个阶段:早期是分析用户的社交关系的协同过滤和矩阵分解等方法,中期是分析签到数据上下文和主题信息的因子分解和马尔科夫等模型,近期则是可以自动捕获用户和poi的表达特征的机器学习方法。其中,协同过滤等方法由于其简单和有效而得到了广泛的应用,但是缺点是只能考虑单一特征的影响;因子分解等虽然能考虑特征之间的相互影响,但是在海量数据的环境中运算时间过长;神经网络解决了上述问题,但是依旧需要面对海量数据环境下个人数据极度稀疏这一问题的挑战。目前poi推荐方法主要包括2种:一是基于社交网络的推荐方法;二是基于签入数据上下文和主题内容的推荐方法,该方法的最新研究已经开始使用基于非结构化数据的深度学习方法,这极大推动了poi推荐领域的发展。但是,推荐精度仍然有提升的空间。技术实现要素:为了解决上述问题,本公开提供了一种基于层次注意力机制的poi推荐方法,所述方法包括如下步骤:s100:设计基于lstm的解码器-编码器的显式特征提取模型,用于从结构化数据中提取显式特征;s200:设计基于nlp的注意力机制的隐式特征提取模型,用于从非结构化数据中提取隐式特征;s300:使用文本相似度计算用户-poi匹配度;s400:使用softmax函数从所述显式特征和所述隐式特征中预测出初步poi推荐列表,再使用所述用户-poi匹配度微调该初步poi推荐列表,得到最终poi推荐列表作为预测结果。上述技术方案,提升数据利用率和推荐精度,主要体现在以下几个方面:(1)为了基于机器学习的poi推荐方法能在繁杂的签入数据中分析出更具代表性的特征,提出了显式特征和隐式特征的概念,即从结构化数据中提取的特征为显式特征和从非结构化数据中提取的特征为隐式特征。这些概念为基于机器学习的方法提供了收集数据和选择计算模型的思路。(2)提出了一种“局部-整体”的注意力机制。一方面,该机制在局部关注单个特征对poi推荐的贡献度,在整体上关注特征之间的影响以及整体特征对poi推荐的贡献度。另一方面,该机制在结构上灵活设计出局部注意力机制和整体注意力机制,使得seq2seq模型中的decoder可以在精确度损耗不大的情况下为了加快速度而只选择整体注意力机制。(3)首次在poi领域提出了一个基于nlp的“用户-poi”匹配度计算机制。该机制从用户文本以及poi文本的语义相似性中挖掘“用户-poi”匹配度;紧接着,该机制基于“用户-poi”匹配度提出了一个微调函数,该微调函数使用“用户-poi”匹配度对系统预测的pois进行微调,最终得到更加精准的pois。(4)推荐系统面临大规模数据运算、重度用户关系维护以及新用户冷启动的三大挑战。与deeppim、sae-nad、mgmpfm和lrt等方法相比,本方法的推荐性能是最优的,尤其在大规模数据处理和冷启动问题处理中最明显。附图说明图1是本公开一个实施例中所提供的一种基于层次注意力机制的poi推荐方法的流程图;图2(a)和图2(b)是本公开一个实施例中在yelp-c数据集上对冷启动用户进行性能评测的结果对比图;图3(a)和图3(b)是本公开一个实施例中视觉特征对模型影响的结果对比图;图4(a)和图4(b)是本公开一个实施例中不同文本长度下的的结果对比图。具体实施方式在一个实施例中,如图1所示,其公开一种基于层次注意力机制的poi推荐方法,所述方法包括如下步骤:s100:设计基于lstm的解码器-编码器的显式特征提取模型,用于从结构化数据中提取显式特征;s200:设计基于nlp的注意力机制的隐式特征提取模型,用于从非结构化数据中提取隐式特征;s300:使用文本相似度计算用户-poi匹配度;s400:使用softmax函数从所述显式特征和所述隐式特征中预测出初步poi推荐列表,再使用所述用户-poi匹配度微调该初步poi推荐列表,得到最终poi推荐列表作为预测结果。就该实施例而言,提出了一种基于层次注意力的poi推荐方法(tpoirec)。首先,提炼了显式特征和隐特征的概念,其中显式特征是从结构化数据提取的特征,隐式特征是从非结构化数据提取的特征。其次,在神经网络的训练模型中,每一次输入的数据包含了多个特征,每个特征和不同的特征组合的重要性是存在差异的。因此提出了局部-整体结构的层次注意力机制,其中,局部注意力机制主要提取单个特征的贡献度,整体注意力机制主要提取组合特征和整体特征的贡献度。最后,通过自然语言处理的处理方式(naturallanguageprocessing,nlp)从用户文本以及poi文本提取出用户-poi的潜在关联,并且使用该关联微调pois列表以提升推荐性能。在另一个实施例中,形式化相关的定义、符号以及问题:(1)每个兴趣点(poi)p由poi编号1、分类文本g、月份m、周w和时h组成,表示为元组p={l,g,m,w,h}。此外,我们使用u表示用户编号,则有u∈u。(2)签入数据(check-in)是显示用户在某个时间访问poi的记录。将签入记录表示为元组c={p,u,r,l,g,m,w,h},其中p为签入记录的编号、r为某个用户对某个poi的评论文本。因此,用户的历史嵌入记录可以表示为c={c1,c2,…,ct},t∈n ,其中ct为时间t的签入记录。(3)把从结构化数据提取的特征定义为显式特征,表示为ce={p,u,l,m,w,h};把从非结构化数据中提取的特征定义为隐式特征,表示为ci={r,g}。则有:c={p,ce,ci}。因此,问题“如何提升分别从结构化数据和非结构化数据中提取更具代表性的显式特征和隐式特征?如何从用户文本以及poi文本的相似度分析出用户与poi的匹配度以提升预测准确度”可以形式化为:input:ce={p,u,l,m,w,h},ci={r,g}output:topk也就是说,首先分别从结构化数据ce和非结构化数据ci中提取他们的显式特征he和隐式特征hi,并且使用预测函数f()计算用户即将访问的pois列表rank;其次,sim()计算出用户文本r和poi文本g的相似度s,最后使用函数g()微调rank列表,得到更精确的前k个pois列表topk。在另一个实施例中,提供了一种基于lstm模型的encoder-decoder(“编码器-解码器”)。在poi推荐中,访问顺序是非常重要的一个指标,同时,签入数据的序列本身也蕴含了丰富的信息。所以为了挖掘出签入记录的时序性价值,引入了能够解决长依赖问题的lstm模型。每个用户的pois推荐列表长度各异,这是机器学习方法中很具挑战性的序列预测问题。为此基于lstm设计了“编码器-解码器”结构。首先使用编码器将输入序列编码为定长特征向量,表示如下:其中,表示为通过非线性函数得到的候选状态,ht-1为时刻t-1输出信息给隐藏层的外部状态,xt表示为训练数据,wc、uc和bc为可学习到的网络参数。其中,为时刻t产生的新的内部状态,该状态专门进行线性的循环信息传递。为时刻t输出信息给隐藏层的外部状态。为向量元素乘积。lstm模型引入门机制来控制信息传递的路径,公式中的三个门分别为输入门it、遗忘门ft和输出门ot。如公式所示,输入状态由忘记门和输入门运算得到,输入状态与输入门共同运算得到输出状态,输出状态作为下一时刻的输入状态形成循环神经网络。其次,使用解码器将定长特征向量解码为预测序列,表示如下:其中,g()为解码器的输出操作(常用softmax),该函数输出的目标向量yt的概率。在另一个实施例中,步骤s100进一步包括:该显式特征提取模型包括了局部注意力机制和整体注意力机制,其中,所述局部注意力机制提取某一时刻用户的每一个特征对预测结果的重要程度,所述整体注意力机制提取某一时刻用户的整体特征对预测结果的重要程度,最终该显式特征提取模型从结构化数据中提取出显式特征向量就该实施例而言,结构化数据的每一个数据项(特征)直观上对模型的预测结果都是直接影响的,例如小时属性,能显示某个用户是喜欢晚上出门还是白天出门。此外,特征之间也会相互影响,例如喜欢晚上出门的用户虽然喜欢某一个美食,但是如果该美食只提供早餐,那么该用户会选择放弃该美食。这说明了,良好的模型设计需要同时考虑局部影响、组合影响和整体影响。因此,设计出了基于lstm的“解码器-编码器”的显式特征提取模型,该模型包括了局部注意力机制和整体注意力机制。在对结构化数据进行向量化之后,使用该显式特征提取模型提取结构化数据的的历史局部特征和整体特征。在另一个实施例中,步骤s200进一步包括:该隐式特征提取模型首先使用全连接层从用户签入数据文本的上下文中提取隐藏特征,再使用softmax函数计算注意力权重,最后通过考虑该注意力权重将输入的用户评论和poi描述转换为带注意力权重的用户隐式特征向量和poi隐式特征向量就该实施例而言,当前基于lbsns的应用平台的签入记录蕴含了丰富的用户评论文本和poi详细的描述文本。这些文本不仅包含用户画像和poi画像相关的单词,也包含了用户签入的上下文语境。同时,评论文本中单词具有固定的顺序,单词顺序的改变会产生语义上的改变。因此,需要按时间顺序捕获签入记录隐特征。设计了基于gru的seq2seq模型,状态表达向量是encoder的隐藏状态的输出,也是decoder的输入。其中,全连接层(fullyconnectedlayer)是cnn(卷积神经网络)的一个函数。该隐式特征提取模型是一种基于gru的seq2seq模型,gru(gatedrecurrentunit)是递归神经网络(rnn)的一种变种,由更新门和重置门组成,计算开销小,更加适用于大规模数据集,能够解决标准rnn中出现的梯度消失问题。seq2seq模型:可以根据一个输入序列x来生成另一个可变长度的输出序列y。基本的seq2seq模型包含了两个rnn,解码器和编码器,最基础的seq2seq模型包含了三个部分,即encoder、decoder以及连接两者的中间状态向量statevector,encoder通过学习输入,将其编码成一个固定大小的状态向量s,继而将s传给decoder,decoder再通过对状态向量s的学习来进行输出。其中,我们使用gru代替rnn,形成基于gru的seq2seq结构。为了计算每一个单词对用户特征或者poi特征的重要性,提出了一种适用于nlp的注意力机制。该机制,如下所示:其中,w、b、w*和b*是可以学习到的参数,t为文本的最大长度。此外,在本文当中,使用相同的模型分别计算用户文本和poi文本,因此,同理得到poi文本带注意力权重的表达特征向量在另一个实施例中,步骤s300进一步包括:s301:单词权重计算;s302:文本相似度计算;s303:通过上述步骤最终得到用户u对所有poi列表的相似度集合su。就该实施例而言,在最新的pois推荐过程中同时考虑结构化数据以及非结构化数据,该措施一定程度上提升了数据利用率和提高了poi预测的准确度。但是他们仅仅考虑从单个数据项提取特征,忽略了数据之间存在的关联关系。非结构化数据中的用户评论和poi描述之间的文本相似性蕴含了他们相互喜欢的程度。例如一个用户的评论里面有对咖啡的评价,那么他可能会对蕴含描述咖啡文本的poi感兴趣。因此,本方法首次提出了使用文本相似度计算“用户-poi”匹配度的计算模型,该模型由单词权重计算和文本相似度计算2个模块组成。经过上述两步运算之后,得到了用户u的第t个评论和第n个poi描述的相似度。在此基础上,在遍历完用户u的所有评论和所有poi描述的相似度运算之后,得到用户u对所有pois的相似度集合su。在另一个实施例中,步骤s400进一步包括:s401:将所述显式特征向量以及隐式特征向量和合并成整体特征向量v;s402:将整体特征向量v输入全连接层的relu单元,得到加权后的整体特征向量v’,具体为:v′=relu(vw′ b′)其中,v为整体特征向量,w’和b’为全连接层的参数,relu为线性整流函数,为拼接操作;s403:使用softmax函数对所述加权后的整体特征向量v’进行归一化操作,得到了poi列表的概率分布:y′i=tanh(v′w″ b″),i=1,2,…,n其中,w”和b”是模型可以学习到的超参数,n为poi列表的最大长度;s404:对yi′进行排序之后得到初步poi推荐列表:s405:使用用户u对所有poi列表的相似度集合su作为影响权重对yi′进行微调。在另一个实施例中,步骤s405进一步包括:首先,使用非线性的方式将权重映射到一个合适的阀值ws,再将该阀值ws以加法的方式微调yi′得到最终的poi列表概率分布y,具体为:ws=tanh(suwo bo)y=y′ ws,y′=[y′1,…,y′i,…,y′n]其中,wo和bo是模型可以学习到的超参数,su为用户u对所有poi列表的相似度集合,tanh为双曲正切函数;其次,将最终的poi列表概率分布y进行排序,则前k个poi就组成了某个用户当前时刻t的最终poi推荐列表。在另一个实施例中,为了训练模型,使用交叉熵(ce)作为损失函数,如下所示:其中,是真实的poi概率分布,在训练阶段根据该损失函数逐步对参数进行优化。在另一个实施例中,局部注意力机制进一步包括:假设${x{i:t}}$为时刻t的第i个特征,则有:xt=(x1:t,x2:t,…,xi:t)将当前时刻的表达特征向量x1:t、、上一时刻编码器的内部特征和外部特征ht-1输入加性模型进行运算之后,得到重要程度过程如下:其中,特征个数k为xt的维度,vi、bi、wi和ui是可以学习的参数;再使用softmax函数进行正则化后得到xt的注意力权重为最后根据和x1:t计算出局部特征向量:在另一个实施例中,整体注意力机制进一步包括:首先使用加性模型构造注意力打分函数:其中,vj、bj、wj和uj是模型可以学习到的超参数,为注意力分布,为vj的转置操作;其次,使用卷积神经网络对xt进行降维和合并,得到模型的输入数据之后再使用softmax函数来完成注意力分布的计算过程:最后根据和计算全局特征向量就该实施例而言,为了兼顾预测精确度以及运算速度,在解码器当中,只使用整体注意力机制。编码器的输出就是解码器的输入,所以解码器的输入为此外,假设解码器的内部状态和外部状态分别为和即把和代入进行运算得到非结构化数据带注意力权重的显式特征向量在另一个实施例中,步骤s301进一步包括:使用tf-idf算法计算时刻t的用户评论rt的第i个单词在第n个poi描述gn中的权重其中,(g1,g2,…,gn,…,gn)为所有poi描述的集合,n是pois的个数;tf()为词频函数,用于分析用户评论的各个单词在拟对比的poi描述中出现的次数;df()为反文档频率函数,用于计算包含了用户评论的各个单词在所有poi描述集合中出现的次数。就该实施例而言,poi是兴趣点,包含了很多数据,文字描述是其中一项数据,这里说的是文字描述。其中,poi的描述集合,是指pois对应的每一个描述的集合。在另一个实施例中,步骤s302进一步包括:取rt和gn的前q个有代表性的关键词,表示为和然后这两个值经过余弦相似度函数运算之后,得到rt和gt之间的相似度:在另一个实施例中,定义各种方法对比试验中用到的数据集、对比方法、评测指标及参数优化。使用全球最大的点评网站yelp的公开数据集(yelpdatasetchallengeround13)。为了验证算法的综合性能,如表1所示,根据不同的筛选条件构造出了大规模数据集yelp-b、冷启动用户数据集yelp-c和重度用户数据集yelp-h(重度用户指重复使用某个产品或者服务的老用户)。其中,字符串的长度为nt,单个用户的所有签入数据为nc,访问单个poi的所有用户数为np,单个用户访问的poi数量为nu,数据集中所有的用户数量为cu,数据集中所有的poi数量为cp,数据集中所有的签入记录总数为cc。此外,我们的训练数据集、校验数据集以及测试数据集的比例为8∶1∶1。表1:实验数据集的详细统计信息为了全面验证本推荐方法,选择了2种传统的poi推荐方法(lrt和mgmpfm)以及2种最新的基于机器学习的poi推荐方法(sae-nad和deeppim)。其中,在基于机器学习的推荐方法中,sae-nad针对结构化数据,deeppim结合了结构化数据和非结构化数据。lrt是一种基于矩阵分解模型的位置推荐框架,它能够从实际的lbsn数据集中分析出用户移动的时间特性。即使用签到时间与签到位置之间存在的强相关性提高推荐性能。mgmpfm是一种基于泊松因子模型(poissonfactormodel,pfm)的poi推荐模型,该模型融合了由多中心高斯模型(multi-centergaussianmodel,mgm)捕获的地理影响以及社会信息,相对于传统的mf模型推荐性能提升明显。sae-nad是一种poi推荐方法,该方法由一个自关注编码器(sae)、一个邻居感知解码器(nad)和多维注意力机制组成。该方法使用多维注意力考虑了地理上下文信息以提升poi推荐的性能。deeppim是一种基于机器学习的poi推荐方法,该方法使用基于注意力机制的seq2seq模型,同时考虑了结构化数据和非结构化数据(图像以及文本信息)。本方法tpoirec提出了一种层次关注机制和用户兴趣点匹配机制,并在训练过程中利用结构化和非结构化数据。在实际应用场景中,用户到访感兴趣的pois是具有时序性的。因此,我们选择平均倒数排名(meanreciprocalrank,mrr)、平均精准率(meanaverageprecision,map@k)和交并比(iou@k)作为评测指标。其中tok-k表示系统为某个用户推荐的前k个pois。mrr是一种国际上通用的对搜索算法进行评价的机制,能突出poi推荐算法在时序预测的性能,表示为:其中,ranki表示第i个poi的第一个正确答案的排名,dtest为测试集,|dtest|是数据集的个数。mrr的值越高越好。map是关注序列权重的综合性推荐评价指标,map的top-k可以表示为:其中,m为所有用户的个数,i为用户u的top-i个推荐的pois,tpu为用户访问过的pois的数量,fpu为用户没访问过的pois的数量。map@k的值越高越好。intersection-over-union(iou)是直观评价推荐性能的综合性指标,iou@k可以表示为:其中,tpu为用户访问过的pois的数量,fpu为用户没访问过的pois的数量,tnu为用户u访问过但是不在top-k的pois数量,iou@k值越高越好。lrt的超参为{k=100,λ=1.0,β=2.0,α=2,t=24};mgmpfm的超参由pfm和mgm两部分组成,其中,pfm方法的超参为:{k=30,α=20.0,β=0.2},mgm方法的超参为:{α=0.2,θ=0.02,d=15}在机器学习方法中有几个重要的超参数:dropoutrate是训练过程中神经元的留存率,用于减轻神经网络的过拟合问题;学习率(learningrate)是指导我们该如何通过损失函数的梯度调整网络权重的超参数;regularizationparameter(l2)是一种正则化参数,用于数据拟合和防止过拟合之间的平衡。sae-nad、deeppim和tpoirec方法的dropoutrate在{0.2,0.3,0.4,0.5,0.6,0.7,0.8}中取值为0.6时,他们的map值达到最优,他们的学习率取值为0.01时,map值达到最优;deeppim和tpoirec方法的在正则化参数(l2)取值为0.0001和relu单元个数取值为500的时候,map值达到最优。此外,对于基于机器学习的sae-nad、deeppim和tpoirec方法,当训练次数为40({epoch=40})的时候,损失函数趋于平稳。在另一个实施例中,为了分析非结构化数据中每种数据对推荐效果的影响,以及每个计算组件对推荐的贡献程度。我们通过逐步增加非结构化数据以及逐步增加计算模型的方式,设计了一个可以展示非结构化数据以及各个计算模型对推荐性能的提升情况的实验。其中增加的非结构化数据为用户文本和poi文本,计算模型包括基于lstm的编码器-解码器、层次注意力机制、“用户-poi”匹配机制。如表2所示,我们分别加入基于lstm的编码器-解码器和注意力机制之后,mrr值逐步提升。推荐性能在增加了poi文本之后显著提升,mrr值从0.2886提升至0.941。加入poi文本得到的性能提升远大于加入用户文本,这也说明了由店家或者专业人员编写的文本精准描述了poi的特点,而用户的评论比较随意,甚至可能包含了与兴趣无关的其他干扰信息,即说明了收集的文本信息越准确越能提升模型的推荐性能。最后,在使用″用户-poi″匹配度微调pois之后,推荐性能达到最佳,即mrr值为0.9424。由此,验证了基于注意力机制的“编码器-解码器”模型是提升推荐准确度的最稳定措施;同时,也说明了我们提出增加非结构化数据的思路和使用“用户-poi”匹配度去微调pois的思路是非常有效的提升预测性能的方式。表2:模型在不同条件下对yelp-h数据集性能的比较结果modelmrrmap@5map@10iou@5iou@10e-n-a u0.12790.18350.09180.00620.0101e-a u0.2070.22870.11430.00780.0118e u0.28860.23750.2220.010.0144e u p0.9410.26770.13390.01580.0168e u p s0.9424**0.2691**0.1346*0.0159*0.0169*其中,e、u、p和s分别表示显式特性、用户文本、poi文本以及用户和poi之间的相似性。-n表示数据不是由神经网络计算的。-a表示没有使用注意机制。*和料分别表示p<0.05和p<0.01与最佳基线比较的统计学意义。在另一个实施例中,给出了不同环境下各种方法的比较。poi推荐系统正面临三个最重要的挑战:大规模数据运算、老用户(重度用户)的关系维护以及新用户的冷启动问题。第一、对大规模数据集的评估表3是所有poi推荐方法在大规模数据环境下的实验结果。可以看出,基于机器学习的方法(tpoirec、deeppim和sae-nad)的推荐性能明显优于传统的推荐方法(mgmpfm和lrt方法),最可能的原因是大规模数据拟合出的模型的表现能力更丰富。基于非结构化数据和结构化数据的推荐方法(tpoirec和deeppim方法)的推荐性能显著优于仅仅基于结构化的推荐方法,尤其是同样使用单层注意力机制的情况下,deeppim方法的推荐效果显著高于sae-nad方法,这说明了非结构化数据对提升poi推荐性能有很大的帮助,这也验证了我们的tpoirec方法侧重提升非结构数据利用率的思路非常有意义。虽然tpoirec和deeppim方法都是使用基于注意力机制的神经网络对非结构化数据和结构化数据进行处理,但是由于tpoirec使用了层次注意力机制以及使用了“用户-poi”匹配度微调pois,因此,tporec的推荐性能达到了最优。表3:各种方法在大数据集上的性能对比结果其中,e、u、p和s分别表示显式特性、用户文本、poi文本以及用户和poi之间的相似性。-n表示数据不是由神经网络计算的。-a表示没有使用注意机制。*和料分别表示p<0.05和p<0.01与最佳基线比较的统计学意义第二、重度用户关系维护评估如表4所示。在重度用户环境下,只注重推荐准确率而不考虑pois的访顺序的iou值显示sae-nad方法略优于基于非结构化的tpoirec和deeppim方法,注重pois访问顺序的map值显示tpoirec方法的推荐效果显著优于sae-nad方法和deeppim方法。这说明在拥有丰富结构化数据的情况下,多维注意力机制能够预测更多数量的poi,但是如果想预测更精准的pois访问序列,还需要考虑从非结构化数据中获取更多的辅助信息。也就是说,除了单方面增加非机构化数据的利用率以外,如何提出有效的综合算法从非结构化数据中挖掘更有用的辅助信息是正确的研究思路。表4:各种方法在yelp-h数据集上的重度用户推荐性能比较结果其中,e、u、p和s分别表示显式特性、用户文本、poi文本以及用户和poi之间的相似性。-n表示数据不是由神经网络计算的。-a表示没有使用注意机制。*和料分别表示p<0.05和p<0.01与最佳基线比较的统计学意义。第三、冷启动用户性能评估图2(a)和图2(b)是针对新用户冷启动的poi推荐性能的评测结果。显然,在数据高度稀疏的情况下,基于结构化数据的poi推荐方法性能下降明显,数据级低至\emph{1e-03}级别,即趋于失效。但tpoirec和deeppim方法的推荐效果处于可接受范围内,这说明非结构化数据对于冷启动环境的poi推荐非常有帮助。在新用户冷启动环境中,tpoirec的推荐性能显著优于其他方法,其中tpoirec的map@5值从deeppim的map@5值的0.001提高到0.007。这说明层次注意力机制同时考虑单个特征、组合特征和整体特征能提高结构化数据的利用率,以及从文本中提取“用户-poi”匹配度确实能够挖掘非结构化数据更多的隐含信息。也就是说,层次注意力机制和“用户-poi”匹配度能一定程度上缓解数据稀疏的问题。在另一个实施例中,deeppim方法不仅使用了文本数据还使用了图像数据。因此,如图3(a)和图3(b)所示,我们在tpoirec方法中加入了图像数据形成了tpoirec vf方法。实验结果显示,tpoirec vf方法的iou@5值比tpoirec方法提升了2\%。说明图像特征能直接提升推荐的精确度,虽然我们只使用特征合并的方式加入图像特征。在使用相同数据条件下,tpoirec vf方法的iou@5值比deeppim方法高5\%,说明我们在tpoirec方法提出的层次注意力和“用户-poi”匹配机制是有效的。此外,也说明非结构化数据确实蕴含了能够促进推荐的隐藏特征。在另一个实施例中,为了验证用户和poi文本长度对“用户-poi”匹配度的影响,我们设计了不同文本长度条件下的对比实验。在实验中,考虑到消除数量不同等因素的影响,我们在${n_t}=20$、${n_p}=10$和${n_u}=20$的条件下将数据集按字符串长度分为4个组(50-300、300-550、550-900和900-1600)。也就是说,每组数据的规模均为7万左右。如图4(a)和图4(b)所示,长文本的mrr和map@10的值均高于短文本的mrr和map@10的值。由此说明:文本长度越长所蕴含的信息越丰富,得到的“用户-poi”匹配度越高,越能提升算法最终的推荐性能。所以,在推荐的实际应用场景当中,我们要尽可能地收集长文本训练数据。尽管以上结合附图对本发明的实施方案进行了描述,但本发明并不局限于上述的具体实施方案和应用领域,上述的具体实施方案仅仅是示意性的、指导性的,而不是限制性的。本领域的普通技术人员在本说明书的启示下和在不脱离本发明权利要求所保护的范围的情况下,还可以做出很多种的形式,这些均属于本发明保护之列。当前第1页1 2 3 
技术特征:1.一种基于层次注意力机制的poi推荐方法,所述方法包括如下步骤:
s100:设计基于lstm的解码器-编码器的显式特征提取模型,用于从结构化数据中提取显式特征;
s200:设计基于nlp的注意力机制的隐式特征提取模型,用于从非结构化数据中提取隐式特征;
s300:使用文本相似度计算用户-poi匹配度;
s400:使用softmax函数从所述显式特征和所述隐式特征中预测出初步poi推荐列表,再使用所述用户-poi匹配度微调该初步poi推荐列表,得到最终poi推荐列表作为预测结果。
2.根据权利要求1所述的方法,优选的,步骤s100进一步包括:
该显式特征提取模型包括了局部注意力机制和整体注意力机制,其中,所述局部注意力机制提取某一时刻用户的每一个特征对预测结果的重要程度,所述整体注意力机制提取某一时刻用户的整体特征对预测结果的重要程度,最终该显式特征提取模型从结构化数据中提取出显式特征向量
3.根据权利要求1所述的方法,步骤s200进一步包括:
该隐式特征提取模型首先使用全连接层从用户签入数据文本的上下文中提取隐藏特征,再使用softmax函数计算注意力权重,最后通过考虑该注意力权重将输入的用户评论和poi描述转换为带注意力权重的用户隐式特征向量和poi隐式特征向量
4.根据权利要求1所述的方法,步骤s300进一步包括:
s301:单词权重计算;
s302:文本相似度计算;
s303:通过上述步骤最终得到用户u对所有poi列表的相似度集合su。
5.根据权利要求1所述的方法,步骤s400进一步包括:
s401:将所述显式特征向量以及隐式特征向量和合并成整体特征向量v;
s402:将整体特征向量v输入全连接层的relu单元,得到加权后的整体特征向量v’,具体为:
v′=relu(vw′ b′)
其中,v为整体特征向量,w’和b’为全连接层的参数,relu为线性整流函数,为拼接操作;
s403:使用softmax函数对所述加权后的整体特征向量v’进行归一化操作,得到了poi列表的概率分布:
y′i=tanh(v′w" b"),i=1,2,…,n
其中,w”和b”是模型可以学习到的超参数,n为poi列表的最大长度;
s404:对yi′进行排序之后得到初步poi推荐列表:
s405:使用用户u对所有poi列表的相似度集合su作为影响权重对yi′进行微调。
6.根据权利要求5所述的方法,步骤s405进一步包括:
首先,使用非线性的方式将权重映射到一个合适的阀值ws,再将该阀值ws以加法的方式微调yi′得到最终的poi列表概率分布y,具体为:
ws=tanh(suwo bo)
y=y′ ws,y′=[y′1,…,y′1,…,y′n]
其中,wo和bo是模型可以学习到的超参数,su为用户u对所有poi列表的相似度集合,tanh为双曲正切函数;
其次,将最终的poi列表概率分布y进行排序,则前k个poi就组成了某个用户当前时刻t的最终poi推荐列表。
7.根据权利要求2所述的方法,其中,局部注意力机制进一步包括:
假设${x_{i:t}}$为时刻t的第i个特征,则有:
xt=(x1:t,x2:t,…,xi:t)
将当前时刻的表达特征向量x1:t、、上一时刻编码器的内部特征和外部特征ht-1输入加性模型进行运算之后,得到重要程度过程如下:
其中,特征个数k为xt的维度,vi、bi、wi和ui是可以学习的参数;
再使用softmax函数进行正则化后得到xt的注意力权重为
最后根据和x1:t计算出局部特征向量:
8.根据权利要求2所述的方法,其中,整体注意力机制进一步包括:
首先使用加性模型构造注意力打分函数:
其中,vj、bj、wj和uj是模型可以学习到的超参数,为注意力分布,为vj的转置操作;
其次,使用卷积神经网络对xt进行降维和合并,得到模型的输入数据之后再使用softmax函数来完成注意力分布的计算过程:
最后根据和计算全局特征向量
9.根据权利要求4所述的方法,步骤s301进一步包括:
使用tf-idf算法计算时刻t的用户评论rt的第i个单词在第n个poi的描述gn中的权重
其中,(g1,g2,…,gn,…,gn)为所有poi的描述的集合,n是poi列表的个数;tf()为词频函数,用于分析用户评论的各个单词在拟对比的poi的描述中出现的次数;df()为反文档频率函数,用于计算包含了用户评论的各个单词在所有poi描述集合中出现的次数。
10.根据权利要求4所述的方法,步骤s302进一步包括:
取rt和gn的前q个有代表性的关键词,表示为rqt和然后这两个值经过余弦相似度函数运算之后,得到rt和gn之间的相似度:
技术总结一种基于层次注意力机制的POI推荐方法,所述方法包括如下步骤:S100:设计基于LSTM的解码器‑编码器的显式特征提取模型,用于从结构化数据中提取显式特征;S200:设计基于NLP的注意力机制的隐式特征提取模型,用于从非结构化数据中提取隐式特征;S300:使用文本相似度计算用户‑POI匹配度;S400:使用softmax函数从所述显式特征和所述隐式特征中预测出初步POI推荐列表,再使用所述用户‑POI匹配度微调该初步POI推荐列表,得到最终POI推荐列表作为预测结果。该方法相较于现有方法,提升数据利用率和推荐精度。
技术研发人员:王小明;庞光垚;郝飞;王亮;谢杰航;王新燕
受保护的技术使用者:陕西师范大学
技术研发日:2019.10.17
技术公布日:2020.06.05