--- license: bsd-3-clause language: - en pipeline_tag: text-classification tags: - psychology - cognitive distortions widget: - text: "We have known each other since childhood." example_title: "No Distortion" - text: "I can't believe I forgot to do that, I'm such an idiot." example_title: "Personalization" - text: "I feel like I'm disappointing others." example_title: "Emotional Reasoning" - text: "All doctors are arrogant and don't really care about their patients." example_title: "Overgeneralizing" - text: "They are too young to hear it." example_title: "Labeling" - text: "She must never make any mistakes in her work." example_title: "Should Statements" - text: "If I don't finish this project on time, my boss will fire me." example_title: "Catastrophizing" - text: "If I keep working hard, they will eventually give me a raise." example_title: "Reward Fallacy" --- # Classification of Cognitive Distortions using Bert >This article is under development. Please use the model for retraining on your data, not a "ready to use" solution. ## Problem Description **Cognitive distortion** refers to patterns of biased or distorted thinking that can lead to negative emotions, behaviors, and beliefs. These distortions are often automatic and unconscious, and can affect a person's perception of reality and their ability to make sound judgments. Some common types of cognitive distortions include: 1. **Personalization**: Blaming oneself for things that are outside of one's control. *Examples:* - *She looked at me funny, she must be judging me.* - *I can't believe I made that mistake, I'm such a screw up.* 2. **Emotional Reasoning**: Believing that feelings are facts, and letting emotions drive one's behavior. *Examples:* - *I feel like I'm not good enough, so I must be inadequate.* - *They never invite me out, so they must not like me.* 3. **Overgeneralizing**: Drawing broad conclusions based on a single incident or piece of evidence. *Examples:* - *He never listens to me, he just talks over me.* - *Everyone always ignores my needs.* 4. **Labeling**: Attaching negative or extreme labels to oneself or others based on specific behaviors or traits. *Examples:* - *I'm such a disappointment.* - *He's a total jerk.* 5. **Should Statements**: Rigid, inflexible thinking that is based on unrealistic or unattainable expectations of oneself or others. *Examples:* - *I must never fail at anything.* - *They have to always put others' needs before their own.* 6. **Catastrophizing**: Assuming the worst possible outcome in a situation and blowing it out of proportion. *Examples:* - *It's all going to be a waste of time, they're never going to succeed.* - *If I don't get the promotion, my entire career is over.* 7. **Reward Fallacy**: Belief that one should be rewarded or recognized for every positive action or achievement. *Examples:* - *If I work hard enough, they will give me the pay raise I want.* - *If they don't appreciate my contributions, I'll start slacking off.* ## Model Description This is one of the smaller BERT variants, pretrained model on English language using a masked language modeling objective. BERT was introduced in [this paper](https://arxiv.org/abs/1810.04805) and first released in [this repository](https://github.com/google-research/bert). ## Data Description [In progress] ## Using Example of single-label classification: ```python import torch from transformers import AutoTokenizer, AutoModelForSequenceClassification tokenizer = AutoTokenizer.from_pretrained("amedvedev/bert-tiny-cognitive-bias") model = AutoModelForSequenceClassification.from_pretrained("amedvedev/bert-tiny-cognitive-bias") inputs = tokenizer("He must never disappoint anyone.", return_tensors="pt") with torch.no_grad(): logits = model(**inputs).logits predicted_class_id = logits.argmax().item() model.config.id2label[predicted_class_id] ``` ## Metrics Model accuracy by labels: | | Precision | Recall | F1 | |:-------------------:|:---------:|:------:|:----:| | No Distortion | 0.84 | 0.74 | 0.79 | | Personalization | 0.86 | 0.89 | 0.87 | | Emotional Reasoning | 0.88 | 0.96 | 0.92 | | Overgeneralizing | 0.80 | 0.88 | 0.84 | | Labeling | 0.84 | 0.80 | 0.82 | | Should Statements | 0.88 | 0.95 | 0.91 | | Catastrophizing | 0.88 | 0.86 | 0.87 | | Reward Fallacy | 0.87 | 0.95 | 0.91 | Average model accuracy: Accuracy | Top-3 Accuracy | Top-5 Accuracy | Precision | Recall | F1 | |:-----------:|:--------------:|:--------------:|:-----------:|:-----------:|:-----------:| | 0.86 ± 0.04 | 0.99 ± 0.01 | 0.99 ± 0.01 | 0.86 ± 0.04 | 0.85 ± 0.04 | 0.85 ± 0.04 | ## References [In progress]