Введение

Когда я работал в промышленности, я видел модели SOTA, публикуемые каждую неделю в различных областях машинного обучения, пока я боролся со сложным поисковым приложением, состоящим из множества параметров и эвристик. Я, естественно, подумал: «Как я могу применить последние достижения исследований в практических приложениях?». Некоторое время я думал об этом вопросе, и в итоге я поступил в университет, чтобы изучать поиск информации. Эта статья - всего лишь заметка, сделанная во время моего творческого отпуска. Я резюмировал то, что узнал, в следующем порядке.

  1. Информационный поиск и его эволюция
  2. Проблемы в современных приложениях
  3. Нейронные сети для поиска информации
  4. От исследований к производству
  5. Вывод

1. Поиск информации и его развитие

Начало изучения поиска информации относится к 1960-м годам, когда начались эксперименты Крэнфилда. В 1968 году Джерард Солтон, который сформировал и возглавил большую группу поиска информации и изобрел модель векторного пространства, определил, что поиск информации - это область, касающаяся создания, хранения, классификации, анализа и поиска, связанного с информацией. С тех пор прошло 60 лет. Форма приложений радикально изменилась: библиотеки, юридическая и медицинская информация, поиск на компьютере, социальные сети, мобильный поиск, ответы на вопросы и чат-боты. Академические интересы также изменились в соответствии с окружающей средой, как видно на слайдах ниже, созданных Брюсом Крофтом.

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

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

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

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

  • Док 1: Быстрая коричневая лисица перепрыгивает через ленивую собаку
  • Док 2: Fox News - кабельный новостной канал номер один

Инвертированный индекс становится таким.

+---------+-------+------+
|  Term   | Doc 1 | Doc2 |
+---------+-------+------+
| quick   | x     |      |
| brown   | x     |      |
| fox     | x     | x    |
| jumps   | x     |      |
| over    | x     |      |
| lazy    | x     |      |
| dog     | x     |      |
| number  |       | x    |
| one     |       | x    |
| cable   |       | x    |
| news    |       | x    |
| channel |       | x    |
+---------+-------+------+

Из таблицы видно, что система возвращает doc 1 для запроса «quick», doc 2 для «news» и оба для «fox». Затем система каким-то образом ранжирует кандидатов, чтобы сделать ее более полезной для пользователей. Как упоминалось выше, вероятностные модели основаны на принципе вероятностного ранжирования.

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

Он говорит, что нужно просто ранжировать все документы в порядке убывания p (r = 1 | d, q), чтобы максимизировать полезность.

Было предложено множество методов для представления релевантности. BM25 (аббревиатура от B est M atching) будет наиболее известным методом, поскольку он является алгоритмом оценки по умолчанию в Lucene и Elasticsearch. В 21 веке языковым моделям стало уделяться больше внимания. В этом методе вероятность документа интерпретируется как вероятность того, что он имеет отношение к запросу. Эти методы основаны на сильных предположениях, приведенных ниже.

  1. Учитывая релевантность, термины статистически независимы.
  2. Наличие термина в документе зависит от релевантности только тогда, когда этот термин присутствует в запросе.

Эти предположения могут быть неверными на практике, потому что (1) говорит, что «хот-дог» и «дог-хот-дог» - одно и то же, а (2) не принимает во внимание семантически похожие термины, такие как синонимы.

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

За последние несколько лет был предложен ряд нейронных моделей поиска информации, таких как DSSM (2013), CDSSM (2014), DUET (2017), DRMM (2017), PACRR (2017) ) , Co-PACRR (2017) , KNRM (2017) , Conv-KNRM (2018) , DeepCT (2019) , CEDR (2019) , HCAN (2019) и др. . В связи с этой тенденцией Google объявил, что поиск Google начал использовать контекстную языковую модель под названием BERT (Понимание поисковых запросов лучше, чем когда-либо прежде). Современные подходы к поиску информации способны учитывать контекст с помощью стоп-слов, в то время как традиционные методы отказались от него, потому что стоп-слова, такие как для или для, учитывали шум при оценке релевантности. Как мы видим, окружающая среда и технологические тенденции обновляются день ото дня.

2. Проблемы современных приложений

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

Несоответствие правописания

