Приветствую всех вОблако Tencent + сообщество, получить больше крупной технической практики Tencent по галантерее ~
Эта статья взята из колонкиЯзык, знания и искусственный интеллект,авторЛаборатория Tencent Живэнь
В последние годы исследования более популярных диалогов, основанных на задачах, в основном сосредоточены на исследовании сквозной структуры, которая в основном совпадает с традиционной структурой алгоритмов на основе задач - модулем понимания языка (понимание разговорного языка, управление диалогом). модуль (Управление диалогами), модуль генерации естественного языка (Генерация естественного языка). модели Он предъявляет высокие требования к аннотации данных (см. аннотацию к набору данных Stanford Dialog), и он все еще находится на стадии исследования. Реальная практичность в отрасли по-прежнему доминирует над традиционными алгоритмами. Эта статья также посвящена языку в традиционные рамки алгоритма.Модуль понимания фокусируется на совместной модели намерений и слотов в модуле понимания языка.
Основная структура каталогов этой статьи
Во-первых, обзор основных моментов ориентированного на задачу диалога, включая понятия и примеры (Ideepwise и Али Сяоми и т. д.); во-вторых, от семантического представления ориентированного на задачу диалога до общей структуры диалога, он также включает некоторые примеры; наконец, это также находится в центре внимания этой статьи, мы будем В этой статье представлена совместная модель намерения и слота модуля понимания языка в традиционной структуре алгоритма.
1. Что такое тип задачи?
концепция задачи
объектДиалог, ориентированный на задачу, относится к диалогу, в котором информация или услуги предоставляются при определенных условиях. Обычно для удовлетворения пользователей с четкой целью.
Специальные сценарии и функции
Например, сценарии на основе задач, такие как проверка трафика, проверка телефонных счетов, заказ еды, бронирование билетов и консультации. Из-за сложных потребностей пользователей обычно требуется несколько раундов утверждений, и пользователи могут постоянно изменять и улучшать свои потребности в процессе диалога Роботы, основанные на задачах, должны помогать пользователям уточнять свои цели, спрашивая, уточняя и подтверждая.
оценка задачи
В первую очередь должна быть четкая цель решения задачи.Важнее момент оценочного индекса в том, что количество раундов должно быть как можно меньше, а ответ должен быть как можно ближе.Если ответ не то, что вы просите, это серьезно повлияет на использование пользователем.
На основе задач против чата
Индустриальные продукты:
Продукты Али Сяоми:
Из вышеизложенного видно, что цель диалога, ориентированного на задачу, очень ясна: ключ в том, чтобы получить намерение и ограничения (слоты) и отследить состояние диалога.
Место предметного диалога в большой семье
Классификация здесь следующая: во-первых, диалог делится на вопрос-ответ и беседу, а в вопросе-ответе он делится на неструктурированный документ и структурированный документ в зависимости от того, является ли документ структурированным. Неструктурированные документы включают в себя некоторые, такие как поиск информации IR (например, пары QA, поиск проблемы в документе), извлечение информации IE (например, понимание прочитанного, поиск точного фрагмента в документе), сложность этой части заключается в вычислении сходства. Структурированные документы включают в себя базы данных, графы знаний и т. д. Их входные данные представляют собой структурированные фрагменты, база данных имеет функцию запроса, а граф знаний имеет возможность запроса и рассуждения. языковая (слотовая) проблема. Далее мы сосредоточимся на беседах.Разговоры классифицируются как тип чата, тип задачи и т. д. Традиционный тип задачи делится на модуль понимания языка (SLU), модуль управления диалогами (DM) и модуль генерации естественного языка (NLG). Последующее введение в основном направлено на ознакомление с совместной моделью в модуле SLU.
Представление семантики является сложной проблемой в области естественного языка, и это также верно для диалогов, ориентированных на задачи...
2. Семантическое представление в виде задачи
Как преобразовать естественный язык в подходящее семантическое представление, всегда было трудной проблемой. Ниже в основном представлены три связанных метода семантического представления.
1. Распределительная семантикаОн в основном включает уровень слова и уровень предложения. Уровень слова в основном включает в себя: Word2Vector, GloVe, ELMo, FastText... и т. д. Уровень предложения в основном включает распределенное представление, такое как Skip-Thoughts, Quick-Thoughts, InferSent...
2. Семантика фреймаВ основном он включает в себя форму троек, действие (слот, значение), например валюту запроса, информацию (валюта = юань,...)
3. Теоретико-модельная семантикаЭто очень интересное представление, см. «Философские перспективы прагматики» Поля Гоше.
Например, некоторые слова представлены как операции над двумя множествами:
Традиционная структура алгоритма на основе задач была представлена в предыдущей статье, вот обзор изображения выше:
Здесь мы начинаем расширение модуля понимания языка с примера. Для диалога нам нужно разобрать его через модуль понимания языка, включая идентификацию поля, такого как авиакомпания или отель, и намерения каждого сегмента, такого как покупка или возврат билета, и информацию об ограничениях (слоте) для каждого конкретного намерение. .
3. Модуль понимания языка
Модуль понимания языка в основном включает в себя определение намерений и слотов. Распознавание намерений на самом деле является проблемой классификации, такой как основанные на правилах, традиционные алгоритмы машинного обучения (SVM), алгоритмы глубокого обучения (CNN, LSTM, RCNN, C-LSTM, FastText) и т. д. Намерение также включает трансформацию в диалоге, которая здесь не объясняется. Распознавание слотов на самом деле представляет собой задачу маркировки последовательности, например, на основе правил (Phoenix Parser), на основе традиционных алгоритмов машинного обучения (DBN; SVM) и на основе алгоритмов глубокого обучения (LSTM, Bi-RNN, Bi-LSTM-CRF). . Некоторые люди могут не различать слот и объект. Ниже приведен пример аннотации BIO:
Например, в «показать рейсы из Бостона в Нью-Йорк сегодня» для юридических лиц Бостон и Нью-Йорк отмечены как город, а для слотов они разделены на города отправления и города назначения.Можно сказать, что типы слотов по сравнению с сущностями более разнообразны.
Joint Model (Intent+Slot)
1. В первой статье в качестве совместной модели намерения и слота в основном используется двунаправленный GRU+CRF.
Zhang X, Wang H. A Joint Model of Intent Determination and Slot Filling for Spoken Language Understanding[C] IJCAI. 2016
Модель выглядит следующим образом:
- Входные данные представляют собой оконный вектор слов:
- Многомерные функции изучаются с использованием двунаправленной модели GRU.
- Намерения и слоты
Для классификации намерений с использованием каждой изученной функции скрытого слоя используется максимальный слот пула для получения выражения всего предложения, а затем используется softmax для классификации намерения:
Для слота используйте прямую сеть для вероятности каждой метки для входа каждого скрытого слоя и используйте CRF для оценки глобальной оптимальной последовательности.
Совместная функция потерь - это максимальная вероятность слота и намерения
Модель в этой статье проста, а точность распознавания слотов и намерений достигла высокого уровня.
Результаты этой статьи основаны на наборе данных ATIS:
Намерение: 98,32 Слот (F1): 96,89
2. Во второй части в основном используется дерево семантического анализа для построения совместной модели распознавания характеристик пути слота и намерения. (RecNN+Витерби)
Guo D, Tur G, Yih W, et al. Joint semantic utterance classification and slot filling with recursive neural networks[C] 2014 IEEE. IEEE, 2014
Сначала представим базовую модель рекурсивной нейронной сети из этой статьи.
Ввод представляет собой вектор одного слова (последующий ввод оптимизации представляет собой вектор слов окна), и каждая часть речи рассматривается как вектор весов, так что операция каждого слова на его пути представляет собой простое скалярное произведение вектор слова и вектор веса части речи. Квадрат на приведенном выше рисунке является результатом операции скалярного произведения между вектором веса части речи и входным вектором. Когда родительский узел имеет несколько дочерних ветвей, это можно рассматривать как операцию суммы произведения каждой ветви и веса.
Модуль распознавания намерений
Распознавание намерений, в этой статье выходной вектор корневого узла напрямую используется для классификации.
Идентификация слота
Этот модуль вводит функцию векторов пути
Например, для слова «in» путь в дереве семантического анализа — «IN-PP-NP», и каждый выходной вектор пути подвергается взвешенной операции для получения признака пути. В этой статье используется путь особенность трех слов. Concat используется в качестве функции тройного пути для классификации слотов, тем самым делая предсказание «in».
оптимизация
В статье также были сделаны некоторые оптимизации на основе базовой линии:
Оптимизация векторов слов для ввода в виде окна
Узлы используют другую сеть, чем предыдущее простое взвешивание, с использованием нелинейной функции активации.
Использование CRF на основе Витерби для глобальной оптимизации и использование языковой модели на основе триграмм для максимизации последовательности маркировки
Результаты этой статьи основаны на наборе данных ATIS:
Намерение: 95,40 Слот (F1): 93,96
3. Третья статья в основном основана на модели CNN+Tri-CRF.
Xu P, Sarikaya R. Convolutional neural network based triangular crf for joint intent detection and slot filling 2013 IEEE Workshop on. IEEE, 2013
Взгляните на модель CNN + TriCRF, структура модели выглядит следующим образом:
Модели для распознавания слотов
Входными данными является вектор каждого слова, а многомерный признак h получается через сверточный слой, а затем оценивается в целом с помощью Tri-CRF. Разница между Tri-CRF и линейной CRF заключается в том, что для получения классификации каждой метки перед вводом используется прямая сеть. Проанализируем формулу подсчета очков:
Приведенное выше t(Yi-1, Yi) — это оценка передачи, hij — многомерный признак, полученный CNN, и многомерный признак в каждый момент времени проходит через прямую сеть для получения вероятности каждой метки, Таким образом, комбинация первых двух является общей оценкой.
для распознавания намерений
CNN использует один и тот же набор параметров для получения многомерного признака h каждого скрытого слоя, напрямую использует максимальное объединение для получения выражения всего предложения и использует softmax для получения классификации намерений.
Объединение вышеперечисленного фактически является совместной моделью.
Результаты этой статьи основаны на наборе данных ATIS:
Намерение: 94,09 Слот (F1): 95,42
4. Четвертая глава в основном основана на RNN, основанной на внимании.
Liu B, Lane I. Attention-based recurrent neural network models for joint intent detection and slot filling[J]. 2016.
Сначала познакомьтесь с концепцией вектора контекста, см. Bahdanau D, Cho K, Bengio Y. Нейронный машинный перевод путем совместного обучения выравниванию и переводу [J], 2014.
g в приведенной выше формуле на самом деле является прямой сетью для получения корреляции между каждым скрытым слоем декодера и каждым скрытым слоем кодера во входной последовательности, то есть компонентом внимания, который взвешивает выходные данные скрытого слоя энкодер в каждый момент и внимание текущего момента.То есть получить вектор текста (вектор контекста)
При вводе текста модель кодировщика-декодера, используемая в этой статье, выглядит следующим образом:
слот
Нарисуйте модель с невыровненным вниманием в скрытых слоях. Скрытый слой декодера не выровнен.Вход каждой ячейки на стороне декодера – это вход скрытого слоя s в предыдущий момент, вероятность s метки в предыдущий момент и вход текстового вектора c.
На рисунке б показана модель выравнивания скрытого слоя без внимания Вход каждой ячейки на стороне декодера - это скрытый слой s в предыдущий момент, вероятность s метки в предыдущий момент и выход скрытого слоя соответствующего энкодер в каждый момент.
Рисунок c. Скрытые слои выравнивают модель внимания. Вход каждой ячейки на стороне декодера — это скрытый слой s в последний момент, вероятность s метки в последний момент, вероятность s метки в последний момент и вход текстового вектора c и вывод скрытого слоя соответствующего энкодера в каждый момент времени.
намерение
Окончательный вывод кодировщика используется для добавления текстового вектора в качестве классификации намерения.
Модель основана на наборе данных ATIS (+выровненные входные данные):
Намерение: 94,14 Слот (F1): 95,62
В этой статье также получена другая совместная модель, основанная на RNN внимания, основанная на вышеупомянутой идее.
Вход в скрытый слой BiRNN
слот
Высокоразмерные признаки, полученные BiRNN, объединяются с текстовым вектором в качестве входных данных однослойного decoderRNN для идентификации слота.Следует отметить, что выходная вероятность кодера действует только на уровень прямой передачи BiRNN.
намерение
Взвешивание вывода скрытого слоя однослойного декодера RNN позволяет получить окончательный вектор вывода для получения окончательной классификации намерений.
Модель основана на наборе данных ATIS (+выровненные входные данные):
Интент: 94,40 Слот (F1): 95,78
5. Пятая статья в основном посвящена совместной модели онлайн-намерения, слота и языка (Online-RNN-LU). Основная причина, по которой вышеупомянутые четыре совместные модели не обрабатываются онлайн, заключается в том, что все они анализируются в единицах целых предложений и не могут быть проанализированы в режиме реального времени. Изюминкой этой статьи является анализ в реальном времени, который анализирует оптимальное намерение и слот и предсказывает слово за время T от ввода до настоящего времени.
Liu B, Lane I. Joint online spoken language understanding and language modeling with recurrent neural networks[J]. 2016.
На приведенном выше рисунке показан анализ тока во времени T:
намерение
w — последовательность слов до момента времени T (включая T), c — намерение до момента времени T, s — последовательность слотов до момента времени T, в соответствии с тремя вышеприведенными входными данными RNN в текущий момент времени T, выходными данными скрытого уровня RNN, различные уровни MLP используются для классификации намерения и слота в текущий момент T соответственно, а выходное намерение concat и информация о слоте скрытого уровня вводятся на уровень MLP для получения прогноза следующее слово.
Фактическая операция выглядит следующим образом: с использованием LSTM входными данными являются последовательность слов, намерение и информация о слоте в предыдущий момент. IntentDist, SlotLabelDist и WordDist в формуле являются слоями MLP.
Метод обучения - максимальная вероятность трех вышеперечисленных модулей.
Стоит отметить, что в этой статье используется идея жадности из-за онлайн-алгоритма и достигается текущий оптимум на основе предыдущего намерения и слота.
Баллы вышеуказанных моделей на ATIS
4. Резюме
Вышеупомянутые модели в основном решают более важное намерение и идентификацию слота в традиционной структуре алгоритма задачи с помощью глубокого обучения, и эти модели могут быть применены к связанной области задач на практике (я использовал метод LSTM + CRF для добиться Слот извлечения курса валют в проекте). Как использовать модуль управления диалогами в сочетании с модулем понимания языка для решения проблемы нескольких раундов диалога всегда было сложной проблемой.Хотя некоторые методы, такие как традиционные модели или обучение с подкреплением, были предложены в традиционной структуре алгоритма, стандартизация данных и процесса диалога. Негладкие, жесткие и т. д. серьезно влияют на опыт пользователя в диалоге, основанном на задачах. В последнее время более оживленная ориентированная на задачу в основном основана на модели последовательностей в сочетании с базой знаний, что преподнесло несколько неожиданных сюрпризов.Следующая статья в основном знакомит с такой моделью.
Ссылка:
[1] Zhang X, Wang H. A Joint Model of Intent Determination and Slot Filling for Spoken Language Understanding[C] IJCAI. 2016
[2] Guo D, Tur G, Yih W, et al. Joint semantic utterance classification and slot filling with recursive neural networks[C] 2014 IEEE. IEEE, 2014
[3] Xu P, Sarikaya R. Convolutional neural network based triangular crf for joint intent detection and slot filling 2013 IEEE Workshop on. IEEE, 2013
[4] Liu B, Lane I. Attention-based recurrent neural network models for joint intent detection and slot filling[J]. 2016.
[5] Bahdanau D, Cho K, Bengio Y. Neural machine translation by jointly learning to align and translate[J]. 2014.
[6] Liu B, Lane I. Joint online spoken language understanding and language modeling with recurrent neural networks[J]. 2016.
вопросы и ответы
Как обнаружить поисковых ботов с помощью php?
Связанное Чтение
Введение в диалоговых роботов на основе задач
Обзор анализа текстовых настроений
Когда глубокое обучение встречается с автоматическим обобщением текста
Эта статья была разрешена автором для публикации сообщества Tencent Cloud +, исходная ссылка: https://cloud.tencent.com/developer/article/1147476?fromSource=waitui.
Приветствую всех вОблако Tencent + сообществоИли обратите внимание на общедоступную учетную запись WeChat сообщества Yunjia (QcloudCommunity) и как можно скорее получите больше массовой технической практики галантерейных товаров ~