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

Одна вещь, которая выделяется в НЛП, - это машинный перевод (МТ): недавние подходы на основе нейронных сетей значительно превосходят традиционные методы машинного перевода. Но некоторые утверждают, что подходы сквозных нейронных сетей на самом деле не «понимают» естественные языки, которыми они манипулируют. Хотя мы можем спорить о том, что представляет собой понимание, качество машинного перевода, особенно длинных предложений, действительно требует значительных улучшений.

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

Как далеки мы от реализации этих видений?

НЛП: самое современное

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

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

Что отличает НЛП от других и что делает его сложным и почему глубокое обучение не сильно помогло, хотя оно значительно улучшило задачи распознавания изображений и обработки речи? Для понимания естественных языков очень важны две вещи: априорные и структурные.

В 2011 году Тененбаум и др. Задали очень интересный вопрос: Как наш разум получает так много из такого малого? Наш разум строит богатые модели мира и делает сильные обобщения на основе разреженных, зашумленных и неоднозначных входных данных - во многих отношениях слишком ограниченных, чтобы поддерживать сделанные нами выводы. Как мы это делаем?

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

Машины трудно получить правильные априорные точки для байесовского вывода. Вот простой пример (хотя и не совсем уместный): учитывая поисковый запрос прогноз погоды на 7 дней в иордании, как мы решаем, что означает иордания? Люди сразу же узнают, что это означает страна Иордания. Наивный алгоритм, не обращающий внимания на структуру запроса, может ошибочно принять jordan за Jordan shoes (бренд Nike). Вероятно, это связано с априорными значениями, которые он использует в байесовском выводе, которые оцениваются путем подсчета того, как часто люди ищут в Интернете обувь Jordan по сравнению со страной Jordan. Эта оценка смещена, особенно в нашем случае: оказывается, что первое встречается намного чаще, чем второе. В этом случае предвзятые априорные факторы преобладают над выводом, что приводит к неверному результату. Следует ли нам использовать более изощренный способ оценки априорной вероятности? Безусловно. Но нет гарантии, что более изощренный подход сработает во всех ситуациях.

Приоры важны, но еще важнее то, что естественные языки обладают рекурсивными структурами. Запрос «прогноз погоды на 7 дней в Иордании» имеет структуру, которая может быть отображена в семантический фрейм «прогноз погоды» с параметром местоположения (слот) и параметром временного интервала (слот). Если алгоритм улавливает эту структуру, то он может устранить путаницу в отношении обуви Jordan, не беспокоясь о предварительных данных. Это также на один шаг ближе к истинному пониманию этого запроса. В современных приложениях веб-поиска и контроля качества / беседы вручную созданные шаблоны используются для фиксации структур ввода на естественном языке, что значительно снижает количество ошибок при логическом выводе. Проблема в том, что такие решения сложно обобщать и масштабировать.

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

Возможно, причина, по которой глубокое обучение более успешна при обработке изображений, заключается в том, что структуры в изображениях легче фиксировать: этой цели служит сверточная нейронная сеть (CNN), которая допускает трансляционную инвариантность. Однако с естественными языками сделать то же самое гораздо сложнее. В результате мы не видим прорывов в НЛП, за исключением нескольких отдельных случаев, когда у нас есть огромные объемы обучающих данных, где априорные значения и структуры могут быть изучены неявно (например, Google использует миллиарды исторических поисковых запросов, чтобы обучить RankBrain навыкам отсортировать результаты поиска).

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

Сила агрегации

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

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

Резюмирование. Существует два типа резюмирования текста: извлекающее и абстрактное. Подводя итог статье, экстрактивный подход выбирает несколько предложений внутри статьи, а абстрактивный подход генерирует новые предложения. Экстрактивный подход использует чисто статистические методы, например, он устанавливает отношения между двумя предложениями, изучая их общие слова и темы. Абстрактивный подход не давал хороших результатов до тех пор, пока не стало доступно глубокое обучение. Но даже при глубоком обучении (например, недавняя работа, в которой используется перевод последовательности в последовательность, механизм внимания, механизм копирования, механизм охвата и т. Д.), Качество реферирования все еще не на уровне продукта. Итак, когда же эта техника будет готова помочь моему другу, который хочет использовать НЛП, читать финансовые новости и предлагать торговые идеи? По крайней мере, текущие подходы должны сделать еще один шаг, принимая во внимание явные цели (например, предлагая торговые идеи) в обобщении.

