程遠(yuǎn)航,趙紋靜,杜英魁,李 娟
(1.沈陽大學(xué) 信息工程學(xué)院,遼寧 沈陽 110044;2.沈陽大學(xué) 體育學(xué)院,遼寧 沈陽 110044)
現(xiàn)如今,我國疫情局勢已逐漸平穩(wěn),但全球疫情尚未結(jié)束,仍不能忽視境外輸入性風(fēng)險,孕產(chǎn)婦和嬰幼兒依然是疫情形勢下需要保護(hù)的重點人群。對于孕產(chǎn)婦和嬰幼兒,為降低感染風(fēng)險,沒有特殊情況應(yīng)避免出門;但是作為新手父母,從備孕到孩子出生以及成長階段,因為缺乏經(jīng)驗即使出現(xiàn)小問題也會用“放大鏡”去看待,仍習(xí)慣到醫(yī)院咨詢醫(yī)生,醫(yī)生也會遇到很多重復(fù)性的問題,工作效率較低。另外,在疫情期間,去醫(yī)院咨詢醫(yī)生也會增加孕產(chǎn)婦和嬰幼兒的感染風(fēng)險。因此有必要為新手父母提供一個關(guān)于孕幼健康知識的移動學(xué)習(xí)平臺,該移動學(xué)習(xí)平臺不僅可以隨時解決用戶問題,節(jié)約用戶時間,而且還能向用戶宣傳孕幼健康知識,提高自我保護(hù)意識。
隨著科技互聯(lián)網(wǎng)的不斷發(fā)展,社交軟件大范圍興起,微信在2012年被應(yīng)用至今,越來越受到人們的歡迎,已經(jīng)成為人們生活中重要的社交媒體。本文從孕幼健康角度出發(fā),充分利用微信平臺的交互性、信息傳遞性等特點進(jìn)行研究,建立了一個關(guān)于孕幼健康問題的移動學(xué)習(xí)平臺。系統(tǒng)合理利用微信平臺資源,為用戶提供答疑模塊,快速高效解決用戶問題。由于用戶在海量數(shù)據(jù)中尋找自己想要的內(nèi)容總會遇到一些困難,使得用戶不能在有限的碎片化時間有效地尋找自己喜歡的內(nèi)容。為了解決此問題,本文采用個性化推薦方法,使用戶通過一種全新的模式來獲得信息。根據(jù)用戶的隱式和顯式行為信息,經(jīng)過數(shù)據(jù)挖掘分析獲取用戶的興趣偏好,匹配與用戶興趣相似的內(nèi)容;將協(xié)同過濾推薦算法與基于內(nèi)容的推薦算法進(jìn)行組合,使用戶由被動的信息瀏覽者轉(zhuǎn)變?yōu)橹鲃拥膮⑴c者,不僅幫助用戶推薦一直偏好的內(nèi)容,而且挖掘用戶潛在的興趣,提高推薦的準(zhǔn)確率。
本文設(shè)計基于微信平臺開發(fā)的關(guān)于孕幼健康問題的移動學(xué)習(xí)系統(tǒng),面向孕幼家庭為用戶提供學(xué)習(xí)幫助和問題解答。本設(shè)計的重點是實現(xiàn)自動答疑和向用戶推薦個性化內(nèi)容。微信的主要功能是為用戶提供消息傳輸和共享的服務(wù),在系統(tǒng)中利用Python開發(fā)微信公眾號,開發(fā)模式選用B/S架構(gòu)模式,將Django框架作為系統(tǒng)的開發(fā)框架,用MySQL數(shù)據(jù)庫存儲用戶行為數(shù)據(jù)和回答用戶的問題庫。
系統(tǒng)的自動答疑模塊能夠滿足用戶自助咨詢的要求,開發(fā)者會根據(jù)用戶的問題不斷更新問題庫,逐漸滿足用戶要求。自動答疑功能體現(xiàn)用戶主動與微信平臺互動,實現(xiàn)用戶與微信平臺的即時交互,使用戶隨時隨地都能夠進(jìn)行學(xué)習(xí),提高學(xué)習(xí)的便捷性;微信平臺的個性化推薦體現(xiàn)微信平臺主動與用戶互動,通過采用混合推薦算法,提高內(nèi)容推薦的精確度。
選取阿里云服務(wù)器作為系統(tǒng)的運(yùn)行環(huán)境,負(fù)責(zé)系統(tǒng)正常運(yùn)行。服務(wù)器為系統(tǒng)提供遠(yuǎn)程訪問,實現(xiàn)自動答疑模塊的高效運(yùn)轉(zhuǎn);服務(wù)器提供不間斷的互聯(lián)網(wǎng),滿足個性化推薦和定時在線推送功能。服務(wù)器搭建主要是申請服務(wù)器賬號、服務(wù)器配置、命令行手動搭建,微信平臺開發(fā)支持80端口,使用Nginx部署協(xié)調(diào),以提高用戶訪問速度和服務(wù)器的性能。
微信公眾號開發(fā)以Django框架為開發(fā)架構(gòu),它是在Web開發(fā)中最流行的框架,有路由映射、數(shù)據(jù)處理、模板編程、服務(wù)發(fā)布的功能。Django框架采用MVT(Model,Template, View)設(shè)計模式,微信公眾號相當(dāng)于瀏覽器。MVT設(shè)計模式如圖1所示。將應(yīng)用程序分成三個部分,擁有自助式的后臺管理,功能強(qiáng)大。在Model數(shù)據(jù)存儲層,處理與數(shù)據(jù)相關(guān)的操作,在系統(tǒng)中主要是與MySQL進(jìn)行數(shù)據(jù)交互。通過ORM對象關(guān)系映射,將MySQL數(shù)據(jù)庫的數(shù)據(jù)映射到對象,不需要寫MySQL語句,只通過Python語言即可得到數(shù)據(jù)表。在Template模板層,為用戶提供語法框架,用戶可以自行設(shè)計頁面結(jié)構(gòu)渲染頁面,本文以圖文結(jié)合的形式呈現(xiàn)給用戶。View業(yè)務(wù)邏輯層是連接Model和Template層的橋梁,編輯Python程序處理具體的業(yè)務(wù)邏輯,把要推送給用戶的推薦列表以字典的形式傳送到Template進(jìn)行渲染,將HttpResponse內(nèi)容定時通過微信公眾號推薦給用戶。
圖1 MVT設(shè)計模式示意圖
本系統(tǒng)主要以微信公眾平臺為載體為用戶提供自助咨詢、內(nèi)容推送服務(wù)。首先需要進(jìn)行一系列的準(zhǔn)備工作,為用戶提供便捷;然后在官方網(wǎng)站創(chuàng)建并注冊公眾賬號,進(jìn)行信息配置,為給用戶帶來驚喜和新穎,采用開發(fā)者模式,可以獲取高級接口權(quán)限;最后搭建平臺框架為后續(xù)開發(fā)做準(zhǔn)備。公眾號開發(fā)者模式在身份認(rèn)證過程中可以先通過測試號完成開發(fā),使用接口調(diào)試工具在線調(diào)試某些接口。本移動學(xué)習(xí)系統(tǒng)使用測試號完成。
用戶只須登錄微信、關(guān)注公眾號后輸入內(nèi)容,微信服務(wù)器將用戶請求傳達(dá)到云服務(wù)器,程序部署在云服務(wù)器中實現(xiàn)24 h微信自動答疑;云服務(wù)器解析用戶消息,與數(shù)據(jù)庫中存儲的問題庫進(jìn)行匹配,將最接近的答案通過微信服務(wù)器轉(zhuǎn)發(fā)給用戶,微信服務(wù)器在用戶和云服務(wù)器間相當(dāng)于一個轉(zhuǎn)發(fā)服務(wù)器。自動答疑結(jié)構(gòu)如圖2所示。自動答疑功能實現(xiàn)用戶自助咨詢,返回用戶最佳答案。當(dāng)系統(tǒng)在遇到無法識別的問題時,會先建議用戶重新輸入,同時開發(fā)者會對此類用戶問題進(jìn)行更新,不斷完善問題庫,滿足用戶需求。
圖2 自動答疑結(jié)構(gòu)
個性化推薦是針對不同的用戶給予不同的內(nèi)容推薦,實現(xiàn)精準(zhǔn)投放。為了獲取用戶信息,微信公眾號識別關(guān)注公眾號的用戶是通過唯一的OpenID。OpenID以微信用戶的一個聯(lián)系人形式存在,為用戶個性化推薦提供了保障;同時,此OpenID也是獲取用戶信息的唯一渠道。開發(fā)者模式具有使用高級接口的權(quán)限,可以通過調(diào)用關(guān)注者的列表接口獲取關(guān)注者的用戶信息,為個性化推薦做好數(shù)據(jù)準(zhǔn)備。
基于微信平臺的孕幼健康移動學(xué)習(xí)系統(tǒng)中的個性化推薦功能是由熱點推薦、協(xié)同過濾推薦算法和基于內(nèi)容的推薦算法組合而成的,面對新用戶沒有任何歷史記錄,將排名靠前的熱點新聞內(nèi)容推薦給用戶,獲取到用戶的一定信息后將后兩者推薦算法進(jìn)行特征組合。對兩種單一算法產(chǎn)生的推薦結(jié)果集分別進(jìn)行降序排列,再對得到的結(jié)果進(jìn)行權(quán)重分配,篩選最相似的內(nèi)容并組成最新推薦列表推薦給用戶。個性化推薦結(jié)構(gòu)如圖3所示。
圖3 個性化推薦結(jié)構(gòu)
個性化推薦技術(shù)首先將基于用戶的協(xié)同過濾推薦作為系統(tǒng)的主推薦算法,實現(xiàn)用戶的個性化內(nèi)容推薦服務(wù)。該算法的優(yōu)勢是可以挖掘用戶的潛在興趣,增強(qiáng)用戶粘性。算法步驟可以分為兩大步:(1)尋找與用戶興趣相似的鄰居用戶集合;(2)將鄰居用戶看過的而目標(biāo)用戶未曾看過的內(nèi)容進(jìn)行推薦。該算法的數(shù)據(jù)集是對用戶的行為信息進(jìn)行數(shù)據(jù)處理后得到的用戶對項目的評分?jǐn)?shù)據(jù)集。鄰居集合是通過數(shù)據(jù)集計算用戶間的相似度得到的,余弦相似度公式如式(1)所示。()、()分別是用戶、用戶感興趣的內(nèi)容集合,利用余弦相似度公式計算出兩用戶間的興趣相似度,將結(jié)果降序排列得到鄰居集合,在鄰居集合中篩選鄰居用戶看過而當(dāng)前用戶未曾看過的內(nèi)容,即為推薦內(nèi)容。
在計算相似度過程中可能會遇到用戶1與用戶2、3、4、5的相似度相同,不能準(zhǔn)確找到最相似的鄰居用戶的情況,此時改進(jìn)相似度的計算方法,加入懲罰因子來消除用公式(1)計算用戶興趣相似度的不足,從而提高計算結(jié)果的準(zhǔn)確率,為目標(biāo)用戶找到最相似的用戶集合。公式(2)為改進(jìn)的余弦相似度公式。
個性化推薦技術(shù)中另一種推薦算法是基于內(nèi)容的推薦算法,基本原理是根據(jù)用戶已經(jīng)看過的內(nèi)容進(jìn)行分析,得到用戶的興趣偏好模型,從而將與用戶興趣模型相似的內(nèi)容推薦給用戶。該算法的優(yōu)勢是不需要其他用戶的數(shù)據(jù),沒有冷啟動問題,只要能夠提取到用戶看過的歷史內(nèi)容就可以進(jìn)行推薦。算法步驟主要分為以下三步:
(1)中文分詞算法構(gòu)建:采用jieba分詞提取內(nèi)容特征。
(2)詞向量轉(zhuǎn)化:將文本轉(zhuǎn)換成維空間向量,這樣轉(zhuǎn)換的詞向量能夠很好地配合推薦系統(tǒng)工作。
(3)計算興趣值:根據(jù)計算出的關(guān)鍵詞向量,運(yùn)用TF-IDF算法,計算用戶看過的內(nèi)容與新內(nèi)容之間的相似度。
本文所有的實驗和算法都是通過Pycharm實現(xiàn),實驗運(yùn)行通過阿里云服務(wù)器完成。為了更好地對本文所提出的算法進(jìn)行實驗對比和分析,本文用到的實驗數(shù)據(jù)是ml-1m數(shù)據(jù)集,描述了電影推薦服務(wù)的五星級和自由文本標(biāo)記活動,該數(shù)據(jù)集是推薦算法中常用的數(shù)據(jù)集,包含6 040個用戶對3 952部電影的1 000 209條評分?jǐn)?shù)據(jù)。
為了評估改進(jìn)的推薦算法的準(zhǔn)確度,本部分主要選擇準(zhǔn)確率、召回率、F1指標(biāo)作為評價標(biāo)準(zhǔn),將本文混合推薦算法與傳統(tǒng)協(xié)同過濾推薦算法進(jìn)行對比分析。推薦算法為用戶推薦可能感興趣的前個項目,()表示為用戶推薦的項目集合,()表示用戶在測試集上的行為列表集合,公式如下:
(3)綜合評價指標(biāo)
F1值是綜合以上兩指標(biāo)的評估指標(biāo),用來反映整體的指標(biāo),又稱為是Precision和Recall加權(quán)調(diào)和平均值。F1值越大,推薦算法的精確度越高,推薦的質(zhì)量也會越高。公式如下:
為了確保實驗結(jié)果準(zhǔn)確性,將數(shù)據(jù)集隨機(jī)分成20%數(shù)據(jù)是測試集、80%數(shù)據(jù)是訓(xùn)練集兩部分;為了避免該推薦模型產(chǎn)生隨機(jī)性,所有的實驗均執(zhí)行100次取平均值作為測試結(jié)果。根據(jù)本文提出的混合推薦算法,將鄰居用戶數(shù)分別設(shè)置為10到100,步長為10,根據(jù)鄰居數(shù)的變化評價指標(biāo)相對應(yīng)的變化,在=90時,效果最好。
從圖4中可以看出,混合推薦算法(CF-CB)相比傳統(tǒng)協(xié)同過濾推薦算法(CF)在Precision、Recall和F1方面都有明顯的提高,從而驗證了采用混合推薦算法的正確性,提高了系統(tǒng)推薦精度。
圖4 CF與CF-CB的評價指標(biāo)比較
在微信平臺的自動答疑部分,實現(xiàn)用戶自助查詢,不需要去醫(yī)院或者尋求別人的幫助。通過手機(jī)微信公眾平臺,將用戶問題的答案回饋給用戶。用戶可以發(fā)送關(guān)鍵詞,字?jǐn)?shù)越多越貼近答案,自動答疑功能大大節(jié)約用戶搜索的時間,提高知識共享的效率。如果遇到無法識別的問題時,開發(fā)者會定期根據(jù)用戶咨詢不斷更新問題庫;隨著用戶咨詢數(shù)量的增多,系統(tǒng)會定期進(jìn)行去重,系統(tǒng)一切為用戶服務(wù)。用戶自動答疑結(jié)果如圖5所示。
圖5 微信自動答疑功能實現(xiàn)結(jié)果
內(nèi)容推送功能的實現(xiàn)是通過采用個性化推薦算法主動幫助用戶尋找感興趣的內(nèi)容并推送給用戶,減少用戶在海量內(nèi)容中尋找所需要內(nèi)容的苦惱,也提高了系統(tǒng)推薦的精度,將合適的內(nèi)容在合適的時間用合適的方式推薦給合適的人,極力滿足用戶需求。內(nèi)容推送界面如圖6所示。
圖6 內(nèi)容推送功能實現(xiàn)結(jié)果
在當(dāng)今的社會化網(wǎng)絡(luò)中,用戶經(jīng)常在多媒體平臺進(jìn)行知識學(xué)習(xí)、經(jīng)驗交流、購物娛樂,多媒體平臺成為大眾進(jìn)行友好互動交流的社會化網(wǎng)絡(luò)環(huán)境。本文以微信平臺為載體,設(shè)計了關(guān)于孕幼健康問題的移動學(xué)習(xí)系統(tǒng),實現(xiàn)用戶自助查詢需求,定時向用戶推送合適的內(nèi)容。操作簡單、結(jié)果新穎,用戶只需要具備網(wǎng)絡(luò)環(huán)境,在微信公眾號輸入內(nèi)容即可收到系統(tǒng)的響應(yīng)。采用個性化推薦算法是解決用戶信息過載問題的有效工具,將多種推薦算法進(jìn)行有效組合,以彌補(bǔ)單一推薦算法的不足,同時發(fā)揮各自的優(yōu)勢,以取得更好的推薦結(jié)果,幫助用戶節(jié)約信息檢索的時間,給用戶帶來較好的體驗。