Сейчас, почему нам следует заботиться о Системах Рекомендаций…? ft. Мягкое введение в Томпсона Сэмплинг

Почему нам стоит обратить внимание на системы рекомендаций? Введение в томпсоновское сэмплирование

Серия постоянно обновляющейся системы рекомендаций

Фото Myke Simon на Unsplash

Я снова поймала себя на том, что уже в 100…01-й раз подряд смотрю на своей незакрытой ужинной коробке, пока просматриваю Netflix в поисках сериала, чтобы поесть. В моем ленте слишком много рекомендаций азиатского романтического и американского юношеского кино, вероятно на основе пары сериалов из этих категорий, которые я посмотрела месяц или два назад. “Здесь нет ничего для просмотра…” – вздохнула я, закончив чтение всех синопсисов, чувствуя себя уверенной, что могу предсказать, как разворачивается сюжет. Я достала свой альтернативный источник развлечения, Tiktok, подсознательно думая, что, вероятно, мне придется отметить “Не интересно” некоторые видео и поставить лайк или сохранить другие, чтобы… рекомендовать алгоритму прислать мне какой-то новый поток контента сегодня.

Системы рекомендаций (RecSys) можно считать установленными алгоритмами, которые глубоко укоренились в нашу повседневную жизнь и, по шкале от 1 до Chat-GPT, кажутся почти как 80-е годы как для академического, так и для неакадемического мира. Тем не менее, это далеко не идеальный алгоритм. Этические, социальные, технические и правовые проблемы, которые возникают при работе с системой рекомендаций, никогда не были в центре внимания исследований (как и большинства других технологических продуктов…). Неравенство в группах пользователей и нарушение конфиденциальности являются примерами популярных проблем, связанных с RecSys, которые до сих пор не полностью решены компаниями, которые его реализовали. Кроме того, существует еще много других более тонких проблем, которые редко получают достаточное внимание, одной из которых является потеря автономии в индивидуальном процессе принятия решений. “Мощная” RecSys, без сомнения, может повлиять на пользователей в определенном направлении [2], заставляя их покупать, смотреть, думать, верить в то, что они не сделали бы, если бы не подверглись такому влиянию.

Поэтому, я хочу написать серию статей о своем пути в магистратуре, когда я начинаю изучать и углубляться в системы рекомендаций, их преимущества и недостатки… все с самого начала! И я решила начать с размышлений о фильмах… и о Thompson Sampling!

Thompson Sampling

Thompson Sampling (TS) – один из основных алгоритмов не только в литературе систем рекомендаций, но и в обучении с подкреплением. Он, безусловно, является лучшим A/B-тестированием в настройках онлайн-обучения, как ясно объясняет Самуэль Маццанти в этой удивительной статье. Простыми словами, в контексте рекомендации фильмов TS пытается определить лучший фильм для рекомендации, чтобы максимизировать вероятность того, что я нажму на просмотр. Он может делать это эффективно, используя относительно мало данных, поскольку позволяет обновлять параметры каждый раз, когда он наблюдает, как я нажимаю или не нажимаю на фильм. Грубо говоря, эта динамичная характеристика позволяет TS учитывать, помимо моей истории просмотра и закладок, также текущие факторы, такие как мои действия при просмотре или результаты поиска в приложении, чтобы дать мне наиболее подходящую рекомендацию. Однако в этом уроке для начинающих давайте рассмотрим упрощенный анализ ниже.

Давайте рассмотрим все более детально!

Рассмотрим эти 3 фильма, все они замечательны, но, довольно спорно, у меня есть собственное личное ранжирование. Из этих 3 фильмов, допустим, есть один, который я 100% пересмотрю, если он попадется в моем потоке, один, который я с большой вероятностью не буду пересматривать (5%), и один, на который есть 70% шанс того, что я нажму “просмотреть”. TS, очевидно, не знает эту информацию обо мне заранее, и его цель – научиться моему поведению, чтобы, как общее интуитивное представление, рекомендовать мне фильм, который это знает, что я с уверенностью нажму “просмотр”.

Изображение от автора

В алгоритме TS основной рабочий процесс выглядит следующим образом:

  1. Действие: TS предлагает мне конкретный фильм среди сотен других
  2. Результат: Я решаю, что фильм достаточно интересен для меня и нажимаю, чтобы посмотреть его, или нахожу его скучным и ухожу со страницы после прочтения синопсиса
  3. Награда: Может рассматриваться как количество “очков”, которые TS получает, если я нажимаю, чтобы посмотреть определенный фильм, или которые TS теряет, если я не нажимаю. В основных настройках рекомендации фильмов или рекламы, мы можем считать награду эквивалентом результата, поэтому одно нажатие на фильм = 1 очко!
  4. Обновление знаний: TS регистрирует мой выбор и обновляет свое представление о том, какой фильм является моим любимым.
  5. Повторение шага 1 (может быть в пределах текущей сессии просмотра или на следующий день во время ужина), но теперь с некоторыми дополнительными знаниями о моих предпочтениях.

