?

設備端基于深度學習的智能家居服務推薦框架

2024-03-05 00:14陳佳雯黃志明蔡澤卓陳星
計算機應用研究 2024年2期
關鍵詞:自然語言處理知識圖譜智能家居

陳佳雯 黃志明 蔡澤卓 陳星

收稿日期:2023-06-19;修回日期:2023-08-16? 基金項目:國家自然科學基金資助項目(62072108);福建省自然科學基金杰青資助項目(2020J06014);福建省財政廳科研專項經費資助項目(83021094)

作者簡介:陳佳雯(1998—),女,福建廈門人,碩士研究生,CCF會員,主要研究方向為軟件自適應、知識圖譜;黃志明(1994—),男,福建莆田人,碩士,主要研究方向為軟件自適應、知識圖譜;蔡澤卓(2002—),男,福建福州人,主要研究方向為計算機視覺;陳星(1985—),男(通信作者),福建福州人,教授,博導,博士,CCF杰出會員,主要研究方向為軟件工程、服務計算、軟件自適應(chenxing@fzu.edu.cn).

摘? 要:隨著智能家居的普及,用戶期望通過自然語言指令實現智能設備的控制,并希望獲得個性化的智能家居服務。然而,現有的挑戰包括智能設備的互操作性和對用戶環境的全面理解。針對上述問題,提出一個支持設備端用戶智能家居服務推薦個性化的框架。首先,構建智能家居的運行時知識圖譜,用于反映特定智能家居中的上下文信息,并生成用例場景語句;其次,利用預先收集的通用場景下,用戶的自然語言指令和對應的用例場景語句訓練出通用推薦模型;最后,用戶在設備端以自然語言管理智能家居設備和服務,并通過反饋微調通用模型的權重得到個人模型。在基本指令集、復述集、場景指令集三個數據集上的實驗表明,用戶的個人模型相比于詞嵌入方法的準確率提升了6.5%~30%,與Sentence-BERT模型相比準確率提升了2.4%~25%,驗證了設備端基于深度學習的智能家居服務框架具有較高的服務推薦準確率,能夠有效地管理智能家居設備和服務。

關鍵詞:物聯網; 知識圖譜; 智能家居; 自然語言處理; 相似度計算

中圖分類號:TP391.1??? 文獻標志碼:A

文章編號:1001-3695(2024)02-032-0533-07

doi:10.19734/j.issn.1001-3695.2023.06.0262

On-device deep learning for smart home service recommendation framework

Chen Jiawen1,2,3, Huang Zhiming1,2,3, Cai Zezhuo4, Chen Xing1,2,3

(1.College of Computer & Data Science, Fuzhou University, Fuzhou 350116, China; 2. Key Laboratory of Spatial Data Mining & Information Sharing, Ministry of Education, Fuzhou 350002, China; 3. Fujian Key Laboratory of Network Computing & Intelligent Information Processing (Fuzhou University), Fuzhou 350116, China; 4. School of Computer Science, Beijing Institute of Technology, Beijing 100081, China)

Abstract:As smart homes become more prevalent, users expect to control smart devices through natural language commands and desire personalized smart home services. However, existing challenges include the interoperability of smart devices and a comprehensive understanding of the user environment. To address these issues,this paper proposed a framework supporting personalized smart home service recommendations for device-end users. Firstly, it constructed a runtime knowledge graph to reflect contextual information in specific smart homes and generated scenario-based sentences. Secondly,it trained a general recommendation model using pre-collected natural language instructions and corresponding scenario-based sentence representations from users in common scenarios. Finally, users interacted with smart home devices and services through natural language on the device end while fine-tuning the weights of the general model through feedback to obtain a personal model. Experimental results on three datasets-basic instruction set, paraphrase set, and scenario instruction set show that the personal model achieves an accuracy improvement of 6.5% to 30% compared to word embedding methods and 2.4% to 25% compared to the Sentence-BERT model, which validates that the device-end deep learning-based smart home service framework has a high ser-vice recommendation accuracy and effectively manages smart home devices and services.

Key words:Internet of Things; knowledge graph; smart home; natural language processing; similarity calculation

0? 引言

