用户序列行为分析研究与应用综述

2018-10-10 03:25陈恩红陈玉莹
关键词:贝叶斯建模矩阵

陈恩红,陈玉莹,潘 镇,李 徵

(中国科学技术大学 计算机科学与技术学院 大数据分析与应用安徽省重点实验室,安徽 合肥 230027)

近几十年来,伴随着整个社会对移动互联网的广泛接受,用户产生的数据呈现出爆炸式增长[1],如新浪的日活微博超过1.34亿,Twitter的总用户量已经超过5亿.与此同时,人们利用信息技术进行生产和搜集数据的能力也大幅度提高[2].遍布各个行业的海量数据包含大量和用户相关的信息,利用机器学习、数据挖掘的建模方法可以对用户的行为数据进行深度分析,挖掘出用户行为数据背后隐藏的兴趣爱好、消费倾向,为企业在市场竞争中留住已有用户、吸引潜在用户提供重要的技术支撑.因此,用户行为分析成为工业界和学术界广泛关注的课题[3-4].

在现实世界中,用户在很多场景中的行为是序列化的,很多信息呈现序列特征[5-6],这种序列数据在用户行为分析中也得到了极大的体现.例如:现代电商平台的用户浏览购买数据包含了长期和短期两种不同模式的兴趣爱好[7-8];基于社交媒体的微博数据往往是以时间线的形式呈现,用户在不同时刻产生的文本等内容往往在主题和情感上各不相同[9];基于在线学习平台的学生数据往往以周期形式变化,学生在不同学习阶段的学习内容和知识水平也会各不相同[10].因此,序列信息成为用户行为分析中十分重要的影响因素.围绕该领域的相关研究中,一个主要的挑战就是如何分析利用用户序列行为数据,更加精准地对用户序列行为进行建模并应用于各个行业的实际场景.

序列模式挖掘最早是由Agrawal等[11]在1995年针对超市购物篮数据的分析中提出的.序列模式挖掘的目标是要找出序列数据库中所有超过最小支持度阈值的序列模式.除了购物篮数据,序列模式挖掘还有着广泛的应用领域,如商业组织可以利用序列模式挖掘研究用户购买行为模式特征和用户网络访问模式.序列模式挖掘与关联规则挖掘在很多方面是相似的, 但序列模式挖掘更关心数据之间顺序的关联性.最早的序列模式挖掘算法大多基于关联规则挖掘算法Apriori[11].近些年来,在序列模式挖掘的基础上,人们提出了很多基于机器学习、数据挖掘技术的序列建模方法,如张量分解[12-13]、隐马尔科夫[14]、动态贝叶斯网[15]和循环神经网络[16].结合各个领域数据的独有特征,用户序列行为分析的研究与应用在各个领域大放异彩.

论文对近年来用户序列行为分析的研究与应用进行综述.首先,详细阐述序列数据的格式和特征,以及用户序列行为分析的各类任务;其次,从基于分解的模型、贝叶斯模型、深度学习模型3个方面梳理用户序列行为分析技术的研究现状;然后,从社交网络、推荐系统、智慧教育、智慧交通4个领域列举了用户序列行为分析的实际应用场景;最后,从建模技术和应用价值两个方向对用户序列行为分析的未来发展趋势进行探讨和展望.

1 序列数据特征与问题定义

用户的行为往往受用户兴趣、时间、地理位置、社交好友等多种因素的影响.其中,序列数据往往展现了用户行为变化的规律,其数据格式在不同领域具有独特的数据特征和形式.该章节首先总结了用户序列行为数据的几种主要特性,其次阐述了基于这些时序数据的几类数据挖掘任务.

1.1 序列行为数据特征

用户序列行为数据可以表示为一个有限集{(x1,y1),(x2,y2),…,(xn,yn)}.例如,当某一个用户浏览购物网站时,产生的序列行为可表示为

{(a,click),(b,click),(a,cart),(b,collect),(b,buy),…,(f,click),(f,buy)},

其中:a,b,f代表不同商品;click,cart,collect,buy分别代表点击、加购物车、收藏、购买行为.

