3,583 papers
arXiv:2510.23464 82 27 окт. 2025 г. FREE

Few-shot с Chain-of-Thought для stance detection: как определить отношение к конкретным метрикам в тексте

КЛЮЧЕВАЯ СУТЬ
Обнаружено: LLM путают общий sentiment («текст позитивный») с отношением к конкретной метрике («долг вырос — это хорошо или плохо?»). В предложении «Долг увеличился на $500 млн для расширения под AI» модель видит «долг вырос» → автоматически негатив, хотя контекст показывает стратегическое решение. Метод позволяет различать отношение к разным метрикам внутри одного текста — не «текст позитивный», а «к выручке позитивно, к долгу нейтрально, к срокам негативно». Фишка: один пример с Chain-of-Thought объяснением работает почти так же как 10 примеров без объяснений. Модель видит не только ответ, но и паттерн рассуждений — какие сигналы искать, как взвешивать факторы. Качество примера важнее количества.
Адаптировать под запрос

TL;DR

Исследователи проверили как современные LLM (GPT-4.1-mini, Llama 3.3, Gemma 3, Mistral 3) определяют отношение (позитивное/негативное/нейтральное) к конкретным метрикам (долг, прибыль на акцию, продажи) в финансовых отчётах и транскриптах earnings calls. Сравнили три стратегии промптинга: zero-shot, few-shot и с/без Chain-of-Thought рассуждений.

Главная находка: few-shot с CoT даёт лучший результат. Один пример с объяснением рассуждений работает лучше чем zero-shot. Добавление 5-10 примеров почти не улучшает результат — один хороший пример достаточно. Семантически похожие примеры работают на 2% лучше случайных. Контекст о компании помогает в zero-shot, но при наличии few-shot примеров эффект минимален — примеры важнее контекста.

Метод показывает что работает лучше: (1) выбери 1-3 самых похожих примера из твоих прошлых задач, (2) добавь к каждому примеру Chain-of-Thought объяснение (почему такой вывод), (3) если примеров нет — добавь краткую справку о контексте (компания, ситуация). Это не новая техника, а систематическая проверка известных подходов в финансовом домене.

📌

Схема подхода

ZERO-SHOT (без примеров):
Промпт: [задача] + [контекст о компании]
→ Контекст помогает, но результат хуже чем few-shot

FEW-SHOT (1-3 примера):
Промпт: [пример 1 + CoT] + [пример 2 + CoT] + [задача]
→ Лучший результат

FEW-SHOT с семантическим подбором примеров:
1. Найди в своих примерах самые похожие на текущую задачу
2. Добавь CoT объяснение к каждому примеру 
3. Используй в промпте
→ На 2% лучше случайных примеров
🚀

Пример применения

Задача: Ты следишь за акциями Яндекса и хочешь понять отношение к ключевым метрикам (выручка, долг, пользователи) из новостей и пресс-релизов — какие сигналы позитивные, какие негативные.

Промпт:

Определи отношение к метрике компании. Варианты: положительное, отрицательное, нейтральное.

Пример 1:
Новость: "Яндекс увеличил долг на $500 млн для расширения дата-центров под нейросети."
Метрика: долг
Рассуждение: Рост долга обычно негатив, но здесь указана чёткая причина — инвестиции в стратегическое направление (AI/нейросети). Контекст "для расширения" показывает развитие, а не проблемы.
Отношение: положительное

Пример 2:
Новость: "Выручка Яндекса упала на 8% из-за ухода рекламодателей."
Метрика: выручка
Рассуждение: Падение выручки — явный негатив. Причина "уход рекламодателей" указывает на структурную проблему бизнеса, а не временный фактор.
Отношение: отрицательное

Теперь проанализируй эту новость:
"Число активных пользователей Яндекс Музыки выросло на 15% год к году, достигнув 12 млн."
Метрика: пользователи

Результат:

Модель выдаст структурированный анализ: сначала рассуждение (какие сигналы в тексте, как их интерпретировать), затем вывод (положительное/отрицательное/нейтральное). Формат повторяет паттерн из примеров — модель научилась анализировать, а не просто угадывать.

🧠

Почему это работает

Слабость LLM: Модели хорошо понимают общий sentiment, но плохо различают отношение к конкретным метрикам внутри одного текста. Например, в предложении "Долг вырос, но это позволило увеличить продажи" — отношение к долгу положительное (стратегическое решение), а не негативное (проблема). Без контекста модель часто видит "долг вырос" → автоматически негатив.

Сильная сторона LLM: Модели отлично обучаются от примеров (few-shot learning) и следуют паттернам рассуждений (Chain-of-Thought). Когда видят КАК именно нужно анализировать, воспроизводят эту логику на новых данных.

