Best Practices for Offline Evaluation.
Под оффлайн-оценкой качества рекомендаций подразумевается типичный для ресерча процесс (присутствует в 87% RecSys’23 статей), когда мы берем датасет с пользовательским фидбеком, сплитим на train/valid/test, замеряем метрики на тесте.
Ниже идет моя вольная интерпретация лекции от Lien Michiels на RecSys Summer School:
1. Большая часть ресерч статей — это “мы увеличили ndcg / recall на датасете X на 0.0Y% и побили SOTA”. Этим улучшениям нет доверия. По ходу школы неоднократно шутили, что если бы можно было просуммировать зарепорченные приросты из всех статей, побивших соту, то мы бы давно вышли за верхние границы метрик. Есть непаханое поле для более осознанного ресерча — задайте stakeholder’ов (например, кроме пользователей это могут быть content creator’ы, сама платформа), сформулируйте реалистичный objective (e.g., хотим не только поднять точность для пользователей, но и поднять exposure по content creator’ам).
2. Запускайте эксперименты несколько раз (с зафиксированными сидами), выкладывайте весь код — не только код метода, но и код запуска экспериментов, включая бейзлайны; и даже код тюнинга гиперпараметров.
3. Используйте публичные датасеты, при этом выбирайте наиболее большие и свежие.
4. Очень популярна n-core фильтрация, когда из датасета фильтруются все пользователи и айтемы с менее чем n взаимодействиями. Не нужно делать ее просто так; повторение за другими статьями — не обоснование.
5. Не используйте совсем рандомные дата сплиты (это лик).
6. Всегда перезапускайте бейзлайны (на своих машинках), не копируйте результаты из других статей.
7. Используйте сильные бейзлайны. Например, в статьях часто используют BPRMF (матричная факторизация с BPR-лоссом), а EASE — редко . А метрики у него выше :)
8. Используйте beyond accuracy метрики — например, coverage (насколько ваш алгоритм своими рекомендациями покрывает весь каталог; для кандгена актуально); время работы алгоритма.
9. Нужно тюнить все модели (и все гиперпараметры), а не только свои. Включая бейзлайны!
10. Считайте метрики без сэмплирования негативов.
11. Зачастую, если пофильтровать из рекомендаций то, что у пользователя в истории уже встречалось, можно поднять метрики. Это нормально, но если так делаете — нужно явно писать (сейчас часто не пишут).
С некоторыми моментами на лекции я не совсем согласен, и поэтому про большую часть из них выше ничего не писал:
1. На лекции говорилось, что в некоторых ситуациях отсутствие таймсплита для эвала — это нормально. Что это зависит от домена (например, в музыке таймсплит менее необходим чем в новостях), и что иногда для таймсплита недостаточно данных. Я считаю что тайм сплит нужен абсолютно всегда, даже в доменах типа музыки. Еще был кусочек про user split, что если в тест и трейн класть непересекающихся пользователей, то будем проверять strong generalization. Это совсем не соответствует сценарию реального применения.
2. Также было сказано, что если все-таки сэмплируете негативы для метрик, то надо сэмплировать их пропорционально популярности (а не равномерно). Это тоже не соотвествует сценарию применения.
3. В качестве примера хорошей метрики приводился ndcg (на сэмплированных айтемах / индексе). Но он ничего информативного не измеряет. Если вы обучаете модель для стадии отбора кандидатов, то нужно смотреть на полноту (Recall@K), причем с большими значениями K. Если для ранжирования — надо замеряться не против случайных айтемов, а против других показанных в той же выдаче объектов (impression’ов). По крайней мере, так делают все в индустрии, и это хорошо работает.
4. С тюнингом размерности эмбеддингов тоже не совсем согласен — в зависимости от сценария применения это может быть не целесообразно. Например, если вы пересчитываете векторы пользователей в оффлайне и загружаете в key-value storage, то у вас есть ограничения по памяти. На практике для одной модели редко когда можно хранить больше 100-1000 квантизованных флотов на пользователя.
И прикладываю пару фотографий с этого дня школы :)
Под оффлайн-оценкой качества рекомендаций подразумевается типичный для ресерча процесс (присутствует в 87% RecSys’23 статей), когда мы берем датасет с пользовательским фидбеком, сплитим на train/valid/test, замеряем метрики на тесте.
Ниже идет моя вольная интерпретация лекции от Lien Michiels на RecSys Summer School:
1. Большая часть ресерч статей — это “мы увеличили ndcg / recall на датасете X на 0.0Y% и побили SOTA”. Этим улучшениям нет доверия. По ходу школы неоднократно шутили, что если бы можно было просуммировать зарепорченные приросты из всех статей, побивших соту, то мы бы давно вышли за верхние границы метрик. Есть непаханое поле для более осознанного ресерча — задайте stakeholder’ов (например, кроме пользователей это могут быть content creator’ы, сама платформа), сформулируйте реалистичный objective (e.g., хотим не только поднять точность для пользователей, но и поднять exposure по content creator’ам).
2. Запускайте эксперименты несколько раз (с зафиксированными сидами), выкладывайте весь код — не только код метода, но и код запуска экспериментов, включая бейзлайны; и даже код тюнинга гиперпараметров.
3. Используйте публичные датасеты, при этом выбирайте наиболее большие и свежие.
4. Очень популярна n-core фильтрация, когда из датасета фильтруются все пользователи и айтемы с менее чем n взаимодействиями. Не нужно делать ее просто так; повторение за другими статьями — не обоснование.
5. Не используйте совсем рандомные дата сплиты (это лик).
6. Всегда перезапускайте бейзлайны (на своих машинках), не копируйте результаты из других статей.
7. Используйте сильные бейзлайны. Например, в статьях часто используют BPRMF (матричная факторизация с BPR-лоссом), а EASE — редко . А метрики у него выше :)
8. Используйте beyond accuracy метрики — например, coverage (насколько ваш алгоритм своими рекомендациями покрывает весь каталог; для кандгена актуально); время работы алгоритма.
9. Нужно тюнить все модели (и все гиперпараметры), а не только свои. Включая бейзлайны!
10. Считайте метрики без сэмплирования негативов.
11. Зачастую, если пофильтровать из рекомендаций то, что у пользователя в истории уже встречалось, можно поднять метрики. Это нормально, но если так делаете — нужно явно писать (сейчас часто не пишут).
С некоторыми моментами на лекции я не совсем согласен, и поэтому про большую часть из них выше ничего не писал:
1. На лекции говорилось, что в некоторых ситуациях отсутствие таймсплита для эвала — это нормально. Что это зависит от домена (например, в музыке таймсплит менее необходим чем в новостях), и что иногда для таймсплита недостаточно данных. Я считаю что тайм сплит нужен абсолютно всегда, даже в доменах типа музыки. Еще был кусочек про user split, что если в тест и трейн класть непересекающихся пользователей, то будем проверять strong generalization. Это совсем не соответствует сценарию реального применения.
2. Также было сказано, что если все-таки сэмплируете негативы для метрик, то надо сэмплировать их пропорционально популярности (а не равномерно). Это тоже не соотвествует сценарию применения.
3. В качестве примера хорошей метрики приводился ndcg (на сэмплированных айтемах / индексе). Но он ничего информативного не измеряет. Если вы обучаете модель для стадии отбора кандидатов, то нужно смотреть на полноту (Recall@K), причем с большими значениями K. Если для ранжирования — надо замеряться не против случайных айтемов, а против других показанных в той же выдаче объектов (impression’ов). По крайней мере, так делают все в индустрии, и это хорошо работает.
4. С тюнингом размерности эмбеддингов тоже не совсем согласен — в зависимости от сценария применения это может быть не целесообразно. Например, если вы пересчитываете векторы пользователей в оффлайне и загружаете в key-value storage, то у вас есть ограничения по памяти. На практике для одной модели редко когда можно хранить больше 100-1000 квантизованных флотов на пользователя.
И прикладываю пару фотографий с этого дня школы :)
🔥34👍18❤12💯5
RecSys Summer School, часть 3.
1. Рассказ про лекцию по психологии давайте скипнем :)
2. Лекция по GNN была хорошая, но очень академическая. Ничего не было про web-scale, про то как работать с большими графами и тд. TLDR: графовые модели очень выразительны, задачу рекомендаций удобно моделировать в виде графа, с помощью графовой структуры легко учитывать коллаборативный сигнал, графовые свертки по сути представляют из себя фильтры низких частот (если рассматривать каждую вершину в графе как сигнал).
3. Также выступал один из авторов статьи про CO2 в рексистемах с прошлого рексиса, Alan Said. Привел пример, когда в статье предложили алгоритм, увеличивающий ndcg на 0.05, но при этом также увеличивающий потребление энергии на 1.75kWh (что равносильно одному запуску посудомойки). Предложил выключить дип лернинг в стриминге, но оставить в екоме. Сказал, что нужно запускать эксперименты в первую очередь в странах с renewable energy, и что в этом плане худшая страна для экспериментов — это Австралия (а хорошие — это Дания, Швеция). Про еком логика следующая: каждый возврат вещи — это большое количество логистики, много езды на машине. Привел пример, что в Австрии у Заландо 400к активных пользователей и миллион покупок в год, из которых 35% возвратов.
Также чуть-чуть упомянул fairness, что у всех пользователей и групп должен быть одинаковый доступ к “благам” рексистемы. Упомянул статью, в которой показали, что равенство для групп может приводить к неравенству для отдельных людей. Также говорил про то, что у fairness очень много разных определений, у научного сообщества нет консенсуса как его определять, и что это нормально.
4. Была хорошая лекция про генеративный рексис, но тоже довольно академическая. Мне точно пригодится, чтобы доделать собственную лекцию (в прошлом году я эту тему постарался покрыть в финальной лекции recsys курса, про тренды). В рамках лекции было два рассказчика, второй рассказывал что-то про агентов и стартапы. Был слайд с лабубу :) Упоминал “The society of mind” от Marvin Minsky в контексте мульти-агентности.
5. Kim Falk попиарил свою книжку Practical Recommender Systems и заодно побеседовал про специфику индустриальных рексистем. Лекция была довольно поверхностная (скорее очередная вступительная лекция) и при этом видно, что Ким не сильно много работал с дип лернингом в индустрии и скорее много занимался классическими алгоритмами.
Был кусочек про то, как правильно работать с датасетами: что датасеты нужно фиксировать, обновлять их пореже; только когда нужно что-то добавить. Что при обновлении датасета мы теряем валидность сравнения экспериментов. Но и что когда близится внедрение, датасет конечно же надо обновить.
Рассказал забавный пример про LLM — спрашивал у чатгпт рекомендации книжек по рексистемам, она выдала список, в котором не было его книги. После комментария про то, что его книга тоже хорошая, попросил рекомендации снова. И тогда LLM выдала список уже и с его книгой тоже =)
В общем и целом лекция скорее напоминала набор разрозненных не сильно связанных тезисов: в рексистемах никогда нет GT (истинных меток), клик на менее популярный айтем несет больше ценности, что персонализация — это по определению дискриминация, и тд.
6. Morten Arngren прочитал лекцию про A/B тестирование, в частности про Bayesian методы и про бандитов для A/B. В лекции не было recsys специфики (например, не проговаривалось что обычно деление на группы происходит по пользователям). Были довольно красивые визуализации, основанные на симуляциях, наглядно показывающие как меняются распределения оцениваемых величин с ростом размера выборки.
7. Лекцию про CRS (conversational recommender systems) от Li Chen лично мне было тяжело слушать :). Вообще, некоторые лекции были очень “энциклопедические” — происходило сухое безэмоциональное перечисление каких-то подходов, методов, их категоризаций. Часто не было единого нарратива через всю лекцию, глубоких инсайтов.
Символы кончились, продолжение следует :) Пишу для вас посты в поезде, пока еду из Вены в Прагу :)
1. Рассказ про лекцию по психологии давайте скипнем :)
2. Лекция по GNN была хорошая, но очень академическая. Ничего не было про web-scale, про то как работать с большими графами и тд. TLDR: графовые модели очень выразительны, задачу рекомендаций удобно моделировать в виде графа, с помощью графовой структуры легко учитывать коллаборативный сигнал, графовые свертки по сути представляют из себя фильтры низких частот (если рассматривать каждую вершину в графе как сигнал).
3. Также выступал один из авторов статьи про CO2 в рексистемах с прошлого рексиса, Alan Said. Привел пример, когда в статье предложили алгоритм, увеличивающий ndcg на 0.05, но при этом также увеличивающий потребление энергии на 1.75kWh (что равносильно одному запуску посудомойки). Предложил выключить дип лернинг в стриминге, но оставить в екоме. Сказал, что нужно запускать эксперименты в первую очередь в странах с renewable energy, и что в этом плане худшая страна для экспериментов — это Австралия (а хорошие — это Дания, Швеция). Про еком логика следующая: каждый возврат вещи — это большое количество логистики, много езды на машине. Привел пример, что в Австрии у Заландо 400к активных пользователей и миллион покупок в год, из которых 35% возвратов.
Также чуть-чуть упомянул fairness, что у всех пользователей и групп должен быть одинаковый доступ к “благам” рексистемы. Упомянул статью, в которой показали, что равенство для групп может приводить к неравенству для отдельных людей. Также говорил про то, что у fairness очень много разных определений, у научного сообщества нет консенсуса как его определять, и что это нормально.
4. Была хорошая лекция про генеративный рексис, но тоже довольно академическая. Мне точно пригодится, чтобы доделать собственную лекцию (в прошлом году я эту тему постарался покрыть в финальной лекции recsys курса, про тренды). В рамках лекции было два рассказчика, второй рассказывал что-то про агентов и стартапы. Был слайд с лабубу :) Упоминал “The society of mind” от Marvin Minsky в контексте мульти-агентности.
5. Kim Falk попиарил свою книжку Practical Recommender Systems и заодно побеседовал про специфику индустриальных рексистем. Лекция была довольно поверхностная (скорее очередная вступительная лекция) и при этом видно, что Ким не сильно много работал с дип лернингом в индустрии и скорее много занимался классическими алгоритмами.
Был кусочек про то, как правильно работать с датасетами: что датасеты нужно фиксировать, обновлять их пореже; только когда нужно что-то добавить. Что при обновлении датасета мы теряем валидность сравнения экспериментов. Но и что когда близится внедрение, датасет конечно же надо обновить.
Рассказал забавный пример про LLM — спрашивал у чатгпт рекомендации книжек по рексистемам, она выдала список, в котором не было его книги. После комментария про то, что его книга тоже хорошая, попросил рекомендации снова. И тогда LLM выдала список уже и с его книгой тоже =)
В общем и целом лекция скорее напоминала набор разрозненных не сильно связанных тезисов: в рексистемах никогда нет GT (истинных меток), клик на менее популярный айтем несет больше ценности, что персонализация — это по определению дискриминация, и тд.
6. Morten Arngren прочитал лекцию про A/B тестирование, в частности про Bayesian методы и про бандитов для A/B. В лекции не было recsys специфики (например, не проговаривалось что обычно деление на группы происходит по пользователям). Были довольно красивые визуализации, основанные на симуляциях, наглядно показывающие как меняются распределения оцениваемых величин с ростом размера выборки.
7. Лекцию про CRS (conversational recommender systems) от Li Chen лично мне было тяжело слушать :). Вообще, некоторые лекции были очень “энциклопедические” — происходило сухое безэмоциональное перечисление каких-то подходов, методов, их категоризаций. Часто не было единого нарратива через всю лекцию, глубоких инсайтов.
Символы кончились, продолжение следует :) Пишу для вас посты в поезде, пока еду из Вены в Прагу :)
❤24😁6
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