Февраль 2020: восприятие как интерфейс, закон сохранения сложности, продуктивная паранойя и шифровальная конспирология

The Interface Theory of Perception

Интересная теория Donald Hoffman о восприятии: “The Interface Theory of Perception” (подробная научная статья на английском).

Он говорит, что цель восприятия не понять/воссоздать объективный мир максимально правильно.

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

Каждая категория восприятия (слух, восприятие цвета, etc) это достаточно хорошее (но не лучшее) решение какой-то проблемы выживания и адаптации: найти еду, передать дальше свои гены, спастись от хищника или поймать жертву самому.

При этом,

Затраты энергии и времени на классификацию/восприятие это как раз причина, почему восприятие не пытается полностью воссоздавать объективный мир “как есть” — это слишком затратно. Конкуренция двух организмов, один из которых минимизирует false positives/false negatives, но тратит много времени на анализ и второго, который имеет заметное число false positives/false negatives, но тратит сильно меньше времени на анализ, приводит к победе второго (если false positives/negatives не фатальны).

Интерфейсы программ

Хороший пример восприятия как интерфейса — пользовательский интерфейс программ. Когда я смотрю на список файлов в своем Дропбокс аккаунте, то каждый файл обозначается строчкой и зеленой иконкой.

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

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

Прыгающие пауки

Другой пример, уже про конкуренцию интерфейсов, — прыгающие пауки (Portia).

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

Если Portia находит след другого паука J. queenslandicus, то начинает его искать. Но тот паук тоже может отлично прятаться. Поэтому Portia делает быстрый вертикальный прыжок. Паук J. queenslandicus реагирует на движение и ориентируется на него. Но к этому моменту Portia уже внизу, без движения, незаметен, но засек движение J. queenslandicus. Как только J. queenslandicus отвернется — его съедят.

Впрочем у Portia есть и свои проблемы. Требуется относительно долгое время для того, чтобы увидеть объекты. Возможно из-за того, что нужно получить хорошее изображение из 8 маленьких глаз. Ну и сложно идентифицировать большие объекты. Что делает этого паука уязвимым к более крупным хищникам (птицы, лягушки).

Резюме

Идея восприятия как интерфейса, который заведомо не имеет и не должен иметь отношения к “объективной” реальности и цель которого обеспечить выживание — очень интересна.

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

Также она означает, что точность восприятия не является самоцелью. Наоборот, излишняя точность классификации может привести к вымиранию. Цель — это классификация достаточно подходящая для выполнения целей выживания (с учетом рисков ошибок и энергетических затрат), а насколько она точна и объективна — не важно. Это сильно пересекается с мыслью, что наши “когнитивные искажения” это на самом деле благо и мы должны быть им благодарны — быстрые good enough эвристики оказались лучше для нашей адаптации чем супер-затратные и долгие точные размышления (и как знать, смогли бы мы добиться самосознания если бы пытались такие точные и безошибочные размышления делать сразу).

В книге Джима Коллинза “Великие по собственному выбору” описываются общие принципы компаний, которые достигли большого успеха (10x компании).

Один из принципов, который мне запомнился: продуктивная паранойя.

10x компании даже в хорошие времена помнят, что обстоятельства могут изменится и все будет хуже чем сейчас, поэтому они готовы к этому. Также такие компании стараются не брать на себя риски, которые в случае неудачи приводят к 1) смерти компании 2) или к большим ассиметричным потерям 3) или к новым рискам, которыми нельзя никак управлять. (Ещё отмечу, что выводы Джима Коллинза критикуют в книге “Эффект ореола” — рекомендую ее для баланса.)

Эту штуку я вспомнил в связи с коронавирусом COVID-19. Разные люди пишут про сравнение количества заболевших от COVID-19 и количества погибших в ДТП (или заболеваний сердца, смертей от алкоголя, заболеваний ВИЧ и т.д.), указывая, что проблема раздута медиа и волноваться не стоит.

Медиа действительно часто раздувают панику на пустом месте (паника = клики = деньги) и действительно волноваться о вещах за пределами нашего контроля — по возможности не стоит. Но само такое сравнение глубоко ошибочно.

Сравнивать надо не только количество погибших на текущий момент, но еще и потенциальное количество погибших в будущем.

Если в среднем от ДТП каждый день в мире погибает 3700 человек (в России 50-70), то от нашего бездействия (“мы ничего не трогаем”) это число резко не изменится. Мы не проснемся завтра и не обнаружим, что в день стало погибать 500 человек на дорогах вместо 50-ти. Это предсказуемый риск, который заведомо не ведет к гибели цивилизации/страны или к большим ассиметричным потерям.

