陳震鵬,陸 璇,李豁然,劉譞哲+
1.北京大學(xué) 高可信軟件技術(shù)教育部重點實驗室,北京 100871 2.北京大學(xué)(天津濱海)新一代信息技術(shù)研究院,天津 300450
多維應(yīng)用特征融合的用戶偏好預(yù)測*
陳震鵬1,2,陸 璇1,2,李豁然1,2,劉譞哲1,2+
1.北京大學(xué) 高可信軟件技術(shù)教育部重點實驗室,北京 100871 2.北京大學(xué)(天津濱海)新一代信息技術(shù)研究院,天津 300450
近年來,隨著智能手機(jī)的飛速發(fā)展,移動應(yīng)用的數(shù)目也快速增長。因此,移動應(yīng)用開發(fā)者會提前預(yù)測用戶對于自己開發(fā)的應(yīng)用的偏好情況。選取Android應(yīng)用的被卸載次數(shù)與其被下載次數(shù)的比值作為用戶偏好的隱式反映,用戶對應(yīng)用的評價(喜愛率)作為用戶偏好的顯式反映?;趪鴥?nèi)某知名手機(jī)應(yīng)用市場提供的2014年5月至9月的大規(guī)模真實用戶使用數(shù)據(jù),選取9 795個活躍用戶數(shù)不少于50的Android手機(jī)應(yīng)用作為研究對象,進(jìn)行分析。從7個維度定義了可能影響用戶對應(yīng)用偏好的30種特征,并對每個應(yīng)用進(jìn)行特征提取。基于定義的特征,使用隨機(jī)森林算法訓(xùn)練分類器,按照卸載/下載比率或喜愛率的高低對應(yīng)用進(jìn)行劃分,并找出顯著影響卸載/下載比率、喜愛率的特征。
Android手機(jī)應(yīng)用;應(yīng)用特征;用戶偏好
2007年iPhone的發(fā)布開啟了移動計算的新紀(jì)元,也使得軟件應(yīng)用的發(fā)布和使用模式產(chǎn)生了重大變化。時至今日,大量應(yīng)用開發(fā)者將數(shù)以百萬計的移動應(yīng)用(App)上載到應(yīng)用市場并從中獲益,應(yīng)用市場成為移動端用戶選取和下載應(yīng)用的重要入口。
開發(fā)者往往非常關(guān)心自己的應(yīng)用能否從眾多競爭中脫穎而出并被廣大用戶使用,從而從中獲益。當(dāng)應(yīng)用已經(jīng)開發(fā)完成并且投入各分發(fā)渠道供用戶下載使用后,如果分發(fā)效果遠(yuǎn)低于預(yù)期(如應(yīng)用卸載率很高,或者受到大多數(shù)用戶的差評),將會嚴(yán)重影響開發(fā)者的收益。因此,如果能夠從應(yīng)用本身找出可能影響用戶偏好的特征并進(jìn)行分析,將有利于開發(fā)者及時調(diào)整,開發(fā)出更受用戶歡迎的應(yīng)用。
基于上述需求,本文選取了應(yīng)用在一定時間段內(nèi)的被卸載次數(shù)與被下載次數(shù)的比值(卸載/下載比率)和喜愛應(yīng)用的用戶數(shù)目與總評價人數(shù)的比值(喜愛率)作為衡量用戶偏好的兩個指標(biāo),并從應(yīng)用的靜態(tài)屬性(如APK大小、代碼復(fù)雜度等)中提取和定義30種特征。通過Mann-Whitney U test來驗證這些特征和用戶偏好之間的關(guān)系,從而為開發(fā)者提供參考,幫助其提高應(yīng)用的受歡迎度。本文使用K-means算法將應(yīng)用按卸載/下載比率(或喜愛率)分為高、低兩類,根據(jù)應(yīng)用的特征和其對應(yīng)的分類,使用隨機(jī)森林算法來訓(xùn)練分類器模型,并交叉驗證模型的準(zhǔn)確性。在此基礎(chǔ)上,本文還探討了顯著影響這兩個指標(biāo)的特征。在本文定義的30種特征中,有16種顯著影響用戶的卸載/下載比率,有20種顯著影響用戶的喜愛率。
本文組織結(jié)構(gòu)如下:第2章介紹所使用的數(shù)據(jù)集,以及如何預(yù)處理選出作為研究對象的應(yīng)用;第3章給出兩種評價指標(biāo)和30種應(yīng)用特征的定義與提取;第4章介紹如何訓(xùn)練模型來預(yù)測卸載/下載比率和喜愛率,并檢驗?zāi)P托Ч?,探究顯著影響卸載/下載比率以及喜愛率的特征;第5章討論本文工作的局限性;第6章介紹相關(guān)工作;第7章總結(jié)全文。
本文所使用的用戶行為數(shù)據(jù)(包括下載、卸載、更新)來自國內(nèi)某知名手機(jī)應(yīng)用市場[1]。該手機(jī)應(yīng)用市場在中國Android用戶中人氣和活躍度很高,迄今安裝量已超過4.2億。根據(jù)這一數(shù)據(jù)集所包含的應(yīng)用列表選取研究對象,并進(jìn)一步收集數(shù)據(jù)進(jìn)行特征提取。本章分為兩部分:第一部分介紹數(shù)據(jù)集;第二部分介紹如何對數(shù)據(jù)進(jìn)行預(yù)處理,選出部分應(yīng)用作為研究對象。
該手機(jī)應(yīng)用市場提供的數(shù)據(jù)是2014年5月至9月的用戶使用數(shù)據(jù),來自全體用戶的一個子集。單條數(shù)據(jù)記載的是用戶對于某個應(yīng)用的下載、卸載或者更新行為。其中包含的信息字段有:
{app標(biāo)識,用戶id,具體行為}
(1)app標(biāo)識:每個應(yīng)用在該手機(jī)應(yīng)用市場上都有唯一標(biāo)識。標(biāo)識與應(yīng)用之間存在一一對應(yīng)的關(guān)系,例如微信的標(biāo)識為“com.tencent.mm”。
(2)用戶id:在該手機(jī)應(yīng)用市場上,每個設(shè)備均由一個字符串id來唯一標(biāo)識。本文以設(shè)備id代表用戶,即每個設(shè)備的使用行為代表一個用戶的使用行為,并不考慮一個用戶使用多臺設(shè)備的情況。“用戶”和“設(shè)備”的概念是等同的。
(3)具體行為:包括下載、更新、卸載3種。
根據(jù)該手機(jī)應(yīng)用市場提供的2014年5月至9月間的用戶使用數(shù)據(jù),可以得出每個應(yīng)用在這段時間的活躍用戶數(shù)目。為了避免個別應(yīng)用用戶數(shù)目少,導(dǎo)致卸載/下載比率以及喜愛率等衡量指標(biāo)不可信的情況,本文只選取活躍用戶數(shù)目不少于50的應(yīng)用作為研究對象。
本文定義了兩種評價用戶偏好的指標(biāo)以及30種可能影響用戶偏好的特征。
卸載/下載比率(ui_ratio):指應(yīng)用在數(shù)據(jù)集范圍內(nèi)的被卸載次數(shù)與被下載次數(shù)的比值。比值越大,說明應(yīng)用越容易被用戶卸載,隱式反映了用戶對于應(yīng)用的偏好。計算公式如下:
喜愛率(like_rate):指對應(yīng)用表示喜歡的用戶數(shù)目占總評價人數(shù)的百分比。該手機(jī)應(yīng)用市場并不采用Google Play那種星級評價模式,而是簡單的二元評價模式。喜愛率越高,說明越受用戶喜愛,顯式反映了用戶對于應(yīng)用的偏好。計算公式如下:
(1)卸載/下載比率
對于被選為研究對象的應(yīng)用,統(tǒng)計出每個應(yīng)用在2014年5月至9月間的被卸載次數(shù)和被下載次數(shù),并求出兩者的比值。
(2)喜愛率
該手機(jī)應(yīng)用市場對于每個上線的應(yīng)用生成了一份單獨的JSON(JavaScript object notation)格式的文件,該格式數(shù)據(jù)中的“l(fā)ikesRate”字段表示用戶對應(yīng)用的喜愛率(百分制),值域為[0,100],對應(yīng)于like_rate的值域[0,1]。like_rate值越接近于1,說明越受用戶喜愛。以“爸爸去哪兒親子寶典”為例,其JSON格式文件如圖1所示,可以得出“爸爸去哪兒親子寶典”的likesRate為80(即like_rate為0.8)。
Fig.1 Data slot of“dadwheregoing”JSON string圖1 “爸爸去哪兒親子寶典”JSON格式數(shù)據(jù)片段
在特征定義方面,本文參考并擴(kuò)展了Lo等人的工作[2],結(jié)合該手機(jī)應(yīng)用市場上的特有信息,本文從7個維度定義了30種特征,分別為應(yīng)用文件規(guī)模(5種)、代碼復(fù)雜度(8種)、代碼庫依賴(4種)、UI(user interface)復(fù)雜度(2種)、最終用戶要求(4種)、市場推廣力(3種)、應(yīng)用市場鑒定信息(4種)。每個特征的具體含義以及解釋見表1。
應(yīng)用文件規(guī)模:在Android應(yīng)用中,APK(Android package)文件不僅包含應(yīng)用的代碼,還包括應(yīng)用所需要的資源文件等。應(yīng)用越大意味著可能包含更多功能特性,因此較大的應(yīng)用很可能有較低的卸載/下載比率和較高的用戶喜愛率。但是,應(yīng)用越大也意味著有更高的代碼缺陷風(fēng)險,因此也有可能會出現(xiàn)較高的卸載/下載比率和較低的用戶喜愛率。
代碼復(fù)雜度:代碼復(fù)雜度越高,應(yīng)用越有可能出現(xiàn)缺陷,這樣用戶在使用應(yīng)用時就容易出現(xiàn)閃退等問題,影響用戶對應(yīng)用的偏好。本文使用Chidamber和Kemerer定義的面向?qū)ο蟮?個復(fù)雜度標(biāo)準(zhǔn)(CK標(biāo)準(zhǔn))[5],外加類的傳入耦合數(shù)目(afferent coupling,CA)[6]和類的public方法數(shù)目(number of public methods,NPM)[7]作為代碼復(fù)雜度的評價標(biāo)準(zhǔn)。
Table 1 Features that potentially affecting preferences of users表1 可能影響用戶偏好的特征
代碼庫依賴:相比于傳統(tǒng)的軟件,Android應(yīng)用更多地依賴于Android基準(zhǔn)庫和第三方庫[8],這就使得Android應(yīng)用的質(zhì)量受到使用庫的影響。如果使用的Android庫和第三方庫質(zhì)量較低,就有可能導(dǎo)致應(yīng)用的部分功能會受限制或者應(yīng)用容易出現(xiàn)崩潰等現(xiàn)象,影響用戶對應(yīng)用的偏好。
UI復(fù)雜度:UI復(fù)雜度過高將影響用戶的使用體驗。例如,有的應(yīng)用反復(fù)提醒一些信息或者總是出現(xiàn)彈出窗口要求用戶填寫信息,給用戶帶來困擾,嚴(yán)重影響用戶對應(yīng)用的評價。
最終用戶要求:對用戶的要求包括多方面,比如對用戶手機(jī)系統(tǒng)的版本要求,很多應(yīng)用會列出要求的最低SDK(software development kit)版本,要求較高的應(yīng)用在低版本的系統(tǒng)上可能無法安裝或是運行時可能會出現(xiàn)閃退和使用不流暢等問題。另外,部分應(yīng)用會要求用戶隱私方面的權(quán)限,這都可能影響用戶對應(yīng)用的偏好。例如,對隱私較為敏感的用戶在遇到使用了其通訊錄信息的應(yīng)用時,很大可能會選擇差評和卸載。
市場推廣力:市場推廣力維度的特征來自應(yīng)用開發(fā)者展示在手機(jī)應(yīng)用市場上用以引導(dǎo)用戶下載的信息。這些信息直接影響了用戶對應(yīng)用的第一印象,從而可能影響用戶對應(yīng)用的評價。本文選用了推廣圖片的張數(shù)、文本描述的長度以及類別標(biāo)簽的個數(shù)來表征這一維度。
應(yīng)用市場鑒定信息:該手機(jī)應(yīng)用市場會對每個應(yīng)用給出概要性的鑒定評價,這些鑒定信息較應(yīng)用開發(fā)者自己的描述來說,更具有客觀性。本文選取是否官方,是否經(jīng)過認(rèn)證,廣告投放情況以及涉及用戶隱私的程度這4個評價標(biāo)準(zhǔn)進(jìn)行探究。
提取特征的流程如圖2所示。整個過程分為四部分:爬取APK和相應(yīng)信息;處理網(wǎng)頁信息和JSON信息;處理AndroidManifest.xml和布局文件;處理class文件和libraries。
Fig.2 Process of extracting features圖2 特征提取流程
(1)爬取APK和相應(yīng)信息
對于每個應(yīng)用,需要爬取它的APK文件、網(wǎng)頁信息和JSON格式信息。該手機(jī)應(yīng)用市場提供了一系列的url規(guī)則可供人們方便地爬取。對于第2章選出的9 795個應(yīng)用,能夠成功爬取的合計5 992個。
(2)處理網(wǎng)頁信息和JSON信息
以“爸爸去哪兒親子寶典”為例,其網(wǎng)頁信息如圖3所示,其JSON格式信息如圖1所示。結(jié)合網(wǎng)頁信息和JSON格式信息,可以提取出應(yīng)用的市場推廣力和應(yīng)用市場鑒定信息等方面的特征。
(3)處理AndroidManifest.xml和布局文件
本文使用經(jīng)典的APK反編譯工具“apktool”(https://code.google.com/p/android-apktool/)來反編譯APK文件,得到AndroidManifest.xml和布局文件。AndroidManifest.xml文件是每個Android程序必須包含的文件,位于整個Android項目的根目錄中,會聲明程序中的activity、service等構(gòu)件,并且會在usespermission中列出程序需要的權(quán)限,在uses-feature中聲明程序會用到的設(shè)備功能。本文使用python中的xml.dom.minidom包解析AndroidManifest.xml后統(tǒng)計得到num_activity、num_service、user-permission和device-feature這4項特征。反編譯得到的/res/layout文件夾中包含的若干XML(extensible markup language)文件稱為Android工程的布局文件。布局文件決定了布局的結(jié)構(gòu),應(yīng)用展現(xiàn)給用戶所有的元素(包括本文特征中涉及的input和output元素)就定義在布局文件中。本文對input和output元素的定義參照ICWE 2014中Taba團(tuán)隊[4]的做法。同樣采用python中的xml.dom.minidom包來解析布局文件,然后逐個查找input和output元素,統(tǒng)計出兩者在布局文件中的平均數(shù)目。
Fig.3 Asample page of anApp圖3 應(yīng)用頁面示例
(4)處理class文件和libraries
諸如代碼復(fù)雜度、代碼庫依賴等特征需要代碼分析后才能得出。本文先使用python中的zipfile包解壓縮APK后提取出classes.dex文件,然后使用“dex2jar2”(https://code.google.com/p/dex2jar)來反編譯classes.dex文件得到應(yīng)用的字節(jié)碼文件(即class文件)。將class文件分成兩類,將包名與AndroidManifest.xml中的package屬性一致的稱為工程類,其余的稱為庫類[9]。統(tǒng)計可得num_class(類的數(shù)目)和num_projectClass(工程類的數(shù)目)。為了正確得到代碼復(fù)雜度等特征,需要先使用經(jīng)驗性方法去除有代碼混淆的應(yīng)用,查找是否有以“a.class”命名的工程類,如果有則說明代碼混淆過[9]。爬取成功的5 992個應(yīng)用中,反編譯成功并且無代碼混淆的合計3 180個,這些應(yīng)用將作為接下來的研究對象。
為了計算代碼復(fù)雜度,本文選用“ckjm”工具[10],綜合考慮工程類和庫類,在class的級別上分析代碼復(fù)雜度。為了計算庫依賴相關(guān)的特征,需要提取出工程代碼和庫代碼之間的依賴關(guān)系。本文采用BCEL(http://commons.apache.org/proper/commons-bcel/)來將字節(jié)碼文件轉(zhuǎn)化為一條條JVM(Java virtual machine)指令,然后從JVM指令中識別出方法調(diào)用,并區(qū)分調(diào)用的是Android庫還是第三方庫。調(diào)用方法如果以“android”開頭,則認(rèn)為是Android庫,否則如果不是自身定義的函數(shù),即認(rèn)為是第三方庫[2]。
本文旨在幫助應(yīng)用開發(fā)者在早期預(yù)測未來用戶對于該應(yīng)用的偏好(卸載/下載比率及喜愛率),從而有針對性地做出調(diào)整。基于前文已經(jīng)得到的研究對象及其特征,本文訓(xùn)練出預(yù)測模型,并且檢驗?zāi)P偷男Ч?/p>
對于卸載/下載比率以及喜愛率的模型訓(xùn)練,整體上方法相同,將比率值用K-means算法分為高、低兩類,選用隨機(jī)森林算法訓(xùn)練分類器模型,并用五折交叉驗證模型的效果。本文并未采取將比率值按從低到高排序,然后選取頭部和尾部的若干樣本作為高、低兩類樣本的做法[2],而是采用主流的原型聚類方法K-means算法,主要是為了保留樣本的原始分布情況。
本文接下來將介紹評價模型的標(biāo)準(zhǔn),然后分別以卸載/下載比率和喜愛率作為預(yù)測目標(biāo),訓(xùn)練模型,得出各自模型的效果,并且分析出顯著影響卸載/下載比率以及喜愛率的特征。
本文使用二類分類器區(qū)分比率值是高或低。假設(shè)將比率值分為{high,low}兩類,對應(yīng)的混淆矩陣見表2,預(yù)測結(jié)果共分4種情況:
(1)實際為low類,預(yù)測為low類,假設(shè)這樣的情況有TL(true low)個;
(2)實際為low類,預(yù)測為high類,假設(shè)這樣的情況有FH(false high)個;
(3)實際為high類,預(yù)測為low類,假設(shè)這樣的情況有FL(false low)個;
(4)實際為high類,預(yù)測為high類,假設(shè)這樣的情況有TH(true high)個。
本次實驗選取了acc、acc_high、acc_low、g共4個評價標(biāo)準(zhǔn)來評判模型的效果,下面介紹每種評價標(biāo)準(zhǔn)及其計算方法。
Table 2 Confusion matrix表2 混淆矩陣
(1)acc表示整個模型的準(zhǔn)確率(accuracy),值域為[0,1],越接近于1說明整個模型的準(zhǔn)確率越高。計算公式為:
(2)acc_high表示對于實際分類為high的樣本的預(yù)測準(zhǔn)確率(accuracy of high examples),值域為[0,1],越接近于1說明整個模型對于實際分類為high樣本的預(yù)測能力越強(qiáng)。計算公式為:
(3)acc_low表示對于實際分類為low的樣本的預(yù)測準(zhǔn)確率(accuracy of low examples),值域為[0,1],越接近于1說明整個模型對于實際分類為low樣本的預(yù)測能力越強(qiáng)。計算公式為:
(4)g表示acc_high和acc_low的幾何平均值,即代表了整個模型在實際分類為high的樣本和實際分類為low的樣本上的總體表現(xiàn)。如果一個模型只是在一種樣本上預(yù)測準(zhǔn)確率很高,在另一種樣本上預(yù)測準(zhǔn)確率很低,那么g值也會偏低。g的值域為[0,1],越接近于1說明整個模型對于high和low兩類的均衡預(yù)測能力越強(qiáng)。計算公式為:
本節(jié)選用卸載/下載比率作為衡量用戶對應(yīng)用偏好的指標(biāo)。對于上文去混淆后得到的3 180個應(yīng)用,獲得其卸載/下載比率(ui_ratio),使用R語言中自帶的K-means函數(shù)將其分為高、低兩類,具體分布見表3。此時存在兩個類別的樣本數(shù)目相差較大的情況,即存在類別不平衡,會對學(xué)習(xí)結(jié)果產(chǎn)生不良影響。假設(shè)訓(xùn)練得到的分類器永遠(yuǎn)將新樣本預(yù)測為低ui_ratio,雖然達(dá)到接近90%的準(zhǔn)確率,但是這樣的分類器卻沒有價值,因為它不能正確預(yù)測出任何應(yīng)為高ui_ratio的樣本。本文采用兩種處理類別不平衡問題的方法:“欠采樣”(undersampling)和“過采樣”(oversampling)[11]。
Table 3 Distribution of ui_ratio表3 ui_ratio的樣本分布情況
欠采樣,即去除樣本數(shù)較多的類(低ui_ratio)中的部分樣本,使得兩類樣本數(shù)目接近。本文采用WWW 2016中一篇論文的做法[12],去除低ui_ratio的樣本中的噪音點、邊界點和冗余點[13],從而使兩類樣本數(shù)目達(dá)到均衡。將篩選后得到的樣本集分成5個子集,進(jìn)行五折交叉驗證,即每次選用4個子集投入隨機(jī)森林中進(jìn)行訓(xùn)練,用剩下的1個子集來驗證,重復(fù)5次。使用本文定義的評價標(biāo)準(zhǔn)進(jìn)行評估,5次結(jié)果數(shù)據(jù)如表4所示,對應(yīng)的箱線圖如圖4所示。
模型的整體準(zhǔn)確率acc和兩類樣本的均衡準(zhǔn)確率g達(dá)到了80%至85%之間,模型的預(yù)測效果較好。
過采樣即增加一些高ui_ratio的樣本,使得高、低兩類樣本數(shù)目接近,然后再進(jìn)行學(xué)習(xí)。本文將高ui_ratio的樣本重復(fù)拷貝直到與低ui_ratio的樣本數(shù)大致持平。五折交叉驗證后得到的實驗數(shù)據(jù)如表5所示,對應(yīng)的箱線圖如圖5所示。
Table 4 Result of ui_ratio after undersampling表4 ui_ratio欠采樣后實驗結(jié)果
Fig.4 Boxplot of ui_ratio after undersampling圖4 ui_ratio欠采樣實驗結(jié)果箱線圖
Table 5 Result of ui_ratio after oversampling表5 ui_ratio過采樣后實驗結(jié)果
模型的整體準(zhǔn)確率acc和兩類樣本的均衡準(zhǔn)確率g能達(dá)到了98%至99%之間,模型的預(yù)測效果很好。
本文為了找出顯著影響卸載/下載比率(ui_ratio)的特征,選用Mann-Whitney U test找出在p-value=0.01時,兩類樣本在哪些特征上有顯著區(qū)別[2]。檢驗結(jié)果如表6所示,共有16種特征對卸載/下載比率有顯著影響(p-value<0.01)。
Fig.5 Boxplot of ui_ratio after oversampling圖5 ui_ratio過采樣實驗結(jié)果箱線圖
Table 6 Result of Mann-Whitney U test based on ui_ratio表6 基于ui_ratio的曼惠特尼U檢驗結(jié)果
本節(jié)選用喜愛率(like_rate)作為衡量用戶對應(yīng)用偏好的指標(biāo)。對于上文去混淆后得到的3 180個應(yīng)用,為了保證評價結(jié)果的可靠性,按照評價人數(shù)進(jìn)行篩選,只選取評價人數(shù)不少于5人的應(yīng)用作為研究喜愛率的對象,合計1 453個。獲得其喜愛率(like_rate),用K-means算法將其分為高、低兩類,分布見表7。其中高、低兩類也存在較明顯的樣本數(shù)目不平衡的現(xiàn)象。和上文做同樣處理,使用欠采樣和過采樣兩種方法來改善樣本中各類的占比。
Table 7 Distribution of like_rate表7 like_rate的樣本分布情況
采取和4.1.1小節(jié)同樣的做法,去除噪音點、邊界點和冗余點直到兩類樣本數(shù)目大致相同。將欠采樣后得到的樣本集分成5個子集,進(jìn)行五折交叉驗證。使用本文定義的評價標(biāo)準(zhǔn)進(jìn)行評估,5次結(jié)果數(shù)據(jù)如表8所示,對應(yīng)的箱線圖如圖6所示。
Table 8 Result of like_rate after undersampling表8 like_rate欠采樣后實驗結(jié)果
模型的整體準(zhǔn)確率acc和兩類樣本的均衡準(zhǔn)確率g均處于65%以下,模型的預(yù)測效果欠佳。
采用和4.1.2小節(jié)同樣的方法,將低like_rate的樣本重復(fù)拷貝直到與高like_rate的樣本數(shù)大致持平,以此作為實驗數(shù)據(jù)集。五折交叉驗證得到的結(jié)果數(shù)據(jù)如表9所示,對應(yīng)的箱線圖如圖7所示。
模型的整體準(zhǔn)確率acc和兩類樣本的均衡準(zhǔn)確率g達(dá)到了85%左右,模型的預(yù)測效果較好。
Fig.6 Boxplot of like_rate after undersampling圖6 like_rate欠采樣實驗結(jié)果箱線圖
Table 9 Result of like_rate after oversampling表9 like_rate過采樣后實驗結(jié)果
Fig.7 Boxplot of like_rate after oversampling圖7 like_rate過采樣實驗結(jié)果箱線圖
采用和4.1.3小節(jié)中同樣的做法,得到20種特征對喜愛率有顯著影響(p-value=0.01),如表10所示。
本節(jié)主要描述了模型訓(xùn)練和模型評價的過程,并且探究了顯著影響卸載/下載比率及喜愛率的特征。
模型訓(xùn)練的整個過程分為:使用K-means算法將卸載/下載比率及喜愛率各自分為高、低兩類;使用五折交叉驗證,將數(shù)據(jù)集分成5個子集,每次選4個作為訓(xùn)練集,將其卸載/下載比率或喜愛率和每個應(yīng)用的30種特征值放入模型中進(jìn)行學(xué)習(xí);選用剩下的1個子集作為測試集,將測試集中每個應(yīng)用的30種特征值放入模型中,給出這個應(yīng)用的分類結(jié)果,即屬于高或低卸載/下載比率(或喜愛率);根據(jù)測試集中每個應(yīng)用的真實類別和被預(yù)測出的類別,算出模型整體的預(yù)測準(zhǔn)確率、高一類樣本的預(yù)測準(zhǔn)確率、低一類樣本的預(yù)測準(zhǔn)確率以及兩類樣本的均衡準(zhǔn)確率。因為卸載/下載比率(或喜愛率)高和低的樣本數(shù)目不均衡,采用欠采樣和過采樣兩種方法來調(diào)整樣本,所以共訓(xùn)練出4個模型,分別為欠采樣卸載/下載比率預(yù)測模型、過采樣卸載/下載比率預(yù)測模型、欠采樣喜愛率預(yù)測模型、過采樣喜愛率預(yù)測模型。4個模型中除了欠采樣喜愛率預(yù)測模型預(yù)測效果欠佳以外,其余效果較好。
應(yīng)用開發(fā)者除了關(guān)心用戶對于自己應(yīng)用的偏好外,還會關(guān)心哪些因素會對用戶偏好有影響。針對這一問題,本文探究了定義的30種特征中哪些與卸載/下載比率(ui_ratio)及喜愛率(like_rate)顯著相關(guān),結(jié)果如圖8所示。
Table 10 Result of Mann-Whitney U test based on like_rate表10 基于like_rate的曼惠特尼U檢驗結(jié)果
本文使用的特征中“是否經(jīng)過認(rèn)證”、“用戶許可的等級”等在不同手機(jī)應(yīng)用市場的評價標(biāo)準(zhǔn)有所不同,使用該手機(jī)應(yīng)用市場數(shù)據(jù)的分析結(jié)論可能在其他應(yīng)用市場上不完全成立。另一方面,不同國家用戶在評價應(yīng)用的行為上有不同的傾向,比如美國用戶偏愛醫(yī)療類應(yīng)用,日本和澳大利亞用戶較少評分等[14]。該手機(jī)應(yīng)用市場主要覆蓋中國用戶,故本文結(jié)論可能無法適用于其他國家或地區(qū)。
另外,本文使用的是某手機(jī)應(yīng)用市場5個月內(nèi)的用戶使用數(shù)據(jù),手機(jī)移動應(yīng)用的更新頻率較高,因此無法保證對于同一個應(yīng)用,每個用戶在這5個月內(nèi)都是使用同一版本。同一應(yīng)用的不同版本存在代碼上的差異,提取出的部分特征可能有所不同;并且同一應(yīng)用的不同版本給用戶帶來的使用體驗不同,也會造成用戶偏好上的差異。
最后需要強(qiáng)調(diào)的是,本文在甄別顯著“影響”用戶偏好的特征時,進(jìn)行的是相關(guān)性分析(correlation analysis),而非因果分析(causality analysis)。例如,APK文件的大小與用戶的使用偏好之間存在較為顯著的相關(guān)性,但這并不說明APK文件大小與用戶的使用偏好之間存在因果關(guān)聯(lián)。換言之,本文并不能直接得出“APK文件大小是用戶使用行為偏好的決定因素”這一結(jié)論。該問題同樣存在于其他諸多相關(guān)工作[2,4]中。盡管如此,本文所發(fā)現(xiàn)的App各個特征與用戶偏好之間的相關(guān)性仍然值得應(yīng)用開發(fā)者關(guān)注。
Fig.8 Features that notably affecting ui_ratio and like_rate圖8 顯著影響ui_ratio和like_rate的特征
Fu團(tuán)隊在KDD 2013發(fā)表的文章[15]中探究了用戶評論和應(yīng)用得分之間的關(guān)系,并試圖通過用戶的單個評論預(yù)測該用戶對于這個應(yīng)用的評分。但剛上線的應(yīng)用和上線很久卻鮮有人評論的應(yīng)用,因為缺乏評論,無法有效利用這種方法預(yù)測出用戶的評分,從而不能得出用戶對這些應(yīng)用的偏好。而本文基于應(yīng)用本身的特征來訓(xùn)練模型,不依賴于用戶后期的使用和評論反饋,從而有效規(guī)避了這一問題。
Lo團(tuán)隊在ICSME 2015發(fā)表的文章[2]中,從應(yīng)用本身的特征出發(fā),對應(yīng)用的評分進(jìn)行預(yù)測,并探究了Google Play上的高分應(yīng)用有哪些顯著的特征。該文章僅僅選用用戶的評分作為評價用戶偏好的指標(biāo),存在一定的局限性,例如一些應(yīng)用存在“刷分”現(xiàn)象,使得其評分并不能代表用戶對它的真實態(tài)度。本文在考慮用戶喜愛率的同時,綜合考慮了用戶對應(yīng)用的使用行為,即卸載、下載情況,更為客觀地表征了用戶偏愛。
Liu團(tuán)隊在WWW 2016發(fā)表的文章[16]中選用用戶行為作為客觀的評價指標(biāo)來反映用戶對應(yīng)用的實際態(tài)度,通過對下載、卸載行為建模來衡量應(yīng)用的受歡迎程度。該文章考慮了用戶的真實管理行為,但是與Fu團(tuán)隊的工作[15]一樣,依賴于用戶對應(yīng)用的后期使用,無法幫助應(yīng)用開發(fā)者在早期預(yù)測出用戶的偏好。
近年來,隨著Android手機(jī)應(yīng)用數(shù)目的持續(xù)大量增長,一些學(xué)者開始研究Android手機(jī)應(yīng)用的評論和評分,或是用戶的使用行為和評分之間的關(guān)系,也有一些學(xué)者開始探究影響Android手機(jī)應(yīng)用評分的因素?;诂F(xiàn)有工作,本文綜合考慮用戶的下載卸載行為、用戶對應(yīng)用的喜愛率以及影響Android應(yīng)用的特征,進(jìn)行了一系列探究。
本文以用戶對應(yīng)用的偏好為切入點,選取卸載/下載比率和喜愛率作為衡量指標(biāo),利用國內(nèi)某知名手機(jī)應(yīng)用市場上的大規(guī)模真實用戶數(shù)據(jù),選取部分手機(jī)應(yīng)用作為研究對象,定義和提取了30種可能影響用戶對應(yīng)用的偏好的特征,訓(xùn)練出預(yù)測手機(jī)應(yīng)用的卸載/下載比率和喜愛率高低的模型,模型效果符合預(yù)期。
另外,本文從定義的30種特征中探究出顯著影響卸載/下載比率和喜愛率的特征。對于那些被預(yù)測出高卸載/下載比率或者是低喜愛率的應(yīng)用來說,開發(fā)者可以重點關(guān)注這些特征,有針對性地改進(jìn)自己的應(yīng)用。
[1]Li Huoran,Lu Xuan,Liu Xuanzhe,et al.Characterizing smartphone usage patterns from millions of Android users[C]//Proceedings of the 2005 Internet Measurement Con-ference,Tokyo,Oct 28-30,2015.New York:ACM,2015:459-472.
[2]Tian Yuan,Nagappan M,Lo D,et al.What are the characteristics of high-rated apps?A case study on free Android applications[C]//Proceedings of the 31st International Conference on Software Maintenance and Evolution,Bremen,Germany,Sep 29-Oct 1,2015.Washington:IEEE Computer Society,2015:301-310.
[3]Subramanyam R,Krishnan M S.Empirical analysis of CK metrics for object-oriented design complexity:implications for software defects[J].IEEE Transactions on Software Engineering,2003,29(4):297-310.
[4]Taba S E S,Keivanloo I,Zou Ying,et al.An exploratory study on the relation between user interface complexity and the perceived quality[C]//LNCS 8541:Proceedings of the 14th International Conference on Web Engineering,Toulouse,France,Jul 1-4,2014.Berlin,Heidelberg:Springer,2014:370-379.
[5]Chidamber S R,Kemerer C F.A metrics suite for object oriented design[J].IEEE Transactions on Software Engineering,1994,20(6):476-493.
[6]Martin R.OO design quality metrics—an analysis of dependencies[C]//Proceedings of the 1994 Workshop Pragmatic and Theoretical Directions in Object-Oriented Software Metrics,Oregon,USA,Oct 23-27,1994.New York:ACM,1994:151-170.
[7]Bansiya J,Davis C G.A hierarchical model for objectoriented design quality assessment[J].IEEE Transactions on Software Engineering,2002,28(1):4-17.
[8]Syer M D,Adams B,Zou Ying,et al.Exploring the development of micro-apps:a case study on the BlackBerry and Android platforms[C]//Proceedings of the 11th Working Conference on Source Code Analysis and Manipulation,Williamsburg,USA,Sep 25-26,2011.Washington:IEEE Computer Society,2011:55-64.
[9]Linares-Vásquez M,Holtzhauer A,Bernal-Cardenas C,et al.Revisiting Android reuse studies in the context of code obfuscation and library usages[C]//Proceedings of the 11th Working Conference on Mining Software Repositories,Hyderabad,India,May 31-Jun 1,2014.New York:ACM,2014:242-251.
[10]Spinellis D.Tool writing:a forgotten art?(software tools)[J].IEEE Software,2005,22(4):9-11.
[11]Zhou Zhihua.Machine learning[M].Beijing:Tsinghua University Press,2016.
[12]Qiu Jiezhong,Li Yixuan,Tang Jie,et al.The lifecycle and cascade of WeChat social messaging groups[C]//Proceedings of the 25th International Conference on World Wide Web,Montreal,Canada,Apr 11-15,2016.New York:ACM,2016:311-320.
[13]Kubat M,Matwin S.Addressing the curse of imbalanced training sets:one-sided selection[C]//Proceedings of the 14th International Conference on Machine Learning,Nashville,USA,Jul 8-12,1997.San Mateo,USA:Morgan Kaufman,1997:179-186.
[14]Lim S L,Bentley P J,Kanakam N,et al.Investigating country differences in mobile App user behavior and challenges for software engineering[J].IEEE Transactions on Software Engineering,2015,41(1):40-64.
[15]Fu Bin,Lin Jialiu,Li Lei,et al.Why people hate your App:making sense of user feedback in a mobile App store[C]//Proceedings of the 19th International Conference on Knowledge Discovery and Data Mining,Chicago,USA,Aug 11-14,2013.New York:ACM,2013:1276-1284.
[16]Li Huoran,Ai Wei,Liu Xuanzhe,et al.Voting with their feet:inferring user preferences from App management activities[C]//Proceedings of the 25th International Conference on World Wide Web,Montreal,Canada,Apr 11-15,2016.New York:ACM,2016:1351-1362.
附中文參考文獻(xiàn):
[11]周志華.機(jī)器學(xué)習(xí)[M].北京:清華大學(xué)出版社,2016.
CHEN Zhenpeng was born in 1994.He is an M.S.candidate at School of Electronics Engineering and Computer Science,Peking University,and the student member of CCF.His research interests include data analysis and mobile computing,etc.
陳震鵬(1994—),男,江蘇如皋人,北京大學(xué)信息科學(xué)技術(shù)學(xué)院碩士研究生,CCF學(xué)生會員,主要研究領(lǐng)域為數(shù)據(jù)分析,移動計算等。
LU Xuan was born in 1991.She is a Ph.D.candidate at School of Electronics Engineering and Computer Science,Peking University,and the student member of CCF.Her research interests include mobile computing and software analysis,etc.
陸璇(1991—),女,江蘇如皋人,北京大學(xué)信息科學(xué)技術(shù)學(xué)院博士研究生,CCF學(xué)生會員,主要研究領(lǐng)域為移動計算,軟件分析等。
LI Huoran was born in 1992.He is a Ph.D.candidate at School of Electronics Engineering and Computer Science,Peking University,the student member of CCF.His research interests include mobile computing,software engineering,data analysis and human-computer interaction,etc.
李豁然(1992—),男,北京人,北京大學(xué)信息科學(xué)技術(shù)學(xué)院博士研究生,CCF學(xué)生會員,主要研究領(lǐng)域為移動計算,軟件工程,數(shù)據(jù)分析,人機(jī)交互等。
User Preferences Prediction Based on Multidimensional Features ofApps*
CHEN Zhenpeng1,2,LU Xuan1,2,LI Huoran1,2,LIU Xuanzhe1,2+
1.Key Lab of High Confidence Software Technologies(Peking University),Ministry of Education,Beijing 100871,China 2.Peking University Information Technology Institute(Tianjin Binhai),Tianjin 300450,China
In recent years,the rapid development of smartphones has brought an explosion of mobile applications(a.k.a.Apps).Thus,it would be of App developers’interest to predict user preferences of their Apps in advance.This paper leverages the uninstallation/installation ratio as an implicit indicator and the favorable rating as an explicit one of user preferences.User-activity data involved in this research is collected from a popular App store in China,spanning five months from May to September,2014.9795 Apps are selected,each covering no less than 50 active users.This paper employs 30 features from 7 dimensions that might be correlated with user preferences,and extracts these features from the 9795 Apps.Then,this paper builds Random-Forest classifiers to distinguish Apps between high and low uninstallation/installation ratios,and Apps between high and low favorable ratings.In addition,this paper finds the variables,which can notably influence uninstallation/installation ratio and favorable rating,out of the 30 features involved.
the Ph.D.degree from School of Electronics Engineering and Computer Science,Peking University.Now he is an associate professor at Software Institute,School of Electronics Engineering and Computer Science,Peking University,and the member of CCF.His research interests include mobile computing,Web system,big data and program analysis,etc.
2016-08, Accepted 2016-10.
A
TP311
劉譞哲(1980—),男,甘肅蘭州人,北京大學(xué)信息科學(xué)技術(shù)學(xué)院副教授,CCF會員,主要研究領(lǐng)域為移動計算,Web系統(tǒng),大數(shù)據(jù),程序分析等。發(fā)表學(xué)術(shù)論文50余篇,承擔(dān)過國家973計劃、863計劃、自然科學(xué)基金等多個項目,獲教育部科技進(jìn)步一等獎。
+Corresponding author:E-mail:liuxuanzhe@pku.edu.cn
CHEN Zhenpeng,LU Xuan,LI Huoran,et al.User preferences prediction based on multidimensional features ofApps.Journal of Frontiers of Computer Science and Technology,2017,11(9):1405-1417.
10.3778/j.issn.1673-9418.1609029
*The National Natural Science Foundation of China under Grant No.61370020(國家自然科學(xué)基金青年-面上連續(xù)資助項目);the National Natural Science Foundation of China under Grant No.61421091(國家自然科學(xué)基金創(chuàng)新研究群體項目);the National High Technology Research and Development Program of China under Grant No.2015AA01A202(國家高技術(shù)研究發(fā)展計劃(863計劃)).
CNKI網(wǎng)絡(luò)優(yōu)先出版: 2016-10-31, http://www.cnki.net/kcms/detail/11.5602.TP.20161031.1652.026.html
Key words:AndroidApps;App features;user preferences