樊其锋 黑继伟 吕闯 庞敏 尚喆 夏云龙 邢志钢
广东美的制冷设备有限公司 广东佛山 528000
近几年,随着物联网[1]和智能化的发展,各家电厂商逐步从传统的制造技术向基于物联网的智能家居[2]转型。行业竞争日益明显,为了提升竞争力,需要不断探索新的领域。基于用户行为进行算法建模,为用户提供精确的空调控制推荐服务至关重要。但是,用户行为习惯方面具有一定的差异性,例如:冷热喜好、节能需求、睡眠场景等,也会很大程度上影响推荐的准确性。本文研究基于行为曲线的用户协同过滤推荐算法,该算法可以充分反映人群在不同场景和习惯上的差异性,推荐的操作更加准确和舒适,提升用户体验和黏性,促进空调行业的智能化发展。
空调行为推荐具有非常重要的意义:对用户而言,可以让空调使用更加便捷;对空调厂商而言,可以增强用户黏性,提升用户使用体验,最终提升销量。目前,主要分为用户研究和智能推荐。用户研究以问卷法、入户访谈等方法为主。近几年,互联网行业得到飞速发展,大数据和人工智能更是炙手可热[3],推荐方法不仅仅局限于传统的统计,而是升级到了基于算法与大数据的智能推荐。智能推荐主要包括基于分类回归、协同过滤等[9]。
基于分类回归的推荐算法包括贝叶斯、KNN等算法[4]。贝叶斯分类是通过给出的待分类项,求解在此项出现的条件下各类别出现的概率,概率最大的分类项,则被认为此项所属的类别;K近邻是通过找出训练集中与该实例相似度最大的K个实例,并根据这K个实例的类别确定该实例的类别。
协同过滤(CF)算法,分为User-based和Item-based两类[7]。Userbased协同过滤算法[6]是找出一个用户的相似偏好集合,根据相似用户的偏好预测该用户的行为;Item-based协同过滤算法[5]则通过计算用户对不同内容的偏好程度,从而预测用户的行为。
此外,智能推荐还可提供个性化的推荐服务[8]。其中,基于用户行为的自学习推荐[10,11,15],也具有较好的运用。
本文采用了基于行为曲线的用户协同过滤控制推荐算法:UBCbased CF,根据用户行为曲线相似度,找到相似行为用户,从而根据相似用户的空调操作进行推荐。该算法反映了人群在不同场景和习惯上的差异性,推荐的操作更加准确和舒适。
本章详细介绍空调行为推荐的流程。总体架构如图1所示。首先,提取用户的历史操作行为曲线,以表示该用户;然后,通过计算行为曲线的相似度,来评估每个用户与该用户的相似度;接着,查找距离该用户最近的K个邻居,通过协同过滤算法获取推荐值,实现空调的智能化控制。
图1 协同过滤推荐流程图
接下来,将分别从用户表示、计算行为曲线相似度、计算用户行为相似度、协同过滤推荐这几个部分进行阐述。
从物联网空调上收集用户操作行为数据,主要包括操作时间(开关机、调节温度、调节风速等发生的时间)、开关机、设置模式、设置温度等数据。本文以操作行为来表示用户。
经过历史行为统计发现:用户对空调的操作60%会出现在开机10分钟内,80%出现在30分钟内,90%出现在2小时内。因此,用户操作的时间序列对行为分析具有很大的影响。
本文通过提取空调运行过程中的时间阶段特征,以时间为X值,用户设置温度、风速、开关机等分别为Y值,建立行为曲线。下面以设置温度为例对用户行为曲线(设置温度)的生成过程进行详细阐述。
(1)生成行为曲线:以时间序列为X轴,以设置温度为Y轴,建立二维空间坐标系。
(2)行为曲线归一化:由于受到气候环境的影响,用户的使用时长不同;而且,较短的使用记录,并不能反映空调从开机到达温再到稳定的过程。因此,首先把使用时长小于2小时的行为作为“噪声”剔除,然后以用户使用时间100%对用户行为曲线进行拉升或压缩,使得其在相同的时间范围内,以完成归一化。如图2所示。
图2 用户行为曲线
因此,用户可表示为L={L1,L2,L3,……,Ln},包含了用户的设置温度、风速、开关机等空调操作行为信息。其中L1可表示设置温度行为曲线,L2可表示设置风速行为曲线,L3可表示开关机行为曲线……
行为曲线相似度能够表示两个用户空调某个操作使用行为的一致性,对于寻找高度相似的邻居,提升算法推荐准确率至关重要。
本节主要介绍行为曲线相似度的计算方法。首先,通过积分公式计算两条曲线面积的交集和并集;然后,以此计算曲线面积的Jaccard系数作为这两条行为曲线的相似度。其中相同的用户每次使用均为一条独立的行为曲线。
假设有2个用户行为a和b,设置温度曲线分别为La和Lb,如图3所示。
图3 行为曲线相似度
把曲线的时间轴划分成正无穷个时间间隔;
对于任何一个间隔i,行为a和b的设置温度分别为Ti,a和Ti,b,计算该间隔的最大设置温度Ti,max和最小设置温度Ti,min:
根据积分和Jaccard公式,计算行为曲线的相似度sim_ba,b,具体公式如下:
其中,Sa和Sb分别表示曲线La和Lb与X轴的面积,sim_ba,b为行为曲线a和b的相似度。
用户行为相似度能够反映两个用户空调使用行为的一致性。本文通过行为曲线相似度来计算用户之间的相似度。首先,针对特定用户u,对该用户的空调使用历史行为曲线L={L1,L2,L3,……,Ln}进行层次聚类,整合为M个类别;然后,针对其他用户k,计算该用户每条历史行为曲线距离用户u最近的行为曲线Li(∈L),并以此划分为Li所在的类别m(∈M);接着,计算用户k与u在每个类别的相似度,并以所有类别的平均相似度,作为用户k与u的空调使用行为相似度。
具体算法如下:
接下来,本节将从用户行为曲线聚类、曲线类别相似度计算、用户行为相似度计算这几个部分进行详细阐述。
(1)用户行为曲线聚类:针对特定用户u,根据相似度阈值S,对该用户的所有历史行为曲线进行层次聚类。
层次聚类是一种基于相似度的聚类方法,分为自下而上和自上而下两种方法,图4为层次聚类的合并方法。
图4 层次聚类的合并方法[14]
下面介绍一个案例:假设用户u有3条行为曲线,相似度阈值S为0.9,则最终合并为2个类别,如图5所示。
图5 用户行为曲线聚类
阈值S的选取,对行为曲线聚类具有明显的影响,对推荐效果也具有较大的影响。S设置越小,区分度越小,曲线越容易聚成同一个类别,选取的邻居行为相似性越弱;S设置越大,区分度越大,曲线越不容易聚成同一个类别,选取的邻居行为容易过拟合,推荐效果反而变差。在第3章实验部分,将对该部分进行参数优化。
(2)曲线类别相似度计算:针对用户k,计算该用户每条历史行为曲线距离用户u最近的行为曲线Li(∈L),并以此划分为Li所在的类别m(∈M);然后计算每个类别的平均相似度。计算公式如下:
其中,n表示用户k划分为类别c的行为曲线数量,ui表示类别c中第i条用户u所属行为曲线;ki表示类别c中第i条用户k所属的行为曲线;sim_bui,ki表示类别c中第i条用户行为曲线相似度,sim_cc即为类别c的行为相似度。案例如图6所示。
图6 行为类别相似度计算
类别1的平均相似度:
类别2的平均相似度:
用户行为相似度计算[12]:计算M个类别的平均相似度,作为用户u和k的相似度。计算公式如下:
其中,n表示类别的数量,sim_cc表示第c个类别的行为相似度,sim_uu,k即为用户u和k的平均行为相似度。如图6所示案例:
通过该方法,计算出每两个用户之间的空调使用行为相似度。
本文的推荐包含了群体默认推荐值和协同过滤推荐。针对无历史使用行为的新用户,采用群体推荐默认值,当用户使用了一段时间(7天)后,则采用协调过滤推荐。
本节主要介绍协同过滤推荐算法[13]。首先,针对特定用户,获取该用户与其他用户的相似度;然后,查找距离该用户最近的K个近邻;最后,根据K个邻居的当前空调控制参数(包括不限于设置温度,当前控制参数无需区分智能推荐或用户自主调控),生成推荐值,作为最终的控制参数。
(1)获取与其他用户的相似度;
(2)查询该用户的K近邻;
(3)推荐控制参数。
获取K个邻居的当前设置参数,计算平均值,作为最终的推荐参数。
其中,u表示该用户,k表示K个邻居中的第k个用户,Tk表示用户k的当前设置温度,sim_uu,k表示用户u和k的用户行为相似度。CFR(u)即为最终的推荐参数。
每间隔时间T,通过本文的算法,可以实时获取该用户的推荐参数值,从而实现智能化控制。
本节首先介绍实验的数据集以及评估指标;然后,介绍调参和抽样,最后对比多种推荐方法的效果,从而得出实验结论。
本文所用数据为:用户信息、用户使用行为。抽取了2019年的部分数据,作为训练集和测试集,具体如表1所示。
表1 数据集
本文主要包括设置温度和风速的实时推荐(以温度为例)。
当用户实际设置温度与算法推荐温度高度一致的时候,则代表用户满意算法推荐的温度值,即算法推荐温度可以为用户带来较强的热舒适性体验,因此本文采用如下的准确率公式来对推荐效果进行判定。
实验中,通过对比算法推荐温度与用户设置温度,计算准确率P,以此评估该算法的效果。准确率计算公式如下:其中,TCu表示推荐温度,Ts表示用户设置温度;14为[17,30]温度范围区间,以1℃为间隔,共14个值。
(1)参数调优
本算法中,阈值S(用户行为相似度)的选取,对行为曲线聚类具有明显的影响,对推荐效果也具有较大的影响,因此,本文针对S取值进行调优,选取不同的S值进行聚类,然后进行参数推荐,最后采用3.1节的公式进行准确率计算,得出不同阈值S下的准确率如图7所示。
图7 相似度阈值 参数调优
从图7中可以看出,当S≤0.85时,准确率较低且随着S值变化不明显,S=0.95时准确率最高,当S=1时,平均准确率又明显下降。因此,本算法中S值参数选取为0.95。
(2)各城市/季节效果对比
为验证本算法在各个城市及季节的有效性,本项目在全国典型城市进行抽样,选取了北京、重庆、武汉等城市用户的制冷和制热模式的使用数据,进行参数推荐,最后采用3.1节的公式进行准确率计算,对推荐算法的效果进行实验论证,具体的准确率如表2所示。
表2 不同城市/季节效果对比
从表2中可以看出,在夏季制冷模式下,本项目算法推荐均有较好的效果,都在91%以上,其中北京、深圳最好,达到94.6%以上。冬季制热模式下,由于用户制热差异较大,推荐效果差于夏季,且北方城市效果好于南方城市。
(3)各算法效果对比
为验证本算法整理准确率,本项目对比了各算法的实际效果:用本实验对测试集,分别运行KNN算法、基于用户的协同过滤CF算法、UBC-based CF算法,计算准确率对推荐结果进行评估。如图8所示。
图8 多算法推荐准确率效果对比
可以看出,本项目UBC-based CF算法的准确率为91.43%,KNN算法的准确率为86.26%,基于用户的协同过滤user-based CF算法准确率为87.19%,本项目算法准确率提升了5%,取得了较好的效果。
本文研究的算法准确率高达91.43%。在用户空调使用过程中:100次推荐值,约有91次推荐值可满足用户需求,用户无需进行调节。而针对推荐值不满足用户需求的部分,若用户产生调节行为,算法将会重新学习调整,越用越智能。
本文研究的算法能够最大限度地贴合用户的实际使用需求,用户无需动手。不仅能够给用户带来空调智能化的便捷,同时也能够更好地给用户提供舒适性体验。
本文研究基于行为曲线的用户协同过滤控制推荐,提出了UBCbased CF算法:使用更细粒度的行为曲线来表示用户,通过行为曲线相似度来计算用户之前的行为相似度,从而基于用户的协同过滤算法能够获得精准度更高的空调控制推荐服务。该算法解决了人群在不同场景和习惯上的差异性问题,推荐的操作更加准确和舒适。本文通过实验分析,对模型参数进行调优,并验证了在不同城市/季节下的推荐效果;另外,通过对比分析发现,本算法的准确率比其他算法高出4%以上,具有很好的推荐效果。
接下来,我们将进一步研究湿度、洁净度、新鲜度等其他指标的推荐模型,以实现多维空气的智能化控制。