| | --- |
| | language: en |
| | license: mit |
| | library_name: transformers |
| | pipeline_tag: text-classification |
| | tags: |
| | - text-classification |
| | - motivational-interviewing |
| | - bert |
| | - mental-health |
| | - counseling |
| | - psychology |
| | - transformers |
| | - pytorch |
| | datasets: |
| | - AnnoMI |
| | metrics: |
| | - accuracy |
| | - f1 |
| | - precision |
| | - recall |
| | model-index: |
| | - name: bert-motivational-interviewing |
| | results: |
| | - task: |
| | type: text-classification |
| | name: Text Classification |
| | dataset: |
| | name: AnnoMI |
| | type: AnnoMI |
| | metrics: |
| | - type: accuracy |
| | value: 0.701 |
| | name: Accuracy |
| | - type: f1 |
| | value: 0.579 |
| | name: F1 Score (macro) |
| | widget: |
| | - text: "I really want to quit smoking." |
| | example_title: "Change Talk" |
| | - text: "I don't know if I can do this." |
| | example_title: "Neutral" |
| | - text: "I like smoking, it helps me relax." |
| | example_title: "Sustain Talk" |
| | --- |
| | |
| | # BERT for Motivational Interviewing Client Talk Classification |
| |
|
| | ## Model Description |
| |
|
| | This model is a fine-tuned **BERT-base-uncased** model for classifying client utterances in **Motivational Interviewing (MI)** conversations. |
| |
|
| | Motivational Interviewing is a counseling approach used to help individuals overcome ambivalence and make positive behavioral changes. This model identifies different types of client talk that indicate their readiness for change. |
| |
|
| | ## Intended Use |
| |
|
| | - **Primary Use**: Classify client statements in motivational interviewing dialogues |
| | - **Applications**: |
| | - Counselor training and feedback |
| | - MI session analysis |
| | - Automated dialogue systems |
| | - Mental health research |
| |
|
| | ## Training Data |
| |
|
| | The model was trained on the **AnnoMI dataset** (Annotated Motivational Interviewing), which contains expert-annotated counseling dialogues. |
| |
|
| | - **Training samples**: ~2,400 utterances |
| | - **Validation samples**: ~500 utterances |
| | - **Test samples**: ~700 utterances |
| |
|
| | ## Labels |
| |
|
| | The model classifies client talk into three categories: |
| |
|
| | - **0**: change |
| | - **1**: neutral |
| | - **2**: sustain |
| |
|
| | ### Label Definitions |
| |
|
| | - **Change Talk**: Client statements expressing desire, ability, reasons, or need for change |
| | - Example: "I really want to quit smoking" or "I think I can do it" |
| |
|
| | - **Neutral**: General responses without clear indication of change or sustain |
| | - Example: "I don't know" or "Maybe" |
| |
|
| | - **Sustain Talk**: Client statements expressing reasons for maintaining current behavior |
| | - Example: "I like smoking, it helps me relax" |
| |
|
| | ## Performance |
| |
|
| | ### Test Set Metrics |
| |
|
| | - **Accuracy**: 70.1% |
| | - **Macro F1**: 57.9% |
| | - **Macro Precision**: 59.3% |
| | - **Macro Recall**: 57.3% |
| |
|
| | ### Confusion Matrix |
| |
|
| | ``` |
| | Predicted |
| | change neutral sustain |
| | Actual change 75 78 23 |
| | neutral 43 396 27 |
| | sustain 11 34 36 |
| | ``` |
| |
|
| | **Note**: The model performs best on the "neutral" class (most frequent), and has room for improvement on "change" and "sustain" classes. |
| |
|
| | ## Usage |
| |
|
| | ### Quick Start |
| |
|
| | ```python |
| | from transformers import BertTokenizer, BertForSequenceClassification |
| | import torch |
| | |
| | # Load model and tokenizer |
| | model_name = "RyanDDD/bert-motivational-interviewing" |
| | tokenizer = BertTokenizer.from_pretrained(model_name) |
| | model = BertForSequenceClassification.from_pretrained(model_name) |
| | |
| | # Predict |
| | text = "I really want to quit smoking. It's been affecting my health." |
| | inputs = tokenizer(text, return_tensors="pt", padding=True, truncation=True, max_length=128) |
| | |
| | with torch.no_grad(): |
| | outputs = model(**inputs) |
| | probs = torch.softmax(outputs.logits, dim=1) |
| | pred = torch.argmax(probs, dim=1) |
| | |
| | label_map = model.config.id2label |
| | print(f"Talk type: {label_map[pred.item()]}") |
| | print(f"Confidence: {probs[0][pred].item():.2%}") |
| | ``` |
| |
|
| | ### Batch Prediction |
| |
|
| | ```python |
| | texts = [ |
| | "I want to stop drinking.", |
| | "I don't think I have a problem.", |
| | "I like drinking with my friends." |
| | ] |
| | |
| | inputs = tokenizer(texts, return_tensors="pt", padding=True, truncation=True, max_length=128) |
| | |
| | with torch.no_grad(): |
| | outputs = model(**inputs) |
| | probs = torch.softmax(outputs.logits, dim=1) |
| | preds = torch.argmax(probs, dim=1) |
| | |
| | for text, pred, prob in zip(texts, preds, probs): |
| | label = model.config.id2label[pred.item()] |
| | confidence = prob[pred].item() |
| | print(f"Text: {text}") |
| | print(f"Type: {label} ({confidence:.1%})") |
| | print() |
| | ``` |
| |
|
| | ## Training Details |
| |
|
| | ### Hyperparameters |
| |
|
| | - **Base model**: `bert-base-uncased` |
| | - **Max sequence length**: 128 tokens |
| | - **Batch size**: 16 |
| | - **Learning rate**: 2e-5 |
| | - **Epochs**: 5 |
| | - **Optimizer**: AdamW |
| | - **Loss**: Cross-entropy |
| |
|
| | ### Hardware |
| |
|
| | Trained on a single GPU (NVIDIA GPU recommended). |
| |
|
| | ## Limitations |
| |
|
| | 1. **Class Imbalance**: The model performs better on "neutral" (majority class) than "change" and "sustain" |
| | 2. **Context**: The model classifies single utterances without conversation context |
| | 3. **Domain**: Trained specifically on MI conversations; may not generalize to other counseling types |
| | 4. **Language**: English only |
| |
|
| | ## Ethical Considerations |
| |
|
| | - This model is intended to **assist**, not replace, human counselors |
| | - Predictions should be reviewed by qualified professionals |
| | - Privacy and confidentiality must be maintained when processing real counseling data |
| | - Be aware of potential biases in training data |
| |
|
| | ## Citation |
| |
|
| | If you use this model, please cite: |
| |
|
| | ```bibtex |
| | @misc{bert-mi-classifier-2024, |
| | author = {Ryan}, |
| | title = {BERT for Motivational Interviewing Client Talk Classification}, |
| | year = {2024}, |
| | publisher = {HuggingFace}, |
| | howpublished = {\url{https://huggingface.co/RyanDDD/bert-motivational-interviewing}} |
| | } |
| | ``` |
| |
|
| | ## References |
| |
|
| | - **AnnoMI Dataset**: [GitHub](https://github.com/uccollab/AnnoMI) |
| | - **BERT Paper**: [Devlin et al., 2019](https://arxiv.org/abs/1810.04805) |
| | - **Motivational Interviewing**: [Miller & Rollnick, 2012](https://motivationalinterviewing.org/) |
| |
|
| | ## Model Card Contact |
| |
|
| | For questions or feedback, please open an issue in the model repository. |
| |
|