向量序列的分类


9

我的数据集由矢量序列组成。每个向量都有50个实值维。序列中载体的数量为3-5至10-15。换句话说,序列的长度不是固定的。

一些相当数量的序列(不是向量!)用类标签注释。我的任务是学习给定向量序列的分类器,计算整个序列的类标签。

我无法说出数据的确切性质,但是序列的性质不是暂时的。但是,如果不更改标签(),则向量不能与向量互换。换句话说,向量的顺序很重要。向量本身是可比较的,例如,计算点​​积并使用此相似度值是有意义的。X一世XĴ一世Ĵ

我的问题是:什么可以帮助分类此类数据的工具/算法?

更新:数据具有这样的属性,即一个或很少的向量会强烈影响类标签。

可能的解决方案:经过一些研究,看起来递归神经网络(RNN)非常自然。总体思路是选择一个上下文大小,连接单词向量,进行最大池化并通过经典NN进行馈送。在句子中每个可能的上下文窗口位置处,构建一个特征向量。例如,使用最大池构建最终特征向量。进行反向传播以调整网络参数。我已经取得了一些积极的成果(GPU是必须的)。ķ

Answers:


3

由于您无法透露太多细节,因此我不得不在回答中有点泛泛。我希望它会有所帮助。首先,如果您可以确保以后不会丢失分类所需的信息,那么我只会考虑在分类之前减少序列(使用点积或其他方法)。因此,仅当您对分类的性质有所了解时,此方法才可行。举一个简单的例子:如果类标签只是序列中向量的数目,从点积预测类标签将不会很成功。

因此,我会将完整序列作为分类的输入,并在要考虑的序列长度上施加最大值。为此,您可以先在训练集中找到最大序列长度m,然后将50维向量的每个序列转换为50 * m维的向量,如果序列没有最大长度。您可能希望摆脱这些缺失的值,并且可能只想将它们替换为零。

您可以从这里走两条路:1.)您直接应用适用于高维的分类方法。尝试一些不需要天真贝叶斯调校的简单操作。这样,您可以查看此方法是否可行,而不会浪费太多时间。2)您首先尝试减小尺寸,并更好地了解分类的性质。您可能要使用主成分分析之类的方法,或者分析每个矢量成分与类标签之间的相关性/关联性。如果成功,您将知道在应用分类之前如何适当减小输入的维数。

如果您想遵循这些想法中的任何一个,请记住,数据的具体细节和分类可能会使上面提出的任何想法都不可行。因此,在确保您不会浪费时间之前,请务必仔细检查您知道但无法在此处发布的任何详细信息。


0

数据具有这样的性质,即一个或很少的向量会强烈影响类标签。

最好的(也是最简单的)方法可能是简单地在每个向量上训练分类器,然后对给定序列将向量中的预测取平均。重要的向量在其预测中会产生很大的影响,而对不重要的向量的预测将接近0.5(对于非二进制分类问题,预测将接近)。


并不是的。尤其是如果您有许多没有重要信息的向量。.如果走那条路,那么绝对要使用LSTM :)
pir 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.