魏思阳 向拓 陈冠中 贺江勃 张先宇
摘 要:随着移动互联网技术的快速发展和全面普及,大众的购物方式逐渐由实体店购物向网络购物偏移。同时,智能手机及移动端软件的开发逐渐向年轻人的审美靠拢,无意间带来了“数字鸿沟”——老年群体在使用智能设备中的一系列阻碍,包括界面不适应、图标不理解、操作太困难,等等。一语购物APP结合Word2Vec和推荐算法等相关技术,并依据相关适老化标准及文献,设计出一款符合老年群体生理和心理的UI界面,大大降低了操作门槛,为老年群体的网络购物带来极大的便利。
关键词:Word2Vec;语音控制;推荐算法;适老化设计
中图分类号:TP311 文献标识码:A 文章编号:2096-4706(2023)15-0021-05
Design and Implementation of an Age-friendly Shopping APP Based on
Voice Control and Recommendation Algorithm
WEI Siyang, XIANG Tuo, CHEN Guanzhong, HE Jiangbo, ZHANG Xianyu
(College of Big Data and Information Engineering, Guizhou University, Guiyang 550025, China)
Abstract: With the rapid development and comprehensive popularization of mobile Internet technology, the shopping style of the public has gradually shifted from physical store shopping to online shopping. At the same time, the development of smartphones and mobile software is gradually approaching the aesthetic of young people, unintentionally bringing about a “digital divide”—a series of obstacles for the elderly group in using smart devices, including interface discomfort, incomprehensible icons, and difficulty in operation, etc. The Yiyu Shopping APP combines Word2Vec, recommendation algorithm and other related technologies, and based on relevant age-friendly standards and literature, designs a UI interface that conforms to the physiology and psychology of the elderly group, greatly reduces the operating threshold, and brings great convenience to the online shopping of the elderly group.
Keywords: Word2Vec; voice control; recommendation algorithm; age-friendly design
0 引 言
随着现代计算机技术的高速发展,老年人因社会适应力与身体的逐渐老化,使得技术的进步对其难以起到普适性。工信部于2020年12月印发《互联网应用适老化及无障碍改造专项行动方案》[1],2021年4月发布APP适老化通用设计规范。可见,移动应用的适老化将成为应用开发的一个重要考虑因素。“一语购物”APP旨在通过语音控制的方式和适老化原型设计简化老人操作,以及基于协同过滤的技术实现商品的推送。
1 “一语购物”APP设计
1.1 开发技术
Python:Python目前主要用于人工智能,数据挖掘等方面,在语义识别和协同推荐上可以提供给APP实现的帮助。
Django:Django是一种开源的大而且全的Web应用框架,是由Python语言来编写的。Django提供一个基于正则表达式的URL分发器,开发者可灵活地编写URL。
MySQL数据库:MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型和大型网站的开发都选择MySQL作为网站数据库。
安卓开发技术:主要为xml+css+JS技术。xml起到标记和信息传递的作用,css用來定义如何显示xml元素,JS(JavaScript)是一种脚本语言,其源代码在发往客户端运行之前不需经过编译,用来定义页面的行为。
1.2 功能模块设计
APP的功能架构图如图1所示,共有五个模块,分别为用户信息模块、浏览购物模块、订单管理模块、首页推荐模块和语音控制模块。
用户信息模块:包括用户的注册登录、基本信息的录入和修改等。
浏览购物模块:包括商品的分类、搜索和购买等。
订单管理模块:包括对用户的订单进行管理,如订单进展、订单确认等。
首页推荐模块:包括商品的协同推荐、热门商品的展示等。
语音控制模块:包括语音转文字,文字匹配对应命令,命令进行执行。
APP的具体使用流程如下:用户注册登录进入APP,在首页可以查看根据自己信息推荐的商品以及热门商品。想要购买商品时,可以在购买页面根据类别选择商品,也可以输入信息进行搜索,购买之后会生成订单。想要了解订单情况可以到订单详情页面进行操作,如删除、取消和确认等。在“我的”页面,有关于用户的个人信息,如余额和地址等。语音控制模块使得用户可以在输入时语音输入,也可以语音控制上滑和下滑等触摸操作。
1.3 适老化UI设计
适老化,顾名思义是适应中老年人,主要目的在于满足进入老年阶段的人群的生活及出行需求,保障老人的安全。软件设计的适老化是随着时间的推移而逐步发展起来的。从2016年11月,“适老化”一词首次出现在国家文件到2020年12月,工业和信息化部印发《互联网应用适老化及无障碍改造专项行动方案》。从最开始的生活环境的适老化到数字的适老化,适老化由实及虚,从看得见、摸得着的实体空间扩展到看不见、摸不着的虚拟空间。
综合老年人生理与心理的变化和UI设计的特点[2],我们觉得适老化UI设计具有以下特点:
1)功能简单化,操作简单化,对于购买操作,只需要提供必要的信息,即可完成操作。
2)布局的注视点右下移动,在浏览手机页面时,看到的大部分信息都在注视点右侧,左侧提取的信息很少,因而手机页面左侧更容易被老年人忽略,布局设计需要考虑这一点。
3)减少邻近色的使用、选用更有辨识度的颜色。适老化设计中合理的应用红紫色和蓝系色彩,更容易对老年人产生视觉刺激,从而引导老年人的视觉注意。
4)界面的主要文字信息应不小于18 pt,字体应选用老年群体辨识度更高的宋体或黑体。
5)老年人的理解能力较低,对于一些图标会出现理解不到位的情况,图标可以采用实物图片,因此采用“文字+图标”的方式更方便老年用户的理解。
如图2所示,APP的购买界面按照展示内容并且通过不同颜色区分成几个区域,区域间颜色采用暖色调且颜色的区别较大。同时购买界面只提供关键信息,没有多余的复杂操作。而商品分类界面采用的是白字暗色底,相比于黑字亮色底来说对老人眼睛的刺激性弱,更容易接收和理解信息。字体采用黑体和20~24 pt大小,显示更加清晰。页面的关键信息也显示在便于老人操作的右下角。
2 “一语购物”APP实现
APP的主要难点是语音控制模块和商品推荐模块的实现。语音控制模块中,程序将依据老人的语音内容实现语音对应的功能,如页面跳转、商品选择和搜索输入等。商品推荐模块中,程序将依据数据库中已经存在的商品特征信息、用户特征信息和商品评价信息来判断当前用户可能喜欢哪些商品,并推荐在APP的首页上。同时用户对商品的评价信息也会重新作为训练数据进入神经网络,使得神经网络的推荐精度更高。
2.1 语音控制模块实现
如图3所示,语音控制模块的功能包括五个部分,分别是将输入的语音转换为文本命令、将文本命令根据语义转换为对应的有效文本命令、有效的文本命令通过程序控制达到原始语音输入想要达成的效果和最后根据需要进行语音播报提供语音输入命令的决策依据。
因模块中语音识别和语音播报等功能要较强的精确度而根据语义匹配对应文本并不需要高精确度,故本模块着重在于语义匹配功能的实现,采取的算法是Word2Vec。
2.1.1 Word2Vec算法
人们为了把文本内容处理简化为向量运算,统计文本中的词频,将编码转化为向量,从而语言数学化。这种方式叫作One-Hot表达。同时显然,One-Hot向量的维度等于词典的大小。这在动辄上万甚至百万词典的实际应用中,面临着巨大的维度灾难问题。为了用一个稠密的向量表达一个词,出现了分布式表达方式[3],即VSM。VSM构造了一个矩阵A,A的行为词,A的列为文档。矩阵的元素表示对应词在对应文档中出现的频率。然而并没有解决维度灾难的问题。为了解决这一问题,人们提出了SVD降维。将词频矩阵分解为,X = USVT,使用其中的U的行为词向量。后得益于CBOW、Skip-gram的发展,Word2Vec[4]训练方法被提出。
2.1.2 Word2Vec算法的数据采样
以CBOW模型为例,Word2Vec算法的训练数据采样过程如图4所示。语音经过语音识别形成文本之后,使用分词算法对文本进行分词,得到分词后的单词文本。
设定CBOW模型的滑动窗口大小size,size一般为大于等于3的奇数,滑动窗口内的单词集合为word,选取滑动窗口内的中心词为M。
数据采样的过程即滑动窗口滑动的过程,每次窗口的滑动即生成一组训练数据:
wordi, M
其中wordi为word集合内除中心词M外的第i个单词。
定义单词为Vac,Vac表示所有训练文本分词后的单词。Vac的元素为一一对应的鍵值对(i,word),为Vac中的第i个单词为word。
定义One-Hot函数,其作用为将单词转换为其对应的One-Hot向量。根据单词表Vac查找单词对应的索引i,则这个单词的One-Hot向量C表达为:
j为向量的下标。则最后的训练数据为:
(one-hot(wordi), one-hot(M))
2.1.3 Word2Vec神经网络的构建
如图5所示,对于每一组的原始数据。输入为中心词附近的One-Hot向量,输出为中心词的One-Hot向量。
在神经网络训练过程中,输入层输入数据为词库的单词av×n,其中v表示中心词M附近的单词数量,n表示向量长度,一般为词库数量。Xn×m矩阵为权重矩阵,输出数据为最终需求的词向量bv×m:
bv×m = av×n · Xn×m
其中m表示指定的词向量维度,一般设置为50。
隐藏层的输出数据为神经网络初步预测的中心词向量Cv×n:
Cv×n = bv×m · Ym×n
输出层的输出数据为Softmax之后的向量,为最终预测的中心向量dv×n:
dv×n = softmax(Cv×n)
设S表示长度为k的向量,则S向量Softmax之后的向量:
神经网络的优化目标为使得损失loss最小:
loss = ∑(dv×n - M)
其中M表示中心词向量的One-Hot表示。
2.1.4 句向量和余弦相似度
句子中所有词向量的平均值即为此句子的句向量。
求用户语音输入语句的句向量,再和系统中命令句的句向量进行相似度计算,即可得到用户的语音意图:
2.2 商品推荐模块实现
2.2.1 推荐系统简介
推荐系统一般可以看作是一种信息过滤系统,在可以持有或收集各种数据的服务环境中向用户提供个性化的物品推荐。推荐系统当中的信息过滤是根据用户的喜好运作的,或者说只向用户推荐被判断为有价值的项目。
随着Web 3.0的兴起及大数据相关技术的快速发展,推薦系统在电子商务、流服务和社交网络等方面得到了更加广泛的应用。推荐系统的通用架构可以如图6所示。
在一个使用推荐系统的平台中,用户和项目的信息,用户对项目的操作,以及用户之间的信息,商品之间的信息都将被记录下来,作为推荐系统的输入,并将处理之后的数据存放到数据库中,随后服务器再根据一定的计算框架(如Hadoop,Spark等),对这些数据进行分析,得到用户的偏好,并根据一定的策略进行推送和更新。
基于内容的过滤和协同过滤算法是早期推荐系统中最具有代表性的两种算法,基于内容的过滤利用用户的评价数据构建用户的偏好数据库,预测符合用户口味的物品,然后利用它进行推荐。
2.2.2 推荐算法在一语购物中的应用
选择经典的基于内容的过滤算法[5]作为一语购物推荐系统的具体实现:
1)对于第j个用户(user),使用 来描述用户j的一系列特征,如年龄、性别、地区等;对于第i件商品(commodity),使用 来描述商品i的一系列特征,如产品分类、产地、功能等,并使用独热编码(One-Hot)等方式将这两者进行数值化处理。若将“年龄在65岁以上”“性别男”“居住在沿海城市”这三个特征记作1,则一位72岁的贵州男性用户可以表示为xu = {1, 1, 0},以此类推。
2)使用神经网络建立一个从特征向量x到隐向量v的映射,这一过程可以看作是对特征的降维或提取(embedding),其中隐向量v应当是数值型的。向量 表示用户对各类商品的偏好程度,而向量 则表示商品更属于哪一类别,两个向量的维数应当是相同的,即| vu | = | vc |,维数与商品的总类别数一致。
3)神经网络采用有监督学习的方法进行训练,训练样本包括用户j的特征 和对商品i的评价y(i, j),用户网络与商品网络采用类似的多层感知机架构,两个网络之间彼此独立,一同训练,网络层数设计在5层左右,使用ReLU激活函数,并在训练之前将参数按照正态分布初始化,最终的目的是找到一组参数,使得特征向量x能合理地映射到隐向量v。
4)定义神经网络的损失函数J如下:
5)若y(i, j)为二值化标签,即y(i, j) = 1为用户对商品感兴趣,则可以将损失函数J修改如下:
J'=∑(sin(v(j)u·v(i)c)-y(i,j))2+Reg
其中sig代表sigmoid函数,用以将用户对商品的评分标准化至(0,1)区间。
3 结 论
通过基于语音控制的“一语购物”APP的设计与实现,满足了老人网络购物的需求,降低了老人使用智能应用的门槛,优化了UI的设计,减少了老人使用智能应用的不适感,响应了工信部APP适老化的号召。但是在APP的实现上仍然具有一定的改进空间,如Word2Vec的语义匹配效果与训练样本的文本内容和训练迭代次数密切相关,很难有很高的准确率,算法训练时间较长,可采用负采样的方式避免查询整个词表。同时对于指向性的语音命令(如查看第1行第2列的商品)仍然要按照固定的语音格式来提取语音信息。在推荐商品模块,未采用大数据推荐系统框架,造成推荐功能并不是十分强大。
参考文献:
[1] 工业和信息化部.互联网应用适老化及无障碍改造专项行动方案[EB/OL].[2023-02-08].https://www.cnii.com.cn/zcjd/202012/t20201228_243049.html.
[2] 张世民.基于APP交互界面的适老化设计研究 [J].电子元器件与信息技术,2022,6(7):84-88.
[3] BENGIO Y,DUCHARME R,VINCENT P,et al. A Neural Probabilistic Language Model [J].Journal of Machine Learning Research,2003,3:1137–1155.
[4] MIKOLOV T,CHEN K,CORRADO G,et al. Efficient Estimation of Word Representations in Vector Space [J/OL].[2023-02-06].http://export.arxiv.org/pdf/1301.3781.
[5] VALLET D,CANTADOR I,FERN?NDEZ M,et al. A Multi-Purpose Ontology-Based Approach for Personalised Content Filtering and Retrieval [C]//2006 First International Workshop on Semantic Media Adaptation and Personalization (SMAP'06).Athens:IEEE,2006:19-24.