Telegram Group & Telegram Channel
Recommender Systems with Generative Retrieval [2023] - наконец-то генеративные рекомендации?

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

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

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

Но к этому можно подойти и с другой стороны. Пусть каждый документ представлен вектором. Может ли какая-нибудь мощная модель гененировать вектор? Напрямую делать это нельзя - mse-лоссы вроде как плохо работают в таком сетапе.

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

Вкратце о VQ-VAE - вместо того, чтобы обучать скрытое представление малой размерности, мы обучаем N эмбеддингов - сodebook. Получая входной вектор, мы находим ближайший к нему в таблице, его индекс и будет скрытым представлением. Декодированием будет просто взятие нужного вектора из сodebook. Это всё, конечно, недифференцируемо, но на такой случай есть старый добрый метод - забить хер и использовать Straight Through Estimator.

В статье используют RQ-VAE - много codebook-ов, после каждого из которых мы вычитаем из входа ближайший вектор из codebook-а и затем подаём в следующий. Таким образом, каждый айтем они кодируют набором из K чисел. Утверждается, что проблемы с декодированием набора чисел в номер документа несущественны.

Также там сравнивают с более простым методом дискретизации эмбеддингов. Согласно нему, мы проводим случайные гиперплоскости в пространстве эмбеддингов и записываем, с какой стороны от каждой из них оказался айтем. Получившиеся N бит - это и есть новый номер айтема. Метод в 100 раз проще, но по результатам хуже.

У нас с коллегами возникли вопросы по применению всей этой системы в реальном мире. Главный из них - что делать, если векторные представления айтемов меняются со временем? Переобучая / дообучая RQ-VAE на ходу, нам нужно пересоздавать все дискретные представления айтемов, и каждый раз заново перестраивать весь датасет. А это фу.

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

@knowledge_accumulator



group-telegram.com/knowledge_accumulator/235
Create:
Last Update:

Recommender Systems with Generative Retrieval [2023] - наконец-то генеративные рекомендации?

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

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

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

Но к этому можно подойти и с другой стороны. Пусть каждый документ представлен вектором. Может ли какая-нибудь мощная модель гененировать вектор? Напрямую делать это нельзя - mse-лоссы вроде как плохо работают в таком сетапе.

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

Вкратце о VQ-VAE - вместо того, чтобы обучать скрытое представление малой размерности, мы обучаем N эмбеддингов - сodebook. Получая входной вектор, мы находим ближайший к нему в таблице, его индекс и будет скрытым представлением. Декодированием будет просто взятие нужного вектора из сodebook. Это всё, конечно, недифференцируемо, но на такой случай есть старый добрый метод - забить хер и использовать Straight Through Estimator.

В статье используют RQ-VAE - много codebook-ов, после каждого из которых мы вычитаем из входа ближайший вектор из codebook-а и затем подаём в следующий. Таким образом, каждый айтем они кодируют набором из K чисел. Утверждается, что проблемы с декодированием набора чисел в номер документа несущественны.

Также там сравнивают с более простым методом дискретизации эмбеддингов. Согласно нему, мы проводим случайные гиперплоскости в пространстве эмбеддингов и записываем, с какой стороны от каждой из них оказался айтем. Получившиеся N бит - это и есть новый номер айтема. Метод в 100 раз проще, но по результатам хуже.

У нас с коллегами возникли вопросы по применению всей этой системы в реальном мире. Главный из них - что делать, если векторные представления айтемов меняются со временем? Переобучая / дообучая RQ-VAE на ходу, нам нужно пересоздавать все дискретные представления айтемов, и каждый раз заново перестраивать весь датасет. А это фу.

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

@knowledge_accumulator

BY Knowledge Accumulator




Share with your friend now:
group-telegram.com/knowledge_accumulator/235

View MORE
Open in Telegram


Telegram | DID YOU KNOW?

Date: |

Soloviev also promoted the channel in a post he shared on his own Telegram, which has 580,000 followers. The post recommended his viewers subscribe to "War on Fakes" in a time of fake news. The account, "War on Fakes," was created on February 24, the same day Russian President Vladimir Putin announced a "special military operation" and troops began invading Ukraine. The page is rife with disinformation, according to The Atlantic Council's Digital Forensic Research Lab, which studies digital extremism and published a report examining the channel. The next bit isn’t clear, but Durov reportedly claimed that his resignation, dated March 21st, was an April Fools’ prank. TechCrunch implies that it was a matter of principle, but it’s hard to be clear on the wheres, whos and whys. Similarly, on April 17th, the Moscow Times quoted Durov as saying that he quit the company after being pressured to reveal account details about Ukrainians protesting the then-president Viktor Yanukovych. If you initiate a Secret Chat, however, then these communications are end-to-end encrypted and are tied to the device you are using. That means it’s less convenient to access them across multiple platforms, but you are at far less risk of snooping. Back in the day, Secret Chats received some praise from the EFF, but the fact that its standard system isn’t as secure earned it some criticism. If you’re looking for something that is considered more reliable by privacy advocates, then Signal is the EFF’s preferred platform, although that too is not without some caveats. Russian President Vladimir Putin launched Russia's invasion of Ukraine in the early-morning hours of February 24, targeting several key cities with military strikes.
from cn


Telegram Knowledge Accumulator
FROM American