秦曉安,路賀龍
(安徽商貿(mào)職業(yè)技術(shù)學(xué)院,安徽 蕪湖 241002)
推薦系統(tǒng)所用到的是一種特定類(lèi)型的信息過(guò)濾技術(shù),用于推薦特定用戶(hù)可能感興趣的商業(yè)項(xiàng)目.近年來(lái),這些系統(tǒng)已變得非常普遍,并應(yīng)用于各種應(yīng)用中.目前最受歡迎的是電影、音樂(lè)、新聞、書(shū)籍、研究文章、搜索查詢(xún)和社交標(biāo)簽等方面.不過(guò),也有短視頻、笑話(huà)、餐館、金融服務(wù)、人壽保險(xiǎn)、在線(xiàn)約會(huì)和粉絲的推薦系統(tǒng)[1].
Adomavicius G將推薦方法分為3類(lèi):基于內(nèi)容的推薦算法、協(xié)作推薦算法和混合推薦算法[2].基于內(nèi)容的方法是根據(jù)用戶(hù)偏好所表示內(nèi)容的相似性為用戶(hù)提取合適的內(nèi)容.協(xié)作方法推薦由共享目標(biāo)用戶(hù)偏好的其他用戶(hù)高度評(píng)價(jià)的內(nèi)容.混合方法結(jié)合了基于內(nèi)容和協(xié)作的方法.這些推薦方法都試圖發(fā)現(xiàn)用戶(hù)期望,從而為了找到有趣的內(nèi)容.
盡管大多數(shù)推薦系統(tǒng)在某些情況下會(huì)為單個(gè)用戶(hù)提供建議,但大多數(shù)的建議是為一組用戶(hù)群體所提供的.例如,一群朋友或一個(gè)家庭正計(jì)劃看一部電影.在這種團(tuán)購(gòu)商務(wù)的情況下,賣(mài)家以顯著折扣的價(jià)格在網(wǎng)上提供產(chǎn)品或服務(wù),前提是有最低數(shù)量的買(mǎi)家愿意購(gòu)買(mǎi)同一商品.盡管顧客會(huì)被大幅度折扣提供的產(chǎn)品所吸引,但他們可能沒(méi)有耐心去努力形成一個(gè)消費(fèi)群體.盡管有人試圖建立小組來(lái)相互討論,但他們主要還是在線(xiàn)下環(huán)境.本文提出了一種向顧客推薦位置敏感產(chǎn)品的推薦方法,該方法有助于形成一個(gè)群體,使產(chǎn)品獲得最大的折扣.
在表1中,對(duì)目前國(guó)內(nèi)外現(xiàn)有的推薦算法技術(shù)進(jìn)行了比較.在編號(hào)1中,他們提出了一個(gè)基于協(xié)同過(guò)濾框架的系統(tǒng)設(shè)計(jì),他們主要使用遺傳算法來(lái)預(yù)測(cè)群體成員之間可能的相互作用.有了這一點(diǎn),他們就可以預(yù)估一組成員對(duì)某一特定項(xiàng)目的評(píng)價(jià)[3].在編號(hào)2中,作者提出了一種改進(jìn)的群體推薦流程,可以提高群體推薦的有效性和個(gè)體群體成員的滿(mǎn)意度.它由2個(gè)階段組成,第一個(gè)階段是使用現(xiàn)有的群組推薦系統(tǒng)所使用的協(xié)同過(guò)濾方法為群組生成推薦集.第二階段是從推薦中剔除不相關(guān)的條目,提高個(gè)體成員偏好的滿(mǎn)意度[4].在編號(hào)3中,作者提出了一個(gè)基于地圖的個(gè)性化推薦系統(tǒng).它反映了由貝葉斯網(wǎng)絡(luò)(BN)建模的用戶(hù)偏好.這里BN的結(jié)構(gòu)是由專(zhuān)家建立的,參數(shù)是通過(guò)數(shù)據(jù)集來(lái)學(xué)習(xí)的.該系統(tǒng)從移動(dòng)設(shè)備收集位置、時(shí)間、天氣和用戶(hù)請(qǐng)求等上下文信息.它推斷出最喜歡的項(xiàng)目,并通過(guò)在迷你地圖上顯示它來(lái)提供適當(dāng)?shù)姆?wù)[5].在編號(hào)4中作者引入內(nèi)容排序聚合策略,使覺(jué)得電影有趣的組成員使用合并策略探索自己的個(gè)人利益,群體成員在電影中創(chuàng)建一個(gè)概要文件,從而可以反映群體的偏好,使用單詞的相關(guān)性因素找到電影在內(nèi)容上的相似性[6].在編號(hào)5中,作者引入了層次聚類(lèi)技術(shù)和決策樹(shù)相結(jié)合的群體推薦系統(tǒng)(GRS).他們認(rèn)為,F(xiàn)acebook的社交網(wǎng)絡(luò)群組可以根據(jù)其成員的個(gè)人資料進(jìn)行識(shí)別[7].在編號(hào)6中,作者提出了群組建議的協(xié)作咨詢(xún)渠道.他們提供了一個(gè)基于web的環(huán)境,在基于案例的群組推薦的幫助下,支持來(lái)自任何位置的用戶(hù)進(jìn)行交互[8].由于該方法與本文所提出的移動(dòng)用戶(hù)群優(yōu)惠券推薦系統(tǒng)相似度最高,在本文后的實(shí)驗(yàn)結(jié)果中將會(huì)與該方法進(jìn)行比較.在編號(hào)7中,他們使用了一種混合技術(shù),將協(xié)作、基于內(nèi)容和人口統(tǒng)計(jì)過(guò)濾相結(jié)合,為游客提供群體推薦.他們的方法在一個(gè)名為Hermes的推薦系統(tǒng)中得以實(shí)現(xiàn),它向個(gè)人和用戶(hù)群體推薦旅游景點(diǎn)[9].雖然已有文獻(xiàn)提出了群組推薦系統(tǒng),但對(duì)移動(dòng)商務(wù)關(guān)注較少.隨著人們轉(zhuǎn)向智能手機(jī),有必要提供一個(gè)移動(dòng)應(yīng)用程序,可以在團(tuán)購(gòu)時(shí)推薦打折產(chǎn)品.為此,本文提出了一種新的團(tuán)購(gòu)商品推薦方法.
表1 國(guó)內(nèi)外現(xiàn)有算法技術(shù)比較
該方法主要針對(duì)特定客戶(hù)推薦位置敏感產(chǎn)品.我們分析了顧客在實(shí)體店進(jìn)行購(gòu)買(mǎi)決策的3個(gè)主要因素:用戶(hù)偏好與產(chǎn)品特征的相似性、商店位置的地理便利性以及朋友對(duì)產(chǎn)品評(píng)價(jià)的影響.為了能在移動(dòng)設(shè)備上使用群組建議的推薦系統(tǒng),我們開(kāi)發(fā)了一個(gè)名為聚省匯的移動(dòng)應(yīng)用程序,用于團(tuán)購(gòu)折扣推薦機(jī)制.前人的算法技術(shù)大多只適用于個(gè)人推薦,不鼓勵(lì)團(tuán)購(gòu).因此,該系統(tǒng)以團(tuán)體折扣的方式出售大量產(chǎn)品,可以讓群組中的成員以最高折扣獲得產(chǎn)品,這其實(shí)對(duì)商家和客戶(hù)都有好處.
我們開(kāi)發(fā)的目的是使當(dāng)?shù)氐纳碳遗c用戶(hù)群體都可以受益于這一促銷(xiāo)應(yīng)用.當(dāng)本地商家在這個(gè)應(yīng)用程序中注冊(cè)時(shí),他們的位置通過(guò)GPS獲取并存儲(chǔ)在系統(tǒng)中.他們可以發(fā)布商鋪中提供的產(chǎn)品,還可以通過(guò)此應(yīng)用程序查看在商鋪中進(jìn)行選購(gòu)的客戶(hù)詳細(xì)信息.商家提供一個(gè)二維碼掃描儀,他們可以?huà)呙瓒S碼并為顧客提供折扣.系統(tǒng)在交易達(dá)成后,提供給雙方所出售產(chǎn)品的交易細(xì)節(jié).
這些產(chǎn)品會(huì)被推薦給此商店附近的其他顧客.當(dāng)客戶(hù)登錄時(shí),系統(tǒng)為客戶(hù)列出銷(xiāo)量最高的產(chǎn)品,如果用戶(hù)希望查看其他排名情況,他可以使用評(píng)級(jí)排序功能,根據(jù)所需要的評(píng)級(jí)對(duì)產(chǎn)品進(jìn)行排序.用戶(hù)可以通過(guò)分享商品來(lái)增加折扣,當(dāng)他的朋友一起購(gòu)買(mǎi)此共享產(chǎn)品時(shí),用戶(hù)將獲得新的折扣券.當(dāng)產(chǎn)品達(dá)到團(tuán)購(gòu)所需購(gòu)買(mǎi)人數(shù)時(shí),所有用戶(hù)可以獲得最大的折扣.當(dāng)客戶(hù)需要實(shí)際購(gòu)買(mǎi)此產(chǎn)品時(shí),系統(tǒng)會(huì)根據(jù)客戶(hù)當(dāng)前所在位置列出附近幾家可以購(gòu)買(mǎi)的商店.當(dāng)顧客選擇其中一家時(shí),就會(huì)生成該產(chǎn)品的二維碼并發(fā)送到顧客的手機(jī)上.顧客可以在相應(yīng)的商店提供二維碼,并獲得最大的折扣.
我們所開(kāi)發(fā)的聚省匯App系統(tǒng)提供以下幾種功能,這些功能用于向用戶(hù)提供產(chǎn)品和服務(wù)的最佳推薦.關(guān)于客戶(hù)界面的工作流程如圖1所示.關(guān)于商家界面的工作流如圖2所示.
圖1 客戶(hù)界面的工作流程圖
圖2 商家界面的工作流程圖
3.2.1 注冊(cè)與登錄
用戶(hù)首先需要在聚省匯中注冊(cè),注冊(cè)之后就可用注冊(cè)的用戶(hù)名和密碼登錄.當(dāng)用戶(hù)登錄時(shí),系統(tǒng)會(huì)使用GPS或網(wǎng)絡(luò)提供商檢索其當(dāng)前位置.然后,系統(tǒng)將為他列出當(dāng)前購(gòu)買(mǎi)最多的產(chǎn)品的排序.當(dāng)用戶(hù)同步登錄他的微信并授權(quán)之后,他的微信好友聯(lián)系人信息會(huì)同步到服務(wù)器數(shù)據(jù)庫(kù).這些微信好友聯(lián)系人可以用來(lái)分享產(chǎn)品,也可以邀請(qǐng)朋友來(lái)進(jìn)一步推廣.同樣,商家也可以在聚省匯上注冊(cè),然后他們可以通過(guò)指定產(chǎn)品類(lèi)型、名稱(chēng)和折扣來(lái)發(fā)布在他們的商店中可以買(mǎi)到的產(chǎn)品.
3.2.2 評(píng)級(jí)
用戶(hù)可以通過(guò)選擇評(píng)級(jí)欄中的星級(jí)對(duì)產(chǎn)品進(jìn)行評(píng)級(jí).評(píng)級(jí)如下:
★ 比較差的
★★ 稍差的 評(píng)級(jí)步驟:
★★★ 一般的 ?將所評(píng)星級(jí)用浮點(diǎn)數(shù)形式記錄.
★★★★ 較好的 ?使用加權(quán)平均方法進(jìn)行計(jì)算.
★★★★★ 非常好的 ?權(quán)數(shù)是用星星來(lái)計(jì)算小數(shù)的.
評(píng)級(jí)計(jì)算如下:(權(quán)重之和*該權(quán)重下的評(píng)論數(shù))/總用戶(hù)評(píng)論數(shù).某個(gè)商品的評(píng)級(jí)計(jì)算示例如表2:
表2 評(píng)級(jí)計(jì)算案例
(5*252+4*124+3*40+2*29+1*33)/(252+124+40+29+33)=4.1
在上面的例子中,252個(gè)用戶(hù)為一個(gè)產(chǎn)品提供了5顆星.124位用戶(hù)給出了4星,40位用戶(hù)給出了3星,29位用戶(hù)給出了2星,33位用戶(hù)給出了1星.計(jì)算產(chǎn)品的總星數(shù),總評(píng)價(jià)星級(jí)數(shù)除以總用戶(hù)評(píng)論數(shù),得出加權(quán)平均值.加權(quán)平均值最高的產(chǎn)品將是用戶(hù)評(píng)價(jià)最高的產(chǎn)品.
3.2.3 搜索
用戶(hù)可以根據(jù)產(chǎn)品名稱(chēng)或產(chǎn)品類(lèi)型搜索產(chǎn)品.系統(tǒng)根據(jù)搜索關(guān)鍵詞接收查詢(xún)并搜索數(shù)據(jù),然后顯示結(jié)果.后臺(tái)調(diào)用諸如啟動(dòng)服務(wù)、搜索引擎等組件,最終在移動(dòng)應(yīng)用程序API中顯示產(chǎn)品信息.在此過(guò)程中,搜索引擎主要用于與其他組件通信傳遞消息,將客戶(hù)需要的搜索結(jié)果返回給適配器;適配器主要提供對(duì)數(shù)據(jù)項(xiàng)的訪(fǎng)問(wèn);瀏覽器主要負(fù)責(zé)顯示數(shù)據(jù)集中的項(xiàng)目,顯示客戶(hù)列表視圖的結(jié)果.列表視圖在App產(chǎn)品頁(yè)上以列表的形式顯示內(nèi)容和圖像,同時(shí)也顯示客戶(hù)想要購(gòu)買(mǎi)的產(chǎn)品名稱(chēng)和類(lèi)型.
3.2.4 聯(lián)系人同步
聚省匯利用微信來(lái)建立與目標(biāo)用戶(hù)相關(guān)的群組.當(dāng)用戶(hù)登錄時(shí),用戶(hù)被要求同步微信聯(lián)系人以共享產(chǎn)品.當(dāng)數(shù)據(jù)取自用戶(hù)的個(gè)人帳戶(hù)時(shí),需要進(jìn)行授權(quán).聚省匯需要獲得用戶(hù)對(duì)微信聯(lián)系人進(jìn)行同步的許可.如果用戶(hù)允許,聚省匯將獲取聯(lián)系人并將其存儲(chǔ)在后端服務(wù)器中.當(dāng)用戶(hù)授予同步權(quán)限時(shí),將收到一個(gè)啟動(dòng)同步界面,用戶(hù)點(diǎn)擊開(kāi)始,啟動(dòng)一個(gè)線(xiàn)程來(lái)運(yùn)行該操作,并在該線(xiàn)程上調(diào)用執(zhí)行同步.所有聯(lián)系人將在服務(wù)器中更新,當(dāng)取消接收到的同步與現(xiàn)有同步操作匹配時(shí),運(yùn)行中的線(xiàn)程將被中斷并取消,服務(wù)器中將不會(huì)更新聯(lián)系人信息.
3.2.5 購(gòu)物車(chē)
如果客戶(hù)想購(gòu)買(mǎi)任何商品,他可以添加到購(gòu)物車(chē).在購(gòu)物車(chē)頁(yè)面中,客戶(hù)可以將商品共享給他的朋友.通過(guò)從服務(wù)器數(shù)據(jù)庫(kù)檢索到的用戶(hù)位置將商品顯示給他.這一功能使用了地理編碼技術(shù),地理編碼是將街道地址或其他位置描述轉(zhuǎn)換為經(jīng)緯度坐標(biāo)的過(guò)程,反向地理編碼是將經(jīng)緯度坐標(biāo)轉(zhuǎn)換為地址的過(guò)程.從附近商店列表中,用戶(hù)可以選擇一個(gè)商店.選擇之后,系統(tǒng)將要求用戶(hù)通過(guò)信用卡支付一些初始金額,聚省匯也會(huì)同時(shí)檢查信用卡的有效性.
一旦選擇了某一商店,該商店就會(huì)詢(xún)問(wèn)用戶(hù)的微信信息.顧客會(huì)收到一條消息,連同二維碼和其他有關(guān)產(chǎn)品的詳細(xì)信息.用戶(hù)需要前往指定商家,商家會(huì)掃描二維碼來(lái)確認(rèn)該用戶(hù)的優(yōu)惠信息.
3.2.6 共享
如果用戶(hù)需要獲得最大折扣的任何商品,他需要與他的朋友分享商品.當(dāng)用戶(hù)的朋友也購(gòu)買(mǎi)共享商品時(shí),用戶(hù)和用戶(hù)的朋友都將獲得折扣,此過(guò)程將重復(fù),直到該商品達(dá)到最大折扣為止.用戶(hù)可以通過(guò)好友列表中的所有聯(lián)系人或只與特定的好友共享產(chǎn)品.如果用戶(hù)想分享的朋友不在聚省匯的會(huì)員列表中,則會(huì)有一條消息通過(guò)微信提示他,要求他注冊(cè)聚省匯以成為會(huì)員,從而可以購(gòu)買(mǎi)共享產(chǎn)品.第一個(gè)共享產(chǎn)品的人將被視為目標(biāo),分組將針對(duì)目標(biāo)進(jìn)行折扣商品信息分享.
3.2.7 二維碼
二維碼簡(jiǎn)稱(chēng)快速響應(yīng)碼,是一種二維條碼.聚省匯主要用于優(yōu)惠券生成,即二維碼生成.通過(guò)將文本加密成虛線(xiàn)圖像生成二維碼,這是通過(guò)DES算法和用于電子數(shù)據(jù)加密的對(duì)稱(chēng)密鑰算法實(shí)現(xiàn)的.解密過(guò)程是將虛線(xiàn)圖像轉(zhuǎn)換為文本格式,這是通過(guò)將二維碼中的小點(diǎn)轉(zhuǎn)換為二進(jìn)制數(shù)字,并通過(guò)糾錯(cuò)技術(shù)進(jìn)行驗(yàn)證來(lái)實(shí)現(xiàn)的.
二維碼信息記錄用于符號(hào)的錯(cuò)誤糾正級(jí)別和掩碼模式.消息數(shù)據(jù)集以“之”字形從右向左放置.
所開(kāi)發(fā)的聚省匯App是使用Eclipse 4.4.0 Jre 8作為前端,MySQL作為后端,Android 4.3作為平臺(tái)開(kāi)發(fā)的.圖3為商家發(fā)布產(chǎn)品的示例.商家最初需要在聚省匯注冊(cè),發(fā)布產(chǎn)品并更新所需要求.注冊(cè)時(shí),商家的位置由GPS獲取緯度和經(jīng)度,并轉(zhuǎn)換為地址并存儲(chǔ)在數(shù)據(jù)庫(kù)中.在注冊(cè)成功后商家可以通過(guò)指定產(chǎn)品的標(biāo)題、產(chǎn)品的類(lèi)型和產(chǎn)品的最大折扣來(lái)發(fā)布產(chǎn)品.在指定產(chǎn)品的細(xì)節(jié)后,商家可以使用拍攝按鈕獲取產(chǎn)品的照片,也可以使用添加圖像按鈕從圖庫(kù)中添加圖像,最后他可以通過(guò)添加產(chǎn)品按鈕發(fā)布到聚省匯中.發(fā)布產(chǎn)品后,該產(chǎn)品將自動(dòng)更新并推廣到應(yīng)用程序,用戶(hù)可以方便地通過(guò)產(chǎn)品的類(lèi)型或名稱(chēng)搜索該產(chǎn)品.圖4為買(mǎi)家用戶(hù)與朋友分享產(chǎn)品界面.
圖3 商家發(fā)布產(chǎn)品界面 圖4 買(mǎi)家用戶(hù)與朋友分享產(chǎn)品界面
為了評(píng)估聚省匯App的效率,我們選擇50組用戶(hù),為每一組預(yù)先確定2至8人的人數(shù).在為50個(gè)組中的每個(gè)組生成推薦建議時(shí),考慮聚省匯的平均處理時(shí)間.從圖5可以看出,聚省匯生成群組推薦信息所需的平均處理時(shí)間(以毫秒為單位)并沒(méi)有隨著群組成員數(shù)量的增加而呈指數(shù)增長(zhǎng)而是呈線(xiàn)性趨勢(shì),這說(shuō)明了聚省匯的可擴(kuò)展性.
圖5 聚省匯App的平均處理時(shí)間
基于提供的前N項(xiàng)建議,我們使用精確率(Precision)、召回率(Recall)和綜合評(píng)價(jià)指標(biāo)(F1 Measure)來(lái)分析所提出方法的有效性.精確率是被檢測(cè)出來(lái)的信息當(dāng)中正確的或者相關(guān)信息中所占的比例,召回率是所有正確的信息或者相關(guān)信息被檢測(cè)出來(lái)的比例,綜合評(píng)價(jià)指標(biāo)是精確率和召回率的加權(quán)平均值.表3和表4中列出了對(duì)于50個(gè)用戶(hù)的前5個(gè)推薦產(chǎn)品在已有的基于案例的群組推薦技術(shù)方法和聚省匯App技術(shù)方法的實(shí)驗(yàn)結(jié)果.表5提供了精確率、召回率和綜合評(píng)價(jià)指標(biāo)的平均值.從表5可以看出,與基于案例的群組推薦技術(shù)方法相比,聚省匯App技術(shù)方法的執(zhí)行情況更好.
表3 基于案例的群組推薦技術(shù)方法的實(shí)驗(yàn)結(jié)果
表4 聚省匯App技術(shù)方法的實(shí)驗(yàn)結(jié)果
表5 前5項(xiàng)推薦產(chǎn)品的精確度、召回率和綜合評(píng)價(jià)指標(biāo)的平均值
目前已有的推薦系統(tǒng)通常只能為單個(gè)客戶(hù)提供個(gè)性化推薦,對(duì)于由一群人的團(tuán)購(gòu)活動(dòng),這些系統(tǒng)不能提供群組推薦.本文提出了一種生成團(tuán)購(gòu)的推薦系統(tǒng),基于該推薦系統(tǒng),開(kāi)發(fā)聚省匯App的移動(dòng)應(yīng)用程序,通過(guò)生成團(tuán)購(gòu)優(yōu)惠券二維碼的方式,為客戶(hù)推薦基于位置的產(chǎn)品.通過(guò)實(shí)驗(yàn)可以觀察到,為團(tuán)購(gòu)成員推薦打折產(chǎn)品不僅可以顯著提高顧客的購(gòu)買(mǎi)意愿,而且所提出的群體折扣機(jī)制也可以有效地幫助用戶(hù)通過(guò)其自身的社會(huì)影響力和位置敏感性吸引最大數(shù)量的群體來(lái)增加他們的優(yōu)惠力度.