Базы знаний. Создание баз знаний - это еще одна область, в которой используются агрегированные результаты извлечения информации (IE). Он также демонстрирует силу и слабость агрегации: усилия по созданию более полной базы знаний не увенчались успехом, потому что i) большая часть открытых знаний, полученных путем агрегирования результатов IE из больших корпусов, часто уже охвачена Freebase или другими вручную отобранными базы знаний и ii) знания, полученные из отдельных высказываний, часто ненадежны. Тем не менее, базы знаний по конкретной предметной области могут иметь огромное коммерческое влияние. Возьмем, к примеру, две важные отрасли: электронную коммерцию и здравоохранение. На веб-сайтах электронной коммерции пользователи могут искать продукты по названиям или характеристикам, но они не поддерживают такие запросы, как «как бороться с бессонницей» или «как избавиться от енотов», хотя они продают много продуктов для таких ситуаций. Им нужна база знаний, которая сопоставляет любую именную или глагольную фразу со списком продуктов. В здравоохранении похожая ситуация. Нам нужны базы знаний, которые объединяют симптомы, состояния, методы лечения и лекарства.

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

Рассмотрим запрос «Путешествие в Аризону» на Facebook. Мой друг только что написал сообщение за четыре часа до моего запроса, и он идеально подходит. Но найти этот пост чрезвычайно сложно, так как никакие данные о поведении пользователей к нему не приводят. Таким образом, для поиска в социальных сетях, поиска по электронной почте, поиска в электронной коммерции, поиска приложений и т. Д. NLP и семантическое сопоставление по-прежнему играют большую роль. В частности, граф знаний, связывание сущностей, семантический анализ - это ключи к лучшему обслуживанию запросов с ограниченными данными о поведении пользователя или без них.

Образование. Очень интересный и прибыльный бизнес - помочь пользователям более эффективно изучать или использовать язык. Например, несколько стартапов (например, Grammarly, DeepGrammar и др.) Предоставляют инструменты для исправления грамматических ошибок пользователей. На высоком уровне это вполне выполнимо, поскольку алгоритмы должны иметь возможность приобретать достаточные грамматические знания посредством автономного обучения на больших корпусах. Это должно позволить им фиксировать большинство ошибок в тексте, не понимая смысла текста. Однако есть еще много возможностей для улучшения. Например, учитывая Я проснулся в 4 утра, ни Grammarly, ни DeepGrammar не предлагают изменить просыпался на просыпался или утром на утром. DeepGrammar фактически предлагал заменить просыпаться на работать, что не имеет смысла. Конечно, для выявления определенных ошибок необходимы семантические знания, например, когда такие инструменты смогут предложить изменить pm на am в следующем тексте Я проснулся в 16:00 утра?

Небольшой технический прорыв плюс много грязной работы

Нам нравится представлять себе причудливые решения НЛП, но многие из них - это общий искусственный интеллект (AGI), потому что они должны обрабатывать все возможные сценарии. AGI не появится в ближайшее время. Тем не менее, время от времени случаются небольшие технические прорывы. Иногда с помощью большого количества грязной работы мы можем превратить их в коммерческий успех.

Вопрос-ответ (QA) и чат-боты не являются чем-то новым - первый чат-бот был разработан в 60-х годах (ELIZA, 1966). Это не зашло очень далеко. Что изменилось 50 лет спустя, что сделало QA и чат-боты такими популярными?

Произошли три вещи:

  1. (Технологии) Прорывы в распознавании речи, которые сделали возможными Alexa, Google Assistant, Siri; Доступность больших баз знаний, особенно баз данных с открытым доменом, таких как Google Knowledge Graph.
  2. (Рынок) Мессенджеры стали незаменимыми элементами в бизнесе и повседневной жизни, а в последнее время умные колонки внезапно стали повсеместными.
  3. (Утилита) Люди готовы переключиться с поиска по ключевым словам на интерфейсы на основе голоса / естественного языка для получения более конкретных ответов более прямым способом.

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

Тем не менее, QA пользуется огромным успехом, и мы все испытали это в Google. (Он все еще ошибается. Ниже Google принял тещу за мать за своего основателя. Снимок экрана был сделан в июле 2017 года). Просто успех достигается не за счет нового уровня понимания естественного языка, а благодаря множеству вручную созданных шаблонов.

Вот несколько наблюдений.

