newsmode
search
Меню
arrow_back Назад

Reinforcement Learning for Recommendations and Search

auto_awesomeКраткое саммари

Эжен Янь разбирает применение обучения с подкреплением (RL) в рекомендательных системах и поиске. Обычные рекомендательные системы максимизируют сиюминутную награду (клики/покупки), переоценивают популярность товаров, плохо исследуют новые объекты (проблема холодного старта) и не справляются с частым появлением нового контента (новости, TikTok). RL помогает оптимизировать долгосрочные награды, балансировать исследование и эксплуатацию и обучаться онлайн. Автор рассматривает контекстные бандиты (Yahoo для новостей, Netflix для персонализации обложек), value-based методы на основе DQN (JD с негативной обратной связью, Microsoft с долгосрочной активностью пользователя и весом 0.05, ByteDance с раздельными DQN для рекомендаций и рекламы) и policy-based подходы (Google REINFORCE для YouTube с Chaos Free RNN и исследованием по Больцману), а также actor-critic. Ключевой вывод: начинать стоит с контекстных бандитов, далее базой служат DQN, но особое внимание нужно уделять off-policy оценке.

Reinforcement Learning for Recommendations and Search

Обучение с подкреплением для рекомендаций и поиска

[ teardown recsys deeplearning ] · 13 min read

[ teardown recsys deeplearning ] · 13 мин чтения

Most recommendation systems learn user preferences and item popularity from historical data, to retrain models at periodic intervals. This comes with a few downsides.

Большинство рекомендательных систем изучают предпочтения пользователей и популярность товаров на основе исторических данных, переобучая модели через определённые интервалы. У этого есть несколько недостатков.

First, they’re designed to maximize the immediate reward of making users click or purchase, and don’t consider long-term rewards such as user activeness. Furthermore, they tend to adopt a greedy approach and overemphasize item popularity, neglecting to explore new items (i.e., cold-start problem). Finally, they don’t work well when new items are frequently added (e.g., news articles, TikTok/YouTube, etc).

Во-первых, они спроектированы так, чтобы максимизировать сиюминутную награду — заставить пользователей кликнуть или совершить покупку, — и не учитывают долгосрочные награды, такие как активность пользователя. Кроме того, они склонны к жадному подходу и переоценивают популярность товаров, пренебрегая исследованием новых объектов (т. е. проблема холодного старта). Наконец, они плохо работают, когда часто добавляются новые объекты (например, новостные статьи, TikTok/YouTube и т. д.).

One way to address this is via reinforcement learning. RL can learn to optimize for long-term rewards, balance exploration and exploitation, and continuously learn online. Here, we explore various reinforcement learning approaches for recommendation systems, including bandits, value-based methods, and policy-based methods.

Один из способов решить эту проблему — обучение с подкреплением. RL умеет оптимизировать долгосрочные награды, балансировать между исследованием и эксплуатацией и непрерывно обучаться онлайн. Здесь мы рассмотрим различные подходы обучения с подкреплением для рекомендательных систем, включая бандиты, value-based методы и policy-based методы.

Contextual bandits: Multi-armed bandits with context

Контекстные бандиты: многорукие бандиты с контекстом

Multi-armed bandits are a form of classical reinforcement learning. They try to balance exploration and exploitation by exploring new actions to learn what the potential reward is, and then exploiting the current best action to maximize reward. The goal is to learn about and choose actions that maximize total reward (aka minimize regret).

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

Contextual bandits take it a step further—they collect and observe the context before each action, and choose actions based on the context. They learn about how actions and context affect reward. In the case of recommendations and search, the context would be data we have about the customer (e.g., demographics, device, indicated/historical preferences) and environment (e.g., day of week, time of day).

Контекстные бандиты идут на шаг дальше — они собирают и наблюдают контекст перед каждым действием и выбирают действия на основе контекста. Они изучают, как действия и контекст влияют на награду. В случае рекомендаций и поиска контекстом будут данные о клиенте (например, демография, устройство, указанные/исторические предпочтения) и окружении (например, день недели, время суток).

Yahoo shared about using a contextual bandit for recommending news articles. While regular bandits only learn on features specific to each arm (i.e., disjoint linear models), their approach uses features—such as user-article cross features—that are shared across all arms (i.e., hybrid linear models). Experiments showed that this allowed click-through rate information from one article to be learned and applied to other articles (i.e., transfer learning)—this was not possible with disjoint linear models.

