Как использовать топологию для улучшения поисковых систем на естественном языке.

Соавтор сообщения в блоге: Ф. Корнелл .

Вступление

В этом сообщении в блоге, основанном на работе F. Cornell , мы объясняем, как можно использовать Giotto-tda [2] для кластеризации слов и создания семантической поисковой системы, извлекая документы, похожие на запрос пользователя, тем самым показывая, как мы можем использовать топологические методы в контексте обработки естественного языка (NLP). .

Мы будем использовать классический набор данных Reuters, состоящий из около 10 000 новостных документов, собранных из Reuters (по сути, доступных в пакете nltk). Мы также будем использовать предварительно обученные векторы слов, доступные через API gensim. Это word2vec-google-news-300.

Если вы новичок в TDA, я рекомендую вам прочитать следующий пост в блоге как введение в начало работы с giotto-tda [2]. Эта единица также полезна для лучшего понимания алгоритма Mapper, используемого ниже.

Все детали реализации и полностью рабочий код читатель может найти в этом блокноте Jupyter.

Как нам использовать giotto-tda для поисковой системы ?!

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

Когда мы ищем определенные термины в наборе документов, многие методы часто ищут конкретные слова, и это может вызвать проблемы. Прекрасным примером подхода на основе TF-IDF для поисковой системы является Блокнот Kaggle Амита Кумара Джайсвала. Тем не менее, это также указывает на слабость этого подхода. Слова в запросе, которых нет в словаре документов, удаляются из запроса, и мы можем потерять важную информацию о том, что ищет пользователь.

Построение графа картографа

Инструмент, позволяющий построить поисковую систему, решающую эту проблему, - это алгоритм картографирования в Giotto-tda. Взяв векторы слов всех слов, существующих в коллекции документов, мы можем создать граф из этих векторов слов с помощью метода Mapper. Затем каждый узел будет работать как набор слов, которые похожи и часто заменяются друг другом. Из-за внутренней природы векторов слов, слова воспринимаются как похожие, когда они используются в одном контексте (см. [2]), и их можно измерить с помощью косинусного сходства. Поэтому мы используем косинусное расстояние в качестве метрики расстояния при построении нашего графика.

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

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

Как работает запрос к графику Mapper

Мы можем объяснить запрос за несколько шагов. Допустим, выполняется поиск слова, например Soybean. Затем мы ищем, к каким узлам принадлежит это слово: один и тот же узел также будет содержать другие слова и, следовательно, будет связан со многими разными документами. Мы смотрим на все документы, в которых есть слова в этих узлах, и ранжируем документы на основе их процента слов, содержащихся в том же узле, что и запрос. В простом примере Soybean мы просто ранжируем все документы на основе процента слов, которые они имеют в тех же узлах, что и Soybean. Результатом запроса является список документов, ранжированных, как только что описано. Если слово не существует в корпусе, мы можем просто использовать векторы слов и получить наиболее похожее слово, которое существует в корпусе.

Таким образом, построение графа Mapper работает как эффективный способ кластеризации слов и неявного создания того, что можно назвать топологической подписью для каждого документа.

Краткую математическую формулировку проблемы см. В Блокноте Jupyter, связанном с этим сообщением в блоге.

Полученные результаты

Давайте посмотрим на пример, где мы можем ясно увидеть, как работает семантика графа картографа.

Ниже приведен поиск по запросу oil, один из первых результатов которого - SINGAPORE PETROLEUM CO RAISES OIL PRODUCT POSTING. Первый результат идеально соответствует наиболее часто используемому значению слова нефть как ископаемое топливо, а второй результат также касается минералов и ископаемого топлива! Топологическая поисковая система улавливает семантику и значения в документах, которых нет в BM25 (для сравнения см. Тест ниже)!

RESULT 0 for the query 'oil': 
 
SINGAPORE PETROLEUM CO RAISES OIL PRODUCT POSTINGS
  Singapore Petroleum Co Pte Ltd said it
  will raise posted prices for its products from June 19, by one
  cent/gallon for lpg, naphtha and gasoline, two cents for gas
  oil and by 60 cents/barrel for marine diesel oil.
      New prices are - lpg 36.0 cents/gallon, chemical naphtha
  47, unleaded reformate 65.8, 0.4 gm lead 97 octane 61.3, 95
  octane 59.3, 92 octane 55.5, 85 octane 49.5, 0.125 gm lead 97
  octane 64.3, 92 octane 58.5, 85 octan...
RESULT 1 for the query 'oil': 
 
HOUSTON METALS' MINE YIELDS POSITIVE RESULTS
  <Houston Metals Corp> said the
  the first phase of the underground rehabilitation, extensive
  drilling and bulk sampling program at its Silver Queen Mine has
  yielded positive results.
      Houston said representative assays from the 2,750 ft and
  2,600 ft levels at the south end of the mine established ore
  deposits in the following ranges: copper, 3.7 pct to 5.08 pct,
  lead .99 pct to 1.5 pct, zinc six pct to 9.6 pct, silver 15.63
  pct ...
