Введение в Sentence-BERT от Озана Йылмаза, инженера НЛП из Германии. Эта статья была первоначально опубликована на Search Candy.
В октябре 2019 года Google объявил о новой технологии на основе ИИ под названием BERT для дальнейшего улучшения результатов поиска.
BERT расшифровывается как ‘Bidirectional Encoder Representations from Transformers’ и представляет собой модель языкового представления, которая была обучена на 3,3 млн английских слов.
Огромная разница между BERT и более ранними версиями языковых моделей заключается в том, что BERT «понимает» контекст, в котором используется слово. Чтобы сделать это немного понятнее, давайте рассмотрим следующие два примера предложений.
- «Боб бежит марафон».
- «Боб управляет компанией».
Человеку легко понять, что в этих примерах бег имеет совершенно другое значение, но для машин эта задача далеко не тривиальна.
Ранние модели, которые широко использовались до 2018 года, поместили бы оба случая «бега» в один семантический ящик «быстрой ходьбы», потому что это было бы наиболее распространенным использованием.
С другой стороны, BERT рассматривает контекст слов, прежде чем кодировать их значение в единицы и нули. Это делает его гораздо более точным и мощным алгоритмом для кодирования естественных языков.
Для BERT очевидно, что «бег» в примере 2) подразумевает, что Боб возглавляет компанию, и не имеет ничего общего с актом ходьбы.
После понимания того, что делает BERT таким особенным, легко увидеть ценность этой технологии для поисковых алгоритмов Google.
Она не только улучшает понимание слов, вводимых пользователем, но и помогает Google понимать более естественные запросы пользователей. В 2022 году вам больше не придется объяснять, как искать по ключевым словам.
С помощью BERT Google научится понимать целые последовательности и их семантические связи.
Сегодня вы можете задать вопрос типа «Как называется фильм, в котором маленький мальчик видит призраков?» и получить в качестве первого результата «Шестое чувство», что является вполне подходящим и в данном случае правильным ответом.
Приговор — БЕРТ (СБЕРТ)
Как бы хорошо это ни звучало, BERT все же не является решением всех проблем семантического поиска.
Хотя это превосходный способ кодирования значений слов в запросе, он не очень хорошо работает, когда речь идет о сравнении сходства целых предложений.
Реймерс и его коллега Гуревич, авторы статьи Sentence-BERT, поняли это уже в самом начале и объясняют проблему следующим образом:
«Поиск наиболее похожей пары в коллекции из 10 000 предложений требует около 50 миллионов вычислений вывода (~65 часов) с помощью BERT. Конструкция BERT делает его непригодным для семантического сходства […]».
Несколько модификаций и более тонкая настройка для семантического сходства текста помогают Sentence-BERT сократить эти 65 часов примерно до 5 секунд, что является невероятным увеличением производительности.
Отличие от обычного BERT заключается в идее пойти на один уровень абстракции дальше и кодировать семантическое значение всего предложения вместо кодирования только отдельных слов.
Ядро системы по-прежнему основано на стандартном предварительно обученном алгоритме BERT и черпает из него свою семантическую силу.
Таким образом, в сценарии, когда вы хотите найти наиболее похожие заголовки на заданный, вам лучше использовать алгоритм SBERT.
На первый взгляд, эта информация не может показаться ценной для SEO, но с учетом появления новых алгоритмов, таких как SMITH, который работает аналогично BERT, но рассматривает более длинные контексты в масштабе документа, знакомство с SBERT может оказаться полезным.
К счастью, я провел эксперимент с SBERT, чтобы дать вам некоторое представление и пролить свет на возможности архитектур, работающих на базе BERT.
Использование SBERT для поиска похожих вопросов
Учитывая, что теперь мы знаем, что SBERT намного быстрее сравнивает предложения, мы будем использовать это знание для определения вопросов из базы данных, которые похожи на новый вопрос, заданный пользователем.
Для этого я загрузил огромный массив данных из известного сабреддита reddit «Объясни, как будто мне пять лет» (ELI5) с помощью скрипта Facebook. На ELI5 пользователи могут задавать вопросы о самых разных вещах и получать понятные ответы. Я отфильтровал вопросы и закодировал их с помощью SBERT.
На следующем этапе я построил алгоритм, который использует широко используемую меру векторного сходства «косинусное сходство» для вычисления 4 вопросов из моей корзины данных, которые наиболее похожи на мой входной вопрос. Чтобы иметь базовый уровень для сравнения, я провел тот же эксперимент со стратегией кодирования под названием TF-IDF.
Кодировка TF-IDF отражает, насколько важно слово для документа в коллекции или корпусе. Это довольно наивный статистический метод, который работает на уровне слов и не учитывает семантику.
В следующем разделе я расскажу о результатах по двум заданным мною вопросам и объясню процесс рассуждений, лежащий в их основе.
Пример 1 — «Существует ли расизм у животных?».
Результат аналогичных вопросов:
TF-IDF | SBERT |
---|---|
Почему существует расизм? | Проявляют ли животные дискриминацию / расизм на основании цвета меха / кожи? |
Почему возникает расизм? | Смущаются ли животные или испытывают стыд? |
Почему расизм все еще существует? | Почему кровосмесительное разведение вредно для животных? |
Почему расизм так распространен? | Есть ли среди животных убийцы, психопаты или другие поведенческие отклонения, обычно ассоциирующиеся с людьми? |
Топ похожих вопросов для SBERT дает пользователю именно то, что он просил, хотя формулировка вопроса отличается.
Здесь мы можем наблюдать силу SBERT: предложения сравниваются с использованием более глубокого уровня семантики, что помогает системе понять запрос гораздо более глубоким образом, что невозможно для простой модели TF-IDF.
Наивная система очень сфокусирована на слове «расизм» и выдает два лучших ответа, содержащих «есть ли расизм». Очевидно, что механизм поиска TF-IDF отбрасывает важную фразу «у животных», чтобы максимизировать сходство между последовательностями.
Это дает понять, что базовое представление фокусируется на структуре кодирования на уровне слов и не учитывает контекст.
Далее, мы видим, что SBERT даже понимает, что расизм имеет негативную коннотацию. По этой причине он также перечисляет результаты других вопросов, таких как «Смущаются ли животные или испытывают стыд?».
Такое поведение выходит за рамки простой статистической модели, которая была подобрана для коротких вопросов.
Пример 2 — «Почему мы еще не полетели на Марс?».
Результат аналогичных вопросов:
TF-IDF | SBERT |
---|---|
Можем ли мы увидеть «кого-то» на Марсе? | Почему мы до сих пор не смогли высадиться на Марсе? |
Почему не на Марс? | Почему мы до сих пор не посадили человека на Марс? |
Как высоко может летать муха? | Почему мы делаем нашу экспедицию на Марс путешествием в один конец? |
Почему иногда перелет из пункта A → B обходится дороже, чем перелет из пункта A → B → C? | Почему нам нужно лететь на Марс? |
И снова базовая модель концентрируется на простых понятиях на уровне слов «полет» и «Марс», а SBERT улавливает смысл вопроса и предоставляет пользователю подходящие результаты по теме «путешествие человечества на Марс».
Интересно заметить, что во втором вопросе, предоставленном SBERT, и в запросе пользователя используется чередование слов «уже» и «еще». Это еще раз показывает семантическую мощь архитектуры BERT.
Как мы видим, SBERT способен кодировать даже гранулированную семантическую информацию на уровне предложения и обеспечивает значимые результаты при использовании для задач сходства предложений.
Учитывая тот факт, что алгоритмы, подобные SMITH, в настоящее время находятся в разработке, вполне возможно, что языковая модель на уровне предложений, подобная SBERT, может быть внедрена и в алгоритм Google. Но что означает эта мощь BERT и BERT-подобных технологий для SEO?
Передовые языковые технологии и SEO
Обработка естественного языка сделала огромный скачок вперед с появлением BERT, и нет никаких признаков замедления.
Регулярно появляются новые работы, а такие компании, как Google, Facebook и Amazon, как никогда активно продвигают эту область.
Учитывая это, задача SEO будет меняться от заботы об обратных ссылках, оптимизации ключевых слов, метаописаниях и т.д. к созданию качественного контента для пользователей.
Люди хотят найти точную и компактную информацию, когда они что-то ищут, и вы должны быть в состоянии предоставить именно такую информацию.
Время, когда мы оптимизировали для машин, постепенно подходит к концу. В будущем машины будут оптимизировать нас.
Источники
- Объявление Google BERT
- Документ BERT
- Документ Sentence-BERT
- Документ алгоритма SMITH
- Reddit ELI5 Subreddit
- Facebook Проект ELI5
- Косинусное сходство
- TF-IDF