Yahoo рассказали об использовании контекстного бандита для рекомендации новостных статей. В то время как обычные бандиты обучаются только на признаках, специфичных для каждой руки (т. е. раздельные линейные модели), их подход использует признаки — такие как кросс-признаки пользователь-статья, — которые являются общими для всех рук (т. е. гибридные линейные модели). Эксперименты показали, что это позволило информации о click-through rate одной статьи быть изученной и применённой к другим статьям (т. е. трансферное обучение) — что было невозможно с раздельными линейными моделями.

For features, users were represented by 1,193 categorical features including demographics (age, gender), geography (locations, US states), and behavior (binary categories that summarize news consumption history). News articles were represented by 83 categorical features such as URL category (inferred from URL) and editor categories (manually tagged by human editors).

В качестве признаков пользователи были представлены 1193 категориальными признаками, включая демографию (возраст, пол), географию (местоположения, штаты США) и поведение (бинарные категории, обобщающие историю потребления новостей). Новостные статьи были представлены 83 категориальными признаками, такими как категория URL (выведенная из URL) и редакторские категории (вручную размеченные редакторами-людьми).

To reduce dimensionality, they projected user features into article categories and then clustered users with similar preferences. The same technique was also applied to news article features. This resulted in user and article features that were six dimensions each. To create user-article cross features, they computed the outer product of user and article features, leading to a 36-dimension vector—this puts the hybrid in hybrid linear models.

Чтобы снизить размерность, они проецировали признаки пользователей в категории статей, а затем кластеризовали пользователей со схожими предпочтениями. Та же техника была применена и к признакам новостных статей. В результате признаки пользователей и статей стали по шесть измерений каждый. Чтобы создать кросс-признаки пользователь-статья, они вычислили внешнее произведение признаков пользователя и статьи, что привело к 36-мерному вектору — это и делает «гибридными» гибридные линейные модели.

Evaluation was tricky as they only had offline data that was collected via a different policy (i.e., another recommender was in production when the data was collected, aka off-policy evaluation). Thus, they assumed that individual events were independent and identically distributed, and that the policy used to gather the logged data chose each arm uniformly at random. (They had a “learning bucket” to which some users were randomly assigned to. Users in the learning bucket were served articles randomly.)

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

Their policy evaluator takes in the learned policy and logged policy. If the learned policy chose the same arm as the logged policy, the event is retained and added to the history, and the payoff is updated. If the learned policy selects a different arm, then the event is ignored and the algorithm proceeds to the next event without any change in state.

Их оценщик политики принимает на вход обученную политику и логированную политику. Если обученная политика выбрала ту же руку, что и логированная политика, событие сохраняется и добавляется в историю, а выигрыш обновляется. Если обученная политика выбирает другую руку, то событие игнорируется, и алгоритм переходит к следующему событию без какого-либо изменения состояния.

Netflix also used contextual bandits to personalize movie images on the home page. Why contextual bandits? They explained that batch machine learning approaches require time to collect data, train the model, and AB test, during which members do not benefit from the better experience (i.e., regret). To reduce regret, they moved towards online machine learning and adopted contextual bandits to continuously explore and learn about the best recommendation for each customer.

Netflix также использовали контекстные бандиты для персонализации изображений фильмов на главной странице. Почему контекстные бандиты? Они объяснили, что пакетные подходы машинного обучения требуют времени на сбор данных, обучение модели и AB-тестирование, в течение которого участники не получают улучшенного опыта (т. е. сожаление). Чтобы снизить сожаление, они перешли к онлайн-машинному обучению и приняли контекстные бандиты, чтобы непрерывно исследовать и узнавать лучшую рекомендацию для каждого клиента.

They started with a (non-contextual) multi-armed bandit to find the single best artwork for all users. Then, it progressed to contextual bandits to personalize images for each user. The bandit can choose from a set of images for each show (i.e., action) and observe the number of minutes the user played the show after being impressed with the image (i.e., reward). It also has information about user attributes (e.g., titles played, genres played, country, language preferences), day of week, time of day, etc. (i.e., context).

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

They shared several bandit models, such as a greedy policy (via supervised regression model), epsilon greedy, LinUCB, and Thompson Sampling but weren’t specific about which was used in production (probably an ensemble or something that’s updated frequently). The evaluation approach was similar to Yahoo’s—I’ve written about it in more detail here.