1. Воздействие в значительной степени обусловлено технологическим прогрессом. Таким образом, очень важно, чтобы мы знали об ограничениях технологии: в конце концов, за более чем полвека с QA и чат-ботами ничего не произошло.

2. Обычно новая технология не решает 100% проблемы, но это нормально. Мы рады выполнить много грязной работы (например, создать шаблоны и правила вручную и т. Д.), Чтобы восполнить пробел. В значительной степени успех QA и цифровых помощников, таких как Siri, Alexa, Google Assistant и Cortana, обусловлен шаблонами, созданными вручную.

Но как насчет новейшего разговорного ИИ (например, использование глубокого обучения с подкреплением для создания чат-ботов)? Разве это не одна из движущих сил, благодаря которым чат-боты становятся такими популярными? да. Но пока это не оказывает реального влияния. Здесь я сосредоточен на целевых диалоговых системах (Siri, Alexa, Google Assistant), хотя признаю, что бесцельный небольшой разговор (Microsoft Tay) может быть интересным. Но мы должны постоянно смотреть на пересечение технических достижений и потребностей приложений и не уклоняться от использования низкотехнологичной грязной работы, чтобы добиться результатов.

Сужение проблемной области

Давайте еще раз рассмотрим проекты моих друзей, о которых я упоминал ранее:

  1. Разговорный бот, который разговаривает с пациентами и ставит медицинский диагноз.
  2. Алгоритм, который читает финансовые новости и предлагает торговые идеи.
  3. Персональный помощник, который записывает вашу повседневную деятельность и предлагает советы, которые сделают вас более счастливыми и удовлетворенными.

Pizza Hut развернула чат-бота, чтобы принимать заказы от клиентов, и это было довольно успешно. Виртуальный помощник Facebook M мертв, потому что Facebook не ограничивал то, что M можно было попросить сделать. Прежде чем обсуждать осуществимость проектов моих друзей, давайте еще раз вернемся к этой цитате главы Microsoft AI Гарри Шама:

Компьютеры сегодня могут очень хорошо выполнять определенные задачи, но когда дело доходит до общих задач, ИИ не может конкурировать с человеческим ребенком. - Гарри Шам

И эта цитата профессора Стэнфорда Эндрю Нг:

Большая часть ценности глубокого обучения сегодня заключается в узких областях, где можно получить большой объем данных. Вот один пример того, чего он не может: вести содержательный разговор. Есть демонстрации, и если вы выберете чёткую беседу, похоже, что это значимый разговор, но если вы на самом деле попробуете это сами, он быстро сойдёт с рельсов. - Эндрю Нг

Когда дело доходит до того, что робот ставит медицинский диагноз, у людей, естественно, возникает много сомнений и опасений. Но технически это возможно. Для решения проблем в узкой области первоочередной задачей является разработка баз знаний для конкретной предметной области, которые сделают наших роботов экспертами в этой области. В этом случае нам нужны графы знаний, которые моделируют отношения между симптомами, состояниями, диагнозами, лечением, лекарствами и т. Д. А как насчет ответственности? Люди все равно получают советы по вопросам здоровья от немедицинских властей: каждый 20-й поисковый запрос в Google относится к информации, связанной со здоровьем. Чат-бот просто обеспечивает более прямую форму общения, чем веб-поиск. С другой стороны, настоящая проблема этого проекта может заключаться в том, как получить доступ к медицинским записям пользователей. Фактически, несколько стартапов (например, doc.ai и eHealth First) вложили средства в использование технологий блокчейна для решения этой проблемы.

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

Замечательная идея - создать личного помощника, который записывает повседневные мысли и действия пользователя и предлагает отзывы, которые сделают пользователя более счастливым и удовлетворенным. Это напоминает мне Google Фото. Время от времени Google выбирает несколько старых фотографий для создания альбома с таким названием, как «Откройте для себя заново этот день 4 года назад». Это всегда вызывает улыбку на моем лице. Тем не менее, фотографии отражают лишь несколько отрывков из жизни человека, в то время как естественные языки могут более полно сохранять наши мысли и действия и воспроизводить их более творчески для пользователя.

Однако это задача открытой области: личный помощник должен понимать все виды мыслей и действий, что делает его общим искусственным интеллектом (AGI). Можно ли сузить проблемную область?

