Компьютерра
24.12.2012 - 30.12.2012
Контекстозависимость: зачем машине понимать мир людей
Андрей Письменный
Опубликовано 25 декабря 2012 года
Что человеку нужно? Чего он хочет, и чем можно ему помочь? Какие настройки наиболее полезны именно сейчас? Наши гаджеты до сих пор ждут подсказки, хотя зачастую вполне способны угадать ответы на эти вопросы самостоятельно.
В 1994 году Билл Шилит, исследователь из легендарной лаборатории Xerox PARC, опубликовал работу под названием "Контекстозависимые компьютерные приложения". В ней описывались программы, автоматически меняющие своё поведение в зависимости от внешних условий. Спустя два десятка лет идеи Шилита, наконец, перестают быть чистой теорией. Над контекстозависимыми решениями уже работают в Google, Apple и Microsoft.
Что такое контексты"Действия людей часто можно предсказать, исходя из ситуации. В библиотеке, на кухне и в офисе мы делаем разные вещи. Контекстозависимые системы должны извлекать пользу из этой закономерности, — писал Шилит. — Одна из задач распределённых компьютерных систем сводится к возможности учитывать изменяющееся окружение при помощи нового класса приложений, которые были бы в курсе своего контекста. Контекстозависимые приложения приспосабливаются к местоположению, присутствию людей, других компьютеров и устройств, а также к изменениям этих вещей со временем".
Контекстом может служить практически что угодно: место, время, наличие доступа к определённым ресурсам или присутствие нужных людей. Профессор Цзяньхуа Ма из Хосейского Университета выделяет восемь типов контекстов, которые могут быть учтены компьютерами.
Личностные контексты: личные черты пользователя и его нужды
Пространственные контексты: температура, свет, шум
Социальные контексты: люди рядом, деятельность, календарь
Контексты, связанные с ресурсами: близость, доступность
Вычислительные контексты: процессорное время, операционная система, память, интерфейсы
Сетевые контексты: проводные/беспроводные сети, скорость и надёжность соединения
Физиологические контексты: давление крови, пульс, тон голоса
Психологические контексты: эмоции, усталость
В работе Шилита тоже была предпринята попытка категоризации. Он предложил различать два типа контекстов: автоматические и переключаемые вручную. К автоматическим контекстам относятся контекстная смена настроек программ и завязанные на контекст действия. К контекстам, переключаемым вручную, — выбор на основании расстояния (к примеру, вывод изображения на ближайший экран) и предоставление контекстной информации. Так, сделанный для примера интерфейс отображал список принтеров, сортируя их по степени удалённости от пользователя.
Первый контекстозависимый компьютерИдеи Шилита, как это порой случается, несколько опередили время. В 1994 году подходящих устройств просто не было, и приходилось мастерить импровизированные прототипы. Сотрудникам Xerox PARC раздали портативные устройства под названием ParcTab, напоминающее карманный компьютер.
ParcTab был намного миниатюрнее портативных устройств того времени. Он умещался на ладони и весил втрое меньше, чем, к примеру, Apple Newton MessagePad 120. Интерфейс устройства (разработанный, кстати, Биллом Бакстоном, который приложил руку к первым тач-интерфейсам) включал в себя три физические кнопки, способные заменить и дополнить использование стилуса. Благодаря им устройством можно было управлять одной рукой. Примечательно, что в устройстве использовалась система рукописного ввода, напоминавшая Graffiti из Palm OS. Но больше всего разработчики гордились адаптером беспроводной сети. Внутри ParcTab скрывался инфракрасный передатчик, связывавшийся с расположенными в комнате маршрутизаторами. Скорость связи составляла 9 600 или 19 200 бод.
Приложения ParcTab учитывали не только непосредственные команды пользователя, но и контекст, то есть то, что происходит вокруг. Например, почтовый клиент ParcTab знал, когда пользователь находится на совещании, и менял своё поведение. Во время совещаний он доставлял лишь важные письма, оставляя прочее на потом. Одна программа помогала находить прочих обладателей ParcTab, видеть, чем они заняты в данный момент, и обмениваться сообщениями. Другая предоставляла доступ к различным данным в зависимости от местоположения пользователя.
Контексты сегодняПочти все проблемы, стоявшие перед разработчиками ParcTab двадцать лет назад, легко решаются при современном уровне развития техники. Карманными компьютерами и вездесущими беспроводными сетями давно никого не удивишь. Возникает резонный вопрос: где же теперь всё то, что группа Шилита придумала ещё в начале девяностых? Где же контекстозависимые системы?
Зачатки контекстозависимости изредка встречаются в современных гаджетах и приложениях. Узнать, где находятся друзья, позволяют сервисы Google Latitude или Foursquare, причём оба умеют оповещать о приближении знакомых. Контекстозависимость частично реализована и в Siri — автоматическом ассистенте, имеющемся в последних моделях iPhone. Siri можно сказать, например: «Напомни починить ручку двери, когда приду домой,» — и она сделает это. Тем не менее Siri далеко до идеала. Ей не под силу догадаться о том, чем в действительности занят пользователь и когда и о каких делах есть смысл напоминать.
Современные поисковые системы пришли к контекстозависимости другим путём. Двусмысленность естественного языка не позволяет интерпретировать запросы однозначно. В результате поисковикам не остаётся ничего, кроме как пытаться уловить истинные желания пользователя по косвенным признакам — иными словами, по контексту.
Бывший генеральный директор Google Эрик Шмидт ещё в 2007 году предсказывал, что в будущем поисковым системам придётся научиться угадывать намерения пользователей. "Наша цель — сделать так, чтобы пользователи Google могли задавать такие вопросы как «Чем мне заняться завтра?» и «Какую работу мне выбрать?», — говорил Шмидт. Ближе всего к реализации этой полуфантастической идеи разработчики Google подошли в системе Google Now, встроенной в последние версии Android.
Google Now внимательно следит за пользователем, а затем использует полученные знания, чтобы самостоятельно подбирать полезную ему информацию. Когда пользователь отправляется в путь, система заранее предупреждает о пробках на маршруте, который он часто использует в такое время, сама отыскивает результаты спортивных матчей, если замечает интерес к тому или иному виду спорта или команде, и сама напоминает о событиях ещё нескольких типов. Пока что функциональность Google Now оставляет желать лучшего, но в Google планируют значительно расширить её. Чуть ли не каждое подразделение компании готовит собственный модуль, и остается лишь разобраться с ранжированием результатов. Это, впрочем, в Google тоже отлично умеют делать.
Всё это созвучно изначальной идее Шилита «предсказывать действия людей на основании ситуации». Google Now уже умеет извлекать данные из истории запросов к поисковой системе, а в будущем начнёт анализировать и письма из Gmail, календарь, данные о социальных связях из Google+ и так далее.
Проблемы — фундаментальные и не оченьМиниатюризация электроники, распространение GPS и беспроводной связи устранили большинство препятствий, мешавших разработке контекстозависимых устройств и приложений. Но главное, чего не было во времена ParcTab, — это обширные базы данных, которые существуют сегодня. Google, Yelp или Foursquare могут без труда сказать, где находится ближайшая, например, аптека, а в будущем, вероятно, такие сервисы будут знать и о том, какие в этой аптеке есть лекарства.
Важное подспорье для электронных помощников — социальные сети. Они хранят бесценные архивы наших личных данных, знают всё о наших социальных связях и даже о наших предпочтениях. Представим простую жизненную ситуацию: один пользователь хочет пригласить в кино другого, но нужно определиться с деталями: когда и куда идти? Какой фильм смотреть? Не проблема: система, которой известны вкусы обоих пользователей, расположение кинотеатров и их программа, легко может выдать рекомендации, отсортированные в порядке потенциальной полезности.
Всё это не значит, что проблем не осталось. Некоторых ключевых технологий по-прежнему не хватает. Например, до сих пор нет стандартного средства определения местоположения внутри зданий (инфракрасная сеть ParcTab, кстати, давала эту возможность, но в реальных офисах или магазинах, вероятнее всего, шанс есть у аналогов технологии, разрабатываемой в Nokia). Не помешал бы и протокол, по которому телефоны могли бы опознавать присутствие друг друга, чтобы, к примеру, напомнить хозяевам обсудить какое-то дело или передать вещь.