使用 LSTM 进行多标签分类

数据挖掘 Python 深度学习 喀拉斯 lstm 多标签分类
2022-02-17 21:02:00

我正在尝试使用 LSTM 使用评论数据和元数据来训练和预测作者

author  phone  country day     review 
james   iphone chile   tuesday the book was really amazing

如何将所有这些功能传递到网络中?

1个回答

由于作者的评论必然会随着评论中使用的单词数量而变化,因此我建议使用 KerasSequential()模型为评论本身构建 LSTM 编码器。然后可以将评论 LSTM 编码器的最终隐藏层输入另一个具有 3 个单词(电话、国家和日期)的 LSTM 编码器。将最后一个 LSTM 编码器视为一个连续的 3 字消息。然后可以将这个 LSTM 的最后一层与 softmax 层结合起来以预测作者。

我建议两个不同的 LSTM 的原因与词嵌入有关。词嵌入基本上是在 LSTM 的多个隐藏层中修改的特征。拥有两个不同的词嵌入意味着 Review Embedding 中的同一个词在另一个 LSTM 嵌入中可能意味着不同,即训练后具有不同的嵌入向量。它确保功能是独立的。您可以争辩说,由于 4 个不同的功能,您可能需要 4 个不同的 LSTM 和嵌入层。这绝对是一个可行的选择,但它可能需要更多的时间来训练。拥有更多的 LSTM 将显着增加超参数,并且训练时间会非常长。

话虽如此,您可能不需要 LSTM 来解决这个问题。您可以轻松地将电话、国家和日期值转换为整数。一周有 7 天,因此 day 的值只能是 0 到 6 之间的一个。这显着降低了特征的维度,从而减少了训练时间。您可能可以尝试将 TF-IDF 用于评论功能或使用简单的词袋模型,并使用随机森林或 SVM 分类器来预测作者。在使用和不使用 LSTM 的情况下执行多个实验并以准确度和性能观察结果会很有趣。