![]() |
Этот алгоритм ранжирования поисковой системой Яндекс выложен здесь.
Это алгоритм ранжирования выдачи поисковой системы Яндекс под названием Снежинск.
Оптимизация «жадных» функций – обучение ранжированию
«Жадная» аппроксимация функции и усиленные алгоритмы хорошо подходят для решения практических задач машинного обучения. Мы опишем широко известные усиленные алгоритмы и их модификации, которые используются для решения задач обучения ранжирования.
Содержание
1. Ранжирование в поисковых системах
- Критерии оценки
- Характеристическая модель ранжирования
- Обучение ранжированию. Задачи оптимизации (списочный, точечный, парный подходы).
2. Точечный подход. Аппроксимирование усиленных алгоритмов и «жадной» функции.
3. Изменение MatrixNet
4. Списочный подход. Аппроксимирование комплексных критериев оценки (DCG, nDCG).
Ранжирование поисковой системы.
Основная цель: ранжирование документов по степени соответствия поисковому запросу.
Как выполнить ранжирование?
Исходные условия:
- Множество поисковых запросов Q = {q1, .. qn}.
- Множество документов, соответствующих каждому из условий q Є Q.
q > {d1, d2, …}
- Оценки релевантности для каждой пары (запрос, документ) – в нашей модели это вещественные числа rel(q, d) Є [0, 1]
Критерии оценки
Оценка для ранжирования будет средним значением критериев оценки по множеству поисковых запросов Q:

Пример критериев оценки EvMeas:
- Точность-10 – процент документов с оценкой релевантности более нуля в топ-10
- MAP – средняя точность

где k – количество документов с положительной оценкой релевантности, соответствующей запросу q, nr(i) – позиция i-го документа с оценкой релевантности выше нуля.
- DCG – дисконтированный прирост

где Nq – суммарное количество документов в ранжируемом списке, relj – оценка релевантности для документа на позиции j.
- nDCG – нормализированный дисконтированный прирост

- Каждая пара (запрос, документ) описывается как вектор признаков (характеристик):
(q, d) > (f1(q, d), f2(q, d), ..)
- Поисковое ранжирование – сортировка по значению «функции релевантности». Функция релевантности – это комбинация признаков (характеристик):
fr(q, d) = 3.14 • log7(f9(q, d)) + ef66(q,d)+…
Задачи оптимизации
Как получить хорошую функцию релевантности?
Создать опознавательное (обучаемое?) множество примеров Pl – множество пар (q, d) с оценкой релевантности rel(q, d).
Используйте обучение (накопление опытов, опознание?) для создания методов ранжирования для получения fr.
Задачи оптимизации (списочный подход)
- Требуется решить прямую задачу оптимизации:

где F – множество возможных ранжирующих функций,
Ql – множество различных запросов в опознавательном множестве Pl
Сложность решения: большинство способов оценки – не непрерывные функции.
Задачи оптимизации (точечный подход)
- Упростить задачу оптимизации до задачи регрессии и минимизировать сумму функций потерь:

где L(fr(q, d), rel(q, d)) – функции потерь,
F – множество возможных функций ранжирования.
Примеры функций потерь:

Задачи оптимизации (парный подход)
- Попробуем использовать широко известные алгоритмы обучения машин для решения следующей задачи классификации:
- упорядоченная пара документов (d1, d2) (соответствующая запросу q) принадлежит классу тогда и только тогда, когда rel(q, d1) > rel(q, d2).
- упорядоченная пара документов (d1, d2) (соответствующая запросу q) принадлежит классу тогда и только тогда, когда rel(q, d1) ? rel(q, d2).
Усиленные алгоритмы и аппроксимация «жадной» функции
Мы решим следующую задачу регрессии:

Будем искать функцию релевантности в следующем виде:

Функция релевантности будет линейной комбинацией функций hk(q, d), функции hk(q, d) принадлежат простой семье H (семейству слабого обучения).
Сконструируем финальную функцию итерациями. На каждой итерации мы будем добавлять к нашей функции релевантности дополнительное ограничение ?khk(q, d):

Значения параметров ?kи слабого ученика hk(q, d) могут быть решением естественной задачи оптимизации:

Задача может быть решена непосредственно для квадратичной функции потерь и простого класса H, но решить это для других функций потерь может быть сложно.
Зададим дополнительное условие ?khk(q, d) в три шага:
- Градиентная аппроксимация. Считать релевантную функцию fr как вектор значений, проиндексированных опознавательными примерами. Взять градиент
для функции ошибок:

- Выбор слабого обучения (с точностью до константы). Найти функцию hk(q, d), наиболее коррелирующее с функцией g решением следующей оптимизационной задачи:

- Выбор ?k. Найти значение ?k из однопараметрической оптимизационной задачи:

Выбор слабого обучения
Пусть класс слабого обучения H будет множеством функций-деревьев принятия решений:

Это пример тройной функции-дерева принятия решений. Функция разделяет пространство признаков на 3 вершины по условиям в форме fj(q, d) > ? (fj – пространство признаков, ? – граница разделения). У нее есть постоянное значение для вектора признаков на одной вершине.
Выбор слабого обучения (значения функции)
Семья слабого обучения будет шестирной (например, const-уровневый) функцией-деревом принятия решений. Постараемся решить следующее:

Предположим, что мы знаем древовидную структуру слабого обучения h(q, d) – знаем условия разделения и уровни. Мы должны найти «константные значения уровней». Оптимизационная задача сужается до обычной регрессионной задачи:

где ind(q, d) – номер вершины, содержащей вектор признаков для пар (q, d) (ind(q, d) Є {1, …, 6}.
Выбор слабого обучения (древовидная структура)
Выбор «жадного» дерева:
- bestTree = функция-константа (одновершинное дерево),
- «Жадное» разделение. Постараться, разделяя вершины betsTree ,найти наилучшее разделение:

Предположим, у нас есть множество констант возможных границ разделения. Число возможных разделений ограничено значением:
#{вершины} #{признаки} #{границы разделения}
- Повторить предыдущий шаг.
MatrixNet (сеть матриц)
Множество слабых обучений – полные деревья принятия решений с глубиной k и количеством вершин 2k.
- Константное число вершин (константная глубина).
- Одинаковые условия разделения на одном уровне:

Нет необходимости в сложной структуре: глубина важнее.

| Команда |
Время последнего аплоада |
количество испытаний |
Последний результат (общественная экспертиза) |
Финальный результат |
Аппроксимация комплексных критериев оценки (DCG)
Смена ранжирования на ранжирование по параметру вероятности. Аппроксимация DCG для запроса q, множество документов {d1,…dn} и функция ранжирования ft(q, d):

(r – все перестановки множества документов)
P(fr, r) – вероятность получить ранжирование r в модели Luce-Plackett.
DCG(r) – балы DCG для перестановки r.
Модель Luce-Plackett
У нас есть множество документов {d1,…dn} и соответствующее ему множество {fr(q, d1), …, fr(q, dn)}.
Процесс ранжирования выборки в модели Luce-Plackett:
- Выбрать документ для первой позиции. Вероятность выбора документа di равна
. Предположим, мы выбрали документ dx. - Выбрать документ для второй позиции. Вероятность выбора документа di равна
. - …
Для каждой выборки, содержащей документы di и dj, соотношение между вероятностями их выбора должно быть равно значению
.
- некоторая перестановка {d1,…dn}

Вывод: Для того, что бы сайт появился в ТОП Выдачи поисковой системы Яндекс, придется потрудиться! Сайты теперь требуется раскручивать только самыми естесственными методами!


