Передовое НЛП по сравнению с традиционным поиском

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

Это серия из трех частей о поиске.

В разделе Часть 1 - Мягкое введение мы представили обзор основных строительных блоков поиска.

Наконец, Pt 3 (Elastic Transformers) содержит чисто технические соображения о том, как создать индекс как механизм Elasticsearch с контекстным встраиванием текста. В текущем обсуждении мы будем использовать некоторые результаты из этого поискового индекса.

В этой статье мы будем

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

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

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

Введите вложения текста для контекстного поиска

Вложения текста - это математические представления слов, предложений или документов в виде векторов. Это означает, что мы можем представлять текст таким образом, чтобы мы могли выполнять с ним математические операции. То, как мы можем сказать, что число 2 ближе к 3, чем к 10, и все они ближе друг к другу, чем к 100. Если мы можем таким образом закодировать весь смысл документа мы можем использовать эти свойства, чтобы находить сходства между документами, группировать их в значимые кластеры и т. д.

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

Вы должны знать слово по компании, которую он составляет - Ферт, Дж. Р.

Некоторые подводные камни и трансформаторы на помощь

Ранние инструменты для встраивания текста использовались для захвата в основном отдельных слов (Word2Vec, GloVe и т. Д.), Однако это по-прежнему было проблематично с примерами, в которых фраза могла иметь другое значение, чем слова внутри. Природное и катастрофа означают нечто совершенно иное, если их объединить. Последние достижения в области НЛП привели к появлению целого ряда моделей контекстного встраивания, таких как ELMo, BERT и т. Д. (Один хороший обзор здесь). Однако часто они поступают в виде предварительно обученных инструментов, которые все еще нуждаются в тонкой настройке для конкретной задачи. Такой задачей может быть: идентификация тональности предложения, сходство предложений, ответы на вопросы и т. Д. Библиотека трансформеров Huggingface сделала использование многих из этих инструментов очень доступным.

Заяц, мы будем использовать преобразователи предложений - библиотеку Python, которая (среди прочего) предоставляет нам модели SBERT, предварительно обученные для задачи семантического сходства предложений, позволяя нам сравнивать значения целые предложения. (обязательно посмотрите и бумагу). Это решающий фактор того, что мы делаем, поскольку без мощных встраиваний на уровне документа (в данном случае заголовок новости - это документ) мы не можем извлечь значимые сравнения между запросом и искомыми документами. Обратите внимание, что SBERT - не единственный способ сделать это, некоторые другие подходы, например, USE, InferSent и т. Д. Также этот подход для поиска пытается сопоставить запрос с результатами, в которых упоминаются похожие слова из запроса. В этом отношении он похож на поиск по ключевым словам, который ищет документы, в которых используются те же слова запроса, но не заменяет вопрос-ответ, когда мы ищем конкретный ответ на вопрос.

А теперь ... настоящие скачки ...

Здесь я сравню результаты, которые мы получим, если запросим два подхода бок о бок. Я постараюсь сравнить различия и сделать из них какие-то выводы.

Обратите внимание, что более формальная оценка аналогичной задачи выполняется в IR-BERT (задача состоит в том, чтобы найти лучшие вспомогательные статьи к заданной (запросной) статье, Задача 1 здесь). Авторы демонстрируют, что контекстный подход (SBERT) явно превосходит подход, основанный на чистых ключевых словах (BM25), однако результаты неоднозначны, когда используются более продвинутые методы взвешивания ключевых слов.

Во-первых, во многих случаях достаточно простого поиска по ключевым словам. Рассмотрим поиск по запросу «Apple Inc.». Для этого нам не нужен семантический движок. Поскольку вы ищете «именованный объект», точное совпадение имеет смысл, а приблизительное совпадение может быть совершенно неверным. В некотором смысле, когда мы очень точно указываем, что ищем, ищем конкретные имена, даты, идентификаторы и т. Д., Точное совпадение может быть вполне приемлемым. Однако, если нам не хватает точных условий того, что нам нужно (см. Выше пример «стихийное бедствие»), мы выиграем от результата, основанного на контексте, а не на точных совпадениях.

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

