程遠航,趙紋靜,杜英魁,李 娟
(1.沈陽大學 信息工程學院,遼寧 沈陽 110044;2.沈陽大學 體育學院,遼寧 沈陽 110044)
現如今,我國疫情局勢已逐漸平穩,但全球疫情尚未結束,仍不能忽視境外輸入性風險,孕產婦和嬰幼兒依然是疫情形勢下需要保護的重點人群。對于孕產婦和嬰幼兒,為降低感染風險,沒有特殊情況應避免出門;但是作為新手父母,從備孕到孩子出生以及成長階段,因為缺乏經驗即使出現小問題也會用“放大鏡”去看待,仍習慣到醫院咨詢醫生,醫生也會遇到很多重復性的問題,工作效率較低。另外,在疫情期間,去醫院咨詢醫生也會增加孕產婦和嬰幼兒的感染風險。因此有必要為新手父母提供一個關于孕幼健康知識的移動學習平臺,該移動學習平臺不僅可以隨時解決用戶問題,節約用戶時間,而且還能向用戶宣傳孕幼健康知識,提高自我保護意識。
隨著科技互聯網的不斷發展,社交軟件大范圍興起,微信在2012年被應用至今,越來越受到人們的歡迎,已經成為人們生活中重要的社交媒體。本文從孕幼健康角度出發,充分利用微信平臺的交互性、信息傳遞性等特點進行研究,建立了一個關于孕幼健康問題的移動學習平臺。系統合理利用微信平臺資源,為用戶提供答疑模塊,快速高效解決用戶問題。由于用戶在海量數據中尋找自己想要的內容總會遇到一些困難,使得用戶不能在有限的碎片化時間有效地尋找自己喜歡的內容。為了解決此問題,本文采用個性化推薦方法,使用戶通過一種全新的模式來獲得信息。根據用戶的隱式和顯式行為信息,經過數據挖掘分析獲取用戶的興趣偏好,匹配與用戶興趣相似的內容;將協同過濾推薦算法與基于內容的推薦算法進行組合,使用戶由被動的信息瀏覽者轉變為主動的參與者,不僅幫助用戶推薦一直偏好的內容,而且挖掘用戶潛在的興趣,提高推薦的準確率。
本文設計基于微信平臺開發的關于孕幼健康問題的移動學習系統,面向孕幼家庭為用戶提供學習幫助和問題解答。本設計的重點是實現自動答疑和向用戶推薦個性化內容。微信的主要功能是為用戶提供消息傳輸和共享的服務,在系統中利用Python開發微信公眾號,開發模式選用B/S架構模式,將Django框架作為系統的開發框架,用MySQL數據庫存儲用戶行為數據和回答用戶的問題庫。
系統的自動答疑模塊能夠滿足用戶自助咨詢的要求,開發者會根據用戶的問題不斷更新問題庫,逐漸滿足用戶要求。自動答疑功能體現用戶主動與微信平臺互動,實現用戶與微信平臺的即時交互,使用戶隨時隨地都能夠進行學習,提高學習的便捷性;微信平臺的個性化推薦體現微信平臺主動與用戶互動,通過采用混合推薦算法,提高內容推薦的精確度。
選取阿里云服務器作為系統的運行環境,負責系統正常運行。服務器為系統提供遠程訪問,實現自動答疑模塊的高效運轉;服務器提供不間斷的互聯網,滿足個性化推薦和定時在線推送功能。服務器搭建主要是申請服務器賬號、服務器配置、命令行手動搭建,微信平臺開發支持80端口,使用Nginx部署協調,以提高用戶訪問速度和服務器的性能。
微信公眾號開發以Django框架為開發架構,它是在Web開發中最流行的框架,有路由映射、數據處理、模板編程、服務發布的功能。Django框架采用MVT(Model,Template, View)設計模式,微信公眾號相當于瀏覽器。MVT設計模式如圖1所示。將應用程序分成三個部分,擁有自助式的后臺管理,功能強大。在Model數據存儲層,處理與數據相關的操作,在系統中主要是與MySQL進行數據交互。通過ORM對象關系映射,將MySQL數據庫的數據映射到對象,不需要寫MySQL語句,只通過Python語言即可得到數據表。在Template模板層,為用戶提供語法框架,用戶可以自行設計頁面結構渲染頁面,本文以圖文結合的形式呈現給用戶。View業務邏輯層是連接Model和Template層的橋梁,編輯Python程序處理具體的業務邏輯,把要推送給用戶的推薦列表以字典的形式傳送到Template進行渲染,將HttpResponse內容定時通過微信公眾號推薦給用戶。