隨著智能家居設備的不斷普及,人類生活已經逐步進入到了以智能設備為主導的新時期。智能家居服務通過將房屋設施與物聯網(IoT)技術相結合[1]來提高人們的生活質量。例如,方便老年人開關燈、方便年輕人做家務等。目前,一些大型智能設備制造商如蘋果、華為、三星等,都致力于構建覆蓋家庭生活各個方面的設備生態系統。它們推出了相應的平臺,用于統一接入和管理該生態系中的設備。例如,蘋果的Homekit[2]、華為的HiLink[3]和三星的Smart Home[4]等平臺,為用戶提供了集成和控制智能家居設備的解決方案。用戶通過在智能手機上安裝特定于平臺的應用程序來獲得對設備的控制權。這些應用程序通常提供單個設備的控制功能,并為協調多個設備的場景定義規則[5]。在被智能設備包圍的生活空間中,用戶通常需要個性化的智能家居服務[6]。他們可能需要獲取設備的具體狀態信息或直接對其進行控制,比如確認窗戶是否已關閉。此外,他們還可以指定設備之間的協作規則,使智能設備能夠在特定環境條件下執行相應操作[7]。例如,當樓道里的傳感器探測到夜間有人經過時,自動打開浴室燈。個性化的智能家居場景可能會非常復雜,因此需要使用程序級的服務實現來支持設備的管理和協作[8]。此外,為了提供良好的用戶體驗,還需要提供簡單易懂的交互方式。其中,自然語言指令是一種合理的解決方案,可用于管理智能家居設備和服務,使用戶能夠通過直接語言輸入來控制和操作智能家居系統。

然而,智能家居服務的個性化支持仍面臨著一些挑戰,如智能設備的互操作性和對用戶環境的全面理解。首先,不同品牌的設備需要通過各自的應用程序進行接入,其數據格式、通信協議和函數調用方法也存在差異。因此,在涉及跨品牌設備的場景中,設備之間的交互和協作變得相當困難。其次,個性化智能家居服務需要結合情境知識,以提供實時、靈活和有價值的服務。然而,現有的智能家居系統在抽象層面上缺乏全面的知識表示能力[9]。

為了解決上述問題,本文提出了設備端基于深度學習的智能家居服務推薦框架。該框架首先支持終端用戶的個性化智能家居服務,能夠理解用戶的自然語言指令,并將其轉換為相應的智能家居服務,同時,它還能夠實現跨品牌和多功能設備之間的協作。為此,引入了一個運行時知識圖譜,作為指令與智能設備操作之間的橋梁。該知識圖譜基于概念模型,反映了特定智能家居環境中的實時情景知識,包括設備狀態、用戶或植物位置等。它能夠感知實時場景信息,并相應地更新到知識圖譜中??蚣苓€能夠將語言指令映射到由知識圖譜生成的場景用例,并最終由相應設備執行相應的服務。實驗結果顯示,本文框架在三個指令數據集上的測試結果超越了對比方法。

1? 相關工作

1.1? Siamese LSTM模型

Siamese LSTM模型是一種基于孿生網絡架構的文本相似度模型,它結合了長短期記憶(LSTM)神經網絡和孿生網絡的優勢。Siamese LSTM(簡稱SLSTM)模型通過將兩個輸入句子分別輸入到兩個共享參數的LSTM網絡中,從而獲得兩個句子的向量表示,這些向量表示可以用于計算句子之間的相似度或進行其他文本相關的任務。Mueller等人[10]提出了一種基于SLSTM模型的方法,用于學習句子之間的相似度,模型使用兩個LSTM網絡來編碼輸入句子,然后通過計算句子表示之間的距離來度量相似度。Neculoiu等人[11]提出了一種基于SLSTM模型的文本相似度學習方法,模型通過將句子映射為低維空間的向量表示,并使用余弦相似度度量句子之間的相似度,該方法在多個文本相似度任務上展現出了優越的性能。

SLSTM模型在文本相似度任務中被廣泛應用。它們通過共享參數的LSTM網絡來學習句子的向量表示,并利用這些表示來度量句子之間的相似度。這些方法的成功表明SLSTM模型在處理文本相似度問題上具有較強的表現力。

1.2? 物聯網服務推薦

智能家居是物聯網的典型場景。目前已經有幾項研究和解決方案來實現智能家居的互操作性。文獻[12]提出一種通用數據服務中間件,實現了異構設備和協議在運行時的無縫集成,讓用戶可以靈活添加、管理和訪問各種設備和協議。文獻[13]提出了一個允許智能家居中異構設備協作通信的框架,通過集中式數據庫服務器驗證設備的真實性,并支持設備之間的互操作性,服務器提供遠程訪問控制和監視功能,通過加密規則協調和監控異構智能設備。雖然引入集成架構可以管理異構設備,但在特定場景下(如個性化的智能家居服務),仍然可能需要手動自定義IoT應用程序的管理邏輯。這是因為,每個智能家居系統都具有獨特的需求和功能,無法完全依賴通用的集成架構來滿足所有情況。

為了支持物聯網應用的服務管理與邏輯開發,已經進行了一些專注于語義表示的研究。文獻[14]提出了一種聲明式方法,用于構建基于事件驅動的物聯網服務系統,該方法明確將物理設備和系統建模為服務架構的核心組成部分。文獻[15]提出了一種名為WITSCare的基于Web的智能家居系統,該系統通過整合基礎環境服務,為用戶提供直觀的可視化界面,用戶可以采用所見即所得的方式定義規則,并使用拖放操作來指定和管理復雜的規則。使用WITSCare進行個性化服務推薦需要用戶付出很大的學習成本,因為用戶需要理解如何使用系統的界面和功能來定義和管理規則,這可能對某些用戶來說具有挑戰性。

