Создайте собственную интеллектуальную службу поддержки клиентов

искусственный интеллект
Создайте собственную интеллектуальную службу поддержки клиентов

Эта статья была впервые опубликована на Gitchat, первоначальный автор Ван Сяолэй, и автор разрешил репостить ее с согласия автора. Для перепечатки, пожалуйста, свяжитесь с автором или GitChat.

задний план

Многие спрашивают, система диалогового взаимодействия — это просто голосовое взаимодействие? конечно, нет. Голосовое взаимодействие само по себе не является новой концепцией. Каждый, возможно, звонил в банк: «Пожалуйста, нажмите 1 для обслуживания на китайском языке, 2 для обслуживания на английском языке... Пожалуйста, нажмите 0, чтобы вернуться на предыдущий уровень». Это также диалоговая интерактивная система. Я думаю, все знают, насколько неэффективным является взаимодействие с пользователем. Так могут ли диалоговые интерактивные системы заменить человека в предоставлении услуг? Нет, тест Тьюринга еще не пройден, так что куда торопиться.

Однако с развитием искусственного интеллекта диалоговое взаимодействие облачается в оболочку голоса и текста, объединяется с нечеткими поисковыми системами, охватывает ядро ​​вычислительной науки и лингвистики, несет в себе гирлянды индивидуальных рекомендаций и ведет к глубокому обучению и большим исследованиям. Оседлав ветер и волны, мы знали, что пора. По крайней мере, мы уже можем создать собственную диалоговую службу поддержки клиентов за десять минут. Сегодняшняя статья условно разделена на три части: история, сегодня (api чат-бота) и будущее (глубокое обучение и разумные ответы на вопросы).

Сначала определите интерактивную систему, определение, данное вики,

Interaction is a kind of action that occurs as two or more objects have an effect upon one another.

То есть процесс взаимодействия двух или более сторон друг с другом, то в нашем контексте мы могли бы также ограничить его взаимодействием человека с компьютером. Давайте поговорим о том, что это такое, а затем поговорим о том, как это сделать.

история и настоящее

Разговорное взаимодействие в широком смысле фактически включает в себя все взаимодействия человека с компьютером в форме одного вопроса и одного ответа.От начала до конца нам всем необходимо получать информацию от машин. В самую раннюю эпоху использовалась система текстового взаимодействия TUI. На самом деле, я считаю, что до сегодняшнего дня программисты по-прежнему выбирают Терминал, когда они выполняют большинство операций в Linux. Этот вид текстового взаимодействия очень прост и эффективен, но есть Недостаток: незнаком с операцией Людям очень трудно начать работу, и им нужно запомнить множество инструкций и правил, чтобы эффективно сказать машине, что она хочет делать — прямо как в шутке: «Вопрос: Как генерировать случайную строку? A: Пусть новичок выйдет из VIM" .

Интуитивно, поскольку «сказать машине, что делать с помощью метода связи машины» приносит человеку плохой пользовательский опыт, мы можем позволить машине предоставить человеку возможные варианты выбора. Поэтому людям потребовались десятилетия, чтобы обновить интерактивную систему до графического интерактивного графического интерфейса. Настольная система, которую сегодня все видят, является особенно типичным воплощением. Включая последующее развитие сенсорных экранов и смартфонов, они фактически являются разными проявлениями графического взаимодействия.

Теперь все в порядке? нисколько. В то время как машины могут представить огромное количество информации в одно мгновение, количество информации, которое люди могут заметить одновременно, крайне ограничено. Психологические исследования показали, что объем человеческого внимания на самом деле составляет всего 5-9 объектов. Представьте картинку выше, а что если я поставлю 100 приложений на рабочий стол? А 1000? по мере роста объема данных. Как быстро представить эффективную информацию в большом объеме информации?

Поисковые системы, или, если быть точнее, рекомендательные системы, берут на себя задачу максимально эффективно предоставлять пользователям нужную им информацию, когда вариантов слишком много. Если мы делаем интеллектуальный поиск, мы можем осуществлять интеллектуальные взаимодействия. Суть та же: в огромном количестве известных данных, исходя из определенной модели и опыта, наиболее желанный ответ пользователя суммируется и своевременно представляется. Я задаю Google вопрос, и Google возвращает мне ответ, который мне нужен в первую очередь. Кто сказал, что это не диалоговое взаимодействие?

Конечно, мы надеемся, что разговорный пользовательский интерфейс — это не только вопросы и ответы, мы надеемся, что диалоговая система может иметь свою собственную базу данных знаний, что она сохраняет память и понимание контекста, и что она способна делать выводы. логично Надеюсь, в нем есть эмоциональный подтекст.

