王舒漫,李愛(ài)萍,段利國(guó),付 佳,陳永樂(lè)
(太原理工大學(xué)信息與計(jì)算機(jī)學(xué)院,太原030024)
物聯(lián)網(wǎng)(Internet of Things,IoT)作為我國(guó)戰(zhàn)略性新興產(chǎn)業(yè)的一個(gè)重要組成部分,正進(jìn)入深化應(yīng)用的新階段[1]。隨著5G 技術(shù)的推廣和物聯(lián)網(wǎng)設(shè)備的平價(jià)化,預(yù)計(jì)到2020 年會(huì)有500 億設(shè)備接入物聯(lián)網(wǎng)[1],同時(shí),也導(dǎo)致用戶從數(shù)量巨大的物聯(lián)網(wǎng)設(shè)備中精確地定位滿足其特定業(yè)務(wù)需求的設(shè)備變得越來(lái)越困難和耗時(shí),如何快速高效地輔助用戶發(fā)現(xiàn)滿足需求的設(shè)備成為了目前急需解決的問(wèn)題。
基于面向服務(wù)架構(gòu)(Service-Oriented Architecture,SOA)的物聯(lián)網(wǎng)使物聯(lián)網(wǎng)的功能服務(wù)化[2],服務(wù)聚類是支持服務(wù)快速發(fā)現(xiàn)的有效輔助方法,聚類算法根據(jù)某一相似特性快速聚合相關(guān)服務(wù),將數(shù)據(jù)劃分成不同的集合,能提高服務(wù)發(fā)現(xiàn)的效率。在物聯(lián)網(wǎng)服務(wù)發(fā)現(xiàn)中,Liu 等[3]通過(guò)提取物聯(lián)網(wǎng)服務(wù)的主題簽名,利用主題建模方法進(jìn)行聚類來(lái)確定相似服務(wù)集。Jiang等[4]使用自然語(yǔ)言處理技術(shù)提取服務(wù)描述文本中的目標(biāo)特征,計(jì)算兩個(gè)服務(wù)目標(biāo)特征之間的語(yǔ)義相似度,并采用K-means算法對(duì)服務(wù)進(jìn)行聚類。
上述研究為物聯(lián)網(wǎng)服務(wù)的發(fā)現(xiàn)提供了有益的方法參考。然而,物聯(lián)網(wǎng)服務(wù)描述文檔屬于短文本,特征稀疏,信息量少,采用已有的服務(wù)發(fā)現(xiàn)方法進(jìn)行聚類時(shí)會(huì)出現(xiàn)“類型無(wú)法識(shí)別、類型丟失”等現(xiàn)象,達(dá)不到理想效果。針對(duì)物聯(lián)網(wǎng)服務(wù)的上述特點(diǎn),本文提出了一種基于詞對(duì)主題模型BTM(Biterm Topic Model)的物聯(lián)網(wǎng)服務(wù)發(fā)現(xiàn)方法,根據(jù)服務(wù)的隱含主題進(jìn)行聚類。
物聯(lián)網(wǎng)的概念最早可追溯到20世紀(jì)90年代,國(guó)際電信聯(lián)盟在2005 年的ITU 互聯(lián)網(wǎng)報(bào)告中正式給出“物聯(lián)網(wǎng)”的概念:按照既定的協(xié)議,通過(guò)互聯(lián)網(wǎng)實(shí)現(xiàn)物與物之間信息交換和通信,進(jìn)而實(shí)現(xiàn)智能化識(shí)別、定位、跟蹤、監(jiān)控和管理的一種網(wǎng)絡(luò)。
物聯(lián)網(wǎng)場(chǎng)景中的“物”主要指的是現(xiàn)實(shí)環(huán)境中存在的感知識(shí)別、信息交互和智能控制的任何設(shè)備和資源。物聯(lián)網(wǎng)是開(kāi)放式的、動(dòng)態(tài)變化式的、高分布式的,允許設(shè)備隨時(shí)在不同地點(diǎn)以多種方式接入物聯(lián)網(wǎng)中;然而對(duì)設(shè)備信息沒(méi)有統(tǒng)一格式的描述,從而導(dǎo)致接入物聯(lián)網(wǎng)的設(shè)備呈現(xiàn)多種形式的信息表達(dá),設(shè)備間信息的交互和共享受限[5]。對(duì)物聯(lián)網(wǎng)設(shè)備信息進(jìn)行統(tǒng)一的資源描述,是面向物聯(lián)網(wǎng)設(shè)備服務(wù)發(fā)現(xiàn)的基礎(chǔ)。近年來(lái),一些研究人員通過(guò)以下方法來(lái)解決目前物聯(lián)網(wǎng)領(lǐng)域設(shè)備的統(tǒng)一描述問(wèn)題。王書龍等[6]提出了基于本體的物聯(lián)網(wǎng)設(shè)備資源描述模型,根據(jù)設(shè)備特點(diǎn)將其劃分為5 個(gè)類資源進(jìn)行綜合描述,包括屬性、控制、狀態(tài)、歷史信息和隱私。Santos等[7]提出了一種針對(duì)嵌入式資源的描述語(yǔ)言,該描述語(yǔ)言從功能、需求和限制三方面來(lái)描述設(shè)備資源。結(jié)合以上研究,本文根據(jù)異構(gòu)物聯(lián)網(wǎng)設(shè)備的共有特征,結(jié)合物聯(lián)網(wǎng)服務(wù)發(fā)現(xiàn)的需求,選取功能、接口、工作狀態(tài)、工作環(huán)境四部分來(lái)構(gòu)建物聯(lián)網(wǎng)服務(wù)描述模型,如圖1 所示。其中,功能用于描述用戶對(duì)服務(wù)功能的要求;接口用于描述用戶對(duì)于相關(guān)的設(shè)備服務(wù)接入方式的要求,包括接口信息、通信方式等;工作狀態(tài)用于描述用戶對(duì)于服務(wù)相關(guān)聯(lián)的設(shè)備的當(dāng)前運(yùn)行狀態(tài)的要求;工作環(huán)境用于描述用戶對(duì)于服務(wù)相關(guān)聯(lián)的設(shè)備的正常工作環(huán)境的要求,包括工作溫度、濕度、地理位置等。
圖1 物聯(lián)網(wǎng)服務(wù)描述文本Fig.1 Service description text for IoT
隨著技術(shù)發(fā)展,物聯(lián)網(wǎng)服務(wù)數(shù)量還在逐步呈不斷上升的趨勢(shì),高效快速地發(fā)現(xiàn)最佳的服務(wù)成為亟待解決的問(wèn)題。
通過(guò)挖掘服務(wù)的潛在語(yǔ)義信息對(duì)服務(wù)進(jìn)行聚類,尤其是借助于主題模型進(jìn)行服務(wù)發(fā)現(xiàn),能有效地提高服務(wù)聚類的精度和速度,減少資源消耗。在主題模型中,認(rèn)為一個(gè)服務(wù)描述文本包含多個(gè)隱含主題。Teixeira 等[8]提出采用概率發(fā)現(xiàn)的方法來(lái)進(jìn)行服務(wù)發(fā)現(xiàn),提高了服務(wù)發(fā)現(xiàn)的速度,并降低了服務(wù)資源的消耗。Casser 等[9]提出了一種混合語(yǔ)義的服務(wù)匹配方法,采用概率主題模型來(lái)學(xué)習(xí)服務(wù)的隱含主題,并通過(guò)主題相似度進(jìn)行服務(wù)聚類。同時(shí),由于物聯(lián)網(wǎng)設(shè)備故障或損壞、設(shè)備的移動(dòng)性等因素,使得物聯(lián)網(wǎng)服務(wù)經(jīng)常出現(xiàn)消失或重現(xiàn)等動(dòng)態(tài)變化特點(diǎn),使用主題模型對(duì)物聯(lián)網(wǎng)服務(wù)進(jìn)行主題建模成為解決服務(wù)動(dòng)態(tài)變化的有效方法之一。
然而,物聯(lián)網(wǎng)服務(wù)描述文檔屬于短文本,信息量少,缺乏足夠的詞頻共現(xiàn),直接使用傳統(tǒng)的主題模型或其擴(kuò)展模型對(duì)短文本進(jìn)行建模,會(huì)導(dǎo)致嚴(yán)重的數(shù)據(jù)稀疏問(wèn)題。因此,對(duì)語(yǔ)義信息稀少的短文本進(jìn)行合理的建模,是實(shí)現(xiàn)高質(zhì)量服務(wù)發(fā)現(xiàn)的關(guān)鍵。
近年來(lái),現(xiàn)有的研究中有部分嘗試將短文本進(jìn)行擴(kuò)充來(lái)進(jìn)行主題模型的訓(xùn)練。魏強(qiáng)等[10]利用英文Wikipedia 對(duì)短文本的服務(wù)描述進(jìn)行語(yǔ)義擴(kuò)充,將短文本轉(zhuǎn)換為長(zhǎng)文本進(jìn)行建模來(lái)構(gòu)建高質(zhì)量的主題模型。肖巧翔等[11]通過(guò)使用word2vec擴(kuò)充服務(wù)描述語(yǔ)義,然后基于隱狄利克雷分配(Latent Dirichlet Allocation,LDA)模型對(duì)服務(wù)進(jìn)行聚類。還有一些研究考慮利用外部知識(shí)庫(kù)對(duì)短文本進(jìn)行特征擴(kuò)充,這也是一種較常見(jiàn)的方法,但恰當(dāng)?shù)耐獠繑?shù)據(jù)集不容易找到,而且使用一個(gè)外部知識(shí)庫(kù)會(huì)使建模精確度下降,同時(shí),這些方法沒(méi)有普遍性。2013 年,Yan 等[12]在LDA 和一元混合模型的基礎(chǔ)上提出了基于詞對(duì)信息的詞對(duì)主題模型BTM,在不進(jìn)行文本擴(kuò)充的情況下能有效地克服短文本數(shù)據(jù)稀疏問(wèn)題,同時(shí)考慮了詞之間的語(yǔ)義聯(lián)系。因此,本文使用BTM 對(duì)物聯(lián)網(wǎng)服務(wù)的隱含主題進(jìn)行挖掘,再通過(guò)主題進(jìn)行服務(wù)聚類。
傳統(tǒng)的主題模型模擬文本的生成過(guò)程,再通過(guò)參數(shù)估計(jì)得到隱含主題。與傳統(tǒng)的主題模型相比,BTM 通過(guò)將文檔轉(zhuǎn)換為詞對(duì),直接對(duì)整個(gè)語(yǔ)料庫(kù)的詞對(duì)biterm(即共現(xiàn)的無(wú)序詞對(duì)模式)進(jìn)行建模來(lái)學(xué)習(xí)短文本中的主題。BTM 的圖模型表示如圖2所示。其中:φz表示主題z下的詞對(duì)概率分布,θ表示語(yǔ)料庫(kù)中全局主題概率分布,多項(xiàng)式分布的參數(shù)φz和θ 分別用于生成主題和詞對(duì);T 代表主題個(gè)數(shù);|B|代表語(yǔ)料庫(kù)biterm集合B中詞對(duì)的總數(shù);wi、wj和z分別代表詞對(duì)b的兩個(gè)詞及其主題;α和β是Dirichlet先驗(yàn)分布的參數(shù)。
圖2 BTM的圖模型表示Fig.2 Graphical model representation of BTM
在BTM中,語(yǔ)料庫(kù)由多個(gè)主題組成,每個(gè)biterm獨(dú)立地從特定主題中抽取,具體生成過(guò)程如下:
1)生成各個(gè)主題z下的主題-詞分布φw|z~Dir(β)。
2)生成整個(gè)語(yǔ)料庫(kù)的全局的主題分布θz~Dir(α)。
3)生成biterm集合B中的每個(gè)詞對(duì)b=(wi,wj):
a)從全局的θ中抽取一個(gè)主題z~Mulit(θ);
b)從主題z中抽取兩個(gè)詞:wi,wj~Mulit(φw|z)。
按照以上的生成過(guò)程,詞對(duì)b=(wi,wj)的聯(lián)合概率可以表示為:
因此,產(chǎn)生BTM語(yǔ)料庫(kù)的概率為:
其中:z-b表示除了詞對(duì)b 之外的所有biterm 的主題分配,nz表示biterm 分配給主題z的次數(shù),nw|z表示詞w 分配給主題z的次數(shù),M 表示語(yǔ)料庫(kù)中不同詞的次數(shù)。一個(gè)詞對(duì)b 被分配給主題z,詞對(duì)b中的兩個(gè)詞wi、wj也會(huì)被分配到主題z上。
根據(jù)詞對(duì)的主題分配的次數(shù)和詞共現(xiàn),全局主題分布θz和主題-詞分布φw|z可以進(jìn)行估計(jì):
其中:φw|z表示主題z 中詞w 的概率,θz表示主題z 的概率,|B|表示詞對(duì)總數(shù),T表示主題個(gè)數(shù)。
針對(duì)物聯(lián)網(wǎng)服務(wù)的特性,本文提出了一種基于BTM 的物聯(lián)網(wǎng)服務(wù)發(fā)現(xiàn)方法:首先通過(guò)預(yù)處理物聯(lián)網(wǎng)服務(wù)文檔,得到有效的服務(wù)特征數(shù)據(jù)集;接著利用BTM 提取服務(wù)的隱含主題,并通過(guò)全局主題分布θz和主題-詞分布φw|z計(jì)算推理得到服務(wù)文檔-主題概率分布p(z|d);然后利用基于最大距離的Kmeans 算法對(duì)服務(wù)進(jìn)行聚類;最后,通過(guò)計(jì)算服務(wù)請(qǐng)求與候選服務(wù)集中服務(wù)的相似度,返回最佳匹配結(jié)果?;贐TM 的物聯(lián)網(wǎng)服務(wù)發(fā)現(xiàn)框架如圖3所示。
圖3 基于BTM的物聯(lián)網(wǎng)服務(wù)發(fā)現(xiàn)框架Fig.3 Service discovery framework for IoT based on BTM
通過(guò)特征提取、分詞、去停用詞、詞干還原等方法,對(duì)物聯(lián)網(wǎng)服務(wù)描述文檔進(jìn)行預(yù)處理。
1)對(duì)物聯(lián)網(wǎng)服務(wù)描述文本中的“service name”“functional description”“interface type”等關(guān)鍵特征進(jìn)行提取。
2)對(duì)提取的文本中的復(fù)合詞進(jìn)行拆分,如“Carbon-Dioxide”等。
3)利用正則表達(dá)式去除一些無(wú)關(guān)詞匯和符號(hào),如“and”“of”“&”等,避免對(duì)建模造成影響。
4)具有相同詞干的單詞具有相同的含義,如“recommended”和“recommending”具 有 相 同 的 詞 干“recommend”,為了便于詞語(yǔ)匹配,需利用Python 庫(kù)NLTK 的Porter Stemmer進(jìn)行詞干還原。
在BTM 中,物聯(lián)網(wǎng)服務(wù)描述文本文檔可以被看作是包含隱含主題的文檔。將預(yù)處理后的數(shù)據(jù)集作為BTM 的輸入進(jìn)行建模,學(xué)習(xí)其隱含主題,并通過(guò)Gibbs 抽樣估計(jì)出全局主題分布θz和主題-詞分布φw|z。由于BTM 不對(duì)文檔生成過(guò)程進(jìn)行建模,而是直接對(duì)語(yǔ)料庫(kù)的詞對(duì)進(jìn)行建模,我們無(wú)法直接得到服務(wù)文檔-主題概率分布,因此需要推理計(jì)算服務(wù)文檔-主題分布p(z|d),將每個(gè)物聯(lián)網(wǎng)服務(wù)描述文本表示為隱含主題分布向量。該分布相當(dāng)于文檔中詞對(duì)的分布和詞對(duì)-主題分布的乘積,計(jì)算公式為:
其中,以詞對(duì)b 作為中間量,可以計(jì)算出文檔d 中詞對(duì)的條件概率分布p(b|d),計(jì)算公式如式(7)所示,nd(b)表示詞對(duì)b 在文檔d中出現(xiàn)的次數(shù)。
根據(jù)參數(shù)估計(jì)的結(jié)果,可計(jì)算得到詞對(duì)-主題分布p(z|b)為:
因此,在上述基礎(chǔ)上,通過(guò)全局主題分布θz和主題-詞分布φw|z計(jì)算推理得到服務(wù)文檔-主題概率分布p(z|d),下面給出具體的主題挖掘過(guò)程的算法。
輸入 主題數(shù)T,數(shù)據(jù)集services,參數(shù)α,參數(shù)β,迭代次數(shù)N;
輸出 參數(shù)p(z|d)。
服務(wù)聚類是根據(jù)服務(wù)某一特征快速將服務(wù)劃分成不同的集合。根據(jù)上述分析,得到服務(wù)文檔使用主題表征的向量后,本文根據(jù)主題之間的相似度,采用K-means 算法對(duì)服務(wù)進(jìn)行聚類。
為了避免K-means 算法在聚類時(shí)出現(xiàn)局部最優(yōu)解問(wèn)題,本文利用余弦相似度計(jì)算T 個(gè)主題向量?jī)蓛芍g的距離,并將距離最遠(yuǎn)的兩個(gè)作為初始簇中心,在剩余的(T-2)個(gè)主題中,選取前面兩個(gè)初始簇中心各自距離乘積最大值的那個(gè)樣本點(diǎn)作為第三個(gè)初始簇中心,依此類推,可以找到K 個(gè)初始簇中心,進(jìn)而在初始聚類中心的基礎(chǔ)上進(jìn)一步聚類。
具體的聚類算法過(guò)程如下:
步驟1 計(jì)算T 個(gè)服務(wù)主題兩兩間的相似度dis(n,1),選取dis(d1,d2)≥dis(di,dj)(i,j=1,2,…,T)作為兩個(gè)初始服務(wù)簇中心。
步驟2 在剩余的T-2 個(gè)主題中,選取dis(d1,d3)×dis(d2,d3)≥dis(d1,di)×dis(d2,di)(i=1,2,…,K)作為第三個(gè)初始簇中心,以此類推得到K個(gè)服務(wù)簇中心。
步驟3 對(duì)于剩余的T-K 個(gè)主題,計(jì)算每個(gè)主題與K 個(gè)服務(wù)簇中心的距離,并將該主題聚集到距離最近的服務(wù)簇中。
步驟4 重新計(jì)算K個(gè)服務(wù)簇中心。
步驟5 重復(fù)步驟3、4,直到服務(wù)簇中心不再改變,或者達(dá)到其他終止條件。
圖4是服務(wù)聚類的具體流程。
圖4 服務(wù)聚類流程Fig.4 Flowchart of service clustering
服務(wù)匹配是指根據(jù)用戶的服務(wù)請(qǐng)求,快速準(zhǔn)確地匹配到與服務(wù)請(qǐng)求相似度最高的服務(wù)并返回。具體匹配過(guò)程如下:
1)對(duì)于用戶的服務(wù)請(qǐng)求,通過(guò)BTM 獲取服務(wù)請(qǐng)求的隱含主題,計(jì)算其隱含主題與各服務(wù)簇中心的距離,將相似度最高的服務(wù)簇作為候選服務(wù)簇返回;
2)對(duì)于候選服務(wù)簇中的每一個(gè)服務(wù),利用余弦相似度計(jì)算其隱含主題與服務(wù)請(qǐng)求的隱含主題的相似度,并將相似度最高的服務(wù)作為匹配結(jié)果返回給用戶。
本文使用采集的物聯(lián)網(wǎng)設(shè)備服務(wù)數(shù)據(jù)集進(jìn)行實(shí)驗(yàn)。其中,物聯(lián)網(wǎng)工業(yè)現(xiàn)場(chǎng)設(shè)備服務(wù)數(shù)據(jù)集包含1 038 個(gè)服務(wù),涉及不同型號(hào)的射頻識(shí)別(Radio Frequency IDentification,RFID)標(biāo)簽、溫度傳感器、壓力傳感器、紅外氣體傳感器、輻射傳感器、電流變送器等多種物聯(lián)網(wǎng)設(shè)備。表1 列出了傳感器的部分參數(shù)信息。
所涉及算法通過(guò)Java、Python 編程語(yǔ)言實(shí)現(xiàn),實(shí)驗(yàn)環(huán)境為Intel Core i5-3210M CPU@2.50 GHz,內(nèi)存4.00 GB,32 位Windows 7操作系統(tǒng),Eclipse及PyCharm開(kāi)發(fā)平臺(tái)。
表1 傳感器的部分參數(shù)信息Tab.1 Some parameters information of sensors
本文采用類內(nèi)類間距離比值作為服務(wù)聚類質(zhì)量的評(píng)價(jià)指標(biāo),對(duì)于服務(wù)聚類而言,同一類內(nèi)部距離越小,不同類之間距離越大,表示該聚類效果明顯,計(jì)算如下:
其中:R(K)表示類內(nèi)類間距離比值,R(K)越小,聚類質(zhì)量越好。
within(K)表示類內(nèi)距離,即同一類中各服務(wù)之間的平均距離,本文使用所有類內(nèi)距離的最大值作為整個(gè)數(shù)據(jù)集的類內(nèi)距離,計(jì)算如下:
其中:i,j=1,2,…,K;xp和xq分別是屬于Ci類和Cj的服務(wù)。
本文采用準(zhǔn)確率Precision 和歸一化折損累積增益(Normalized Discounted Cumulative Gain,NDCG)作為服務(wù)發(fā)現(xiàn)結(jié)果的綜合評(píng)價(jià)指標(biāo)。
Precision 是指檢索得到的服務(wù)中正確服務(wù)的占比,如式
其中:|Ci|表示屬于Ci類的服務(wù)的個(gè)數(shù),xj和xp是屬于Ci類的服務(wù)。
between(K)表示類間距離,即不同類最近的兩個(gè)服務(wù)之間的距離,本文使用任意兩個(gè)類之間距離的最小值作為整個(gè)數(shù)據(jù)集的類間距離,計(jì)算如下:(12)所示,其中,Ci表示第i 個(gè)聚類簇,A 表示檢索得到的服務(wù)數(shù)中正確匹配的服務(wù)數(shù),B表示檢索得到的服務(wù)數(shù)。
NDCG 用來(lái)衡量和評(píng)價(jià)檢索結(jié)果算法,與服務(wù)請(qǐng)求相似度最高的檢索結(jié)果排位越靠前,NDCG的值越大,計(jì)算如下:
其中:reli表示在檢索結(jié)果p 個(gè)文檔中第i 個(gè)文檔的相關(guān)等級(jí),|REL|表示這p個(gè)文檔按照相關(guān)性從大到小的順序排序。
對(duì)物聯(lián)網(wǎng)服務(wù)描述文本進(jìn)行特征提取、分詞、詞干還原等操作,生成預(yù)處理文本作為BTM 建模的輸入,BTM 中的主題數(shù)T 是一個(gè)經(jīng)驗(yàn)值,根據(jù)數(shù)據(jù)集人為設(shè)定。參數(shù)α 一般取值,參數(shù)β一般取值0.01。經(jīng)過(guò)主題挖掘,可以得到服務(wù)文檔-主題分布矩陣,部分?jǐn)?shù)據(jù)如表2 所示(結(jié)果取小數(shù)點(diǎn)后8位,加粗?jǐn)?shù)據(jù)表示該文檔中主題相關(guān)性最高的主題的概率)。
表2 服務(wù)文檔-主題分布矩陣Tab.2 Service document-topic distribution matrix
4.3.1 BTM不同主題個(gè)數(shù)下服務(wù)聚類的比較
對(duì)具有不同主題數(shù)目的BTM 在用于物聯(lián)網(wǎng)服務(wù)聚類時(shí)的情況進(jìn)行了可視化對(duì)比。在該實(shí)驗(yàn)中,分別設(shè)定主題數(shù)為10、15、20、30 進(jìn)行訓(xùn)練,得到的模型分別標(biāo)記為BTM_10、BTM_15、BTM_20、BTM_30,部分實(shí)驗(yàn)結(jié)果如圖5 所示,圖中“十字”符為各聚類中心。從實(shí)驗(yàn)結(jié)果圖對(duì)比分析發(fā)現(xiàn),隨著B(niǎo)TM 主題個(gè)數(shù)的細(xì)化,物聯(lián)網(wǎng)服務(wù)的聚類效果發(fā)生明顯的變化。計(jì)算不同主題數(shù)下各聚類數(shù)對(duì)應(yīng)的類內(nèi)類間距離比值,如表3所示。在K=7 時(shí),不同主題數(shù)下類內(nèi)類間距離比值較??;T=15,K=7 時(shí),類內(nèi)類間距離比值最小,整體聚類效果較好(迭代次數(shù)N取值為2 000)。
表3 不同主題數(shù)下各聚類數(shù)K對(duì)應(yīng)的類內(nèi)類間距離比值Tab.3 Distance ratio within and between classes under different number of topics with different K
4.3.2 不同方法下服務(wù)發(fā)現(xiàn)的比較
為了驗(yàn)證本文提出的基于BTM的物聯(lián)網(wǎng)服務(wù)發(fā)現(xiàn)方法的有效性,采用4種現(xiàn)有服務(wù)發(fā)現(xiàn)研究中的常用方法TF-IDF[14]、LDA[15]、HDP[10]和LDA-K[16]作為基準(zhǔn)與本文方法進(jìn)行對(duì)比。
1)TF-IDF[14]:該方法用TF-IDF 算法計(jì)算服務(wù)之間的相似度,利用服務(wù)相似度使用K-means 方法進(jìn)行服務(wù)聚類,是一種基于關(guān)鍵詞的服務(wù)分類辦法。
2)LDA[15]:該方法建立了三層貝葉斯模型,即文檔-主題-詞,基于LDA 模型的服務(wù)發(fā)現(xiàn),通過(guò)LDA 建模提取服務(wù)的隱含主題信息,并根據(jù)不同主題對(duì)服務(wù)進(jìn)行分類。LDA 對(duì)長(zhǎng)文本進(jìn)行主題挖掘有較好的效果,但處理短文本效果不明顯。
3)HDP[10]:一種非參數(shù)貝葉斯主題模型,可以根據(jù)數(shù)據(jù)集自動(dòng)確定主題數(shù)量。與LDA 模型相比,該方法更適合對(duì)具有實(shí)時(shí)性的數(shù)據(jù)集進(jìn)行主題建模。
4)LDA-K[16]:使用LDA 將服務(wù)從詞項(xiàng)空間轉(zhuǎn)換到主題空間,通過(guò)建模學(xué)習(xí)得到服務(wù)的隱含主題,并使用K-means 算法對(duì)服務(wù)進(jìn)行分類,該方法注重主題分布整體的相似度。
圖5 不同主題個(gè)數(shù)下服務(wù)聚類效果Fig.5 Service clustering under different number of topics
在相同的實(shí)驗(yàn)環(huán)境下使用相同的數(shù)據(jù)集,對(duì)以上方法提出相同的服務(wù)請(qǐng)求進(jìn)行查詢。圖6 和圖7 分別給出了在不同數(shù)量的服務(wù)查詢下5 種方法的Precision 和NDCG 指標(biāo)的評(píng)估結(jié)果。圖6是5種方法的物聯(lián)網(wǎng)服務(wù)查詢準(zhǔn)確率的對(duì)比,可以看出,隨著服務(wù)查詢數(shù)量的增長(zhǎng),所有方法查準(zhǔn)率都呈下降趨勢(shì),查詢數(shù)量為35 時(shí)趨于穩(wěn)定,本文方法整體上要優(yōu)于其他方法。通過(guò)計(jì)算可知,基于BTM 的服務(wù)查詢平均準(zhǔn)確率相比TF-IDF、LDA、HDP 和LDA-K 方法分別提高了5.91%、4.01%、2.92%、2.46%。
圖7 是5 種方法在不同查詢數(shù)量下的NDCG 值對(duì)比,NDCG 值越大說(shuō)明與服務(wù)請(qǐng)求相似度最高的檢索結(jié)果排位越靠前。從圖7 中可以看出,5 種方法的NDCG 值隨著服務(wù)查詢數(shù)量的增加均有所下降,相比其他4 種常用方法,本文方法的查詢結(jié)果相似度更高。針對(duì)短文本的物聯(lián)網(wǎng)服務(wù),本文方法可以直接建模學(xué)習(xí),無(wú)需進(jìn)行文本擴(kuò)充,有效解決了數(shù)據(jù)稀疏性問(wèn)題,服務(wù)匹配返回最佳服務(wù)的效果得到了提升。
綜合分析圖6 和圖7 的結(jié)果可以看出:TF-IDF 側(cè)重通過(guò)計(jì)算文本中單詞的詞頻和逆文檔頻率進(jìn)行服務(wù)聚類;LDA、HDP 和LDA-K 主要針對(duì)于較長(zhǎng)文本進(jìn)行文檔級(jí)建模;而B(niǎo)TM主題模型則是對(duì)詞共現(xiàn)進(jìn)行建模來(lái)增強(qiáng)主題挖掘,利用整個(gè)語(yǔ)料庫(kù)的聚合模式來(lái)學(xué)習(xí)文本的隱含主題,有效地解決了短文檔級(jí)的數(shù)據(jù)稀疏問(wèn)題。因此,基于Precision 和NDCG 的綜合分析,對(duì)文本較短、語(yǔ)義性差的物聯(lián)網(wǎng)服務(wù)進(jìn)行聚類,BTM有效地提高了服務(wù)發(fā)現(xiàn)的效果。
圖6 5種方法的物聯(lián)網(wǎng)服務(wù)查詢準(zhǔn)確率對(duì)比Fig.6 Precision comparison of IoT service query by five methods
圖7 5種方法在不同查詢數(shù)量下的NDCG值對(duì)比Fig.7 NDCG comparison of five methods under different service queries
如何快速有效地找到最佳服務(wù)以滿足不斷增長(zhǎng)的服務(wù)需求是當(dāng)前物聯(lián)網(wǎng)應(yīng)用中需要解決的關(guān)鍵問(wèn)題之一,由于物聯(lián)網(wǎng)服務(wù)文本短、語(yǔ)義性差等特性,應(yīng)用現(xiàn)有的服務(wù)發(fā)現(xiàn)方法不能很好地匹配到最佳服務(wù)。針對(duì)這一問(wèn)題,本文提出了一種基于BTM 的物聯(lián)網(wǎng)服務(wù)發(fā)現(xiàn)方法,該方法利用BTM 挖掘物聯(lián)網(wǎng)服務(wù)的隱含主題,對(duì)服務(wù)進(jìn)行聚類并返回服務(wù)請(qǐng)求的最佳匹配結(jié)果。實(shí)驗(yàn)結(jié)果分析表明,該方法在Precision 和NDCG方面比常用的其他方法均有更好的效果。
本文的研究主要集中于物聯(lián)網(wǎng)服務(wù)屬于短文本、語(yǔ)義性差這一特性上,今后,我們將會(huì)在本文的基礎(chǔ)上進(jìn)一步考慮為物聯(lián)網(wǎng)服務(wù)添加語(yǔ)義標(biāo)記、服務(wù)的實(shí)時(shí)變化性等特性對(duì)物聯(lián)網(wǎng)服務(wù)發(fā)現(xiàn)的影響。