УДК 519
ОПТИМИЗАЦИЯ ПОЛЬЗОВАТЕЛЬСКИХ МЕНЮ С УЧЕТОМ СЕМАНТИЧЕСКОГО КАЧЕСТВА1
М.В. Губко, А.И. Даниленко
Отмечено, что при проектировании пользовательских интерфейсов часто возникает задача оптимизации иерархических меню, однако существующие подходы к этой проблеме либо не учитывают смысловую нагрузку пунктов меню, либо не решают задачу оптимизации структуры меню. Предложена математическая модель оптимизации иерархических меню, учитывающая семантическое качество пунктов меню. На базе этой модели разработаны алгоритмы и реализован программный продукт для автоматической и автоматизированной оптимизации иерархических меню. Предложенный подход проиллюстрирован примером оптимизации голосового меню банка.
Ключевые слова: оптимизация интерфейса, иерархическое меню, семантическое качество, автоматизация построения меню.
ВВЕДЕНИЕ
Иерархические меню по-прежнему часто применяются в пользовательских интерфейсах. Это командные меню офисного программного обеспечения, каталоги Интернет-сайтов, меню банкоматов, мобильных телефонов и современных бытовых приборов. Голосовые меню часто применяются для реализации интерактивных телефонных сервисов и линий поддержки. Иерархическая организация позволяет пользователям быстрее найти искомую команду или раздел в системе.
В долгосрочной перспективе иерархические меню будут, по-видимому, применяться все реже, так как необходимость в них продиктована несовершенством современных технологий взаимодействия с пользователем. Если бы существующие технологии позволяли угадывать намерения пользователя (по крайней мере, в тех случаях, когда он точно знает, что именно он ищет), то не было бы необходимости в процессе пошагового уточнения цели пользователя, который, по сути, реализуется при навигации по панелям меню.
Технологии человеко-машинного взаимодействия развиваются крайне быстро, однако так же быстро уменьшаются и размеры используемых устройств. Во многих популярных мобильных уст-
1 Работа выполнена при финансовой поддержке РФФИ (проект 10-07-00129).
ройствах иерархические командные меню применяются вследствие ограниченности возможностей пользовательского интерфейса и средств ввода. Таким образом, разработка методов построения удобных меню, как и ранее, актуальна.
Помимо практической значимости, задача построения меню представляет интерес и в смысле применения формальных методов в теории человеко-машинного взаимодействия. Задача оптимизации пользовательских меню может служить образцом для демонстрации методов проектирования интерфейсов, основанных на математических моделях. Дело в том, что, с одной стороны, задача оптимизации меню четко ограничена и достаточно легко формализуется, с другой стороны, ее решение, как будет показано далее, требует разработки и апробации ряда взаимосвязанных аналитических, концептуальных и численных моделей (семантическая модель предметной области, модели различных типов меню, психологические модели поведения пользователей в меню, математическая модель оптимизации меню и т. д.). Результатом комбинации этих моделей и методов является описываемая в статье прикладная методика оптимизации иерархических меню. Предлагается гибкий способ учета семантических аспектов при оптимизации иерархической структуры меню. Результаты реализованы в интерактивном инструменте поддержки разработки структуры пользовательских меню, эффективность подхода проверена на примере оптимизации нескольких реальных меню.
1. ОБЗОР ЛИТЕРАТУРЫ
Исследования иерархических пользовательских меню начались с момента появления первых графических интерфейсов. В наши дни иерархические структуры часто исследуются в применении к интерфейсам с ограниченными возможностями, таким как бытовые приборы [1] или голосовые меню, и для описания структуры Интернет-сайтов [2-4].
Наиболее исследованный (и наиболее легкофор-мализуемый) аспект разработки меню — влияние ширины и глубины меню на его привлекательность и удобство для пользователя. Что лучше — широкое и неглубокое меню, в котором пользователю одновременно предлагается больше альтернатив, но при этом требуется меньше шагов для достижения цели? Или лучше предложить более узкую и глубокую структуру, которая предлагает всего несколько вариантов на каждом уровне, но содержит большее число уровней? Ответ на этот вопрос оказывается неоднозначным.
Существуют различные подходы к этой проблеме. Экспериментальные исследования говорят в пользу иерархических структур, содержащих примерно 8 вариантов в панели меню [5, 6]. Большинство аналитических исследований [7, 8] подтверждают, что оптимальное число вариантов находится в пределах от 4 до 13. Точные значения варьируются в зависимости от методов исследования и рассматриваемых условий. В статье [7] предлагается «линейная» модель навигации в меню, из которой следует, что в «хорошей» панели меню должно быть от 6 до 8 вариантов. В работе [8] утверждается, что в случае, когда варианты в панели меню отсортированы, так называемая «логарифмическая модель» лучше описывает поведение пользователей. Авторы исследования [9] комбинируют закон Хика—Хаймана и закон Фиттса для описания поведения пользователя и вычисления оптимальной структуры меню.
Но в реальности знания оптимальной ширины меню недостаточно для построения качественного меню. Вторая задача состоит в наполнении структуры меню осмысленными вариантами, которые будут понятными пользователю. Важность учета семантических аспектов при построении пользовательских интерфейсов подчеркивается уже на протяжении долгого времени (как минимум, со времен издания книги [10]), но эти соображения находят отражение далеко не во всех исследуемых моделях.
На сегодня существует несколько имитационных моделей, учитывающих семантические аспекты вариантов в меню. Модель MESA (Method for Evaluating Site Architecture) [4] имитирует страте-
гию поведения пользователей, основанную на значениях релевантности, назначенных для ярлыков категорий в меню. К сожалению, авторы не обсуждают методы определения этих значений. В моделях CoLiDeS (Comprehension-based Linked model of Deliberate Search) [3] и SNIF-ACT (Scent-based Navigation and Information Foraging in the ACT architecture) [2] релевантность ярлыков категорий определяется исходя из сходства с заголовком искомой функции.
Существуют также исследования [11], посвященные применению латентно-семантического анализа (ЛСА) [12] к определению качества ярлыков элементов в пользовательском интерфейсе. Позже [2] ЛСА был применен для исследования структуры Интернет-сайтов. Главное ограничение применения ЛСА для проектирования пользовательских интерфейсов — это необходимость в значительном объеме данных. В работе [13] показано, что для получения качественных результатов каждый элемент должен характеризоваться 100—200 словами.
Альтернативный подход заключается в применении простых методов, таких как «сортировка карточек» (card sorting) или статистический анализ содержимого [14]. Было показано [15], что подобные подходы позволяют получить классификации функций приемлемого качества.
Описанные методы позволяют получить осмысленную классификацию функций, которая может быть полезна при проектировании структуры меню. Однако эти подходы не решают задачу поиска оптимальной структуры.
Одна из известных авторам оптимизационных моделей, которая учитывает семантические аспекты, описана в работе [16], в которой развивается подход, предложенный в статье [7], снимается часть ограничений и предлагается алгоритм построения оптимальной структуры меню с семантическими ограничениями. Алгоритм использует иерархические классификации функций для формирования осмысленных группировок. В результате поиск оптимальной структуры меню происходит только среди структур, полученных удалением промежуточных вершин из первоначальной подробной классификации.
Ранее авторами была предложена математическая модель оптимизации меню [17, 18], основанная на минимизации среднего времени поиска в иерархической структуре меню. Аналитические результаты, дополненные иерархическими классификациями функций, позволяют построить автоматизированную процедуру итеративного улучшения структуры меню [17]. В отличие от подхода, предложенного в работе [16], используется одновременно несколько классификаций функций для формирования осмысленных группировок. Напри-
мер, функции в меню могут быть сгруппированы по типу действия (просмотр, правка, удаление) или по объекту действия (файл, сообщение, абзац). Алгоритм выбирает оптимальный срез в дереве классификации для формирования панели меню.
Основной недостаток этих подходов состоит в том, что при оптимизации учитываются семантические ограничения, а не семантическое качество ярлыков. Другими словами, не учитывается зависимость времени поиска в панели меню от смысла представленных в ней категорий; предполагается, что время восприятия любого из допустимых вариантов одинаково.
В настоящей статье описывается оптимизационная модель, в которой принимается во внимание семантическое качество пунктов меню. Также предлагается полностью автоматический алгоритм построения осмысленного меню с приближенно минимальным средним временем доступа к функциям. Полученные результаты реализованы в интерактивном инструменте оптимизации иерархических меню.
2. МАТЕМАТИЧЕСКАЯ МОДЕЛЬ ОПТИМИЗАЦИИ МЕНЮ
Задача любого меню — обеспечить быстрый доступ к набору функций путем организации их в иерархию категорий. При поиске функции пользователь проводит все время, просматривая и совершая действия в различных панелях меню. Стратегия, применяемая пользователем для поиска варианта в меню, зависит от ряда факторов, таких как тип меню и квалификация пользователя. В работе [5] приводится подробное обсуждение различных стратегий пользователя. Когда пользователь точно представляет, что он ищет, ему остается только сопоставить цель с вариантами в панелях меню. В этом случае, как правило, пользователь придерживается стратегии последовательного поиска, т. е. просматривает варианты в панели меню последовательно, пока не дойдет до подходящей категории. В иных случаях возможно применение исчерпывающего поиска (пользователь просматривает все варианты перед выбором) или случайного поиска (пользователь просматривает варианты в случайном порядке). Вне зависимости от применяемой стратегии большая часть времени тратится на просмотр и анализ вариантов, которые пользователю не нужны.
При этом ярлыки, соответствующие просматриваемым вариантам, очевидно, имеют различное качество. Короткие и емкие названия воспринимаются легко, в то время как длинные и неоднозначные требуют гораздо больше внимания. Подобные свойства ярлыков будем называть их семантическим качеством. В зависимости от типа
пользовательского интерфейса, частью которого является меню, роль ярлыка играет текстовое название, голосовая метка или пиктограмма. Семантическое качество имеет различный смысл для каждого из этих случаев. Например, при навигации неопытного пользователя в голосовом меню время, необходимое для выбора /-го варианта в панели меню, складывается из времени воспроизведения голосовых меток от первой до /-й.
Длина ярлыка (длина текстового названия или время воспроизведения голосовой метки) служит самым простым примером семантического качества, которым мы будем пользоваться далее для иллюстрации. В общем случае семантическое качество описывает не только время чтения ярлыка (длина текста), но и время анализа (понятность текста), читаемость пиктограмм или размер кнопок (согласно закону Фиттса).
Кроме того, семантическое качество не ограничивается оценкой времени чтения или анализа ярлыков. Другим аспектом выступает вероятность ошибки пользователя. Двусмысленный ярлык категории приводит к тому, что пользователь будет чаще выбирать эту категорию по ошибке. Далее в § 6 показано, как предлагаемая модель может быть расширена для учета такого способа оценки семантического качества.
Сформулируем задачу построения структуры меню в терминах теории оптимизации иерархических структур.
Рассмотрим множество функций N = {1, ..., и}, которые требуется разместить в меню. Каждой функции ц> е N поставим в соответствие ее популярность ц(м>). Будем считать, что цель пользователя в тот или иной момент времени заключается в выборе только одной функции. Иерархическое меню описывается деревом, листьями которого служат функции из множества N а промежуточные вершины соответствуют категориям. Каждая категория при этом характеризуется множеством составляющих ее функций 5 с N.
Не все группировки функций допустимы. Будем считать, что задано некоторое число классификаций функций системы по различным основаниям (например, функции офисного приложения можно группировать по типу действия — просмотр, правка, удаление — или по объекту действия — файл, сообщение, абзац). Каждая классификация задает свое разбиение множества функций N на непересекающиеся подмножества — категории. При построении панели меню можно использовать только категории, задаваемые одной из заданных классификаций, при этом запрещено комбинировать категории разных классификаций во избежание неравноположных перечислений. В то же время, сами классификации могут быть иерархическими, и панель меню может
«собираться» из категорий разных уровней (например, можно использовать или категорию «Ссылки», или составляющие ее подкатегории «Оглавление», «Сноски», «Список литературы», «Названия» и «Предметный указатель»).
Каждой функции или допустимой категории (множеству функций) соответствует некоторый ярлык (описывающий функцию или категорию одной из имеющихся классификаций). Поставим в соответствие каждому ярлыку / числовой вектор ю(/) — его семантическое качество. Для большей наглядности алгоритмы далее описаны для случая голосового меню, в котором семантическое качество ю(/) определяется временем воспроизведения голосовой метки /.
Рассмотрим категорию 5 с N состоящую из к подкатегорий 5р ..., 5к (подкатегория может состоять и из единственной функции). Предположим, что категории 5р ..., 5к формируют панель меню с ярлыками /р ..., /к соответственно. Обозначим для краткости ю, := ю(/,). Тогда время, требуемое для поиска 1-го варианта в панели меню, с учетом семантического качества ярлыков можно записать как ^.(к, Юр ..., юк). На практике влияние ширины меню к и семантических аспектов юр ..., юк зачастую можно разделить. В этом случае время на поиск варианта в панели меню можно представить в виде 1(к, Юр ..., юк) = (к)стг(юр ..., юк),
где функция (к) характеризует влияние структуры меню, а функция стг(ю1, ..., юк) описывает влияние семантики. Например, для голосового меню в качестве семантического качества разумно рассматривать время воспроизведения метки. Если пользователи при этом применяют стратегию последовательного поиска, то время на выбор /-го варианта в панели меню определяется как t¡(k, ю1, ю2, ..., юк) = = ю1 + ... + ю, + где ^ — время, требуемое на совершение выбора (нажатие на клавишу телефона).
В общем случае время, затрачиваемое пользователем в панели меню, определяется позицией искомого варианта, общим числом вариантов в панели (шириной меню) и семантическим качеством всех вариантов (не только искомого варианта). Все остальные параметры (такие как тип меню, стратегия пользователя, возможности оборудования) отражаются во внутренней структуре функций ti (к) и стг(ю1, ..., юк). Такой подход позволяет описывать разнообразные типы меню и стратегии пользователей. Аналогичный подход, но без функции семантики ст^юр ..., юк), был применен в работах [17, 18] для описания стратегий последовательного поиска, исчерпывающего поиска, а также учета вероятности ошибки пользователя.
Обозначим через у, относительную популярность /-го пункта в панели меню, т. е. частоту, при которой пользователю требуется именно этот пункт в случае, если пользователь вошел в данную панель. Тогда среднее время, которое пользователь проводит в панели меню, вычисляется как взвешенная сумма времени выбора каждой из альтернатив:
..., у^ юр ..., юк) = Е Уti ..., юk), i = 1
к
Е у, = 1. (1)
, = 1
Чем больше значение каждой из функций тем больше время, проведенное в панели меню, что соответствует худшему семантическому качеству используемых ярлыков.
Например, для стратегии последовательного поиска (при которой пользователь последовательно знакомится с пунктами меню до тех пор, пока не достигает нужного), среднее время пребывания пользователя в меню определяется выражением
кк
^р ..., у^ юр ..., юк) = ^ + Еу, Е ю/ (2)
,=1 ,=1
Все время, проводимое в иерархическом меню, пользователь тратит на выбор вариантов в различных панелях меню. Таким образом, среднее время поиска в меню Н вычисляется как сумма времен, затрачиваемых в каждой панели меню 5, помноженных на популярность соответствующих этим панелям категорий (т. е. на вероятность того, что пользователь зайдет в эту панель меню)
Т(Н) = Е И/(^ /И*, ..., ю1, ..., юк(5)),
,5 е Н
где к(5) — число вариантов в панели меню 5, , ...,
И
к («)
— абсолютные популярности вариантов,
ю1, ..., юк(5) — семантическое качество их ярлыков,
а И = ^ ..., .
Задача поиска оптимальной структуры меню состоит в том, чтобы для заданного множества функций N найти структуру меню Н, состоящую из осмысленных категорий, для которой среднее время поиска Т(Н) минимально.
В такой постановке задача представляет собой расширение базовой модели, описанной в работах [17, 18], благодаря учету семантического качества. При этом базовая модель является частным случаем, когда семантическое качество всех ярлыков одинаково.
к
56
СОЫТВОЬ БС!ЕМСЕ8 № 2 • 2012
Если все ярлыки в меню имеют одинаковое семантическое качество ю, то можно воспользоваться нижней оценкой среднего времени поиска в меню, полученной в работах [17, 18]:
Т^, Ю) = (ц^п^- Е ^V1п^*)) х
w е N
х шт шт
к ур,...,ук
Ц У 1, .. ., у к, Ю , . .., Ю )
к
- Е Уг1пУ'
(3)
Минимизация проводится по всем возможным значениям ширины меню к = 2, 3, ... и по всем пропорциям — векторам относительных популяр-
к
ностей у1, ..., ук, таким, что ЕУг = 1.
г = 1
Пусть минимум в выражении (3) достигается при ширине меню г и пропорции х1, ..., х . Это решение задачи минимизации тесно связано с видом оптимальной структуры меню. Каждая панель в оптимальном меню в идеале должна содержать ровно г вариантов с относительными популярно-стями х1, ..., хг. В работе [17] предложен итерационный алгоритм построения осмысленной структуры меню, в котором иерархия строится сверху вниз, при этом наполнение панелей меню подбирается на основе предоставленных классификаций функций путем подстановки их в оптимальный шаблон х1, ..., хг.
Но, как было упомянуто ранее, нижняя оценка (3) не учитывает семантические аспекты. Можно вычислить нижнюю оценку среднего времени поиска в меню, приняв наилучшее семантическое качество для всех ярлыков. Но качество этой оценки будет значительно хуже, и на нее нельзя полагаться в алгоритме оптимизации. Вместо этого в описываемых далее алгоритмах используется некоторое среднее значение семантического качества ю в выражении (3) для вычисления оценки среднего времени поиска в меню.
3. АЛГОРИТМ ОПТИМИЗАЦИИ МЕНЮ
Когда семантические аспекты не учитываются, нижняя оценка (3) позволяет описать оптимальную структуру меню. Алгоритм, предложенный в работе [17] для формирования панели меню, группирует функции в набор категорий, наилучшим образом подходящий под оптимальный шаблон.
Для рассматриваемой модели, учитывающей семантические аспекты, оптимальная структура каждой панели меню зависит от семантического качества ярлыков. Это не позволяет применить предложенный в работе [17] подход. Вместо шаб-
лона для построения меню предлагается применить жадный алгоритм оптимизации меню сверху вниз.
Идея любого жадного алгоритма состоит в сведении глобальной задачи оптимизации к множеству независимых локальных задач, решение которых дает результат, близкий к глобальному оптимуму. В терминах задачи оптимизации меню локальной задачей служит построение каждой отдельной панели меню, а именно, для панели меню 5 необходимо определить число вариантов к, разбив множество элементов 5 на допустимые подкатегории 51, ..., 5к, для всех подкатегорий определить ярлыки /1, ..., ¡к и определить порядок их следования в панели меню. В идеале построение локально оптимальных панелей меню даст в результате глобально оптимальную структуру меню.
Построение меню начинается с верхнего уровня и повторяется для каждой подкатегории вплоть до нижнего уровня. Структура каждой панели меню выбирается путем перебора всех доступных классификаций, в случае иерархической классификации конкретное разбиение функций системы на категории выбирается локальным поиском по этой иерархической классификации. В результате выбирается панель меню, минимизирующая локальный критерий оптимизации — оценку времени поиска в результирующем меню. Оценка вычисляется как сумма времени поиска в текущей панели меню и аналитически вычисленной оценки времени поиска в порождаемых ею иерархических подменю, т. е. время поиска в текущей панели меню вычисляется по формуле (1) и суммируется с оценкой времени для каждого подменю, вычисленной по формуле (3). Алгоритм выполняется несколько раз для различных значений «среднего»
семантического качества ю, и выбирается результат с наилучшими показателями.
Для реализации алгоритма необходимо решить несколько задач. Прежде всего, необходим метод поиска различных разбиений функций панели меню на непересекающиеся осмысленные категории. Кроме того, необходимо знать, каким образом сортировать категории в панели меню. И наконец, должна быть возможность сравнивать различные варианты наполнения панели меню, т. е. необходимо определить критерий оптимальности.
3.1. Поиск разбиения функций
Для поиска осмысленного разбиения функций на категории алгоритм использует иерархические классификации функций, предоставленные разработчиком меню. Пример возможной классификации функций меню телефонного банковского сервиса приведен на рис. 1 (категории выделены жирным шрифтом). Из каждой классификации можно
Информация по счетам
Информация о состоянии счёта и операциях по счёту
Узнать остатки по вашим банковским счетам Узнать доступный лимит по кредитной карте Выписки по вашим счетам
Заказ выписки по кредитной карте Получение выписки по счёту Получение банковских форм и заявлений Получение банковских заявлений Получение одной из банковских форм Размещение срочных депозитов Осуществление банковских переводов
Осуществление переводов между вашими счетами Погашение задолженности по кредитной карте Осуществление коммунальных платежей Осуществление переводов третьим лицам Осуществление перевода по программе «Заплати в рассрочку» Настройка
Настройка финансовых свойств Активация получателя Увеличение лимита по кредитной карте Настройка технических параметров Изменение ТПИН- или ПИН-кода Изменение основного текущего счёта по карте Создание собственного меню в системе
Рис. 1. Пример классификации функций
составить множество осмысленных непересекающихся разбиений функций. Например, на основании классификации (см. рис. 1) можно разбить функции на категории «Информация по счетам», «Осуществление банковских переводов», «Настройка финансовых свойств» и «Настройка технических параметров». Другим вариантом разбиения служит набор категорий «Информация о состоянии счета и операциях по счету», «Выписки по вашим счетам», «Получение банковских форм и заявлений», «Осуществление банковских переводов», «Настройка» и отдельно стоящей функции «Размещение срочных депозитов». Оба эти разбиения покрывают полный набор функций.
Для каждой доступной классификации алгоритм использует локальный поиск для выбора оптимального разбиения. Далее поясняется, каким образом сравниваются различные разбиения и как выбирается наилучшее.
Локальный поиск обходит иерархию классификации, формируя различные разбиения. Результат определяется направлением поиска и отправной точкой. Были опробованы следующие шесть вариантов локального поиска.
• Поиск «сверху вниз» с набором категорий верхнего уровня в качестве отправной точки. На каждом шаге алгоритм пробует улучшить качество разбиения, заменяя каждую из категорий ее содержимым в дереве классификации, таким образом, двигаясь от корня дерева в направлении детализации категорий. Для примера (см. рис. 1), алгоритм стартует с набора категорий «Информация по счетам», «Осуществление банковских переводов» и «Настройка».
На следующем шаге категория «Информация по счетам» будет заменена на ее содержимое, т. е. на категории «Информация о состоянии счета и операциях по счету», «Выписки по вашим счетам», «Получение банковских форм и заявлений» и отдельно стоящую функцию «Размещение срочных депозитов». Далее аналогичное действие будет проделано с категорией «Осуществление банковских переводов» и т. д.
• «Жадный» поиск сверху вниз действует аналогично варианту 1, но разворачивает только самую популярную категорию. В качестве отправной точки также используется набор категорий верхнего уровня.
• Поиск «снизу вверх» в качестве отправной точки использует набор отдельных функций. На каждом этапе алгоритм пробует улучшить качество разбиения, сворачивая несколько элементов в категорию, которой они принадлежат в классификации. Таким образом, поиск происходит от самого «широкого» разбиения вверх к корню дерева.
• Двунаправленный поиск на каждом шаге пробует как развернуть каждую из категорий, так и свернуть элементы разбиения в общие категории. В качестве отправной точки используется набор категорий верхнего уровня.
• Вариант двунаправленного поиска, использующий полный набор функций в качестве отправной точки.
• Двунаправленный поиск, использующий в качестве отправной точки субоптимальное разбиение, которое построено по шаблону, рассчитанному с помощью минимизации выражения (3) без учета семантических аспектов. Описанные варианты локального поиска были
опробованы на ряде типовых классификаций. Оказалось, что все варианты двунаправленного поиска в результате дают тот же результат, что либо поиск сверху вниз, либо поиск снизу вверх. Таким образом, их можно исключить без потери качества алгоритма оптимизации. Дальнейшие эксперименты показали, что жадный поиск сверху вниз в подавляющем большинстве случаев приводит к тому же результату, что полный поиск сверху вниз. В случае различных результатов отклонения незначительны, и ими можно пожертвовать ради существенного увеличения скорости работы алгоритма.
3.2. Сортировка вариантов в панели меню
Алгоритмы (см. варианты 1—6 в п. 3.1), работают в том случае, когда классификации определяют не только допустимые группировки функций, но и их порядок следования в меню. Если разработчик меню может менять порядок функций, то дополнительно возникает задача поиска оптимального упорядочения вариантов в панели меню.
Полный перебор всех вариантов сортировки в панели меню, содержащей к вариантов, требует рассмотрения к! перестановок, что неприемлемо. С другой стороны, когда семантическое качество всех вариантов в панели меню одинаково и единственной их характеристикой служит относительная популярность уг, существует простое решение — чем выше популярность у. элемента /, тем меньше времени должно требоваться для доступа к нему.
Задачу сортировки с учетом семантического качества вариантов можно решить также для конкретных стратегий поведения пользователя.
Рассмотрим, например, панель меню, содержащую к вариантов. Каждому варианту / = 1, ..., к соответствуют его относительная популярность уг и время чтения текстовой метки юг. Если пользователь придерживается стратегии последовательного поиска (что типично, в частности, для голосовых меню), то среднее время поиска в этой панели меню определяется выражением (2). Необходимо минимизировать это выражение перестановкой вариантов в панели меню, что является классической задачей теории расписаний. Согласно правилу МакНотона [19] решение заключается в сортировке вариантов по возрастанию величины
®//У/.
Пусть пользователь придерживается стратегии случайного поиска — варианты в панели меню просматриваются в случайном порядке, пока не будет найден искомый. В этом случае порядок следования вариантов в меню неважен, так как при любом порядке среднее время поиска будет одинаковым.
Аналогичные решения существуют для большинства типов меню и стратегий поведения пользователей. В то же время, в общем случае не существует простого решения для описания наилучшей сортировки вариантов.
3.3. Локальный критерий оптимизации
Структура каждой панели меню выбирается путем минимизации оценки времени поиска в результирующем подменю с корнем в текущей панели. Рассмотрим панель меню 5 с N которая содержит к подкатегорий 51, ..., 5к с относительными популярностями У1, ..., Ук и семантическим качеством ю1, ..., юк.
В общем случае время поиска в подменю зависит от структуры меню вплоть до терминальных вершин (функций). Но для локализации вычислений можно воспользоваться оценкой (3) для определения времени, затрачиваемого в подкатегориях (структуру которых мы не знаем на этапе построения текущей панели меню). Таким образом, среднее время Т (5, 51, ..., 5к, ю1, ..., юк, ю) поиска в под-
меню с корнем в категории s зависит от набора вариантов Sj, ..., sk, представленных в панели меню s, от семантического качества их ярлыков ..., юк
и от «среднего» семантического качества ю, принятого для всех ярлыков в дочерних панелях меню.
Пусть все ярлыки в каждой из k дочерних панелей меню имеют одинаковое семантическое качество ю. При таком «усреднении» семантических свойств по выражению (3) можно вычислить среднее время поиска в любом подменю ю). Для текущей панели меню s можно вычислить точное время поиска по формуле (1). Таким образом, оценка времени поиска в подменю с корнем в категории s, взвешенная на популярность этой категории, определяется выражением
T (s, sp ..., sk, юр ..., юк, ю) =
= Ц/( И*, ..., Vsk ..., юк) +
k
+ Z l^s,ln^ - Z w)1пw)
i = 1 w е si
t(Xi, ..., x„ ю, ..., (й ) X min min —-—' r —-—-. (4)
r xx, ..., xr r
- Z x,1nX,
J J
] = 1
Алгоритм выбирает структуру каждой панели
меню с целью минимизации критерия Т (•, ю), вычисляемого согласно этой формуле.
3.4. Шаги алгоритма
В итоге алгоритм автоматической оптимизации структуры иерархического меню описывается следующей последовательностью шагов.
Шаг 1. Зафиксировать начальное значение
«среднего» семантического качества ю равным наилучшему из всех меток семантическому качеству.
Шаг 2. Для каждой доступной классификации локальным поиском снизу вверх и «жадным» локальным поиском сверху вниз найти наилучшее (в терминах описанного критерия) разбиение функций на осмысленные категории. Выбрать наилучшее такое разбиение для всех классификаций и воспользоваться им для формирования верхней панели меню.
Шаг 3. Для каждой сформированной категории повторить процесс наполнения соответствующих панелей меню вплоть до терминальных вершин.
Шаг 4. Повторить шаги 2 и 3 для всех ю с заданным интервалом вплоть до значения, соответствующего наихудшему из всех меток семантическому качеству.
Шаг 5. Среди найденных структур меню выбрать структуру с наименьшим средним временем поиска.
3.5. Оценка качества алгоритма
В предлагаемом алгоритме используются различные эвристики и применяется локальный поиск для достижения приемлемой скорости работы. Это могло повлиять на качество результирующего меню. К счастью, математическая модель предоставляет методы оценки качества результирующей структуры.
Если за ю взять наилучшее значение семантического качества, то выражение (3) даст нижнюю оценку среднего времени поиска в оптимальном меню с учетом семантического качества. Ею можно воспользоваться для определения качества структур, полученных с помощью предлагаемого алгоритма.
Дополнительная минимизация по семантическому параметру ю, очевидно, отрицательно влияет на качество этой нижней оценки. Меню, построенные автоматически с учетом семантического качества, показывают отклонение в 30 % от теоретического минимума. Однако более детальный анализ показывает, что значительная часть этого расхождения возникает в результате ухудшения оценки из-за семантических аспектов, и нет практической возможности построить меню, которое было бы заметно лучше. Исследования на ряде типовых меню показывают, что среднее время поис-
ка в меню, сформированных автоматически, находится в пределах 10 % от среднего времени поиска для наилучшего меню, которое может быть построено на практике.
4. ИНСТРУМЕНТ ОПТИМИЗАЦИИ МЕНЮ
Описанный алгоритм реализован в инструменте автоматической оптимизации иерархических меню. Инструмент также предоставляет разработчику меню средства для ручного и полуавтоматического редактирования структуры (например, для учета неформальных ограничений в результирующей структуре меню).
В первую очередь разработчик меню должен загрузить исходные данные — набор функций меню с их популярностями и несколько (желательно, иерархических) классификаций этих функций. Далее разработчику предлагается выбрать окружение, в котором будет использоваться меню — тип меню (например, выпадающий список, таблица пиктограмм и т. д.), стратегию навигации в меню и другие характеристики. Реализованный инструмент содержит несколько предустановленных вариантов для типичных сценариев, а также предоставляет возможность загрузить экспериментальные данные для специфических случаев. Как только настройка окружения завершена, разработчику меню предлагаются средства оптимизации.
На рис. 2 изображен интерфейс разработанного инструмента. Он разделен на две части — в левой части содержатся исходные данные и аналитичес-
Рис. 2. Интерфейс инструмента оптимизации меню
60
СОМТМ!. вОЕМОЕБ № 2 * 2012
кие вычисления, а правая служит для работы над результирующим меню.
В левой части приложения доступна таблица с исходными функциями, имеется также возможность просмотреть их в структуре любой из классификаций. Если задача состоит в улучшении существующего меню, исходная структура также может быть загружена в инструмент оптимизации. В этом случае интерфейс предоставляет удобные средства сравнения исходной и результирующей структур — этот режим изображен на рис. 2.
Правая часть интерфейса содержит средства оптимизации структуры меню. В первую очередь приложение реализует описанный выше автоматический алгоритм оптимизации меню. Другими словами, инструмент позволяет нажатием одной кнопки получить осмысленную структуру меню хорошего качества в терминах среднего времени доступа. Если при этом есть необходимость учесть какие-либо неформальные ограничения в меню, разработчику меню доступны инструменты ручной и полуавтоматической корректировки структуры. Разработчик может изменять порядок следования вариантов в панели меню, перемещать функции в другую панель меню, добавлять и удалять категории, автоматически сортировать варианты в панели меню и оптимизировать структуру в отдельной части меню или в меню целиком. В процессе изменения структуры меню инструмент помогает в принятии решений, предоставляя аналитические оценки качества, как отдельных панелей меню, так и меню в целом. Качество категорий визуально отображается цветом соответствующих иконок в иерархии (зеленый, желтый или красный), что позволяет быстро найти категории, на которые следует обратить внимание в первую очередь. Также под каждой иерархией отображается численная оценка качества текущего меню и выделенной категории.
После того как формирование меню завершено, разработчик может сохранить результат в файл формата Microsoft Excel и реализовать сформированную структуру в реальной системе.
Инструмент оптимизации меню доступен для загрузки с сайта проекта http://www.mtas.ru/person/ goubko/themenudesigner/. Там же можно найти более подробные инструкции по работе с программой и ссылки на ее исходный код.
5. ПРИМЕР ОПТИМИЗАЦИИ МЕНЮ
Наиболее очевидным приложением модели оптимизации меню с учетом семантического качества являются голосовые меню (интерактивные телефонные системы). Далее рассматривается простой пример применения реализованного инструмента для улучшения голосового меню телефонного сервиса международного банка.
Оригинальная структура меню изображена в левой части интерфейса (см. рис. 2), она содержит 17 функций.
При помощи статистических исследований и экспертных мнений была проведена оценка популярностей функций и категоризация их по двум основаниям — по типу и по объекту действия. Рабочее голосовое меню использовалось для замеров времени воспроизведения названий вариантов и других временных параметров оборудования. В результате численного анализа было получено, что время воспроизведения метки длины Ь составляет в среднем (1,3 + 0,065Ь) с. Также замеры показали, что системе требуется 1 с на переключение текущего меню, время совершения действия пользователем в среднем составляет также 1 с. В соответствии с этими значениями вычислено среднее время доступа к функциям оригинального меню — 19,45 с.
В правой части приложения (см. рис. 2) отображена автоматически сформированная структура меню. Среднее время доступа к функциям в новом меню составляет 13,66 с, т. е. без вмешательства разработчика было получено улучшение в 30 % относительно оригинальной структуры меню.
Оценим эффект от введения семантических аспектов в модель. При оптимизации рассматриваемой структуры меню с помощью модели из работы [17], не учитывающей семантическое качество, результатом является другая структура со средним временем доступа 14,31 с. Таким образом, на данном примере учет семантики позволяет сэкономить дополнительные 0,65 с (5 %) на каждую пользовательскую сессию. Принимая во внимание крайне малый размер иллюстративного примера (всего 17 функций), этот выигрыш можно считать существенным.
6. ОБСУЖДЕНИЕ И ПЕРСПЕКТИВЫ
Предложенная модель принимает во внимание семантические аспекты ярлыков в меню, такие как время воспроизведения в голосовых меню или чтения в программных меню. При описанном подходе семантическое качество ю может быть вектором, компоненты которого описывают различные семантические характеристики. Таким образом, модель позволяет достаточно гибко комбинировать несколько компонент семантического качества. Как следует из формулы (2), семантическое качество ярлыка в панели меню влияет на время поиска пользователем этого варианта, а также и других вариантов в этой панели.
Но формула (2) не учитывает другой важный аспект семантического качества — вероятность ошибки пользователя. Пользователь чаще по ошибке выбирает варианты с неясными или двусмысленными ярлыками. А ошибка приводит к дополнительным затратам времени.
Для учета такого рода временных затрат в первую очередь необходимо иметь модель навигации с вероятностью ошибки. Такая модель описана в работах [17, 18]. Согласно предложенному подходу, в формулу (2) необходимо добавить дополнительный член pte(k), характеризующий временные
затраты из-за ошибок пользователя. Здесь ^(к) — время, которое пользователь потратит в панели меню, если он попал в нее по ошибке, р — вероятность ошибки в панели меню. Если вектор семантического качества ю содержит компоненту, характеризующую ясность ярлыка, то вероятность по ошибке попасть в панель меню, содержащую к вариантов с ярлыками, имеющими семантическое качество ю1, ..., юк, зависит не только от набора ю1, ..., юк, но и от семантического качества ю' ярлыка, описывающего текущую категорию в панели меню на уровень выше. Таким образом, дополнительный член в формуле (2), характеризующий вероятность ошибки и ясность ярлыков, принимает вид р(ю1, ..., юк, ю'УДк).
Изменения в выражении для среднего времени поиска в панели меню приводят к изменениям в локальном критерии оптимизации (4), используемом в алгоритме оптимизации меню. Оценка времени поиска в подменю, входящая в выражение (4), складывается из точного времени поиска в текущей панели меню и оценок времени поиска в подкатегориях, вычисленных исходя из некоторого среднего значения семантического качества ю. Если теперь вероятность ошибки пользователя зависит от семантического качества ярлыка, время поиска в подкатегориях зависит от семантического качества соответствующих ярлыков в текущей панели меню. Таким образом, критерий оптимизации (4) видоизменяется для расчета трех компонентов времени поиска — прежде всего, времени нахождения в текущей панели меню, затем — в панелях меню следующего уровня и, наконец, — во всех нижележащих панелях меню.
Время поиска в текущей панели меню рассчитывается исходя из семантического качества ярлыков в ней, а вероятность попадания в эту панель по ошибке зависит от семантического качества соответствующего ярлыка в панели меню уровнем выше, которая зафиксирована на предыдущем шаге алгоритма. Оценка времени поиска в панелях меню следующего уровня вычисляется исходя из значения среднего семантического качества ю для ярлыков этих панелей меню, но для вычисления вероятности попадания в эти панели меню по ошибке используются реальные значения семантического качества соответствующих ярлыков в текущей панели меню. Оценка для всех последующих уровней вычисляется, как и раньше, по формуле (3), в которой принимается среднее семантическое качество ю ярлыков, для расчета как времени поиска, так и вероятности ошибки.
Для фиксированного разбиения вычисление модифицированного критерия сводится к решению к оптимизационных задач (для вычисления
оптимальной ширины панелей меню следующего уровня). Вычислительная сложность этих задач не зависит от размеров меню и приемлема для вычислений в реальном времени.
Другое возможное развитие модели — работа с меню недревовидной структуры, позволяющей описывать альтернативные пути к функциям меню. Реальные интерфейсы, как правило, предоставляют пользователям несколько путей для доступа к часто используемым функциям. Альтернативные пути также имеют смысл при наличии ошибок классификации, когда пользователь ищет функцию не в той категории. Несомненно, рекомендуется избегать таких неоднозначных классификаций, но на практике редко удается сформировать идеальную структуру. В таких случаях можно дублировать функцию в нескольких категориях, избавив пользователя от ошибочных решений. С другой стороны, копии функции занимают дополнительные позиции в панелях меню и усложняют его структуру. Кратко обсудим, как описанная модель может быть расширена для решения этой дилеммы.
Рассмотрим множество функций N которые необходимо разместить в меню. Каждой функции w е N поставлена в соответствие ее популярность И(^) — априорная вероятность того, что пользователь будет искать функцию Популярности определяются на основе статистики или экспертных мнений.
Определим нечеткую классификацию функций из N. Рассмотрим набор q категорий и для каждой функции w е N и каждой категории / = 1, ..., q определим степень принадлежности е [0, 1]. Предположим, что степени нормализованы, т. е. ч
Е 9^/ = 1. Нечеткая классификация может стро-/ = 1
иться экспертом или вычисляться математическими методами, например, с помощью латентно-семантического анализа [12].
Четкая структура формируется из нечеткой классификации путем дробления функций. Если функция w е N принадлежит к категориям с ненулевой достоверностью, то она заменяется на к функций, каждая из которых принадлежит только одной категории. Популярность таких функций вычисляется умножением популярности исходной функции на степень ее принадлежности соответствующей категории. Подобным образом преобразуются все доступные классификации.
Четкие классификации далее могут быть использованы, как описано в предыдущих разделах с незначительными изменениями в алгоритме. Если две копии разделенной функции оказываются в одной панели меню, то их необходимо объединить для минимизации времени поиска. Кроме того,
62
СОЫТВОЬ БтЕМСЕБ № 2 • 2012
когда оценивается время навигации в подменю, считается, что все копии одной функции попадают в одну панель меню, т. е. все копии должны быть объединены перед вычислением оценки.
Таким образом, нечеткие классификации позволяют моделировать альтернативные пути к одним и тем же функциям. Но все равно остается открытым вопрос, в каких случаях стоит дублировать функции в нескольких категориях, а когда эффективнее избавиться от дубликатов, увеличив вероятность ошибки пользователя. Для решения этой проблемы можно предложить простой подход, который, однако, не гарантирует глобальной оптимальности решения. Фиксируем функцию и, используя предложенные алгоритмы, строим оптимальную иерархию для двух случаев: когда функция разделена по нескольким категориям, и когда функция принадлежит только одной категории в каждой классификации. Выбираем иерархию с меньшим временем поиска и переходим к следующей функции.
ЗАКЛЮЧЕНИЕ
Обзор публикаций в области построения иерархических меню демонстрирует, что существующие работы либо игнорируют семантические аспекты построения меню, либо не предлагают алгоритмов оптимизации структуры меню. Предложенный подход вводит понятие семантического качества в математическую модель оптимизации иерархических меню.
Модель оптимизации с учетом семантического качества требует разработки алгоритма оптимизации, учитывающего ряд факторов. Предложенный алгоритм опирается на ряд эвристических методов, позволяющих применять математическую модель на практике. Наряду с другими ручными и полуавтоматическими средствами построения меню алгоритм был реализован в инструменте оптимизации иерархических меню. Инструмент был опробован на реальных меню различных типов и показал хорошие результаты работы.
Тем не менее, в задаче разработки меню, особенно с учетом семантических аспектов, имеется еще немало открытых вопросов для дальнейшего исследования. Хотелось бы надеяться, что описанные в статье математическая модель и алгоритмы смогут составить основу для решения и этих проблем.
ЛИТЕРАТУРА
1. Thimbleby H. Press On: Principles of Interaction Programming. — Cambridge: MIT Press, 2007. — 528 p.
2. Fu W.-T., Pirolli, P. SNIF-ACT: a cognitive model of user navigation on the world wide web // Human-Computer Interaction. - 2007. - Vol. 22, N 4. - P. 355-412.
3. Kitajima M., Blackmon M.H., Poison P.O. A comprehension-based model of web navigation and its application to web usability analysis // Proc. of CHI 2000 / The Hague, Netherlands, April 1 - 6, 2000. N.-Y., 2000. - P. 357-373.
4. Miller C.S., Remington R.W. Modeling Information Navigation: Implications for Information Architecture // Human-Computer Interaction. - 2004. - Vol. 19. - P. 225-271.
5. Norman K.L. The Psychology of Menu Selection: Designing Cognitive Control at the Human/Computer Interface. -N.-Y.: Ablex Publishing Corporation, 1991.
6. Snowberry K., Parkinson S.R., Sisson N. Computer display menus // Ergonomics. - 1999. - Vol. 26. - P. 699-712.
7. Lee E., MacOregor J. Minimizing user search time in menu retrieval systems // Human Factors. - 1985. - Vol. 27, N 2. -P. 157-162.
8. Landauer Т.К., Nachbar D.W. Selection from alphabetic and numeric menu trees using a touch screen: depth, breadth and width // Proc. of the SIGCHI conf. on Human Factors in Computing Systems. - 1985. - P. 73-78.
9. Cockburn A., Outwin C., Oreenberg S.A. Predictive Model of Menu Performance // Proc. of ACM CHI'07. - 2007. -P. 627-636.
10. Card S.K., Moran T.P., Newell A. The psychology of human-computer interaction. - Lawrence Erlbaum Associates, 1983.
11. Soto R. Learning and performing by exploration: Label quality measured by latent semantic analysis // Proc. of CHI'99 Human Factors in Computing Systems. - 1999. - P. 418-425.
12. Landauer Т.К., Dumais S.T. A solution to plato's problem: The latent semantic analysis theory of the acquisition, induction, and representation of knowledge // Psychological Review. -1997. - Vol. 104. - P. 211-240.
13. Blackmon M.H., Kitajima M., Polson P.O. Repairing usability problems identified by the cognitive walkthrough for the web // Proc. of the conf. on Human factors in computing systems. -2003. - P. 497-504.
14. Kuniavsky M. Observing the User Experience: A Practitioner's Guide to User Research. - San Francisco: Morgan Kaufmann Publishers, 2003.
15. Miller C.S., Fuchs S., Anantharaman N.S., Kulkarni P. Evaluating Category Membership for Information Architecture. - DePaul CTI Technical Report 07-001, 2007.
16. Fisher D.L., Yungkurth E.J., Moss S.M. Optimal menu hierarchy design: syntax and semantics // Human Factors. - 1990. -Vol. 32, N 6. - P. 665-683.
17. Ooubko M.V., Danilenko A.I. An automated routine for menu structure optimization // Proc. of the 2nd ACM SIGCHI Symposium on Engineering Interactive Computing Systems. -2010. - P. 67-76.
18. Губко М.В., Даниленко А.И. Математическая модель оптимизации структуры иерархического меню // Проблемы управления. - 2010. - № 4. - С. 49-58.
19. McNaughton R. Scheduling with Deadlines and Loss Functions // Management Science. - 1959. - Vol. 6, N 1. - P. 1-12.
Статья представлена к публикации руководителем РРС
А.А. Ворониным.
Губко Михаил Владимирович — канд. техн. наук,
ст. науч. сотрудник, S (495) 334-90-51, И mgoubko@mail.ru,
Даниленко Александр Игоревич - вед. инженер, аспирант,
S (495) 334-90-51, И danilenko.alexander@gmail.com,
Институт проблем управления им. В.А. Трапезникова РАН,
г. Москва.