Как использовать топологию для улучшения поисковых систем на естественном языке.
Соавтор сообщения в блоге: Ф. Корнелл .
Вступление
В этом сообщении в блоге, основанном на работе 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