Семантический поиск - сложная задача, которую стоит решить в НЛП.

Обычно мы тратим много времени на поиск определенной информации в большом документе. И мы обычно находим, используя CTRL + F. Пресловутый гугл-фу, искусство эффективного поиска информации в гугле, является ценным навыком на рабочем месте 21-го века. Нам доступны все человеческие знания, для этого нужно задать правильный вопрос и знать, как пролистывать результаты, чтобы найти соответствующий ответ.

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

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

Способы встраивания предложений

В поле «Обработка естественного языка» (NLP) есть термин для этого, когда слово упоминается, мы называем его «поверхностной формой», например, само слово «президент» означает глава страны. . Но в зависимости от контекста и времени это может означать Трампа или Обаму.

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

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

Современный семантический поиск - поиск наиболее похожих предложений

Идея не нова. В документе, с которого все началось, word2vec предлагал представлять отдельные слова векторами еще в 2013 году. Однако с тех пор мы прошли долгий путь с BERT и другими моделями на основе Transformer, которые позволяют нам улавливать контекст. этих слов гораздо эффективнее.

Вот как мы складываем последние модели встраивания по сравнению с word2vec или GloVe прошлого.

Эти модифицированные и доработанные модели BERT NLP довольно хорошо распознают похожие предложения, намного лучше, чем более старые предшественники. Давайте посмотрим, что это означает в практическом смысле.

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

Вот мои условия поиска -

1. The economy is more resilient and improving.
2. The economy is in a lot of trouble.
3. Trump is hurting his own reelection chances.

И заголовки статей, которые у меня есть, следующие -

Coronavirus:
White House organizing program to slash development time for coronavirus vaccine by as much as eight months (Bloomberg)
Trump says he is pushing FDA to approve emergency-use authorization for Gilead's remdesivir (WSJ)
AstraZeneca to make an experimental coronavirus vaccine developed by Oxford University (Bloomberg)
Trump contradicts US intel, says Covid-19 started in Wuhan lab. (The Hill)
Reopening:
Inconsistent patchwork of state, local and business decision-making on reopening raising concerns about a second wave of the coronavirus (Politico)
White House risks backlash with coronavirus optimism if cases flare up again (The Hill)
Florida plans to start reopening on Monday with restaurants and retail in most areas allowed to resume business in most areas (Bloomberg)
California Governor Newsom plans to order closure of all state beaches and parks starting Friday due to concerns about overcrowding (CNN)
Japan preparing to extend coronavirus state of emergency, which is scheduled to end 6-May, by about another month (Reuters)
Policy/Stimulus:
Economists from a broad range of ideological backgrounds encouraging Congress to keep spending to combat the coronavirus fallout and don't believe now is time to worry about deficit (Politico)
Global economy:
China's official PMIs mixed with beat from services and miss from manufacturing (Bloomberg)
China's Beige Book shows employment situation in Chinese factories worsened in April from end of March, suggesting economy on less solid ground than government data (Bloomberg)
Japan's March factory output fell at the fastest pace in five months, while retail sales also dropped (Reuters)
Eurozone economy contracts by 3.8% in Q1, the fastest decline on record (FT)
US-China:
Trump says China wants to him to lose his bid for re-election and notes he is looking at different options in terms of consequences for Beijing over the virus (Reuters)
Senior White House official confident China will meet obligations under trad deal despite fallout from coronavirus pandemic (WSJ)
Oil:
Trump administration may announce plans as soon as today to offer loans to oil companies, possibly in exchange for a financial stake (Bloomberg)
Munchin says Trump administration could allow oil companies to store another several hundred million barrels (NY Times)
Norway, Europe's biggest oil producer, joins international efforts to cut supply for first time in almost two decades (Bloomberg)
IEA says coronavirus could drive 6% decline in global energy demand in 2020 (FT)
Corporate:
Microsoft reports strong results as shift to more activities online drives growth in areas from cloud-computing to video gams (WSJ)
Facebook revenue beats expectations and while ad revenue fell sharply in March there have been recent signs of stability (Bloomberg)
Tesla posts third straight quarterly profit while Musk rants on call about need for lockdowns to be lifted (Bloomberg)
eBay helped by online shopping surge though classifieds business hurt by closure of car dealerships and lower traffic (WSJ)
Royal Dutch Shell cuts dividend for first time since World War II and also suspends next tranche of buyback program (Reuters)
Chesapeake Energy preparing bankruptcy filing and has held discussions with lenders about a ~$1B loan (Reuters)
Amazon accused by Trump administration of tolerating counterfeit sales, but company says hit politically motivated (WSJ)

После проверки схожести каждого запроса с каждым встраиванием, вот 5 лучших похожих предложений для каждого из моих поисковых запросов:

