This Repository contains a viable, novel method for Semantic Proto-role Labelling (SPRL) using Natural Language Inference (NLI). We provide formatted SPRL datasets, a SPRL-finetuned variant of roberta-large-mnli and a logistic regressor to solve the binary classification problem of SPRL. By predicting the entailment of a given property set meant to identify agent- and patientlike qualities of a given argument in a given input sentence, we create an entailment vector functioning as the SPRL model's input.
We evaluate the resulting models using state-of-the-art frameworks, baselines and various robustness tests and observe performance in line with the state-of-the-art.
In order to get started, clone the repository as follows:
git clone https://github.com/Shaip161/SPRL.git --recursiveUse --recursive to clone the roberta-large-mnli submodule as well.
After cloning the repository, create a Python virtual environment in the project directory. This isolates the project dependencies from the global Python environment. Use the following command:
python -m venv my_venvAfter that, activate the virtual envirnment using the commands:
my_venv\Scripts\activatesource my_venv/bin/activateWith the virtual environment activated, install all required Python packages specified in the requirements.txt file:
pip install -r requirements.txtIn previous work, sets of 14 to 18 properties were applied to target arguments in SPRL tasks. On this basis, sentences were generated with statements postulating the observed argument have that property. We use these sentences as entailment hypotheses and use an NLI model to classify the entailment of this hypothesis in the observed sentence. The NLI model is finetuned on Likert-Scale data: Human annotators annotate each hypothesis with a value of 1 - 5. These annotations infer gold labels for the NLI task.
Given the likelihoods of entailment and contradiction for each hypothesis and a gold label based on VerbNet thematic roles, the SPRL model regresses on a weight vector to solve the binary classification into proto-agent and proto-patient.
We used Reisinger's SPR1 and White's SPR2 dataset to create our own datasets (json files) for later use:
Generally, reis.json, reis_labelled.json, spr1.json, spr2.json, spr2_1.json, spr2_no_pilot.json all consist of the following information:
reis.json was created using Reisinger's SPR1 data to finetune RoBERTa. It additionally contains the following entries:
It consists of 6363 entries using 18 different properties.
reis_labelled.json is the subset of entries in reis.json on which we could find a VerbNet entry for the giving roleset using NLTK. We use this data to train weights for the different property features and also to evaluate how good a model is at the SPRL task. It additionally contains the following entry:
spr1.json, spr2.json, spr2_1.json were created using White's SPR2 data. They are mainly used for finetuning RoBERTa and additionally have the following entry:
spr2_no_pilot.json consists of all spr2.json entries with ispilot = False. It is used for ablation studies. It consists of 2758 entries.
There are sentences which got annotated by multiple annotators. To not have duplicate (premise, hypothesis) pairs and decrease overall finetuning duration, we also use variations of the above datasets where we average over all the labels for a given property.
To train the weights of our different properties we created files of the format "model_predictions.json" containing 2715 datapoints which each consist of the following entries:
We finetuned RoBERTa and trained our SPRL model separately, as the SPRL training data had to include the entailment predictions. Due to the sequential nature of this training process, it was not only computationally intensive, but also time-intensive. Thus, a bug which impacted performance of the SPRL model greatly was noticed shortly before the project deadline.
As our base model we used roberta-large-mnli, which is the RoBERTa large model fine-tuned on the Multi-Genre Natural Language Inference (MNLI) corpus. We use this model to maximize performance on the NLI task needed during the finetuning process.
To generate train, test and dev data with gold labels from our own datasets (json) which use likert scale data, we did the following procedure:
We iterate through all datapoints in our dataset. We create the pair of (premise, hypothesis) as follows:
If a property is deemed applicable in its context, we denote the gold label as 'entailment' if the likert label is >= 4 for the given property and 'contradiction' if the likert label is < 4. If a property is not deemed applicable, we denote the gold label as 'neutral'.
We chose to handle gold labels this way, since non-applicable properties don't provide a feasible likert label for us to use.
We finetuned the roberta-large-mnli model using Hugging Face's transformer library Trainer class using the following TrainingArguments:
We finetuned 5 different models:
Given a model and an instance of our reis_labelled.json, we tackle the SPRL task in the following way:
We use the given model to compute entailment and prediction likelihoods for all 18 properties. We then calculate the dot product of these 36 features with 36 weights, whilst adding an bias. After that, we use the sigmoid function on the result; a value >= 0.5 returns proto-agent as predicted, a value < 0.5 returns proto-patient as predicted.
To get the weights and bias, we created "model_predictions.json" files as mentioned in Data. We then used the scikit-learn library to create a Logistic Regression linear model for training the weights and bias on our train data. We also tried a Support Vector Machine model to make sure we get a good linear decision boundary whilst using Logistic Regression, which turned out to produce the same accuracy. We additionally directly computed weights using the likert scale data from our dataset, but this turned out to overall have significantly worse accuracy.
In the following section we will introduce 3 evaluation techniques and results in order to objectively compare the trained models with one another.
The Quantitative technique includes:
The results from our different models:
| Model | Overall Accuracy | F1 | Average Log Loss | Proto-Agent Class Accuracy | Proto-Patient Class Accuracy |
|---|---|---|---|---|---|
| roberta-large-mnli | 0.8209150326797385 | 0.8319018404907976 | 0.43994178200779427 | 0.9442896935933147 | 0.7118226600985221 |
| roberta_averaged | 0.7568627450980392 | 0.7866972477064219 | 0.5493920016025409 | 0.9554317548746518 | 0.5812807881773399 |
| roberta_non-averaged | 0.7019607843137254 | 0.7438202247191011 | 0.6178036201613978 | 0.9220055710306406 | 0.5073891625615764 |
| roberta_reisinger | 0.7411764705882353 | 0.7697674418604652 | 0.5318926444518163 | 0.9220055710306406 | 0.5812807881773399 |
| roberta_no-pilot | 0.7620915032679738 | 0.7883720930232558 | 0.5509038203001045 | 0.9442896935933147 | 0.6009852216748769 |
| roberta_white | 0.469281045751634 | 0.6387900355871886 | 0.8862093728993434 | 1.0 | 0.0 |
To test the robustness of our models, we have carried out:
The results of the Adversial Evaluation method using the wights obtained from logistical regression:
The control dataset result
| Model | Overall Accuracy | F1 | Average Log Loss | Proto-Agent Class Accuracy | Proto-Patient Class Accuracy |
|---|---|---|---|---|---|
| roberta_averaged | 0.7 | 0.7692307692307693 | 0.451683302968091 | 1.0 | 0.4 |
| roberta_non-averaged | 0.7 | 0.7692307692307693 | 0.7910062779921779 | 1.0 | 0.4 |
| roberta_no-pilot | 0.95 | 0.9523809523809523 | 0.203242366753267 | 1.0 | 0.9 |
| roberta_reisinger | 0.85 | 0.8695652173913044 | 0.3082706832583492 | 1.0 | 0.7 |
| roberta_white | 0.5 | 0.6666666666666666 | 0.8368979542719753 | 1.0 | 0.0 |
| roberta-large-mnli | 0.9 | 0.9090909090909091 | 0.23855840792802 | 1.0 | 0.8 |
The bias dataset results:
| Model | Overall Accuracy | F1 | Average Log Loss | Proto-Agent Class Accuracy | Proto-Patient Class Accuracy |
|---|---|---|---|---|---|
| roberta_averaged | 0.7 | 0.7692307692307693 | 0.4489823490394652 | 1.0 | 0.4 |
| roberta_non-averaged | 0.7 | 0.7692307692307693 | 0.8150326148910881 | 1.0 | 0.4 |
| roberta_no-pilot | 0.9 | 0.9090909090909091 | 0.223213626842037 | 1.0 | 0.8 |
| roberta_reisinger | 0.8 | 0.8333333333333333 | 0.31446367602131153 | 1.0 | 0.6 |
| roberta_white | 0.5 | 0.6666666666666666 | 0.8502637775315189 | 1.0 | 0.0 |
| roberta-large-mnli | 0.85 | 0.8695652173913044 | 0.2807292437770147 | 1.0 | 0.7 |
The results of the Out of Distribution method using the wights obtained from logistical regression:
| Model | Overall Accuracy | F1 | Average Log Loss | Proto-Agent Class Accuracy | Proto-Patient Class Accuracy |
|---|---|---|---|---|---|
| roberta_averaged | 0.55 | 0.6896551724137931 | 0.5093667188659585 | 1.0 | 0.1 |
| roberta_non-averaged | 0.6 | 0.6363636363636365 | 0.7748667116320569 | 0.7 | 0.5 |
| roberta_no-pilot | 0.8 | 0.7499999999999999 | 0.3736504221758817 | 0.6 | 1.0 |
| roberta_reisinger | 0.85 | 0.8571428571428572 | 0.29798511748203266 | 0.9 | 0.8 |
| roberta_white | 0.5 | 0.6666666666666666 | 0.8195011716349698 | 1.0 | 0.0 |
| roberta-large-mnli | 0.75 | 0.8 | 0.4921452778276362 | 1.0 | 0.5 |
To understand the decision-making of our SPRL-model, we inspect the weights learned from training: As the entailment of certain properties indicates proto-agenthood, those properties recieve large, positive entailment weights. In turn, proto-patient-related property entailment weights recieve large, positive weights as well. By this system, a largely coherent mapping to proto-agent and proto-patient properties can be extracted.
Additionally, we observe token importance in our RoBERTa variant models to understand which part of an input sentence is used to infer the queried properties. We perform these observations using transformers-interpret on multiple examples for multiple properties, including sentience and change of state.
| Prediction Score | Attribution Label | Attribution Score | Word Importance |
|---|---|---|---|
| (0.18) | CONTRADICTION | -0.85 | He listens imp ass ively . He was / were sentient . |
| (0.63) | NEUTRAL | 0.72 | He listens imp ass ively . He was / were sentient . |
| (0.74) | ENTAILMENT | 0.58 | He listens imp ass ively . He was / were sentient . |
| Prediction Score | Attribution Label | Attribution Score | Word Importance |
|---|---|---|---|
| (0.81) | CONTRADICTION | 1.23 | He listens imp ass ively . He was / were altered or somehow changed during or by the end of listens . |
| (0.73) | NEUTRAL | 2.37 | He listens imp ass ively . He was / were altered or somehow changed during or by the end of listens . |
| (0.08) | ENTAILMENT | -2.51 | He listens imp ass ively . He was / were altered or somehow changed during or by the end of listens . |
Using ferret, we are able to not only explain the entailment prediction of the property sentience for "He listens impassively.", but also evaluate the explanation by observing correlation between state-of-the-art explainability methods.
| aopc_compr | aopc_suff | taucorr_loo | |
|---|---|---|---|
| Partition SHAP | 0.17 | -0.05 | 0.45 |
| LIME | 0.16 | -0.15 | 0.30 |
| Gradient | 0.01 | 0.07 | -0.09 |
| Gradient (x Input) | 0.09 | -0.05 | 0.18 |
| Integrated Gradient | 0.04 | -0.12 | 0.21 |
| Integrated Gradient (x Input) | -0.04 | 0.15 | -0.39 |
| He | Ġlistens | Ġimp | ass | ively | Ġ. | ĠHe | Ġwas | / | were | Ġsentient | . | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Partition SHAP | 0.081315 | 0.045069 | -0.104878 | 0.057999 | 0.056598 | 0.039422 | 0.004542 | -0.051674 | 0.056328 | -0.118104 | 0.328409 | 0.055659 |
| LIME | 0.177724 | -0.022607 | -0.102271 | 0.048818 | 0.011405 | 0.009288 | 0.130528 | 0.083796 | 0.018073 | 0.001113 | 0.261391 | 0.132987 |
| Gradient | 0.039101 | 0.046283 | 0.047539 | 0.059878 | 0.055153 | 0.031957 | 0.044065 | 0.051185 | 0.034778 | 0.063744 | 0.360032 | 0.056943 |
| Gradient (x Input) | 0.137561 | 0.070364 | -0.064036 | -0.185072 | 0.095231 | -0.012394 | -0.022001 | -0.129332 | -0.023433 | -0.035298 | 0.179182 | 0.002415 |
| Integrated Gradient | 0.064614 | -0.067027 | -0.096624 | 0.024009 | -0.037160 | -0.124285 | -0.040444 | 0.088329 | 0.095535 | 0.043687 | -0.201441 | -0.011098 |
| Integrated Gradient (x Input) | -0.012721 | 0.012819 | 0.080771 | 0.025040 | 0.107646 | -0.148754 | 0.237772 | 0.071891 | -0.068089 | -0.010841 | 0.220317 | -0.003338 |
We conclude that the approach to SPRL using NLI has merit, as one of our non-averaged model variants can compete with state-of-the-art baselines on similar datasets. However, our method, especially using roberta-large-mnli is immensely computationally intensive and requires large amounts of data. We therefore see great potential for improvement.
We thank our Professor, Dr. Anette Frank, as well as the Institute for Computational Linguistics of the Heidelberg University, for the support we were given and especially the access to resources like the PennTreeBank. This work would not have been possible if not for the written guidance of Reisinger et al. and White et al., who provided the SPR1 and SPR2 datasets. This project additonally powered by huggingface and its provided libraries, the PennTreeBank, PropBank, VerbNet and nltk.
We give out our work under the MIT License.
7 commits
HTML
56.7%
Python
43.3%
This Repository contains a viable, novel method for Semantic Proto-role Labelling (SPRL) using Natural Language Inference (NLI). We provide formatted SPRL datasets, a SPRL-finetuned variant of roberta-large-mnli and a logistic regressor to solve the binary classification problem of SPRL. By predicting the entailment of a given property set meant to identify agent- and patientlike qualities of a given argument in a given input sentence, we create an entailment vector functioning as the SPRL model's input.
We evaluate the resulting models using state-of-the-art frameworks, baselines and various robustness tests and observe performance in line with the state-of-the-art.
In order to get started, clone the repository as follows:
git clone https://github.com/Shaip161/SPRL.git --recursiveUse --recursive to clone the roberta-large-mnli submodule as well.
After cloning the repository, create a Python virtual environment in the project directory. This isolates the project dependencies from the global Python environment. Use the following command:
python -m venv my_venvAfter that, activate the virtual envirnment using the commands:
my_venv\Scripts\activatesource my_venv/bin/activateWith the virtual environment activated, install all required Python packages specified in the requirements.txt file:
pip install -r requirements.txtIn previous work, sets of 14 to 18 properties were applied to target arguments in SPRL tasks. On this basis, sentences were generated with statements postulating the observed argument have that property. We use these sentences as entailment hypotheses and use an NLI model to classify the entailment of this hypothesis in the observed sentence. The NLI model is finetuned on Likert-Scale data: Human annotators annotate each hypothesis with a value of 1 - 5. These annotations infer gold labels for the NLI task.
Given the likelihoods of entailment and contradiction for each hypothesis and a gold label based on VerbNet thematic roles, the SPRL model regresses on a weight vector to solve the binary classification into proto-agent and proto-patient.
We used Reisinger's SPR1 and White's SPR2 dataset to create our own datasets (json files) for later use:
Generally, reis.json, reis_labelled.json, spr1.json, spr2.json, spr2_1.json, spr2_no_pilot.json all consist of the following information:
reis.json was created using Reisinger's SPR1 data to finetune RoBERTa. It additionally contains the following entries:
It consists of 6363 entries using 18 different properties.
reis_labelled.json is the subset of entries in reis.json on which we could find a VerbNet entry for the giving roleset using NLTK. We use this data to train weights for the different property features and also to evaluate how good a model is at the SPRL task. It additionally contains the following entry:
spr1.json, spr2.json, spr2_1.json were created using White's SPR2 data. They are mainly used for finetuning RoBERTa and additionally have the following entry:
spr2_no_pilot.json consists of all spr2.json entries with ispilot = False. It is used for ablation studies. It consists of 2758 entries.
There are sentences which got annotated by multiple annotators. To not have duplicate (premise, hypothesis) pairs and decrease overall finetuning duration, we also use variations of the above datasets where we average over all the labels for a given property.
To train the weights of our different properties we created files of the format "model_predictions.json" containing 2715 datapoints which each consist of the following entries:
We finetuned RoBERTa and trained our SPRL model separately, as the SPRL training data had to include the entailment predictions. Due to the sequential nature of this training process, it was not only computationally intensive, but also time-intensive. Thus, a bug which impacted performance of the SPRL model greatly was noticed shortly before the project deadline.
As our base model we used roberta-large-mnli, which is the RoBERTa large model fine-tuned on the Multi-Genre Natural Language Inference (MNLI) corpus. We use this model to maximize performance on the NLI task needed during the finetuning process.
To generate train, test and dev data with gold labels from our own datasets (json) which use likert scale data, we did the following procedure:
We iterate through all datapoints in our dataset. We create the pair of (premise, hypothesis) as follows:
If a property is deemed applicable in its context, we denote the gold label as 'entailment' if the likert label is >= 4 for the given property and 'contradiction' if the likert label is < 4. If a property is not deemed applicable, we denote the gold label as 'neutral'.
We chose to handle gold labels this way, since non-applicable properties don't provide a feasible likert label for us to use.
We finetuned the roberta-large-mnli model using Hugging Face's transformer library Trainer class using the following TrainingArguments:
We finetuned 5 different models:
Given a model and an instance of our reis_labelled.json, we tackle the SPRL task in the following way:
We use the given model to compute entailment and prediction likelihoods for all 18 properties. We then calculate the dot product of these 36 features with 36 weights, whilst adding an bias. After that, we use the sigmoid function on the result; a value >= 0.5 returns proto-agent as predicted, a value < 0.5 returns proto-patient as predicted.
To get the weights and bias, we created "model_predictions.json" files as mentioned in Data. We then used the scikit-learn library to create a Logistic Regression linear model for training the weights and bias on our train data. We also tried a Support Vector Machine model to make sure we get a good linear decision boundary whilst using Logistic Regression, which turned out to produce the same accuracy. We additionally directly computed weights using the likert scale data from our dataset, but this turned out to overall have significantly worse accuracy.
In the following section we will introduce 3 evaluation techniques and results in order to objectively compare the trained models with one another.
The Quantitative technique includes:
The results from our different models:
| Model | Overall Accuracy | F1 | Average Log Loss | Proto-Agent Class Accuracy | Proto-Patient Class Accuracy |
|---|---|---|---|---|---|
| roberta-large-mnli | 0.8209150326797385 | 0.8319018404907976 | 0.43994178200779427 | 0.9442896935933147 | 0.7118226600985221 |
| roberta_averaged | 0.7568627450980392 | 0.7866972477064219 | 0.5493920016025409 | 0.9554317548746518 | 0.5812807881773399 |
| roberta_non-averaged | 0.7019607843137254 | 0.7438202247191011 | 0.6178036201613978 | 0.9220055710306406 | 0.5073891625615764 |
| roberta_reisinger | 0.7411764705882353 | 0.7697674418604652 | 0.5318926444518163 | 0.9220055710306406 | 0.5812807881773399 |
| roberta_no-pilot | 0.7620915032679738 | 0.7883720930232558 | 0.5509038203001045 | 0.9442896935933147 | 0.6009852216748769 |
| roberta_white | 0.469281045751634 | 0.6387900355871886 | 0.8862093728993434 | 1.0 | 0.0 |
To test the robustness of our models, we have carried out:
The results of the Adversial Evaluation method using the wights obtained from logistical regression:
The control dataset result
| Model | Overall Accuracy | F1 | Average Log Loss | Proto-Agent Class Accuracy | Proto-Patient Class Accuracy |
|---|---|---|---|---|---|
| roberta_averaged | 0.7 | 0.7692307692307693 | 0.451683302968091 | 1.0 | 0.4 |
| roberta_non-averaged | 0.7 | 0.7692307692307693 | 0.7910062779921779 | 1.0 | 0.4 |
| roberta_no-pilot | 0.95 | 0.9523809523809523 | 0.203242366753267 | 1.0 | 0.9 |
| roberta_reisinger | 0.85 | 0.8695652173913044 | 0.3082706832583492 | 1.0 | 0.7 |
| roberta_white | 0.5 | 0.6666666666666666 | 0.8368979542719753 | 1.0 | 0.0 |
| roberta-large-mnli | 0.9 | 0.9090909090909091 | 0.23855840792802 | 1.0 | 0.8 |
The bias dataset results:
| Model | Overall Accuracy | F1 | Average Log Loss | Proto-Agent Class Accuracy | Proto-Patient Class Accuracy |
|---|---|---|---|---|---|
| roberta_averaged | 0.7 | 0.7692307692307693 | 0.4489823490394652 | 1.0 | 0.4 |
| roberta_non-averaged | 0.7 | 0.7692307692307693 | 0.8150326148910881 | 1.0 | 0.4 |
| roberta_no-pilot | 0.9 | 0.9090909090909091 | 0.223213626842037 | 1.0 | 0.8 |
| roberta_reisinger | 0.8 | 0.8333333333333333 | 0.31446367602131153 | 1.0 | 0.6 |
| roberta_white | 0.5 | 0.6666666666666666 | 0.8502637775315189 | 1.0 | 0.0 |
| roberta-large-mnli | 0.85 | 0.8695652173913044 | 0.2807292437770147 | 1.0 | 0.7 |
The results of the Out of Distribution method using the wights obtained from logistical regression:
| Model | Overall Accuracy | F1 | Average Log Loss | Proto-Agent Class Accuracy | Proto-Patient Class Accuracy |
|---|---|---|---|---|---|
| roberta_averaged | 0.55 | 0.6896551724137931 | 0.5093667188659585 | 1.0 | 0.1 |
| roberta_non-averaged | 0.6 | 0.6363636363636365 | 0.7748667116320569 | 0.7 | 0.5 |
| roberta_no-pilot | 0.8 | 0.7499999999999999 | 0.3736504221758817 | 0.6 | 1.0 |
| roberta_reisinger | 0.85 | 0.8571428571428572 | 0.29798511748203266 | 0.9 | 0.8 |
| roberta_white | 0.5 | 0.6666666666666666 | 0.8195011716349698 | 1.0 | 0.0 |
| roberta-large-mnli | 0.75 | 0.8 | 0.4921452778276362 | 1.0 | 0.5 |
To understand the decision-making of our SPRL-model, we inspect the weights learned from training: As the entailment of certain properties indicates proto-agenthood, those properties recieve large, positive entailment weights. In turn, proto-patient-related property entailment weights recieve large, positive weights as well. By this system, a largely coherent mapping to proto-agent and proto-patient properties can be extracted.
Additionally, we observe token importance in our RoBERTa variant models to understand which part of an input sentence is used to infer the queried properties. We perform these observations using transformers-interpret on multiple examples for multiple properties, including sentience and change of state.
| Prediction Score | Attribution Label | Attribution Score | Word Importance |
|---|---|---|---|
| (0.18) | CONTRADICTION | -0.85 | He listens imp ass ively . He was / were sentient . |
| (0.63) | NEUTRAL | 0.72 | He listens imp ass ively . He was / were sentient . |
| (0.74) | ENTAILMENT | 0.58 | He listens imp ass ively . He was / were sentient . |
| Prediction Score | Attribution Label | Attribution Score | Word Importance |
|---|---|---|---|
| (0.81) | CONTRADICTION | 1.23 | He listens imp ass ively . He was / were altered or somehow changed during or by the end of listens . |
| (0.73) | NEUTRAL | 2.37 | He listens imp ass ively . He was / were altered or somehow changed during or by the end of listens . |
| (0.08) | ENTAILMENT | -2.51 | He listens imp ass ively . He was / were altered or somehow changed during or by the end of listens . |
Using ferret, we are able to not only explain the entailment prediction of the property sentience for "He listens impassively.", but also evaluate the explanation by observing correlation between state-of-the-art explainability methods.
| aopc_compr | aopc_suff | taucorr_loo | |
|---|---|---|---|
| Partition SHAP | 0.17 | -0.05 | 0.45 |
| LIME | 0.16 | -0.15 | 0.30 |
| Gradient | 0.01 | 0.07 | -0.09 |
| Gradient (x Input) | 0.09 | -0.05 | 0.18 |
| Integrated Gradient | 0.04 | -0.12 | 0.21 |
| Integrated Gradient (x Input) | -0.04 | 0.15 | -0.39 |
| He | Ġlistens | Ġimp | ass | ively | Ġ. | ĠHe | Ġwas | / | were | Ġsentient | . | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Partition SHAP | 0.081315 | 0.045069 | -0.104878 | 0.057999 | 0.056598 | 0.039422 | 0.004542 | -0.051674 | 0.056328 | -0.118104 | 0.328409 | 0.055659 |
| LIME | 0.177724 | -0.022607 | -0.102271 | 0.048818 | 0.011405 | 0.009288 | 0.130528 | 0.083796 | 0.018073 | 0.001113 | 0.261391 | 0.132987 |
| Gradient | 0.039101 | 0.046283 | 0.047539 | 0.059878 | 0.055153 | 0.031957 | 0.044065 | 0.051185 | 0.034778 | 0.063744 | 0.360032 | 0.056943 |
| Gradient (x Input) | 0.137561 | 0.070364 | -0.064036 | -0.185072 | 0.095231 | -0.012394 | -0.022001 | -0.129332 | -0.023433 | -0.035298 | 0.179182 | 0.002415 |
| Integrated Gradient | 0.064614 | -0.067027 | -0.096624 | 0.024009 | -0.037160 | -0.124285 | -0.040444 | 0.088329 | 0.095535 | 0.043687 | -0.201441 | -0.011098 |
| Integrated Gradient (x Input) | -0.012721 | 0.012819 | 0.080771 | 0.025040 | 0.107646 | -0.148754 | 0.237772 | 0.071891 | -0.068089 | -0.010841 | 0.220317 | -0.003338 |
We conclude that the approach to SPRL using NLI has merit, as one of our non-averaged model variants can compete with state-of-the-art baselines on similar datasets. However, our method, especially using roberta-large-mnli is immensely computationally intensive and requires large amounts of data. We therefore see great potential for improvement.
We thank our Professor, Dr. Anette Frank, as well as the Institute for Computational Linguistics of the Heidelberg University, for the support we were given and especially the access to resources like the PennTreeBank. This work would not have been possible if not for the written guidance of Reisinger et al. and White et al., who provided the SPR1 and SPR2 datasets. This project additonally powered by huggingface and its provided libraries, the PennTreeBank, PropBank, VerbNet and nltk.
We give out our work under the MIT License.
7 commits
HTML
56.7%
Python
43.3%