inductive bias машинное обучение

Chapter 2 — Inductive bias — Part 3

inductive bias машинное обучение. Смотреть фото inductive bias машинное обучение. Смотреть картинку inductive bias машинное обучение. Картинка про inductive bias машинное обучение. Фото inductive bias машинное обучение

Feb 1, 2020 · 9 min read

inductive bias машинное обучение. Смотреть фото inductive bias машинное обучение. Смотреть картинку inductive bias машинное обучение. Картинка про inductive bias машинное обучение. Фото inductive bias машинное обучение

Every machine learning algorithm with any ability to generalize beyond the training data that it sees has, by definition, some type of inductive bias. That is, there is some fundamental assumption or set of assumptions that the learner makes about the target function that enables it to generalize beyond the training data.

Below is a chart that shows the inductive biases for various machine learning algorithms:

inductive bias машинное обучение. Смотреть фото inductive bias машинное обучение. Смотреть картинку inductive bias машинное обучение. Картинка про inductive bias машинное обучение. Фото inductive bias машинное обучение

In the earlier story, we saw that, the candidate elimination algorithm converge towards the true target concept provided it is given accurate training examples and provided its initial hypothesis space contains the target concept.

These are fundamental questions for inductive inference in general. Here we examine them in the context of the candidate elimination algorithm.

1. A Biased Hypothesis Space

We defined consistent as any hypothesis h is consistent with a set of training examples D if and only if h(x) = c(x) for each example (x, c(x)) in D.

Suppose the target concept c(x) is not contained in the hypothesis space H, then none of the hypothesis of H will be consistent with a set of training examples D. In that case, solution would be to enrich the hypothesis space to include every possible hypothesis.

Consider the EnjoySport example in which the hypothesis space is restricted to include only conjunctions of attribute values.

inductive bias машинное обучение. Смотреть фото inductive bias машинное обучение. Смотреть картинку inductive bias машинное обучение. Картинка про inductive bias машинное обучение. Фото inductive bias машинное обучение

Because of this restriction, the hypothesis space is unable to represent even simple disjunctive target concepts such as “Sky = Sunny or Sky = Cloudy”.

In the above three training examples, the target concept is “Sky = Sunny or Sky = Cloudy”. Now we will check whether the candidate elimination algorithm will learn the concept.

2. An Unbiased Learner

In the following figure, the box on the left represents the set X of all instances, the box on the right the set H of all hypotheses. Each hypothesis corresponds to some subset of X.

inductive bias машинное обучение. Смотреть фото inductive bias машинное обучение. Смотреть картинку inductive bias машинное обучение. Картинка про inductive bias машинное обучение. Фото inductive bias машинное обучение

Suppose if we have 3 instances then we can have pow(2,3) = 8 subsets. Each subset corresponds to one hypothesis in hypothesis space. Each hypothesis will learn a concept that is represented by the subset of the instances. By having such a hypothesis space will represent every teachable concept that is representing every possible subset of the instances X.

Note — out of 8 hypothesis, only 1 hypothesis is a conjunctive and rest 7 hypothesis are disjunctions, conjunctions, and negations combinations.

In the EnjoySport learning task the size of the instance space X of days described by the six attributes is (3.2.2.2.2.2 = ) 96 instances. In total, we can have pow(2,96) subsets from the 96 district instances.

The solution to the problem of assuring that the target concept is in the hypothesis space H is to provide a hypothesis space capable of representing every teachable concept that is representing every possible subset of the instances X.
The set of all subsets of a set X is called the power set of X.

Note, the conjunctive hypothesis space is able to represent only (4.3.3.3.3.3 =)973 of these — a biased hypothesis space indeed.

Let us reformulate the Enjoysport learning task in an unbiased way by defining a new hypothesis space H’ that can represent every subset of instances; that is, let H’ correspond to the power set of X. One way to define such an H’ is to allow arbitrary disjunctions,conjunctions, and negations of our earlier hypotheses.