目前,智能家居系統普遍支持通過移動終端(如手機)進行操作,這已經成為一種趨勢。移動終端的加入使得智能家居體驗更加簡單和快捷。在文獻[16]中,Almond是唯一一個允許用戶使用自然語言來指定觸發動作命令的虛擬助手。Almond不僅可以控制智能設備,還可以創建自動化任務。它提出了一個開放式虛擬助手架構,并提供了一種獲取訓練數據的方法。后續工作中的Genie工具包[17]用于為新的虛擬助手訓練語義解析器。Genie工具包可以減少人工工作量,處理新的復合命令。它要求開發人員定義適合其領域的技能和結構,并且無須機器學習專業知識即可獲得自然語言界面。然而,在語料庫有限的情況下,這些虛擬助手對用戶的自然語言指令理解通常不夠準確。

2? 本文框架

圖1為本文所提設備端基于深度學習的智能家居服務推薦框架總體架構。首先,根據真實的智能家居場景構建運行時的知識圖譜,用于反映特定智能家居中的上下文信息,并根據用例場景指令生成規則得到用例場景指令。其次,利用預先收集的通用場景下用戶的自然語言指令和對應的用例場景表示語句,訓練一個基于SLSTM的智能家居服務推薦模型,即通用模型,在云端上為通用場景提供服務推薦,并將通用模型推送給單個設備。用戶設備從云端獲取通用模型,對通用模型權重進行增量訓練微調,得到個人模型,其中每個用戶在自己的設備上收集其自然語言指令和對通用模型推薦結果的反饋。最后,根據用戶在不同場景下的指令,個人模型獲得在當前場景下需執行的自然語言指令與用例場景表示語句的相似度,執行相似度最高的用例場景指令,在運行時,知識圖譜中匹配與其相應的設備進行操作。 需要注意的是,個人訓練階段的微調意味著將通用模型根據用戶對服務推薦結果的反饋進行多組增量訓練,以適應用戶在不同智能家居場景下的服務推薦。模型增量訓練的好處是用戶的隱私不會被泄露,即每個用戶得到的個人模型是依據用戶習慣得到的,并且是獨有的。

2.1? 運行時知識圖譜

智能家居情境感知運行時知識圖譜是先前的工作[18],本節對運行時知識圖譜的核心概念進行介紹。圖2中展示了運行時知識圖譜的概念模型,用于智能家居個性化方案。該模型定義了涉及的概念以及它們之間的相互關系。核心概念包括 位置(location)、上下文(context)、設備(device)、服務(service)和用戶(user),在圖中以方框表示,定義如下:

a)location是指智能家居中的某塊區域,定義為元組〈LName〉。

b)context是指可以在智能家居中感知到的特定環境類型,如亮度、溫度等。它被定義為一個三元組〈CType,LName,CValue〉,其中CType表示環境的類型,LName表示感知的地點,CValue表示當前的環境值。

c)device是指智能家居系統中的設備,每個設備由一個元組〈DName,LName,State,{Key1,Key2,…,Keyn}〉表示。其中,DName表示設備的名稱,LName表示設備所部署的區域,State表示設備的當前狀態,{Key1,Key2,…,Keyn}是一個數組,表示設備可以改變或監控的環境類型。

d)service是指設備提供的操作或功能,通過這些服務可以操縱設備并改變環境。服務被定義為一個元組〈DName,LName,CType,Effect,State,SValue〉。其中:DName表示提供該服務的設備名稱;LName表示服務生效的區域;CType表示服務影響的環境類型;Effect表示應用服務時環境的影響類型,包括監控、升高和設值;State表示服務的啟用狀態;SValue記錄了由服務監視的值。

e)user是指智能家居系統的使用者,包括真人用戶和家庭盆栽等。本文使用元組〈UName,LName〉來表示用戶的名稱和當前所處位置。

概念模型定義了概念之間的關系,這些關系在圖2中顯示為帶有文本標簽的有向虛線。

a)located in(Xlocated inL)為位于關系,其中X可以是設備、服務、用戶以及環境,分別代表設備部署地點、服務作用地點、用戶所在地點以及當前環境。

b)sence(UsenseC)為用戶到環境的關系,它表示用戶所敏感的環境信息。

c)provide(DprovideS)為設備到服務的關系,表示智能設備可以提供的智能家居服務。

d)monitor(SmonitorC),increase(SincreaseC),reduce(SreduceC)和assign(SassignC)為服務到環境的關系,它們表示服務對環境的不同影響類型。其中,monitor表示監控環境的狀態值;increase和reduce表示增加或減少的環境值;assign是指為當前環境設置某個特定值。

為了實現運行時知識圖譜與真實智能家居場景之間的雙向同步,本文采用了運行時軟件架構模型[18,19]來構建知識圖的運行時模型。該模型在模型級別操作設備,并通過映射操作在運行時獲取與情境知識相關的屬性值,而非提前分配。因此,由于情境上下文的變化,運行時知識圖譜可能會發展演進。個性化智能家居服務可以通過在運行時知識圖譜上執行模型操作來實現。

