閆 坤,沈蘇彬
(南京郵電大學(xué) 計算機學(xué)院,江蘇 南京 210046)
近年來,隨著物聯(lián)網(wǎng)技術(shù)的迅速發(fā)展,以物聯(lián)網(wǎng)為中心衍生出很多相關(guān)的技術(shù)。使用無線傳感技術(shù)和計算機網(wǎng)絡(luò)技術(shù)等,將小區(qū)內(nèi)的基礎(chǔ)服務(wù)設(shè)施(如冰箱、臺燈、熱水器)等整合在一起,可以構(gòu)成一整套智能家居系統(tǒng)。智能家居與傳統(tǒng)家庭系統(tǒng)的不同之處在于,在物聯(lián)網(wǎng)技術(shù)基礎(chǔ)之上的智能家居系統(tǒng)是“一個家庭利用計算機通信網(wǎng)絡(luò)聯(lián)接主要的家用電器和服務(wù),并且可以滿足遠程控制、監(jiān)控和訪問的系統(tǒng)”[1]。根據(jù)物聯(lián)網(wǎng)的三層架構(gòu),第一層是感知擴展系統(tǒng),負責(zé)信息收集和設(shè)備控制;第二層是異構(gòu)集成通用的計算機通信網(wǎng)絡(luò)系統(tǒng),負責(zé)異構(gòu)網(wǎng)絡(luò)的通信和存儲;第三層是應(yīng)用和服務(wù)層,負責(zé)數(shù)據(jù)的監(jiān)控和分析等[2]。目前在智能家居領(lǐng)域中有很多關(guān)于前兩層的設(shè)計,不僅要采集信息和傳遞信息,還要監(jiān)控數(shù)據(jù)和分析數(shù)據(jù),才能滿足真正意義上的智能[3-8]。
智能家居真正的智能化程度在國內(nèi)發(fā)展速度緩慢,產(chǎn)品定位高和種類少,服務(wù)沒有保障。根據(jù)建設(shè)部科學(xué)技術(shù)委員會智能建筑技術(shù)開發(fā)與推廣中心的報告[9]:隨著經(jīng)濟的發(fā)展,人們生活水平得到了改善,人們的生活理念發(fā)生了變化,旨在追求環(huán)保、健康、安全和舒適的生活方式,因此,它將大大增加家庭智能的發(fā)展。無論是團體應(yīng)用還是個人消費,人們往往迫切地需要智能化的應(yīng)用產(chǎn)品。大多數(shù)當前智能家居系統(tǒng)的共有特征是單個的機械自動化控制,不是智能性的,并且系統(tǒng)只能根據(jù)提前設(shè)置好的程序簡單又重復(fù)地運行,而根據(jù)人們的生活習(xí)慣來判斷滿足個人需求的控制方法是不可能的。因此,存在的問題是,智能家居系統(tǒng)可以采用何種技術(shù)手段來挖掘用戶的生活習(xí)慣和行為方式,最終提供智能的個性化需求服務(wù)。
文中通過相關(guān)數(shù)據(jù)庫模式的設(shè)計和數(shù)據(jù)庫的實現(xiàn),構(gòu)建數(shù)據(jù)挖掘的對象數(shù)據(jù)和用戶行為預(yù)測的模型數(shù)據(jù);采用相關(guān)的、適用于物聯(lián)網(wǎng)應(yīng)用場景的算法優(yōu)化實現(xiàn)方法,根據(jù)智能家居應(yīng)用場景采集的數(shù)據(jù),識別和預(yù)測用戶行為;實現(xiàn)智能家居環(huán)境下相關(guān)家用電器的最佳優(yōu)化控制和操作。因此這方面的工作既具有研究意義,又具備實際的應(yīng)用價值。
近年來,一些智能家居研究集中在智能化方面。文獻[10]以嵌入式系統(tǒng)為核心,設(shè)計了基于無線技術(shù)的智能家居控制系統(tǒng)。文獻[11]使用ZigBee技術(shù)和數(shù)據(jù)采集功能來實現(xiàn)數(shù)字家庭信息控制。此外,許多專家對智能家居系統(tǒng)中的用戶行為進行了深入研究,文獻[12]通過分析約束和替代因素的相對權(quán)重,獲得滿足用戶需求的服務(wù),從而確保提供服務(wù)的滿意度和舒適度。文獻[13]將普適計算和計算智能結(jié)合起來,實現(xiàn)用戶與家電的互動。文獻[14]提出了基于用戶行為方式和家電控制策略的挖掘。
用于智能家居類別中的用戶行為預(yù)測的常見方法包括關(guān)聯(lián)規(guī)則數(shù)據(jù)挖掘、人工神經(jīng)網(wǎng)絡(luò)、支持向量機和決策樹分類等。文中采用關(guān)聯(lián)規(guī)則數(shù)據(jù)挖掘來查找海量數(shù)據(jù)中項集之間的關(guān)聯(lián)聯(lián)系。相比較其他方法,該方法如果兩個或者更多個屬性之間存在某種關(guān)系,則可以基于其他屬性值或其他屬性值的組合來推斷其中一個屬性值。例如,在超市購物環(huán)境中,消費者的購買行為被用作數(shù)據(jù)集,以在購物時挖掘出消費者的關(guān)聯(lián)規(guī)則,從而預(yù)測出消費者的消費特征與需求,為超市提高利潤而制定相應(yīng)的營銷策略提供依據(jù)[15]。同理,可以通過挖掘出智能家居環(huán)境下用戶行為的關(guān)聯(lián)規(guī)則,為系統(tǒng)的最終優(yōu)化控制策略提供基礎(chǔ)[16-17]。因此,它適用于發(fā)現(xiàn)用戶在日常生活的不同行為之間的關(guān)聯(lián),可以提高用戶行為預(yù)測的效率和準確率。
一般情況下,對于一個給定的數(shù)據(jù)集,關(guān)聯(lián)規(guī)則挖掘可以分為兩步:(1)生成所有的頻繁項集,即查找不低于最小支持度的所有項集;(2)生成所有的強關(guān)聯(lián)規(guī)則,即查找到不小于最小置信度的所有頻繁項集。
在挖掘關(guān)聯(lián)規(guī)則的過程中,首先需要找到頻繁項集,Apriori算法是基于Apriori的先驗性質(zhì)產(chǎn)生候選項集的,也就是說,頻繁項集生成的所有非空子集必須是頻繁的。雖然這大大減少了數(shù)據(jù)集的搜索空間,但它提高了頻繁項集逐層生成的效率,因此具有良好的性能。但是隨著數(shù)據(jù)集的增大,會出現(xiàn)兩個弊端:產(chǎn)生大量的候選集;需要多次掃描數(shù)據(jù)庫并生成許多候選項集,從而導(dǎo)致使用更多內(nèi)存。
通過調(diào)研發(fā)現(xiàn)選擇一種合適的技術(shù)來生成頻繁項集,即進一步提高基于Apriori挖掘的效率對于提高整個數(shù)據(jù)挖掘過程的效率顯得尤為重要。
首先給出Apriori算法的基本思想。
Apriori算法采用稱為逐層搜索的迭代方法,其中第k項的項集用于搜索第k+1項的項集[11]。通過掃描數(shù)據(jù)集,計數(shù)每個項目集的計數(shù),并且記錄滿足最小支持度的項集,同時找到頻繁的1個項集的集合,將該集合記錄為L1。然后,通過L1找到頻繁的2個項集的集合L2,再使用L2找出L3,依次類推使用find,直到找到所有的頻繁k項集[11]。當找出所有頻繁的k項集時,完成一次完整的數(shù)據(jù)集掃描。
主要步驟如下:
(1)掃描全部數(shù)據(jù),產(chǎn)生候選1-項集的集合C1;
(2)根據(jù)用戶指定的最小支持,根據(jù)候選1-項集的集合C1生成一組頻繁的1-項集L1;
(3)對k>1,重復(fù)執(zhí)行步驟4~6;
(4)通過執(zhí)行連接和剪枝操作生成一組候選(k+1)-項集Ck+1;
(5)根據(jù)用戶指定的最小支持,根據(jù)候選(k+1)-項集的集合Ck+1,生成一組頻繁(k+1)-項集Lk+1;
(6)若C≠?,則k=k+1,跳往步驟4;否則,跳往步驟7。
(7)根據(jù)最小置信度,關(guān)聯(lián)規(guī)則由頻繁項集生成,算法結(jié)束。
上述步驟4中的連接操作是經(jīng)由Lk+1與自身連接生成一組候選k-項集的集合Ck。剪枝是要求頻繁項集的所有非空子集必須是頻繁的,去除不滿足要求的非頻繁k-項集。
考慮采用散列(hash)技術(shù)生成頻繁項集的算法,該方法通過使用散列函數(shù)將候選項集散列到不同的散列桶中,然后再計算每個桶中的項目子集的數(shù)量,找出頻繁項目集,即大于或等于最小支持度的數(shù)值。當根據(jù)C1中要確定的1個項目的集合生成頻繁的1個項目的集合L1時,可以考慮為每個交易生成相應(yīng)的全部的2個項目集合,再次考慮將它們散列(即映射)到同一個哈希表中的不同桶結(jié)構(gòu)中,同時計算每個桶中的項目子集的數(shù)量。
該方法是以生成哈希表和存儲數(shù)據(jù)集的存儲空間為代價來提高算法性能,省略了由散列表設(shè)置的k-項集連接生成候選集,顯著地壓縮了要檢查的k項集,特別是當k=2時??梢钥闯?,采用這種基于散列的技術(shù)可以大大提高原算法的效率。
在智能家居系統(tǒng)中,不同類型的傳感設(shè)備通過藍牙、Wi-Fi、ZigBee等無線傳感網(wǎng)技術(shù)[18-20]將采集到的各種傳感信息(如位置信息、液位信息、能耗信息等)發(fā)送給控制器,控制器通過數(shù)據(jù)處理模塊將大量的傳感數(shù)據(jù)轉(zhuǎn)換為有價值的信息,并向第三方提供數(shù)據(jù)服務(wù)。其中數(shù)據(jù)處理模塊包括數(shù)據(jù)預(yù)處理、數(shù)據(jù)訪問和數(shù)據(jù)挖掘。數(shù)據(jù)預(yù)處理按步驟分為數(shù)據(jù)清洗、數(shù)據(jù)集成、數(shù)據(jù)轉(zhuǎn)換和數(shù)據(jù)歸約,來保證數(shù)據(jù)的準確性、完整性和一致性,為后續(xù)的挖掘分析提供高質(zhì)量的數(shù)據(jù);數(shù)據(jù)挖掘是從大量數(shù)據(jù)中提取或挖掘潛在的、有價值的知識,實現(xiàn)分類、聚類、關(guān)聯(lián)分析、預(yù)測、偏差檢測等功能的過程。
文中原型系統(tǒng)的設(shè)計和實現(xiàn)需要解決數(shù)據(jù)的采集,預(yù)處理和存儲,以及用戶的行為識別和預(yù)測等問題,完成構(gòu)建無線傳感器網(wǎng)絡(luò),部署傳感器,預(yù)處理采集到的數(shù)據(jù)并且存儲數(shù)據(jù),識別用戶行為,通過關(guān)聯(lián)規(guī)則預(yù)測用戶行為等工作。
原型系統(tǒng)設(shè)計為3個功能模塊,包括數(shù)據(jù)采集和預(yù)處理模塊、網(wǎng)關(guān)模塊,以及行為識別和預(yù)測模塊。數(shù)據(jù)采集模型將構(gòu)建無線傳感器網(wǎng)絡(luò),部署傳感器,研究實現(xiàn)節(jié)能和延伸網(wǎng)絡(luò)的生命周期。網(wǎng)關(guān)模塊將研究在PC作為網(wǎng)關(guān)的實驗硬件平臺,設(shè)計網(wǎng)關(guān),實現(xiàn)無線傳感器網(wǎng)絡(luò)與互聯(lián)網(wǎng)的通信;設(shè)計面向數(shù)據(jù)挖掘的數(shù)據(jù)存儲,包括數(shù)據(jù)存儲格式的設(shè)計等。行為識別和預(yù)測模塊讀取存儲在網(wǎng)關(guān)中的數(shù)據(jù),進行分析挖掘,結(jié)果發(fā)送至無線傳感器網(wǎng)絡(luò)的控制節(jié)點。總體結(jié)構(gòu)如圖1所示。
本階段收集的數(shù)據(jù)將要作為該原型系統(tǒng)的訓(xùn)練樣本。第一項任務(wù)是構(gòu)建無線傳感器網(wǎng)絡(luò),初始化網(wǎng)絡(luò)并添加相應(yīng)的節(jié)點。然后部署各種類型的傳感器,通常包括光敏傳感器、壓力傳感器和熱釋電傳感器。最后是數(shù)據(jù)的通信交互,包括接收器與終端節(jié)點的數(shù)據(jù)通信交互功能、接收器與智能網(wǎng)關(guān)的數(shù)據(jù)通信交互功能。
圖1 總體結(jié)構(gòu)
文中需要采集的數(shù)據(jù)包括室內(nèi)光照強度,室內(nèi)活動狀態(tài)數(shù)據(jù),開關(guān)狀態(tài)數(shù)據(jù)等,量化這些數(shù)據(jù)需要合適的傳感器。按照室內(nèi)環(huán)境數(shù)據(jù)收集精度的需求,選擇適合的傳感器達到數(shù)據(jù)收集的目的。
在智能家居的應(yīng)用場景下,無線傳感器網(wǎng)絡(luò)的一個重要功能是數(shù)據(jù)收集,即每個節(jié)點收集其傳感器數(shù)據(jù),并以多跳模式將其傳輸?shù)浇邮掌?。一般情況下在無線傳感器網(wǎng)絡(luò)當中,節(jié)點通常搭載電池,由于部署環(huán)境的復(fù)雜性,充電是不切實際的,不可能的或是不值得的。于是,要思考怎樣才能實現(xiàn)節(jié)能和延伸網(wǎng)絡(luò)的生命周期。
壓縮感知是一種將數(shù)據(jù)采集和數(shù)據(jù)壓縮集成在一起的新技術(shù),通過利用信號的稀疏性或可壓縮性,突破了經(jīng)典的香農(nóng)采樣理論的邊界,從而可以通過更少的樣本實現(xiàn)數(shù)據(jù)恢復(fù)的高精度?,F(xiàn)有的許多基于壓縮感知的數(shù)據(jù)收集方案中提出傳感器數(shù)據(jù)在通過特定路由路徑發(fā)送到接收器之前與一些系數(shù)相乘。接收器通過使用這些接收的測量結(jié)果構(gòu)建每個節(jié)點的原始數(shù)據(jù),其中恢復(fù)過程中采用的測量矩陣與測量過程中的測量矩陣相同。
壓縮感知最初是為有效存儲和壓縮數(shù)字圖像而開發(fā)的,在無線傳感器網(wǎng)絡(luò)中不一定能滿足壓縮感知表現(xiàn)良好的條件。例如,在一些方案中使用密集隨機矩陣投影增加了節(jié)點之間的通信開銷,從而降低了無線傳感器網(wǎng)絡(luò)中壓縮感知的有效性。一些方案引入稀疏樣本以減少流量,但是為了實現(xiàn)均勻和隨機的測量,它們需要精確的路由算法。
隨機游走是一種有效的,不需要全局信息的路由方法。隨機游走路徑上的每個節(jié)點從其鄰居中隨機選擇其下一跳節(jié)點,而沒有精確的路由控制。這種隨機跳轉(zhuǎn)機制可以有效地實現(xiàn)本地負載均衡。與傳統(tǒng)的樹或基于簇的結(jié)構(gòu)相比,它可以延長網(wǎng)絡(luò)的生命周期。
基于隨機游走的壓縮感知數(shù)據(jù)采集方案集成了壓縮感知和隨機游走,以實現(xiàn)優(yōu)勢互補,有效地緩解了傳統(tǒng)壓縮感知方案的不足。通過線性組合沿隨機游走路徑的節(jié)點的傳感器數(shù)據(jù),實現(xiàn)了有效的稀疏采樣測量。與傳統(tǒng)的基于壓縮感知的數(shù)據(jù)采集方案相比,基于隨機游走的壓縮感知數(shù)據(jù)采集方案可以有效降低通信開銷。在隨機游走的多跳傳輸過程中,每個節(jié)點從包含多于一個節(jié)點的候選列表中隨機選擇其下一跳節(jié)點。它實現(xiàn)了局部能量平衡,減少了對少數(shù)人依賴的瓶頸,從而延長了網(wǎng)絡(luò)生命周期。
數(shù)據(jù)預(yù)處理具體包含數(shù)據(jù)的清理、集成、選擇、轉(zhuǎn)換等,數(shù)據(jù)清理是在數(shù)據(jù)中消除錯誤和不一致,并解決物體識別問題,去除噪聲或無關(guān)數(shù)據(jù),處理數(shù)據(jù)中缺失的數(shù)據(jù)字段;數(shù)據(jù)集成將來自多個數(shù)據(jù)源的數(shù)據(jù)組合在一個統(tǒng)一的數(shù)據(jù)存儲中,解決了語義歧義并整合到一致的數(shù)據(jù)存儲中;數(shù)據(jù)選擇基于對發(fā)現(xiàn)任務(wù)和數(shù)據(jù)本身內(nèi)容理解,尋找依賴于發(fā)現(xiàn)目標的表達數(shù)據(jù)的有用特征,要減小數(shù)據(jù)的大小,在盡可能保持原始數(shù)據(jù)的同時最大化數(shù)據(jù)量,數(shù)據(jù)選擇可以使數(shù)據(jù)的規(guī)律性和潛在特征更加明顯;數(shù)據(jù)協(xié)議將識別出需要挖掘的數(shù)據(jù)集,并縮小處理范圍,這是基于數(shù)據(jù)選擇進一步減少挖掘數(shù)據(jù)。
該功能模塊主要包括設(shè)計網(wǎng)關(guān);設(shè)計數(shù)據(jù)格式,以促進數(shù)據(jù)存儲,包括數(shù)據(jù)的添加、刪除、修改和查詢等操作,提供預(yù)處理數(shù)據(jù)用于后續(xù)用戶行為識別和行為預(yù)測。
智能家居網(wǎng)關(guān)是連接智能家居內(nèi)外通信的橋梁,在家庭內(nèi)部,通過無線傳感器網(wǎng)絡(luò)實現(xiàn)對各種傳感器設(shè)備的控制與管理;在家庭外部,通過互聯(lián)網(wǎng)達到遠程通信與控制的目的。文中的網(wǎng)關(guān)系統(tǒng)將于PC端實現(xiàn),具體的功能包括:無線傳感器網(wǎng)絡(luò)與互聯(lián)網(wǎng)通信,傳輸數(shù)據(jù),預(yù)處理數(shù)據(jù),并存儲傳感器數(shù)據(jù)。
網(wǎng)關(guān)的基本目標是解決不同端點網(wǎng)絡(luò)和Internet之間的異構(gòu)性,加強端點網(wǎng)絡(luò)的管理,并將傳統(tǒng)Internet與端點網(wǎng)絡(luò)連接起來。由于最先進的物聯(lián)網(wǎng)網(wǎng)關(guān)旨在連接到移動和無線網(wǎng)絡(luò),它們強調(diào)在智能設(shè)備和用戶云之間提供靈活的連接,實現(xiàn)智能大數(shù)據(jù)分析和數(shù)據(jù)驅(qū)動決策。此外,它們可以靈活地配置不同的協(xié)議模塊,以與終端節(jié)點或輸入輸出設(shè)備進行通信。
網(wǎng)關(guān)務(wù)必要支持各個端點的多樣性,同時考慮到不同種類的終端設(shè)備支持不同的接口,來自不同節(jié)點集的數(shù)據(jù)的收集和聚合需要一種用于以一致且可靠的方式橋接具有一系列處理能力和接口的設(shè)備的手段。它們通過支持不同的設(shè)備連接方法來實現(xiàn)這一目標,無論這是來自原始傳感器的變化電壓,還是來自編碼器的I2C數(shù)據(jù)流,還是來自通過無線網(wǎng)絡(luò)的定期更新的設(shè)備。網(wǎng)關(guān)通過整合來自不同來源和接口的數(shù)據(jù)并將它們連接到互聯(lián)網(wǎng),有效地減輕了設(shè)備的多樣性。因此,各個節(jié)點不需要承擔(dān)高速因特網(wǎng)接口的復(fù)雜性或成本以便連接。
然而,當前的物聯(lián)網(wǎng)網(wǎng)關(guān)被動或半自動地運行。這意味著,當用戶使用新的設(shè)備時,需要根據(jù)設(shè)置手冊手動安裝設(shè)備。之后,IOT網(wǎng)關(guān)詢問用戶是否應(yīng)該注冊新設(shè)備。為解決這一問題,可以考慮提出一種適用于小規(guī)模物聯(lián)網(wǎng)環(huán)境的可靠物聯(lián)網(wǎng)網(wǎng)關(guān)。當用戶在家中帶來新設(shè)備時,物聯(lián)網(wǎng)網(wǎng)關(guān)自動檢測此新設(shè)備并自行注冊。如果用戶從他/她的家中丟棄舊設(shè)備,則智能物聯(lián)網(wǎng)網(wǎng)關(guān)會自動從設(shè)備列表中刪除該設(shè)備。用戶沒有必要關(guān)心如何注冊和安裝新的物聯(lián)網(wǎng)設(shè)備。
當今可用的物聯(lián)網(wǎng)網(wǎng)關(guān)允許用戶設(shè)置一些電視頻道,燈光,冰箱等屬性。然而,未來的智能家居,特別是基于軟件定義網(wǎng)絡(luò)的智能家居,可能具有非常豐富的配置控制。旨在開發(fā)能夠使物聯(lián)網(wǎng)網(wǎng)關(guān)自動配置的算法,提出了一個自動配置的初步研究,它考慮了兩個屬性:動態(tài)發(fā)現(xiàn)和自動注冊。使用IoTivity框架設(shè)計物聯(lián)網(wǎng)網(wǎng)關(guān)IoTivity的交互模型,這類似于HTTP的客戶端/服務(wù)器模型,并使用CoAP協(xié)議進行設(shè)備到設(shè)備(D2D)通信。使用選項和有效負載字段來收集每個設(shè)備的屬性信息。標題中CoAP字段的詳細信息在IETF RFC文檔中定義。但是,D2D交互通常會導(dǎo)致IoTivity實現(xiàn)在客戶端和服務(wù)器角色中都起作用。IoTivity操作等同于HTTP的操作,并由客戶端發(fā)送以請求對服務(wù)器上的操作(由URI標識)。然后,服務(wù)器傳回響應(yīng)代碼,此響應(yīng)包括資源表示。
數(shù)據(jù)存儲考慮到智能家居環(huán)境下的數(shù)據(jù)量,用戶的個人隱私等因素,選用SQL Server數(shù)據(jù)庫存儲數(shù)據(jù)。該數(shù)據(jù)庫是一種關(guān)系型的數(shù)據(jù)庫系統(tǒng),是一個能擴展的、高性能的、為分布式客戶端/服務(wù)器計算所設(shè)計的數(shù)據(jù)庫管理系統(tǒng)。存儲傳感器數(shù)據(jù)的特征向量,在數(shù)據(jù)庫中創(chuàng)建sensor_Data表,其表的結(jié)構(gòu)如表1所示。
表1 sensor_Data表結(jié)構(gòu)
該功能包括基于隱馬爾可夫模型的行為識別和基于關(guān)聯(lián)規(guī)則數(shù)據(jù)挖掘的行為預(yù)測。分析用戶的行為偏好,它以時間戳的順序呈現(xiàn),該序列可以包括用戶已經(jīng)發(fā)生過的吃飯、看電視、洗衣服和睡覺等行為,最終預(yù)測用戶未來的興趣。采用一種新穎的情境感知推薦系統(tǒng),該系統(tǒng)根據(jù)從該用戶收集的反饋序列對用戶的情境變化進行建模。所提出的方法監(jiān)視用戶偏好的變化并動態(tài)地適應(yīng)這些變化。
許多現(xiàn)有的傳統(tǒng)推薦系統(tǒng)假設(shè)用戶偏好模式是靜態(tài)的并且基于用戶的交互和偏好歷史產(chǎn)生推薦。然而,通常由于用戶興趣和他們的背景變化的變化,用戶的偏好可能隨時間而變化。對于諸如聽音樂和看電影之類的頻繁選擇的項目,用戶的偏好可以由于他們的興趣的演變而改變。例如,用戶的音樂推薦系統(tǒng)可以基于當前上下文(運動,駕駛等)推薦不同類型的音樂。這些更改已促使用戶過去選擇使用的推薦系統(tǒng)。盡管傳統(tǒng)的推薦系統(tǒng)具有識別用戶的過去偏好的能力,但是如果用戶的偏好在訓(xùn)練階段之后發(fā)生改變,則基于過去的偏好的推薦并不總是為用戶提供最大的益處。不考慮這些更改可能會顯著降低系統(tǒng)性能。
另一方面,智能手機的流行和無處不在的計算使推薦系統(tǒng)能夠訪問用戶的文本信息。考慮用戶的上下文感知推薦系統(tǒng)使用上下文信息,例如用戶活動,時間和位置等,來了解用戶上下文及其對用戶偏好的影響。與使用過去用戶偏好的其他推薦系統(tǒng)相比,該系統(tǒng)提供接近每個用戶的當前上下文的相關(guān)推薦。
一種新穎的分層隱馬爾可夫模型用于從數(shù)據(jù)中提取潛在的上下文。潛在的上下文由無監(jiān)督的隱藏上下文模式組成,其在建議的方法中被建模為狀態(tài)。文中用戶選擇的項目被視為給定時間段內(nèi)的序列。并且還假設(shè)用戶上下文不是由直接因素提供的,這些因素是動態(tài)的,應(yīng)該從用戶與系統(tǒng)的交互中推斷出來。在當前上下文中使用用戶選擇和用戶先前偏好的推薦系統(tǒng)可以向用戶提供興趣推薦。例如,基于用戶在當前上下文中收聽的音樂序列,推薦系統(tǒng)可以推薦相關(guān)的音樂。要想估測所提出的模型,采取由時間戳數(shù)據(jù)序列組成的訓(xùn)練樣本。
采用基于Apriori算法的關(guān)聯(lián)規(guī)則數(shù)據(jù)挖掘,首先把處理后的事件序列化,即事務(wù)用字母表示。由于同一事件可能在白天多次發(fā)生,因此同一天的同一事件可以通過不同的字母區(qū)分,在同一天中同一個事件可能發(fā)生多次,第一次發(fā)生時用字母A表示,當再次發(fā)生時可以用字母B表示,比如做早飯、做晚飯。某用戶一天的行為動作可能為做飯、洗衣服、做飯、洗澡,那么可以表示為ADBJ,依次類推。然后,最小支持度和最小置信度分別設(shè)置為0.5和1,并且基于Apriori的關(guān)聯(lián)規(guī)則數(shù)據(jù)挖掘算法程序由Java語言實現(xiàn),輸入是最小支持度和最小置信度的事件序列,輸出則是關(guān)聯(lián)規(guī)則。
測試場景選取某小區(qū)一家庭,分別在門、電視桌、洗衣機、熱水器和床等關(guān)鍵位置部署門傳感器、位置傳感器、壓力傳感器和光敏傳感器等,測試行為包括吃飯、看電視、洗衣服、洗澡、睡覺共5種行為動作。測試方法要求參與者根據(jù)自己的生活習(xí)慣,將5種行為動作穿插在一起,模擬日常行為,獲取到的數(shù)據(jù)集作為訓(xùn)練集,結(jié)果如表2所示。
表2是行為列表,在數(shù)據(jù)庫中有9個事務(wù),項目a,b,c,d,e分別表示用吃飯、看電視、洗衣服、洗澡、睡覺。
表2 行為列表
首先設(shè)最小支持度為3,即min_sup=3,利用Apriori算法產(chǎn)生候選項集及頻繁項集。
使用如下散列函數(shù)創(chuàng)建散列表H2,h(x,y)=((x的序)*10+(y的序) mod 7)。
由C1中的候選1項集產(chǎn)生頻繁1項集L1時,可以對每個事務(wù)產(chǎn)生所有的2項集,將它們散列(即映射)到散列表結(jié)構(gòu)的不同桶中,并增加對應(yīng)的桶計數(shù),結(jié)果如表3所示。
表3 散列表H2
分析:因為最小支持度為3,則可以通過觀察哈希表H2時發(fā)現(xiàn)其中的桶0,1,3,4中的項集不可能是頻繁的,可以從候選集中刪除,因此它們不包括在C2中。該方法省略了由散列表設(shè)置的k-項集連接生成候選集,顯著地壓縮了要檢查的k項集,特別是當k=2時。可以看出,采用這種基于散列的技術(shù)可以大大提高原算法的效率。
同理,再經(jīng)過幾次迭代掃描可以找出全部的頻繁項集。然后設(shè)置最小置信度為05,即min_confidence=0.5,利用上述步驟產(chǎn)生的頻繁項集產(chǎn)生關(guān)聯(lián)規(guī)則。例如,
Confidence(i1?i2)=4/6=0.67≥0.5
(1)
Confidence({i1,i2}?i3)=2/4=0.5≥0.5
(2)
部分測試用例如表4所示。
表4 測試用例
最后進行實驗結(jié)果分析,由式1得到該用戶在吃飯時有2/3的概率會看電視,因此可以在感知到用戶坐在餐桌前時,智能地控制電視的自動打開,減少人工干預(yù)。由式2得到該用戶在吃飯和看電視之后有1/2的概率會睡覺,比如午休時,因此可以在感知用戶離開餐桌時,智能地控制電視的自動關(guān)閉,同時調(diào)節(jié)空調(diào)到適宜的溫度等。一般情況下,用戶的日常生活行為習(xí)慣不會改變,且模式一致,因此可以為智能家居系統(tǒng)的控制策略提供良好的理論依據(jù)。
重點闡述了目前的智能家居系統(tǒng),該系統(tǒng)只能根據(jù)事先設(shè)定的程序控制方法和規(guī)則簡單重復(fù),根據(jù)用戶的日常生活習(xí)慣,不可能隨時提供滿足個人需求的服務(wù)。因此,根據(jù)關(guān)聯(lián)規(guī)則數(shù)據(jù)挖掘算法,提出了一種預(yù)測用戶未來行為的方法,為系統(tǒng)的控制策略提供理論依據(jù),使得家居生活更加靈活、智能化,向更加人性化和智能化邁進。