However, while this hypothesis space eliminates any problems of expressibility, it unfortunately raises a new, equally difficult problem: our concept learning algorithm is now completely unable to generalize beyond the observed examples!.

For example, Let Positive example be (x1, x2, x3 ) and negative example be (x 4, x5 ). Now the S and G boundary will be

S boundary will always be simply the disjunction of the observed positive examples, while the G boundary will always be the negated disjunction of the observed negative examples. The only examples that will be classified by S and G are the observed training examples themselves. In order to converge to a single, final target concept, we will have to present every single instance in X as a training example!

3. The Futility of Bias-Free Learning

The fundamental property of inductive inference —

“a learner that makes no a priori assumptions regarding the identity of the target concept has no rational basis for classifying any unseen instances”

In fact, the only reason that the candidate elimination algorithm was able to generalize beyond the observed training examples in our original formulation of the EnjoySport task is that it was biased by the implicit assumption that the target concept could be represented by a conjunction of attribute values. In cases where this assumption is correct (and the training examples are error-free), its classification of new instances will also be correct. If this assumption is incorrect, however, it is certain that the candidate elimination algorithm will miss-classify at least some instances from X.

Let us define this notion of inductive bias more precisely.

inductive bias машинное обучение. Смотреть фото inductive bias машинное обучение. Смотреть картинку inductive bias машинное обучение. Картинка про inductive bias машинное обучение. Фото inductive bias машинное обучение

inductive bias машинное обучение. Смотреть фото inductive bias машинное обучение. Смотреть картинку inductive bias машинное обучение. Картинка про inductive bias машинное обучение. Фото inductive bias машинное обучение

Definition:

Consider a concept learning algorithm L for the set of instances X. Let c be an arbitrary concept defined over X, and let Dc = <〈x, c(x) 〉>be an arbitrary set of training examples of c. Let L(xi, Dc) denote the classification assigned to the instance xi by L after training on the data Dc. The inductive bias of L is any minimal set of assertions B such that for any target concept c and corresponding training examples Dc

inductive bias машинное обучение. Смотреть фото inductive bias машинное обучение. Смотреть картинку inductive bias машинное обучение. Картинка про inductive bias машинное обучение. Фото inductive bias машинное обучение

y | — z indicates that z follows deductively from y (i.e., that z is provable from y).

4. Inductive Bias for Candidate Elimination

5. Inductive Systems and Equivalent Deductive Systems

On the other hand, inductive logic or reasoning involves making generalizations based upon behavior observed in specific cases. So that is the reason, we called that the learner L(xi,Dc) inductively inferred from (Dc ∧ xi). It depends on choice of the learning algorithm used and what assumption it makes.

The below figure explains

inductive bias машинное обучение. Смотреть фото inductive bias машинное обучение. Смотреть картинку inductive bias машинное обучение. Картинка про inductive bias машинное обучение. Фото inductive bias машинное обучение

One advantage of viewing inductive inference systems in terms of their inductive bias is that it provides a non procedural means of characterizing their policy for generalizing beyond the observed data. A second advantage is that it allows comparison of different learners according to the strength of the inductive bias they employ.

The following three learning algorithms are listed from weakest to strongest bias.

1.Rote-learning : storing each observed training example in memory. If the instance is found in memory, the store classification is returned.

Inductive bias : nothing — Weakest bias

2.Candidate-Elimination algorithm : new instances are classified only in the case where all members of the current version space agree in the classification.

Inductive bias : Target concept can be represented in its hypothesis space

3. Find-S : find the most specific hypothesis consistent with the training examples. It then uses this hypothesis to classify all subsequent instances.

Inductive bias : Target concept can be represented in its hypothesis space + All instances are negative instances unless the opposite is entailed by its other knowledge — Strongest bias

More strongly biased methods make more inductive leaps, classifying a greater proportion of unseen instances!!

Источник

What is inductive bias in machine learning? [closed]

Want to improve this question? Update the question so it’s on-topic for Stack Overflow.

What is inductive bias in machine learning? Why is it necessary?

9 Answers 9

