物聯(lián)網(wǎng)中的推薦系統(tǒng)
1、背景介紹
物聯(lián)網(wǎng)是一種聯(lián)網(wǎng)的基礎(chǔ)架構(gòu),是物聯(lián)網(wǎng)、互聯(lián)網(wǎng)和語義學(xué)領(lǐng)域之間融合的結(jié)果,為隨時(shí)隨地連接不同設(shè)備提供了基礎(chǔ)。在物聯(lián)網(wǎng)場景中,開發(fā)了大量的服務(wù)和應(yīng)用程序,這使識(shí)別相關(guān)的服務(wù)和應(yīng)用程序成為用戶的一項(xiàng)復(fù)雜任務(wù)。在這種情況下,推薦系統(tǒng)便成了一項(xiàng)關(guān)鍵的技術(shù),這些技術(shù)使大部分服務(wù)和應(yīng)用程序的識(shí)別變得可行。比如在物聯(lián)網(wǎng)等場景下可以在網(wǎng)關(guān)上安裝一些應(yīng)用程序,附加設(shè)備由網(wǎng)關(guān)部署和管理,同時(shí)在公共顯示器上顯示的信息文本,會(huì)被用于在網(wǎng)關(guān)上完成特定任務(wù)相關(guān)的數(shù)據(jù)傳輸協(xié)議,并應(yīng)包括IoT相關(guān)場景中相關(guān)的硬件和軟件組件。
推薦技術(shù)在IoT上下文中的進(jìn)一步應(yīng)用包括工作流程的推薦(例如,應(yīng)將哪些軟件功能包含在IoT應(yīng)用程序的工作流程定義中),食品的推薦(例如,根據(jù)食品的狀況,可以調(diào)整提供條件),在個(gè)性化店內(nèi)購物場景中進(jìn)行推薦(例如,根據(jù)實(shí)體店中顧客的位置,應(yīng)推薦哪些商品)以及健康監(jiān)控(例如,根據(jù)一個(gè)人當(dāng)前的飲食行為和身體狀況,推薦食物和體育鍛煉)。在許多情況下,靈活的物聯(lián)網(wǎng)網(wǎng)關(guān)基礎(chǔ)設(shè)施都扮演著核心角色。
IoT網(wǎng)關(guān)是基于硬件和軟件的解決方案,其主要作用是實(shí)現(xiàn)設(shè)備到設(shè)備中心/或設(shè)備到云的通信。它是一個(gè)平臺(tái),用于支持不同數(shù)據(jù)源(具有各種通信協(xié)議的傳感器)與目的地(本地或遠(yuǎn)程數(shù)據(jù)管理實(shí)體以及各種執(zhí)行器)之間的連接。物聯(lián)網(wǎng)網(wǎng)關(guān)位于設(shè)備的邊緣和附近,也可能在服務(wù)執(zhí)行中發(fā)揮關(guān)鍵作用。典型的物聯(lián)網(wǎng)網(wǎng)關(guān)平臺(tái)由設(shè)備管理器,通信/數(shù)據(jù)協(xié)議管理器,應(yīng)用程序管理器和數(shù)據(jù)管理器組成(請(qǐng)參見下圖)。先進(jìn)的IoT網(wǎng)關(guān)包含其他功能,其中可以包括配置器和推薦器引擎,以幫助用戶配置網(wǎng)關(guān)或基于給定的網(wǎng)關(guān)設(shè)置和用戶交互協(xié)議推薦有用的應(yīng)用程序。
如圖1所示,可以使用5G,BLE,LORA和ZigBee等各種連接協(xié)議將IoT傳感器連接到IoT網(wǎng)關(guān)。網(wǎng)關(guān)用戶可以通過WAN / LAN連接其網(wǎng)關(guān),以管理或監(jiān)視其數(shù)據(jù)和服務(wù)。他們還可以通過將云應(yīng)用程序與其IoT網(wǎng)關(guān)鏈接來管理或監(jiān)視收集的數(shù)據(jù)。

