Цифровой журнал «Компьютерра» № 42

Авторов Коллектив

Мнения

 

 

Как компьютеры меняют работу астронома

Дмитрий Вибе

Опубликовано 08 ноября 2010 года

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

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

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

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

В результате возникла когорта людей, к которым вполне применимы слова Станислава Лема: «Им создавать или гасить звёзды — всё равно что семечки лузгать». В небольшой объём системного блока поместилась вся безграничная Вселенная с планетами, галактиками, астероидами, Большим Взрывом, чёрными дырами и белыми карликами. Одно нажатие клавиши Enter — и вот уже закружился на экране водоворот спиральных рукавов, побежала по межзвёздному газу ударная волна, задрожали под её натиском газопылевые облака и, потеряв устойчивость, обрушились внутрь себя под собственной тяжестью.

Сжимающийся газ разогрелся до миллионов градусов, вспыхнуло в нём термоядерное пламя — и на экране зажглась звезда, за ней другая, третья... Остатки облака закружились вокруг звезды в виде плоского диска, который (кто знает?) может стать местом рождения новой планетной системы... При этом астроном-программист всё делает своими руками: сам записывает уравнения, придумывает для них программное представление, пишет код, отлаживает его, выбирает параметры («А не взорвать ли мне сегодня звезду с массой в пятьдесят солнечных масс?»). В общем, творит миры.

Конечно, это ненастоящие миры. Модельные, нарисованные. Чтобы рисунок этот был как можно ближе к реальности, нужны мощные компьютеры. Пионер численного моделирования рождающихся звёзд Ричард Ларсон свою первую программу запускал на компьютере, который по мощности уступал даже современному мобильнику. И, разумеется, эта программа позволяла описать лишь очень небольшой этап ранней эволюции будущей звезды. Со временем компьютеры становились мощнее, но и требования к моделям повышались.

Проблема астрономических расчётов заключается в том, что они охватывают гигантский диапазон плотностей, температур, напряжённости магнитного поля, интенсивности излучения (от радиоволн до гамма-лучей).

Возьмём, к примеру, Солнечную систему (в конце концов, нам интересно узнать, как именно мы появились во Вселенной). Масса Солнца — 2 x 1033 граммов. Чтобы собрать такую массу из межзвёздного вещества со средней плотностью порядка 10-24 г/см3, необходимо сжать газ из объёма диаметром в полтора десятка световых лет.

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

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

Как это будет выглядеть? Может быть, появятся какие-то инструменты высокого уровня, конструкторы («Сюда перетаскиваем звезду, сюда — планеты, задаем связь один ко многим»), может быть, на составление программ для суперкомпьютеров будут подаваться заявки, подобные нынешним заявкам на наблюдения.

В любом случае, астроном лишится ещё одной возможности сделать что-то своими руками, почувствовать себя творцом Вселенной, пусть немножко ненастоящей, немножко выдуманной, вылепленной из нескольких тысяч строк кода, но такой своей, близкой и понятной!

 

Андрей Себрант («Яндекс») о том, как удержать посетителей

АНДРЕЙ СЕБРАНТ

Опубликовано 11 ноября 2010 года

Запись доклада «Незаслуженно забытый Churn Rate», с которым Андрей Себрант выступил на конференции User Experience Russia 2010.

В прошлом году на этой же конференции я рассказывал о роли маркетинговых экспериментов в работе юзабилистов и о тандеме юзабилистов и маркетологов в «Яндексе». Там было много слайдов с разными кейсами. Один из них содержал график, на котором было показано, как «утекают» пользователи одного из наших продуктов — «Яндекс.Бара». На графике было показано, как от месяца к месяцу в зависимости от того, в какой месяц какая версия была установлена, падает доля пользователей.

Показав этот график, я всего лишь сказал, что сейчас кроме стандартных метрик всё важнее становится churn rate — метрика, обратная времени «жизни» пользователя на сервисе. Попробую сейчас рассказывать вам историю вокруг этой частной метрики.

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

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

