如何使用注意力机制对 RNN 建模以进行非文本分类?
Posted
技术标签:
【中文标题】如何使用注意力机制对 RNN 建模以进行非文本分类?【英文标题】:How to model RNN with Attention Mechanism for Non-Text Classification? 【发布时间】:2019-06-11 18:43:31 【问题描述】:带有注意机制的循环神经网络 (RNN) 通常用于机器翻译和自然语言处理。在 Python 中,带有注意机制的 RNN 的实现在机器翻译中非常丰富(例如https://talbaumel.github.io/blog/attention/,但是我想做的是在时间数据文件(不是任何基于文本/句子的数据)上使用带有注意机制的 RNN .
我有一个尺寸为 21392 x 1972 的 CSV 文件,我已使用 Pandas 将其转换为 Dataframe。第一列是日期时间格式,最后一列由我想识别的“Class1”、“Class2”、“Class3”等目标类组成。所以总共有 21392 行(10 分钟时间步长的数据实例)和 1971 个特征。最后(第 1972 列)是标签列,共有 14 个不同的类。
我已经查看了 Keras (https://medium.com/datalogue/attention-in-keras-1892773a4f22) 和 Tensorflow (Visualizing attention activation in Tensorflow) 上的可用实现文档,但它们似乎都没有做我想做的事情。我知道这是一种不寻常的方法,但我想尝试一下并使用注意力机制,因为我的许多特征在数据中可能是多余的。
import pandas as pd
mydataset = pd.read_csv('final_merged_data.csv')
从现有文献中可以看出,注意力机制在耦合到 RNN 时效果很好。我无法找到任何这样的带有注意力机制的 RNN 实现,它也可以提供可视化。我也无法理解如何将我的数据转换为序列(或列表列表),以便之后我可以将它与 One Hot Encoding 一起使用,以使用带有注意力的 RNN。我是使用 Python 以及 Keras/Tensorflow 的新手,并且对将我的数据/类型转换为能够模拟序列分类问题的形式的过程感到非常困惑。我的问题基本上是多类分类,就像通常使用机器学习分类器来预测标签一样,但使用带有注意力的 RNN。在这方面的任何帮助将不胜感激。干杯!
【问题讨论】:
解决了什么问题? 【参考方案1】:请参考这篇论文,了解如何使用带有注意力的序列到序列模型进行时间序列分类。
https://www.computer.org/csdl/proceedings/icdmw/2016/5910/00/07836709.pdf
【讨论】:
以上是关于如何使用注意力机制对 RNN 建模以进行非文本分类?的主要内容,如果未能解决你的问题,请参考以下文章
多图+公式全面解析RNN,LSTM,Seq2Seq,Attention注意力机制