模型介绍
LSTM:长短期记忆网络(Long-short-term-memory),能够记住长句子的前后信息,解决了RNN的问题(时间间隔较大时,网络对前面的信息会遗忘,从而出现梯度消失问题,会形成长期依赖问题),避免长期依赖问题。
模型结构
遗忘门:控制上一个时刻的内部长期状态需要遗忘多少信息
输入门:控制当前时刻的候选长期状态有多少信息需要保留
输入门:控制当前时刻的内部长期状态有多少信息需要输出给外部
图1 LSTM 结构图1
图1 LSTM 结构图2
这里的 σ 就是一个门,是 sigmoid 激活函数。
模型详解
知乎上的文章,里面有详细介绍
数据准备
数据集用的是论文【ACL 2018Chinese NER using Lattice LSTM】中从新浪财经收集的简历数据。每一句话用换行进行隔开。
模型准备
self.lstm = nn.LSTM(embedding_num, hidden_num, batch_first=True, bidirectional=bi)
def forward(self, text, label=None):
embedding = self.embedding(text)
out, _ = self.lstm(embedding)
pred = self.classifier(out)
self.pred = torch.argmax(pred, dim=-1).reshape(-1)
if label is not None:
loss = self.loss(pred.reshape(-1, pred.shape[-1]), label.reshape(-1))
return loss
return torch.argmax(pred, dim=-1).reshape(-1)
模型预测
源码获取
硬性的标准其实限制不了无限可能的我们,所以啊!少年们加油吧!