Итак, у нас есть сегодняшний Conversational UI, где разговорное взаимодействие — это просто оболочка. Суть этого - интеллектуальные и индивидуальные услуги.После периода обучения вы берете телефон и набираете номер банка, а интеллектуальный ответ службы поддержки клиентов такой же, как человеческое взаимодействие. Отложите громоздкий путь принятия решений от 1 до 9, прямо скажите ему, что вы хотите сделать, и банк напрямую предоставит вам ту услугу, которая наилучшим образом соответствует вашим потребностям. Для выполнения этой задачи у нас есть два основных пути.Один из них - экспертная система.Здесь мы также представим несколько движков в Интернете и постараемся, чтобы каждый научился создавать свою собственную интеллектуальную систему обслуживания клиентов в течение десяти минут. Другой — это интеллектуальная система ответов на вопросы, которая требует некоторых знаний о машинном обучении и глубоком обучении — научить машину понимать правила гораздо интереснее, чем научить машинные правила.

ввод и вывод

Вышесказанное относится к вводу, то есть к тому, как машина понимает инструкции людей. Именно из-за проблемы выхода, которая, можно сказать, давно решена. Среди трех методов передачи текста, изображения и голоса голос является последним, который предстоит решить, но технологии 20-летней давности достаточно для общения с людьми, хотя мы все еще можем легко услышать, синтезирован ли корпус электронным способом, но эта потеря тембр не влияет на цель нашего общения.

Распознавание речи в текст гораздо сложнее. Этот вид работ начался в 1952 году, если быть точным. Читая числа от 1 до 0, затем введите звуковой спектр числа, чтобы определить, с какого числа начинается. Хотя эта модель достигает точности 98%, она не универсальна: пространство источника данных и пространство назначения слишком малы.

Все мы знаем, что самые известные или наиболее часто используемые модели распознавания речи — это модели глубокого обучения. Но до этого? Типичный пример: докторская диссертация профессора Кай-Фу «Скрытая марковская модель» была опубликована около тридцати лет назад, как показано на следующем рисунке:

Проще говоря, это модель временного ряда. Есть временное состояние, скрытое состояние и есть наблюдаемое состояние. Например, у меня есть две кости, шестигранная, от 1 до 6. Тетраэдр, от 1 до 4. Вероятность переключения между двумя кубиками равна 0,5. Теперь, учитывая крайнюю последовательность 11112222444111155566666666, какой сегмент, по вашему мнению, является четырехгранной игральной костью, а какой — шестигранной игральной костью? Точно так же, когда я слышу речь, я хочу узнать скрытое за ней предложение Принцип тот же, что и при бросании игральной кости: сделать вывод о скрытом состоянии (тексте) за наблюдаемым состоянием (звуком). Эти типы вероятностных моделей работают настолько хорошо, что многие используют их до сих пор.

chatbot api

В зависимости от объема ручного вмешательства реализацию механизма логического вывода можно условно разделить на две категории. Один из них — это правила, определяемые вручную, а другой — правила машинного обучения, автоматически основанные на данных. Что касается первого, мы все знаем, что wit.ai и api.ai, два известных открытых API чат-бота, принадлежат двум гигантам Facebook и Google. Давайте сначала посмотрим на достигнутый эффект:

(Изображение из:t.cn/RS17j6U)

Здесь + означает балл, машина точно понимает намерение человека. o значит нет баллов, машина не понимает. Мы видим, что производительность не так хороша, как предполагалось, некоторые очень простые случаи «я хотел бы заказать пиццу» не имеют оценки, что все еще находится на некотором расстоянии от интеллекта обычных людей.

Так какая логика стоит за этим? Для примера api.ai мы бы определили разные типы и переменные, а затем связали их с соответствующими значениями и ответами. Следовательно, при взаимодействии с пользователем соответствующее значение может быть сохранено по известным (определенным человеком) правилам и может быть вызван соответствующий метод.

Вы можете подумать, что английский медленно читается. Вот китайская версия api.ai — yige.ai. Это не реклама. Я так понимаю, что эта платформа также приносит пользу моему другу — однажды он пришел ко мне и сказал: Да здравствует! Знаете ли вы, что существует сайт знакомств, который использует искусственный интеллект вместо пользователей женского пола для общения с людьми! После этого по официальным слухам говорилось, что он этого делать не будет. Тем не менее, удобство yige.ai для начинающих действительно является одним из лучших среди китайских API чат-ботов, которые я когда-либо видел.

(Подробнее см.:t.cn/RcjU8w8)