时间序列是序列的一种特殊形式,当xi为时间数据并且x2-x1=x3-x2=…=xn-xn-1时,这个序列是一个时间序列(time series).时间序列在近几十年被广泛地研究,在表示与索引[17,19]、相似度衡量[20-22]、分割[23-26]、可视化[27-30]、模式发现与聚类[31-35]、分类[36-37]、规则发现[38]和摘要[39]等研究方向上都有大量研究成果.由于篇幅所限,论文略过时间序列的经典算法,而着重介绍近些年来在用户序列行为上使用的技术和应用场景.

用户的序列行为数据并不仅仅是具有时间信息的数据,用户在长期或者短期的行为往往有一定的规律和模式,按照数据变化的规律将用户序列行为数据分为以下4种类别:

趋势(长期)变化:它用于反映用户在一段时间内的行为规律,通常可用于挖掘用户长期行为数据的共性以及未来趋势的预测,如根据用户的在线时长或者行为记录,预测用户的流失率[40]和潜在的兴趣[41].

序列(短期)变化:它用于反映用户在短时间内频繁进行的一系列操作,这类数据往往更能反映用户当前时刻的主要意图[7],对用户建模的在线实时更新起到了极其重要的作用.

周期性变化:它反映的是每间隔一段时间后,用户会呈现相似的状态.如基于在线学习辅导系统的学生行为数据,因为学生在一段时间内可能会集中学习某个章节相关的课程,不同时间段内,学生所需要学习的课程内容,以及对应知识水平往往会有一定的差异[10].

随机性(异常)变化:它反映的是随机或者特定事件引起的零星时序变化.如双十一期间用户指数级增长的消费记录,某个热点新闻造成的用户微博大量转发[42]等.该类数据对于特定时间或者事件所引发的用户行为的分析十分重要.

1.2 序列分析任务

针对序列数据的特性,一系列的数据挖掘任务在不同的场景下展开,这些任务可以分为以下几类:预测、分类、聚类、搜索与检索、模式发现.在该节中,将提供关于这些任务更详细的描述.

预测任务:序列预测任务通常是基于先前的序列数据预测未来可能的取值,为了做到这一点,需要建立一个对序列敏感的预测模型[43],模型的输出随序列的变化动态更新.实际应用中有很多序列预测需求,如基于学生学习数据的成绩排名预测[44]、基于用户浏览记录的商品推荐[7-8,16]等.

分类任务:在序列分类任务中,呈现给系统的每个序列被假定为属于单个或者多个类别,目标是自动确定给定输入序列的对应类别[45-46].其主要特性在于:序列内部是有序的,并且这种序列性对于正确分类的影响不可忽视.如基于用户评论的情感分类任务,一条用户的评论信息可以看成一条文本序列,而文本内部每个词是有序的,这种顺序性对于正确区分用户的情感十分必要[47].

聚类任务:序列的聚类是基于序列集合的相似性对它们进行分组.聚类对序列数据特别敏感,因为它本身潜在的趋势特性,有助于聚类算法快速捕获数据集中的结构信息.如基于用户的网络活动日志,可以对用户进行聚类和分组以展示不同的导航模式[48].在金融数据中,它有助于挖掘具有相似价格变动趋势的股票,从而对用户的投资风险进行评估[49].

搜索与检索任务:搜索与检索任务是序列数据挖掘中一项重要的任务,其核心思想在于从大量的序列文档中快速有效地定位子序列(通常指查询),或者判断查询和待搜索文本的序列相似性匹配[50].

模式发现任务:基于序列数据的模式发现任务是将排序信息合并到模式发现中,其与基础的频繁模式挖掘的区别在于,每一个事务都有对应的时间戳,用户的一次交易行为包含一系列的事务集合,事务与事务之间具有时间先后顺序[51].

2 用户序列行为分析技术

该章节将总结近年来用户序列行为分析的三种主要技术方案,即基于张量分解的模型、贝叶斯模型和深度学习模型,并着重阐述如何将序列信息融合到建模过程中.