Неизвестный вирус с высокой заразностью (большое базовое репродуктивное число) и со смертностью в 1-2% потенциально несет очень большой урон. Это непредсказуемый риск, который от бездействия может стать очень большим и привести к большим потерям. Сегодня умерло 1000 человек, завтра 10,000, послезавтра 100,000. Если вирус заразит 40% популяции (что вполне реально), то это 30 миллионов смертей за год. Это очень много и сопоставимо с пандемией испанского гриппа сто лет назад (500M заболевших, 20-50M умерших: 1%-5% от всех жителей Земли).

Так что чрезмерная реакция, закрытие аэропортов, карантины — оправданы (это защита от потенциальных больших будущих проблем). А сравнение с ДТП — нет.

P.S. Интересный факт про испанский грипп. Все считали, что Испания — источник, так как только там цензоры разрешали честно писать о потерях от гриппа:

To maintain morale, wartime censors minimized early reports of illness and mortality in Germany, the United Kingdom, France, and the United States. Papers were free to report the epidemic’s effects in neutral Spain (such as the grave illness of King Alfonso XIII). These stories created a false impression of Spain as especially hard hit, thereby giving rise to the pandemic’s nickname, “Spanish flu”.

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

Ну и это конечно все не только про отношения в семье, а про любые отношения.

В середине 80-х годов, Larry Tesler, ученый который занимался взаимодействием компьютера и человека, сформулировал Закон Сохранения Сложности. Звучит он так:

Каждое приложение имеет врождённое количество несокращаемой сложности. Вопрос только в том, кто должен будет иметь дело с этой сложностью: конечный пользователь, разработчик приложения или разработчик платформы?

Или по-английски:

The Law of Conservation of Complexity Every application has an inherent amount of irreducible complexity. The only question is: Who will have to deal with it—the user, the application developer, or the platform developer?

Стоит cмотреть на эту штуку шире — речь не только про приложения. У какого-то действия, сценария или цели есть своя сложность. Эта сложность в какой-то пропорции разделена между пользователем и остальными (например разработчиком приложения, разработчиком операционной системы, где работает приложение, “разработчиком” неких правил в индустрии, создателем продукта и т.д.).

Чем больше сложности берет на себя создатель продукта(разработчик), тем меньше сложности у пользователя и наоборот.

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

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

Пример: online e-commerce упрощает выбор и покупку товаров → люди заказывают больше. Самолеты упрощают путешествия → люди летают дальше. Проще вести бюджет → этим занимаются каждый день. И т.д.

Каждый новый сайт, который я открываю, имеет свою навигацию и подход к расположению контента. Каждый раз это новое обучение. Что тут у нас в этот раз: гамбургер-меню, что-то в хэдере, длинный одностраничник или будет какой-то новый способ показать свои ссылки?

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

Сейчас все больше элементов сайта становятся доступны именно в нативных интерфейсах браузера или операционной системы. Кнопки Назад/Вперед (что частично навигация сайта) появились еще в самом первом web-браузере. Есть возможность добавить поиск по сайту сразу в интерфейс браузера или использовать родной интерфейс шаринга. Стандартные ссылки на смену пароля на сайте, которые браузер/OS могут рекомендовать, если пароль скомпроментирован или слаб. Встроенный Safari Reader View, который “исправляет” нечитаемые сайты.

А вот если бы сайты могли каким-то образом анонсировать свою навигацию и она всегда была бы в одном месте, доступная для пальца, одинаковая и предсказуемая.

Настройки и опции у многих продакт-менеджеров имеют негативный флёр. “Добавил опцию = переложил решение на пользователя”.

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

Поэтому стоит брать на себя ответственность, выбирать правильные дефолты, делать эвристики выбора, не боятся огорчить громкое меньшинство. Добавление настройки это последнее средство, когда другое не срабатывает.

Но со временем я понял, что настраиваемые области бывают разные.

Если какая-то часть продукта пользователю неинтересна, неизвестна и она/он не имеют своего мнения про неё — там какой-то разумный дефолт подойдет всем. Но есть части продукта, когда у пользователя есть точное понимание “я хочу вот так и никак иначе” и если оно не так, то это минус и повод искать альтернативу. И именно в этих областях надо давать больше гибкости, больше возможности настроить. Там настройка это не что-то плохое. Это благо.

Пример: создание сайтов. Каждый владелец сайта имеет свое понимание “что я хочу”, поэтому обилие тем, настроек дизайна и возможностей “подкрутить под себя” это хорошая штука для сайт-билдера, даже если его цель — простые базовые сайты. Даже у простейших сайт-билдеров с целью “настроить все в одну кнопку” (например Google My Business) есть настройки дизайна.