Они рассказали о нескольких моделях бандитов, таких как жадная политика (через регрессионную модель с учителем), epsilon-greedy, LinUCB и сэмплирование Томпсона, но не уточнили, какая использовалась в продакшене (вероятно, ансамбль или что-то, что часто обновляется). Подход к оценке был похож на подход Yahoo — я писал об этом подробнее здесь.

Value-based: Learning value for each state-action pair

Value-based: изучение ценности для каждой пары состояние-действие

In reinforcement learning, value-based methods learn the optimal value function. This is either a state function (mapping the state to a value) or a state-action function (mapping the state-action to a value). Using the value function, the agent acts by choosing the action that has the highest value in each state

В обучении с подкреплением value-based методы изучают оптимальную функцию ценности. Это либо функция состояния (отображающая состояние в ценность), либо функция состояния-действия (отображающая состояние-действие в ценность). Используя функцию ценности, агент действует, выбирая действие с наивысшей ценностью в каждом состоянии

JD shared about using deep Q-networks (DQN) and negative feedback for e-commerce recommendations. They shared that items that users skip (i.e., not click) provide useful signal about user preferences and should also be incorporated into recommender systems—a system with only positive items will not change its state or update its strategy when users skip the recommended items.

JD рассказали об использовании глубоких Q-сетей (DQN) и негативной обратной связи для рекомендаций в e-commerce. Они отметили, что объекты, которые пользователи пропускают (т. е. не кликают), несут полезный сигнал о предпочтениях пользователя и также должны учитываться в рекомендательных системах — система, работающая только с позитивными объектами, не изменит своё состояние и не обновит стратегию, когда пользователи пропускают рекомендованные объекты.

Thus, they defined the state of their Markov decision process (MDP) to include negative items. Their MDP has two separate states: State+ (previous N items that users clicked or purchased) and State- (previous N items that users skipped). For the transition, if users click/purchase the recommended item, State+ is updated by not State-; if users skip the item, State- is updated but not State+.

Поэтому они определили состояние своего марковского процесса принятия решений (MDP) так, чтобы включить негативные объекты. Их MDP имеет два отдельных состояния: State+ (предыдущие N объектов, которые пользователи кликнули или купили) и State- (предыдущие N объектов, которые пользователи пропустили). Что касается перехода, если пользователи кликают/покупают рекомендованный объект, обновляется State+, но не State-; если пользователи пропускают объект, обновляется State-, но не State+.

As input for the DQN, gated recurrent units (GRUs) encode the sequence of positive and negative events into S+ and S- embeddings. These embeddings are then concatenated with the candidate item (a). The first few hidden layers (for S+ and S-) are separated, the intuition is that we want to recommend items similar to the clicked/purchased items, but different from the skipped items. Thus, separating the first few hidden layers helps with capturing the distinct contributions of the positive and negative feedback.

В качестве входа для DQN управляемые рекуррентные блоки (GRU) кодируют последовательность позитивных и негативных событий в эмбеддинги S+ и S-. Затем эти эмбеддинги конкатенируются с кандидатом-объектом (a). Первые несколько скрытых слоёв (для S+ и S-) разделены; интуиция в том, что мы хотим рекомендовать объекты, похожие на кликнутые/купленные, но отличающиеся от пропущенных. Таким образом, разделение первых скрытых слоёв помогает уловить различный вклад позитивной и негативной обратной связи.

JD's DQN to recommend items based on positive and negative events (source)

DQN от JD для рекомендации объектов на основе позитивных и негативных событий (источник)

To reduce computation cost, they have a prior candidate retrieval step that reduces the search space. Candidates are selected by finding the N most similar items for the past M items that users clicked and purchased. These candidates are then passed into the DQN as potential actions for ranking.

Чтобы снизить вычислительные затраты, у них есть предварительный шаг отбора кандидатов, который сокращает пространство поиска. Кандидаты выбираются путём поиска N наиболее похожих объектов для последних M объектов, которые пользователи кликнули и купили. Затем эти кандидаты передаются в DQN как потенциальные действия для ранжирования.