Почему бы нам не начать с 1000 шаблонов? Вполне разумно предположить, что 1000 шаблонов охватят удивительно много видов человеческой деятельности (например, «Я пробежал сегодня 3 мили в кампусе Стэнфорда» и «Я пил кофе с Алоном в HanaHaus в центре Пало-Альто» и т. Д.). Персональный помощник преобразит пиксели нашей жизни в структурированные представления, сортируем их, объединяем и представляем нам позже в новом гобелене.

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

Еще одна большая проблема для этого проекта - как заставить людей разговаривать со своими личными помощниками на ежедневной основе. Может быть, мы можем использовать это вместе с тем, что пользователи делают каждый день, например, мы обнаруживаем действия и мысли человека в электронных письмах. Или мы можем сделать так, чтобы личный помощник постоянно слушал наши ежедневные разговоры. Фактически, несколько стартапов уже создают инструменты для этого (например, otter.ai, Eva и т. Д.).

Расширяя технические границы

Существующие техники НЛП недостаточны для понимания естественного языка; AGI не появится, по крайней мере, в ближайшее время. Означает ли это, что единственный способ оказать влияние на бизнес - это сузить проблемную область до такой степени, чтобы мы могли использовать трудоемкие методы для покрытия каждого сценария?

Конечно нет.

Есть много способов расширить технические границы. Здесь я остановлюсь на двух направлениях, над которыми мы работаем.

Если нынешняя технология НЛП не позволяет нам углубиться в понимание естественного языка, как насчет попыток пойти дальше?

В качестве примера рассмотрим QA и чат-ботов для обслуживания клиентов. Обслуживание клиентов - многообещающий рубеж для НЛП и ИИ. Это не требует от нас особенно глубокого понимания естественного языка. Если наша технология способна обрабатывать 30% взаимодействия с клиентами, предприятия могут сэкономить 30% человеческого труда, что очень важно. Следовательно, многие компании с разным уровнем успеха развертывают свои собственные решения для контроля качества или чат-ботов.

Было время (до 1970-х годов), когда каждому бизнесу нужно было управлять каким-то хранилищем данных по-своему (например, для ведения учета заработной платы). Затем появились реляционные СУБД, в которых было заявлено, что независимо от того, какой бизнес вы ведете, реляционные СУБД могут декларативно обрабатывать платежные ведомости и другие приложения за вас, что означает, что больше нет необходимости писать код для обработки и извлечения данных.

Можно ли создать общедоступный ИИ для обслуживания клиентов? Или, другими словами, что нужно для того, чтобы система обслуживания клиентов, разработанная для одного бизнеса, использовалась для другого бизнеса?

Это может показаться надуманным, но это не совсем невозможно. Во-первых, нам нужно унифицировать модель серверных данных, используемых для обслуживания клиентов. Это возможно, потому что большая часть бизнес-данных уже находится в реляционных базах данных. Во-вторых, мы преобразуем вопросы клиентов на естественном языке в запросы SQL к базам данных.

Означает ли это, что нам нужно решать вопросы на естественном языке для всех сценариев? Не совсем. Мы обрабатываем только очень небольшой набор высказываний на естественном языке, то есть их можно преобразовать в операторы SQL. В соответствии с этим ограничением вопросы на естественном языке в одной бизнес-области должны быть похожи на вопросы в другой бизнес-области, потому что они имеют одинаковую скрытую структуру. Фактически, если мы будем рассматривать i) схему базы данных, ii) статистику базы данных и iii) эквивалентные способы упоминания атрибутов и значений базы данных на естественных языках как метаданные, которые могут быть введены в QA и диалоговый AI, тогда можно создать одна система для различных нужд обслуживания клиентов.

Если недостаток данных для обучения является узким местом для НЛП, почему бы не попытаться добавить явные знания предметной области в алгоритмы машинного обучения?

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

В качестве примера представьте, что база знаний имеет отношение parentOf, но не отношение grandparentOf. Чтобы понять, что grandparentOf эквивалентен parentOf (parentOf), требуется много обучающих данных. Более эффективный метод - передать эти знания предметной области, как правило, алгоритму машинного обучения.

В описанном выше проекте обслуживания клиентов мы используем глубокое обучение (модель на основе seq2seq) для преобразования вопросов на естественном языке в операторы SQL. На основе данных обучения алгоритм изучает значение вопросов на естественном языке, а также синтаксис SQL. Тем не менее, даже с очень большими обучающими данными, изученная модель не всегда создает правильно сформированные операторы SQL. Но не должно быть необходимости изучать синтаксис SQL!