Few-Shot Text Classification

NLP

В области интеллектуального обслуживания клиентов классификация намерений является ядром. Однако часто есть какие-то намерения, а обучающие выборки относительно малы, что является так называемой проблемой длинного хвоста, которую нельзя решить с помощью традиционной модели классификации с учителем. Для классификации таких сценариев существует специальное направление исследований в области машинного обучения — Few-shot Learning. Вот некоторые резюме этого.

1. Match Network(NIPS2016)

截屏2020-10-09 下午3.37.12.png-376.3kB

Это более ранняя статья, посвященная одноразовому обучению от Google DeepMind.

Введение модели

В этой статье предлагается модель обучения с небольшой выборкой, которая отличается от обычной модели машинного обучения, то есть модель обучается на всех обучающих данных, а затем прогнозируется на тестовом наборе. На этапе обучения вводится обучение на малых выборках.episodeпонятие, эпизод относится к случайно выбранномуNкатегории, каждая из которых выбрана случайным образомkобразцы (N-way-K-shot), каждый раз, когда рассчитывается проигрыш, он выполняется для этого эпизода. Именно через эту обучающую модель модель обновляется.

Введение модели

Задача, решаемая этой моделью: ** Дано S (набор опор), для тестового образца.x^\hat{x}, как получитьx^\hat{x}принадлежатьy^\hat{y}Вероятность. **Математическое выражение:P(y^x^,S)P(\hat{y}|\hat{x},S).

Метод расчета, предложенный автором, заключается в следующем:截屏2020-10-09 下午4.03.15.png-55.4kB

вa(x^,xi)a(\hat{x},x_i)По сути, это расчет внимания, по сути, его можно рассматривать как все образцы в опорном наборе.(xi,yi)(x_i,y_i), просто дайте им разные веса.Это потеря модели.иaaВычисления также относительно просты, используя набор запросов вx^\hat{x}с комплектом поддержкиxix_iВложение вычисляет softmax косинусного расстояния для вычисления весов:截屏2020-10-09 下午4.12.15.png-25.1kBв,f(.)f(.)иg(.)g(.)является соответствующим экстрактором признаков, то есть кодировщиком. Просто у автора есть свои специальные конструкции для кодировщиков на обоих концах набора поддержки и набора запросов, и он проделал некоторую работу (подробности см. В документе), которая в основном представляет собой кодировщик последовательности на основе Bi-LSTM. .

тренировочный процесс

Процесс одной итерации выглядит следующим образом:

  1. Выберите несколько классов (например, 5 классов), выберите небольшое количество образцов в каждом классе (например, 5 в каждом классе);
  2. Разделите выбранный набор на: набор поддержки (Support-set), тестовый набор (Query-set);
  3. Используйте эталонный набор этой итерации, чтобы вычислить ошибку тестового набора;
  4. Расчет градиентов, обновление параметров;

Такой процесс называется в тексте эпизодом.

paper code

2. Relation Network

image.png-616kB

Введение модели

Это эссе

Введение модели

Эта модель состоит из двух основных частей: 1. модуль встраивания То есть кодер-кодировщик, который кодирует входные образцы в Support-set и Query-set. В этой статье специально используется сеть CNN с четырьмя блоками свертки.

2.модуль отношений

Это также является основным отличием от Match Network, он не использует напрямую вложение, полученное кодировщиком, для расчетаx^\hat{x}принадлежит распределению вероятностей метки. Реляционная сеть должна объединить вложение, полученное образцом в наборе поддержки, и вложение, полученное образцом в наборе запросов, а затем ввести его в реляционную сеть (фактически нейронную сеть), чтобы предсказать распределение вероятностей наклейка. Его можно выразить следующей формулой:截屏2020-10-09 下午5.03.04.png-18.7kBФункция Loss — это типичная задача регрессии (положительные примеры возвращаются к 1, а отрицательные — к 0):截屏2020-10-09 下午5.03.50.png-20.5kB

Проще говоря, инновация реляционной сети заключается в использовании нейронной сети вместо евклидова расстояния для вычисления степени соответствия между двумя переменными признаков.