2、基本技術(shù)和應(yīng)用場景
推薦技術(shù)可用于多種目的,以支持不同的物聯(lián)網(wǎng)場景。在本節(jié)中,我們將會(huì)介紹協(xié)同過濾,基于內(nèi)容的過濾,基于知識(shí)的推薦和組合推薦這四項(xiàng)基本推薦技術(shù),如何根據(jù)不同場景去實(shí)現(xiàn)推薦的功能。
2.1 協(xié)作過濾
基于“口口相傳”的想法,即朋友(最近鄰居– NN)對(duì)物品的意見或看法被用作計(jì)算推薦算法的主要信息來源。然后,使用k個(gè)最近鄰居的偏好(等級(jí))來推斷當(dāng)前用戶的偏好。例如,將安裝在與當(dāng)前用戶具有類似應(yīng)用程序庫的用戶的網(wǎng)關(guān)上的應(yīng)用程序,安裝在當(dāng)前用戶的網(wǎng)關(guān)上。物聯(lián)網(wǎng)環(huán)境中協(xié)同過濾的其他應(yīng)用示例是物聯(lián)網(wǎng)環(huán)境提升中的設(shè)備推薦和組件部分推薦。支持協(xié)同過濾的不同場景的推薦庫的示例是Apache Mahout。

表1:根據(jù)其他網(wǎng)關(guān)的安裝信息,基于協(xié)同篩選的設(shè)備(d1..d4)和應(yīng)用程序(app1..app4)推薦。與本地網(wǎng)關(guān)相比,網(wǎng)關(guān)1的配置文件是最相似的配置文件。由于app3未安裝在本地網(wǎng)關(guān)上,因此可以將其解釋為推薦候選。推薦的應(yīng)用程序用√表示。
2.2 基于內(nèi)容的過濾
基于穩(wěn)定的首選項(xiàng)的想法,即過去的首選項(xiàng)在將來不會(huì)發(fā)生重大變化。使用基于內(nèi)容的過濾時(shí),有關(guān)物品的基于關(guān)鍵字的信息與從當(dāng)前用戶過去已經(jīng)消費(fèi)過的項(xiàng)目中提取的關(guān)鍵字匹配。例如,如果用戶安裝了特定的應(yīng)用程序,則可以在可用時(shí)推薦類似的應(yīng)用程序或?qū)ΜF(xiàn)有應(yīng)用程序的更新。在IoT上下文中應(yīng)用基于內(nèi)容篩選的其他示例是設(shè)備和工作流程的推薦。支持基于內(nèi)容過濾的不同場景的推薦庫示例是Apache Lucene。

表2:使用本地網(wǎng)關(guān)上已安裝的應(yīng)用程序的關(guān)鍵字(key)對(duì)應(yīng)用程序進(jìn)行基于內(nèi)容過濾的推薦。與本地網(wǎng)關(guān)的配置文件相比,app1的關(guān)鍵字是最相似的關(guān)鍵字。由于app1未安裝在本地網(wǎng)關(guān)上(假設(shè)),因此可以將其選擇為推薦候選。推薦的應(yīng)用程序用√表示。
2.3 基于知識(shí)的推薦
基于使用以顯式方式(即在規(guī)則約束方面)定義的推薦知識(shí)的思想。使用基于知識(shí)的推薦時(shí),當(dāng)前用戶明確定義的首選項(xiàng)將轉(zhuǎn)發(fā)到知識(shí)庫,該知識(shí)庫用于確定推薦(搜索問題的解決方案)。例如,如果IoT網(wǎng)關(guān)解決方案的用戶更喜歡節(jié)電的網(wǎng)關(guān)配置,則與其他協(xié)議相比,將首選使用特定的通信協(xié)議。在物聯(lián)網(wǎng)環(huán)境中,應(yīng)用基于知識(shí)的推薦技術(shù)的其他示例包括整個(gè)網(wǎng)關(guān)配置的推薦,以及野生動(dòng)物監(jiān)測中數(shù)據(jù)收集策略的推薦。
2.4 基于組的推薦系統(tǒng)
基于組的推薦系統(tǒng),是基于對(duì)用戶小組的偏好,使用不同算法的匯總結(jié)果去推薦。在基于算法集成的推薦中,基本算法(例如協(xié)同過濾,基于內(nèi)容的過濾和基于知識(shí)的推薦)用于確定針對(duì)單個(gè)用戶的推薦。然后將這些建議匯總為該組的最終推薦(基于匯總預(yù)測的方法)。相關(guān)聚合函數(shù)的示例是平均值(推薦用戶評(píng)分平均值最高的商品)和風(fēng)險(xiǎn)最少(推薦所有最低評(píng)分指標(biāo)最高的商品)。另外,小組資料可以從小組成員的個(gè)人偏好中得出(*基于聚合模型的方法,根據(jù)小組資料,可以使用上述基本方法確定推薦。團(tuán)體推薦系統(tǒng)的實(shí)現(xiàn)通?;趩斡脩敉扑]系統(tǒng)的庫,也就是上述提到的Apache Mahout、Apache Lucene等。

