日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ESIM (Enhanced LSTM for Natural Language Inference)

發布時間:2025/4/5 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ESIM (Enhanced LSTM for Natural Language Inference) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

ESIM歷史意義:

1、 深層次的挖掘文本間的語義關系特征

2、加入文本語法結構信息

?

本文主要結構如下:

一、Abstract

1、推理是人工智能的關鍵體現

2、SNLI為推理模型提供數據支撐

3、文中提出的模型不需要復雜的模型結構且效果較好

4、融合語法樹模型,效果更佳

二、Introduction

? ? ?主要介紹數據集和推理的相關背景知識

三、Related Work

? ? ? ? ? ?簡單的介紹了相關工作以及數據集的相關應用情況

四、Hybrid Neural Inference Models

模型結構輸入層-輸入編碼層,即輸入的兩個匹配文本數值矩陣通過雙向LSTM獲得輸出,與此同時還給出Tree-LSTM網絡結構

局部推理建模層: 相當于注意力層,計算注意力矩陣并通過element-wise添加特征維度

推理組合層: 將兩句話特征矩陣通過池化操作得到最終特征向量,實現特征聚合

輸出預測層: 利用全連接 + softmax進行分類

?

五、Experiment Setup

?實驗參數的一些設置,包括學習率、batchsize大小、wordEmbedding維度等

六、Results

? ? ?實驗進行了多組變量分析,最后分析發現 ESIM + tree-LSTM組合效果最好

七、Conclusions and Future Work

? ? ? ? ? 主要是對文章進行總結并對未來進行展望

八、Code

# -*- coding: utf-8 -*-# @Time : 2021/2/16 下午6:54 # @Author : TaoWang # @Description : ESIM網絡結構import torch import torch.nn as nn import numpy as np import pandas as pd from torchtext import data from torchtext.vocab import Vectors from torchtext.data import Field, Example, Iteratorclass ESIM(nn.Module):def __init__(self, text):super(ESIM, self).__init__()self.embedding = nn.Embedding(*text.vocab.vectors.size())self.embedding.weight.data.copy_(text.vocab.vectors)# 輸入編碼層self.a_bilstm_input = nn.LSTM(text.vocab.vectors.size()[1], hidden_size, batch_first=True, bidirectional=True)self.b_bilstm_input = nn.LSTM(text.vocab.vectors.size()[1], hidden_size, batch_first=True, bidirectional=True)# 推理組合層self.a_bilstm_infer = nn.LSTM(8 * hidden_size, hidden_size, batch_first=True, bidirectional=True)self.b_bilstm_infer = nn.LSTM(8 * hidden_size, hidden_size, batch_first=True, bidirectional=True)# 預測層全連接網絡self.linear = nn.Sequential(nn.Linear(8 * hidden_size, 2 * hidden_size),nn.ReLU(True),nn.Linear(2 * hidden_size, linear_size),nn.ReLU(True),nn.Linear(linear_size, classes))def forward(self, a, b):""":param a: :param b: :return: """# 詞嵌入emb_a, emb_b = self.embedding(a), self.embedding(b)# 輸入編碼層a_ba, _ = self.a_bilstm_input(emb_a)b_ba, _ = self.b_bilstm_input(emb_b)# 局部推理建模層e = torch.matmul(a_ba, b_ba.permute(0, 2, 1))a_ti = torch.matmul(torch.softmax(e, dim=2), b_ba)b_ti = torch.matmul(torch.softmax(e, dim=1).permute(0, 2, 1), a_ba)# 矩陣拼接ma = torch.cat([a_ba, a_ti, a_ba - a_ti, a_ba * a_ti], dim=2)mb = torch.cat([b_ba, b_ti, b_ba - b_ti, b_ba * b_ti], dim=2)# 推理組合層va, _ = self.a_bilstm_infer(ma)vb, _ = self.b_bilstm_infer(mb)va_avg, va_max = torch.mean(va, dim=1), torch.max(va, dim=1)[0]vb_avg, vb_max = torch.mean(vb, dim=1), torch.max(vb, dim=1)[0]v = torch.cat([va_avg, va_max, vb_avg, vb_max], dim=1)# 輸出預測層out = self.linear(v)return out

?

總結

以上是生活随笔為你收集整理的ESIM (Enhanced LSTM for Natural Language Inference)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。