Лет этак семь назад в «Яндексе» не всегда успевали вовремя доставить нужное количество серверов. Сейчас с нашими дата-центрами таких проблем уже нет. Но тогда были, и мы выяснили, что если время отклика (то есть время отрисовки страницы с результатами поиска) увеличится на 200 миллисекунд (это пятая доля секунды), то через несколько месяцев пользователи начинают реже обращаться к сервису. Часть пользователей покидает сервис — часть большая, чем в контрольной группе, которая такого замедления не наблюдала. То есть внешне, казалось бы, ничего особенного не происходило, а на долговременной статистике видны катастрофические эффекты.

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

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

Очень часто такие же вещи происходят с тестированием. Одно дело тестировать сиюминутные реакции и делать на основе их долгосрочные выводы. Другое дело — следить за лояльностью пользователей. И вот здесь сhurn rate (который далеко не интернетовское и современное изобретение, а давным-давно известный метод, изобретенный еще в докомпьютерные времена) становится очень и очень важен.

Почему сейчас я говорю о churn rate, связанным именно с залогиненными сервисами? Конечно, можно измерять статистику своих пользователей, применяя более привычные, массовые, универсальные методы. Однако пользоваться ими на длинных временах сейчас невозможно. Cookie живут все меньше, «кук» на пользователей все больше, cookie все реже становятся способом пометить человека надолго, чтобы за ним следить. Это плохая новость.

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

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

Задача маркетолога в интернете — такая же как и в любом другом оффлайновом бизнесе. Это обеспечить любовь, и желательно долгосрочную, людей к тому сервису, который они продвигают. Это совсем не то же, что называется «залить трафика». «Заливать трафик» — это такой отголосок той эпохи, когда об успешности сервиса судили по его позиции в рейтинге «Рамблера». Сейчас последнее далеко не так актуально.

Я почти не знаю людей, которые гордились бы тем, что они имеют высокие позиции в рейтинге «Рамблера». Зато люди, которые говорят «моя задача как маркетолога налить больше трафика на сайт», продолжают встречаться — спасибо оптимизаторам. К счастью, это тоже становится все более редким явлением.

Формальных определений churn rate, о котором хочу рассказывать, много. Они все примерно одинаковые и сводятся к тому, что это отношение числа клиентов (подчеркиваю, что речь всегда идет именно о живых людях), которые на данный момент сервису сказали «пока», по отношению к числу, тех, кто пользовался сервисом за этот период.

Это тот самый отток пользователей, который, вообще говоря, присущ традиционным сервисам с подпиской. Мобильные операторы, к примеру, об этом говорить не любят — как и о любой отрицательной метрике. Даже если churn rate уменьшился, этим хвалиться стесняются — видно, что люди все-таки уходят. И очень важно понять почему. Как они уходят?

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

На самом деле не нужно пугаться — нужно это прогнозировать. Для начала нарисовать все в логарифмическом масштабе. Если это нарисовать в полулогарифмическом масштабе (то есть оставить линейной шкалу времени) и здесь единицы (либо недели, либо месяцы), получится «длинное время».

Вот данные, взятые с некого сервиса, с которым мне приходилось работать. Это недельная статистика.

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

Есть две экспоненты (в полулогарифмическом масштабе экспоненты представляются прямыми): быстро падающая прямая и медленно падающая прямая. Это классическая история из физики: два изотопа смешанные в разных пропорциях и с резко отличающимся временем жизни.

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

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

Проиллюстрирую это на более понятном графике. Вот примерные цифры, которые характерны для интернет-сервисов: у вас есть лояльная доля аудитории (в жизни она как правило составляет 5-20%), период полураспада у этой хорошей лояльной доли — больше чуть ли не в несколько десятков раз чем у тех случайных, которых было 80-95 процентов. То есть обычно жизнь сервиса, не получившего распространения (например, социальная сетка) устроена так: есть случайные пользователи, которые составляют подавляющее большинство, есть долгосрочные. Вы можете за короткое время, имея шесть-семь точек кривой, построить сумму экспонент и получить достаточно долгосрочный, надежный прогноз.

