程遠(yuǎn)航,趙紋靜,杜英魁,李 娟
(1.沈陽大學(xué)信息工程學(xué)院,沈陽 110044;2.沈陽大學(xué)體育學(xué)院,沈陽 110044)
新時(shí)期背景下經(jīng)濟(jì)的迅速發(fā)展,我國城市現(xiàn)代化的高速發(fā)展,人民生活水平有所改善,人們對(duì)自己的生活環(huán)境、工作環(huán)境的要求也越來越高,不僅要求環(huán)境舒適,還要求提高房間的視覺舒適,通過室內(nèi)裝修美化室內(nèi)環(huán)境??墒歉鞣N新興的裝修材料和裝修飾品的產(chǎn)生并應(yīng)用,給人們生活帶來便利和享受的同時(shí),也導(dǎo)致室內(nèi)環(huán)境污染問題出現(xiàn)。有些污染物隱形地存在于人們的生活環(huán)境中,無色無味、不易發(fā)現(xiàn),如果不采取措施必然會(huì)影響到人們的身心健康和居住安全,所以提高室內(nèi)環(huán)境空氣質(zhì)量成為當(dāng)下所有居民關(guān)心的問題。室內(nèi)空氣污染被稱為第三大類污染,因此我們應(yīng)該采取一些措施科學(xué)有效地對(duì)室內(nèi)環(huán)境進(jìn)行監(jiān)測(cè),確保監(jiān)測(cè)數(shù)據(jù)準(zhǔn)確和有效,進(jìn)一步提高居民用戶的生活環(huán)境質(zhì)量,從而解決室內(nèi)污染對(duì)人體健康的危害問題。基于微信平臺(tái)的室內(nèi)環(huán)境健康內(nèi)容研究,以微信平臺(tái)綁定監(jiān)測(cè)居室環(huán)境的檢測(cè)設(shè)備,并與微信用戶openid連接,保證用戶所處的居室環(huán)境健康狀況,同時(shí)微信平臺(tái)通過環(huán)境狀況推送用戶相關(guān)的環(huán)境新聞。
當(dāng)今時(shí)代科技互聯(lián)網(wǎng)的飛速發(fā)展,人們對(duì)電子產(chǎn)品的依賴越來越高,社交媒體的存在不僅緩解了用戶的生活壓力,也豐富了用戶的生活。但是,隨著各種軟件的蓬勃發(fā)展,互聯(lián)網(wǎng)的海量信息越來越讓人們難以準(zhǔn)確找到真正需要的信息資源,也很難找到自己感興趣的話題,給用戶帶來困擾。因此,如何分析、挖掘海量的網(wǎng)絡(luò)數(shù)據(jù),給用戶推薦可能喜歡的內(nèi)容,正是科研人員正在研究的熱點(diǎn)問題,推薦系統(tǒng)的出現(xiàn)緩解了網(wǎng)絡(luò)數(shù)據(jù)的信息過載問題。推薦系統(tǒng)已經(jīng)存在于人們的日常生活中,比如淘寶、抖音、每日歌單、電影推薦,等等。但是在推薦系統(tǒng)中,普遍存在冷啟動(dòng)、數(shù)據(jù)稀疏、用戶評(píng)分片面、主觀性強(qiáng)等問題,這樣不僅降低推薦的精度,也不能滿足用戶的需求。實(shí)行具體內(nèi)容具體推送,選擇合適的推薦算法,是推薦系統(tǒng)設(shè)計(jì)的關(guān)鍵。將不同的推薦算法有機(jī)結(jié)合,使得單一推薦算法的弊端通過混合推薦算法來彌補(bǔ),采用混合推薦算法的內(nèi)容推薦系統(tǒng)可取長補(bǔ)短,取得較好的成效,不僅幫助用戶節(jié)約搜索時(shí)間,而且有效地實(shí)現(xiàn)了對(duì)微信用戶的個(gè)性化推薦,用戶體驗(yàn)和新用戶參與度也有顯著提高。
在微信平臺(tái)下面向用戶居室環(huán)境健康的研究系統(tǒng),系統(tǒng)后端使用python語言開發(fā)微信公眾號(hào),MySQL作為系統(tǒng)的數(shù)據(jù)庫緩存用戶行為信息及居室環(huán)境數(shù)據(jù),阿里云服務(wù)器搭建服務(wù)器環(huán)境。系統(tǒng)前端將發(fā)送給用戶的數(shù)據(jù)通過Django框架進(jìn)行頁面渲染,各組件相互配合,為用戶提供真實(shí)有效有趣的需求。
微信平臺(tái)是開發(fā)者通過微信公眾號(hào)為微信用戶提供信息和服務(wù)的平臺(tái),用戶在微信官網(wǎng)注冊(cè)公眾號(hào),開發(fā)者獲取相關(guān)接口權(quán)限即可進(jìn)行開發(fā)。系統(tǒng)架構(gòu)包括移動(dòng)客戶端和服務(wù)器端兩個(gè)部分,微信服務(wù)器在用戶和云服務(wù)器間充當(dāng)一個(gè)轉(zhuǎn)發(fā)服務(wù)器,用戶作為終端發(fā)起請(qǐng)求到微信服務(wù)器,微信服務(wù)器將請(qǐng)求轉(zhuǎn)發(fā)給云服務(wù)器,云服務(wù)器接收響應(yīng)回復(fù)用戶消息,平臺(tái)架構(gòu)如圖1所示。
圖1 平臺(tái)架構(gòu)
(1)移動(dòng)客戶端。用戶僅需要有一部智能手機(jī),下載微信APP,關(guān)注微信公眾號(hào),開發(fā)者只要獲取此用戶的監(jiān)測(cè)設(shè)備號(hào),微信平臺(tái)就可以獲取此用戶的環(huán)境數(shù)據(jù),并上傳到數(shù)據(jù)庫等待用戶的調(diào)用。
(2)服務(wù)器端。開發(fā)部署選擇阿里云服務(wù)器和微信服務(wù)器,實(shí)現(xiàn)“數(shù)據(jù)采集→數(shù)據(jù)處理→數(shù)據(jù)存儲(chǔ)→內(nèi)容推送”這一系統(tǒng)過程。其中,阿里云服務(wù)器主要實(shí)現(xiàn)“數(shù)據(jù)采集,數(shù)據(jù)處理,數(shù)據(jù)存儲(chǔ)”功能,微信服務(wù)器則實(shí)現(xiàn)對(duì)用戶的內(nèi)容推送功能。
為了更好地服務(wù)于用戶,微信公眾號(hào)有區(qū)分權(quán)限功能,只有當(dāng)客戶綁定室內(nèi)環(huán)境的監(jiān)測(cè)設(shè)備時(shí)需求才能得到滿足,不能及時(shí)參與綁定的用戶只能獲取平臺(tái)推送的與環(huán)境相關(guān)的新聞內(nèi)容,不能推送自己的居室環(huán)境狀況,更無法獲取居室環(huán)境數(shù)據(jù)信息。
協(xié)同過濾推薦算法,簡言之:‘物以類聚,人以群分’。該算法通過用戶的行為信息數(shù)據(jù)來挖掘用戶的潛在興趣,根據(jù)不同用戶對(duì)相同內(nèi)容的喜好程度計(jì)算用戶之間的相似程度,尋找喜好相似的鄰居用戶,并對(duì)具有相同喜好的用戶進(jìn)行相應(yīng)的內(nèi)容推薦。該算法適用于對(duì)時(shí)效性要求高、但個(gè)性化要求不高的情境中。但是單獨(dú)使用該算法存在數(shù)據(jù)稀疏問題、冷啟動(dòng)等問題。
內(nèi)容推薦算法是最早使用的推薦算法,根據(jù)用戶的歷史行為記錄,將用戶過去喜歡的內(nèi)容或物品進(jìn)行分析,獲取用戶的喜好標(biāo)簽,為用戶建立偏好興趣模型,然后為用戶推薦和興趣模型相似的內(nèi)容。內(nèi)容推薦算法產(chǎn)生的推薦只和用戶本身的興趣有關(guān),無關(guān)其他用戶,具有用戶獨(dú)立性,只要新內(nèi)容的特征與用戶興趣模型相似度高,就可以實(shí)現(xiàn)用戶推薦。但是會(huì)出現(xiàn)信息牢籠問題,當(dāng)推薦范圍無法擴(kuò)展,不能適應(yīng)新項(xiàng)目的推薦時(shí),不能隨著用戶興趣的改變而發(fā)生興趣模型的改變,無法挖掘用戶的潛在興趣,甚至當(dāng)新用戶沒有喜好歷史,沒有行為信息時(shí),不能建立興趣模型,也就無法為新用戶直接產(chǎn)生推薦。
協(xié)同過濾推薦算法隨著時(shí)代的發(fā)展已經(jīng)相對(duì)成熟,隨著人們需求的不斷增多,對(duì)推薦系統(tǒng)的要求也在不斷提高。以上兩種推薦算法各有優(yōu)缺點(diǎn),因此,根據(jù)不同推薦算法的特點(diǎn)采用混合推薦算法,克服單個(gè)算法存在的問題,取長補(bǔ)短互為補(bǔ)充,不僅推薦精度得到提高,推薦的內(nèi)容也更豐富。圖2為推薦算法的架構(gòu)圖。
圖2 推薦算法架構(gòu)圖
用戶的協(xié)同過濾推薦算法,是基于不同用戶的行為信息評(píng)分來面向同一用戶標(biāo)簽組產(chǎn)生新聞推薦,通過一段時(shí)間的推薦,不斷進(jìn)行數(shù)據(jù)更新,提高準(zhǔn)確性,挖掘用戶的潛在興趣。獲取用戶的行為信息,對(duì)行為日志進(jìn)行數(shù)據(jù)處理,從而得到用戶對(duì)文章的評(píng)分?jǐn)?shù)據(jù)集。將微信用戶之間對(duì)內(nèi)容的評(píng)分作為一個(gè)向量來計(jì)算用戶之間的相似度,由高到低排序獲取前K個(gè)與當(dāng)前用戶高度相似的鄰居用戶,并將鄰居用戶評(píng)分最高的項(xiàng)目集推薦給當(dāng)前用戶。將以上分析分為三步:
(1)數(shù)據(jù)集的來源。數(shù)據(jù)集的獲取來自MySQL數(shù)據(jù)庫中用戶對(duì)偏好內(nèi)容的點(diǎn)贊、評(píng)論、分享行為,以不同評(píng)分的形式表達(dá)用戶對(duì)該內(nèi)容的興趣偏好。
(2)相似度計(jì)算。采用歐式距離算法計(jì)算用戶間的相似度,公式(1)中,,分別代表不同用戶,(X-Y)對(duì)其求兩者間距離,距離越大則表示兩用戶間越相似,否則意味著這兩個(gè)用戶根本不相似,然后對(duì)用戶進(jìn)行聚類,篩選興趣相似的用戶集合。
(3)產(chǎn)生推薦列表。排除用戶本身,將相似度進(jìn)行降序排列得到的推薦列表,將相似用戶喜歡的、但當(dāng)前用戶未曾看過的內(nèi)容進(jìn)行推薦。
當(dāng)用戶是新用戶時(shí),對(duì)推薦的內(nèi)容產(chǎn)生的行為信息很少,甚至沒有,那么系統(tǒng)無法進(jìn)行個(gè)性化推薦,系統(tǒng)只有對(duì)一定數(shù)量的內(nèi)容產(chǎn)生行為后才能夠進(jìn)行推薦。那么為了解決冷啟動(dòng)問題,對(duì)首次關(guān)注微信公眾號(hào)的新用戶先進(jìn)行熱點(diǎn)新聞推薦,通過監(jiān)測(cè)設(shè)備感知室內(nèi)環(huán)境狀況,給用戶合理地推薦熱點(diǎn)新聞,比如:當(dāng)室內(nèi)環(huán)境的甲醛參數(shù)過高,推薦用戶“如何除甲醛”,“如何凈化室內(nèi)環(huán)境空氣”等相關(guān)新聞文章。
基于內(nèi)容的推薦算法,利用用戶本身的興趣喜好模型進(jìn)行相應(yīng)的推薦。獲取用戶的歷史信息,經(jīng)過數(shù)據(jù)處理取用戶評(píng)分較高的內(nèi)容進(jìn)行文本分析,為用戶建立用戶興趣模型。文本分類流程如圖3所示。
圖3 文本分類流程圖
內(nèi)容分析分為三步:
(1)中文分詞。選擇用戶在數(shù)據(jù)集中評(píng)分偏高的內(nèi)容,通過爬蟲得到推薦給用戶的新聞內(nèi)容,通過結(jié)巴(jieba)分詞對(duì)兩組文本提取特征詞,去掉大量無意義的高頻詞,獲得文本關(guān)鍵詞列表。
(2)詞向量轉(zhuǎn)化。采用TF-IDF算法對(duì)關(guān)鍵詞進(jìn)行權(quán)值計(jì)算,然后根據(jù)權(quán)重按降序排列取前K個(gè)關(guān)鍵詞得到興趣列表。公式(2)、(3)分別為關(guān)鍵詞的詞頻計(jì)算和逆文檔頻率計(jì)算。計(jì)算TFIDF值為公式(4),其中,代表內(nèi)容文本的文本總數(shù),()代表文本中包含的文本總數(shù)。
(3)興趣值計(jì)算。根據(jù)兩對(duì)興趣列表中的關(guān)鍵詞向量,通過余弦相似度計(jì)算兩對(duì)文本的相似度,得到新文本內(nèi)容與用戶的興趣模型之間的相似度,將其降序排列取出前個(gè)相似度最高的新聞內(nèi)容。相似度計(jì)算為公式(5),其中,是用戶的興趣標(biāo)簽向量,是新文本的標(biāo)簽向量。
在內(nèi)容推薦的算法中,隨著時(shí)間的變化、用戶瀏覽記錄數(shù)據(jù)的增加,此推薦算法也會(huì)越來越準(zhǔn)確。但是時(shí)間因素可能會(huì)導(dǎo)致用戶的興趣發(fā)生衰減,因此在算法中引入衰減系數(shù)γ,間隔一段時(shí)間后,對(duì)所有用戶的全部關(guān)鍵詞興趣程度進(jìn)行相應(yīng)的衰減,從而模擬用戶某個(gè)興趣隨時(shí)間變化的現(xiàn)象,使推薦更加準(zhǔn)確。
微信公眾號(hào)對(duì)于首次關(guān)注的新用戶首先會(huì)進(jìn)行設(shè)備掃碼連接,將居室的監(jiān)測(cè)設(shè)備id上傳到微信平臺(tái)進(jìn)行綁定,環(huán)境數(shù)據(jù)通過HTTP協(xié)議傳送到云端并儲(chǔ)存在MySQL數(shù)據(jù)庫,微信用戶在移動(dòng)端發(fā)送消息指令,云服務(wù)器響應(yīng)指令后將結(jié)果返回給用戶。用戶想查看當(dāng)前數(shù)據(jù)、今日數(shù)據(jù)、均值趨勢(shì)圖均可以通過菜單欄按鈕即時(shí)獲取,如圖4所示。
圖4 在線實(shí)時(shí)環(huán)境數(shù)據(jù)
為滿足不同用戶的不同偏好,內(nèi)容推送部分進(jìn)行定時(shí)合理推送。定時(shí)推送的時(shí)間段選擇每天早9點(diǎn)和下午3點(diǎn),使用戶在工作閑暇之余緩解壓力,將用戶感興趣的新聞內(nèi)容進(jìn)行自主推送。定時(shí)為用戶推薦感興趣的內(nèi)容,不需要用戶在知識(shí)的海洋里費(fèi)力尋找,節(jié)約了用戶在手機(jī)上閱讀無效內(nèi)容浪費(fèi)的時(shí)間,幫助用戶自動(dòng)整合感興趣數(shù)據(jù),使推薦系統(tǒng)更加貼合用戶的偏好需求,提高了推薦系統(tǒng)的性能,也提高了用戶的滿意度,減輕信息過載問題。
通過協(xié)同過濾和基于內(nèi)容的混合推薦算法,采用Django框架渲染頁面,將內(nèi)容以圖文結(jié)合的形式推送給用戶,如圖5所示。吸引用戶的閱讀興趣,增加趣味性。使用戶有足夠的耐心去進(jìn)行閱讀,延長用戶頁面停留時(shí)間,降低頁面跳出率,使用戶更感興趣。
圖5 內(nèi)容推送結(jié)果
互聯(lián)網(wǎng)的迅速發(fā)展以及普及,使人們的生活已經(jīng)離不開網(wǎng)絡(luò);互聯(lián)網(wǎng)本著為大眾服務(wù)的原則,也越來越被大眾所喜愛。微信、微博等自媒體的廣泛普及,自媒體內(nèi)容的大量產(chǎn)生逐漸成為一種自然而然的趨勢(shì)。基于微信公眾號(hào)的室內(nèi)環(huán)境健康研究系統(tǒng),可以幫助用戶實(shí)時(shí)在線查看居室環(huán)境數(shù)據(jù),實(shí)時(shí)了解當(dāng)前環(huán)境狀況,如果有問題及時(shí)解決。還向用戶主動(dòng)推送對(duì)方感興趣的環(huán)境新聞,解除用戶在海量信息中毫無目標(biāo)地尋找內(nèi)容的苦惱,解決信息過載問題。本平臺(tái)采用Python+MySQL實(shí)現(xiàn)用戶數(shù)據(jù)查詢操作,Python+Django+MySQL實(shí)現(xiàn)用戶內(nèi)容推送部分,服務(wù)于用戶,提高用戶的生活環(huán)境質(zhì)量。本系統(tǒng)主要針對(duì)居室環(huán)境進(jìn)行監(jiān)測(cè)研究,但在實(shí)際中可以應(yīng)用在醫(yī)院、社區(qū)等其他環(huán)境進(jìn)行信息監(jiān)測(cè),因此具有較好的實(shí)際應(yīng)用推廣價(jià)值。