圖1 MVT設計模式示意圖
本系統主要以微信公眾平臺為載體為用戶提供自助咨詢、內容推送服務。首先需要進行一系列的準備工作,為用戶提供便捷;然后在官方網站創建并注冊公眾賬號,進行信息配置,為給用戶帶來驚喜和新穎,采用開發者模式,可以獲取高級接口權限;最后搭建平臺框架為后續開發做準備。公眾號開發者模式在身份認證過程中可以先通過測試號完成開發,使用接口調試工具在線調試某些接口。本移動學習系統使用測試號完成。
用戶只須登錄微信、關注公眾號后輸入內容,微信服務器將用戶請求傳達到云服務器,程序部署在云服務器中實現24 h微信自動答疑;云服務器解析用戶消息,與數據庫中存儲的問題庫進行匹配,將最接近的答案通過微信服務器轉發給用戶,微信服務器在用戶和云服務器間相當于一個轉發服務器。自動答疑結構如圖2所示。自動答疑功能實現用戶自助咨詢,返回用戶最佳答案。當系統在遇到無法識別的問題時,會先建議用戶重新輸入,同時開發者會對此類用戶問題進行更新,不斷完善問題庫,滿足用戶需求。

圖2 自動答疑結構
個性化推薦是針對不同的用戶給予不同的內容推薦,實現精準投放。為了獲取用戶信息,微信公眾號識別關注公眾號的用戶是通過唯一的OpenID。OpenID以微信用戶的一個聯系人形式存在,為用戶個性化推薦提供了保障;同時,此OpenID也是獲取用戶信息的唯一渠道。開發者模式具有使用高級接口的權限,可以通過調用關注者的列表接口獲取關注者的用戶信息,為個性化推薦做好數據準備。
基于微信平臺的孕幼健康移動學習系統中的個性化推薦功能是由熱點推薦、協同過濾推薦算法和基于內容的推薦算法組合而成的,面對新用戶沒有任何歷史記錄,將排名靠前的熱點新聞內容推薦給用戶,獲取到用戶的一定信息后將后兩者推薦算法進行特征組合。對兩種單一算法產生的推薦結果集分別進行降序排列,再對得到的結果進行權重分配,篩選最相似的內容并組成最新推薦列表推薦給用戶。個性化推薦結構如圖3所示。

圖3 個性化推薦結構
個性化推薦技術首先將基于用戶的協同過濾推薦作為系統的主推薦算法,實現用戶的個性化內容推薦服務。該算法的優勢是可以挖掘用戶的潛在興趣,增強用戶粘性。算法步驟可以分為兩大步:(1)尋找與用戶興趣相似的鄰居用戶集合;(2)將鄰居用戶看過的而目標用戶未曾看過的內容進行推薦。該算法的數據集是對用戶的行為信息進行數據處理后得到的用戶對項目的評分數據集。鄰居集合是通過數據集計算用戶間的相似度得到的,余弦相似度公式如式(1)所示。()、()分別是用戶、用戶感興趣的內容集合,利用余弦相似度公式計算出兩用戶間的興趣相似度,將結果降序排列得到鄰居集合,在鄰居集合中篩選鄰居用戶看過而當前用戶未曾看過的內容,即為推薦內容。

在計算相似度過程中可能會遇到用戶1與用戶2、3、4、5的相似度相同,不能準確找到最相似的鄰居用戶的情況,此時改進相似度的計算方法,加入懲罰因子來消除用公式(1)計算用戶興趣相似度的不足,從而提高計算結果的準確率,為目標用戶找到最相似的用戶集合。公式(2)為改進的余弦相似度公式。


