随着互联网经济的普及定位技术的快速发展,人们在日常生活中产生了大量的轨迹数据,例如出租车的GPS数据、快递配送员PDA产生的轨迹数据等。轨迹数据是一种典型的时空数据(Spatial-Temporal Data),是按照时间顺序索引且空间变化的一系列数据点。在时空数据的数据挖掘中,我们也会大量借鉴在自然语言处理等时序数据中发展很成熟的技术。本次分享为您带来的是Seq2Seq(Sequence to Sequence)模型的技术总结。本次技术分享会着重介绍三个里程碑式的方法,Sequence to SequenceLearning with Neural Networks [1], Learning Phrase Presentations using RNNEncoder-Decoder for Statistical Machine Translation [2], Neural MachineTranslation by Jointly Learning to Align and Translate [3]. 一、Sequenceto Sequence Learning with Neural Networks本章我们将会介绍Sutskever I.等人于2014年发表在NeurIPS的一篇论文[1],目前引用量已经超过12000次。最常见的Seq2Seq模型是解码器-编码器(Encoder-Decoder)模型,由于时序数据的序列性质,通常情况下,我们使用RNN(Recurrent Neural Network)在Encoder中得到输入序列的特征向量,再将此特征向量输入Decoder中的另一个RNN模型,逐一生成目标序列的每一个点,图1展示了该模型的基本框架,以德文翻译至英文为例:
3.Seq2SeqSeq2Seq部分的逻辑与前一章相似,Decoder每次预测下一步的单词,由Seq2Seq循环生成目标序列,此部分不再做过多赘述。三、Neural Machine Translation by Jointly Learning to Align and Translate前面两章我们为大家介绍了两种Seq2Seq的模型,虽然在第二种模型里,可以很好的提取源序列的信息,并用在每一个目标序列的输出上,但无法避免另一个问题。无论是自然语言里的句子,还是轨迹数据,这些序列中的每一个点更多情况下是受周围或者部分其他点的影响,而不是整个序列。举例来说,一条长度为10公里的轨迹,车辆行驶速度更大概率是受当前位置前后一公里整体行驶速度的影响,而不是更遥远的地方。因此,在生成目标序列时,更好的办法不是在每一步加入之前源序列的全部信息,而是只关注部分信息。Bahdanau, D.等人[3]同样也在2014年发表一篇影响力深远的论文,他们的亮点是首次在Seq2Seq模型中加入了Attention思想,目前引用量已经超过15000次。本章中涉及到EncoderAttention Decoder Seq2Seq,其中Encoder与Seq2Seq与前面两章无异,本章将只介绍Attention模型在Decoder中的应用。
我们会在Decoder中的每一步重新计算权重向量,并把这个权重向量用在DecoderRNN的输入以及全连接层的输入,如图3所示(橘色)。2.DecoderDecoder层的实现逻辑与第二章很相似,区别在于把原来的替换成了权重向量w,这样就可以保证目标序列在Decoder中不需要关注源序列的全部信息,而是专注于与自身相关的信息。加入Attention,不仅能帮助Decoder在上生成序列时关注有效信息,还可以减少信息过多带来的冗余,一定程度上可以减少参数的更新。以上就是本次技术分享关于Seq2Seq模型的总结,从最基础的Seq2Seq模型,到基于短语学习的Seq2Seq模型,再到基于Attention的Seq2Seq,每一个方法都在不同阶段解决了一定的问题,经过时间的证明,这三篇论文在Seq2Seq领域都有非常大的影响力,是经典之作。Seq2Seq不仅可以运用在自然语言处理领域,时空数据领域也有会有很多应用,未来JUST也会在这一方面做进一步的挖掘和研究。参考文献:[1]Sutskever, I., Vinyals, O. and Le, Q.V., 2014.Sequence to sequence learning with neural networks. In Advances inneural information processing systems (pp. 3104-3112).[2]Cho, K., Van Merriënboer, B., Gulcehre, C.,Bahdanau, D., Bougares, F., Schwenk, H. and Bengio, Y., 2014. Learning phraserepresentations using RNN encoder-decoder for statistical machinetranslation. arXiv preprint arXiv:1406.1078.[3] Bahdanau, D., Cho, K. and Bengio, Y., 2014.Neural machine translation by jointly learning to align and translate. arXivpreprint arXiv:1409.0473.[4] PytorchSeq2Seq Tutorial –Sequence to Sequence Learning with Neural Network[5]Pytorch Seq2Seq Tutorial – LearningPhrase Representations with RNN Encoder-Decoder for Statistical MachineTranslation[6]Pytorch Seq2Seq Tutorial – NeuralMachine Translation by Jointly Learning to Align and Translate
0 条评论