Как метод использует сильную сторону: Few-shot с CoT даёт модели шаблон рассуждений: (1) какие сигналы искать в тексте (слова, контекст, причины), (2) как взвешивать разные факторы (рост долга vs стратегическая цель), (3) к какому выводу это ведёт. Один качественный пример (k=1) с чётким объяснением работает лучше чем 10 примеров без объяснений. Модель видит НЕ только ответ, но и путь к нему.

Дополнительный инсайт: Семантически похожие примеры работают лучше потому что дают модели релевантный контекст. Если задача про "рост долга для инвестиций", а в few-shot примере "рост долга из-за убытков" — модель может неправильно применить паттерн. Похожие примеры = похожая логика анализа.

📋

Шаблон промпта

Определи отношение к {метрика} на основе текста. Варианты: {список_вариантов}.

Пример 1:
Текст: {текст_примера_1}
Метрика: {метрика_1}
Рассуждение: {почему_такой_вывод}
Отношение: {вывод_1}

Пример 2:
Текст: {текст_примера_2}
Метрика: {метрика_2}
Рассуждение: {почему_такой_вывод}
Отношение: {вывод_2}

[Добавь 1-3 примера]

Теперь проанализируй:
Текст: {текст_для_анализа}
Метрика: {метрика}

Пояснения:

  • {метрика} — то, отношение к чему определяем (бюджет, сроки, выручка, пользователи, качество, etc.)
  • {список_вариантов} — обычно "положительное, отрицательное, нейтральное"
  • {текст_примера_N} — реальные примеры из твоей практики
  • {почему_такой_вывод} — Chain-of-Thought объяснение: какие сигналы в тексте, как их интерпретировать
  • Используй 1-3 примера — больше не нужно, эффект не улучшается

🚀 Быстрый старт — вставь в чат:

Вот шаблон для определения отношения к конкретным метрикам в текстах. Адаптируй под мою задачу: [опиши свою задачу — какие тексты анализируем, какие метрики, что хочешь узнать]. 
Задавай вопросы, чтобы заполнить поля.

[вставить шаблон выше]

LLM спросит про примеры из твоей практики, список метрик, формат вариантов ответа. Она возьмёт паттерн из шаблона и адаптирует под твою конкретную задачу — отношение клиентов к продукту, оценка отчётов, анализ новостей, мониторинг проектов.

⚠️

Ограничения

⚠️ Сложность текста: Метод работает хуже на формальных, юридически-плотных текстах (типа отчётов SEC) чем на разговорных (earnings calls, отзывы, новости). В формальных текстах отношение часто скрыто за цифрами и сложными конструкциями — модели нужно делать вычисления и глубже понимать импликации.

⚠️ Качество примеров: Результат сильно зависит от качества few-shot примеров. Если примеры с плохим CoT рассуждением или не похожи на задачу — результат хуже. Нужно потратить время на подбор хороших примеров.

⚠️ Субъективные метрики: Метод работает лучше для объективных метрик (долг, выручка, пользователи, сроки). Для субъективных оценок (качество дизайна, удовлетворённость) может быть менее точным.

🔍

Как исследовали

Исследователи взяли финансовые отчёты (SEC Form 10-K) и транскрипты earnings calls двух компаний — MATIV Holdings и 3M — за 2020-2024. Отфильтровали предложения которые упоминают три финансовые метрики: долг, прибыль на акцию (EPS), продажи. Получилось ~120 тренировочных и ~107 тестовых примеров на метрику для SEC отчётов, ~120 тренировочных и ~193 тестовых для earnings calls.

Разметили stance (положительный/отрицательный/нейтральный) с помощью ChatGPT-o3-pro с человеческой валидацией. Согласие с людьми >97% — высокое качество разметки, можно доверять.

Сравнили 4 модели (GPT-4.1-mini, Llama 3.3-70B, Gemma 3-27B, Mistral 3-24B) в разных сценариях: zero-shot vs few-shot (k=1, 5, 10 примеров), с контекстом vs без контекста, с Chain-of-Thought vs без CoT, случайные примеры vs семантически похожие примеры.

Ключевые результаты: GPT-4.1-mini лучший (87.8% точность), Llama 3.3 второй (83%). Few-shot с CoT лучше zero-shot в среднем на 4-5%. Семантически похожие примеры лучше случайных на ~2%. k=1 достаточно — больше примеров почти не помогает. Контекст помогает в zero-shot, но не в few-shot (примеры важнее контекста). Earnings calls проще для анализа чем формальные SEC отчёты (разговорная речь vs юридический язык).