RESULT 2 for the query 'oil': 
 
API SAYS DISTILLATE, GAS STOCKS OFF IN WEEK
  Distillate fuel stocks held in
  primary storage fell by 4.4 mln barrels in the week ended Feb
  27 to 127.10 mln barrels from 131.50 mln the previous week, the
  American Petroleum Institute (API) said.
      In its weekly statistical bulletin, the oil industry trade
  group said gasoline stocks fell 30,000 barrels to 252.92 mln
  barrels from a revised 252.95 mln, while crude oil stocks rose
  700,000 barrels to 329.38 mln from a revised 328.68 mln...

Сравнение с другим алгоритмом

Ниже мы сравниваем поисковую систему на основе Mapper с классическим методом поиска BM25. Следуя его руководству о том, как его использовать, мы ранжируем и извлекаем результаты по тем же поискам по ключевым словам, что и при топологическом методе. Мы ищем oil для сравнения с топологическим подходом.

RESULT 0 for the query 'oil': 
 
DIAMOND SHAMROCK (DIA) CUTS CRUDE PRICES
  Diamond Shamrock Corp said that
  effective today it had cut its contract prices for crude oil by
  1.50 dlrs a barrel.
      The reduction brings its posted price for West Texas
  Intermediate to 16.00 dlrs a barrel, the copany said.
      "The price reduction today was made in the light of falling
  oil product prices and a weak crude oil market," a company
  spokeswoman said.
      Diamond is the latest in a line of U.S. oil companies that
  have cut...
RESULT 1 for the query 'oil': 
 
GLOBAL PETROLEUM <GNR> UPS HEAVY FUEL PRICES
  Global Petroleum Corp said it had raised
  the contract prices for heavy fuel oil from 25 cts to one dlr
  per barrel, effective today.
      The company said 0.3 pct fuel oil is up one dlr a barrel to
  22.25 dlrs a barrel. They said 0.5 pct fuel oil is up by 50 cts
  to 21.95 dlrs a barrel.
      Global raised one pct fuel oil by 35 cts to 20.25 dlrs a
  barrel. The company raised 2.2 pct fuel by 25 cts to 19.50 dlrs
  a barrel. Global raised 2...
RESULT 2 for the query 'oil': 
 
ENERGY ANALYST PROPOSES U.S. OIL TARIFF
  Energy analyst Edward Krapels said
  the United States should consider an oil tariff to keep U.S.
  dependence on imports below 50 pct.
      "On the supply side, the argument in favor of a contingent,
  variable import tariff is most persuasive," Krapels, president
  of Energy Security Analysis, Inc said in a statement at a House
  Energy and Power subcommittee hearing.
      "An optimal tariff would be one implemented only if the
  international price...

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

Подведение итогов и дальнейшая работа

В этой работе мы продемонстрировали доказательство концепции, показав, как можно использовать Giotto-tda и ее пакеты в рамках NLP для создания семантической поисковой системы. Как видно из некоторых примеров (см. oil), Топологическая поисковая система захватывает семантику, которую BM25, классическая поисковая система, не может уловить.

Будущие направления

Однако следует выделить несколько моментов.

  • Края явно не используются, что, вероятно, может иметь значение. В дополнение к этому, края следует каким-то образом использовать для увеличения радиуса поиска и, возможно, получения более релевантных результатов поиска. Например, если в документе есть много слов в соседнем узле запроса, он все равно может быть очень релевантным документом для рассматриваемого запроса.
  • Построение графа Mapper во многих отношениях является произвольным процессом, в котором не всегда ясно, какую функцию фильтрации и какие доли перекрытия и количество разделов мы должны использовать. В дальнейшей работе следует выяснить, лучше ли использовать более богатые представления, содержащие больше узлов (большее количество разделов) и широкие возможности подключения, чем более крупные узлы (с меньшим количеством разделов) и более низкие возможности подключения. Более высокая связность означает, что больше слов будет принадлежать большему количеству узлов, что дает более описательное представление каждого документа. Понятно, что этот метод может быть уточнен при дальнейшем изучении.

Совершенно необходима дополнительная работа для улучшения этих результатов; Прежде всего, этот метод можно настроить, чтобы он работал лучше. В любом случае, это сообщение в блоге служит демонстрацией того, что Giotto-tda и топология имеют свое место в сфере обработки естественного языка. Это также показывает, для нескольких наборов запросов, что топологическая поисковая машина не обязательно уступает классическим методам, таким как BM25; с большим количеством настроек, мы искренне надеемся, что он, вероятно, сможет работать еще лучше.

использованная литература

[1] Т. Миколов, Распределенные представления слов и фраз и их композиционность, Достижения в системах обработки нейронной информации 26 (2013): 3111–3119.

[2] Г. Таузин и др., Giotto-tda: набор инструментов для анализа топологических данных для машинного обучения и исследования данных, ArXiv2004.02551