Исследование/Эксплуатация

Это самый часто используемый термин в этой литературе и также то, что отличает алгоритм TS от других связанных алгоритмов. Шаг 5, указанный выше, – это момент, когда начинается эта логика. В мире TS все имеет некоторую степень неопределенности. То, что я выпью латте три раза и матча пять раз в неделю, не обязательно означает, что я люблю матчу больше, чем латте. Возможно, это только одна неделя (и на самом деле я пью в среднем больше латте, чем матчу в неделю)? По этой причине всё в TS представлено некоторым типом распределения, а не просто отдельными числами.

图1 我在一个星期里喝了5杯抹茶和3杯拿铁(左),但平均而言我每周喝的拿铁比抹茶多(右)— 摘自作者的图像

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

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

Распределения: Бета-Бернулли

Как и в графике матча-латте выше, TS работает с различными типами распределений, чтобы понять наше предпочтение к различным вариантам. В самых базовых случаях фильмов (а также рекламы) мы часто используем сочетание Бета-Бернулли.

Распределение Бернулли – это дискретное распределение, в котором есть только два возможных исхода: 1 и 0. Распределение Бернулли состоит только из одного параметра, который указывает вероятность того, что некоторая переменная, скажем, Y, будет равной 1. Итак, если мы говорим Y~Bern(p), и, например, p = 0.7, это значит, что у Y есть 0.7 шанса иметь значение 1 и 1–p = 1–0.7 = 0.3 шанса быть равной 0. Таким образом, распределение Бернулли подходит для моделирования награды (также результата в нашем случае), потому что наша награда имеет только двоичный результат: Нажато или Не нажато.

Бета-распределение, с другой стороны, используется для моделирования веры TS в мои кинопредпочтения. Бета-распределение принимает два параметра, альфа и бета, которые часто рассматриваются как количество успехов и неудач соответственно, и оба должны быть ≥ 1. Таким образом, бета-распределение подходит для моделирования количества раз, когда я нажимаю на “Смотреть” и количество раз, когда я пропускаю фильм. Давайте рассмотрим пример. Здесь есть 3 разных бета-распределения, представляющих 3 фильма, сделанные за 10 наблюдений. Таким образом, общее количество нажатий и пропусков для всех 3 фильмов одинаково (10), но коэффициенты нажатий и пропусков различаются. Для фильма 1 я нажимаю на “Смотреть” 2 раза (альфа = 2) и пропускаю 8 раз (бета = 8); для фильма 2 я нажимаю на “Смотреть” 5 раз и пропускаю 5 раз; для фильма 3 я нажимаю на “Смотреть” 8 раз и пропускаю 2 раза.

Рисунок 2. Изображение автора

По графику можно увидеть, что вероятность того, что я снова посмотрю фильм 2, достигает пика около 50%, тогда как эта вероятность для фильма 1 намного ниже, например. Мы можем считать эти кривые вероятностью вероятности (моего повторного просмотра фильма), поэтому бета-распределение идеально подходит для представления веры ТС в мои кинопредпочтения.

Алгоритм

В этом разделе я помогу вам ясно понять реализацию алгоритма и методологию. Прежде всего, вот фрагмент алгоритма Томпсона-Сэмплирования в псевдокоде и на Python. Псевдокод взят из удивительной книги о ТС, под названием Руководство по Томпсон-сэмплированию [Руссо, 2017].

Рисунок 3 Томпсон-сэмплирование, реализация на Python (слева) и псевдокод (справа) — Изображение автора

Давайте разберем его по частям!

Модель выборки

Первый этап алгоритма заключается в “угадывании”, насколько мне нравится каждый из фильмов. Как показано в предыдущем разделе, мои предпочтения по каждому фильму можно представить с использованием бета-кривых, как на рис. 2, которые ТС не знает заранее и пытается выяснить, как эти бета-кривые выглядят. В t = 1 (первом раунде), ТС может начать с предположения, что я равнозначно предпочитаю все 3 фильма, то есть равное количество нажатий и пропусков (и мои 3 бета-кривые будут выглядеть одинаково).

Рисунок 4 Первое предположение ТС о моих предпочтениях для всех 3 фильмов

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

Рисунок 5 Выборка пар значений альфа-бета для представления распределений нашего первоначального предположения для каждого из 3 фильмов (также называемых действиями/вариантами решения)

