发明内容
本发明目的是解决时空数据目标识别问题中出现的需要人工标注大量数据,以及需要重新训练模型的问题,并且提高了准确率,使得可以用于个性化推荐等实际情况。
针对现有技术的不足,本发明提出一种基于孪生网络的时空数据的目标识别方法,其中包括:
步骤1、构建包括两个子网的孪生网络模型,且两个子网的结构和权重均相同,获取训练样本(x1,x2,y),x1和x2分别表示包括多个兴趣点的时空数据,标签y表示x1和x2是否属于相同目标;
步骤2、将x1和x2分别输入至该孪生网络模型的子网,得到特征向量v(x1)和v(x2),进一步通过距离度量得到特征向量v(x1)和v(x2)间的距离,根据距离与标签y之间的损失反向传播训练该孪生网络模型,得到最终网络模型;
步骤3、取该最终网络模型的子网作为目标识别模型,将待链接目标的时空数据输入该目标识别模型,得到该待链接目标的时空数据的待链接向量,将已知目标的时空数据输入该目标识别模型,得到该已知目标的时空数据的已链接向量,通过比较该待链接向量和已链接向量之间的相似关系,为该待链接目标的时空数据链接目标。
所述的基于孪生网络的时空数据的目标识别方法,其中该孪生网络模型的子网处理时空数据得到特征向量的过程包括:
时空数据T={POI1,POI2,…,POIp},其中POIi是时空数据段中兴趣点,使用双向LSTM获得时空数据的长距离依赖信息:
hLR(t)=LSTMLR(hRL(t-1),w(t),b(t))
hRL(t)=LSTMRL(hRL(t-1),w(t),b(t))
其中LSTMLR和LSTMRL分别为前向LSTM和后向LSTM,w(t)为t时刻的权重,b(t)为t时刻的偏差;
连接每个hLR(i)和hRL(i)得到hi,集合所有hi作为双向LSTM中的隐藏层的输出:
H={h1,h2,…hn}
将H中的所有隐藏层的输出作为输入,并通过以下公式得到时空数据序列的最终语义嵌入向量:
M=tanh(w1H)
α=softmax(w2M)
r=Hα
其中w1是权重矩阵,可用于设置时空数据序列中关注的POI的数量,w2是参数向量,α是时空数据序列中不同POI的权重,r是最终语义嵌入向量;
对该最终语义嵌入向量实现降维:
vui=rwrd+brd
其中vui是LSTM网络提取的低纬度语义特征向量,wrd是权重矩阵,brd是偏移值。
所述的基于孪生网络的时空数据的目标识别方法,其中该步骤2包括:
步骤21、通过下式得到时空数据段的语义特征嵌入之间的距离:
其中b1和b2是两个时空数据段的语义特征嵌入,使用欧几里得距离来测量特征嵌入之间的距离,并且将标准化的过程用于距离量度;
步骤22、使用下式得到两个时空数据段的语义特征嵌入之间的距离与标签之间的损失:
当y=0时,两个时空数据段不相似,损失为距离1-D(b1,b2);当y=1时,两个时空数据段相似,损失为D(b1,b2);
步骤23、距离与标签y之间的损失:
L(b1,b2,y)=Γ+R
其中α是正则化的权重。
所述的基于孪生网络的时空数据的目标识别方法,其中该训练样本中由相同目标和不同目标组成的时空数据对的比率为1:1。
本发明还提供了一种基于孪生网络的时空数据的目标识别系统,其中包括:
模块1、构建包括两个子网的孪生网络模型,且两个子网的结构和权重均相同,获取训练样本(x1,x2,y),x1和x2分别表示包括多个兴趣点的时空数据,标签y表示x1和x2是否属于相同目标;
模块2、将x1和x2分别输入至该孪生网络模型的子网,得到特征向量v(x1)和v(x2),进一步通过距离度量得到特征向量v(x1)和v(x2)间的距离,根据距离与标签y之间的损失反向传播训练该孪生网络模型,得到最终网络模型;
模块3、取该最终网络模型的子网作为目标识别模型,将待链接目标的时空数据输入该目标识别模型,得到该待链接目标的时空数据的待链接向量,将已知目标的时空数据输入该目标识别模型,得到该已知目标的时空数据的已链接向量,通过比较该待链接向量和已链接向量之间的相似关系,为该待链接目标的时空数据链接目标。
所述的基于孪生网络的时空数据的目标识别系统,其中该孪生网络模型的子网处理时空数据得到特征向量的过程包括:
时空数据T={POI1,POI2,…,POIp},其中POIi是时空数据段中兴趣点,使用双向LSTM获得时空数据的长距离依赖信息:
hLR(t)=LSTMLR(hRL(t-1),w(t),b(t))
hRL(t)=LSTMRL(hRL(t-1),w(t),b(t))
其中LSTMLR和LSTMRL分别为前向LSTM和后向LSTM,w(t)为t时刻的权重,b(t)为t时刻的偏差;
连接每个hLR(i)和hRL(i)得到hi,集合所有hi作为双向LSTM中的隐藏层的输出:
H={h1,h2,…hn}
将H中的所有隐藏层的输出作为输入,并通过以下公式得到时空数据序列的最终语义嵌入向量:
M=tanh(w1H)
α=softmax(w2M)
r=Hα
其中w1是权重矩阵,可用于设置时空数据序列中关注的POI的数量,w2是参数向量,α是时空数据序列中不同POI的权重,r是最终语义嵌入向量;
对该最终语义嵌入向量实现降维:
vui=rwrd+brd
其中vui是LSTM网络提取的低纬度语义特征向量,wrd是权重矩阵,brd是偏移值。
所述的基于孪生网络的时空数据的目标识别系统,其中该模块2包括:
模块21、通过下式得到时空数据段的语义特征嵌入之间的距离:
其中b1和b2是两个时空数据段的语义特征嵌入,使用欧几里得距离来测量特征嵌入之间的距离,并且将标准化的过程用于距离量度;
模块22、使用下式得到两个时空数据段的语义特征嵌入之间的距离与标签之间的损失:
当y=0时,两个时空数据段不相似,损失为距离1-D(b1,b2);当y=1时,两个时空数据段相似,损失为D(b1,b2);
模块23、距离与标签y之间的损失:
L(b1,b2,y)=Γ+R
其中α是正则化的权重。
所述的基于孪生网络的时空数据的目标识别系统,其中该训练样本中由相同目标和不同目标组成的时空数据对的比率为1:1。
由以上方案可知,本发明的优点在于:
与其它现有的方法相比,本发明训练需要标注的时空数据数据量减少。其次,当加入新的类型的目标时空数据数据后,只需要有极少量的标注数据,便可以识别目标类型,不需要重新训练模型。本发明在相同条件下,提高了识别时空数据段的目标类型的准确率;同时,加入了self-attention机制,用于提高识别率。
具体实施方式
为让本发明的上述特征和效果能阐述的更明确易懂,下文特举实施例,并配合说明书附图作详细说明如下。
如图1所示初始结构示例。孪生网络具有两个结构相同且权重相同的子网。用于训练孪生网络的训练样本是一个元组(x1,x2,y),标签y=0表示x1和x2是不同类型的,y=1表示x1和x2是同一类型,在训练的时候提及的类型均为已知目标的,在测试的时候提及的,类型均为未知目标。分别接收两个输入x1和x2,并将其转换为向量v(x1)和v(x2)。两个输出向量的距离D通过某个距离度量来计算,然后与标签y之间计算损失,通过损失反向传播来训练孪生网络模型。
在子网中加入自注意力机制self-attention。本发明引入了self-attention机制,以更准确地获取时空数据段中的语义信息。LSTM模型(或GRU)使用最后一层的隐藏状态作为时空数据段的语义嵌入表示。但是,此方法中,时空数据段中的不同兴趣点POI对于识别时空数据的目标具有相同程度的语义信息。同时,该方法会忽略很多有关POI的信息。基于此,本发明中使用self-attention机制将隐藏状态H={H1,H2,…,Hn}的所有信息作为输出,并对不同的POI赋予不同的权重。例如,不同的目标对不同的POI具有不同的偏好。假设目标对POI1,POI2,POI3,和POI4有一定程度的偏好,并且给定的时空数据段T1和时空数据段T2通过POI1。当判断T1和T2之间的语义相似性时,带有self-attention机制的模型在执行时空数据段的语义嵌入时会为POI1分配更高的权重。该模型描述如下:
假设有一个长度为p的时空数据段序列,那么时空数据段可以表示为:T={POI1,POI2,…,POIp};其中POIi是时空数据段中的兴趣点,并且每个POI的嵌入表达式都是通过NLP中的词嵌入方法获得的。使用双向LSTM来获得时空数据序列中的长距离依赖信息:
hLR(t)=LSTMLR(hRL(t-1),w(t),b(t))
hRL(t)=LSTMRL(hRL(t-1),w(t),b(t))
其中长短期记忆网络LSTM为网络的整体架构,该架构分为两层LSTM(图中未绘示,图中绘示内容为“前向”和“后向”结合后的整个双向LSTM的情况),其中,LSTMLR和LSTMRL分别为前向LSTM和后向LSTM,w(t)为t时刻的权重,b(t)为t时刻的偏差。
为了在时空数据段中获得更多的语义信息,将每个hLR(i)和hRL(i)连接以获得hi。将所有hi作为隐藏层的输出:
H={h1,h2,…hn}
隐藏层是由很多隐藏层单元组成的,H是所有隐藏层单元输出组成的向量,而hn是其中一个隐藏层单元的输出。
在“self-attention”机制中,将H中的所有隐藏层作为输入,并通过以下公式计算时空数据序列的最终表达:
M=tanh(w1H)
α=softmax(w2M)
r=Hα
其中w1是权重矩阵,可用于设置时空数据序列中关注的POI的数量,w2是参数向量,α是时空数据序列中不同POI的权重,r是最终语义嵌入向量,即高纬度的语义特征。
使用DR(降维Dimensional Reduction)方法,如图2。为了实现时空数据嵌入表达式的降维目标,类似于CNN中的全连接层,使用DR在通过孪生网络的轨迹和用户链接(TULSN)中实现降维,并提高了识别效率。该方法的原理如下:
vui=rwrd+brd
其中vui是LSTM网络提取的低纬度语义特征向量,wrd是权重矩阵,初始时是预设的,然后在后面的训练中不断的迭代更新,brd是偏移值。它的作用是将高纬度语义特征向量映射到低纬度空间,同时确保它仍然包含丰富的语义信息。
假设高纬度语义特征向量V=[v1,v2,v3,…vm],则可以通过矩阵计算获得低维空间中的语义表达式:
其中,m是高纬度语义特征向量的长度,n是变换后的低纬度特征向量的长度,m>n。
(一)向量的hash化
为了达到将时空数据表达嵌入二进制码的目的,发明中实现了DSH的hash功能,以提高存储和识别效率,具体如下:
在训练网络的过程中,时空数据段的语义特征嵌入之间的距离由下面的公式计算;
其中b1和b2是两个时空数据段的语义特征嵌入,使用欧几里得距离来测量特征嵌入之间的距离,并且为了将距离量度映射到标签,将标准化的过程用于距离量度。标签指的是两个时空数据段是否属于同一目标。
接下来,使用下面的公式来计算两个时空数据段的语义特征嵌入之间的距离与标签之间的损失;
当y=0时,两个时空数据段不相似,损失为距离1-D(b1,b2)。当y=1时,两个时空数据段相似,损失为D(b1,b2)。
为了提高时空数据段的识别效率并减少存储消耗,采用了正则化的方法,其公式如下面所示。
其中α是正则化的权重。
最后,网络的损耗函数可以用下面的方程式表示:
L(b1,b2,y)=Γ+R
(二)训练
发明中,构建训练数据集时,由相同目标和不同目标组成的时空数据对的比率须为1:1。从而确保数据集中正样本和负样本的数据平衡,从而使模型不会对同一目标有更多偏好(或不同的目标)。为了解决这个问题,从原始数据随机抽样以获得训练数据集,从而获得更多的语义信息。
(三)向量表示
v=i*w+b
其中,v是时空数据的向量表示,i是模型的输入,w是权重矩阵,这里是预设的,然后在后面的训练中不断的迭代更新;b是偏置,和w一样,都需要预设,然后在后面的训练中不断的迭代更新。
(四)识别
使用KNN来识别未标记的时空数据段时空数据段之间嵌入的语义的相似性,并将未标记的时空数据段与少数已经存在的时空数据段匹配,从而识别时空数据的目标。
(五)方法流程
本发明中的关键点为以上部分,该方法用于目标识别的使用步骤具体如下:
步骤101:搭建一个初始孪生网络,该网络的整体结构形如图1。
步骤102:将步骤101中搭建的初始孪生网络中的两个子网络分别加入self-attention机制。
步骤103:在步骤102中搭建的网络的输出部分使用DR的方法对网络的输出向量进行降维,降低计算量,该部分结构如图2。
步骤104:在网络中加入DeepHash对网络的输出hash化,便于存储和相似度计算。
步骤105:在搭建好的网络中输入有标记的训练数据,对网络进行训练。训练内容具体是加入训练数据,通过输出和标记之间的误差反传递,对模型进行训练,以便后续的使用。
步骤106:取步骤105中训练好的孪生网络的子网络,挑选部分或全部已知目标的时空数据和所有待链接目标的时空数据,将以上时空数据表示为向量的形式。
步骤107:使用KNN的方法,通过比较步骤106中得到的时空数据的的向量之间的相似关系,为每个待链接目标的时空数据找到最相似的已知目标的时空数据,从而链接该时空数据的目标。
至此,利用新型网络图3进行时空数据-目标链接的任务完成。
与其他方式相比,本发明实例化了一个结构用于当所要分类的目标数目非常多的时候,利用现有的已经标记好的目标的移动数据来进行未标记移动数据的分类,不需要再重新标记移动数据。
本发明采用孪生网络来学习移动数据的嵌入表示从而建模移动数据之间的内部关系。当加入新的类型的目标移动数据后,只需要极少量的标记数据,便可以识别出目标类别,不需要重新训练模型。
本发明通过加入self-attentio机制,得到每一个兴趣点(POI)的重要程度,使得在获得每一个子时空数据的语义信息时,为不同的POI赋予不同的权重,从而提高移动数据识别目标的准确率。
本发明提出了基于DR-DeepHash的方法,该方法通过对输出的移动数据的嵌入表示进行降维,以及编码成一串二值编码,从而提高移动数据的目标类别的检索效率,同时减少了存储空间。
以下为与上述方法实施例对应的系统实施例,本实施方式可与上述实施方式互相配合实施。上述实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在上述实施方式中。
本发明还提供了一种基于孪生网络的时空数据的目标识别系统,其中包括:
模块1、构建包括两个子网的孪生网络模型,且两个子网的结构和权重均相同,获取训练样本(x1,x2,y),x1和x2分别表示包括多个兴趣点的时空数据,标签y表示x1和x2是否属于相同目标;
模块2、将x1和x2分别输入至该孪生网络模型的子网,得到特征向量v(x1)和v(x2),进一步通过距离度量得到特征向量v(x1)和v(x2)间的距离,根据距离与标签y之间的损失反向传播训练该孪生网络模型,得到最终网络模型;
模块3、取该最终网络模型的子网作为目标识别模型,将待链接目标的时空数据输入该目标识别模型,得到该待链接目标的时空数据的待链接向量,将已知目标的时空数据输入该目标识别模型,得到该已知目标的时空数据的已链接向量,通过比较该待链接向量和已链接向量之间的相似关系,为该待链接目标的时空数据链接目标。
所述的基于孪生网络的时空数据的目标识别系统,其中该孪生网络模型的子网处理时空数据得到特征向量的过程包括:
时空数据T={POI1,POI2,…,POIp},其中POIi是时空数据段中兴趣点,使用双向LSTM获得时空数据的长距离依赖信息:
hLR(t)=LSTMLR(hRL(t-1),w(t),b(t))
hRL(t)=LSTMRL(hRL(t-1),w(t),b(t))
其中LSTMLR和LSTMRL分别为前向LSTM和后向LSTM,w(t)为t时刻的权重,b(t)为t时刻的偏差;
连接每个hLR(i)和hRL(i)得到hi,集合所有hi作为双向LSTM中的隐藏层的输出:
H={h1,h2,…hn}
将H中的所有隐藏层的输出作为输入,并通过以下公式得到时空数据序列的最终语义嵌入向量:
M=tanh(w1H)
α=softmax(w2M)
r=Hα
其中w1是权重矩阵,可用于设置时空数据序列中关注的POI的数量,w2是参数向量,α是时空数据序列中不同POI的权重,r是最终语义嵌入向量;
对该最终语义嵌入向量实现降维:
vui=rwrd+brd
其中vui是LSTM网络提取的低纬度语义特征向量,wrd是权重矩阵,brd是偏移值。
所述的基于孪生网络的时空数据的目标识别系统,其中该模块2包括:
模块21、通过下式得到时空数据段的语义特征嵌入之间的距离:
其中b1和b2是两个时空数据段的语义特征嵌入,使用欧几里得距离来测量特征嵌入之间的距离,并且将标准化的过程用于距离量度;
模块22、使用下式得到两个时空数据段的语义特征嵌入之间的距离与标签之间的损失:
当y=0时,两个时空数据段不相似,损失为距离1-D(b1,b2);当y=1时,两个时空数据段相似,损失为D(b1,b2);
模块23、距离与标签y之间的损失:
L(b1,b2,y)=Γ+R
其中α是正则化的权重。
所述的基于孪生网络的时空数据的目标识别系统,其中该训练样本中由相同目标和不同目标组成的时空数据对的比率为1:1。