Слова имеют разные формы. В примере из предыдущего раздела «переходы» проиндексированы, поскольку я просто помещаю токенизированные термины без выделения корней или лемматизации, но пользователи могут выдавать запрос в другой форме. В этом отношении точное лексическое соответствие не подходит. В японском языке люди используют три разных набора букв, плюс разные способы письма, плюс алфавиты, плюс ... Например, «狐», «き つ ね», «キ ツ ネ», «フ ォ ッ ク ス», «лиса»,… все они то же значение, но по-другому (я специально не выбирал особый падеж. Это бывает для всех слов). Такого рода проблема не специфична для Японии. У каждого языка есть свои лингвистические проблемы. Испанский является широко распространенным языком в разных странах, но словари различаются в зависимости от региона, есть традиционный китайский и упрощенный китайский, греческий в греческом и т. Д. Кроме того, на орфографию может влиять уровень владения языком или устройство ввода. Я делаю много орфографических ошибок в английском. Люди, не знакомые с мобильными устройствами, будут много опечатывать. Поисковые системы неверно истолковывают намерение, если написано неправильно.

Отсутствие семантического понимания

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

Гранулярность - еще одна проблема при применении расширения запроса. «Хот-дог» может превратиться в «теплого щенка» при расширении запроса на уровне термина, но если это на уровне запроса, отзыв будет уменьшаться, поскольку для комбинированных запросов обнаруживается меньше слов.

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

  • Я приехал в банк, перейдя улицу.
  • Я прибыл на берег после перехода через реку.

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

Интересно, что порядок слов влияет на правдоподобие. Согласно Google, люди ассоциируют «渋 谷 凛» («Сибуя Рин») с персонажем аниме, но когда «凛 渋 谷» («Рин Сибуя», в обратном порядке), он становится рестораном рамэн в Сибуя (и выглядит прямо на меня) .

Возвращаясь к инвертированному индексу, который я показал, «fox» соответствует как doc 1, так и doc 2, но когда задан запрос «fox» (животное), doc 1 будет более релевантным, чем doc 2, поскольку «fox news» - это имя собственное. и может быть немного далеким от намерений пользователя. Но верна ли наша интуиция? Если да, то как мы можем применить эти знания к алгоритму ранжирования?

Неоднозначные запросы

Иногда запросы напрямую не отражают потребности пользователей в информации, например «рождественские блюда», «отели с красивым видом» и «расслабляющая музыка». Эту проблему немного сложнее решить наивным способом, поскольку количество связанных терминов для неоднозначных запросов может быть большим. Следовательно, поддержание иерархии вручную может потребовать бесконечных усилий. Кроме того, ответы на вопросы в Интернете намного сложнее, поскольку семантическое расстояние не может быть хорошим измерением, хотя недавний поиск Google решил эту проблему.

Заметьте, что собирать странные примеры поиска - мое хобби.

Ранжирование полуструктурированных сложных документов

Современные поисковые приложения обычно нуждаются в поиске сложных документов.

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

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

Сочетание ранжирования с контекстом

Когда вы задаете запрос «пицца», какой документ должен быть более релевантным?

  1. Как приготовить пиццу: насыпьте муку в большую миску, затем добавьте дрожжи и соль…
  2. Приходите отведать пиццу: Mettiamo in una boule la farina setacciata e uniamovi il lievito di birra sbriciolato…

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

Я уверен, что Google знает, что я японец, на основании всех имеющихся у Google данных, но в Google Поиске по-прежнему отображаются статьи на китайском языке, которые я не могу прочитать (я полагаю, из соображений производительности).

Оценка рейтинга субъективна. Хорошие результаты поиска, похоже, зависят от человека.

3. Нейронные сети для поиска информации.

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

Соответствие

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

Семантическое соответствие в поиске товаров

Если запрос - настольный холодильник для вина, было бы разумно включить в набор кандидатов элемент мини-холодильник для напитков. [2019] Semantic Product Search предложил систему семантического сопоставления, которая фиксирует семантические значения запросов.

Захват семантики текста - извечная и хорошо изученная проблема в НЛП. Результат исследования НЛП, встраивание, теперь используется повсеместно при поиске информации, например, [2016] Модель двойного пространства встраивания для ранжирования документов для определения семантических характеристик.