Увидел в одном блоге как Сяоми подсказывает через какой способ авторизовались в последний раз.

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

Золотое правило логинов через сторонние сервисы (Facebook, Google): система должна давать логинить в свой аккаунт через любой доступный сервис без предварительной настройки. Каждый сторонний сервис возвращает email. По нему можно определить нужный аккаунт и автоматически туда залогинить.

Да, я понимаю про дополнительный вектор атаки через сторонние сервисы “хакнул Фейсбук-профиль, зашел в сервис”, но для большинства сервисов/сайтов это допустимый риск.

Очередная история про обман метрик, хитрых ребят и мобильную рекламу. Были ребята, которые делали массовые простые бесплатные приложения (“фонарик”, “файловый менеджер”). Эти приложения запрашивали расширенные permissions на Android и потом начинали следить за поведением пользователя.

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

Другие ребята “слушали” нажатия на клавиатуре телефона. Как только пользователь набирал U-B-E-R в Google Play, они так же отправляли фейковый рекламный клик, садясь на уже готовый существующий интент скачачивания Uber app.

Kevin Frisch, который руководил в Uber перфоманс-маркетингом, рассказывает в подкасте (англ.), что они уменьшили мобильный рекламный бюджет на ⅔ и ничего не потеряли в установках (то есть деньги выплачивались мошенникам, а не за честные скачивания).

Нет предела тому, как люди будут обходить правила и систему, стоит только дать им четкие цели и материальное вознаграждение.

Иногда к компании приходит предложение о партнерстве от других крупных ребят: “ну вот вы сейчас с нами заинтегрируйтесь, поменяйте продукт под наши желания, мы начнем вас перепродавать и вы получите много денег”.

Про такие партнерства и партнерские продажи у меня есть две мысли.

Ожидание вечного совпадения целей и построение долговременных планов, исходя из этого, приведёт к проблемам. Особенно это касается платформ. Чаще всего цели платформы не совпадают с целями пользователя платформы.

Возьмем например Яндекс.Дзен и сайты. Цель Яндекса (на мой взгляд) — увеличить время, которое проводится внутри Яндекса и показать больше рекламы. Цель сайтов (паблишеров) — увеличить свою аудиторию, чтобы потом больше продать своей рекламы. Это разные цели. Поэтому пока Дзену нужен стартовый набор контента, то условия будут хорошие, чтобы привлечь критическую массу сайтов. По мере захвата аудитории и уменьшению зависимости от паблишеров, условия будут меняться (появятся более жесткие требования, например) и разница в целях будет более очевидна. То же самое и у Гугла с AMP.

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

Интересная детективная история про фирму Crypto AG, шифрование и дипломатов.

В 60-х годах ЦРУ вместе с немецким управлением BND скрытно купили швейцарскую фирму Crypto AG, которая делала популярные шифровальные устройства для государств. После этого в код шифрования были тайно внесены закладки (большинство команды Crypto AG не знали ни о чём), которые делали расшифровку сообщений возможной. 50 лет коммуникация между странами, которые использовали Crypto AG, и их посольствами была доступна для расшифровки в ЦРУ.

Помимо истории, которая читается как остросюжетный роман, это подсвечивает вот какие моменты.

Стоит провести такой мысленный эксперимент: вы умный человек, у вас есть деньги, вы хотите защитить “своих” от “других”, интересы “своих” для вас важнее интересов “других” и это определяет ваш этический кодекс. Вам надо обеспечить безопасность свой страны/группы или обеспечить ее преимущество. Какие идеи вам придут в голову? Почему они не могут придти в голову другим людям и быть реализованы?

Финансировать научные разработки в области принятия решений, чтобы повлиять на судью? Да, конечно. ЦРУ платит Далай Ламе зарплату каждый месяц, чтобы поддерживать идею независимого Тибета? Почему нет. Нанять бывших нацистов для своей космической программы? Неплохо. Имитировать террористический акт, чтобы получить публичную поддержку для вторжения? Можно подумать про это.

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

Когда продукт показывает какой-то отчет или график, то этот отчет может иметь одну из этих целей (или их комбинацию):

Любая из этих целей ОК, главное честно осознавать какая у нас сейчас и создавать продукт соответствуя этой цели. Иначе будут неудобства.

Вот например мне один из почтовых сервисов, которые мы используем для посылки писем, прислал еженедельный отчет. График выглядит так, будто что-то внезапно сломалось и письма перестали идти. Резкое падение графика.

Стал смотреть глубже, оказалось все хорошо. Просто по понедельникам мы посылаем много своих еженедельных писем и на фоне пика все остальное теряется. Вот репорт должен был помогать мне сделать health check, но вместо этого смутил, дал неверный посыл и заставил волноваться.