徐雅蕓,曾 碧,梁天愷,廖文雄
廣東工業(yè)大學 計算機學院,廣州510006
智能家居是一種利用現(xiàn)代先進科學技術研發(fā)出的家居模式。具有便利性、安全性、智能化等特點。智能家居發(fā)展經過了三個階段,第一階段是用App遠程控制家電的單品;第二階段是多個電器間相互感應的智能互動,以上兩個階段均為低智能階段,均需要通過手機來操作[1-2];第三階段是家居產品與人工智能的深入結合,賦予家居產品人性化,擺脫手機的操控,通過自主學習、主動記憶、自主決策為用戶提供舒適的生活[3-4]。
智能家居行業(yè)正在改革,從以往只是簡單的場景選擇、條件觸發(fā)等一些“人為觸發(fā)”的功能,升級為預測操控行為、降低設備能耗的更加“智能化”的家居產品[5-6]。
目前,國內外學者對家居智能化控制的研究已有一定的成果。Channe等[7]提出一種基于Apriori算法挖掘用戶日常生活中頻繁行為習慣的方法,該方法挖掘出不包含時間特征的頻繁操控序列,用戶一天的操控行為重復率較高,若不包含時間信息,可能會導致不同時間段的操控行為混亂,且隨著一年季節(jié)的變化,用戶操控行為也會隨之變化,使該方法預測結果誤差較大。為了能夠融合時間特征來自主學習用戶的行為習慣,Choi等[8]提出了一種基于深度學習框架來預測家庭中的各種活動,采用兩種算法DBN-ANN和DBN-R挖掘用戶行為,但預測準確率均約為50%,準確率不高,學習能力有待提高。其次,為提高網(wǎng)絡模型的學習能力以及預測準確率,張煒[9]提出以單隱含層的BP神經網(wǎng)絡(Back Propagation Neural Network,BPNN)預測模型為核心,根據(jù)環(huán)境數(shù)據(jù)來預測智能設備狀態(tài),預測的準確度達85%,但BPNN對非線性特征學習能力依舊較低。類似地,毛博等[10]提出了一種基于深度學習的智能家居控制方案,采用自編碼網(wǎng)絡構建設備操控模型,通過逐層無監(jiān)督預訓練挖掘設備特征,核心控制模型采用五層的BP神經網(wǎng)絡,根據(jù)環(huán)境數(shù)據(jù)預測設備狀態(tài),但是該模型針對的是高度定制化的家庭環(huán)境,通用性較差??紤]到非遞歸神經網(wǎng)絡對非線性特征學習能力差的因素,包曉安等[11]提出一種基于LSTM的智能家居系統(tǒng)預測模型,挖掘環(huán)境數(shù)據(jù)特征之間的關聯(lián)度,從而預測家居設備的狀態(tài),但是該模型并未關注設備與設備之間的關聯(lián)性。
綜上國內外學者的智能家居設計方案,在一定程度上提高了家居的智能化,但還存在三個主要問題:第一,網(wǎng)絡模型設計單一,只針對家庭環(huán)境中的某一家居設備的操作狀態(tài)進行挖掘,忽略了設備與設備之間的關聯(lián)性;第二,智能家居的“智能性”不足,僅根據(jù)環(huán)境因素與家居設備之間關系,觸發(fā)家居設備狀態(tài)的轉換,沒有考慮用戶的需求,缺乏人性化設計;第三,預測結果不具時效性,沒有涉及家居設備狀態(tài)轉換的具體時間,采用時間間隔的方法導致預測時間尺度粗,預測結果精準度低等問題。
為此本文提出了一種基于帶雙層注意力機制的雙向循環(huán)神經網(wǎng)絡(Bidirectional Gated Recurrent Unit-Double Attention,BiGRU-DAtt)模型的智能家居用戶行為預測方法,該方法利用改進的GRU網(wǎng)絡和雙層注意力機制的特殊結構挖掘用戶的操控習慣,使得模型得到充分的訓練,從而更加準確地預測用戶下一時刻的操控設備、操控狀態(tài)、操控時間,實現(xiàn)了具有時效性的用戶行為預測,具備學習人類意圖的能力和對人類行為的預測,使得智能家居更加“智能化”。
不同于傳統(tǒng)的智能家居行為預測方法,在實際預測中,精準分析將提升智能家居的智能性。受文獻[12]的啟發(fā),本文提出的基于BiGRU-DAtt模型的用戶行為預測方法,針對智能家居用戶操控數(shù)據(jù)具有對稱性以及服從冪律分布的特點所設計,可根據(jù)用戶歷史操控記錄預測下一時刻用戶的操控行為及操控時間。BiGRU-DAtt模型主要由BiGRU層和雙層attention構成。具體的模型結構如圖1所示。
圖1 BiGRU-DAtt模型結構
GRU(Gated Recurrent Unit)[13]是循環(huán)神經網(wǎng)絡RNN(Recurrent Neural Network)的一種,RNN擅長處理序列數(shù)據(jù),例如語音、文本序列等,但RNN只具備處理一定間隔信息的能力,如果信息間隔太遠,會出現(xiàn)難以關聯(lián)的問題以及嚴重的梯度彌散和梯度爆炸,長短期記憶神經網(wǎng)絡通過門控單元很好地解決了這些問題。LSTM(Long Short Term Memory)[14]中引入了三個門函數(shù):輸入門、遺忘門和輸出門來控制輸入值、記憶值和輸出值。在RNN的基礎上增加了對過去狀態(tài)的過濾,從而可以選擇哪些狀態(tài)對當前更有影響,而不是簡單地選擇最近的狀態(tài)。但LSTM網(wǎng)絡結構較為復雜,網(wǎng)絡參數(shù)較多,性能受到很大地限制。GRU結合LSTM的單元狀態(tài)和隱層狀態(tài)的基本結構,保留了LSTM對梯度消失問題的抗力,但其內部結構更加簡單,更新隱藏狀態(tài)時需要的計算也更少,因此訓練得更快。
有別于LSTM單元中的輸入門、遺忘門和輸出門,GRU單元由兩個門組成,分別是更新門z和重置門r。上一時刻的隱層輸出對當前隱層的影響程度由更新門z控制,更新門的值越大說明上一時刻的隱層輸出對當前隱層的影響越大;上一時刻的隱層信息被忽略的程度由重置門r控制,重置門的值越小說明忽略得越多。GRU模型結構如圖2所示。
在t時刻,GRU網(wǎng)絡模型各單元組成部分的更新公式如下所示:
圖2 GRU模型結構
文獻[15]發(fā)現(xiàn)智能家居數(shù)據(jù)呈現(xiàn)出經典的Zipf或冪律分布,類似于語音與文本數(shù)據(jù),數(shù)據(jù)前后的信息存在關聯(lián),即某一時刻的操控行為與前一時刻和后一時刻的操控行為都有聯(lián)系。因此,為了充分利用前后行為信息,更好地挖掘出用戶的行為習慣,本文采用雙向GRU神經網(wǎng)絡,該網(wǎng)絡模型在處理文本數(shù)據(jù)方面已有較成熟的應用。相比于傳統(tǒng)的單向神經網(wǎng)絡,雙向GRU神經網(wǎng)絡由前后狀態(tài)共同決定,該方法是由兩個方向相反的單向GRU神經網(wǎng)絡組成,其中是前向GRU神經網(wǎng)絡在t時刻的輸出,是后向GRU神經網(wǎng)絡在t時刻的輸出,所以時刻t的輸出為前后向的拼接,即其模型結構如圖3所示。
圖3 BiGRU模型結構
智能家居用戶行為具有隨機性,但無序的行為序列中存在著某種有序性[16]。例如:用戶在某一時刻打開某一設備,一定會在將來的某一時刻關閉此設備,因此智能家居設備操控數(shù)據(jù)具有對稱性,為了能夠關注與預測具有對稱性的行為,本文采用雙層注意力機制。第一層注意力機制目的是關注相近操控行為中是否具有對稱性,即用戶通常會在短時間內做出具有對稱性的操控行為,例如:用戶在晚上8:00去廚房拿牛奶,他會打開廚房燈拿完牛奶后關閉廚房燈,(開廚房燈,關廚房燈)屬于一組對稱性操控行為,第一層注意力機制會重點關注對稱的相近操控行為;第二層注意力機制目的是關注用戶的全天操控序列中具有對稱性的操控行為,當具有對稱性的操控行為間隔很遠,例如,用戶晚上在廚房做飯,會發(fā)生(開廚房燈,開抽煙機,開電磁爐,…,關廚房燈)這樣一組操控序列,(開廚房燈,關廚房燈)這一組對稱行為相距間隔較長,第一層注意力機制并不能捕獲到這類相隔較遠的對稱行為,因此本文采用第二層注意力機制,重點關注用戶一天操控行為中具有對稱性的行為。注意力機制是受到人類的選擇性視覺注意力機制的啟發(fā)[17],如人類在觀察圖像的時候,其實并不會一次性將整張圖像的每個位置都看一遍,而是有選擇性地觀察圖像的特定部分,將注意力集中在含有圖像特征的區(qū)域,且人類會根據(jù)之前觀察的圖像信息,學習到將來要觀察的圖像注意力應該集中的地方,從眾多信息中選擇出對當前任務目標更關鍵的信息。Attention Model基本結構如圖4所示。
圖4 注意力機制基本結構
(1)數(shù)據(jù)預處理
本文將用戶的歷史操控記錄按天存放,提取出用戶的操控設備、操控狀態(tài)及操控時間。首先需要將時間點數(shù)據(jù)進行數(shù)值化處理,即將具體時間轉化為時間段,用于表示該用戶相鄰兩次操作的時間間隔,其次將不同設備的不同狀態(tài)進行編碼。某用戶u的歷史操控記錄組成n天的操控記錄Su={Su1,Su2,…,Sun},其中的第i天的操控序列表示為Sui={X1,X2,…,Xm},i∈n,第j條操控記錄表示為Xj={Dj,Cj,Tj},j∈m,其中D為操控設備,C為操控狀態(tài),T為操控時間,將預處理后的這三維數(shù)據(jù)存入CSV文件中。由于操控設備、狀態(tài)、時間量綱不同,處于不同的數(shù)量級,因此需要對操控記錄進行歸一化操作,歸一化公式如下:
其中,Xnorm為歸一化后的數(shù)據(jù),X為原始數(shù)據(jù),Xmax、Xmin分別為原始數(shù)據(jù)集的最大值和最小值。
因原始數(shù)據(jù)沒有標簽,無法進行模型訓練,故本文借鑒RNN生成文本的思想[18],設置滑動窗口,將窗口長度L的下一個輸入作為標簽yL,該窗口長度L需要根據(jù)模型驗證結果進行調整。
(2)BiGRU層
BiGRU層主要用于從輸入數(shù)據(jù)中深度地挖掘用戶的行為習慣。根據(jù)BiGRU神經網(wǎng)絡模型圖,BiGRU當前的隱層狀態(tài)由當前輸入xt、(t-1)時刻向前的隱層狀態(tài)的輸出和反向輸出的三個部分共同決定,見圖3。通過BiGRU層的特征提取后,可以更加充分地學習行為序列之間的關系。輸入第i天操控序列的操控行為Xi:i+L,BiGRU層的輸出結果如下:
(3)第一層Attention Model
該層輸入數(shù)據(jù)為上一層BiGRU的輸出hi:i+L,此層主要是為了不同的操控行為分配相應的概率權重,突出設定窗口內行為序列的關鍵信息,進一步提取用戶行為習慣。通過Attention Model動態(tài)分配權重,學習到設定窗口L內不同行為與預測行為的相關性ui:i+L即:
其中,Ww表示權重系數(shù),bw表示偏置系數(shù),將ui:i+L輸入softmax函數(shù)中,進行歸一化處理,得到歸一化權重αi:i+L:
其中,uw表示隨機初始化的注意力矩陣。Attention機制向量E由attention機制分配的不同概率權重與各個隱層狀態(tài)的乘積的累加和,即:
最終第一層Attention Model的輸出是對設定窗口L內每個操控行為的不同關注度為:
(4)第二層Attention Model
該層輸入數(shù)據(jù)為第一層Attention Model的輸出Fi:i+L={Fi,Fi+1,…,Fi+L}及用戶第i-1天的操控序列Sui-1={X1,X2,…,Xm}。將用戶一天的操控序列Sui-1,通過Embedding Layer轉換為分布式向量表示,合并第一層Attention Model的輸出Fi:i+L,共同作為第二層Attention Model的輸入序列,見圖1。不同于第一層Attention Model將窗口內的操控行為X作為最小操作單元,第二層Attention Model將用戶一天的操控序列S作為最小操控單元。
通過第二層Attention機制的學習,可捕獲設定窗口以外行為序列的關鍵信息,不局限于特定區(qū)域的特征學習,更好地從用戶一天的行為序列中挖掘出用戶行為習慣。
(5)輸出層
輸出層的輸入為第二層Attention Model的輸出。利用全連接層對輸出層的輸入進行相應的計算,見圖1,從而得到含有時間信息的用戶行為預測結果。
BiGRU-DAtt模型的智能家居用戶行為預測流程框圖如圖5所示。
本文的驗證實驗的運行環(huán)境是一臺具有16 GB內存且配有型號為Intel?CoreTMi7-7770HQ的CPU和GTX1060顯卡的個人計算機,該計算機運行Windows 10中文版操作系統(tǒng)。
圖5 智能家居用戶行為預測流程框圖
3.2.1 對比算法
本實驗實現(xiàn)了以下四種模型的對比:
(1)BP神經網(wǎng)絡模型,該模型參考文獻[3]的方法,將數(shù)據(jù)輸入單隱含層的BP神經網(wǎng)絡預測模型進行訓練。
(2)LSTM模型,該模型參考文獻[5]的方法,將數(shù)據(jù)輸入LSTM后,根據(jù)LSTM的輸出值做相應的處理。
(3)LSTM_Attention模型,該模型在LSTM后接attention層,并根據(jù)attention層的輸出值做相應的處理。
(4)本文采用的BiGRU-DAtt模型。
3.2.2 評價指標
本文涉及到用戶操控行為的分類和操控時間的回歸,因此采用召回率(recall)、精確率(precision)、F1、平均絕對誤差(MAE)、確定系數(shù)(R-square)作為評價指標。Recall表示正樣本被預測為正樣本所占的比例,precision表示預測為正的樣本占正樣本的比例,F(xiàn)1值是精確率和召回率的調和均值,MAE為絕對誤差或L1范式的期望值,R-square是通過數(shù)據(jù)的變化來表征一個擬合的好壞。Recall、precision、F1、MAE、R-square的計算公式如下:式中的TP FN FP TN如表1所示,Y_actual是真實值,Y_predict是預測值,Y_mean是平均值。
表1 二分類結果混淆矩陣
本節(jié)將利用由某智能公司提供的真實用戶操控記錄進行對比實驗。實驗數(shù)據(jù)包含某用戶376天合計557 372條的操控記錄,涉及9個智能家居設備。訓練集和測試集按8∶2進行劃分,分別用于模型訓練和模型測試。本實驗采用keras深度學習框架,使用hyperopt工具進行神經網(wǎng)絡調參。經過多次迭代后,實驗設置的超參數(shù)如表2。
表2 模型參數(shù)設置
采用本文提出的模型進行實驗,在其他模型參數(shù)不變的情況下,設置滑動窗口長度,將窗口長度L的下一個輸入作為標簽yL,不同窗口長度L對應的準確率如圖6所示。
圖6 不同窗口長度L對應的準確率
由圖6可知,窗口長度太小或太大都容易導致預測結果的準確率低。因此,本文設置窗口長度為3。
各模型的用戶行為預測性能對比結果如表3、圖7所示。從precision值來看,BP模型最低,只有0.587 1,最高的是LSTM_Att模型,為0.878 5;從recall和F1來看,BiGRU-DAtt模型的值最高,其中BiGRU-DAtt模型的recall超過0.90。根據(jù)以上分析結果,表明相比于傳統(tǒng)的網(wǎng)絡模型,本文提出的模型對智能家居數(shù)據(jù)更有針對性,行為預測準確度要高于其他三種模型。
表3 各模型行為預測性能對比
圖7 各模型行為預測性能對比
各模型的行為預測性能對比如圖7與圖8所示。從時間回歸各項指標來看,BiGRU-DAtt模型對智能家居數(shù)據(jù)擬合得最好,R-square值為0.864,時間平均絕對誤差為100 s。
圖8 各模型行為預測性能對比
相比于遞歸神經網(wǎng)絡模型而言,BP神經網(wǎng)絡模型存在對非線性特征學習不充分的缺點,導致無法獲得多維特征之間的關系;傳統(tǒng)的遞歸神經網(wǎng)絡模型雖能進行非線性特征學習,但對智能家居數(shù)據(jù)沒有針對性且模型結構不具備通用性,實驗結果表明,本文針對智能家居數(shù)據(jù)特點所設計的BiGRU-DAtt模型具有更好的性能。
為了更好地實現(xiàn)智能家居用戶行為預測,提高智能家居的智能化水平,本文提出了一種基于BiGRU-DAtt的神經網(wǎng)絡模型,該模型針對智能家居用戶操控數(shù)據(jù)特點,一方面,采用雙向GRU模型挖掘用戶行為前后關聯(lián);另一方面,通過雙層注意力機制,進一步提取用戶行為習慣,避免特定區(qū)域的特征學習,提升了模型的通用性。本文選取某智能公司提供的真實用戶操控數(shù)據(jù)與傳統(tǒng)的網(wǎng)絡模型進行了多次重復對比實驗,結果表明,本文的方法與傳統(tǒng)的基于人工邏輯控制方法、淺層神經網(wǎng)絡模型以及傳統(tǒng)遞歸神經網(wǎng)絡模型相比有較高的準確率。
然而,隨著數(shù)據(jù)量的增大,注意力機制需要進一步處理信息且需存儲相應的權重信息,增加了系統(tǒng)的開銷。其次,隨著智能家居產業(yè)爆發(fā)式增長,智能家居生態(tài)越發(fā)成熟,除了處理用戶行為特征外,智能家居環(huán)境數(shù)據(jù)將被作為特征進行考慮。因此,如何實現(xiàn)綜合考慮多維度數(shù)據(jù)特征,提高系統(tǒng)對海量數(shù)據(jù)的適應力,進一步提高系統(tǒng)的學習能力與準確率,是下一步的研究內容。