**

3. Induction Network

Модель, предложенная командой Ali Xiaomi, в основном разделена на три модуля. 1.Энкодер 2.Индукция 3.Отношение Во-первых, дается базовый процесс обучения Few-shot, а также способ построения набора поддержки и набора данных запроса (обратите внимание, что и набор поддержки, и набор запросов построены из класса C):image_1edsohb06106eb0m6745gpmsn9.png-60.9kB

На следующем рисунке показана модельная структура этой статьи:

image_1e6b9mkuo1ahtb3b11mf1mcnd369.png-100.3kB

1.Encoder Module

Они используют двунаправленное внимание LSTM + для кодирования предложений. Окончательное представление предложенияee. Конечно, вы также можете использовать трансформер или BERT для кодирования предложений.

2.Induction Module

Роль этого модуля заключается в разработке нелинейного отображения для размещения категорий в наборе поддержки.iiВсе K векторов предложений из , сопоставляются с категориальным векторомcic_iначальство.image_1e6bm8lp61mrj1kaub9h2l8144um.png-7.6kBОни используют идею капсульной сети мистера Хинтона.Основной алгоритм:image_1e6bmkvikoh21o1k1ru48ik1uge13.png-66.7kB

В основном применяется в Capsule Networkдинамическая маршрутизацияСтратегия. полученный таким образомcic_iможно рассматривать как категориюiiПредставление вектора класса .

3.Relation Module

Для каждого запроса в наборе запросов используйте один и тот жеEncoder Moduleполучить соответствующий вектор предложенияeqe^q, а потом сInduction ModuleПредставления вектора класса, полученные в . Это типичная задача сравнения отношения между двумя векторами, которая обрабатывается слоем нейронной сети + сигмоида:image_1e6bnes9g15vm1pf51ll11h6q1cp51g.png-6.1kBЗатем используйте sigmod для вычисления первогоqqзапросы и категорииiiоценка отношения между.image_1e6bnfbhj1v4e1hnl1pf9nf5lc1t.png-6.1kB

4.Objective Function

Чтобы измерить оценку отношенияriqr_{iq}с земной истинойyqy_q(1 для одной и той же категории, 0 для разных категорий), это проблема регрессии, использующая MSE для расчета потерь. На самом деле это можно рассматривать как метод парного обучения, который заключается в сравнении того, похож ли вектор категории на соответствующий образец в наборе запросов. Учитывая набор поддержки в эпизодеSS,имеютCCкатегории и набор запросовQQКаждый класс имеет n выборок, а функция потерь выглядит следующим образом:image_1e6bo1v53hh511vn2behlcq402a.png-7.7kB

детали реализации

Для настройки 5-way 5-shot это означает, что для каждого эпизода обучающий набор содержит 5 (C) категорий, и каждая категория в Support Set имеет 5 (K) образцов. Для набора запросов каждая категория содержит 20 образцов. То есть на каждый эпизод требуется всего: 205 + 55 = 125 предложений.

Детали реализации ctrip:

тренироваться: В наборе поддержки случайным образом выбираются c (c = 15) классов, и k (k = 20) образцов выбираются для каждого класса. Набор запросов представляет собой пакет (размер пакета = 128), который гарантирует, что выбранные классы c в пакете имеют по крайней мере один положительный пример, а затем оставшиеся образцы размера пакета-c случайным образом и равномерно выбираются из всех неиспользованных данных. Обучающий формат набора запросов, где метка — это однократная метка, целевая метка запроса находится в классах c, соответствующая однократная позиция равна 1, а не все 0.

encoder: Двухслойный преобразователь, 8 головок, word_embedding и char_embedding соединены вместе.

Количество категорий: 230

предварительное редактирование:

  1. Вложение метки предварительно сохраненной модели
  2. Введите запрос, чтобы напрямую сравнить внедрение меток всех классов, и, наконец, выберите argmax, а затем используйте пороговое значение для управления.

4. Few-shot Text Classification with Distributional Signatures

5. Dynamic Memory Induction Networks for Few-Shot Text Classification