Every machine learning algorithm with any ability to generalize beyond the training data that it sees has some type of inductive bias, which are the assumptions made by the model to learn the target function and to generalize beyond training data.

For example, in linear regression, the model assumes that the output or dependent variable is related to independent variable linearly (in the weights). This is an inductive bias of the model.

What is inductive bias?

Pretty much every design choice in machine learning signifies some sort of inductive bias. «Relational inductive biases, deep learning, and graph networks» (Battaglia et. al, 2018) is an amazing 🙌 read, which I will be referring to throughout this answer.

An inductive bias allows a learning algorithm to prioritize one solution (or interpretation) over another, independent of the observed data. [. ] Inductive biases can express assumptions about either the data-generating process or the space of solutions.

Examples in deep learning

Concretely speaking, the very composition of layers 🍰 in deep learning provides a type of relational inductive bias: hierarchical processing. The type of layer imposes further relational inductive biases:

inductive bias машинное обучение. Смотреть фото inductive bias машинное обучение. Смотреть картинку inductive bias машинное обучение. Картинка про inductive bias машинное обучение. Фото inductive bias машинное обучение

More generally, non-relational inductive biases used in deep learning include:

Examples outside of deep learning

In a Bayesian model, inductive biases are typically expressed through the choice and parameterization of the prior distribution. Adding a Tikhonov regularization penalty to your loss function implies assuming that simpler hypotheses are more likely.

Conclusion

The stronger the inductive bias, the better the sample efficiency—this can be understood in terms of the bias-variance tradeoff. Many modern deep learning methods follow an “end-to-end” design philosophy which emphasizes minimal a priori representational and computational assumptions, which explains why they tend to be so data-intensive. On the other hand, there is a lot of research into baking stronger relational inductive biases into deep learning architectures, e.g. with graph networks.

An aside about the word «inductive»

In philosophy, inductive reasoning refers to generalization from specific observations to a conclusion. This is a counterpoint to deductive reasoning, which refers to specialization from general ideas to a conclusion.

inductive bias машинное обучение. Смотреть фото inductive bias машинное обучение. Смотреть картинку inductive bias машинное обучение. Картинка про inductive bias машинное обучение. Фото inductive bias машинное обучение

Inductive bias is the set of assumptions a learner uses to predict results given inputs it has not yet encountered.

According to Tom Mitchell’s definition,

an inductive bias of a learner is the set of additional assumptions sufficient to justify its inductive inferences as deductive inferences.

I couldn’t quite understand above definition so I searched through Wikipedia and was able to summarize the definition in layman’s terms.

Given a data set, which learning model (=Inductive Bias) should be chosen?

Inductive Bias has some prior assumptions about the tasks. Not one bias that is best on all problems and there have been a lot of research efforts to automatically discover the Inductive Bias.

The following is a list of common inductive biases in machine learning algorithms.

Maximum conditional independence: if the hypothesis can be cast in a Bayesian framework, try to maximize conditional independence. This is the bias used in the Naive Bayes classifier.

Minimum cross-validation error: when trying to choose among hypotheses, select the hypothesis with the lowest cross-validation error. Although cross-validation may seem to be free of bias, the «no free lunch» theorems show that cross-validation must be biased.

Maximum margin: when drawing a boundary between two classes, attempt to maximize the width of the boundary. This is the bias used in support vector machines. The assumption is that distinct classes tend to be separated by wide boundaries.

Minimum description length: when forming a hypothesis, attempt to minimize the length of the description of the hypothesis. The assumption is that simpler hypotheses are more likely to be true. See Occam’s razor.

Minimum features: unless there is good evidence that a feature is useful, it should be deleted. This is the assumption behind feature selection algorithms.

Nearest neighbors: assume that most of the cases in a small neighborhood in feature space belong to the same class. Given a case for which the class is unknown, guess that it belongs to the same class as the majority in its immediate neighborhood. This is the bias used in the k-nearest neighbors algorithm. The assumption is that cases that are near each other tend to belong to the same class.

Источник

