Лучшее понимание текста

«Один из самых больших скачков в истории поиска»

Панду Наяк, вице-президент по поиску в Google

Что такое BERT?

BERT - это модель нейронного встраивания слов, разработанная Google. На данный момент это основной фактор для обработки поисковых запросов Google.

О нейронных встраиваниях слов

Процесс внедрения нейронного слова можно определить как процесс, в котором каждое слово в данном текстовом образце представлено вектором числовых значений.

Например: слово «ночь» можно вставить как вектор ниже.

Каждое числовое значение в векторе можно рассматривать как значение для определенной характеристики, которую может иметь слово.

Зачем нужны вложения Word?

Поскольку модель нейронной сети принимает только числа в качестве входных данных, слова должны быть преобразованы и представлены в виде какой-то числовой структуры.

Зачем нужен вектор?

Вектор числовых значений необходим, поскольку единственное число не сможет уловить полное значение слова.

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

Почему BERT для встраивания слов

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

Например: давайте рассмотрим 2 утверждения и посмотрим, как BERT встраивает их,

Предложение 1: «Он всегда справедлив и беспристрастен».

Встраивание BERT слова справедливо в предложение 1 будет таким:

Предложение 2: «Ходить на ярмарку с друзьями - всегда весело»

Встраивание BERT слова справедливо в предложение 2 будет таким:

Мы можем заметить, что использование и контекст слова «справедливый» в двух приведенных выше предложениях различаются.

В предложении 1 это слово является синонимом «беспристрастный» и «беспристрастный».

Во втором предложении это слово является синонимом слов «карнавал» и «фестиваль».

BERT способен правильно различать это различие в контексте в своих вложениях слов, чего не смогли сделать другие модели.

BERT также может генерировать вектор для полного предложения.

Как обучался BERT

Обучение BERT включало использование 2500 миллионов слов из Википедии и 800 миллионов слов из текстовых образцов.

Для обучения BERT используются следующие концепции / модели:

1. Маскированная языковая модель (MLM)

Короче говоря, MLM использовался для отдельных текстовых выборок, чтобы замаскировать около 15% данных, а оставшаяся выборка была обучена для модели BERT.

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

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

2. Прогнозирование следующего предложения (NSP)

Этот подход предполагает использование вероятностного фактора того, насколько вероятно предложение успешнее предыдущего.

Например: если первоначальное предложение - «Я читаю эту статью» (предложение 1)

и два других предложения идут как «Я присоединюсь к вам немного позже» (предложение 2) и «Мы живем на Земле» (предложение 3).

Таким образом, вероятность появления предложения 2 после предложения 1 будет выше.

Это актуально для таких задач, как ответы на вопросы. Во время обучения модель получает в качестве входных пар предложений и учится предсказывать, будет ли второе предложение следующим предложением в исходном тексте.

Другой пример:

Реализация:

Давайте посмотрим, как B идеальный E кодер R представление от T преобразователей (BERT) поможет нам создать модель классификатора текста с использованием Tensorflow.

Сначала мы импортируем необходимые модули

Затем мы импортируем наш файл набора данных о спаме (будет доступен по ссылке, указанной позже).

Давайте добавим двоичные числа для значений "спам" и "не спам".

Теперь мы можем разделить данные на этапы обучения и тестирования.

Теперь, чтобы использовать BERT, нам нужно использовать его через TensorFlow Hub. Мы предварительно обработаем данные, а затем закодируем их с помощью BERT через модели Hub.

Ссылка на предварительную обработку: https://tfhub.dev/tensorflow/bert_en_uncased_preprocess/3

Ссылка на кодировщик BERT: https://tfhub.dev/tensorflow/bert_en_uncased_L-12_H-768_A-12/3

Теперь мы можем предварительно обработать и закодировать наш набор данных с помощью BERT.

Теперь мы создадим функциональную модель Tensorflow для обработки

Затем мы добавим входы и выходы для создания окончательной модели.

Теперь скомпилируем модель и подгоним ее.

PS: Обучение модели займет около 2 часов.

Давайте проверим точность результатов

Таким образом, мы смогли получить точность около 96% от нашей модели классификации текста, используя модель Google BERT.

Ссылка на Github: https://github.com/NeelGhoshal/BERT_classification

Дополнительная литература / просмотр:

Блог

"Статья"

"Видео"

Не стесняйтесь обращаться ко мне с чем угодно, что есть у меня в социальных сетях

Linkedin

Инстаграм

Github