Привет. Подскажите, как бороться с проблемой.
Использую TF-IDF (BM-25) для текста (эластик). Есть документы (каждый документ — отдельная строка). По ним происходит поиск.
Для поиска в es отправляется запрос в виде текстовой строки.
Проблема
Если я расширяю выборку за счёт добавления к каждому документу ещё одной строки примерно такой же длины, которая отличается по набору токенов, но релеватна исходной строке, то оказывается, что метрики падают. Это происходит, видимо, из-за того, что при вычислении скалярного произведения между запросом и каждым из документов, происходит "размазывание" важных токенов и, как следствие, ухудшение качества выдачи.
Особенность данных. В них очень много уникальных токенов: названия, характеристики и т.п. Я их называю дельта-функциями, поскольку в виде эмбеддингов (w2v, bert не пробовал) они плохо представляются и выражаются за счёт того, что в них мало семантики
Вопрос
• Понятна ли моя проблема?
• Есть ли стандартные подходы, которые позволят избежать этой проблемы? Сейчас у меня есть 2 варианта:
• предварительная редукция строки и уменьшение её длины.
• введение нескольких индексов (но это породит проблемы иного характера)