2.1 基于张量分解的模型

概率矩阵分解模型[52-53](probabilistic matrix factorization, 简称PMF)因其简单高效的特性被广泛应用于各类得分预测任务中,特别是在基于协同过滤的推荐系统中.其特点在于通过隐含特征来联系用户和物品,将“用户-项目”评分矩阵R分解为维度为D的“用户-隐含特征”矩阵U和“物品-隐含特征”矩阵V,有

(1)

然而,传统的各类矩阵分解模型往往基于一个静态的假设,并不能直接应用到时间序列数据,因此,近些年来,研究者们基于矩阵分解提出了各种改进以应用于时间序列数据.一个最直接的想法便是增加时间的维度T,从2维的矩阵转化为3维的张量,有

(2)

张量分解模型被广泛应用于各类时序预测任务中.如图1所示,张量分解[11-12]将“用户-项目-时间”评分张量分解为“用户-隐含特征”矩阵U、“物品-隐含特征”矩阵V和“时间-隐含特征”矩阵T,由于加入了时间的特征矩阵,不同时刻的用户-项目评分大不相同.

图1 张量CP分解

Chua等[54]认为时间因素主要体现在用户的序列行为上,即用户在不同时刻的隐含特征矩阵是在上一时刻的基础上不断变化的,基于以上的分析,他们提出了动态矩阵分解模型(dynamic matrix factorization, 简称DMF)为

(3)

此外,也有学者尝试加入一些外部的先验知识实现基于矩阵分解的动态建模.Wu等[55]认为用户在不同时刻的消费偏好受到用户当前时刻的自身偏好,以及用户当前社交关系好友偏好的影响.其将社交学理论和用户的时序行为融合到概率矩阵分解模型中,最后模型将得到用户在不同时刻的购物偏好,以及用户不同时刻社交关系的构建.Koren等[56]认为每个物品的受欢迎程度会随着时间变化而改变,用户也会随着时间改变他们的评价标准.故作者在传统的矩阵分解中加入物品和用户个性化的参数,表示用品的受欢迎程度以及用户的评分标准,而这些参数都是跟时间相关的.

2.2 贝叶斯模型

贝叶斯网络是一个有向无环图(directed acyclic graph, 简称DAG),它反映了一系列变量间的概率依存关系,没有考虑时间因素对变量的影响.而沿时间轴变化的贝叶斯网络即构成动态贝叶斯网络,如图2所示.动态贝叶斯网[57]既能够表征变量之间的概率依存关系,又能描述这一系列变量随时间变化的情况,是贝叶斯网络在时间变化过程上的扩展.因此,动态贝叶斯网被广泛应用于用户序列行为分析的建模[15,57-59].文献[57-58]将动态贝叶斯网络应用于学生建模,评估学生在学习过程中的认知水平.Chapelle等[15]利用动态贝叶斯网络为用户提供更加精准的网络搜索排名,移动用户的行为和地理位置分析也同样适用[59].

图2 动态贝叶斯网络示意图

此外,隐马尔科夫模型(hidden Markov model, 简称HMM)是一种特殊的贝叶斯网络,其作为一种有效序列模型也在用户序列行为分析中得到了广泛的应用[60-66]. HMM的基本模型如图3所示,其最基本的假设即当前状态yt只与前一个状态yt-1有关,这种序列性描述了由一个隐藏的马尔科夫链随机生成不可观测的状态随机序列{xt-2,xt-1,xt},再由各个状态生成一个观测而产生观测随机序列{yt-2,yt-1,yt}的过程.而现实生活中,大量场景下的序列数据都符合隐马尔科夫的这种基本假设. Dias等[60]利用隐马尔科夫模型实现了对金融时间序列数据的聚类;文献[61-64]是隐马尔科夫模型在追踪学生认知水平领域的一系列扩展;文献[65-66]将隐马尔科夫模型成功应用于推荐系统.

图3 隐马尔科夫模型示意图

2.3 深度学习模型