2.2? 用例場景指令生成

根據用例場景,本文定義了服務推薦模型指令,并將其分為兩類基于功能的自然語言指令:

a)環境控制指令:這類指令旨在通過更改知識圖譜中設備或服務的屬性值來控制當前場景的環境狀態。例如,“Open the air conditioner in the sitting room.”和“Increase the brightness of sitting room.”是屬于此類的用例場景指令。

b)定量查詢指令:屬于該類別的指令旨在通過在運行時知識圖譜中檢索設備或環境實例的相應屬性來獲取設備或環境的狀態。例如指令“What is the brightness of the smart light?”用于獲取智能燈設定的亮度值,指令“What is the PM 2.5 of the living room?”則通過調用能夠監測客廳PM2.5值的設備的監測功能來查詢客廳的PM2.5數值。

因此,可以預先從運行時知識圖譜中生成所有可能的場景指令作為用例場景指令用于模型的推薦執行指令。表1提供了用例場景指令生成規則的示例。每一行表示一個生成方案,該方案利用知識圖譜中的抽象對象轉換為具體的用例場景指令。例如,當將設備“air conditioner”設置為“開”,并且用例場景是“sitting room”時,可以生成指令“Turn on the air conditioner in the sitting room.”。該示例說明了如何根據知識圖譜中的信息將抽象概念轉換為具體的用例場景指令。

2.3? 服務推薦模型

本文模型如圖3所示,服務推薦模型分為兩個部分。第一部分為embedding層和輸入層,輸入層讀取embedding層處理的自然語言指令作為輸入,以產生學習的語義表示向量。第二部分為SLSTM和全連接層,分為LSTMa和LSTMb兩個神經網絡,由于Siamese神經網絡的特性,LSTMa和LSTMb的權重是共享的。

對于用戶的自然語言指令和用例場景的自然語言指令中的每個單詞,獲取其詞向量。本文使用預訓練din維(本文中din=300)的GloVe[20]來表示詞向量,因為GloVe綜合了語料庫的全局統計特征和局部的上下文特征,局統計特征幫助捕捉單詞的整體語義信息,而局部上下文特征揭示了單詞與其周圍環境的關系,從而有助于準確識別相似的單詞。

在SLSTM層中,LSTM學習從din維向量的可變長度序列的空間到Rdrep(本文中drep=50)的映射。具體來說,用戶自然語言指令(表示為句向量序列)x1,x2,…,xn 被傳遞到LSTM。對于每個t∈{1,…,T},LSTM執行對隱藏狀態向量ht的更新的計算公式為

ht=sigmoid(Wxt+Uht-1)(1)

LSTM順序地更新隱藏狀態表示,但是這些步驟也依賴于包含四個分量的存儲器單元,即存儲器狀態ct,確定存儲器狀態如何影響其他單元的輸出門ot,以及基于每個新輸入和當前狀態控制存儲在存儲器中(和從存儲器中省略)的內容的輸入和遺忘門it、ft。下面是在由權重矩陣Wi、Wf、Wc、Wo、Ui、Uf、Uc、Uo和偏置向量Bi、Bf、Bc、Bo參數化的LSTM中的每個t∈{1,…,T}處執行的更新,通過式(2)~(7)在每個序列索引處更新其隱藏狀態。

it=sigmoid(Wixt+Uiht-1+bi)(2)

ft=sigmoid(Wfxt+Ufht-1+bf)(3)

t=tanh(Wcxt+Ucht-1+bc)(4)

ct=it⊙t+ft⊙ct-1(5)

ot=sigmoid(Woxt+Uoht-1+bo)(6)

ht=ot⊙tanh(ct)(7)

句子的最終表示由hT∈Rdrep(模型的最后隱藏狀態)編碼。對于給定的句子對,將預定義的相似度函數g:Rdrep×Rdrep→R應用于LSTM的表示。隨后使用表示空間中的相似性來推斷句子的潛在語義相似性。需要注意的是,在訓練期間,反向傳播的唯一誤差信號源于語句長度為n、m的用戶自然語言指令din子表示x(a)n和用例場景自然語言指令句子表示x(b)m之間的相似性,以及該預測的相似性如何偏離人類注釋的基本事實相關性。本文使用的相似性函數為余弦函數,其計算公式為

cos(x(a)n,x(b)m)=∑ni=1∑mj=1x(a)i×x(b)j∑ni=1(x(a)i)2×∑mi=1(x(b)i)2(8)

2.4? 用例場景指令的匹配