3、何時(shí)應(yīng)用哪種推薦技術(shù)?
本文討論的推薦方法使用了不同的知識(shí)來源,并且還具有不同的優(yōu)點(diǎn),這些優(yōu)點(diǎn)使它們(或更少)適用于特定的推薦方案。在下文中,我們將簡單討論推薦算法選擇的主要標(biāo)準(zhǔn),并針對(duì)這些標(biāo)準(zhǔn)分析所討論的每種算法。
3.1 原理簡單
基于內(nèi)容的篩選和基于協(xié)同的篩選的原理都比較簡單,實(shí)現(xiàn)方式也比較快,只需獲得有關(guān)評(píng)分方面的用戶偏好的知識(shí)(在基于內(nèi)容的過濾中,自動(dòng)提取的關(guān)鍵字)就可以得出推薦。由于基于組的推薦系統(tǒng)大部分是使用這些基本算法,所以基于組的推薦系統(tǒng)的實(shí)現(xiàn)也比較容易。相比之下,基于知識(shí)的推薦方法需要更多的設(shè)置投資,由于領(lǐng)域?qū)<液椭R(shí)工程師之間的通信開銷,知識(shí)庫的構(gòu)建通常是一個(gè)容易出錯(cuò)且繁瑣的過程。
3.2 會(huì)話推薦方法
在推薦復(fù)雜的產(chǎn)品和服務(wù)時(shí),主要支持在用戶和系統(tǒng)之間進(jìn)行對(duì)話的會(huì)話方法。在這種情況下,使用基于知識(shí)的推薦器,即在基于知識(shí)的推薦的上下文中支持對(duì)話方法。協(xié)同過濾和基于內(nèi)容的過濾不支持推薦對(duì)話框。在小組推薦系統(tǒng)的背景下,由于部分小組推薦系統(tǒng)是基于知識(shí)的推薦,因此可以支持會(huì)話過程。
3.3 適應(yīng)性
協(xié)同過濾和基于內(nèi)容的推薦有較好的適應(yīng)性,因?yàn)槊恳粋€(gè)新的等級(jí)更高程度的適應(yīng)性可以改變推薦的項(xiàng)目清單。如果將協(xié)同過濾或基于內(nèi)容的推薦用作基礎(chǔ)推薦,這也適用于組推薦方案方法?;谥R(shí)的推薦方法顯示出較低的適應(yīng)性,因?yàn)橹R(shí)庫是比較穩(wěn)定的,因?yàn)閱蝹€(gè)用戶的偏好習(xí)慣不會(huì)一時(shí)間去改變。
3.4 驚喜度
如果用戶喜歡某項(xiàng)推薦,并同時(shí)對(duì)此推薦感到完全出乎意料,就會(huì)產(chǎn)生驚喜度,一般這種效果主要可以通過協(xié)同推薦方法來實(shí)現(xiàn)。基于內(nèi)容的推薦一般會(huì)假定其偏好保持穩(wěn)定,并在已經(jīng)購買的商品列表中提供建議。因此,這種方法提供了非常低的偶然性。同時(shí),基于知識(shí)的推薦算法中的偶然性程度取決于編碼的偶然性程度?;谛〗M推薦中的偶然性程度取決于所選擇的基礎(chǔ)基本推薦方法。
3.5 冷啟動(dòng)問題
協(xié)同過濾和基于內(nèi)容的過濾都存在冷啟動(dòng)問題:如果在協(xié)同過濾中沒有特定用戶的用戶評(píng)級(jí),或者到目前為止,當(dāng)使用基于內(nèi)容的推薦系統(tǒng)時(shí)用戶沒有購買任何商品時(shí),也就是無法獲取相似的推薦。此外,如果某個(gè)商品沒有獲得評(píng)級(jí),則協(xié)同過濾系統(tǒng)很難將其考慮在內(nèi)。由于基于內(nèi)容的過濾基于商品的關(guān)鍵字,因此即使沒有商品的評(píng)級(jí)也可以進(jìn)行推薦?;谥R(shí)的推薦不存在冷啟動(dòng)問題,因?yàn)橥扑]知識(shí)被編碼在一個(gè)知識(shí)庫中,且假定該知識(shí)庫在可以開始推薦會(huì)話之前就已經(jīng)存在。
3.6 透明度
透明度可以視為推薦結(jié)果可解釋的程度。協(xié)同過濾和基于內(nèi)容的過濾中的結(jié)果具有較低的解釋性,因?yàn)槿绻忉尩脑?,只能基于?nèi)容的推薦中的相似鄰居和相似關(guān)鍵字。在基于知識(shí)的推薦中,可以更細(xì)化解釋。相關(guān)說明可以考慮推薦的原因(由用戶偏好列表表示),但也可以考慮為什么找不到解決方案以及哪些偏好矛盾的原因。在小組推薦系統(tǒng)中,可解釋性取決于所選的基本推薦方法。
3.7 高參與度商品
由于次優(yōu)決策的負(fù)面影響很大,因此在大多數(shù)情況下,此類商品非常復(fù)雜,并且需要做出相關(guān)決策。其示例是選擇特定的服務(wù)器基礎(chǔ)結(jié)構(gòu)或智能家居解決方案。相反,低參與度商品的例子是低價(jià)應(yīng)用程序或傳感器。在大多數(shù)情況下,基于知識(shí)的方法用于推薦高參與度的商品,而基于內(nèi)容的協(xié)作過濾則用于推薦低參與度的商品。按照先前的論點(diǎn),如果選擇的基本推薦方法是基于知識(shí)的,則可以將小組推薦系統(tǒng)用于高度參與的商品。
4、結(jié)論與下一步工作
在本文中,我們提供了對(duì)現(xiàn)有推薦方法的簡短概述,并討論了它們在物聯(lián)網(wǎng)場景中的應(yīng)用的不同方面。在這種情況下,我們還針對(duì)可用于選擇推薦算法的一組標(biāo)準(zhǔn)討論了不同方法的優(yōu)缺點(diǎn)。同時(shí),也有一些與推薦技術(shù)在物聯(lián)網(wǎng)場景中的應(yīng)用有關(guān)的開放研究問題需要我們關(guān)注,尤其是在推薦復(fù)雜的IoT配置的情況下,必須開發(fā)搜索機(jī)制,以便在面對(duì)龐大而復(fù)雜的配置知識(shí)庫時(shí)也可以進(jìn)行高效且個(gè)性化的解決方案搜索。此外,必須以有效的方式測試和更新有關(guān)產(chǎn)品可變性的知識(shí)。這項(xiàng)要求與軟件工程的當(dāng)前發(fā)展相吻合,后者在開發(fā),測試,部署和生產(chǎn)使用之間相繼實(shí)現(xiàn)了強(qiáng)大的耦合。