В статье Amazon они разделяют слова с разной степенью детализации и комбинируют их, чтобы сделать запросы устойчивыми к вариациям написания. Этот подход похож на FastText. Таким образом, запрос художественный чехол для iphone 6s будет представлен, как показано ниже.

  • Word Unigram: [«художественный», «iphone», «6s», «case»]
  • Word Bigram: [«художественный # iphone», «iphone # 6s», «6s # case»]
  • Триграмма символа: [«#ar», «art», «rti», «tis», «ist», «sti», «tic», «ic #», «c # i», «#ip», « iph »,« pho »,« hon »,« one »,« ne # »,« e # 6 »,« # 6s »,« 6s # »,« s # c »,« #ca »,« cas » , «Ase», «se #»]

Затем возьмите среднее значение полученных векторов. Кажется, что сочетание разных уровней детализации помогает сохранить семантические значения. Они также сравнили свой подход с LSTM и GRU, но усреднение работает аналогично или немного лучше, чем повторяющиеся единицы, со значительно меньшим временем обучения. Это может быть связано с тем, что в отличие от веб-поиска запросы относительно короткие и состоят из набора ключевых слов, а не из естественного языка. Лучший подход, по-видимому, зависит от характеристик запросов и документов.

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

Семантическое соответствие в веб-поиске

Методы, использующие предварительно обученные языковые модели, начали демонстрировать SOTA в задачах поиска информации. На рисунке ниже показан тест TREC Robust04, который является стандартным тестом для измерения производительности специализированных поисковых систем. Выдающийся рост по сравнению с 2018 годом был достигнут за счет использования контекстных языковых моделей.

Рейтинг

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

Я взял несколько статей, связанных с моими интересами к задачам ранжирования.

Ранжирование многополевых элементов

В экспериментальных настройках обычно предполагалось, что документы состоят только из одного текстового поля. Однако практические поисковые приложения нуждаются в поиске сложных документов, состоящих из короткого текста, числовых значений, наборов ключевых слов, изображений, аудио и т. Д. Одним из известных методов объединения нескольких полей является BM25F, который является расширением BM25. [2017] Neural Ranking Models with Multiple Document Fields представляет метод работы с многопольными элементами в нейронных моделях, названный NRM-F, названный в честь BM25F.

Структура состоит из трех компонентов: представление экземпляра, агрегирование на уровне поля и агрегирование на уровне документа.

В наивных реализациях отсутствие важных полей сильно влияет на оценку. Чтобы свести к минимуму воздействие, они ввели некоторые методы, называемые маскированием на уровне поля и отсевом на уровне поля.

Персонализированный рейк

Даже если вы построили совершенную систему поиска информации, которая возвращает документы, полностью соответствующие заданному запросу, NDCG не станет 1.0, поскольку релевантность является субъективной, как упоминалось выше. Помимо запроса, существуют более скрытые факторы, указывающие на информационные потребности пользователя, в результате чего возникает пробел, показанный ниже.

При поиске товаров, таком как Amazon, известно, что история поведения пользователей и их экономические условия влияют на принятие решений. [2019] Модель с нулевым вниманием для персонализированного поиска продуктов обсуждает метод, использующий этот факт. Собственно, также известно, что персонализация может отрицательно сказаться на поиске. По этой причине они изобрели метод, который автоматически применяет персонализацию только тогда, когда она эффективна.

Контекстуализированный рейтинг

Хотя в литературе говорится, что персонализация полезна при поиске продукта, всегда ли верно, что долгосрочные предпочтения помогают достичь краткосрочной цели? Скажите, эффективна ли рекомендация футболки «Звездных войн» фанатам «Звездных войн» при просмотре одежды? Также может быть важно отметить, что персонализацию нельзя применить к приложениям, в которых процент гостевых пользователей (у которых нет учетной записи) высок.

[2019] Использование неявной обратной связи для контекстно-зависимого поиска продуктов, ориентированная на оптимизацию результатов поиска с использованием краткосрочных предпочтений. В отличие от веб-поиска, пользователи нажимают на множество продуктов для сравнения, прежде чем принять решение. Чтобы использовать сигналы, они переформулировали проблему как проблему динамического ранжирования и использовали выбранные элементы для повторного ранжирования элементов на следующей странице.

4. От исследований к производству

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

Эффективность против эффективности

На практике у поисковых систем есть ограничения по производительности. По этой причине современные нейронные модели ранжирования реализованы как многоступенчатые ранжеры. [2019] Рекомендация, какое видео смотреть дальше: многозадачная система ранжирования описывает алгоритм рекомендации YouTube, реальный пример большого приложения. Сначала они фильтруют видео по сходству, а затем ранжируют видео с точечной потерей по соображениям производительности (известно, что в теории лучше использовать список для оптимизации метрики ранжирования: «Анализ потери кросс-энтропии Softmax для обучения ранжированию с помощью двоичного кода. Актуальность"). Я думал, что у Google огромное количество суперкомпьютеров, которые вычисляют списочные потери по триллионам элементов за 1 миллисекунду с помощью секретных алгоритмов, но это было неправильно, и я испытал облегчение (?). Это показывает, что нельзя игнорировать эффективность при построении модели.

Читая статьи, я знал, что существуют разные экспериментальные настройки.

(1) хочет добавить потенциально связанные элементы в набор кандидатов. Если система успешно улавливает семантические значения, количество запросов на перезапись уменьшится. Если он не работает хорошо, при поиске «хот-дог» может появиться «теплый щенок». (2) позволяет нам ранжировать все элементы, что может привести к высокой эффективности, но на практике с этим будет трудно справиться. В (3) нам дается сгенерированный набор кандидатов и предлагается повторно ранжировать их, чтобы заменить существующего ранжатора. Однако размер кандидатов может быть слишком большим, чтобы с ними справиться. (4) повторно ранжирует топ-k кандидатов, которые уже были ранжированы в предыдущем рейтинге. Размер всегда фиксирован, что упрощает прогнозирование нагрузки. Это практическая установка, но она ограничивает возможности модели ранжирования. Похоже, что существует компромисс между эффективностью и действенностью.

Говоря о компромиссе, в многоуровневых системах поиска информации, если соответствующий уровень придает большое значение отзыву, нерелевантные документы могут быть включены в набор кандидатов. То есть на уровне ранжирования требуется более высокое качество. Напротив, если уровень ранжирования не придает значения точности (скажем, порядку по дате публикации или чему-то еще), результаты поиска могут стать зашумленными, если соответствующий слой не отфильтрует идеально нерелевантные элементы. Известно, что этот компромисс сложно оптимизировать из-за несвязной природы. (5) - это идея создания сквозной системы для решения этого компромисса и проблем с производительностью. Давайте еще немного посмотрим на усилия в следующем разделе.

Допущение независимости термина запроса

Традиционные методы оценки релевантности основаны на сильных предположениях: условия запроса независимы. При таком предположении документы могут быть отфильтрованы с использованием инвертированного индекса, поскольку отсутствующие термины не влияют на релевантность документов. Например, если запрос - шедевр Чайковского, оценка релевантности складывается из каждого термина, например Чайковский: 10 + шедевр: 6 = 16. Связи между терминами нет. Но верно ли это для таких запросов, как хот-дог или что означает 42? Недавние исследования показали, что использование контекстуализированных языковых моделей в качестве входных данных превосходит предыдущие передовые технологии ([2019] Изменение рейтинга пассажа с помощью BERT). Это означало бы, что условия в некоторой степени зависят. Если мы не можем предполагать независимость, возможно, мы не сможем полагаться на инвертированные индексы для фильтрации документов.

Построение нейронного индекса

[2018] От нейронного перерейтинга к нейронному ранжированию: изучение разреженного представления для инвертированного индексирования предложила автономную систему нейронного поиска, которая вводит свойство разреженности для изучения скрытого разреженного представления для каждого запроса и документа. Это представление можно использовать как инвертированный индекс, что значительно снижает вычислительные затраты.

Я реализовал систему и визуализировал инвертированные индексы.

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

Измерение влияния предположения

Кстати, мне было интересно, насколько правдоподобным было предположение о независимости термина запроса. [2019] Включение предположения о независимости термина запроса для эффективного поиска и ранжирования с использованием глубоких нейронных сетей измеряет влияние этого предположения на три нейронные модели: BERT, Duet и CKNRM. Удивительно, но Duet и CKNRM не испытали статистически значимого побочного эффекта в отношении эффективности ранжирования. Хотя производительность BERT снизилась, падение MRR может быть достаточно небольшим. Я нашел этот результат весьма интересным, поскольку он показал потенциал того, что глубокие модели могут применяться для больших коллекций.

Обучение моделей, требовательных к данным

Может быть сложно собрать достаточный объем обучающих данных, поскольку нейронные системы поиска информации представляют собой приложения, требующие больших объемов данных. [2017] Neural Ranking Models with Weak Supervision предложил метод обучения модели с использованием документов, ранжированных по BM25, чтобы мы могли получить бесконечное количество данных. [2018] Совместное моделирование и оптимизация поиска и рекомендаций показали, что мы можем совместно обучать модель поиска с моделями рекомендаций, поскольку их цель по сути одна и та же (Белкин и Крофт заявили в 1992 году). Это показывает возможность того, что мы могли бы улучшить модель, если бы у нас уже была другая модель.

5. Заключение

В этой статье мы рассмотрели последние тенденции в сообществе поиска информации. Я хочу выделить три вещи ниже.

  1. Окружающая среда меняется день ото дня.
  2. Существующие предположения могут быть правильными, а могут и нет.
  3. Наилучший подход варьируется от приложения к приложению.

Я не думаю, что всем поисковым приложениям нужна нейронная модель. Вернее, я бы сказал, что Elasticsearch + BM25 + Heuristics на удивление хорошо работает. Управление нейронными моделями поиска информации потребует еще больших усилий, но я надеюсь, что стоимость снизится, а опыт поиска станет намного лучше в будущем.