--- title: Article Sphere Classification emoji: 🐠 colorFrom: indigo colorTo: blue sdk: streamlit sdk_version: 1.44.1 app_file: app.py pinned: false short_description: Define article sphere by it's name and abstract --- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference # Article Theme Classifier ## Описание Данный проект представляет собой модель для классификации тем статей, исходя из их названия и аннотации (abstract). Одно из этих полей обязательно для работы программы. Модель позволяет выбрать кумулятивный threshold для предсказания наиболее вероятных тем. ## Архитектура модели В качестве основы для классификации была использована модель `distilbert-base-cased`. На эту модель был добавлен классификатор, состоящий из двух линейных слоев: 1. Линейный слой (с размером выходного пространства 256), за которым следует активация ReLU. 2. Линейный слой (с выходом на 8 классов), с активацией LogSoftmax. ## Используемая loss функция Для обучения модели была использована loss функция `nn.KLDivLoss'. Дообучал только добавленные слои. Также пробавал обучить всю модель с MSE loss. При этом модель запомнила средние вероятности и не меняла предсказания от изменения входных данных. ## Датасет Модель обучалась на предложенном Kaggle датасете "neelshah18/arxivdataset". ## Проблемы и ограничение модели Несмотря на использование сильной основы, результаты модели оказались не очень хорошими. Возможные причины: 1. **Выбор модели**: Использованная модель `distilbert-base-cased` является сравнительно небольшой и может не иметь достаточной мощности для более сложных задач классификации. 2. **Размер входных данных**: Для модели был установлен небольшой `MAX_LENGTH`, что ограничивает количество информации, которую модель может обработать. 3. **Выбор loss функции**: `KLDivLoss` не всегда является оптимальным выбором для классификационных задач. Возможно, использование другой loss функции, например, `CrossEntropyLoss`, улучшило бы результаты.