Почему такие результаты: Few-shot даёт модели конкретный паттерн рассуждений, CoT показывает КАК думать, а не только ЧТО ответить. Один хороший пример с объяснением работает как инструкция — модель видит логику и воспроизводит её. Больше примеров не помогает потому что создаёт шум и противоречия в рассуждениях — модель путается между разными паттернами.

💡

Адаптации и экстраполяции

💡 Адаптация для бизнес-отчётов: Тот же подход работает для анализа внутренних отчётов компании — отношение руководителя к KPI проекта, метрикам команды, бюджетам. Просто замени финансовые метрики (долг, EPS, продажи) на свои метрики (скорость разработки, качество кода, расходы) и добавь примеры из своей практики.

💡 Адаптация для отзывов клиентов: Определи отношение клиентов к аспектам продукта (цена, функционал, поддержка, дизайн) из отзывов, твитов, тикетов. Few-shot примеры с CoT покажут модели как различать "дорого, но оправданно" (положительное к цене) от "просто дорого" (негативное).

🔧 Техника: добавить контекст только в zero-shot → экономия токенов

Если у тебя нет примеров (few-shot), добавь краткую справку о компании/продукте/проекте — это улучшит результат. Но если есть хотя бы один пример с CoT, контекст можно пропустить — примеры важнее и дают лучший результат при меньших затратах токенов.

🔗

Ресурсы

"Evaluating Large Language Models for Stance Detection on Financial Targets from SEC Filing Reports and Earnings Call Transcripts"

Nikesh Gyawali, Doina Caragea (Kansas State University), Alex Vasenkov (Mathinvestments, Inc.), Cornelia Caragea (University of Illinois Chicago)

Код и данные: https://github.com/gnikesh/llm-financial-stance


📋 Дайджест исследования

Ключевая суть

Обнаружено: LLM путают общий sentiment («текст позитивный») с отношением к конкретной метрике («долг вырос — это хорошо или плохо?»). В предложении «Долг увеличился на $500 млн для расширения под AI» модель видит «долг вырос» → автоматически негатив, хотя контекст показывает стратегическое решение. Метод позволяет различать отношение к разным метрикам внутри одного текста — не «текст позитивный», а «к выручке позитивно, к долгу нейтрально, к срокам негативно». Фишка: один пример с Chain-of-Thought объяснением работает почти так же как 10 примеров без объяснений. Модель видит не только ответ, но и паттерн рассуждений — какие сигналы искать, как взвешивать факторы. Качество примера важнее количества.

Принцип работы

Не накидывай 10 примеров в надежде что модель поймёт. Дай 1-3 качественных с объяснением как ты пришёл к выводу. Шаблон: пример текста → метрика → рассуждение (какие сигналы, как интерпретировать) → вывод. Модель учится не угадывать, а анализировать. Видит «рост долга» → проверяет контекст (для инвестиций или из-за убытков?) → взвешивает факторы → выдаёт вывод. Бонус: если есть база прошлых примеров, выбери семантически похожие на текущую задачу. Работает на 2% лучше случайных — похожие примеры дают релевантный контекст для анализа.

Почему работает

LLM хороши в обучении от примеров (few-shot learning) и следовании паттернам (Chain-of-Thought). Слабое место: различение stance к конкретным метрикам внутри сложного текста. CoT показывает модели путь к ответу, а не только ответ. Без объяснения модель видит «долг вырос → отрицательное». С CoT объяснением видит: «долг вырос (негативный сигнал) + для расширения стратегического направления (позитивный контекст) → итого положительное отношение». Почему один пример достаточен? Модель усваивает структуру рассуждений, а не запоминает все варианты ответов. Один качественный шаблон анализа она применяет к новым данным. Добавление 5-10 примеров почти не улучшает результат — паттерн уже усвоен.

Когда применять

Анализ текстов → конкретно для различения отношения к разным метрикам внутри одного документа, особенно когда нужен не общий sentiment, а таргетированная оценка. Примеры: мониторинг финансовых отчётов (отношение к долгу, выручке, продажам), анализ отзывов (к цене, качеству, сервису отдельно), оценка проектных статусов (к срокам, бюджету, качеству). НЕ подходит для: формальных юридически-плотных текстов где отношение скрыто за цифрами и сложными конструкциями. На таких текстах метод работает хуже — модели нужно делать вычисления и глубже понимать импликации.

Мини-рецепт

1. Собери 1-3 примера из практики: возьми реальные тексты где ты уже знаешь правильный ответ. Если примеров нет — создай синтетические под типичные кейсы.

2. Добавь Chain-of-Thought объяснение к каждому примеру: напиши почему такой вывод. Формат: «Рассуждение: [какие сигналы в тексте] + [как их интерпретировать] + [к какому выводу ведёт]».