Но, как показано на рисунке, нам все еще нужно вручную определить многие вещи, включая тезаурус, сцены, правила, действия, параметры и так далее. При такой небольшой сцене покупки обуви и определенном диапазоне ожиданий взаимодействия это все же приемлемо для большинства людей. Ведь он простой и интуитивно понятный, точно выполняет требование «создать собственного чат-бота за десять минут», не требует мощных вычислительных ресурсов и объема данных. Но мы вряд ли получим знания за пределами определенной области в такой системе. Если у нас будет достаточно времени и рабочей силы, мы можем нанять несколько профильных экспертов для улучшения этой базы вопросов, что сделает точность поиска очень высокой. Потому что на все возможные вопросы уже есть профессиональные ответы. Однако, когда сцена сложная, рабочая нагрузка может стать большим давлением.

Итак, нам нужно глубокое обучение.

Чтобы добиться хороших результатов в глубоком обучении, необходимо выполнить два предварительных условия. Одно — достаточное количество вычислительных ресурсов, а другое — большой объем данных.

Излишне говорить, что вычислительные ресурсы, если нет графического процессора, время обучения для неструктурированных необработанных данных, таких как изображения/голоса, в основном должно составлять «недели».

Дизайн набора данных

Что касается больших данных, очень распространенный вопрос: насколько большим является большой. С академической точки зрения: он достаточно большой, чтобы содержать все функции, необходимые для определения целевого значения. Мы все знаем, что на практике это предложение в основном относится к чепухе. Так, например, в общем случае для обучения модели распознавания речи данныеИсчисляется тысячами часовиз.

И, к сожалению, датасеты многих коммерческих компаний практически не публичны. Итак, откуда берутся данные для небольших стартапов и внештатных исследователей? Автор собрал несколько общедоступных наборов данных, которые можно использовать для обработки естественного языка и интеллектуальных ответов на вопросы. Из-за ограничений по объему и теме я не буду обсуждать их здесь. Еще один день будет посвящен ознакомлению с общедоступными общедоступными данными и тому, как модели, полученные на основе общедоступных наборов данных, должны быть перенесены в их собственные предметные области.

Изображение из:Карточка слуги раджа people.GitHub.IO/squad-exp

Вот пример известного набора данных для ответов на вопросы Стэнфордского университета, SQuAD, который можно назвать лучшим и наиболее типичным набором данных для измерения систем ответов на вопросы в отрасли. Мы, наверное, все делали понимание прочитанного в старшей школе, статья с несколькими вопросами, и ответы исходят из информации в статье. Итак, что мы можем сделать с таким набором данных? Какие проблемы может решить модель, обученная на таком наборе данных? В чем разница между производительностью человека и производительностью машины в каждой задаче? Зачем?

Мы очень рады видеть, что в недавно опубликованной статье, основанной на r-net, производительность машин сопоставима с человеческой. Оценка EM, полученная людьми в этом наборе данных, составляет около 82,3, а оценка F1 - около 91,2. Оценка EM фреймворка, опубликованного Microsoft, достигает 82,1, что менее чем на 0,2% отличается от человеческого.

глубокое обучение

Хорошо, теперь, когда данные и вычислительные ресурсы доступны, откуда взялась модель? Мы рады видеть, что алгоритмы развиваются, а вмешательство человека становится все меньше и меньше по мере развития технологий. В последней версии, опубликованной DeepMind 5 декабря 2017 года, AlphaZero победила предшественницу AlphaGo, использовавшую кучу фич, без использования каких-либо искусственных фич, а также победила драгоценную шахматную книгу, которую человечество копило тысячи лет.

Интуитивно в глубокой сети распознавания изображений компьютеру сложно понять значение значения пикселя исходного изображения, но вес каждого слоя нейронной сети фактически изучает высокоуровневые характеристики изображения. Чем выше слой нейронной сети, тем специфичнее компоненты. Первый слой может идентифицировать края, сравнивая яркость пикселей.На основе этого второй слой может обнаруживать наборы краев и углов, третий слой может быть маленькими цветными пузырьками или гранями, а четвертый слой может быть более сложными объектами, такими как рты, и, возможно, более специфические черты, вплоть до самого объекта. Подобно человеческому мозгу, нейронная сеть слой за слоем обрабатывает исходный сигнал и, наконец, абстрагирует его от части к целому в объект, который мы воспринимаем. На рисунке показан процесс восприятия от изображения к объекту или модель отображения от изображения к списку меток.

Изображение из:Woohoo.deep Learning book.org/contents/in…

