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

Вы только что купили «Старик и море»?

Давайте совершим путешествие по переулку памяти в середину 90-х, когда торговые сайты, такие как Amazon, только начинали свою работу. Их система рекомендаций была проста: если вы купили книгу Хемингуэя, например, система порекомендовала бы «Скотный двор», так как более 90% времени эти две книги, а именно «Старик и море» и «Скотный двор», были купили вместе. Этот метод называется совместной фильтрацией элементов и в общих чертах основан на совпадении элементов.

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

Первая петля

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

Давайте начнем с написания базового цикла для системы рекомендаций книг. Предположим, мы хотим измерить привлекательность книг, выставленных взрослым в Лос-Анджелесе. В момент времени t=0 начальное убеждение может быть основано на очень сложном алгоритме машинного обучения или просто на среднем значении. Однако прелесть этого цикла в том, что даже при умеренном размере пользовательской базы следующий цикл обычно сходится к своему истинному значению всего через несколько тысяч итераций, при условии отсутствия аномальных событий или дней.

belief_at_time(0) = books_purchased_by_adults_in_LA/books_shown_to_adults_in_LA
while (the conversion rate changes):
    belief(t+1) = belief(t) * conversion_rate(t)

Теперь давайте возьмем вещи на ступеньку выше

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

  • Покупка классических книг женщинами в Нью-Йорке
  • Уровень обмена кулинарными книгами мужчинами по выходным
  • Скорость добавления сладостей в корзину мужчинами с высоким уровнем расходов

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

Мега петля

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

Привычки съедают мотивацию на обед

Привычки. Хорошие привычки. Плохие привычки. Здоровые привычки и вредные привычки. Некоторые из них вы построили с большим трудом, а от некоторых хотите избавиться. Существует множество отличных книг, которые убедят вас в эффективности и мудрости формирования хороших привычек. Говоря аналогией, привычки — это наивные петли обратной связи. Хорошие, те, которыми вы гордитесь, приводят вас в состояние расслабления и равновесия, точно так же, как хорошо продуманные циклы, которые мы обсуждали ранее. Так что в следующий раз, когда вы боретесь с привычкой, подумайте о том, к какому состоянию она вас приводит, а не о самой привычке.