在用戶指令匹配方面,可以將其分為原始指令匹配和復合指令匹配兩種情況。對于原始指令匹配,也就是指令的操作僅包括環境控制、定量查詢的場景用例指令,例如:“turn on the air conditioner in the sitting room.”,這類指令可以直接進行指令匹配。而對于復合指令匹配,這類指令通常包含if子句的自然語言表達,例如:“if the temperature in the sitting room is above 20, open the air conditioner in the sitting room.”,在處理復合指令時,需要將復合指令分解為兩個簡單指令句,即“if the temperature in the sitting room is above 20”和“open the air conditio-ner in the sitting room”,針對每個分句進行獨立匹配,計算其與用例場景指令的相似度得分。然后,基于兩個分句的相似度分數來計算總體相似度,以確定與用戶指令最匹配的執行指令。另外,本文認為用戶自然語言指令對位置非常敏感。當用戶的指令中沒有明確包含位置信息時,他們通常期望系統調用所在區域內設備的相關服務。因此在這種情況下,需要在用戶的指令中附加獲取到的用戶位置信息,以確保系統能夠正確理解和執行用戶的意圖。

以一個例子來說明用戶指令的匹配過程。假設用戶自然語言指令是“turn up the brightness.”。為了提高匹配相似度,首先需要改進指令,附加位置信息。例如,如果用戶當前位于客廳(sitting room),則該句子可以被修改為“turn up the brightness in the sitting room.”。然后將用戶指令和2.2節生成的用例場景指令的句子對輸入個人模型,根據個人模型返回的推薦結果,列出了前5個相似度最高的指令,如表2所示。

第一個結果以0.986 32的相似性值對其他結果進行優先排序?;镜哪P椭噶钍恰癐ncrease the Servicei.CType of Servicei.LName.”,其中Servicei.CType是“brightness”,Servicei.LName是“sitting room”。根據運行時知識圖譜,推導出智能燈來支持指令。然后,基于運行時知識圖譜執行針對設備的模型指令,以實現智能家居服務的個性化。

3? 實驗與結果分析

3.1? 場景設置

為了驗證實驗結果,本文使用的智能家居場景如圖4所示。該場景包括客廳、臥室和陽臺三個區域,每個區域都布置了智能設備用于調控環境。場景包括溫度、濕度、亮度和PM 2.5四種類型的上下文。智能設備針對不同場景提供monitor、increase、reduce和assign等服務。每個區域中的各種智能設備主要是針對當前環境的亮度、溫度、濕度以及空氣質量進行檢測和改變。例如,空調可以監控、增加、減少或分配溫度;空氣凈化器可以提供降低PM2.5的服務。

基于上述智能家居場景實例,本文創建了3個location實例(Ll)、12個context實例(Cl_m,其中l是位置的序列號)、11個device實例(Dd)和29個service實例(Sd_n,其中d是設備的序列號)。還創建了兩個用戶實例Alice和Ken(U1和U2)?;谥悄茉O備部署的基本知識,該運行時知識圖譜建立了54個located in、29個provide、9個monitor、8個increase、5個reduce和7個assign關系。sense關系由用戶的實際位置決定,如圖5所示。

3.2? 實驗設置

本文使用SLSTM模型來實現服務推薦,即通用模型和個人模型。在通用模型的訓練中設置一個監督學習,其中每個訓練示例由用戶自然語言指令x(a)n和用例場景指令x(b)m組成的句子對及該句子對的相似度大小y組成,且用戶自然語言指令和用例場景指令的句子長度可以是不同的。通過計算句子的平均詞向量獲得句向量,對句向量求余弦距離獲得其在向量空間中的語義距離,即標簽y。

服務推薦模型由輸入層、embedding層、SLSTM層、全連接層、隱藏層、輸出層六部分組成。embedding層的輸入為自然語言指令,并根據Wiki百科預訓練得出的300維GloVe詞向量將自然語言指令表示為句向量。SLSTM層參數的優化使用Adam方法以及梯度裁剪(重標范數超過閾值的梯度)來避免梯度爆炸問題。將數據集隨機均勻劃分成訓練集和測試集,其中訓練集占數據集75%,測試集占25%。在訓練過程中,使用了批量大小為32的小批量隨機梯度下降。為了防止過度擬合,本文采用了提前停止策略和耐心值為5的設置。具體來說,其監測模型在驗證集上的性能,并在連續5個epoch中沒有改善時,提前停止訓練。整個訓練過程最多進行50個epoch。為了評估服務推薦模型的性能,并選擇最佳模型,本文使用了均方根誤差(root mean square error,RMSE)和平均絕對誤差(mean absolute error,MAE)作為指標。這些指標對模型的預測結果與實際值之間的誤差進行衡量。通過比較不同模型的誤差指標,可以選擇表現最佳的模型作為最終的服務推薦模型。