То же самое верно для преобразования речи в текст или вопроса в ответ, а последовательность за последовательностью можно использовать в качестве модели обучения. Будь то api.ai или yige.ai, упомянутые выше, правила и переменные, как правило, определяются вручную. Машины будут обеспечивать некоторую общую поддержку неопределенных грамматических правил, но, как мы видели, при столкновении со сценариями взаимодействия за пределами области определения трудно работать хорошо.

В то время как при сквозном распознавании нас не волнуют все синтаксические и семантические правила, все входные данные напрямую направлены на вопросы, а все выходные данные являются прямыми ответами. Когда данных достаточно, мы можем добиться сквозного распознавания без вмешательства искусственно заданных семантических правил. Это дело одновременно и хорошее, и плохое. Машины, основанные на искусственных правилах, никогда не смогут превзойти человеческую производительность, но модели машинного обучения, основанные исключительно на данных, могут превзойти людей — это было доказано непобедимостью AlphaGo.

Изображение из:Бумаги.Грязевой Бодхисаттва.Цао Цао/бумага/5346-…

Как показано на рисунке, модель seq2seq может быть разработана на основе статьи, опубликованной Sutskever в NIPS в 2014 году. Модель использует рекуррентную нейронную сеть для считывания токена в качестве входных данных за раз и прогнозирования токена ответа. Допустим, первый человек сказал ABC, а второй ответил WXYZ, тогда модель построит отображение от ABC до WXYZ. Скрытая переменная модели, мы можем назвать его «вектор мысли», указывает на то, что машина понимает идею или концепцию этой азбуки. Эта модель превосходна по простоте и универсальности, как показали последующие эксперименты.

На следующем рисунке показан пример результата перевода, сгенерированного LSTM (нейронной сетью).Вы можете обратиться к эффекту и сравнить его с Baidu Translate и Google Translate.

Изображение из:Бумаги.Грязевой Бодхисаттва.Цао Цао/бумага/5346-…

Реализация чат-бота для глубокого обучения с открытым исходным кодом

Я считаю, что через предыдущее введение у всех есть предварительное понимание системы диалогового взаимодействия и существующего апи, тогда для оставшейся части желающих реализовать модель самостоятельно, благодаря github и arxiv, мы у первоисточников уровень кода и принципа.Можно узнать, чем сегодня занимаются самые яркие умы.

Вот репрезентативная среда с открытым исходным кодом, основанная исключительно на seq2seq, реализованная с помощью машинного обучения без какого-либо ручного вмешательства:GitHub.com/conПроизводственная сеть ICU…

Статью см.:АР Вест V.org/PDF/1506.05…

В соответствии с давним стилем Google весь код реализован на TensorFlow и python3.5, поддерживает различные базы данных с открытым исходным кодом и настраиваемые базы данных диалогов и даже имеет локальный веб-интерфейс. Есть готовые весовые файлы, которые можно скачать (нет необходимости в длительном самостоятельном обучении), и мы можем легко контролировать производительность системы через TensorBoard, хотя производительность некоторых диалогов неудовлетворительна, например, противоречивые ответы. на тот же вопрос в контексте.Очевидные ошибки далеки от прохождения теста Тьюринга, но его принципы проектирования и методы реализации действительно дружелюбны к новичкам. По крайней мере, эта модель говорит нам, что модели глубокого обучения могут автоматически извлекать соответствующие знания из шумных открытых полей и автоматически генерировать ответы.

Резюме и перспективы

Подводя итог, можно сказать, что если у нас будет больше экспертов в предметной области и бизнес-аналитиков, а бизнес-сценарии, требующие проектирования диалогового взаимодействия, относительно ограничены, а взаимосвязи между переменными относительно просты, то нет сомнений, что все виды API-интерфейсов чат-ботов будут вашими. лучший выбор — он интуитивно понятен, имеет простой интерфейс, его легко интегрировать, и в большинстве случаев он будет более точным, чем сквозное глубокое изучение конкретной проблемы. Если у нас будет больше специалистов по данным и инженеров по большим данным, будет большой интерес к изучению правил обработки данных с помощью машин, а бизнес-сценарии станут более сложными, и нам потребуется поддерживать больше неструктурированных необработанных данных и автоматизировать извлечение и извлечение признаков. , то рекомендуется воспользоваться преимуществами глубокого обучения для создания собственной интеллектуальной системы ответов на вопросы.

Из-за ограниченного места, я не буду многословен здесь, я желаю вам всем счастливого времени!


Для получения более замечательных идей, пожалуйста, обратите внимание на публичный аккаунт WeChat: Stworker

WeChatSina WeiboEvernotePocketInstapaperEmail LinkedInPinterestShare