EsferSami's picture
Upload README.md with huggingface_hub
33b5135 verified
|
Raw
History Blame Contribute Delete
3.25 kB
---
language:
- bn
- en
license: mit
tags:
- multimodal
- sentiment-analysis
- meme
- cross-attention
- xlm-roberta
- eva-clip
- bengali
- multilingual
datasets:
- memosen
metrics:
- f1
- accuracy
---
# Meme Sentiment Analysis β€” Dual Cross-Attention (V1)
**Author:** EsferSami
**Task:** Multilingual Multimodal Meme Sentiment Analysis
**Dataset:** [MemoSen β€” Kaggle](https://www.kaggle.com/datasets/arifkaggle979/memosen-dataset)
**Version:** V1 β€” Frozen Encoders (Pure Pretrained Baseline)
---
## Overview
MemoSen is a multilingual multimodal meme sentiment dataset containing Bengali, English, and code-mixed meme captions paired with meme images. Each sample has a sentiment label: Positive, Negative, or Neutral.
This model resolves cross-modal conflict between meme text and image using a dual cross-attention framework. Meme understanding is challenging because text and image often conflict β€” especially in sarcastic, ironic, or culturally specific memes.
---
## Model Architecture
| Component | Details |
|-----------------------|---------------------------------------|
| Text Encoder | XLM-RoBERTa base (frozen) |
| Image Encoder | EVA02-CLIP-L/14 from QuanSun (frozen) |
| Feature Dim | 768 projected to 512 |
| Fusion | Dual Cross-Attention + Adaptive Gating|
| Conflict Detection | Cosine similarity + MLP |
| Reliability Weighting | Per-modality sigmoid scoring |
| Classifier | MLP (512 -> 256 -> 128 -> 3) |
---
## Dataset
Dataset: [MemoSen on Kaggle](https://www.kaggle.com/datasets/arifkaggle979/memosen-dataset)
| Split | Ratio |
|------------|-------|
| Train | 70% |
| Validation | 15% |
| Test | 15% |
**Classes:** Positive, Negative, Neutral
**Languages:** Bengali, English, Code-mixed (Banglish)
---
## Training Configuration
| Parameter | Value |
|------------------|--------------------------|
| Epochs | 50 (early stopped at 26) |
| Optimizer | AdamW (lr=1e-4) |
| Scheduler | CosineAnnealingLR |
| Loss | Focal Loss + Class Weights|
| Early Stopping | Patience = 7 |
| Batch Size | 32 |
| Max Text Length | 128 tokens |
| Image Size | 224 x 224 |
| GPU | T4 (Kaggle) |
---
## Results (Validation Set)
| Metric | Score |
|----------|------------------|
| Macro-F1 | 0.5584|
> Full test set metrics will be updated after evaluation.
> Main metric: Macro-F1
---
## Training Curves
![Training Curves](training_curves_v1.png)
---
## Notes
- V1 uses fully frozen encoders β€” only fusion and classification layers are trained
- Trainable parameters are limited to adaptation, cross-attention, conflict detection, reliability weighting, gated fusion, and MLP classifier
- V2 will experiment with unfreezing encoders and architecture modifications
---
## Citation
If you use MemoSen dataset, please refer to the original dataset on Kaggle:
https://www.kaggle.com/datasets/arifkaggle979/memosen-dataset