======================
Query: The economy is more resilient and improving.
Top 5 most similar sentences in corpus:
Microsoft reports strong results as shift to more activities online drives growth in areas from cloud-computing to video gams (WSJ) (Score: 0.5362)
Facebook revenue beats expectations and while ad revenue fell sharply in March there have been recent signs of stability (Bloomberg) (Score: 0.4632)
Senior White House official confident China will meet obligations under trad deal despite fallout from coronavirus pandemic (WSJ) (Score: 0.3558)
Economists from a broad range of ideological backgrounds encouraging Congress to keep spending to combat the coronavirus fallout and don't believe now is time to worry about deficit (Politico) (Score: 0.3052)
White House risks backlash with coronavirus optimism if cases flare up again (The Hill) (Score: 0.2885)
======================
Query: The economy is in a lot of trouble.
Top 5 most similar sentences in corpus:
Inconsistent patchwork of state, local and business decision-making on reopening raising concerns about a second wave of the coronavirus (Politico) (Score: 0.4667)
eBay helped by online shopping surge though classifieds business hurt by closure of car dealerships and lower traffic (WSJ) (Score: 0.4338)
China's Beige Book shows employment situation in Chinese factories worsened in April from end of March, suggesting economy on less solid ground than government data (Bloomberg) (Score: 0.4283)
Eurozone economy contracts by 3.8% in Q1, the fastest decline on record (FT) (Score: 0.4252)
China's official PMIs mixed with beat from services and miss from manufacturing (Bloomberg) (Score: 0.4052)
======================
Query: Trump is hurting his own reelection chances.
Top 5 most similar sentences in corpus:
Trump contradicts US intel, says Covid-19 started in Wuhan lab. (The Hill) (Score: 0.7472)
Amazon accused by Trump administration of tolerating counterfeit sales, but company says hit politically motivated (WSJ) (Score: 0.7408)
Trump says China wants to him to lose his bid for re-election and notes he is looking at different options in terms of consequences for Beijing over the virus (Reuters) (Score: 0.7111)
Inconsistent patchwork of state, local and business decision-making on reopening raising concerns about a second wave of the coronavirus (Politico) (Score: 0.6213)
White House risks backlash with coronavirus optimism if cases flare up again (The Hill) (Score: 0.6181)

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

Код, который я использовал, можно найти ниже -

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

Эта технология уже используется для поиска похожих предложений между двумя документами. Или ключевая информация в ежеквартальном отчете о прибылях и убытках. С помощью этого семантического поиска, например, мы можем легко найти ежедневных активных пользователей для всех социальных компаний, таких как Twitter, Facebook, Snapchat и других. Несмотря на то, что они определяют и называют метику по-разному - ежедневные активные пользователи (DAU) или ежемесячные активные пользователи (MAU) или монетизируемые активные пользователи (mMAU). Семантический поиск на основе BERT может обнаружить, что все эти поверхностные формы семантически означают одно и то же - показатель эффективности, и он может извлечь интересующее нас предложение из отчетов.

Идея о том, что хедж-фонды используют семантический поиск для анализа и отображения показателей в ежеквартальных отчетах (10-Q / 10-K), не является удачной, и они становятся доступными в качестве количественного торгового сигнала сразу после их публикации.

Приведенный выше эксперимент показывает, насколько эффективным стал семантический поиск за последний год.

Поиск похожих предложений - кластеризация

Еще один важный способ использования этих векторных вложений предложений - это кластеризация. Мы можем быстро сгруппировать предложения в одном документе или нескольких документах в похожие группы.

Используя приведенный выше код, можно воспользоваться простым k-средним из sklearn -

from sklearn.cluster import KMeans
import numpy as np
num_clusters = 10
clustering_model = KMeans(n_clusters=num_clusters)
clustering_model.fit(corpus_embeddings)
cluster_assignment = clustering_model.labels_
for i in range(10):
    print()
    print(f'Cluster {i + 1} contains:')
    clust_sent = np.where(cluster_assignment == i)
    for k in clust_sent[0]:
        print(f'- {corpus[k]}')

И снова, результаты для машины идеальные. Вот пара кластеров -

Cluster 2 contains:
- AstraZeneca to make an experimental coronavirus vaccine developed by Oxford University (Bloomberg)
- Trump says he is pushing FDA to approve emergency-use authorization for Gilead's remdesivir (WSJ)

Cluster 3 contains:
- Chesapeake Energy preparing bankruptcy filing and has held discussions with lenders about a ~$1B loan (Reuters)
- Trump administration may announce plans as soon as today to offer loans to oil companies, possibly in exchange for a financial stake (Bloomberg)
- Munchin says Trump administration could allow oil companies to store another several hundred million barrels (NY Times)

Cluster 4 contains:
- Trump says China wants to him to lose his bid for re-election and notes he is looking at different options in terms of consequences for Beijing over the virus (Reuters)
- Amazon accused by Trump administration of tolerating counterfeit sales, but company says hit politically motivated (WSJ)
- Trump contradicts US intel, says Covid-19 started in Wuhan lab. (The Hill)

Заключение

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

Если вам интересно узнать больше, обращайтесь, я всегда готов выпить кофе. Оставайся там в безопасности.

Благодаря информативному сообщению Нильса Реймерса об обсуждении huggingface я написал это.