【文献笔记_因果+文本】Commonsense causal reasoning between short texts

本文提出了一种从大规模网络语料库中自动构建因果关系网络的框架,用于短文本的常识因果推理。通过新颖的统计指标,模型能有效捕捉术语间的因果关系强度,尤其在COPA任务中取得了70.2%的先进准确率。
摘要由CSDN通过智能技术生成

论文地址:https://www.microsoft.com/en-us/research/wp-content/uploads/2016/07/12818-57567-1-PB.pdf
摘要
常识因果推理是捕捉和理解事件和动作之间因果依赖关系的过程。这种事件和动作可以用自然语言文本中的术语、短语或句子来表达。因此,获得因果知识的一种可能方式是从大的文本语料库中提取术语或短语之间的因果关系。然而,文本中的因果关系是稀疏的、模糊的,有时是隐含的,因此很难获得。本文采用数据驱动的方法研究短文本(短语和句子)之间的常识因果推理问题。我们提出了一个框架,从一个大的网络语料库中自动获取因果关系术语网络。在这个网络的支持下,我们提出了一个新颖有效的度量标准来正确地建模术语之间的因果关系强度。我们表明,这些信号可以被聚集起来,用于短文本之间的因果推理,包括句子和短语。特别是,我们的方法在标准的SEMEVAL COPA任务中优于以前报告的所有结果。
COPA:《Choice of Plausible Alternatives: An Evaluation of Commonsense Causal Reasoning》 COPA由一大套2选问题组成,表述为一个前提,两个备选方案写成简单的英语句子。任务是选择更可能是前提所描述的情况的原因(或结果)的替代方案。

1 Introduction
3点贡献:
1.通过利用因果线索,我们从大型网络文本中获得了一个基于术语的因果共现网络;
2.我们开发了一种新

以下是使用TensorFlow的Keras实现带有注意力机制和TCN的模型来预测波士顿房价,并使用过去5步来预测未来1步的示例代码: ```python import numpy as np import pandas as pd from tensorflow.keras.models import Model from tensorflow.keras.layers import Input, Dense, Conv1D, GlobalMaxPooling1D, concatenate, Activation, Dropout from tensorflow.keras.layers import Permute, Lambda, RepeatVector, Multiply, Add, Flatten from tensorflow.keras import backend as K # 读取数据并进行预处理 boston_housing = pd.read_csv('https://storage.googleapis.com/tf-datasets/tf_datasets/boston_housing.csv') train_data = boston_housing.values[:, :-1] train_target = boston_housing.values[:, -1] train_data = (train_data - np.mean(train_data, axis=0)) / np.std(train_data, axis=0) # 定义输入的形状 seq_len = 5 input_shape = (seq_len, train_data.shape[1]) input_layer = Input(shape=input_shape) # 定义注意力机制 def attention_3d_block(inputs): a = Permute((2, 1))(inputs) a = Dense(seq_len, activation='softmax')(a) a = Lambda(lambda x: K.mean(x, axis=1), name='dim_reduction')(a) a = RepeatVector(train_data.shape[1])(a) a_probs = Permute((2, 1), name='attention_vec')(a) output_attention_mul = Multiply()([inputs, a_probs]) return output_attention_mul # 定义TCN模型 def tcn_block(input_layer, n_filters, kernel_size, dilation_rate): d = Conv1D(filters=n_filters, kernel_size=kernel_size, dilation_rate=dilation_rate, padding='causal')(input_layer) d = Activation('relu')(d) d = Dropout(0.2)(d) return d n_filters = 64 kernel_size = 2 dilation_rates = [2**i for i in range(3)] dilated_layers = [] for dilation_rate in dilation_rates: dilated_layers.append(tcn_block(input_layer, n_filters, kernel_size, dilation_rate)) concatenated_layers = concatenate(dilated_layers, axis=-1) # 添加注意力机制 attention_layer = attention_3d_block(concatenated_layers) # 全局最大池化 pooling_layer = GlobalMaxPooling1D()(attention_layer) # 输出层 output_layer = Dense(1)(pooling_layer) # 构建模型 model = Model(inputs=input_layer, outputs=output_layer) # 编译模型 model.compile(optimizer='adam', loss='mse') # 训练模型 model.fit(train_data[:-seq_len-1], train_target[seq_len+1:], epochs=50, batch_size=32, validation_split=0.2) # 预测未来1步 test_data = train_data[-seq_len:] predicted_price = model.predict(np.expand_dims(test_data, axis=0))[0][0] print("Predicted price for the next time step: ", predicted_price) ``` 这个模型包含了一个注意力机制和TCN模块,可以用来预测波士顿房价。在这个例子中,我们使用过去5步来预测未来1步。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值