Почему так важны долгосрочные прогнозы, почему я говорю о том, что очень важно за три-четыре недели получить сведения о доле и периоде «полураспада» лояльных пользователей? Потому что интернет-среда — очень быстрая среда. Стартапы вообще живут в немыслимо быстром времени — цикл создания чего-нибудь новенького, прототипного, измеряется часами. Ждать неделю, чтобы представить проект инвесторам — это уже целая вечность.

Поэтому сиюминутные метрики становятся в головах людей превалирующими, более того — в интернете все можно править налету, все сразу видно. Но изменения, вызванные сиюминутными наблюдениями вызывают определённые проблемы. Вспомнить пример с фокус-группами — если пользователь говорит, что ему что-то кажется прикольным, наверное, можно из этого сделать некую однократную акцию. Если же сделать такое явление постоянным — на этом можно навсегда потерять лояльную аудиторию. То, что что для случайных посетителей будет очень прикольно, может быстро надоесть тем, кто пользуется сервисом постоянно.

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

Если показатели «посыпались» — это может быть следствием любого эффекта. И определение причины — непрямая задача исследования. Причиной может быть что-то внешнее. Может быть, это естественная вещь — вы обновили версию и старые UID исчезли. На самом деле это не люди ушли, а лишь обновились идентификаторы программы.

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

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

Можно посмотреть, как ведет себя программа и как ведут себя пользователи сервиса в интернете в тестовой группе. И в то же время изучить то, как ведут себя пользователи, которые зарегистрировались на нашем старом интерфейсе. Сравнивать напрямую их нельзя — у них разная реакция. Отношение этих долей лояльных пользователей к отношению периода полураспада и у лояльных и у «быстроутекающих» выявляется сериями метрик, за которыми в таком эксперименте нужно следить. Если делать это на регулярной основе — узнаете много нового и интересного.

Такие результаты разойдутся с кучей оценок, полученных путем простого предъявления интерфейса и его анализов в ходе работы фокус-группы на протяжении часа. Легко заметить, что любые большие порталы и сервисы всегда выкатывают тестовую версию (это может называться по-разному: закрытым тестированием, открытым тестированием, бета-версией), но всегда есть и долгосрочная. Нельзя за сутки померить лояльность, нельзя за сутки посмотреть, как будут вести себя люди, когда будут пользоваться сервисом регулярно. Поэтому такой период вывода чего-то в параллель не только приятен разработчикам, но и очень важен юзабилистам и маркетологам.

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

Второй практический вывод — это уже о бюджетах. Идеальной рекламной кампании в природе не встречается, но всем бы её хотелось. Запустить бы рекламную кампанию и ежедневно привлекать на сервис новых людей в одинаковом количестве и чтобы каждый из них настолько в него влюблялся, что остается пользователем навсегда.

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

Но даже если цифры относительно реалистичные, то у вас будет пятипроцентная конверсия посетителей в лояльных пользователей. Даже если у вас какое-то такое осмысленно время оттока, то на графике отличия от бесконечной лояльности будут катастрофическими. Еще очень важно, что вы можете, аппроксимируя по первым пяти-шести точкам начальной части синей кривой, предсказать что будет в итоге. Это всё та же история с двумя экспонентами: вы можете аппроксимировать это начало кривой и увидеть по первым пяти-шести периодам времени, что у доля лояльных пользователей составляет те самые 5%. Это позволяет сразу принять решение — устраивает вас рекламная кампания, приносящая определённый приток пользователей. В противном случае нужно сразу думать о том, как быстренько задержать тех посетителей, которые заходят на два-три раза.

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