В области интеллектуального обслуживания клиентов классификация намерений является ядром. Однако часто есть какие-то намерения, а обучающие выборки относительно малы, что является так называемой проблемой длинного хвоста, которую нельзя решить с помощью традиционной модели классификации с учителем. Для классификации таких сценариев существует специальное направление исследований в области машинного обучения — Few-shot Learning. Вот некоторые резюме этого.
1. Match Network(NIPS2016)
Это более ранняя статья, посвященная одноразовому обучению от Google DeepMind.
Введение модели
В этой статье предлагается модель обучения с небольшой выборкой, которая отличается от обычной модели машинного обучения, то есть модель обучается на всех обучающих данных, а затем прогнозируется на тестовом наборе. На этапе обучения вводится обучение на малых выборках.episodeпонятие, эпизод относится к случайно выбранномуNкатегории, каждая из которых выбрана случайным образомkобразцы (N-way-K-shot), каждый раз, когда рассчитывается проигрыш, он выполняется для этого эпизода. Именно через эту обучающую модель модель обновляется.
Введение модели
Задача, решаемая этой моделью: ** Дано S (набор опор), для тестового образца., как получитьпринадлежатьВероятность. **Математическое выражение:.
Метод расчета, предложенный автором, заключается в следующем:
вПо сути, это расчет внимания, по сути, его можно рассматривать как все образцы в опорном наборе., просто дайте им разные веса.Это потеря модели.иВычисления также относительно просты, используя набор запросов вс комплектом поддержкиВложение вычисляет softmax косинусного расстояния для вычисления весов:в,иявляется соответствующим экстрактором признаков, то есть кодировщиком. Просто у автора есть свои специальные конструкции для кодировщиков на обоих концах набора поддержки и набора запросов, и он проделал некоторую работу (подробности см. В документе), которая в основном представляет собой кодировщик последовательности на основе Bi-LSTM. .
тренировочный процесс
Процесс одной итерации выглядит следующим образом:
- Выберите несколько классов (например, 5 классов), выберите небольшое количество образцов в каждом классе (например, 5 в каждом классе);
- Разделите выбранный набор на: набор поддержки (Support-set), тестовый набор (Query-set);
- Используйте эталонный набор этой итерации, чтобы вычислить ошибку тестового набора;
- Расчет градиентов, обновление параметров;
Такой процесс называется в тексте эпизодом.
2. Relation Network
Введение модели
Это эссе
Введение модели
Эта модель состоит из двух основных частей: 1. модуль встраивания То есть кодер-кодировщик, который кодирует входные образцы в Support-set и Query-set. В этой статье специально используется сеть CNN с четырьмя блоками свертки.
2.модуль отношений
Это также является основным отличием от Match Network, он не использует напрямую вложение, полученное кодировщиком, для расчетапринадлежит распределению вероятностей метки. Реляционная сеть должна объединить вложение, полученное образцом в наборе поддержки, и вложение, полученное образцом в наборе запросов, а затем ввести его в реляционную сеть (фактически нейронную сеть), чтобы предсказать распределение вероятностей наклейка.
Его можно выразить следующей формулой:Функция Loss — это типичная задача регрессии (положительные примеры возвращаются к 1, а отрицательные — к 0):
Проще говоря, инновация реляционной сети заключается в использовании нейронной сети вместо евклидова расстояния для вычисления степени соответствия между двумя переменными признаков.
**
3. Induction Network
Модель, предложенная командой Ali Xiaomi, в основном разделена на три модуля. 1.Энкодер 2.Индукция 3.Отношение
Во-первых, дается базовый процесс обучения Few-shot, а также способ построения набора поддержки и набора данных запроса (обратите внимание, что и набор поддержки, и набор запросов построены из класса C):
На следующем рисунке показана модельная структура этой статьи:
1.Encoder Module
Они используют двунаправленное внимание LSTM + для кодирования предложений. Окончательное представление предложения. Конечно, вы также можете использовать трансформер или BERT для кодирования предложений.
2.Induction Module
Роль этого модуля заключается в разработке нелинейного отображения для размещения категорий в наборе поддержки.Все K векторов предложений из , сопоставляются с категориальным векторомначальство.Они используют идею капсульной сети мистера Хинтона.Основной алгоритм:
В основном применяется в Capsule Networkдинамическая маршрутизацияСтратегия. полученный таким образомможно рассматривать как категориюПредставление вектора класса .
3.Relation Module
Для каждого запроса в наборе запросов используйте один и тот жеEncoder Moduleполучить соответствующий вектор предложения, а потом сInduction ModuleПредставления вектора класса, полученные в . Это типичная задача сравнения отношения между двумя векторами, которая обрабатывается слоем нейронной сети + сигмоида:Затем используйте sigmod для вычисления первогозапросы и категорииоценка отношения между.
4.Objective Function
Чтобы измерить оценку отношенияс земной истиной(1 для одной и той же категории, 0 для разных категорий), это проблема регрессии, использующая MSE для расчета потерь. На самом деле это можно рассматривать как метод парного обучения, который заключается в сравнении того, похож ли вектор категории на соответствующий образец в наборе запросов.
Учитывая набор поддержки в эпизоде,имеюткатегории и набор запросовКаждый класс имеет n выборок, а функция потерь выглядит следующим образом:
детали реализации
Для настройки 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
предварительное редактирование:
- Вложение метки предварительно сохраненной модели
- Введите запрос, чтобы напрямую сравнить внедрение меток всех классов, и, наконец, выберите argmax, а затем используйте пороговое значение для управления.