Вирусная угроза

Выполним поиск (тематически) по запросу «вирусная угроза».

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

Стихийное бедствие

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

«Реформа банковского обслуживания регулирующих рисков»

Дальнейшее расширение запроса усложняет задачу. Во-первых, о запросе: вопрос здесь немного расплывчатый, поскольку пользователь, очевидно, заинтересован в банковской реформе и регулировании, но не конкретно о том, что, кто и когда. Это вероятно в контексте более широкого исследования, пытающегося сравнить и сопоставить случаи. Следовательно, хороший результат (независимо от подхода к поиску) будет искать разнообразные примеры. По совпадению, разнообразие результатов также является показателем, рассматриваемым в IR-BERT, где контекстный поиск превосходит

Глядя на контекстуальные результаты, кажется, что речь идет о банковском деле, но сужение к темам регулирования / реформ приводит к спорным результатам. Есть упоминания RBA (Центральный банк Австралии), которые, однако, не всегда связаны с регуляторными рисками, а также упоминания Королевской комиссии (комиссия, расследующая диапазон финансовых проступков в сфере финансовых услуг), который имеет отношение к финансам, но не всегда связан с банковским делом. Что касается поиска по ключевым словам, однако, несмотря на отсутствие хороших документов, те, которые возвращаются последовательно, будут содержать как минимум 2 слова в запросе, что часто, кажется, делает результат семантически релевантным - при условии, что пара ключевых слов присутствуют, результаты, вероятно, актуальны. Также обратите внимание, как объяснимость поиска по ключевым словам помогает нам сразу исключить некоторые случаи. Например, результат ключевого слова № 8 План государственного регулирования Интернета подвергся критике - мы точно знаем, почему это было предложено, и поэтому можем быстро его исключить. Напротив, контекстный результат № 5 РБА рассматривает ограничение на доплаты по кредитной карте неясно, почему именно модель считает его удачным.

Хорошее и плохое ...

Что мы можем сказать о преимуществах и недостатках контекстного поиска по сравнению с поиском по ключевым словам

Плюсы

Контекстный бит - как мы видели, поиск по ключевым словам может (иногда) быть ограничивающим. Это особенно актуально, когда вы проводите исследование или только начинаете изучать тему, поскольку мы часто не используем релевантные термины, ключевые слова и объекты для нашего поиска.

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

Минусы

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

Контекст контекстуален - разговоры о семантическом поиске и значении могут быть в значительной степени специфичными для того, что мы на самом деле ищем. Например, нас могут интересовать вакцины в контексте нашего собственного здоровья, или как инвесторы, принимающие решение о поддержке компаний, или как исследователи - ищущие технические подробности испытаний, методов и т. Д. Эти аспекты могут быть частично решены путем уточнения запрос, но качество результатов будет ограничено как доступными документами в индексе, так и способом обучения контекстных встраиваний. Особую озабоченность вызывает то, что система не оборудована, чтобы указать пользователю, что качество запроса, зависящего от предметной области, может быть низким - она ​​всегда будет своевременно предоставлять списки ранжированных результатов. На практике доменные поисковые системы помогают решить эту проблему. Одним из примеров может быть специализированный инструмент для искателей COVID, основанный на статьях и исследованиях по конкретным предметным областям. Парой примеров таких инструментов являются Corona Papers и Google COVID Research Explorer, оба из которых используют CORD-19 (база данных научных статей по COVID) для контекстуализации используемых встраиваемых текстов.

ЗАКЛЮЧЕНИЕ

Мы видели в общих чертах, что такое встраивание текста и как они могут помочь в контекстном поиске.

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

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

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

Надеюсь, это было полезно. Спасибо за чтение. Если вам хочется поздороваться, свяжитесь с нами через LinkedIn.