随着深度学习模型在自然语言处理(natural language processing, 简称NLP)等领域序列分析上取得了巨大成功,越来越多的研究人员开始关注深度学习模型,并使用深度学习方法对行为序列数据进行处理,从中挖掘行为模式,分析序列关系.例如:Zhou等[67]提出了一种基于注意力网络模型用于建模用户的行为从而辅助用户个性化推荐过程中;Zheng等[45-46,68]利用多通道的卷积神经网络实现对时间序列的分类.事实上,用户行为中存在大量复杂的关联,这种关联往往是非线性的。深度学习模型能够较好地学习和构建输入特征之间非线性的复杂关系,因此,深度学习模型可以很好地捕捉用户行为上下文关系,并对序列行为进行有效学习.因此,深度学习模型可以很好地捕捉用户行为上下文关系,并对行为序列进行有效学习.

在深度学习模型中,循环神经网络(recurrent neural network, 简称RNN)是一种常见的序列模型.循环神经网络通过引入定向循环来处理序列数据的前后关联,网络会对前面的信息进行记忆并应用于当前输出的计算中.如图4所示,在某一时刻t,隐藏层的输入不仅包括输入层xt,还包括上一时刻隐藏层的输出ht-1,这样网络的每一步输出ot都会和序列前列的输入相关.循环神经网络的这种特性对序列数据的动态建模有着十分明显的优势,研究人员利用循环神经网络的这种特性演化出了两种变种,即长短期记忆网络(long short-term memory, 简称LSTM)与门循环单元(gated recurrent unit, 简称GRU),这两种网络都对非规整、变长序列进行了很好的改进.

图4 循环神经网络示意图

得益于循环神经网络对序列的动态特征的有效学习,越来越多的工作开始结合循环神经网络对用户行为序列进行分析与建模.例如:Hidasi等[69]使用GRU模型对用户短会话(session)场景下的点击行为进行建模,并推荐用户下一个感兴趣的商品;Su等[70]使用循环神经网络对学生学习行为进行序列分析并运用到试题表现的预测中;文献[71]利用LSTM深度挖掘用户社交媒体上发布内容的时间序列关系从而对发布内容热度进行预测.这些工作都证明了深度学习模型能够从用户数据中高效地学习行为背后隐藏的用户与市场序列模式.

3 用户序列分析的应用场景

用户序列行为分析可以应用于多种场景,该章节将着重介绍推荐系统、社交网络、智慧教育和智慧交通4个方面,除此之外,用户序列行为分析还可用于广告点击、事件检测等任务.

3.1 推荐系统

推荐系统是电子商务平台最重要的组成部分,通过对用户序列行为的分析与挖掘,推荐系统能够智能地发现用户偏好,并对用户的下一次交易过程提供一定的帮助和指导.

在传统工作中,研究人员常常结合数据挖掘方法与用户心理学[72]、行为学[73-74]等交叉学科知识,对用户历史的行为序列进行静态建模,挖掘其中隐含的用户固有行为模式与用户偏好更好为用户提供更高的推荐服务.如Liu等[72]通过分析用户行为序列中隐藏的用户对商品的犹豫度,从而辅助推荐系统更好地为用户进行推荐.随着研究人员对用户行为序列研究的深入,越来越多的序列推荐场景开始引起大家的关注,如基于短会话的推荐[69]、下一个商品[75]、购物篮推荐[76]、兴趣点(point of interest, 简称POI)推荐[77]等.这些场景往往建立在对用户的购买或者决策行为的序列分析基础之上,综合考虑了用户偏好的序列特征,学习到用户行为模式并对用户的下一个行为进行预测,更加合理地为用户进行推荐.例如:文献[76]提出了一种结合矩阵分解的马尔科夫链用来预测用户的下一个购物篮可能会出现的商品,从而对用户的下一次购物篮进行推荐;Wang等[78]使用深度学习模型对用户行为序列进行表达,并用于预测用户下一个购物篮中的商品;文献[79]提出了一种基于注意力机制的神经网络模型,在基于短会话的商品推荐中较大地提升了推荐结果的准确度.