Как я перестал бояться и научился любить нейронные сети

inductive bias машинное обучение. Смотреть фото inductive bias машинное обучение. Смотреть картинку inductive bias машинное обучение. Картинка про inductive bias машинное обучение. Фото inductive bias машинное обучение

В рекомендательных системах нет доминирующего класса моделей. Матричные разложения, графовые и контентные рекомендеры активно развиваются: про них пишут научные статьи, их используют в продакшене. Пять лет назад на волне интереса к нейронным сетям стали популярны нейросетевые рекомендеры, но довольно быстро наступило разочарование. На RecSys 2019 лучшей выбрали статью с критикой нейросетевого подхода (в этом году его тоже пинают). Стоит ли практикам забыть о нейронных сетях в рекомендациях? Я уверен, что нет. Мой рекомендер уже год работает в продакшене и помогает пользователям Одноклассников заказывать интересные товары. Я расскажу, почему построил рекомендер на основе нейронной сети. После прочтения статьи у вас не останется причин не сделать также в вашем сервисе.

В научных статьях по рекомендательным системам главная мера успеха – точность модели рекомендера. Модель, которая улучшает SOTA на стандартных данных, имеет больше шансов на публикацию, чем просто научная идея. Применимость на практике желательна, но не обязательна. Поэтому в качестве SOTA выступают монстры вроде “Deep Variational Autoencoder with Gated Linear Units and VampPriors” [kim] (Шишков, прости: не знаю, как перевести). Авторы вышеупомянутой статьи с RecSys 2019 выяснили, что большинство подобных работ невозможно повторить [dacrema]. А значит, их результатам нельзя доверять. Это бросило тень на репутацию целого класса рекомендеров – нейросетевые модели.

Рекомендер, работающий в продакшене, – сложная инженерная система. Инженер не станет добавлять еще больше сложности ради едва заметного улучшения метрик. Поэтому в индустриальных рекомендерах простота выходит на первый план вместе с точностью. Пять лет назад я был уверен, что нейронные сети слишком сложные, чтобы работать в продакшене. В 2019 я разработал нейросетевой рекомендер товаров в Одноклассниках и продолжаю поддерживать и улучшать его. У меня нет сомнений в практичности этого подхода и со мной согласны инженеры Google [chen,covington] и Airbnb [haldar].

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

Сервис Товары – это интернет-магазин внутри Одноклассников. Пользователи ежедневно делают 8000 заказов из каталога AliExpress, не выходя из социальной сети. Чтобы пользователям было проще ориентироваться в стомиллионом каталоге, сервис показывает им персонализированные рекомендации. Алгоритм анализирует активность пользователя в Товарах и Одноклассниках в целом и строит витрину рекомендаций наподобие этой:

inductive bias машинное обучение. Смотреть фото inductive bias машинное обучение. Смотреть картинку inductive bias машинное обучение. Картинка про inductive bias машинное обучение. Фото inductive bias машинное обучение

Сервис постоянно улучшается. За последний год я провел 33 A/B эксперимента по улучшению рекомендера. 23 эксперимента были успешными, 8 – неуспешными и 2 техническими.

Нейросетевой рекомендер помогает упростить архитектуру сервиса

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

У такого подхода есть недостаток: модель может предложить рекомендации только тем пользователям, которые что-то покупали. А показывать рекомендации нужно всем. Возникает идея добавить модель холодного старта, которой не нужны данные о предыдущих покупках. Качество рекомендаций у модели холодного старта будет хуже, чем у модели теплого старта, но зато она будет выбирать товары на основании информации, которая известна про всех пользователей. Обучаем модель холодного старта по той же схеме, что модель теплого старта.

В Товарах ОК проблема холодного старта реальна. Только 6% аудитории Одноклассников регулярно пользуются сервисом Товаров – оставшиеся 94% могут о нем вообще ничего не знать. Им коллаборативная модель не может ничего предложить. Но именно их важно привлечь – для этого мы показываем им персонализированные рекомендации товаров в ленте. За это отвечает модель холодного старта. Она строит рекомендации на основе пола и возраста пользователей и списка групп, на которые они подписаны. В A/B эксперименте персонализация холодного старта добавила +8% к нажатиям кнопки “купить” и +3% к пользователям сервиса.