3. Структурируй промпт: Определи отношение к {метрика}. Варианты: {список}. Пример 1: Текст: [...] Метрика: [...] Рассуждение: [...] Отношение: [...]. Теперь проанализируй: [твой текст].

4. Если есть база примеров: выбери семантически похожие на текущую задачу через embeddings или ключевые слова. Добавляет 2% точности — похожие примеры дают релевантный контекст.

Примеры

[ПЛОХО] : Определи отношение к метрике «выручка» в тексте: «Выручка Яндекса упала на 8%, но число пользователей выросло на 12%» (Zero-shot — модель может спутать общий позитив от роста пользователей с отношением к выручке)
[ХОРОШО] : Определи отношение к метрике. Варианты: положительное, отрицательное, нейтральное. Пример: Текст: «Долг вырос на $200 млн из-за убыточного квартала». Метрика: долг. Рассуждение: Рост долга негатив. Причина «убыточный квартал» показывает проблему бизнеса, а не стратегические инвестиции. Отношение: отрицательное. Пример 2: Текст: «Долг увеличился на $500 млн для расширения дата-центров под нейросети». Метрика: долг. Рассуждение: Рост долга обычно негатив, но чёткая причина — инвестиции в стратегическое направление (AI). Контекст «для расширения» показывает развитие. Отношение: положительное. Теперь: «Выручка Яндекса упала на 8%, но число пользователей выросло на 12%». Метрика: выручка (Few-shot с CoT — модель видит как различать метрики и учитывать контекст)
Источник: Evaluating Large Language Models for Stance Detection on Financial Targets from SEC Filing Reports and Earnings Call Transcripts
ArXiv ID: 2510.23464 | Сгенерировано: 2026-01-11 23:42

Концепты не выделены.

📖 Простыми словами

Few-shot с Chain-of-Thought для stance detection: как определить отношение к конкретным метрикам в тексте

arXiv: 2510.23464

Финансовые отчеты и звонки инвесторов — это не просто текст, это мизансцена, где за сухими цифрами прячутся реальные намерения. Суть исследования в том, что обычные нейронки отлично считывают «настроение» текста целиком, но позорно лажают, когда нужно оценить конкретную метрику. Если компания говорит, что «долг вырос ради захвата рынка», обычная модель видит слово «долг» и триггерится на негатив, хотя по факту это стратегический плюс. Исследователи решили проверить, смогут ли GPT-4o-mini, Llama 3.1 и другие топы понять эти тонкие нюансы, используя разные подходы к промптам.

Это как если бы ты пришел к врачу, и он вместо того, чтобы разобрать твой анализ крови по пунктам, просто сказал: «Ну, в целом вы выглядите неплохо». Тебе плевать на «в целом», тебе нужно знать, почему холестерин зашкаливает. Так и здесь: инвестору не нужен общий фон, ему важно, как менеджмент относится к прибыли на акцию или долговой нагрузке в конкретном контексте. Модели часто ведут себя как невнимательный врач, который цепляется за знакомые слова, пропуская суть диагноза.

В ходе тестов выяснилось, что Chain-of-Thought (рассуждение по шагам) — это база. Когда модель заставляют сначала «подумать» и расписать логику, точность детекции взлетает. Еще один рабочий метод — few-shot, когда ты даешь модели пару примеров «правильных» ответов перед основным вопросом. Оказалось, что GPT-4o-mini и Llama 3.1 70B справляются лучше всех, а вот маленькие модели вроде Gemma 2 9B часто путаются в показаниях, когда контекст становится чуть сложнее, чем «продажи выросли — это хорошо».

Хотя мучили в основном отчеты SEC и транскрипты звонков, принцип универсален. Эту же логику можно и нужно внедрять в любой анализ отзывов, юридических документов или новостей. Если ты строишь систему, которая должна понимать, как рынок реагирует на выручку Яндекса или пользовательскую базу Telegram, тебе не обойтись без таргетированного анализа. Просто спросить «какой тут сентимент» — это путь в никуда; нужно спрашивать «какое отношение именно к этой цифре».

Короче: хватит верить моделям «на слово», когда речь идет о деньгах. Главный вывод исследования — 10 из 10 моделей будут ошибаться, если не заставлять их рассуждать логически через Chain-of-Thought. Если хочешь вытащить из финансового текста реальные сигналы, а не белый шум, используй Llama 3.1 или GPT-4o с четкими примерами и пошаговым разбором. Иначе рискуешь принять «контролируемый убыток» за финансовый крах и потерять деньги на ровном месте.

Работа с исследованием

Адаптируйте исследование под ваши задачи или создайте готовый промпт на основе техник из исследования.

0 / 2000
~0.5-2 N-токенов ~10-30с
~0.3-1 N-токенов ~5-15с