推荐系统领域中,用户决策过程的序列特征对用户行为理解与预测是十分重要的.这些序列信息不仅可以帮助系统更加深入地理解商品之间的显式序列关系,还能更进一步地辅助理解用户的动态偏好信息以及用户的购物目的[80],这对构建更加准确、智能的推荐系统起到了很大作用.

3.2 社交网络

真实世界中,社交网络结构一直处于演化过程,伴随着新的节点和链接的加入,近年来越来越多的研究工作关注于时序的链路预测,即输入数据通常包含社交边创立的时间或者不同阶段社交网络的快照信息[81].一种简单有效的方法,是将多个时间段的链路数据通过加权平均压缩到一个矩阵中,然后利用静态的链路预测方法处理压缩后的矩阵[82-83].其他研究者提出了利用张量分解或者非参数时间序列模型来挖掘社交图演化过程[84-85].

此外,用户的消费偏好对社交图的结构有着重要影响,而用户也可能会根据社交朋友的决定改变自身的消费行为.Jamali等[86]从宏观角度研究了社交网络和用户评分行为的双向关系;Yang等[87]对用户的消费行为和社交链接进行了共同建模;Wu等[88]集合社交情境下的用户消费情况建模以及用户对产品的时序喜爱程度,预测用户的时序产品使用率,并且利用用户-产品之间的消费行为以及用户-用户建立的社交链接行为,对用户的消费行为和社交行为的联合演化建模[55].

3.3 智慧教育

随着教育信息化的持续深入以及互联网的迅猛发展,在线教育已成为计算机融合传统教育领域而形成的一个新的重要研究和应用方向.面向学生的在线学习数据的建模技术主要应用于以下3种实际任务:得分预测[89]、知识水平诊断[90]、退课预测[91].教育学专家指出,学生在长时间的学习进程中会不断学习新的知识遗忘旧的知识,甚至会因为自身的惰性将学习任务不断拖延[92].因此基于序列行为数据的学生建模是智慧教育领域的一个重要研究课题.

Thai等[93]利用张量分解技术基于学生历史的答题数据预测其未来的表现.Chen等[10]将教育学中的学习曲线和遗忘曲线等先验知识应用到概率矩阵分解模型中,动态地追踪学生不同时刻的知识掌握水平,并预测其在不同时刻的做题表现.考虑到学生做题先后的序列性,有学者将循环神经网络模型应用到学生答题的序列预测任务中,循环神经网络的隐含层输出可用于表征学生答题过程中知识水平的变化,并取得了可观的表现[91].考虑到试题的难度差异,Su等[70]利用双向循环神经网络表征试题的文本信息,并结合学生的序列作答数据预测学生的答题表现.

得分预测任务往往只能获得学生基于试题层面的表现,而针对性的教学辅导往往更加关注学生知识水平的不足,因此基于知识点层面的知识水平分析也引起了广大学者的关注.基于隐马尔科夫模型的贝叶斯追踪模型(Bayesian knowledge tracing, 简称BKT)在智能辅导系统中广泛应用,其把学生在某一个知识点下的做题结果看作一条马尔科夫链,学生对于该知识点的掌握情况则是对应的转移状态[61].有学者将学生个性化的猜测和遗忘参数结合到BKT模型中,提升了BKT模型的知识诊断精度和解释性[63].而 Pardos等[64]认为猜测和遗忘应该是跟试题相关的,而不是学生,将试题的难度信息等应用到学生序列性知识水平诊断工作中.Zhang等[94]结合知识点和学生序列答题数据,利用动态的记忆网络实时追踪学生知识水平的变化.

此外,退课预测也是在线学习系统的主要研究任务之一.Lykourentzou等[91]将学生是否能完成课程看作一个二分类任务,结合学生每天的在线学习时长、提交作业的次数等时序特征并利用神经网络、最大支持向量机等机器学习算法测试分类的表现.而Halawa等[40]则认为学生退课的概率往往跟学生日常的活跃程度以及学习的持久程度相关.

3.4 智慧交通

