賴麗萍,楊金亮
(贛州師范高等??茖W校,江西 贛州 341000)
在當下移動互聯(lián)網(wǎng)蓬勃發(fā)展的時代大環(huán)境下,居民對于商家服務的要求越來越高,移動互聯(lián)網(wǎng)與線下經(jīng)濟聯(lián)系日益緊密,截至2019年6月,我國網(wǎng)民規(guī)模達8.54億,互聯(lián)網(wǎng)普及率達61.2%;手機網(wǎng)民規(guī)模達 8.47億;網(wǎng)絡購物用戶規(guī)模達6.39億,占網(wǎng)民整體的74.8%[1]?,F(xiàn)如今,多數(shù)國人已接入互聯(lián)網(wǎng),網(wǎng)民規(guī)模增速提升,同時網(wǎng)民個人上網(wǎng)設備進一步向手機端集中。
隨著微信應用的普及,微信營銷已經(jīng)成為了一種新型熱門的網(wǎng)絡營銷方式。微信入口資源豐富,支付形式多樣,這成為微信支付的優(yōu)勢。微信支付的方式包括公眾號支付、PC掃碼支付、APP支付、線下二維碼支付,相較于以PC為基本終端支付的不可移動性來說,以手機為基本終端的移動支付優(yōu)點就是顧客將所有的商家和商品“裝進”錢包(手機)里,商家把所有的顧客“裝進”自己的服務器里,以最便捷的支付手段(微信支付)進行交易,由此微信支付與線下場景深度結合,成為移動互聯(lián) O2O的真門票。從社交屬性、位置屬性(LBS)、支付閉環(huán)、溝通體系全面打通,成為下一個增長點,為公眾平臺帶來信息資源,為線下交易提供支付便利,促進交易[2]。居民本地生活所需的各式上門服務,就是項目的出發(fā)點。
針對以上情況,設計出一個基于協(xié)同推薦算法的智慧社區(qū)服務系統(tǒng),并通過技術手段開發(fā)出一個提供給企業(yè)和商家使用的系統(tǒng)。最終,企業(yè)和商家更好地利用微信平臺宣傳自己的品牌,推廣自己的產(chǎn)品,而社區(qū)用戶也在這一過程中得到實惠,便捷。
本系統(tǒng)主要有用戶管理、商城和廢品回收三大功能模塊。如圖1所示。
圖1 基于協(xié)同推薦算法的智慧社區(qū)服務系統(tǒng)的功能模塊設計圖
接下來將是把一個復雜系統(tǒng)按功能進行模塊劃分、建立模塊的層次結構及調(diào)用關系、確定模塊間的接口及人機界面等。根據(jù)對系統(tǒng)的需求分析,將系統(tǒng)的功能分為兩大模塊:社區(qū)用戶需求模塊和管理員需求模塊。兩大模塊中具體需求與服務平臺中的各個功能模塊相互對應,如圖2所示。
圖2 基于微信的社區(qū)服務平臺功能框架設計圖
(1)數(shù)據(jù)庫概念結構設計
將需求分析得到的用戶需求抽象為信息結構(即概念模型)的過程就是概念結構設計。用戶信息:用來服務系統(tǒng)中所有用戶的基本信息,是該系統(tǒng)的核心實體之一,主要包括用戶編號、用戶姓名、密碼、權限、手機號、注冊時間等;商品信息:用來保存服務系統(tǒng)中商城商品的詳細信息,主要包括商品編號、商品名稱、商品類別、商品單價、商品描述、商品總量、商品銷量、商品圖片和商品評論等;商品訂單信息:用來保存服務系統(tǒng)中所有訂單詳細信息,也是該系統(tǒng)的核心實體之一,主要包括訂單編號、用戶編號、商品編號、訂單金額、收貨地址、支付方式、處理狀態(tài)、訂單創(chuàng)建時間和備注等;廢品回收訂單信息:用來保存服務系統(tǒng)中所有廢品回收訂單詳細信息,主要包括訂單編號、用戶編號、用戶住址、回收員、創(chuàng)建時間、金額、廢品類別、預約時間、備注等。
概念設計的最終結果是用 E-R 圖描述系統(tǒng)各實體及實體之間的關系,通過上文的實體分析,結合需求分析的階段描述的實體間的關系,得到系統(tǒng)的核心E-R圖,如圖3所示。在該系統(tǒng)中,一個社區(qū)用戶可以購買多個商品,在購買商品過程中可以創(chuàng)建多個商品訂單,在廢品回收預約中可以創(chuàng)建多個廢品回收訂單;一個管理員用戶可以管理多個社區(qū)用戶,多個商城商品,多個商品訂單,多個廢品回收訂單。
圖3 系統(tǒng)核心E-R設計圖
(2)數(shù)據(jù)庫邏輯結構設計
數(shù)據(jù)庫邏輯結構的設計通常是把概念結構設計階段得到的 E-R 圖轉換為關系模式,即通常數(shù)據(jù)庫說的關系數(shù)據(jù)庫的設計,其中主要是關系模式的設計。根據(jù)前面功能模塊的分析和數(shù)據(jù)庫的概念結構設計,可以看到系統(tǒng)中所用到的數(shù)據(jù)核心信息基本包括:用戶信息、商品信息、商品訂單信息、廢品回收訂單信息等。表1到表4列出了主要數(shù)據(jù)表的設計。
表1 用戶表tb_user
表2 商品信息表tb_goodsInfo
表3 商品訂單表tb_orderInfo
表4 廢品回收訂單信息表tb_recycleOrderInfo
推薦引擎根據(jù)不同的推薦機制可能用到數(shù)據(jù)源中的一部分,然后根據(jù)這些數(shù)據(jù),分析出一定的規(guī)則或者直接對用戶對其他物品的喜好進行預測計算。這樣推薦引擎可以在用戶進入的時候給他推薦他可能感興趣的物品。在電商部分,系統(tǒng)對用戶采用了協(xié)同過濾推薦算法。該算法的核心思想可以概括為:若用戶A,B喜歡同一系列的商品(稱B是A的“鄰居”),則A很可能喜歡B喜歡的其他物品?;谠撍惴ㄋ枷耄瑢崿F(xiàn)流程概括如下:
(1)計算用戶相似度,確定 “鄰居”;
(2)計算用戶對某商品的喜好程度,按喜好值優(yōu)先推薦商品。
第一步:計算用戶相似度,尋找“鄰居”
例如目前共有4個用戶: A、B、C、D;共有5個商品:a、b、c、d、e。用戶與物品的關系(用戶喜歡商品)如下所示:
A:a,b,d
B:a,c,e
C:b,e
D:c,d,e
為方便計算,通常首先需要建立“商品—用戶”的倒排列表,如下所示:
a:A,B
b:A,C
c:B,D
d:A,D
e:C,D,B
每個商品,喜歡他的用戶兩兩相加(相同商品相加得1,不同商品相加得0)。如此得表5:
表5 商品—用戶相加表
計算用戶兩兩之間的相似度有三種公式,這里采用余弦相似度:
其中,sim(u,v)表示用戶 u,v的相似度,N(u) 為用戶u喜歡的商品集合,N(v) 為用戶 v 喜歡的商品集合。計算結果如下:
表6 用戶相似度計算結果表
計算相似度的算法描述:
算法1 計算用戶相似度算法
輸入:用戶喜歡的商品集合
輸出:用戶相似度矩陣
(1)統(tǒng)計出每個用戶的|N(ui)|,i=1,2,……,m(m為用戶個數(shù))
(2)建立“商品—用戶”的倒排列表List(n),(n為商品個數(shù))
(3)創(chuàng)建用戶相似關系矩陣 sim[m,m],sim[m,m]=0
(4)for i=1 to n do
(5)if uj∈List(i) and uk∈List(i) then
(6)sim[j,k]=sim[j,k]+1, sim[k,j]=sim[k,j]+1
(7)end if
(8)end for
(9)for i=1 to m do
(10)for j=1 to m do
(12)end for
(13)end for
(14)return sim
第二步:計算用戶對某商品的喜好程度,按喜好值優(yōu)先推薦商品
首先需要從用戶相似矩陣中找出與目標用戶u 最相似的 K 個用戶,用集合 S(u, K) 表示,將S 中用戶喜歡的物品全部提取出來,并去除u已經(jīng)喜歡的商品。對于每個候選商品 i,用戶 u 對它感興趣的程度用如下公式計算:
其中 p(u,i)表示用戶u對 i的喜好程度值,rvi表示用戶 v 對 i 的喜歡程度,為簡單起見取1,在一些需要用戶給予評分的推薦系統(tǒng)中,則可以代入用戶評分。
假設要給A推薦商品,選取 K = 3 個相似用戶,相似用戶則是:B、C、D,那么他們喜歡過并且A沒有喜歡過的商品有:c、e,那么分別計算 p(A, c) 和 p(A, e):
根據(jù)喜好程度的計算,應該優(yōu)先給A用戶推薦e商品,其次推薦c商品。
計算用戶對商品喜好程度的算法描述:
算法2 計算用戶對商品喜好程度算法
輸入:用戶相似度矩陣,用戶喜歡的商品集合
輸出:用戶對商品的喜好值
(1)根據(jù)用戶相似度矩陣找出K個最相似用戶 S(u,K)
(2)根據(jù)用戶喜歡的商品集合提取S(u,K)中用戶喜歡的商品集合P
(3)P1= P-{u喜歡的商品集合}
(4)for each i ∈ P1
(5)for v=1 to m do
(6)if v∈ S(u,K) and i∈N(v) then
(7)p(u,i)=p(u,i)+sim(A,v)
(8)end if
(9)end for
(10)end for
算法1的時間復雜度為O(n?m+m2),最主要的計算的代價是計算用戶相似度的二維矩陣中的值。根據(jù)商品-用戶倒排列表,每個商品遍歷一次,而且需要根據(jù)用戶喜歡商品集合判斷某用戶是否喜歡該商品,所以這部分時間復雜度為O(n?m) ,而后面部分時間復雜度顯然是O(m2)。算法2的時間復雜度為O(m?n),因為該算法需要遍歷S(u,K)喜歡的但u不喜歡的商品,并針對每個用戶需要判斷該用戶是否屬于要推薦用戶的鄰居,且他是否也喜歡商品i。
系統(tǒng)測試的目的是驗證功能是否滿足要求。為此,我們對系統(tǒng)進行了功能測試。Functional testing(功能測試),也稱為behavioral testing(行為測試),根據(jù)產(chǎn)品特性、操作描述和用戶方案,測試一個產(chǎn)品的特性和可操作行為以確定它們滿足設計需求。功能測試也叫黑盒子測試或數(shù)據(jù)驅動測試,只需考慮各個功能,不需要考慮整個軟件的內(nèi)部結構及代碼,一般從軟件產(chǎn)品的界面、架構出發(fā),按照需求編寫出來的測試用例,輸入數(shù)據(jù)在預期結果和實際結果之間進行評測,進而提出更加使產(chǎn)品達到用戶使用的要求。
因為本平臺是基于微信公眾平臺開發(fā)的,所以選擇了在微信上對平臺的各項功能進行測試。本次測試環(huán)境配置的主要參數(shù)如下:
硬件:MEIZU PRO6,基于Android7.0的Flyme6.2.0操作系統(tǒng);
軟件:Android微信7.015版,微信公眾服務號“鄰舍小區(qū)”。
通過測試發(fā)現(xiàn),本項目已經(jīng)基本實現(xiàn)了之前所設計的一些功能。經(jīng)過多次嚴格測試,平臺各項功能均可以正常使用。對于用戶端,可以通過該系統(tǒng)讓關注微信公眾號的用戶進行商家信息的瀏覽、在線咨詢與交流、預約回收、優(yōu)惠券領取、投票等行為。對于使用該系統(tǒng)的商家,可以通過該系統(tǒng)實現(xiàn)公眾號的接入和管理、用戶信息的管理、會員卡和優(yōu)惠券的發(fā)放、內(nèi)容的自定義回復等功能。 由此得出結論:本平臺可以實現(xiàn)整個社區(qū)服務平臺的功能需求,可以作為商家在微信上進行互動營銷的一個有效平臺。
基于協(xié)同推薦算法的智慧社區(qū)服務系統(tǒng)是一款便捷的社區(qū)服務軟件。通過該服務系統(tǒng),架起了一座幫助社區(qū)內(nèi)住戶之間、住戶與周圍商圈、住戶與小區(qū)物業(yè)之間溝通的橋梁,全面提升了社區(qū)居民居住體驗,讓用戶能夠以輕松、自在的狀態(tài)享受著互聯(lián)網(wǎng)帶來的各項便捷服務、方便物業(yè)針對社區(qū)居民進行管理等。在系統(tǒng)的電商部分,采用了基于用戶的協(xié)同推薦算法,使得具有相近消費習慣的客戶訂單成交量有明顯提高。
當然,本服務系統(tǒng)還有一些需要完善和提高的地方,將來還應該在這幾個方面進一步開展工作:
(1)需求進一步挖掘需求。比如以后可以將服務擴展到小區(qū)水電費的快捷繳納,建立小區(qū)的BBS,讓用戶的聯(lián)系更加密切,生活更加便捷。
(2)引入云電子商務平臺。云電子商務平臺把后臺復雜的計算放到云中,將各個業(yè)務作為任務發(fā)送給云中處于不同物理位置的服務器處理,并返回結果,用戶只需要簡單操作就可以完成復雜的交易過程,云計算的結構決定了該模式能最有效地利用服務器的計算性能,為用戶提供高效數(shù)據(jù)處理服務。