После добавления модели холодного старта получилась схема с двумя моделями: если у пользователя достаточно данных о предыдущих покупках – используется модель теплого старта; иначе – модель холодного старта. Кроме того, имеет смысл добавить предсказания модели холодного старта как признак в модель теплого старта, чтобы улучшить ее качество.

Архитектура рекомендера с отдельными моделями холодного и теплого старта

Из картинки выше видно, как сложно будет поддерживать два связанных пайплайна:

Готовить две зависимые обучающие выборки.

Обучать модель теплого старта после модели холодного старта.

Одновременно заводить модели в продакшен.

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

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

Архитектура сервиса с моделью, в которую упакованы компоненты холодного и теплого старта

Проблемы с воспроизводимостью – один из основных аргументов против нейросетевых рекомендеров. Мои коллеги разработали ML платформу, которая обеспечивает воспроизводимость экспериментов. Она построена на фреймворках Airflow, DVC и MLflow. С помощью ML платформы мы обучаем нейросетевые (и не только) модели, следим за их метриками и выкатываем их в продакшен. До переезда на платформу, чтобы обновить модель товаров, я вручную запускал сложный пайплайн из Spark-джоб и скриптов. Сейчас я делаю это в несколько кликов. Подробности об ML платформе в докладе @mikhail_mar.

У упаковки нескольких моделей в одну нейронную сеть есть ограничения:

Сложно совместить модели, которые получают на вход разные типы объектов. Например, персонализированный рекомендер, у которого на входе пользователь, не упакуешь вместе с item-to-item рекомендером, у которого на входе товар.

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

Усложняется подготовка обучающих данных по сравнению с одиночным рекомендером. Теперь в один датасет нужно будет складывать данные для обучения всех компонентов модели.

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

В нейросетевой рекомендер легко добавлять новые признаки

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

Нейросетевые рекомендеры не оправдали ожиданий академии: оказалось, что они не гарантируют выигрыша в точности по сравнению «классикой”. Но это верно, если сравнивать на одних и тех же простых user-item данных. Как только данные становятся разнообразнее, нейронные сети обходят классических конкурентов. Вот какие гипотезы я проверял при работе над рекомендером товаров: “стоит ли учитывать в модели покупки друзей пользователя?”, “будет ли модель точнее, если дать ей информацию о городе, в котором живет пользователь?”, “имеет ли значение последовательность, в которой пользователь просматривал товары?”. Попробуйте проверить эти идеи, если ваша модель – SLIM [ning]. В лучшем случае вы обрастете пайплайнами Spark-джоб и кучей эвристик. В худшем – уволитесь и откроете кофейню.

Из тридцати трех A/B экспериментов, которые я провел с рекомендером товаров, семь измеряли эффект от добавления новых признаков. Пять из них показали значимый прирост в ключевых метриках. Подготовка эксперимента с добавлением новых признаков всегда занимала меньше недели. В том числе из-за того, что добавлять новые признаки в нейросетевой рекомендер очень просто. Самым успешным экспериментом с признаками был эксперимент по добавлению в рекомендер товаров друзей. Он увеличил выручку сервиса на +7%.

Категориальные признаки кодируются эмбедингами. Пример такого признака – ID товара. В каталоге восемь миллионов товаров, но по большинству из них нет коллаборативных данных. Поэтому собственный эмбединг получают только самые частотные. Остальные можно закодировать значением out-of-vocabulary.

Числовые признаки кодируем их значением. Числовые признаки могут быть одномерными (поставил ли пользователь “класс” товару), либо многомерными (посчитанный заранее эмбединг фотографии товара).

Модели нужны представления товаров и пользователей, собранные из признаков. Например, представление товара, с которым взаимодействовал конкретный пользователь, может состоять из:

идентификатора товара (категориальный признак),

