【问题标题】:Implementing BiLSTM-Attention-CRF Model using Pytorch使用 Pytorch 实现 BiLSTM-Attention-CRF 模型
【发布时间】:2021-05-04 22:18:53
【问题描述】:

我正在尝试为 NER 任务实现 BiLSTM-Attention-CRF 模型。我能够基于 BILSTM-CRF 模型(代码来自 here)执行 NER 任务,但我需要注意提高模型的性能。

现在我的模型是:

BiLSTM -> 线性层(隐藏到标签) -> CRf 层

线性层的输出是(序列长度 x 标记集大小),然后将其馈送到 CRF 层。

我正在尝试使用以下代码将线性层替换为注意力层:

class SelfAttention(nn.Module):
    def __init__(self, hidden_dim):
            super().__init__()
            self.hidden_dim = hidden_dim
            self.projection = nn.Sequential(
                    nn.Linear(hidden_dim, 64),
                    nn.ReLU(True),
                    nn.Linear(64, 1)
            )

    def forward(self, encoder_outputs):
            batch_size = encoder_outputs.size(0)
            # (B, L, H) -> (B , L, 1)
            energy = self.projection(encoder_outputs)
            weights = F.softmax(energy.squeeze(-1), dim=1)
            # (B, L, H) * (B, L, 1) -> (B, H)
            outputs = (encoder_outputs * weights.unsqueeze(-1)).sum(dim=1)
            return outputs, weights

这样做时我有两个问题:

  • 我不能让它工作,所以输出应该是(seq.length x tagset size)的形状,这样它就可以被送入CRF层。
  • 根据这个paper,我们需要初始化和学习我在注意力模型的这个实现中看不到的词级上下文向量。

请帮帮我。

TIA

【问题讨论】:

    标签: python pytorch named-entity-recognition attention-model


    【解决方案1】:

    您实施的是一种非常不寻常的自我关注。它类似于 the original self-attention for sequence classification,这可能是 Attention is all you need 论文的部分灵感。

    一般来说,注意力可以理解为一种概率隐藏状态检索。给定一些键,您检索一些值。在标准Bahdanau's attention 中,键是解码器状态,值是编码器状态。在 Transformer self-attention 中,用作从其他状态检索一些信息的键,即每个状态同时是一个键和一个值。在特殊情况下,您已经实现,您只有一个在projection 中加密的密钥。您使用这个单一的常量键从隐藏状态中检索一个向量,因此,每个序列您只能得到一个向量。

    您可能想要的是使用 Transformer 风格的自我注意,其中每个状态都用作键 a 获取值的摘要。为此,您可以在 PyTorch 中使用 nn.MultiheadAttention class。除了我所描述的之外,它还进行了多个头部的注意力,因此它可以进行更细粒度的检索。请注意,在您的情况下,查询、键和值是相同的张量,即 Bi-LSTM 的输出。

    【讨论】:

    • 我是注意力新手,将lstm的输出放入multiheadattention类后有点困惑,我们如何处理attnetion层的输出?
    猜你喜欢
    • 2020-10-09
    • 2023-01-21
    • 2021-08-27
    • 2019-11-18
    • 2018-12-08
    • 2017-12-12
    • 2016-06-01
    • 2018-03-17
    • 2019-10-17
    相关资源
    最近更新 更多