在設備端對通用模型進行微調的過程中,首先用戶通過向通用模型發送指令,得到服務推薦結果。如果相似度最高的推薦指令與用戶指令不匹配,用戶可以從推薦結果中選擇正確的用例場景指令。然后,將用戶指令和用例場景指令作為句子對輸入。接下來,在監督學習階段,將正確匹配的用例場景指令的監督學習量y設置為1,表示為正樣本。其他未匹配的用例場景指令的監督學習量y降低5%,表示為負樣本,以減少它們對增量訓練的影響。隨后,使用這些句子對和相應的監督學習量y對通用模型進行增量訓練,以獲得個人模型,該模型適應用戶的個性化需求。為了評估增量訓練效果和模型穩定性,可以進行隨機實驗檢測。在每組實驗中,使用相同的通用模型進行10次增量訓練。通過這個過程,用戶可以不斷優化通用模型,獲得更符合個人需求的個人模型。

3.3? 實驗數據

由于用戶隱私等問題,真實的實驗數據集較難獲取,所以,本文中用戶自然語言指令使用基本指令集、復述指令集和場景指令集三個數據集。這些數據集由志愿者參與并提供指令語句而形成,總共收集了2 104個指令語句,其中1 424個是原始指令語句,680個是復合指令語句。

基本指令集提供了智能家居服務的基本功能,這些提供基本功能的指令可以幫助用戶完成各種設備的基本控制?;局噶罴锌偣采闪?00條指令,其中包括121條原始指令語句和79條復合指令語句。

復述集主要是用于增加智能家居服務指令的多樣性,以便在現實情況下盡可能模擬用戶對智能家居設備的使用情況。因此,邀請了幾位熟悉智能家居設備和智能家居服務的同學在指定的智能家居場景下,根據對應的智能家居設備及服務提出自己認為合適的指令語句。最終,共收集了1 057條指令,其中有714條是原始指令,343條是復合指令。

場景指令集是由對智能家居場景中各種智能設備和智能家居服務不熟悉的同學提供的。這些同學僅根據對智能家居場景的簡要介紹,給出了他們認為合適的指令語句。在這個數據集中,共有1 047條指令,其中包括710條原始指令和337條復合指令。盡管缺乏具體設備和服務的知識,但這些同學的貢獻提供了一種多樣化的用戶自然語言指令視角。他們從自己的角度出發,根據對場景的理解和想象力,提供了獨特而有價值的指令語句。

3.4? 實驗評價標準

本文根據指令推薦結果采用了top-k準確率作為評價指標,其中k的取值為1、3和5,用來衡量推薦結果的準確性。此外,還通過比較通用模型增量訓練后得到的個人模型與原始通用模型在均方根誤差和平均絕對誤差上的大小,來驗證個人模型的性能。RMSE和MAE的計算如式(9)(10)所示。通過這些評價標準,可以對不同方法的服務推薦效果進行客觀的比較和分析。top-k準確率能夠反映推薦結果的精確程度,而RMSE和MAE則用于衡量個人模型相對于通用模型的預測誤差大小。

MAE=1n∑na=1pia-ria(9)

RMSE=1n∑pia-ria2(10)

其中:n為用戶i進行評分的對象個數;pia和ria分別為推薦模型預測分值和實際分值。平均絕對誤差和均方根誤差的數值越小,說明推薦模型的性能越好。

3.5? 實驗結果分析

3.5.1? 基線方法

為了驗證本文方法的指令匹配的性能,將本文方法與基于詞嵌入的方法[18]和Sentence-BERT[21]這兩個基線方法進行比較。

基于詞嵌入的方法利用詞向量技術將句子轉換為數值化表示。該方法使用預訓練的word2vec模型,在大規模訓練語料上對每個詞匯生成分布式表示的詞向量。對于每個句子,可以將其表示為所有詞向量的和的平均值。通過這種方式,每個用戶指令和用例場景指令都能夠被轉換為具有相同維度的詞向量表示。通過比較用戶指令的詞向量表示與不同執行指令的詞向量表示的余弦相似度,可以找到與用戶指令語義最接近的執行指令。

Sentence-BERT(SBERT)是一種基于BERT(bidirectional encoder representations from transformers)模型的句子級別的嵌入模型。SBERT使用預訓練的BERT模型進行句子級別的特征提取。與傳統的BERT模型只關注下一句預測任務不同,SBERT通過修改損失函數,在訓練過程中強制要求具有相同語義的句子在嵌入空間中更加接近。具體而言,SBERT采用了Siamese網絡結構,其中兩個共享參數的BERT模型分別編碼兩個句子。然后,通過計算兩個句子的嵌入向量之間的余弦相似度,可以衡量它們之間的語義相似性。

3.5.2? 對比實驗

個人模型是通過對相同的通用模型進行增量訓練和微調權重得到的。增量訓練的實驗步驟如下:從用戶輸入中選取了五組不同的指令集作為樣本,使用了五組指令集作為增量訓練數據對同一個通用模型進行了增量訓練。通過這種方式,能夠對模型在不同情景下的性能表現進行準確且全面的評估。因此,五組實驗得到的個人模型的RMSE和MAE值是不同的,這是正常的。在圖6和7中,總共有五條線代表著五組實驗得到的模型性能??梢杂^察到,隨著對通用模型進行增量訓練的次數增加,個人模型的RMSE和MAE呈現出逐漸下降的趨勢。這意味著隨著用戶對個人模型的使用,預測準確性也越來越高。這說明通過增量訓練,通用模型轉換為個人模型可以更好地滿足用戶的需求。因此,采用五組實驗得到的個人模型對復述集和場景指令集做完匹配后,最終需要對top1/top3/top5的準確率進行統計,然后求出平均值,得到個人模型的最終性能。