идентификатора категории товара (категориальный признак),

места товара в последовательности товаров, с которыми взаимодействовал пользователь (категориальный признак)

наличия “класса” (числовой признак)

факта покупки товара пользователем (числовой признак).

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

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

Итак, из последовательности векторов-представлений нужно получить один вектор. Проще всего усреднить векторы из последовательности. А можно добавить немного интерпретируемости [pruthi] и использовать усреднение с весами. Веса будем вычислять механизмом query-key-value attention [uzay].

В рекомендере товаров я использовал признаки пользователя в качестве query и представления товаров в качестве key и value. Модель выучила понятные человеку закономерности:

— Купленный товар имеет больший вес, чем товар, который пользователь просто посмотрел.

— Чем дальше в прошлом пользователь взаимодействовал с товаром, тем меньше модель обращает на него внимания.

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

Кроме товаров пользователя в модели используются и другие последовательности: последовательность групп, на которые пользователь подписан и последовательность товаров друзей. Эти последовательности важны для компонента холодного старта.

В этом разделе мы научились укладывать в модель-коробку любые виды данных. Выбрав простой механический подход к добавлению признаков, мы в какой-то степени отказались от feature engineering, который называют искусством [duboue]. Но за это получили скорость экспериментирования. В следующем разделе добавим креатива.

В архитектуру нейронной сети можно заложить представления исследователя о задаче

Теперь, когда у рекомендера есть данные, нужно дать ему возможность их использовать. Мы представили признаки просто, поэтому модель должна быть достаточно экспрессивной, чтобы выучить сложные зависимости. Можно придумать собственную архитектуру, но проще оттолкнуться от проверенной. Например, от первых двух уровней SVD++ [koren] (третий уровень не используем, потому что он требует O(Nitems 2 ) параметров).

inductive bias машинное обучение. Смотреть фото inductive bias машинное обучение. Смотреть картинку inductive bias машинное обучение. Картинка про inductive bias машинное обучение. Фото inductive bias машинное обучение

SVD++ моделирует скор rui – насколько товар i подходит пользователю u – как линейную комбинацию обучаемых параметров:

Пользователь u представлен эмбедингом pu и смещением bu. Смещение показывает, насколько пользователю характерны высокие скоры “в общем”. Кроме того, используются эмбединги yj множества товаров N(u), с которыми взаимодействовал пользователь. Они полезны для пользователей, у которых недостаточно данных, чтобы получить точный эмбединг pu.

Товар представлен аналогично пользователю – эмбедингом qi и смещением bi.

Общее смещение μ отражает базовый уровень скоров в системе безотносительно пользователя и товара.

Такие архитектуры хорошо себя показывают в рекомендациях: кроме семейства SVD на похожих идеях основана библиотека LightFM [kula]. Выразим SVD++ с помощью нейронной сети.

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

Изменения архитектуры отражают представления исследователя о связи между входными данными и целью предсказания. Эти представления, реализованные в модели, называют inductive bias (пример сверхуспешного inductive bias – свертки в computer vision [ulyanov]). Воспользуемся инструментами которые мы обсудили в предыдущих разделах, чтобы добавить полезный inductive bias к SVD++.

Изменение

Inductive bias

Реализация

Добавление признаков товаров и пользователей

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

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

Добавление нелинейных преобразований

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

Нелинейные преобразования реализованы с помощью feed-forward сетей с полносвязными и residual блоками. С их помощью можно не только добавить нелинейность, но и “подогнать” размерности данных, где это необходимо.

Добавление компонента холодного старта

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

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

Минутная анимация показывает, как можно применить эти идеи для улучшения SVD++:

inductive bias машинное обучение. Смотреть фото inductive bias машинное обучение. Смотреть картинку inductive bias машинное обучение. Картинка про inductive bias машинное обучение. Фото inductive bias машинное обучениеЭто GIF длиной 1 минуту