智慧交通能缓解资源供需不匹配、路网利用不均衡、公共交通分担率低等原因造成的交通拥堵,改善城市交通状况,提高城市交通系统的整体运行效率,在智慧城市建设中发挥着非常重要的作用.其中,用户轨迹数据挖掘是智慧交通重要的研究方向,用户的运动轨迹可视为用户个体的序列行为,出租车等车辆的移动轨迹可视为用户群体的序列行为.研究者通过全球定位系统、无线局域网络、蓝牙等技术手段,获取用户和车辆等物体的位置、时间、访问频率、共现模式等信息,然后通过数据挖掘等技术分析与理解移动对象的活动规律和特性,预测个体行为和群体事件,并应用于智慧交通、城市规划等任务中.

在算法方面,Wang等[95]提出了基于Apriori的有效组模式挖掘算法和基于FP-Growth的有效组图结构挖掘算法来挖掘组模式.Zheng等[96-97]不仅考虑利用轨迹简化技术来简化轨迹,在轨迹段上进行聚类,而且通过建立网格索引大大降低了空间区域查询的计算量.他们还研究了在轨迹数据库不断增加的情况下,利用增量式算法挖掘聚集模式.Ge等[98]提出实时轨迹异常检测算法,通过分析移动对象的行为发现前K个(top-K)异常轨迹.不同于以往的基于距离的轨迹计算,他们同时考虑了异常轨迹在空间距离上和运动方向上的离群因素,首先为空间区域建立方格,为每个方格定义方向矩阵,根据轨迹的历史数据生成基于方向的摘要向量;然后计算指定轨迹和摘要向量的距离,以此判断该轨迹的异常情况.在应用方面,Yuan等综合考虑了交通模式、时间、目的地等情境信息及司机群体智慧,实现了一种实时的路线推荐[99]以及载客地点推荐方法[100].

4 结束语

针对用户序列行为领域的研究与应用,论文首先分析和介绍了序列数据的特性以及基于用户序列行为数据的数据挖掘任务;然后,从基于分解的模型、贝叶斯模型、深度学习模型3个方面详细阐述并总结了近些年来用户序列行为建模的技术进展;最后,列举了用户序列行为在推荐系统、社交网络、智慧教育、智慧交通4个领域的实际应用场景.

从上述研究现状可以看出,基于用户序列行为的分析仍然是一个充满挑战的研究领域,它仍然有许多值得深入探索和亟待解决的问题.首先,从建模技术的角度,文献[101-102]尝试使用不同的深度学习模型对用户的序列行为建模.但是用户的序列行为分析往往对时间非常敏感,导致算法的在线实时更新对算法的复杂度和时间效率要求更为严格,而且用户的序列数据往往长短不一,并且具有稀疏、隐含兴趣多变的特性,如何设计更为高效的算法实现对用户序列行为更为精准的分析仍具有很大的挑战.其次,从用户情境的角度来看,文献[103]对用户的多种序列行为同时建模.但是用户的行为往往受地理位置、社交好友、自身兴趣多种因素的影响,如何综合多种因素对用户进行序列建模仍值得进一步探索.最后,从应用场景的角度出发:文献[104]对移动设备的用户按键序列行为进行建模,来识别用户;文献[105]对某网站的用户点击序列行为进行建模,来预测用户的未来行为.但是不同场景下的数据规律和特征往往区别很大,而对于不同领域的用户行为规律往往需要综合领域专家和心理学专家等各方面的先验知识.如何泛化用户序列建模的技术,降低领域专家先验知识的影响,使其能够在新领域快速展开应用也是一个值得深入研究的课题.

猜你喜欢
贝叶斯建模矩阵
基于FLUENT的下击暴流三维风场建模
基于贝叶斯定理的证据推理研究
基于贝叶斯解释回应被告人讲述的故事
联想等效,拓展建模——以“带电小球在等效场中做圆周运动”为例
求距求值方程建模
基于PSS/E的风电场建模与动态分析
租赁房地产的多主体贝叶斯博弈研究
租赁房地产的多主体贝叶斯博弈研究
多项式理论在矩阵求逆中的应用
基于互信息的贝叶斯网络结构学习