在實驗中對比本文方法、基于詞嵌入的方法和Sentence-BERT三種方法的top-k準確率結果。

首先,對比本文方法與詞嵌入方法。SLSTM與詞嵌入方法不同之處在于SLSTM能夠將整個句子作為輸入,可以捕捉到句子中的上下文信息并學習到句子的表示。相比之下,word2vec模型主要關注詞匯級別的語義表示,因此傳統的詞嵌入方法在求取句子向量時通常采用平均操作,這種簡單的處理方式可能忽略了一些關鍵詞對于整個句子語義的重要影響,從而導致句子表示的準確性有所降低。

其次,本文方法與SBERT模型的主要區別在于,SLSTM模型能夠考慮句子中的上下文信息并捕捉長期依賴關系,通過LSTM結構實現這一目標。此外,SLSTM模型采用帶有標簽的句子對數據進行監督學習,通過比較相似和不相似的句子對來訓練模型。這使得模型訓練更高效準確。另外,SLSTM模型專門優化了智能家居場景,可以根據該領域的特定需求和上下文提供更精準的推薦和指令匹配。與之相反,SBERT模型通過預訓練,在大規模語料上學習通用的句子表示。然而,由于其通用性,SBERT模型無法針對智能家居場景進行優化,并且無法根據用戶反饋微調模型以提高準確率。

由于三種方法在基本集中的指令匹配方面都表現出100%的準確性,所以在圖中未顯示具體結果。這種完全匹配的原因在于基本集的指令詞匯量是有限的。因此,無論哪種方法,都能夠準確識別指令中的單詞,并將其正確映射到相應的用例場景指令中。

圖8為三種方法對原始指令推薦結果的對比。相比之下,通用模型的準確率比詞嵌入的方法提升了3.3%~14%,個人模型的準確率比通用模型提升了4%~16%。通用模型比詞嵌入方法準確率更高的原因是通用模型對于指令句向量的表示中含有詞語位置的信息,在對于指令中的單詞位置變更并替換成同義詞時能較好地識別。在場景指令集上,通用模型的準確率比SBERT的方法提升了3%~4%,而個人模型在場景指令集、復述集兩個數據集的準確率比SBERT模型提升了2.4%~20%。個人模型比SBERT模型準確率更高的原因是通過增量訓練微調了模型權重。個人模型對用戶指令的語言風格更加熟悉,即使指令中的詞語位置有所變化,也能夠準確識別。這種對用戶特定語言模式的熟悉以及對詞語排列變化的處理能力,使得個人模型相比于SBERT模型在準確性上有所提升。

相比于復述集,場景指令集準確性較低的原因是同學們根據個人生活經驗和所提供的智能家居描述,提供了多種口語化的表達方式和特殊單詞。這些因素導致了在匹配和映射過程中一定程度的不準確性。例如,當志愿者試圖設置房間亮度時,他們可能會使用非常抽象的條件,比如“if the sitting room is well lighted”(如果客廳光線充足)。在這種情況下,三種方法都可能無法準確理解語義,導致最終錯誤地識別了指令。

圖9為三種方法對復合指令推薦結果的對比。相比之下,通用模型的準確率比詞嵌入方法提升了2%~8%,個人模型的準確率比通用模型提升了6%~16%。與SBERT相比,個人模型的準確率提升了13%~25%。復合指令比原始指令的準確率降低了5%~20%。準確率更低的原因是復合指令一般由兩個原始指令組成,只有在正確識別出兩個分開的原始指令時,才能正確識別復合指令。

參考文獻:

[1]Civitarese G, Sztyler T, Riboni D, et al. Polaris: probabilistic and ontological activity recognition in smart-homes[J]. IEEE Trans on Knowledge and Data Engineering, 2019,33(1):209-223.

[2]Chaki D, Bouguettaya A, Mistry S. A conflict detection framework for IoT services in multi-resident smart homes[C]//Proc of IEEE International Conference on Web Services. Piscataway, NJ: IEEE Press, 2020: 224-231.

[3]Chen Xing, Li Aipeng, Zeng Xuee, et al. Runtime model based approach to IoT application development[J]. Frontiers of Computer Science, 2015,9: 540-553.

[4]Trimananda R, Aqajari S A H, Chuang J, et al. Understanding and automatically detecting conflicting interactions between smart home IoT applications[C]//Proc of the 28th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering. New York:ACM Press, 2020: 1215-1227.

