oferweintraub's picture
Update README.md
3cb895b
|
raw
history blame
2.72 kB
metadata
license: apache-2.0
tags:
  - Finance-sentiment-analysis
  - generated_from_trainer
metrics:
  - f1
  - accuracy
  - precision
  - recall
model-index:
  - name: bert-base-finance-sentiment-noisy-search
    results: []

bert-base-finance-sentiment-noisy-search

This model is a fine-tuned version of bert-base-uncased on Kaggle finance news sentiment analysis with data enhancement using noisy search. The process is explained below:

  1. First "bert-base-uncased" was fine-tuned on Kaggle's finance news sentiment analysis https://www.kaggle.com/ankurzing/sentiment-analysis-for-financial-news dataset achieving accuracy of about 88%
  2. We then used a logistic-regression classifier on the same data. Here we looked at coefficients that contributed the most to the "Positive" and "Negative" classes by inspecting only bi-grams.
  3. Using the top 25 bi-grams per class (i.e. "Positive" / "Negative") we invoked Bing news search with those bi-grams and retrieved up to 50 news per bi-gram phrase.
  4. We called it "noisy-search" because it is assumed the positive bi-grams (e.g. "profit rose" , "growth net") give rise to positive examples whereas negative bi-grams (e.g. "loss increase", "share loss") result in negative examples.
  5. For each article we kept the title + excerpt and labeled it according to the noisy pre-assumption
  6. We then trained the same model on the noisy data and apply it to an held-out test set from the original set split.
  7. Training with couple of thousands noisy "positives" and "negatives" yielded a test set accuracy of about 95%.

Accuracy results for Logistic Regression (LR) and BERT (base-cased) are shown below

Accuracy | Kaggle | Enhanced noisy data set LR | 79.0% | 95.1% BERT | 88.7% | 95.2%

Here we describe the process in more detail alongside with other metrics - https://drive.google.com/file/d/1MI9gRdppactVZ_XvhCwvoaOV1aRfprrd/view?usp=sharing

Model description

More information needed

Intended uses & limitations

More information needed

Training and evaluation data

More information needed

Training procedure

Training hyperparameters

The following hyperparameters were used during training:

  • learning_rate: 5e-05
  • train_batch_size: 8
  • eval_batch_size: 8
  • seed: 42
  • optimizer: Adam with betas=(0.9,0.999) and epsilon=1e-08
  • lr_scheduler_type: linear
  • num_epochs: 5

Framework versions

  • Transformers 4.16.2
  • Pytorch 1.10.0+cu111
  • Datasets 1.18.3
  • Tokenizers 0.11.0