自动工具辅助用户行为捕捉与分析方法
2021-01-20辛晓宇刘正捷
辛晓宇,刘正捷,慕 爽,杨 蕾
(大连海事大学 信息科学技术学院,辽宁 大连 116026)
0 引 言
移动端用户行为研究有助于掌握用户行为习惯,发现现有产品的体验问题、指导产品设计等[1]。现有工作通常分为两类:访谈法和日志法[2]。访谈法可以直接获取用户对于APP使用行为的看法,但这种方法数据获取成本高且无法挖掘行为细节[3]。许多APP的使用是由环境触发的,因此很难进行有意义的基于实验室的评估[4]。日志法对于长期捕获用户行为[5]或跟踪特定事件[6]以及进行个性化推荐等[7]都是非常有用的。但是大多数日志都局限于相当普遍的系统事件[8],只有修改程序源代码才能获取用户在APP内实际执行的操作,这使得详细分析APP内的用户行为变得困难[9]。
在人机交互领域,屏幕录制经常被用来收集用户在使用计算机系统时发生的用户输入、系统反应和显示。通过对屏幕录制视频或截图进行记录和分析,可以为用户如何使用计算机系统以及如何与系统交互提供深入的定性或定量的洞见[10],从而得出关于评估可用性或用户体验的结论。在此研究的基础上,本文基于CAUX(context awareness user experience)工具(本文中简称CAUX),通过屏幕录制以情境感知的方式自动获取用户在APP内的操作行为数据,使用图像对比技术,自动进行数据分析,从而发现可用性问题,指导产品的设计。
1 相关工作
在人机交互领域,使用截屏或屏幕录制来记录用户行为操作是一种广泛使用的方法。Brown等[11]开发了一款APP运行在用户手机上,可以收集用户的屏幕记录、音频、GSP定位等数据,并由参与者回顾和注释他们的数据记录,以供研究人员日后分析。该研究结果表明,视频分析有助于理解用户如何交互和使用移动设备。
Bao等[12]通过屏幕录制来记录开发人员在各种软件开发任务中的行为。随后参与者进行手工转录,将屏幕捕获的视频编码为可分析的数据(例如,使用的软件、访问或生成的内容),帮助深入了解开发人员在各种软件开发任务中的行为。但这种手工转录方法既昂贵又费时,视频录制时间与视频分析时间之比约为1∶3-3.75。Yamashita等[13]利用屏幕录制和出声思维结合的方法来研究开发人员的行为模式,但出声思维可能会干扰用户在屏幕录制时的操作。
开源应用软件InspectorWidget[14]可以跟踪和分析用户在交互软件中的行为。该软件记录用户执行任务时的屏幕内容,研究人员利用计算机视觉技术编写屏幕注释程序,自动对屏幕记录进行注释,并将结果可视化或导出以供进一步分析。但该软件只能用于Linux、Windows等桌面设备,并不支持移动设备。
目前的研究工作表明使用屏幕录制获取用户行为数据可以获得一些关于用户行为的见解,但传统的人工分析方法繁琐且费时。利用计算机视觉技术自动进行事件检测是可行的,但这种方法一般计算量很高。目前并没有适用于捕获并分析APP内行为的轻量型自动化工具。本文作者采用屏幕录制的方法来获取APP内用户行为,采用图像对比技术自动识别并输出用户行为序列,解决了这一问题。在下一节中,将详细描述该方法。
2 用户行为捕捉与分析
本文提出的方法主要分为3步:任务及基准图片定义、用户行为捕捉和数据半自动化分析。流程如图1所示。接下来将详细描述这3步。
图1 方法流程
2.1 任务及基准图片定义
研究人员定义某APP的典型任务,将表征所有典型任务的典型屏幕画面定义为基准图片集;确定基准图片集的模板,对基准图片进行编号并标注页面信息;为每个典型任务定义由基准图片标识的期望的执行序列。由于不同型号的手机分辨率不同,为了提高数据分析效率,需要每名用户对应一组基准图片集。在实验前将基准图片集模板下发给用户,要求用户截取对应图片并上传至服务器。
2.2 用户行为捕捉
CAUX是基于情境感知的用户体验研究工具,安装运行在用户手机上,通过感知情境信息来进行数据采集。目前CAUX获取的用户行为数据局限于APP外的系统数据,APP内的操作行为主要依靠弹出问卷这种用户自报告方式来获取,这种方式对用户侵扰性大,可行性较低。因此考虑为CAUX增加屏幕录制功能来捕捉APP内的用户行为。通过屏幕录制可以获得用户在APP内的完整操作,并自动存储时间戳。
2.2.1 隐私保护说明
捕捉和分析用户行为数据需要仔细考虑隐私问题。本文作者采取了一系列步骤来保护数据集中相关用户的隐私。首先,在实验开始前会征求用户对于屏幕录制的同意。在数据采集的过程中,在屏幕上方会有红色悬浮窗表示处于屏幕录制状态。其次,收集的所有原始数据都保存在服务器中,只有研究人员可以下载查看。最后,对所有用户进行标识符匿名化。数据集不包括我们研究期间所涉及的用户个人信息。
2.2.2 数据采集流程
CAUX捕捉APP内用户行为数据可以分为4个步骤,数据采集流程如图2所示。
图2 数据采集流程
(1)研究人员设置指令。研究人员根据案例研究目标确定自己感兴趣的情境,制定指令文件并上传到服务器。每个研究项目可能对应一个或多个指令组,分别对应不同情境下的采集意图。以网易有道词典为例,一个指令组可将网易有道词典在前台运行设定为指令触发条件,将采集客观数据和开启录屏设定为数据采集操作。
(2)客户端解析指令文件。用户安装运行CAUX,客户端自动从服务器下载指令。指令解析模块负责循环解析指令,并逐条存储在一个表结构中。
(3)客户端监听情境信息。循环监听情境信息,判断当下情境是否满足指令的触发条件,若满足,则跳转到数据采集模块进行相应的数据采集动作,采集客观数据以及开启录屏功能;若不满足则继续循环监听。
(4)采集到的数据暂存在本地文件夹中,通过通信模块上传到服务器。
2.3 数据半自动化分析
用户研究人员可以从服务器中查看录屏视频并进行数据分析。传统的数据分析方法需要用户研究人员观看视频并手动记录用户行为,存在效率低、容易出错的缺点。本文作者利用图像对比工具Blink-diff实现了半自动化数据分析,自动识别用户行为序列,并输出到日志文件中。整个数据分析过程概览如图3所示。
图3 数据分析流程
(1)用户屏幕图片序列
将录屏视频拆解为某特定APP内代表用户行为路径的屏幕图片序列。实验结果表明,按3 s的定时驱动截图基本可以完整还原用户操作。因此,将录屏视频按每3 s截一次图进行处理,得到用户屏幕图片序列。
(2)用户行为识别
将用户的屏幕图片序列与基准图片集进行对比,映射为由基准图片标识的用户行为序列,并输出到日志文件中。
Blink-diff是雅虎公司发布的开源图像对比工具,通过调用其提供的API实现图像对比工具并开发了数据分析平台。数据分析过程分为3部分:数据预处理、图片对比和结果输出。数据预处理即将用户屏幕图片序列和基准图片集调整为指定的分辨率并从0开始按序编号。图片对比,将用户屏幕图片序列和基准图片集分别放入两个文件夹下,对两个文件夹中的图片一一进行比较。结果输出,输出相似度,规定数据输出格式为: 用户屏幕图片编号——图片基准编号:相似度百分比。
图片对比的算法如下:
算法名称:PictureCompare(userPath, radixPath)
输入:用户行为图片路径userPath,基准图片路径radixPath
输出:每一个用户行为图片与所有基准图片的相似度矩阵Resemblance
(1) foreach picture_i in userPath: %遍历所有用户行为数据
(2) foreach picture_j in radixPath: %遍历所有基准行为数据
(3) Resemblance[i, j] = caculateResemblance(picture_i, picture_j); %计算两者相似度
(4) end
(5) end
其中caculateResemblance(picture_i,piuture_j)函数指逐像素对比两张图片,并输出相似度百分比。
将图片对比程序输出的信息读入数组,筛选每个用户屏幕图片相似度最高的基准图片作为匹配结果,得到基准图片标识的n位数字序列(n为用户屏幕图片数)。对这一序列进行处理,合并连续的相同数字,同时将数字映射为页面信息。映射规则由一个提前编写好的文本文件控制。数据分析平台的运行过程如下:
输入:用户行为图片路径imgPath,基准图片路径radixPath,分辨率X*Y,映射规则mappingRule
输出:用户行为序列seq
(1) seq ← Φ;
(2) foreach picture in imgPath:
(3) changeResolution(picture,X,Y);%调整每一个用户行为图片的分辨率为X*Y;
(4) end
(5) foreach picture in radixPath:
(6) changeResolution(picture,X,Y);%调整每一个基准图片的分辨率为X*Y;
(7) end
(8) Resemblance = PictureCompare(imgPath, radixPath);%调用图片对比算法获取相似度
(9) foreach picture in imgPath:
(10) j=getMostSimilarRadixPicture(picture,Resemblance);%与相似度最大的基准图片编号j
(11) add(j, seq);%将编号j加入序列seq
(12) end
(13) foreach i in seq:
(14) transferToBehavior(i, mappingRule);%按照映射规则将数字编号i转化为对应行为
(15) end
其中changeResolution(picture,X,Y) 函数将图片分辨率调到指定参数, PictureCompare(imgPath, radixPath) 函数指比较两个文件夹下的图片序列, getMostSimilarRadixPicture(picture,Resemblance) 指找到与用户行为图片相似度最大的基准图片编号,picture为用户行为图片,Resemblance为用户行为图片与所有基准图片的相似度矩阵。
数据分析结果示例见表1。
表1 数据分析结果
(3)行为模式提取及可用性问题检测
将用户行为序列进行聚类,得到典型任务的行为模式。这是通过累积类似的行为序列来实现的。每个典型任务的行为模式有一个或多个主要路径,根据遍历该路径的用户数量进行加权。所有起始页以及目标页和遍历每个节点的用户数量都被添加到行为模式中。将任务的预期序列与任务的最常见行为模式进行比较。寻找“预期的”执行和“实际的”模式之间的差异,以确定任务是否真的按照设计人员的计划执行,从而可以发现可用性问题。
3 案例研究
为了验证方法是否可行,作者选取了有道词典作为案例,使用该方法进行用户行为研究。根据艾瑞咨询2018年移动APP指数中有道词典的用户特征,年龄分布在18~30岁的占比58%,因此将目标用户定为在校大学生。研究目标为探索在校大学生使用有道词典的行为模式。
3.1 任务及基准图片定义
对有道词典APP进行分析,制定6个典型任务以及预期的执行序列,见表2。
表2 任务及预期序列
定义36张能够表征网易有道词典所有典型任务的典型屏幕页面的基准图片,并对其进行编号和信息标注。具体的基准图片见表3。
表3 基准图片
3.2 数据采集
为了获取用户在自然状态下使用有道词典的行为数据,需要研究人员明确感兴趣的情境并编写指令,根据指令触发自动开启或关闭录屏功能。本实验中感兴趣的情境为有道词典使用状态。根据指令文件的格式进行转换,采用”IF……THEN……”的格式,具体的采集指令集见表4。
表4 数据采集指令
据艾瑞咨询2018年移动APP指数中有道词典的用户特征,确定招募用户的年龄段及性别比例,即年龄段18-24∶25-30为2∶1;男:女为1∶1,共招募用户6人。
采用远程的方式指导用户安装CAUX并下载指令文件,给用户下发基准图片集模板。指导用户打开有道词典自动开启录屏功能,在这个过程中,用户按照基准图片集模板进行图片截取。完成后退出有道词典自动关闭录屏功能,用户上传数据。接下来用户可以正常使用手机,开展为期一个月的实验。实验结束后,用户上传数据到服务器后可卸载软件。
3.3 数据分析
本实验历时一个月,共收集346段录屏视频。采用基于图片对比的半自动化数据分析方法,具体分析步骤如下:
(1)用户屏幕图片序列提取。将录屏视频按每3 s一次进行截图处理,得到346组用户屏幕图片序列。剔除无实际操作的数据后,获得有效数据325条。
(2)用户行为识别。编写含有映射规则的文本文件。通过数据分析平台,得到325条由基准图片标识映射的用户行为序列。
(3)行为模式提取及可用性问题检测。为了探索用户执行任务的行为模式,对用户行为序列进行聚类。以查单词为例,共筛选出196条用户行为序列。通过观察用户行为序列,发现用户退出APP有两种模式:返回到首页退出和在任务完成页直接退出。因此,在用户行为序列的首页面可能存在多种情况,这里统称为其它页面。通过累积类似的行为序列,总结出两种行为模式。
通过聚类分析发现用户查单词存在以下行为特点:英译汉发生的频率远大于汉译英;汉译英过程中,大多数遵循“输入单词(汉译英)->英文释义->经典例句”的行为模式;英译汉的过程中,大多数用户查看中文释义后就结束了本次会话或跳转回首页,只有极小部分会查看经典例句。因此总结出两种行为模式:汉译英:首页->输入单词(汉译英)->英文释义->经典例句;英译汉:首页->输入单词(英译汉)->中文释义。对比这两种用户行为模式与预期序列,发现与汉译英的预期序列一致,而与英译汉存在差异。从这种差异中可以推测出,在英译汉的场景下,由于对应的中文释义为母语,较好理解,用户并不关注经典例句,而需要更加快速获取中文释义。
分析全部数据后,共发现11种用户行为模式。通过与典型任务的预期序列进行比较,发现行为模式与预期序列之间的差异,并总结出6条可用性问题。见表5。
表5 用户行为模式及可用性问题
4 结束语
本文提出了一种APP内用户行为捕捉与分析方法,即利用CAUX以屏幕录制的方式自动采集用户行为数据,并基于图像对比技术实现数据半自动化分析。该方法可以捕捉用户在移动屏幕上的所有操作,不依赖于修改应用程序的源代码。采用图片序列对比的数据分析方法,自动检测用户行为,获得用户行为序列。对用户行为序列聚类分析,总结用户行为模式。比较用户行为模式与预期序列,识别其中的差异,发现可用性问题。本文作者应用CAUX,针对6名用户,跨时一个月对使用有道词典的情况进行了研究,共总结出11条用户行为模式和6条可用性问题。实验验证,该方法能够获取用户在自然状态下APP内的行为数据,并半自动化对行为数据进行分析,可以发现可用性问题。
由于时间、资源有限,本文工作还存在一些不足之处。目前分析出的用户行为模式还不够全面,在接下来的研究中可以通过扩大数据量,进一步获取更多的APP内用户行为数据,定义存在可用性问题的操作序列,与用户行为模式作比较,从而自动检测出可用性问题。