[5]Stojkoska B L R, Trivodaliev K V. A review of Internet of Things for smart home: challenges and solutions[J]. Journal of Cleaner Production, 2017,140: 1454-1464.

[6]Zhang Tiehua, Shen Zhishu, Jin Jiong, et al. Achieving democracy in edge intelligence: a fog-based collaborative learning scheme[J]. IEEE Internet of Things Journal, 2021,8(4): 2751-2761.

[7]邊寒, 陳小紅, 金芝, 等. 基于環境建模的物聯網系統TAP規則生成方法[J]. 軟件學報, 2021,32(4): 934-952. (Bian Han, Chen Xiaohong, Jin Zhi, et al. Approach to generating TAP rules in IoT systems based on environment modeling[J]. Journal of Software, 2021,32(4):934-952.)

[8]Gill S S, Garraghan P, Buyya R. ROUTER: fog enabled cloud based intelligent resource management approach for smart home IoT devices[J]. Journal of Systems and Software, 2019,154:125-138.

[9]Mavromatis A, Colman-Meixner C, Silva A P, et al. A software-defined IoT device management framework for edge and cloud computing[J]. IEEE Internet of Things Journal, 2020,7(3): 1718-1735.

[10]Mueller J, Thyagarajan A. Siamese recurrent architectures for lear-ning sentence similarity[C]//Proc of the 30th AAAI Conference on Artificial Intelligence. Palo Alto, CA: AAAI Press,2016: 2786-2792.

[11]Neculoiu P, Versteegh M, Rotaru M. Learning text similarity with Siamese recurrent networks[C]//Proc of the 1st Workshop on Representation Learning for NLP. Stroudsburg, PA: Association for Computational Linguistics, 2016: 148-157.

[12]吳宇. 物聯網數據服務中間件的設計與實現[J]. 計算機應用與軟件, 2022, 39(1):10-18. (Wu Yu. Design and implementation of IoT data service middleware[J]. Computer Applications and Software, 2022,39(1): 10-18.)

[13]Krishna M B, Verma A. A framework of smart homes connected devices using Internet of Things[C]//Proc of the 2nd International Conference on Contemporary Computing and Informatics. Piscataway, NJ: IEEE Press, 2016: 810-815.

[14]Zhang Yang, Chen Junliang. Declarative construction of distributed event-driven IoT services based on IoT resource models[J]. IEEE Trans on Services Computing, 2017,14(1):125-140.

[15]Yao Lina, Benatallah B, Wang Xianzhi, et al. Context as a service: realizing Internet of Things-aware processes for the independent living of the elderly[C]//Proc of International Conference on Service-Oriented Computing. Cham: Springer, 2016: 763-779.

[16]Campagna G, Ramesh R, Xu Silei, et al. Almond: the architecture of an open, crowdsourced, privacy-preserving, programmable virtual assistant[C]//Proc of the 26th International Conference on World Wide Web. Republic and Canton of Geneva, Switzerland : International World Wide Web Conferences Steering Committee ,2017: 341-350.

[17]Campagna G, Xu Silei, Moradshahi M, et al. Genie: a generator of natural language semantic parsers for virtual assistant commands[C]//Proc of the 40th ACM SIGPLAN Conference on Programming Language Design and Implementation. New York:ACM Press, 2019: 394-410.

[18]Chen Yiyan, Liu Zhanghui, Huang Zhiming, et al. A services deve-lopment approach for smart home based on natural language instructions[C]//Proc of the 31st International Conference on Software Engineering and Knowledge Engineering. 2019: 367-478.

[19]Song Hui, Huang Guang, Chauvel F, et al. Supporting runtime software architecture: a bidirectional-transformation-based approach[J]. Journal of Systems and Software, 2011,84(5): 711-723.

[20]Pennington J, Socher R, Manning C D. GloVe: global vectors for word representation[C]//Proc of Conference on Empirical Methods in Natural Language Processing. Stroudsburg, PA: Association for Computational Linguistics, 2014: 1532-1543.

[21]Reimers N, Gurevych I. Sentence-BERT: sentence embeddings using Siamese BERT-Networks[C]//Proc of Conference on Empirical Methods in Natural Language Processing and the 9th International Joint Conference on Natural Language Processing. Stroudsburg, PA: Association for Computational Linguistics, 2019.

猜你喜歡
自然語言處理知識圖譜智能家居
基于Zigbee的無線通信技術在智能家居中的應用
基于組合分類算法的源代碼注釋質量評估方法
基于知識圖譜的產業集群創新績效可視化分析
基于知識圖譜的產業集群創新績效可視化分析
基于知識圖譜的智慧教育研究熱點與趨勢分析
從《ET&S》與《電化教育研究》對比分析中管窺教育技術發展
面向機器人導航的漢語路徑自然語言組塊分析方法研究
關于智能家居真正需求的探討
漢哈機器翻譯中的文字轉換技術研究
HowNet在自然語言處理領域的研究現狀與分析
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合