RecSys Summer School, часть 4.
Michael Ekstrand (которого я уже упоминал в контексте прошлого рексиса) выступил дважды. Одно выступление было вечернее, вне основной программы (как разогрев перед пивной вечеринкой). Сначала он сослался на книжку Long tail от Chris Andersen. Я в своих лекциях часто упоминаю, что проблема тяжелого хвоста (в первую очередь айтемов) — это фундаментальная проблема рекомендаций, которую мы пытаемся решать, и Майкл это очень хорошо подсветил. Грубо говоря, до существования рексистем количество реально потребляемого контента было довольно маленькое. Все слушали, читали, смотрели примерно одно и то же. И без рекомендательных систем “тяжелый хвост” контента банально никто бы не заметил. Вернее, не заметил бы никто из тех, кому бы он понравился. Это своего рода магия, что мы позволяем тяжелому хвосту нормально реализовываться :)
Был и другой пример необходимости персонализации — в социальных сетях можно довольно легко сделать рекомендательную ленту, показывая все посты друзей в хронологическом порядке. Но тогда если ваш лучший друг 6 часов назад выложил свой великолепный пирог с дня рождения, вы с большой вероятностью об этом никогда не узнаете, потому что за эти 6 часов ваша лента уже забьется кучей других постов. И здесь возникает необходимость персонализации — показывать вам в первую очередь посты от близких друзей, делать так, чтобы вы могли увидеть даже слегка устаревшие посты от них при заходе в ленту.
Еще упоминался термин “Enshittification” (от Cory Doctorow) — сначала онлайн-платформа набирает пользовательскую базу, предлагая хорошую функциональность; затем смещает фокус с юзеров на бизнес (рекламодателей, продавцов) и начинает постепенно ронять качество контента; и затем , когда пользователям и бизнесу уже сложно перейти на другую платформу, начинает активно максимизировать прибыль для инвесторов (любой ценой). Майкл это привязал к генеративному AI — раньше рексистемы в том числе помогали налаживать связи между людьми (кто-то напишет блогпост, сделает трек, нарисует картину, и другие люди это увидят; ну и не забываем про соцсети конечно), а сейчас генеративный AI вбирает в себя весь функционал, становясь основным интерфейсом для пользователя. Соответственно, связи между людьми теряются.
Но основная цель рексистем по мнению Майкла — это все же information access, то есть предоставлять людям доступ к информации. Привел интересную аналогию с библиотекарями, которые занимаются примерно тем же самым. И у которых тоже есть вопросы типа “а должны ли мы предоставлять любую информацию, или ее нужно как-то ограничивать?”. Они этот вопрос решают следующим образом — обеспечивать доступ к любой информации действительно нужно (грубо говоря, книги сжигать не нужно), но при этом помогать искать потенциально вредоносный контент (например, таковым они считают контент, которые демократические ценности не поддерживает) — они не обязаны :) В их code of conduct вшита небольшая демократическая политическая повестка. Также Майкл показал code of conduct ACM, в котором, кстати, такой повестки нет совсем (все взгляды одинаково уважаются).
Вторая лекция была более формальная. Понравилось, что Майкл ввел строгое определение bias’а через статистику (через мат ожидание) и сказал, что большая часть статей этот термин используют неправильно, для обозначения какой-то математически нестрогой несправедливости (unfairness).
Разобрали на примере Movielens’а почему типичный рекомендательный датасет bias’нут и не репрезентативен относительно общей популяции:
* он отражает фидбек только тех пользователей, который пользуются самой платформой
* при этом сама платформа довольно специфична (на ней нельзя ничего посмотреть, только поставить рейтинг)
* когда в древние времена собирали соцдем пользователей, основная демография была — мужчины 20+ лет; то есть студенты, которых заставили проставлять рейтинги =)
* средний рейтинг фильмов на платформе — 3.6 - 3.7; он завышен. Мы не смотрим и не проставляем рейтинги тем фильмам, которые нам точно не понравятся. Если бы мы совсем случайно смотрели фильмы, тогда было бы корректней
Michael Ekstrand (которого я уже упоминал в контексте прошлого рексиса) выступил дважды. Одно выступление было вечернее, вне основной программы (как разогрев перед пивной вечеринкой). Сначала он сослался на книжку Long tail от Chris Andersen. Я в своих лекциях часто упоминаю, что проблема тяжелого хвоста (в первую очередь айтемов) — это фундаментальная проблема рекомендаций, которую мы пытаемся решать, и Майкл это очень хорошо подсветил. Грубо говоря, до существования рексистем количество реально потребляемого контента было довольно маленькое. Все слушали, читали, смотрели примерно одно и то же. И без рекомендательных систем “тяжелый хвост” контента банально никто бы не заметил. Вернее, не заметил бы никто из тех, кому бы он понравился. Это своего рода магия, что мы позволяем тяжелому хвосту нормально реализовываться :)
Был и другой пример необходимости персонализации — в социальных сетях можно довольно легко сделать рекомендательную ленту, показывая все посты друзей в хронологическом порядке. Но тогда если ваш лучший друг 6 часов назад выложил свой великолепный пирог с дня рождения, вы с большой вероятностью об этом никогда не узнаете, потому что за эти 6 часов ваша лента уже забьется кучей других постов. И здесь возникает необходимость персонализации — показывать вам в первую очередь посты от близких друзей, делать так, чтобы вы могли увидеть даже слегка устаревшие посты от них при заходе в ленту.
Еще упоминался термин “Enshittification” (от Cory Doctorow) — сначала онлайн-платформа набирает пользовательскую базу, предлагая хорошую функциональность; затем смещает фокус с юзеров на бизнес (рекламодателей, продавцов) и начинает постепенно ронять качество контента; и затем , когда пользователям и бизнесу уже сложно перейти на другую платформу, начинает активно максимизировать прибыль для инвесторов (любой ценой). Майкл это привязал к генеративному AI — раньше рексистемы в том числе помогали налаживать связи между людьми (кто-то напишет блогпост, сделает трек, нарисует картину, и другие люди это увидят; ну и не забываем про соцсети конечно), а сейчас генеративный AI вбирает в себя весь функционал, становясь основным интерфейсом для пользователя. Соответственно, связи между людьми теряются.
Но основная цель рексистем по мнению Майкла — это все же information access, то есть предоставлять людям доступ к информации. Привел интересную аналогию с библиотекарями, которые занимаются примерно тем же самым. И у которых тоже есть вопросы типа “а должны ли мы предоставлять любую информацию, или ее нужно как-то ограничивать?”. Они этот вопрос решают следующим образом — обеспечивать доступ к любой информации действительно нужно (грубо говоря, книги сжигать не нужно), но при этом помогать искать потенциально вредоносный контент (например, таковым они считают контент, которые демократические ценности не поддерживает) — они не обязаны :) В их code of conduct вшита небольшая демократическая политическая повестка. Также Майкл показал code of conduct ACM, в котором, кстати, такой повестки нет совсем (все взгляды одинаково уважаются).
Вторая лекция была более формальная. Понравилось, что Майкл ввел строгое определение bias’а через статистику (через мат ожидание) и сказал, что большая часть статей этот термин используют неправильно, для обозначения какой-то математически нестрогой несправедливости (unfairness).
Разобрали на примере Movielens’а почему типичный рекомендательный датасет bias’нут и не репрезентативен относительно общей популяции:
* он отражает фидбек только тех пользователей, который пользуются самой платформой
* при этом сама платформа довольно специфична (на ней нельзя ничего посмотреть, только поставить рейтинг)
* когда в древние времена собирали соцдем пользователей, основная демография была — мужчины 20+ лет; то есть студенты, которых заставили проставлять рейтинги =)
* средний рейтинг фильмов на платформе — 3.6 - 3.7; он завышен. Мы не смотрим и не проставляем рейтинги тем фильмам, которые нам точно не понравятся. Если бы мы совсем случайно смотрели фильмы, тогда было бы корректней
❤10🔥6
Этика рекомендательных систем от философа-computer scientist’а Erich Prem.
Первая мини-история была следующая: в Америке есть популярный супермаркет Target, который раньше рассылал людям по домам спец предложения, скидки и все такое. В target’е решили, что хорошая идея — делать спец предложения для беременных женщин. Соответственно, в дом, в котором жила со своими родителями 16-летняя девочка, начали постоянно приходить такие спецпредложения (для этой девочки). В один момент отец совсем возмутился, ворвался в target, выразил свое недовольство. А потом оказалось, что она реально была беременна, просто он не знал =)
Дальше был пример, который я тоже люблю приводить — про Тиндер. Что по сути в дейтингах самая успешная рекомендация — это та, после которой пользователю дейтинг больше не нужен :) А это платформе совсем невыгодно, ей нужно растить пользовательскую базу, иначе деньги не заработать. Соответственно, платформе выгодней рекомендовать вам какие-то частичные “матчи”, которые полностью проблему большинства юзеров не решают.
Также обсуждались чат боты. Во-первых, известный случай, когда подросток совершил суицид, чтобы “воссоединиться” с ботом (который, по-моему ролеплеил Денерис Таргариен из игры престолов). Во-вторых, обсуждали должен ли чатбот выдавать инструкцию по созданию бомбы или нет.
Также был следующий фундаментальный кусочек: Erich кратко рассказал про философию Канта (про категорический императив), что в его понимании высшая ценность — это человеческая автономность (читай личная свобода). И затем противопоставил его утилитаризму (которым часто по его мнению руководствуются инженеры). Рассказал такой пример — если пять человек попадут в аварию, и одному из них нужна будет новая почка, другому печень, третьему сердце и так далее, при этом один из них останется абсолютно здоров (отделается сломанной рукой), то с точки зрения утилитаризма нужно органы этого здорового человека пожертвовать остальным. Но мы так не делаем, потому что тогда люди перестанут приходить в больницы со сломанной рукой :)
В его понимании многие вопросы вида “что можно, а что нельзя” сводятся к этому противостоянию философий — считаем ли мы, что личная свобода это самое важное, либо же мы пытаемся максимизировать какое-то общее благо (то есть смотрим на вещи утилитарно).
Отдельные мысли: моральные ценности очень сильно зависят от общества, времени, контекста; что рассматривать человека как какую-то цифровую сущность — это очень сильное упрощение, которое не учитывает существенную часть человеческих чувств и эмоций; что использовать engagement как прокси к чему-то хорошему и полезному для человека опасно. Что противоположностью автономии является манипуляция, контроль.
Упомянул интересный термин — Dark Patterns. Это когда приложение дизайнится таким образом, чтобы побудить пользователя делать не самые полезные для него вещи (например, покупать что-то не целесообразно дорогое).
Последнее — была интересная история про Rene Carmille, которого Erich считает образцовым computer scientist’ом, применявшим свои навыки во благо. Что равняться надо на таких людей, а не на Цукербергов / Илонов Масков. Вроде бы Рене был статистом и работал над машинами, помогавшими идентифицировать людей. Когда немцы захватили Францию, он так хакнул эти машины, чтобы нельзя было выявлять евреев. Таким образом он спас тысячи людей. Но сам, к сожалению, плохой участи не избежал :(
Еще кратко упомяну лекцию про accessibility и inclusion. Вообще Вена — очень доступный город. Например, здесь свободно передвигаются люди на колясках. И лекция была про то же самое — что мы можем сделать с рекомендательными системами, чтобы обеспечить доступ к ним для всех. В Европе не так давно (в июне) приняли акт, по которому все рекомендательные системы обязаны это делать.
Я может быть еще напишу отдельный пост про впечатления от Вены, но в целом — уже впереди сам RecSys! :)
Первая мини-история была следующая: в Америке есть популярный супермаркет Target, который раньше рассылал людям по домам спец предложения, скидки и все такое. В target’е решили, что хорошая идея — делать спец предложения для беременных женщин. Соответственно, в дом, в котором жила со своими родителями 16-летняя девочка, начали постоянно приходить такие спецпредложения (для этой девочки). В один момент отец совсем возмутился, ворвался в target, выразил свое недовольство. А потом оказалось, что она реально была беременна, просто он не знал =)
Дальше был пример, который я тоже люблю приводить — про Тиндер. Что по сути в дейтингах самая успешная рекомендация — это та, после которой пользователю дейтинг больше не нужен :) А это платформе совсем невыгодно, ей нужно растить пользовательскую базу, иначе деньги не заработать. Соответственно, платформе выгодней рекомендовать вам какие-то частичные “матчи”, которые полностью проблему большинства юзеров не решают.
Также обсуждались чат боты. Во-первых, известный случай, когда подросток совершил суицид, чтобы “воссоединиться” с ботом (который, по-моему ролеплеил Денерис Таргариен из игры престолов). Во-вторых, обсуждали должен ли чатбот выдавать инструкцию по созданию бомбы или нет.
Также был следующий фундаментальный кусочек: Erich кратко рассказал про философию Канта (про категорический императив), что в его понимании высшая ценность — это человеческая автономность (читай личная свобода). И затем противопоставил его утилитаризму (которым часто по его мнению руководствуются инженеры). Рассказал такой пример — если пять человек попадут в аварию, и одному из них нужна будет новая почка, другому печень, третьему сердце и так далее, при этом один из них останется абсолютно здоров (отделается сломанной рукой), то с точки зрения утилитаризма нужно органы этого здорового человека пожертвовать остальным. Но мы так не делаем, потому что тогда люди перестанут приходить в больницы со сломанной рукой :)
В его понимании многие вопросы вида “что можно, а что нельзя” сводятся к этому противостоянию философий — считаем ли мы, что личная свобода это самое важное, либо же мы пытаемся максимизировать какое-то общее благо (то есть смотрим на вещи утилитарно).
Отдельные мысли: моральные ценности очень сильно зависят от общества, времени, контекста; что рассматривать человека как какую-то цифровую сущность — это очень сильное упрощение, которое не учитывает существенную часть человеческих чувств и эмоций; что использовать engagement как прокси к чему-то хорошему и полезному для человека опасно. Что противоположностью автономии является манипуляция, контроль.
Упомянул интересный термин — Dark Patterns. Это когда приложение дизайнится таким образом, чтобы побудить пользователя делать не самые полезные для него вещи (например, покупать что-то не целесообразно дорогое).
Последнее — была интересная история про Rene Carmille, которого Erich считает образцовым computer scientist’ом, применявшим свои навыки во благо. Что равняться надо на таких людей, а не на Цукербергов / Илонов Масков. Вроде бы Рене был статистом и работал над машинами, помогавшими идентифицировать людей. Когда немцы захватили Францию, он так хакнул эти машины, чтобы нельзя было выявлять евреев. Таким образом он спас тысячи людей. Но сам, к сожалению, плохой участи не избежал :(
Еще кратко упомяну лекцию про accessibility и inclusion. Вообще Вена — очень доступный город. Например, здесь свободно передвигаются люди на колясках. И лекция была про то же самое — что мы можем сделать с рекомендательными системами, чтобы обеспечить доступ к ним для всех. В Европе не так давно (в июне) приняли акт, по которому все рекомендательные системы обязаны это делать.
Я может быть еще напишу отдельный пост про впечатления от Вены, но в целом — уже впереди сам RecSys! :)
❤24👍9🔥4
ACM RecSys’25, день первый.
1. Больше всего времени я провёл на воркшопе СONSEQUENCES’25. Происхождение названия:
В рамках воркшопа был очень хороший туториал про бандитов для рексистем “Practical Bandits: An Industry Perspective” от авторов из Booking, Netflix, Spotify, Amazon. На ютубе есть запись одноименного туториала с WWW’23. Она двухлетней давности, зато в три раза больше по длительности. Что было на сегодняшнем туториале:
Дали определение контекстуальных бандитов, рассказали про минусы on-policy подходов, рассказали про off-policy методы (про importance weighting, cIPS, SNIPS, DR, etc). Сказали, что on-policy — это “optimism in the face of uncertainty”, что мы выбираем действия, в которых не уверены, надеясь на лучший исход; и что off-policy — это наоборот пессимизм :)
Также сказали, что нужно рандомизировать данные, добавлять рандом к текущей продовой политике (если она детерминированная). Был рассказ про различные способы рандомизации (epsilon-greedy, софтмакс-сэмплирование, упомянули Thompson sampling, сказали прочитать статью Olivier Jeunen с этого рексиса — видимо, вот эту). Также было чуть-чуть про Plaсkett-Luce и Гумбеля. И была байка про то, как с помощью control variates авторы из Амазона диагностировали у себя багу в функционале “Play music” Алексы, что у них часть фидбека не доезжала до модели.
Еще я впервые услышал термин “symbiosis bias”. Так докладчики назвали эффект, когда все тестируемые алгоритмы используют весь трафик для обучения, и из-за этого сравнение становится некорректным. В такой ситуации всегда будет выигрывать более жадная политика, в которой меньше эксплорейшна. Из-за похожей логики мы не можем и в обычном A/B нормально замерять эффект от эксплорейшна. По крайней мере, без таких титанических усилий, как в статье от Google DeepMind Long-Term Value of Exploration.
Еще был кусочек про то, как работать с очень большими пространствами действий.
Я, собственно, очень поверхностно перечислил про что был туториал, если заинтересовал — призываю посмотреть ту самую трехчасовую версию с WWW’23. Лекция этого года тоже наверняка станет доступна, но вероятно не скоро.
Вдогонку, если вас заинтересовала тема counterfactual learning’а, то есть еще один клёвый трехчасовой туториал от Yuta Saito и Thorsten Joachims с RecSys’21 (тык) — подробный рассказ про всевозможные off-policy методы для бандитов.
2. Также уже состоялась первая постерная сессия, на которой были статьи с того же воркшопа CONSEQUENCES. Выделю одну статью — Unidentified and Confounded? Understanding Two-Tower Models for Unbiased Learning to Rank. Пользователи чаще кликают на верхние позиции выдачи из-за position bias’а, и один из способов это побороть — это обучить совместно сумму “bias-башни” и основной модели. Bias-башня при этом на входе использует только позиционные данные, а основная модель их наоборот игнорирует. При обучении используем обе башни, при применении bias-башню отбрасываем. В идеале bias-башня перетягивает на себя весь позиционный bias.
Пару лет назад Google Research в статье Towards Disentangling Relevance and Bias in Unbiased Learning to Rank подсветили следующую проблему — так как позиция в выдаче коррелирует с релевантностью (обычно мы определяем позицию, отранжировав по релевантности), то “bias-башня” начинает перетягивать на себя полезный сигнал, отражающий релевантность. Из-за этого основная модель, которую мы применяем в проде, часть сигнала про релевантность теряет. Чтобы это побороть, предложили использовать дропаут скора bias-башни, или вообще использовать gradient reversal.
Так вот — автор вышеупомянутой статьи утверждает, что они не правы. Что у них неправильные симуляции, и вообще все работает по-другому (а как — читайте в его статье). А еще он процитировал наш старый препринт про трансформер в Маркете :)
1. Больше всего времени я провёл на воркшопе СONSEQUENCES’25. Происхождение названия:
An increasing amount of research understands recommender systems as a decision-making problem, instead of a pure prediction problem. Indeed, this view of the recommendation task makes it clear that recommendation decisions on real-world platforms have consequences.
В рамках воркшопа был очень хороший туториал про бандитов для рексистем “Practical Bandits: An Industry Perspective” от авторов из Booking, Netflix, Spotify, Amazon. На ютубе есть запись одноименного туториала с WWW’23. Она двухлетней давности, зато в три раза больше по длительности. Что было на сегодняшнем туториале:
Дали определение контекстуальных бандитов, рассказали про минусы on-policy подходов, рассказали про off-policy методы (про importance weighting, cIPS, SNIPS, DR, etc). Сказали, что on-policy — это “optimism in the face of uncertainty”, что мы выбираем действия, в которых не уверены, надеясь на лучший исход; и что off-policy — это наоборот пессимизм :)
Также сказали, что нужно рандомизировать данные, добавлять рандом к текущей продовой политике (если она детерминированная). Был рассказ про различные способы рандомизации (epsilon-greedy, софтмакс-сэмплирование, упомянули Thompson sampling, сказали прочитать статью Olivier Jeunen с этого рексиса — видимо, вот эту). Также было чуть-чуть про Plaсkett-Luce и Гумбеля. И была байка про то, как с помощью control variates авторы из Амазона диагностировали у себя багу в функционале “Play music” Алексы, что у них часть фидбека не доезжала до модели.
Еще я впервые услышал термин “symbiosis bias”. Так докладчики назвали эффект, когда все тестируемые алгоритмы используют весь трафик для обучения, и из-за этого сравнение становится некорректным. В такой ситуации всегда будет выигрывать более жадная политика, в которой меньше эксплорейшна. Из-за похожей логики мы не можем и в обычном A/B нормально замерять эффект от эксплорейшна. По крайней мере, без таких титанических усилий, как в статье от Google DeepMind Long-Term Value of Exploration.
Еще был кусочек про то, как работать с очень большими пространствами действий.
Я, собственно, очень поверхностно перечислил про что был туториал, если заинтересовал — призываю посмотреть ту самую трехчасовую версию с WWW’23. Лекция этого года тоже наверняка станет доступна, но вероятно не скоро.
Вдогонку, если вас заинтересовала тема counterfactual learning’а, то есть еще один клёвый трехчасовой туториал от Yuta Saito и Thorsten Joachims с RecSys’21 (тык) — подробный рассказ про всевозможные off-policy методы для бандитов.
2. Также уже состоялась первая постерная сессия, на которой были статьи с того же воркшопа CONSEQUENCES. Выделю одну статью — Unidentified and Confounded? Understanding Two-Tower Models for Unbiased Learning to Rank. Пользователи чаще кликают на верхние позиции выдачи из-за position bias’а, и один из способов это побороть — это обучить совместно сумму “bias-башни” и основной модели. Bias-башня при этом на входе использует только позиционные данные, а основная модель их наоборот игнорирует. При обучении используем обе башни, при применении bias-башню отбрасываем. В идеале bias-башня перетягивает на себя весь позиционный bias.
Пару лет назад Google Research в статье Towards Disentangling Relevance and Bias in Unbiased Learning to Rank подсветили следующую проблему — так как позиция в выдаче коррелирует с релевантностью (обычно мы определяем позицию, отранжировав по релевантности), то “bias-башня” начинает перетягивать на себя полезный сигнал, отражающий релевантность. Из-за этого основная модель, которую мы применяем в проде, часть сигнала про релевантность теряет. Чтобы это побороть, предложили использовать дропаут скора bias-башни, или вообще использовать gradient reversal.
Так вот — автор вышеупомянутой статьи утверждает, что они не правы. Что у них неправильные симуляции, и вообще все работает по-другому (а как — читайте в его статье). А еще он процитировал наш старый препринт про трансформер в Маркете :)
❤29👍6🔥2✍1