一种基于智能家居的用户行为预测方法
2020-01-10沈苏彬
闫 坤,沈苏彬
(南京邮电大学 计算机学院,江苏 南京 210046)
0 引 言
近年来,随着物联网技术的迅速发展,以物联网为中心衍生出很多相关的技术。使用无线传感技术和计算机网络技术等,将小区内的基础服务设施(如冰箱、台灯、热水器)等整合在一起,可以构成一整套智能家居系统。智能家居与传统家庭系统的不同之处在于,在物联网技术基础之上的智能家居系统是“一个家庭利用计算机通信网络联接主要的家用电器和服务,并且可以满足远程控制、监控和访问的系统”[1]。根据物联网的三层架构,第一层是感知扩展系统,负责信息收集和设备控制;第二层是异构集成通用的计算机通信网络系统,负责异构网络的通信和存储;第三层是应用和服务层,负责数据的监控和分析等[2]。目前在智能家居领域中有很多关于前两层的设计,不仅要采集信息和传递信息,还要监控数据和分析数据,才能满足真正意义上的智能[3-8]。
智能家居真正的智能化程度在国内发展速度缓慢,产品定位高和种类少,服务没有保障。根据建设部科学技术委员会智能建筑技术开发与推广中心的报告[9]:随着经济的发展,人们生活水平得到了改善,人们的生活理念发生了变化,旨在追求环保、健康、安全和舒适的生活方式,因此,它将大大增加家庭智能的发展。无论是团体应用还是个人消费,人们往往迫切地需要智能化的应用产品。大多数当前智能家居系统的共有特征是单个的机械自动化控制,不是智能性的,并且系统只能根据提前设置好的程序简单又重复地运行,而根据人们的生活习惯来判断满足个人需求的控制方法是不可能的。因此,存在的问题是,智能家居系统可以采用何种技术手段来挖掘用户的生活习惯和行为方式,最终提供智能的个性化需求服务。
文中通过相关数据库模式的设计和数据库的实现,构建数据挖掘的对象数据和用户行为预测的模型数据;采用相关的、适用于物联网应用场景的算法优化实现方法,根据智能家居应用场景采集的数据,识别和预测用户行为;实现智能家居环境下相关家用电器的最佳优化控制和操作。因此这方面的工作既具有研究意义,又具备实际的应用价值。
1 相关研究
1.1 智能家居的研究现状
近年来,一些智能家居研究集中在智能化方面。文献[10]以嵌入式系统为核心,设计了基于无线技术的智能家居控制系统。文献[11]使用ZigBee技术和数据采集功能来实现数字家庭信息控制。此外,许多专家对智能家居系统中的用户行为进行了深入研究,文献[12]通过分析约束和替代因素的相对权重,获得满足用户需求的服务,从而确保提供服务的满意度和舒适度。文献[13]将普适计算和计算智能结合起来,实现用户与家电的互动。文献[14]提出了基于用户行为方式和家电控制策略的挖掘。
用于智能家居类别中的用户行为预测的常见方法包括关联规则数据挖掘、人工神经网络、支持向量机和决策树分类等。文中采用关联规则数据挖掘来查找海量数据中项集之间的关联联系。相比较其他方法,该方法如果两个或者更多个属性之间存在某种关系,则可以基于其他属性值或其他属性值的组合来推断其中一个属性值。例如,在超市购物环境中,消费者的购买行为被用作数据集,以在购物时挖掘出消费者的关联规则,从而预测出消费者的消费特征与需求,为超市提高利润而制定相应的营销策略提供依据[15]。同理,可以通过挖掘出智能家居环境下用户行为的关联规则,为系统的最终优化控制策略提供基础[16-17]。因此,它适用于发现用户在日常生活的不同行为之间的关联,可以提高用户行为预测的效率和准确率。
1.2 关联规则挖掘的研究现状
一般情况下,对于一个给定的数据集,关联规则挖掘可以分为两步:(1)生成所有的频繁项集,即查找不低于最小支持度的所有项集;(2)生成所有的强关联规则,即查找到不小于最小置信度的所有频繁项集。
在挖掘关联规则的过程中,首先需要找到频繁项集,Apriori算法是基于Apriori的先验性质产生候选项集的,也就是说,频繁项集生成的所有非空子集必须是频繁的。虽然这大大减少了数据集的搜索空间,但它提高了频繁项集逐层生成的效率,因此具有良好的性能。但是随着数据集的增大,会出现两个弊端:产生大量的候选集;需要多次扫描数据库并生成许多候选项集,从而导致使用更多内存。
2 关联规则挖掘算法的优化
通过调研发现选择一种合适的技术来生成频繁项集,即进一步提高基于Apriori挖掘的效率对于提高整个数据挖掘过程的效率显得尤为重要。
首先给出Apriori算法的基本思想。
Apriori算法采用称为逐层搜索的迭代方法,其中第k项的项集用于搜索第k+1项的项集[11]。通过扫描数据集,计数每个项目集的计数,并且记录满足最小支持度的项集,同时找到频繁的1个项集的集合,将该集合记录为L1。然后,通过L1找到频繁的2个项集的集合L2,再使用L2找出L3,依次类推使用find,直到找到所有的频繁k项集[11]。当找出所有频繁的k项集时,完成一次完整的数据集扫描。
主要步骤如下:
(1)扫描全部数据,产生候选1-项集的集合C1;
(2)根据用户指定的最小支持,根据候选1-项集的集合C1生成一组频繁的1-项集L1;
(3)对k>1,重复执行步骤4~6;
(4)通过执行连接和剪枝操作生成一组候选(k+1)-项集Ck+1;
(5)根据用户指定的最小支持,根据候选(k+1)-项集的集合Ck+1,生成一组频繁(k+1)-项集Lk+1;
(6)若C≠∅,则k=k+1,跳往步骤4;否则,跳往步骤7。
(7)根据最小置信度,关联规则由频繁项集生成,算法结束。
上述步骤4中的连接操作是经由Lk+1与自身连接生成一组候选k-项集的集合Ck。剪枝是要求频繁项集的所有非空子集必须是频繁的,去除不满足要求的非频繁k-项集。
考虑采用散列(hash)技术生成频繁项集的算法,该方法通过使用散列函数将候选项集散列到不同的散列桶中,然后再计算每个桶中的项目子集的数量,找出频繁项目集,即大于或等于最小支持度的数值。当根据C1中要确定的1个项目的集合生成频繁的1个项目的集合L1时,可以考虑为每个交易生成相应的全部的2个项目集合,再次考虑将它们散列(即映射)到同一个哈希表中的不同桶结构中,同时计算每个桶中的项目子集的数量。
该方法是以生成哈希表和存储数据集的存储空间为代价来提高算法性能,省略了由散列表设置的k-项集连接生成候选集,显著地压缩了要检查的k项集,特别是当k=2时。可以看出,采用这种基于散列的技术可以大大提高原算法的效率。
3 原型系统的设计和实现
在智能家居系统中,不同类型的传感设备通过蓝牙、Wi-Fi、ZigBee等无线传感网技术[18-20]将采集到的各种传感信息(如位置信息、液位信息、能耗信息等)发送给控制器,控制器通过数据处理模块将大量的传感数据转换为有价值的信息,并向第三方提供数据服务。其中数据处理模块包括数据预处理、数据访问和数据挖掘。数据预处理按步骤分为数据清洗、数据集成、数据转换和数据归约,来保证数据的准确性、完整性和一致性,为后续的挖掘分析提供高质量的数据;数据挖掘是从大量数据中提取或挖掘潜在的、有价值的知识,实现分类、聚类、关联分析、预测、偏差检测等功能的过程。
文中原型系统的设计和实现需要解决数据的采集,预处理和存储,以及用户的行为识别和预测等问题,完成构建无线传感器网络,部署传感器,预处理采集到的数据并且存储数据,识别用户行为,通过关联规则预测用户行为等工作。
原型系统设计为3个功能模块,包括数据采集和预处理模块、网关模块,以及行为识别和预测模块。数据采集模型将构建无线传感器网络,部署传感器,研究实现节能和延伸网络的生命周期。网关模块将研究在PC作为网关的实验硬件平台,设计网关,实现无线传感器网络与互联网的通信;设计面向数据挖掘的数据存储,包括数据存储格式的设计等。行为识别和预测模块读取存储在网关中的数据,进行分析挖掘,结果发送至无线传感器网络的控制节点。总体结构如图1所示。
3.1 数据采集与预处理模块
本阶段收集的数据将要作为该原型系统的训练样本。第一项任务是构建无线传感器网络,初始化网络并添加相应的节点。然后部署各种类型的传感器,通常包括光敏传感器、压力传感器和热释电传感器。最后是数据的通信交互,包括接收器与终端节点的数据通信交互功能、接收器与智能网关的数据通信交互功能。
图1 总体结构
文中需要采集的数据包括室内光照强度,室内活动状态数据,开关状态数据等,量化这些数据需要合适的传感器。按照室内环境数据收集精度的需求,选择适合的传感器达到数据收集的目的。
在智能家居的应用场景下,无线传感器网络的一个重要功能是数据收集,即每个节点收集其传感器数据,并以多跳模式将其传输到接收器。一般情况下在无线传感器网络当中,节点通常搭载电池,由于部署环境的复杂性,充电是不切实际的,不可能的或是不值得的。于是,要思考怎样才能实现节能和延伸网络的生命周期。
压缩感知是一种将数据采集和数据压缩集成在一起的新技术,通过利用信号的稀疏性或可压缩性,突破了经典的香农采样理论的边界,从而可以通过更少的样本实现数据恢复的高精度。现有的许多基于压缩感知的数据收集方案中提出传感器数据在通过特定路由路径发送到接收器之前与一些系数相乘。接收器通过使用这些接收的测量结果构建每个节点的原始数据,其中恢复过程中采用的测量矩阵与测量过程中的测量矩阵相同。
压缩感知最初是为有效存储和压缩数字图像而开发的,在无线传感器网络中不一定能满足压缩感知表现良好的条件。例如,在一些方案中使用密集随机矩阵投影增加了节点之间的通信开销,从而降低了无线传感器网络中压缩感知的有效性。一些方案引入稀疏样本以减少流量,但是为了实现均匀和随机的测量,它们需要精确的路由算法。
随机游走是一种有效的,不需要全局信息的路由方法。随机游走路径上的每个节点从其邻居中随机选择其下一跳节点,而没有精确的路由控制。这种随机跳转机制可以有效地实现本地负载均衡。与传统的树或基于簇的结构相比,它可以延长网络的生命周期。
基于随机游走的压缩感知数据采集方案集成了压缩感知和随机游走,以实现优势互补,有效地缓解了传统压缩感知方案的不足。通过线性组合沿随机游走路径的节点的传感器数据,实现了有效的稀疏采样测量。与传统的基于压缩感知的数据采集方案相比,基于随机游走的压缩感知数据采集方案可以有效降低通信开销。在随机游走的多跳传输过程中,每个节点从包含多于一个节点的候选列表中随机选择其下一跳节点。它实现了局部能量平衡,减少了对少数人依赖的瓶颈,从而延长了网络生命周期。
数据预处理具体包含数据的清理、集成、选择、转换等,数据清理是在数据中消除错误和不一致,并解决物体识别问题,去除噪声或无关数据,处理数据中缺失的数据字段;数据集成将来自多个数据源的数据组合在一个统一的数据存储中,解决了语义歧义并整合到一致的数据存储中;数据选择基于对发现任务和数据本身内容理解,寻找依赖于发现目标的表达数据的有用特征,要减小数据的大小,在尽可能保持原始数据的同时最大化数据量,数据选择可以使数据的规律性和潜在特征更加明显;数据协议将识别出需要挖掘的数据集,并缩小处理范围,这是基于数据选择进一步减少挖掘数据。
3.2 网关模块
该功能模块主要包括设计网关;设计数据格式,以促进数据存储,包括数据的添加、删除、修改和查询等操作,提供预处理数据用于后续用户行为识别和行为预测。
智能家居网关是连接智能家居内外通信的桥梁,在家庭内部,通过无线传感器网络实现对各种传感器设备的控制与管理;在家庭外部,通过互联网达到远程通信与控制的目的。文中的网关系统将于PC端实现,具体的功能包括:无线传感器网络与互联网通信,传输数据,预处理数据,并存储传感器数据。
网关的基本目标是解决不同端点网络和Internet之间的异构性,加强端点网络的管理,并将传统Internet与端点网络连接起来。由于最先进的物联网网关旨在连接到移动和无线网络,它们强调在智能设备和用户云之间提供灵活的连接,实现智能大数据分析和数据驱动决策。此外,它们可以灵活地配置不同的协议模块,以与终端节点或输入输出设备进行通信。
网关务必要支持各个端点的多样性,同时考虑到不同种类的终端设备支持不同的接口,来自不同节点集的数据的收集和聚合需要一种用于以一致且可靠的方式桥接具有一系列处理能力和接口的设备的手段。它们通过支持不同的设备连接方法来实现这一目标,无论这是来自原始传感器的变化电压,还是来自编码器的I2C数据流,还是来自通过无线网络的定期更新的设备。网关通过整合来自不同来源和接口的数据并将它们连接到互联网,有效地减轻了设备的多样性。因此,各个节点不需要承担高速因特网接口的复杂性或成本以便连接。
然而,当前的物联网网关被动或半自动地运行。这意味着,当用户使用新的设备时,需要根据设置手册手动安装设备。之后,IOT网关询问用户是否应该注册新设备。为解决这一问题,可以考虑提出一种适用于小规模物联网环境的可靠物联网网关。当用户在家中带来新设备时,物联网网关自动检测此新设备并自行注册。如果用户从他/她的家中丢弃旧设备,则智能物联网网关会自动从设备列表中删除该设备。用户没有必要关心如何注册和安装新的物联网设备。
当今可用的物联网网关允许用户设置一些电视频道,灯光,冰箱等属性。然而,未来的智能家居,特别是基于软件定义网络的智能家居,可能具有非常丰富的配置控制。旨在开发能够使物联网网关自动配置的算法,提出了一个自动配置的初步研究,它考虑了两个属性:动态发现和自动注册。使用IoTivity框架设计物联网网关IoTivity的交互模型,这类似于HTTP的客户端/服务器模型,并使用CoAP协议进行设备到设备(D2D)通信。使用选项和有效负载字段来收集每个设备的属性信息。标题中CoAP字段的详细信息在IETF RFC文档中定义。但是,D2D交互通常会导致IoTivity实现在客户端和服务器角色中都起作用。IoTivity操作等同于HTTP的操作,并由客户端发送以请求对服务器上的操作(由URI标识)。然后,服务器传回响应代码,此响应包括资源表示。
数据存储考虑到智能家居环境下的数据量,用户的个人隐私等因素,选用SQL Server数据库存储数据。该数据库是一种关系型的数据库系统,是一个能扩展的、高性能的、为分布式客户端/服务器计算所设计的数据库管理系统。存储传感器数据的特征向量,在数据库中创建sensor_Data表,其表的结构如表1所示。
表1 sensor_Data表结构
3.3 行为识别和预测模块
该功能包括基于隐马尔可夫模型的行为识别和基于关联规则数据挖掘的行为预测。分析用户的行为偏好,它以时间戳的顺序呈现,该序列可以包括用户已经发生过的吃饭、看电视、洗衣服和睡觉等行为,最终预测用户未来的兴趣。采用一种新颖的情境感知推荐系统,该系统根据从该用户收集的反馈序列对用户的情境变化进行建模。所提出的方法监视用户偏好的变化并动态地适应这些变化。
许多现有的传统推荐系统假设用户偏好模式是静态的并且基于用户的交互和偏好历史产生推荐。然而,通常由于用户兴趣和他们的背景变化的变化,用户的偏好可能随时间而变化。对于诸如听音乐和看电影之类的频繁选择的项目,用户的偏好可以由于他们的兴趣的演变而改变。例如,用户的音乐推荐系统可以基于当前上下文(运动,驾驶等)推荐不同类型的音乐。这些更改已促使用户过去选择使用的推荐系统。尽管传统的推荐系统具有识别用户的过去偏好的能力,但是如果用户的偏好在训练阶段之后发生改变,则基于过去的偏好的推荐并不总是为用户提供最大的益处。不考虑这些更改可能会显著降低系统性能。
另一方面,智能手机的流行和无处不在的计算使推荐系统能够访问用户的文本信息。考虑用户的上下文感知推荐系统使用上下文信息,例如用户活动,时间和位置等,来了解用户上下文及其对用户偏好的影响。与使用过去用户偏好的其他推荐系统相比,该系统提供接近每个用户的当前上下文的相关推荐。
一种新颖的分层隐马尔可夫模型用于从数据中提取潜在的上下文。潜在的上下文由无监督的隐藏上下文模式组成,其在建议的方法中被建模为状态。文中用户选择的项目被视为给定时间段内的序列。并且还假设用户上下文不是由直接因素提供的,这些因素是动态的,应该从用户与系统的交互中推断出来。在当前上下文中使用用户选择和用户先前偏好的推荐系统可以向用户提供兴趣推荐。例如,基于用户在当前上下文中收听的音乐序列,推荐系统可以推荐相关的音乐。要想估测所提出的模型,采取由时间戳数据序列组成的训练样本。
采用基于Apriori算法的关联规则数据挖掘,首先把处理后的事件序列化,即事务用字母表示。由于同一事件可能在白天多次发生,因此同一天的同一事件可以通过不同的字母区分,在同一天中同一个事件可能发生多次,第一次发生时用字母A表示,当再次发生时可以用字母B表示,比如做早饭、做晚饭。某用户一天的行为动作可能为做饭、洗衣服、做饭、洗澡,那么可以表示为ADBJ,依次类推。然后,最小支持度和最小置信度分别设置为0.5和1,并且基于Apriori的关联规则数据挖掘算法程序由Java语言实现,输入是最小支持度和最小置信度的事件序列,输出则是关联规则。
4 实验与结果分析
测试场景选取某小区一家庭,分别在门、电视桌、洗衣机、热水器和床等关键位置部署门传感器、位置传感器、压力传感器和光敏传感器等,测试行为包括吃饭、看电视、洗衣服、洗澡、睡觉共5种行为动作。测试方法要求参与者根据自己的生活习惯,将5种行为动作穿插在一起,模拟日常行为,获取到的数据集作为训练集,结果如表2所示。
表2是行为列表,在数据库中有9个事务,项目a,b,c,d,e分别表示用吃饭、看电视、洗衣服、洗澡、睡觉。
表2 行为列表
首先设最小支持度为3,即min_sup=3,利用Apriori算法产生候选项集及频繁项集。
使用如下散列函数创建散列表H2,h(x,y)=((x的序)*10+(y的序) mod 7)。
由C1中的候选1项集产生频繁1项集L1时,可以对每个事务产生所有的2项集,将它们散列(即映射)到散列表结构的不同桶中,并增加对应的桶计数,结果如表3所示。
表3 散列表H2
分析:因为最小支持度为3,则可以通过观察哈希表H2时发现其中的桶0,1,3,4中的项集不可能是频繁的,可以从候选集中删除,因此它们不包括在C2中。该方法省略了由散列表设置的k-项集连接生成候选集,显著地压缩了要检查的k项集,特别是当k=2时。可以看出,采用这种基于散列的技术可以大大提高原算法的效率。
同理,再经过几次迭代扫描可以找出全部的频繁项集。然后设置最小置信度为05,即min_confidence=0.5,利用上述步骤产生的频繁项集产生关联规则。例如,
Confidence(i1⟹i2)=4/6=0.67≥0.5
(1)
Confidence({i1,i2}⟹i3)=2/4=0.5≥0.5
(2)
部分测试用例如表4所示。
表4 测试用例
最后进行实验结果分析,由式1得到该用户在吃饭时有2/3的概率会看电视,因此可以在感知到用户坐在餐桌前时,智能地控制电视的自动打开,减少人工干预。由式2得到该用户在吃饭和看电视之后有1/2的概率会睡觉,比如午休时,因此可以在感知用户离开餐桌时,智能地控制电视的自动关闭,同时调节空调到适宜的温度等。一般情况下,用户的日常生活行为习惯不会改变,且模式一致,因此可以为智能家居系统的控制策略提供良好的理论依据。
5 结束语
重点阐述了目前的智能家居系统,该系统只能根据事先设定的程序控制方法和规则简单重复,根据用户的日常生活习惯,不可能随时提供满足个人需求的服务。因此,根据关联规则数据挖掘算法,提出了一种预测用户未来行为的方法,为系统的控制策略提供理论依据,使得家居生活更加灵活、智能化,向更加人性化和智能化迈进。