CoolFace
Modelpublic

abhinav-29/fakeddit-bert-fake-news

sourceHugging Facemitupdated 12d agoView on Hugging Face
0likes45downloads
Model Card

Fakeddit Fake-News Classifier (distilbert-base-uncased)

Fine-tuned on a balanced subsample of Fakeddit for binary (real/fake) headline classification, with validation-based checkpoint selection and post-hoc temperature-scaled calibration.

This model classifies headline style, not claim veracity. It is not a general-purpose fact-checker. See Limitations below.

Training data

  • —Source: Fakeddit official train/validate/test TSVs, pooled and re-split (not directly comparable to papers using Fakeddit's own official test split).
  • —Balanced to 6000 examples per class.
  • —Split: 8400 train / 1200 validation / 2400 test, stratified.

Methodology

  • —Candidates fine-tuned across 3 seeds each: bert-base-uncased, distilbert-base-uncased.
  • —Checkpoint selected by validation F1 (best epoch: 2), test set evaluated exactly once.
  • —Post-hoc temperature scaling (Guo et al., 2017) fit on validation logits. Temperature T = 1.0138.
  • —Test ECE: 0.0216 (raw) -> 0.0217 (calibrated).

Evaluation results (held-out test set, evaluated once)

MetricValue
Accuracy0.8108
F1 (weighted)0.8108
Precision (weighted)0.8108
Recall (weighted)0.8108
ECE (calibrated)0.0217

Multi-seed comparison (mean +/- std across 3 seeds):

ModelAccuracyF1
bert-base-uncased0.8090 +/- 0.00410.8090 +/- 0.0041
distilbert-base-uncased0.8086 +/- 0.00410.8086 +/- 0.0041

Limitations

  • —Not a general-purpose fact-checker: labels come from Fakeddit's distant-supervision scheme (subreddit of origin), not per-claim human fact-checking.
  • —Trained only on short English Reddit post titles; untested on articles, other languages, or claims postdating training data collection.
  • —12000 examples is a small, rebalanced subsample of Fakeddit's full corpus.
  • —Calibration reduces average overconfidence, not per-example correctness.

How to use

python
from transformers import AutoModelForSequenceClassification, AutoTokenizer
import torch, torch.nn.functional as F

model = AutoModelForSequenceClassification.from_pretrained("abhinav-29/fakeddit-bert-fake-news")
tokenizer = AutoTokenizer.from_pretrained("abhinav-29/fakeddit-bert-fake-news")
text = "Local city council approves new budget for public libraries"
enc = tokenizer(text, max_length=96, padding="max_length", truncation=True, return_tensors="pt")
with torch.no_grad():
    logits = model(**enc).logits
probs = F.softmax(logits / 1.0138, dim=-1)  # calibrated confidence
print(probs)

Citation

Nakamura, K., Levy, S., & Wang, W. Y. (2020). r/Fakeddit: A New Multimodal Benchmark Dataset for Fine-grained Fake News Detection. Proceedings of LREC 2020.