Что такое эмбеддинги и как они помогают искусственному интеллекту понять мир людей
Как привычные слова изменяют цифровой мир вокруг нас, рассказывает доктор технических наук Владимир Крылов, консультант Artezio.
Современные системы распознавания речи и текста открывают для людей новые возможности, значительно упрощая общение человека и машины. Мы можем отдавать голосовые команды автопилоту, спросить в чате у бота, какая завтра будет погода или получить рекомендации, как улучшить текст для книги. Все это стало возможным благодаря уникальным разработкам ученых и привычным словам, которые искусственный интеллект научился понимать с помощью эмбеддингов.
Термин «эмбеддинг» (от англ. embedding – вложение) - стал часто встречаться в описаниях систем искусственного интеллекта только в последние несколько лет, а впервые появился в работах специалистов по обработке текстов на естественных языках. Естественный язык – это привычный способ общения людей. Например, язык машин – это двоичный код, в который компилируются все другие языки программирования. Однако в нашем случае речь идет именно об обработке естественного языка человека.
Технологии искусственного интеллекта включают в себя обработку текста на естественных языках, сокращённо NLP, то есть Natural Language Processing (не путайте с нейролингвистическим программированием!). Эмбеддинг в NLP означает процесс или, чаще, результат процесса преобразования языковой сущности – слова, предложения, параграфа или целого текста в набор чисел – числовой вектор
В русскоязычной литературе эмбеддингами обычно называют именно такие числовые векторы, которые получены из слов или других языковых сущностей. Напомню, что числовым вектором размерности k называют список из k чисел, в котором порядок чисел строго определен. Например, трехмерным вектором можно считать (2.3, 1.0, 7.35), а (1, 0, 0, 2, 0.1, 0, 0, 7.9) – восьмимерным числовым вектором.
В самой примитивной форме эмбеддинги слов получают простой нумерацией слов в некотором достаточно обширном словаре и установкой значения единицы в длинном векторе размерности, равной числу слов в словаре. Например, возьмем Толковый словарь Ушакова и пронумеруем все слова с первого до последнего. Так слово «абака» преобразуется в число 5, «абажур» - в 7 и так далее. Всего слов в словаре 85 289 слов. Эмбеддинг слова «абака» будет иметь 85288 нулей на всех позициях, кроме пятой, где будет стоять 1, а слово «абажур» - соответственно будет иметь нули на всех 85288 позициях кроме седьмой, где будет единица. Этот метод построения эмбеддингов называют унитарным кодированием, а в современной англоязычной литературе – one-hot encoding.
Любому предложению на русском языке можно попытаться поставить в соответствие последовательность – более правильно с математической точки сказать - кортеж таких 85289-мерных векторов. И тогда действия над словами могут быть преобразованы в действия над этими числовыми векторами, что собственно и свойственно компьютеру. Однако все не так просто. Первая проблема применения таких эмбеддингов, с которой вы столкнетесь, это отсутствие в выбранном словаре слова, для которого ищется эмбеддинг.
Посмотрите в упомянутый Толковый словарь Ушакова – вы не найдете там такого популярного слова как «компьютер». Существенно снизить вероятность такой проблемы можно не используя специальный словарь, а нумеруя слова в произвольном обширном наборе текстов, например, в Википедии, Большой российской энциклопедии. Для этих целей сегодня создаются специальные наборы, называемые корпусами текстов.
Ну, а какие действия над числовыми эквивалентами слов мы хотели бы совершать и зачем? Наверное, для того, чтобы компьютер мог сам без вмешательства человека предпринять какие-то действия в зависимости от содержания имеющегося у него текста. Самый простой пример – это распространённые сегодня мобильные ассистенты – Google Assistant или Siri. Они работают как с голосовыми командами и запросами, так и с текстовыми. В зависимости от содержания запроса ассистент выполняет определённые действия: формирует сводку погоды, запускает программы или производит математическое действие. Однако, использование представительных корпусов (корпус текстов - подобранная и обработанная по определённым правилам совокупность текстов, используемых в качестве базы для исследования языка) само по себе не помогает извлечь какую-либо пользу из превращения конкретного текста в кортеж чисел. Ведь любой текст на естественном языке представляет собой не только набор слов, но и несет некоторую семантику, смысл.
Задача научить компьютерную систему как-либо понимать смысл текста, извлекать из него семантическую информацию, используя примитивный эмбеддинг, является неразрешимой. Иными словами, системе нужна дополнительная информация, не только простые значения. Поэтому следующий шаг в обработке текстов был сделан путем учёта того факта, насколько часто каждое слово языка (термин) встречается в корпусе и насколько важно его появление в конкретном тексте. Так возник частотный эмбеддинг, в котором каждому слову в позицию, соответствующую его номеру, ставится в соответствие число - частота слова, а точнее, скорректированное значение частоты. Если для первого понятия все очевидно: для каждого слова в тексте рассчитывается число его вхождений и делится на общее число слов, то второй термин посложнее. Я говорю про обратную частоту документа, а если точнее, то об инверсии частоты, с которой некоторое слово встречается в документах коллекции.
Благодаря данному показателю можно снизить весомость наиболее широко используемых слов (предлогов, союзов, общих терминов и понятий). Для каждого термина в рамках определённого корпуса текстов предусматривается лишь одно единственное значение частоты слова. Показатель обратной частоты будет выше, если определённое слово с большой частотой используется в конкретном тексте, но редко - в других документах. Используя эмбеддинги в виде таких векторов, удалось впервые осуществить автоматический семантический анализ текстов, определяя имеющиеся в корпусе текстов темы и классифицировать тексты по основным темам.
Существует несколько успешно применяемых алгоритмов такого анализа: латентный семантический анализ, латентное размещение Дирихле и тематические модели Biterm для коротких текстов. Использование таких моделей, например, позволило сортировать гигантские потоки электронных писем по тематике и направлять их согласно предписанным правилам. На этом этапе внутри NLP начал формироваться мощный поток технологий, которые получили общую формулировку, как «понимание естественного языка».
В революционной работе Томаша Миколова, исследователя Google, и его коллег в 2013 году было предложено использовать гипотезу локальности: «слова, которые встречаются в одинаковых окружениях, имеют близкие значения». Близость в данном случае – это стоящие рядом сочетающиеся слова. Например, для нас привычно словосочетание "заводной будильник". А сказать “заводной океан” мы не можем — эти слова не сочетаются. Для получения таких свойств нужно строить эмбеддинги слов в высокоразмерном (но не зависящем от числа слов) векторном пространстве. Чтобы каждому слову теперь соответствовал набор из двух-пяти сотен чисел, и эти наборы удовлетворяли свойствам математического векторного пространства.
То есть, чтобы их можно было складывать, умножать на скаляры, находить между ними расстояния и при этом каждое такое действие с числовыми векторами имело смысл как некоторое действие над словами. Все публикации и лекции об эмбеддингах сегодня сопровождает известная картинка, поясняющая сказанное.
Он основан на использовании вероятностной оценки совместного употребления групп слов и самообучаемой на корпусах текстов нейронной сети. Идея оказалась плодотворной, и уже вскоре мы были свидетелями построения ещё более изощрённых моделей для получения эмбеддингов как отдельных слов, так и предложений, и целых документов. Это модель GloVe, разработанная в Стэнфорде, fastText, doc2vec – модель, отображающая в числовой вектор целый документ. В последние годы эмбеддинги получают с помощью весьма сложных моделей глубокого обучения для сохранения в свойствах векторов всё более тонких отношений естественного языка. Получаемые результаты настолько впечатляют, что эксперты отметили появление таких моделей как новую эру эмбеддинга.
Понимая всю сложность моделей такого уровня, не могу не удержаться от попытки рассказать, как же все-таки получаются эмбеддинги в самой хайповой сегодня модели BERT, разработанной Google AI Language в 2018 году.
В основе лежит нейроархитектура, называемая Transformer. Каждое слово кодируется уникальным ключом, и последовательность слов подается на так называемую рекуррентную нейронную сеть для предсказания некоторого числового многомерного вектора – эмбеддинга.
BERT может предсказывать не только слова, но и целые предложения. В процессе обучения BERT модель получает пары предложений в качестве входных данных и учится предсказывать, является ли второе предложение в паре последующим предложением в исходном документе. Во время обучения 50% входных данных представляют собой пару, в которой второе предложение является последующим предложением в оригинальном документе, в то время как в остальных 50% входных данных в качестве второго предложения выбирается случайное предложение из корпуса. Предполагается, что случайное предложение будет отсоединено от первого предложения.
BERT можно использовать для самых разных языковых задач, например, модифицируя нейронную сеть.
Результаты применения эмбеддингов BERT впечатляют. Кроме уже привычных оценок тональности текста - позитивных и негативных высказываний, компьютер стал определять наличие сарказма в тексте высказывания, обнаруживать ложь и страх. Это, кстати, уже используется электронными ассистентами. Определение эмоций человека позволяет добиться лучшей коммуникации с машиной. Да и сам человек начинает относиться к программе с большим доверием, в какой-то степени, как к человеку. Вот какие глубокие особенности человеческой психологии удается превратить в алгебраические соотношения эмбеддингов.
Эмбеддинги открыли возможность одновременного оперирования на разных естественных языках. Ведь если построить пространство эмбеддингов предложений и слов на английском и русском языке, то одинаковым семантическим понятиям должны соответствовать одни и те же эмбеддинги. Такое совмещение должно осуществляться в процессе обучения нейропереводчика. Тогда перевод нового текста с английского будет сводиться к его эмбеддингу и декодированию в словах русского языка, на который нужно осуществить перевод. Известны поисковые машины, которые принимают запрос на одном языке и отыскивают информацию на любом языке, используя обратный индекс на основе эмбеддингов.
Перед искусственным интеллектом (ИИ) открыта масса задач не только понимать особенности высказанного человеком и выбирать заранее декларированные возможные решения на их основе, но и строить сами решения. Достижение таких целей в системах искусственного интеллекта осуществляется использованием архитектур с многими нейронными сетями, генетических алгоритмов, деревьев выбора и других. Все они как правило работают эффективно, если данные для них представлены в виде числовых векторов. Это означает, что все данные для искусственного интеллекта следует представлять эмбеддингами.
В последнее время появилось несколько работ, посвященных эмбеддингам сущностей, отличных от лингвистических. Хотя здесь можно и сомневаться, нужно ли интеллекту искусственному, да и естественному, знать какие-то сущности, кроме выраженных средствами языка, естественного или искусственного, но воспринимаемого человеком. В конечном итоге и отношения между сущностями описываются средствами языка, а значит могут рассматриваться равноправно наряду с отношениями слов, предложений и текстов. Все это говорит о том, что путь эмбеддинга для любых сущностей, с которыми должен оперировать ИИ, является перспективным и корректным.
Обратимся к примерам. Например, социальная платформа Pinterest создала и использует 128-мерные эмбеддинги как для сущностей называемых Pin – страницы или изображения из Интернет и сущностей Pinner - пользователей.
В нашей лаборатории ведутся исследования в области использования эмбеддингов для представления правового пространства – статей уголовного кодекса, гражданского кодекса, трудового кодекса, судебных решений совместно с представлением нарративов (повествовательных текстов), описывающих некоторые факты. Уже сегодня нам удалось построить весьма качественный ИИ, который может заменить аппарат суда для квалификации материалов дела на этапе подготовки проекта судебного решения: какие нормативные акты нарушаются в описании фактов, представленных нарративом.
Сегодня всё больше и больше людей занимаются разработкой эмбеддингов. В принципе, уже можно говорить о том, что достаточно универсальный подход может базироваться на идее, что ИИ должен «мыслить» словами, в языковой форме. Другая идея опирается на предположение, что состояния мира могут преобразовываться в эмбеддинги, минуя словесное описание, например изображения или аудиозаписи можно сразу преобразовывать в многомерные вектора.
Если обучать модель для такого эмбеддинга совместно с текстами, то ИИ сможет оперировать как с однородными данными и с картинками, и со словами, и со звуками. Совсем недавно в своей лекции в Беркли Дэн Гиллик из Google предложил строить ИИ для поиска информации размещая все различные объекты / сущности в одном и том же векторном пространстве, независимо от того, составлены они из текста, изображений, видео или аудио.
ИИ на таком принципе сможет отвечать на вопросы, заданные на различных языках, иллюстрациями и звукозаписями, письменно и устно. Какой размерности потребуются эмбеддинги для таких универсальных описаний и достаточно ли структуры и мощности многомерного векторного пространства для сохранения всей необходимой сложности и разнообразия мира, в котором должен работать искусственный интеллект - вопрос текущих и будущих исследований.Автор: доктор технических наук Владимир Крылов, консультант Artezio
Фото: sitebuilderreport.com, Shatterstock (предоставлено Artezio)