Microsoft also adopted a DQN for news recommendations. For features, they had:

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

  • News features: 417 one-hot features such as provider, ranking, entity name, category, topic category, and historical click counts
  • User features: Attributes of features that users clicked on in the last 1 hour, 6 hours, 24 hours, 1 week, and 1 year, totaling 413 x 5 = 2065 features
  • User-news features: 25 features that describe the interaction between the user and specific news (e.g., frequency of entity, category, topic, provider)
  • Context features: 32 features such as time, day, freshness of news (time between recommendation and news published)
  • Признаки новостей: 417 one-hot признаков, таких как провайдер, ранжирование, имя сущности, категория, тематическая категория и историческое число кликов. Признаки пользователя: атрибуты признаков, на которые пользователи кликали за последний 1 час, 6 часов, 24 часа, 1 неделю и 1 год, в сумме 413 x 5 = 2065 признаков. Признаки пользователь-новость: 25 признаков, описывающих взаимодействие между пользователем и конкретной новостью (например, частота сущности, категории, темы, провайдера). Контекстные признаки: 32 признака, такие как время, день, свежесть новости (время между рекомендацией и публикацией новости)

    The DQN distinguishes between the four types of features. User and context features are considered state features while all features are considered action features. The intuition is that the reward for taking an action is related to all features, while the reward relevant to user attributes is impacted by user and context features only. Thus, the Q function is divided into value function (state features only) and advantage function (all features).

    DQN различает четыре типа признаков. Признаки пользователя и контекста считаются признаками состояния, тогда как все признаки считаются признаками действия. Интуиция в том, что награда за совершение действия связана со всеми признаками, тогда как награда, относящаяся к атрибутам пользователя, зависит только от признаков пользователя и контекста. Таким образом, Q-функция делится на функцию ценности (только признаки состояния) и функцию преимущества (все признаки).

    Microsofts's DQN for news recommendations (source)

    DQN от Microsoft для рекомендаций новостей (источник)

    For reward, they combined (immediate) click-based reward and (long-term) user activeness reward. They reasoned that click metrics are only part of user feedback, and that recommendation systems should also consider whether the user will return to the application. User activeness was modeled via survival models and combined with click reward to get total reward. Nonetheless, user activeness reward had a low weight of 0.05.

    Что касается награды, они объединили (сиюминутную) награду на основе кликов и (долгосрочную) награду за активность пользователя. Они рассудили, что метрики кликов — лишь часть обратной связи пользователя, и что рекомендательные системы также должны учитывать, вернётся ли пользователь в приложение. Активность пользователя моделировалась с помощью моделей выживаемости и объединялась с наградой за клики для получения суммарной награды. Тем не менее награда за активность пользователя имела низкий вес 0.05.

    For exploration, they applied dueling bandit gradient descent. Two networks are used to create recommendations: the current network Q and the exploration network Q’. Weights of Q’ are obtained by adding some noise to the weights of Q. The recommendations from Q and Q’ are then interleaved before being served to users. If the items recommended by Q’ get better feedback, the agent updates Q towards Q’. Otherwise, Q remains unchanged.

    Для исследования они применили dueling bandit gradient descent. Используются две сети для создания рекомендаций: текущая сеть Q и сеть исследования Q’. Веса Q’ получаются добавлением некоторого шума к весам Q. Рекомендации от Q и Q’ затем чередуются перед показом пользователям. Если объекты, рекомендованные Q’, получают лучшую обратную связь, агент обновляет Q в сторону Q’. В противном случае Q остаётся неизменной.

    Exploration via Dueling Bandit Gradient Descent (source)

    Исследование через Dueling Bandit Gradient Descent (источник)

    As a final example, we look at ByteDance’s use of separate DQNs for recommendations and advertising. They used a two-level framework to jointly optimize recommendations and ads. The first level generates the list of recommendations to optimize for user experience in the long run. The second level inserts ads into the recommendation list to balance between immediate advertising revenue and the negative influence of ads on long-term user experience.

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

    Their recommendation DQN considers the browsing history of items and ads separately. These item and ad sequences go through two GRUs to encode recommendation and ad preferences (similar to JD’s approach), before being concatenated with the context (e.g., app version, operating system, feed type)—this represents the state. Potential actions (i.e., item recommendations) are represented via embeddings. Given the state and a list of possible actions, the DQN outputs the Q-value of each state-action pair.

    Их рекомендательный DQN рассматривает историю просмотров объектов и рекламы по отдельности. Эти последовательности объектов и рекламы проходят через два GRU, чтобы закодировать предпочтения по рекомендациям и рекламе (подобно подходу JD), прежде чем конкатенироваться с контекстом (например, версия приложения, операционная система, тип ленты) — это представляет состояние. Потенциальные действия (т. е. рекомендации объектов) представлены через эмбеддинги. Получив состояние и список возможных действий, DQN выдаёт Q-значение каждой пары состояние-действие.

    ByteDance's cascading DQN for recommendations (source)

    Каскадный DQN от ByteDance для рекомендаций (источник)

    The advertising DQN is tricker. It needs to return three outputs: whether or not to include an ad, which ad to insert, and which position to insert it. However, these outputs are interdependent and a traditional DQN wouldn’t work. Thus, they designed a novel DQN that outputs the Q-value, specific to an ad, for all possible locations. They also added another unit in the final layer (index=0) to represent the Q-value of not inserting an ad. This design lets the DQN consider the state and action and return all three outputs in a single pass.

    Рекламный DQN сложнее. Он должен вернуть три выхода: включать ли рекламу, какую рекламу вставить и в какую позицию её вставить. Однако эти выходы взаимозависимы, и традиционный DQN не сработал бы. Поэтому они разработали новый DQN, который выдаёт Q-значение, специфичное для рекламы, для всех возможных позиций. Они также добавили ещё один элемент в финальном слое (index=0), чтобы представить Q-значение невставки рекламы. Такая конструкция позволяет DQN учитывать состояние и действие и возвращать все три выхода за один проход.

    ByteDance's DQN for advertising (source)

    DQN от ByteDance для рекламы (источник)

    The advertising DQN uses the same method as the recommendation DQN to get the state (via GRUs on item and ad sequences). The output of the recommendation DQN is also included in the state (of the ad DQN). Potential ads are represented via embeddings.

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

    Similar to Microsoft’s approach, the Q function is separated into value and advantage functions, where the value function doesn’t consider the ad input. The DQN outputs the Q-value of all ad-location pairs, a proxy for long-term influence of ads on user experience. This is then sent to the bidding system which trades off between immediate ad revenue and long-term Q-values.

    Подобно подходу Microsoft, Q-функция разделена на функции ценности и преимущества, где функция ценности не учитывает вход рекламы. DQN выдаёт Q-значение всех пар реклама-позиция, что является прокси для долгосрочного влияния рекламы на пользовательский опыт. Затем это передаётся в систему ставок, которая балансирует между сиюминутным рекламным доходом и долгосрочными Q-значениями.

    Policy-based: Learning actions for each state directly

    Policy-based: прямое изучение действий для каждого состояния

    Relative to value-based methods, policy-based methods learn the policy function that maps the state to action directly, without having to learn Q-values. As a result, they perform better in continuous and stochastic environments (i.e., no discrete states or actions) and tend to be more stable, given a sufficiently small learning rate.

    По сравнению с value-based методами, policy-based методы изучают функцию политики, которая напрямую отображает состояние в действие, без необходимости изучать Q-значения. В результате они работают лучше в непрерывных и стохастических средах (т. е. без дискретных состояний или действий) и обычно более стабильны при достаточно малой скорости обучения.

    Google shared about using REINFORCE for YouTube recommendations. The input is the sequence of user historical interactions, while the output predicts the next action to take (i.e., which video to recommend).

    Google рассказали об использовании REINFORCE для рекомендаций YouTube. Входом служит последовательность исторических взаимодействий пользователя, а выход предсказывает следующее действие (т. е. какое видео рекомендовать).

    For the main policy (π), the input sequence is embedded via an RNN. They tried a variety of RNNs (e.g., LSTMs, GRUs) and ended up using a Chaos Free RNN due to its stability and computation efficiency. The RNN takes in the sequence of user events up till time step t and encodes it into the user state for the next time step (t+1). This is then concatenated with the context of time step t+1.

    Для основной политики (π) входная последовательность эмбеддится через RNN. Они пробовали разные RNN (например, LSTM, GRU) и в итоге использовали Chaos Free RNN из-за её стабильности и вычислительной эффективности. RNN принимает последовательность событий пользователя вплоть до шага t и кодирует её в состояние пользователя для следующего шага (t+1). Затем это конкатенируется с контекстом шага t+1.

    The final softmax layer predicts the probability of each action (i.e., videos to recommend)—this is similar to a previous implementation which also had a softmax output layer. Given that the softmax contains millions of possible actions, they adopt sampled softmax during training. During serving, approximate nearest neighbors (ANN) is applied to retrieve the top actions.

    Финальный слой softmax предсказывает вероятность каждого действия (т. е. видео для рекомендации) — это похоже на предыдущую реализацию, в которой также был выходной слой softmax. Учитывая, что softmax содержит миллионы возможных действий, во время обучения они применяют sampled softmax. Во время обслуживания применяется приближённый поиск ближайших соседей (ANN) для извлечения топ-действий.

    Google's REINFORCE main policy with separate behavioral policy head (source)

    Основная политика REINFORCE от Google с отдельной головой поведенческой политики (источник)

    They also estimate the behavioral policy (β). They cite difficulty with directly logging the behavioral policy as there are multiple agents in their system. Thus, for each state-action pair, the behavioral head estimates the probability that the mix of behavioral policies will choose that action using another softmax. From the figure above, they reuse the user-state and model the behavioral policy with a separate head. To prevent the behavioral head from interfering with the user state of the main policy π, they block the gradient from flowing back to the RNN.

    Они также оценивают поведенческую политику (β). Они указывают на трудность прямого логирования поведенческой политики, поскольку в их системе несколько агентов. Поэтому для каждой пары состояние-действие поведенческая голова оценивает вероятность того, что смесь поведенческих политик выберет это действие, используя ещё один softmax. Как видно из рисунка выше, они переиспользуют состояние пользователя и моделируют поведенческую политику с помощью отдельной головы. Чтобы поведенческая голова не вмешивалась в состояние пользователя основной политики π, они блокируют обратное распространение градиента в RNN.

    Boltzmann exploration was used to minimize the negative impact on user experience. They shared that brute force exploration (e.g., e-greedy) was not viable as it could result in inappropriate recommendations and poor user experience. After the top M candidates are retrieved via an ANN, the logits (unscaled distances?) are fed into a smaller softmax to normalize the probabilities before sampling from the distribution. Exploration and exploitation are balanced by recommending the top K most probable items and sampling the rest from the remaining M - K items.

    Для минимизации негативного влияния на пользовательский опыт использовалось исследование по Больцману. Они отметили, что грубое исследование (например, e-greedy) было неприменимо, так как могло привести к неуместным рекомендациям и плохому пользовательскому опыту. После извлечения топ-M кандидатов через ANN логиты (немасштабированные расстояния?) подаются в меньший softmax для нормализации вероятностей перед сэмплированием из распределения. Исследование и эксплуатация балансируются путём рекомендации топ-K наиболее вероятных объектов и сэмплирования остальных из оставшихся M - K объектов.

    Actor-Critic: Combining value-based and policy-based

    Actor-Critic: объединение value-based и policy-based

    Actor-critic combines the best of value-based and policy-based methods by splitting the model into two, one for computing the action based on state, and another to produce the Q-value of the state-action. The (policy-based) actor takes state as input and outputs the best action, learning the optimal policy and controlling how the agent behaves. The (value-based) critic then evaluates the action by computing the value function and providing feedback, to the actor, on how good the action is.

    Actor-critic объединяет лучшее из value-based и policy-based методов, разделяя модель на две: одну для вычисления действия на основе состояния, и другую для получения Q-значения состояния-действия. (Policy-based) актор принимает состояние на вход и выдаёт лучшее действие, изучая оптимальную политику и управляя тем, как ведёт себя агент. (Value-based) критик затем оценивает действие, вычисляя функцию ценности и предоставляя актору обратную связь о том, насколько хорошо действие.

    I came across several examples of actor-critic used in recommendations and search. We won’t be discussing them in this piece and I recommend you read them as required.

    Мне встретилось несколько примеров использования actor-critic в рекомендациях и поиске. Мы не будем обсуждать их в этой статье, и я рекомендую вам ознакомиться с ними по мере необходимости.

    Conclusion

    Заключение

    Are you trying to apply reinforcement learning for recommendation problems? If so, contextual bandits might be a good place to start—they’re relatively simpler to implement and might not need as much data as deep learning approaches. Beyond contextual bandits, DQNs seem to be the go-to baseline.

    Вы пытаетесь применить обучение с подкреплением для задач рекомендаций? Если да, контекстные бандиты могут быть хорошей отправной точкой — их относительно проще реализовать, и им может не понадобиться столько данных, сколько подходам глубокого обучения. Помимо контекстных бандитов, DQN, похоже, являются базой по умолчанию.

    Nonetheless, regardless of which approach you adopt, pay extra attention to how off-policy evaluation is done—having the right evaluation framework is more than half the battle won. Here’s a good tutorial on counterfactual evaluation. Also, see this paper on Simpson’s Paradox in offline evaluation for recommendations.

    Тем не менее, независимо от того, какой подход вы выберете, уделите особое внимание тому, как выполняется off-policy оценка — наличие правильной системы оценки значит больше половины успеха. Вот хороший туториал по counterfactual-оценке. Также см. эту статью о парадоксе Симпсона в офлайн-оценке для рекомендаций.

    Did I miss anything? Please reach out!

    Я что-то упустил? Пожалуйста, напишите мне!

    Conventional RecSys have downsides such as:
    • Maxing short-term (clicks) over long-term reward
    • Overemphasizing item popularity and not exploring
    • Can't keep up with frequent new items (news, TikTok)

    Let's explore how reinforcement learning can help.https://t.co/DfZamMhOfd

    — Eugene Yan (@eugeneyan) September 8, 2021

    У традиционных RecSys есть недостатки, такие как:• Максимизация краткосрочной (клики) награды в ущерб долгосрочной• Переоценка популярности объектов и отсутствие исследования• Неспособность угнаться за частым появлением новых объектов (новости, TikTok)Давайте разберём, как может помочь обучение с подкреплением.https://t.co/DfZamMhOfd— Eugene Yan (@eugeneyan) 8 сентября 2021

    References

    Ссылки

  • A Contextual-Bandit Approach to Personalized News Article Recommendation
  • Selecting the best artwork for videos through A/B testing
  • Artwork Personalization at Netflix
  • Recommendations with Negative Feedback via Deep Reinforcement Learning
  • DRN: A Deep Reinforcement Learning Framework for News Recommendation
  • Jointly Learning to Recommend and Advertise
  • Top-K Off-Policy Correction for a REINFORCE Recommender System
  • A recurrent neural network without chaos
  • Deep Neural Networks for YouTube Recommendations
  • Reinforcement Learning to Rank in E-Commerce Search Engine
  • Whole-Chain Recommendations
  • Deep Reinforcement Learning for Page-wise Recommendations
  • SIGIR 2016 Tutorial on Counterfactual Evaluation and Learning
  • The Simpson’s Paradox in the Offline Evaluation of Recommendation Systems
  • A Contextual-Bandit Approach to Personalized News Article Recommendation Selecting the best artwork for videos through A/B testing Artwork Personalization at Netflix Recommendations with Negative Feedback via Deep Reinforcement Learning DRN: A Deep Reinforcement Learning Framework for News Recommendation Jointly Learning to Recommend and Advertise Top-K Off-Policy Correction for a REINFORCE Recommender System A recurrent neural network without chaos Deep Neural Networks for YouTube Recommendations Reinforcement Learning to Rank in E-Commerce Search Engine Whole-Chain Recommendations Deep Reinforcement Learning for Page-wise Recommendations SIGIR 2016 Tutorial on Counterfactual Evaluation and Learning The Simpson’s Paradox in the Offline Evaluation of Recommendation Systems

    If you found this useful, please cite this write-up as:

    Если это оказалось полезным, пожалуйста, цитируйте эту заметку так:

    Yan, Ziyou. (Sep 2021). Reinforcement Learning for Recommendations and Search. eugeneyan.com. https://eugeneyan.com/writing/reinforcement-learning-for-recsys-and-search/.

    Yan, Ziyou. (Sep 2021). Reinforcement Learning for Recommendations and Search. eugeneyan.com. https://eugeneyan.com/writing/reinforcement-learning-for-recsys-and-search/.

    or

    или

    @article{yan2021reinforcement, title = {Reinforcement Learning for Recommendations and Search}, author = {Yan, Ziyou}, journal = {eugeneyan.com}, year = {2021}, month = {Sep}, url = {https://eugeneyan.com/writing/reinforcement-learning-for-recsys-and-search/} }

    @article{yan2021reinforcement, title = {Reinforcement Learning for Recommendations and Search}, author = {Yan, Ziyou}, journal = {eugeneyan.com}, year = {2021}, month = {Sep}, url = {https://eugeneyan.com/writing/reinforcement-learning-for-recsys-and-search/} }



    Join 11,800+ readers getting updates on machine learning, RecSys, LLMs, and engineering.

    Присоединяйтесь к 11 800+ читателям, получающим обновления о машинном обучении, RecSys, LLM и инженерии.