Выбор и применение действия

На этом шаге TS выбирает действие для выполнения (т.е. выбирает фильм для рекомендации) на основе выбранного наибольшего значения тета. Рассмотрим снова Рисунок 2 в качестве примера. Предположим, у нас есть всего 2 фильма — только фильм 1 и фильм 3. Идея использования наибольшего значения тета для выбора действия заключается в том, что если истинные распределения имеют малое перекрытие и в нашем случае я практически наверняка предпочитаю один фильм больше другого, то вероятность того, что выбранное значение тета для фильма 1 будет больше, чем для фильма 3, очень мала. Аналогичным образом, если мы рассмотрим фильмы 2 и 3, мы увидим, что распределения перекрываются больше. Однако, если мы продолжим выбирать больше значений тета в течение достаточного количества раундов, то мы сможем заметить, что доля значений тета для фильма 3 > доля значений тета для фильма 2, и TS будет иметь достаточно информации, чтобы заключить, что фильм 3 является наилучшим “действием” для выполнения. В целом, это также объясняет, почему чем более различны неизвестные истинные распределения, тем меньше раундов экспериментов требуется TS для определения наиболее оптимального действия или варианта.

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

Обновление распределения

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

Этот простой и интерпретируемый метод обновления параметров является одной из причин популярности Бета-Бернулли в качестве модели TS.

Результат и обсуждение

Вернемся к сценарию, изложенному в начале статьи. Мы находимся на пути угадывания, какой из 3 фильмов наиболее оптимален для рекомендации мне, при условии, что есть фильм, который мне нравится на 100%, фильм, на который у меня 70% шанс клика, и другой, который я выбираю только с 5% вероятностью (опять же, TS не знает об этом). В первой строке показаны две разные начальные точки для симуляции, что позволяет нам увидеть, сможем ли мы получить одинаковые конечные результаты с разными начальными предыдущими предположениями.

Рисунок 6 Симуляции TS с разным количеством раундов T = 5, 10, 20. Бета-распределения представляют предположения TS о моих предпочтениях фильмов в конце эксперимента. Левый столбец: результаты, когда начальное распределение – Бета(1, 1). Правый столбец: результаты, когда начальное распределение – Бета(2, 3)

Из Рисунка 6 видно, что окончательный ответ о том, какой фильм является моим наибольшим предпочтением, это фильм 1 — “ПАРАЗИТ” (извините, поклонники Marvel)!!

Как мы можем видеть, путь исследования двух случаев отличается, при этом начальные предположения Бета(1, 1) приводят к более быстрому приходу к фильму, в который я, полагается, наиболее заинтересован. Достаточно всего T=10 раундов, чтобы увидеть, что TS явно эксплуатирует фильм 1, что означает, что TS предложил фильм 1 и получил от меня клики, из-за чего его бета-распределение смещается вправо, а значит, сэмплированное значение тета из обновленных распределений превосходит его конкурентов и результатом является эксплуатация. Эта эксплуатация уже проявляется с T=5 раундами, но согласно соответствующему графику, между бета-распределениями фильмов 1 и 3 все еще существует значительное перекрытие, их моды не являются полностью различимыми, что означает, что TS все еще не уверен полностью, что фильм 1 является оптимальным действием.

С другой стороны, исходные предположения Beta(2, 3) приводят к тому, что TS требуется больше раундов, чтобы добраться до фильма 1 (T=20). Даже при T=10 все еще существует много неопределенности между фильмами 1 и 3, и наблюдается, что из-за случайности при выборке theta может получиться, что фильм 3 будет использоваться в качестве оптимального варианта. Этот эксперимент показывает, что начальные предварительные знания о каждом действии могут играть роль в том, как быстро обнаруживается оптимальная альтернатива, о чем мы можем подробнее рассказать в будущих статьях.

Строително отметить, что если фактические распределения фильмов практически идентичны (скажем, если у фильма 1 и 3 соотношение кликов составляет 100% и 98% соответственно), то TS весьма вероятно не сможет идентифицировать оптимальное действие, потому что пропорция выбранных тета из одного распределения превысит те из другого. Таким образом, если по случайности фильм 3 окажется имеющим больше “больших тет”, тогда TS будет больше использовать этот вариант, что приведет к тому, что он будет неправильно определен как оптимальное действие.

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

Вывод

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

Ссылки:

[1] Каковы потенциальные риски и вызовы рекомендательных систем в различных областях и контекстах?

[2] Рекомендательные системы и их этические проблемы

[3] Когда лучше предпочесть “Томпсоновскую выборку” A/B-тестам