Ранее я упоминал в этой статье о персонализированном контекстном запросе.

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

Например, у нас есть комплект документов:

  1. Альберт Эйнштейн был физиком-теоретиком немецкого происхождения, который разработал теорию относительности. Он наиболее известен своей формулой эквивалентности массы и энергии E = mc2. Он получил Нобелевскую премию по физике.
  2. Сэр Исаак Ньютон был английским математиком, астрономом, теологом, писателем и физиком, широко признанным одним из самых влиятельных ученых всех времен и ключевой фигурой в научной революции. / em>
  3. Томас Альва Эдисон был американским изобретателем и бизнесменом, которого называют величайшим изобретателем Америки. Он разработал множество устройств, которые сильно повлияли на жизнь во всем мире, в том числе фонограф, кинокамеру и долговечную практичную электрическую лампочку.

Теперь предположим, что они у нас есть в токенизированном формате и в формате инвертированного индекса.

Также у нас есть каждый токен с термином отношения, например:

  1. Альберт Эйнштейн: физик, человек, лауреат Нобелевской премии….
  2. Сэр Исаак Ньютон: физик, человек, математик,….
  3. Томас Альва Эдисон: физик, человек, изобретатель,… ..
  4. Физик: Эйнштейн…, Иссак Ньютон, Томас Эдисон… ..
  5. Родился в Германии: Эйнштейн
  6. Американец: Томас Эдисон

И список токенов продолжается ……… ..

Хорошо, у нас есть все документы, отсортированные в инвертированном индексе с отмеченными tf-idf и Relation Term.

Допустим, есть вопрос: «Имя какого-нибудь физика?»

Теперь в компьютере есть 3 документа, оба помечены как «Физик».

Традиционный алгоритм ранжирования просто проверяет оценку tf-idf каждого токена в документе, например, сколько раз слово «физик» существует в каждом документе и т. Д., И это нормально.

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

Итак, что нам делать?

Давайте посмотрим, какие данные мы можем получить от пользователя:

  1. IP-адрес и название страны (например, xxx.xxx.xx.x и страна Индия)
  2. Агент пользовательского браузера (скажем, Chrome IOS / Mobile)
  3. Тип устройства (скажем, модель Iphone X)
  4. Если это повторный пользователь, то идентификатор cookie, через который мы можем получить все его предыдущие поисковые запросы и т. Д.

Теперь, учитывая только первые 3 пункта,

Можно сказать, что страна пользователя - Индия.

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

Эйнстен из Германии и Эдисон из Америки.

Я не собираюсь вдаваться в подробности, но можно сказать, что ближайшая страна - это Германия из Индии.

Итак, можем ли мы сначала вытащить статью Эйнштейна, а затем Эдисона.

Интересно, правда?

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

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

Эйнштейн встречается с Рабиндранатом Тагором (индийцем) или Бозом. Эйнштейн имеет формулу, которую он работал с Сатьендрой Натх Бозе (индийский физик).

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

Затем, скажем, пользователь задал запрос 14 марта.

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

Смотрите, как это происходит….

Мы можем добавить больше точек, например, почему поиск? он подросток? (возможно, изучает формулы) и сколько людей ищут то же самое? или Эйнштейн - популярная тема (недавно появлялся в новостях)

Есть много факторов, которые могут повлиять на общую проблему ранжирования.

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

Итак, у вас должен быть большой список факторов, которые нужно добавить (попробуйте Dbpedia или WikiData, уже скопировав wikipedia в формат action rdf)

Similairy, допустим, пользователь уже спрашивал ранее (поскольку пользователь является повторным поисковиком)

  1. Светодиодные лампы
  2. Электричество
  3. Тесла

Итак, у предыдущих поисков есть одна общая черта:

Светодиодные лампы - электрическая лампа

Электричество переменного тока - изобретатель Тесла

Тесла - электромобиль, Тесла изобретатель

Итак, но наиболее подходящими данными является Led Bulb, лампочка, изобретенная Эдисоном (учитывая, что выше 3 статьи только проиндексированы).

Так что показывать Эдисона первым тоже может быть неприемлемо.

Итак, вы видите, что существует N возможностей для X набора документов для Y набора факторов.

Следовательно, требуется найти документ с максимальной вероятностью, чтобы предложить лучшее (снова вероятность машинного обучения).

Надеюсь, вам понравится эта статья.

Скоро добавлю больше контекста с некоторыми уравнениями для решения проблемы и необработанными данными для проверки проблемы в действии.

Спасибо,

Абхик Саха