Финальная архитектура, которую я показал на анимации, отражает состояние рекомендера Товаров на февраль 2020. Я постоянно экспериментирую с моделью и с тех пор архитектура ушла вперед. Четыре A/B эксперимента дали статистически значимые улучшения метрик.

1. Нелинейное преобразование предобученных эмбедингов товаров: +7% к выручке.

2. Замена полносвязных слоев residual-блоками: +4.3% к покупающим пользователям.

3. Добавление переранжирующего компонента после отбора товаров-кандидатов: +4% к пользователям, нажимающим кнопку “купить”.

4. Добавление модели новых выходов, предсказывающих клики на карточки товаров: +2.4% к кликам.

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

Расширяемость – преимущество нейросетевой архитектуры над классическими рекомендерами. Можно начать с простой модели и показать ее эффективность. А потом планомерно экспериментировать с улучшениями и проверять, что именно окажется эффективным в конкретной задаче. Вдохновение легко черпать в научных статьях. Предполагаем, что некоторые признаки работают по-разному для разных категорий пользователя? Используем deep & cross network [wang]. Хотим использовать информацию о товарах друзей? Добавляем нужный компонент [fan]. Считаем, что одно и то же внутреннее представление может предсказать “классы” и покупки? Заводим модель с несколькими экспертами [zhao]. За гибкость мы заплатим добавлением гиперпараметров, но эксперименты показывают, что рекомендеры не очень чувствительны к их выбору [haldar]. Мы обсудили, как с помощью нейронных сетей можно решить задачу рекомендаций в классической постановке. Настало время копнуть глубже.

Нейрорекомендеры изменят постановку задачи рекомендаций

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

Выбор и ранжирование end-to-end. В индустрии устоялся подход, в котором рекомендации строятся с помощью двух моделей: первая отбирает небольшой топ товаров-кандидатов, а вторая перемешивает их, подстраиваясь под интересы пользователя [covington]. Модель для выбора кандидатов имеет дело с миллионами товаров и оптимизирует полноту. А модель-ранкер учится оценивать конкретный товар для конкретного пользователя в конкретном контексте. Эти модели можно совместить в одну архитектуру, но тогда применять ранкер придется к миллионам кандидатов, а не к небольшому топу. В Google эту проблему решили end-to-end для задачи обработки текстов с использованием attention и алгоритма поиска приближенных соседей [guu]. Этот подход применим и в задаче рекомендаций.

В предыдущем разделе я упоминал эксперимент с добавлением переранжирующего компонента. Идея в том, чтобы модифицировать скор товара, полученный скалярным произведением представления пользователя на представление товара. За это отвечает отдельный компонент – ранкер. Он приклеивается к выходу модели и обучается вместе с ней. У ранкера свой набор признаков. Этот эксперимент – мой первый шаг в направлении выбора товаров-кандидатов и их ранжирования end-to-end. Я планирую идти дальше в этом направлении.

Разнообразие рекомендаций. Современные сервисы показывают рекомендации списком. Это не учитывается при обучении модели. В результате рекомендации в списке могут оказаться однообразными. Разнообразия рекомендаций добиваются хитрым пост-процессингом предсказаний [bridge]. И снова кажется, что эту логику можно упаковать внутрь модели. Команда поиска из Airbnb уже показала такой результат [abdool].

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

Обучение с подкреплением. Задача коллаборативной фильтрации, с которой я начал эту статью, поставлена как задача обучения с учителем: дана обучающая выборка – хотим выучить, как по признакам получить значения целевой переменной. Эта постановка не включает в себя многие проблемы индустриальных рекомендательных систем, например exploration-exploitation tradeoff, filter bubbles, selection bias. Эти проблемы хорошо ложатся на постановку обучения с подкреплением [munemasa], в которой агент (рекомендер) взаимодействует со средой (пользователями) и получает награду (клики, покупки). Развитие нейронных сетей привело к возрождению обучения с подкреплением. Но использование этого подхода в рекомендациях – отдельная большая тема за рамками этой статьи.

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

Пора задуматься о применении нейросетевого подхода в рекомендациях

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

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

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

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

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

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *