Способности ИИ к чтению в некоторых отношениях превзошли человеческие, и Microsoft R-Net — один из ИИ, достигших этого рубежа. Недавно инженер Google Сачин Джоглекар опубликовал интуитивно понятное введение в R-Net на Medium.
Документ R-Net: https://www.microsoft.com/en-us/research/wp-content/uploads/2017/05/r-net.pdf
13 января этого года многие СМИ сообщили, что искусственный интеллект, разработанный Microsoft и Alibaba, превзошел людей по способности читать в тесте набора данных SQuAD. Хотя это не совсем точно, модели, разработанные этими компаниями, действительно превосходят людей по определенным показателям в определенных задачах чтения. Этот пост представляет собой интуитивно понятное введение в R-Net, искусственный интеллект, стоящий за усилиями Microsoft по достижению этой цели.
Во-первых, учитывая вопрос о чтении...
Учитывая абзац P:
«Тесла родился 10 июля 1856 года (28 июня по старому стилю) в сербской семье в деревне Смилиан (ныне часть Хорватии) в Австрийской империи. Его отец Милутин Тесла был сербским православным священником. Джука Тесла (урожденная Мандич) и ее отец также являются православным священником;:10 Она очень хороша в изготовлении ручных домашних инструментов, машин и имеет воспоминания о Сербии. Эпические способности. Джука никогда не имел формального образования. Никола приписывает свою память и творчество наследство и влияние его матери. Предки Теслы пришли из западной Сербии недалеко от Черногории. :12"
Тогда задайте вопрос Q:
«Какими особыми способностями обладает мать Теслы?»
Затем предоставьте часть непрерывного текста в качестве ответа A:
«Отлично в изготовлении бытовых ручных инструментов, механической посуды и способности запоминать сербские эпосы»
Стэнфордский набор данных для ответов на вопросы (SQuAD) содержит около 500 статей, включающих около 100 000 пар вопросов и ответов (из которых взяты приведенные выше примеры).
Прежде чем мы представим подход Microsoft к пониманию прочитанного, давайте кратко представим две концепции, которые широко используются в их статье:
1. Рекуррентная нейронная сеть (RNN)
RNN — это особый тип нейронной сети, который можно использовать для анализа временных (или последовательных) данных. Стандартные нейронные сети с прямой связью не имеют концепции памяти, тогда как RNN включают эту концепцию, используя контекстный вектор «обратной связи»:
Рисунок 1: Типичная RNN
По сути, его вывод на любом временном шаге t является функцией прошлого контекста и текущего ввода.
Двунаправленная RNN (BiRNN) — это особый вид RNN. Стандартные RNN запоминают исторические контексты, «запоминая» прошлые данные, в то время как BiRNN также перемещаются в противоположном направлении, чтобы понять будущие контексты:
Рисунок 2: BiRNN
Следует отметить, что, хотя RNN теоретически могут запоминать историю любой длины, обычно лучше интегрировать краткосрочный контекст, чем долгосрочную информацию (20-30+ шагов).
Примечание. Основная цель использования R-Net RNN (точнее, закрытых рекуррентных единиц) состоит в том, чтобы имитировать действие «чтения» текстовых отрывков.
2. Внимание
Внимание в нейронных сетях смоделировано по образцу того, как люди сосредотачиваются на определенной части визуального ввода и грубо смотрят на все остальное.
Внимание можно использовать в приложениях, где не все части вашего набора точек данных имеют отношение к текущей задаче. В таких случаях внимание вычисляется как средневзвешенное значение softmax всех точек в наборе. Сами веса вычисляются как некоторая нелинейная функция 1) набора векторов и 2) контекста.
Рисунок 3: В контексте «летающей тарелки» сеть фокусируется на фактической летающей тарелке и связанных с ней объектах, игнорируя все остальное.
Примечание: R-Net использует внимание, чтобы выделить некоторые части текста в контексте других текстов.
R-Net
Интуитивно, R-Net выполняет понимание прочитанного таким же образом, как мы с вами делаем понимание прочитанного: «читая» (применяя RNN) текст много раз (точнее, в 3 раза) и увеличивая «тонкую настройку» Well. (используя внимание) векторное представление каждого слова.
Давайте расшифруем каждый из этих процессов в отдельности...
Первое чтение: взгляд
Мы начали со стандартных векторов токенов (то есть слов) и использовали вложения слов из Glove. Однако люди обычно понимают значение слова в контексте окружающих слов.
Возьмем эти два примера: «Может случиться» и «Четвертое мая», где значение «май» зависит от окружающих слов. Также обратите внимание, что справочная информация может поступать как в прямом, так и в обратном направлении. Поэтому мы использовали BiRNN поверх стандартных вложений слов, чтобы получить лучшие векторы.
Этот процесс применяется как к вопросам, так и к абзацам.
Второе чтение: Проблемный анализ
При втором чтении сеть использует контекст самого текста, чтобы обусловить представления слов из отрывка.
Предположим, вы уже достигли точки абзаца:
"...она очень хороша всделатьДомашние ручные инструменты, механизмы и возможность запоминать сербские эпосы. Юка так и не получил формального образования..."
Имея в руках «создание», если вы обращаете внимание на проблемные токены, вы можете сосредоточиться на:
«Что такого особенного в матери Теслы?способность? "
Точно так же сеть корректирует вектор «сделано», чтобы он был семантически ближе к «способности».
Все токены в абзаце делают это — по сути, R-Net формирует связь между требованиями вопроса и соответствующими частями статьи. В оригинальной статье эта часть называется Gated Attention-based RNN (Gated Attention-based RNN).
Третье чтение: полное понимание абзаца с самосознанием
-
При первом чтении мы понимали эти лексемы в контексте их непосредственной близости к окружающим словам.
-
Во время второго чтения мы улучшили наше понимание на основе текущего вопроса.
Теперь мы взглянем на весь абзац с высоты птичьего полета, чтобы найти те части, которые действительно помогают ответить на вопрос. Для этого недостаточно иметь краткосрочное контекстуальное представление об окружающих словах. Обратите внимание на выделенные слова в следующих разделах:
Матерью Теслы была Джука Тесла (урожденная Мандич), а ее отец также был православным священником; :10 Она очень хорошо делала бытовые ручные инструменты, механические орудия и имела память о сербских эпосах.способность. Джука так и не получил формального образования. Николай приносит свои воспоминания и творенияспособностьКредит на наследство и влияние его матери.
Все это относится к способностям матери Теслы. Но в то время как первые вращаются вокруг текста, описывающего способность (которую мы хотим), вторые способности связывают их с талантами Теслы (чего мы не хотим).
Чтобы найти правильное начало и конец ответа (к которому мы обратимся на следующем шаге), нам нужно сравнить разные слова с похожими значениями в абзаце, чтобы найти их различия. Эту задачу трудно выполнить с помощью чистой RNN, потому что выделенные слова находятся далеко друг от друга.
Для решения этой проблемы R-Net использует так называемое «самосогласованное внимание».
Зачем нужно самосогласование?
При применении внимания мы обычно используем некоторые данные (например, слово абзаца) для измерения набора векторов (например, вопросительных слов). Но во время этой итерации мы используем слово текущего абзаца для измерения токена из самого абзаца. Это помогает нам отличить текущее слово от других слов с аналогичным значением в остальной части абзаца. Чтобы улучшить этот процесс, эта фаза чтения выполняется с использованием BiRNN.
На мой взгляд, этот шаг использования самосопоставления внимания является самой «волшебной» особенностью R-Net: использование внимания для сравнения слов, которые находятся далеко друг от друга в одном и том же абзаце.
Последний шаг: отметьте ответы
На последнем этапе R-Net использует вариант сетей указателей, чтобы определить, где начинается и заканчивается ответ. Проще говоря:
Сначала мы вычисляем другой вектор внимания на основе текста вопроса. Это используется в качестве «начального контекста» для этой итерации. Используя эти знания, для этого начального индекса вычисляется набор весов (для каждого слова в абзаце). Слово с наибольшим весом используется в качестве «стартовой позиции» для его ответа.
В дополнение к весам эта двухшаговая RNN возвращает новый контекст, в котором закодирована информация о начале ответа.
Повторите вышеуказанные шаги еще раз — на этот раз, используя новый контекст вместо контекста, основанного на вопросе, чтобы вычислить, где заканчивается ответ.
Возьми! У нас есть ответ! (На самом деле, ответ, данный в нашем примере выше, является ответом, который на самом деле придумала R-Net.)
Если вас интересуют более тонкие детали R-Net, прочтите их статью. Если код поможет вам лучше понять (по крайней мере, для меня), см. отличный пост в блоге YerevaNN, пытающийся перестроить R-Net с помощью Keras: r-net-нейронная-сеть-использование-keras/.
Исходная ссылка: https://codeburst.io/understanding-r-net-microsofts-superhuman-reading-ai-23ff7ededd96