個性化推薦技術中另一種推薦算法是基于內容的推薦算法,基本原理是根據用戶已經看過的內容進行分析,得到用戶的興趣偏好模型,從而將與用戶興趣模型相似的內容推薦給用戶。該算法的優勢是不需要其他用戶的數據,沒有冷啟動問題,只要能夠提取到用戶看過的歷史內容就可以進行推薦。算法步驟主要分為以下三步:
(1)中文分詞算法構建:采用jieba分詞提取內容特征。
(2)詞向量轉化:將文本轉換成維空間向量,這樣轉換的詞向量能夠很好地配合推薦系統工作。
(3)計算興趣值:根據計算出的關鍵詞向量,運用TF-IDF算法,計算用戶看過的內容與新內容之間的相似度。
本文所有的實驗和算法都是通過Pycharm實現,實驗運行通過阿里云服務器完成。為了更好地對本文所提出的算法進行實驗對比和分析,本文用到的實驗數據是ml-1m數據集,描述了電影推薦服務的五星級和自由文本標記活動,該數據集是推薦算法中常用的數據集,包含6 040個用戶對3 952部電影的1 000 209條評分數據。
為了評估改進的推薦算法的準確度,本部分主要選擇準確率、召回率、F1指標作為評價標準,將本文混合推薦算法與傳統協同過濾推薦算法進行對比分析。推薦算法為用戶推薦可能感興趣的前個項目,()表示為用戶推薦的項目集合,()表示用戶在測試集上的行為列表集合,公式如下:

(3)綜合評價指標
F1值是綜合以上兩指標的評估指標,用來反映整體的指標,又稱為是Precision和Recall加權調和平均值。F1值越大,推薦算法的精確度越高,推薦的質量也會越高。公式如下:

為了確保實驗結果準確性,將數據集隨機分成20%數據是測試集、80%數據是訓練集兩部分;為了避免該推薦模型產生隨機性,所有的實驗均執行100次取平均值作為測試結果。根據本文提出的混合推薦算法,將鄰居用戶數分別設置為10到100,步長為10,根據鄰居數的變化評價指標相對應的變化,在=90時,效果最好。
從圖4中可以看出,混合推薦算法(CF-CB)相比傳統協同過濾推薦算法(CF)在Precision、Recall和F1方面都有明顯的提高,從而驗證了采用混合推薦算法的正確性,提高了系統推薦精度。

圖4 CF與CF-CB的評價指標比較
在微信平臺的自動答疑部分,實現用戶自助查詢,不需要去醫院或者尋求別人的幫助。通過手機微信公眾平臺,將用戶問題的答案回饋給用戶。用戶可以發送關鍵詞,字數越多越貼近答案,自動答疑功能大大節約用戶搜索的時間,提高知識共享的效率。如果遇到無法識別的問題時,開發者會定期根據用戶咨詢不斷更新問題庫;隨著用戶咨詢數量的增多,系統會定期進行去重,系統一切為用戶服務。用戶自動答疑結果如圖5所示。

圖5 微信自動答疑功能實現結果
內容推送功能的實現是通過采用個性化推薦算法主動幫助用戶尋找感興趣的內容并推送給用戶,減少用戶在海量內容中尋找所需要內容的苦惱,也提高了系統推薦的精度,將合適的內容在合適的時間用合適的方式推薦給合適的人,極力滿足用戶需求。內容推送界面如圖6所示。

圖6 內容推送功能實現結果
在當今的社會化網絡中,用戶經常在多媒體平臺進行知識學習、經驗交流、購物娛樂,多媒體平臺成為大眾進行友好互動交流的社會化網絡環境。本文以微信平臺為載體,設計了關于孕幼健康問題的移動學習系統,實現用戶自助查詢需求,定時向用戶推送合適的內容。操作簡單、結果新穎,用戶只需要具備網絡環境,在微信公眾號輸入內容即可收到系統的響應。采用個性化推薦算法是解決用戶信息過載問題的有效工具,將多種推薦算法進行有效組合,以彌補單一推薦算法的不足,同時發揮各自的優勢,以取得更好的推薦結果,幫助用戶節約信息檢索的時間,給用戶帶來較好的體驗。