當前位置:
首頁 > 最新 > 基於大規模應用商店數據的App使用模式研究

基於大規模應用商店數據的App使用模式研究

2018年4月,北京大學劉譞哲副教授團隊的論文《Understanding diverse usage patterns from large-scale appstore-service profiles》被選為軟體工程領域頂級學術期刊TSE(IEEE Transactions on Software Engineering)亮點文章(Spotlight Paper)。自去年3月在線預發表(online access, DOI: 10.1109/TSE. 2017. 2685387)以來,該論文得到了相關領域研究者的高度關注,短期內被下載數百次。本文將簡介該工作的研究內容和發現,希望能為軟體工程研究提供一些可能有用的啟示和建議。

圖1劉譞哲副教授團隊論文被選為TSE亮點文章

研究背景

自2007年蘋果發布第一代iPhone以來,移動設備和移動應用開始大規模流行,軟體行業亦隨之發生演變。其中一項重大變化就是在線應用商店的出現和發展,以及圍繞應用商店形成的包含移動應用開發者、應用商店運營者、終端用戶、網路運營商、廣告商等多種角色在內的新型的「移動應用生態系統」。在這一生態系統中的不同角色,以及相關的軟體工程研究都面臨著新的機遇和挑戰。

為了深入理解以應用商店為中心的移動應用生態系統,本文使用應用商店中千萬級的應用和用戶行為數據,綜合運用多項數據挖掘技術和數據分析方法,從多個角度入手,對包括應用流行度、應用管理行為和網路使用情況在內的應用使用行為進行實證研究。特別地,基於實證研究中獲得的知識,本文充分討論了移動計算環境下的軟體工程研究能從中獲得的啟示和建議,包括提升應用商店管理效率、避免設備額外資源消耗、解決特定設備問題、理解用戶多樣性需求、尋求應用潛在盈利方式等。

數據集

本文使用的數據集來自第三方Android應用商店豌豆莢,其中包括兩種類型的數據:一是涵蓋1700萬用戶的應用管理行為數據,包括下載、更新和卸載行為;二是來自600多萬用戶的網路使用數據。數據覆蓋範圍為2014年5月1日至9月30日。為了分析的可靠性,我們僅選取豌豆莢的活躍用戶,這部分用戶在研究區間里使用豌豆莢超過120天。數據集中包括來自19個類別的28萬多Android應用。除此之外,我們還獲取了應用的評分信息和用戶的設備信息。

研究內容

由於篇幅有限,以下列出論文中的主要發現,並以Finding首字母F編號。具體研究細節請參看論文原文。

F1:應用的受歡迎程度基本遵從帕累托法則(Pareto』s Principle),下載量和用戶數的分布遵從冪律(Power Law)。

圖2不同下載量的應用數量分布符合冪律

F2:包括下載、更新、卸載在內的應用管理行為表現出以天為單位的周期性特徵。

圖3應用管理行為分布

F3:從應用安裝行為來看,用戶經常同時安裝來自某些類別的應用,例如COMMUNICATION類和TOOL類。此外,用戶經常安裝來自同一廠商或同一類別的應用。

圖4不同類別應用共同安裝情況

F4:應用的下載/卸載比例與其生命周期之間存在弱的正相關。大部分被卸載的應用經常在安裝1.5天後被卸載。

圖5下卸比與生命周期

F5:應用的用戶數、下載數、卸載數與用戶評分之間都不存在顯著相關,這與前人的研究結論並不一致。對於評論較為稀疏的應用,需要新的指標來衡量用戶態度。

F6:大量應用在非使用期間會保持長時間的TCP連接,而這種後台網路連接是否合理需要進一步研究。

F7:一些應用會在後台消耗大量的網路流量,如何去辨別這類流量消耗是否合理具有挑戰性。

圖6各類應用的後台流量消耗

F8:Android碎片化問題非常嚴重,本文所使用的數據集中就出現了19000多種Android設備。

圖7不同設備的獨立用戶數分布

F9:用戶的設備選擇與應用選擇之間存在顯著相關,表明設備選擇能夠體現出用戶的不同需求。

F10:一些應用在某些特定的設備上更容易被卸載,這體現出用戶對一些預裝應用的負面態度,或表明這些應用在特定設備上存在某種問題。

F11:用戶的設備選擇與不同類型網路下的訪問時間之間存在顯著相關。例如,高端設備的用戶重度依賴Wi-Fi網路,而低端設備用戶更多使用蜂窩網路。

F12:持有不同設備的用戶對同類別的不同應用具有不同偏好。例如,低端設備用戶在瀏覽器應用中偏好Opera Mini瀏覽器,很可能因為該瀏覽器號稱能夠節省網路流量。

圖8不同用戶組隊同類應用的偏好

一些啟示和建議

通過多維度的深入分析,我們從大規模用戶行為數據中獲取了大量模式特徵,這些特徵為移動應用的開發、維護、管理帶來一些新的啟示,對移動計算環境下軟體工程的研究也提出了新的挑戰和機遇。基於上述F1-F12這12項發現,我們從以下五個方面進行具體闡述。

1.提升應用商店管理效率

應用商店在移動應用生態系統中扮演至關重要的角色。本文的研究成果能夠為提升應用商店推薦質量和性能提供參考,幫助應用商店解決負載優化、應用推薦、排名預測等方面的實際問題。

1)優化應用商店工作負載

基於對用戶請求分布情況的分析,可以為伺服器工作負載與內容分發提供優化建議。根據F1和F3,應用流行度分布符合冪律,且不同應用之間的共同安裝行為也存在一定的規律。我們結合這兩點發現,在伺服器端模擬不同緩存方式的負載及性能。

為了簡化,本文假設每個應用的大小相同,並以應用的數量作為緩存大小的度量。首先考慮以下三種傳統的高速緩存(Cache)結構,通過重複一周連續的下載與更新軌跡進行模擬。

第一種是基於冪律的靜態有限高速緩存機制(Static Finite Cache)。在第天,基於冪律選取覆蓋了下載量和更新量95%的8260個應用,將.apk文件放置在高速緩存中,在一星期中保持不變。

第二種是動態無限高速緩存機制(Dynamic Infinite Cache)。在第天,將之前所有被請求過的應用都放在高速緩存中,並在模擬過程中將新的被請求的應用也放入高速緩存。

第三種是基於共同安裝模式與最近最少使用(LRU)的有限高速緩存機制(Co-Installed and LRU-based Cache)。在第天,在高速緩存中放入共同安裝可能性較高的應用對;在模擬過程中,對於最近最少使用的應用對,用每天共同安裝可能性更高的應用對進行替換。

表1高速緩存性能比較

對以上三種類型的Cache性能的測試結果如上表所示。其中,動態無限高速緩存命中率(Hit Ratio)最高,但需要的緩存空間太大。靜態有限高速緩存也能夠達到大約95%的命中率,而基於共同安裝模式與最近最少使用(LRU)的有限高速緩存機制效果最差。

為了平衡命中率與Cache大小,本文綜合冪律與共同安裝模式,設計了一種可適應性複合有限高速緩存機制(Adaptive Hybrid Finite Cache)。在第天,高速緩存中放置最為流行的應用安裝文件,並為兩類應用預留額外空間:(1)每天佔據95%下載與更新的應用;(2)每天共同安裝可能性較高的應用對。在模擬過程中的每一天,高速緩存按照最近最少使用原則進行更新。實驗發現,這一緩存機制需要的空間大約是第一種和第三種的兩倍,而命中率顯著增加到超過97%。這一複合緩存機制綜合了兩種傳統機制的優點。假設.apk文件平均大小為10MB,實現複合緩存的單個CDN節點通常需要150GB的空間。考慮到對同一個應用同時會有多個請求,需要為最常被請求的應用提供更多的拷貝,因此實際的緩存會佔更多的空間。

以上的複合緩存機制還可以結合F2進行進一步的優化,使得伺服器端動態適應不同地區與時段中不同密度的用戶請求。此外,通過進一步研究用戶下載、更新應用的時間序列特徵,還可以通過預取等方式提升用戶下載體驗。

2)提升應用推薦演算法

應用商店的一項基本功能是為終端用戶合理推薦高質量的應用。推薦系統能夠幫助應用開發者提升應用流行度,也可以識別用戶興趣偏好。例如可以根據用戶的已裝應用,為其推薦經常一起被安裝的其它應用(F3)。此外,如果一個應用被某一類型用戶大量下載,那麼同一類型的用戶也可能對其感興趣。例如F9顯示不同設備用戶對相似應用有著不同的偏好,而據了解豌豆莢、Google Play、騰訊應用寶等常見應用商店中尚未在應用推薦系統中運用這一規律。由於大部分移動端應用商店能夠獲取手機設備信息,我們的發現可以幫助他們更加精準地獲取用戶。

推薦演算法中可能考慮應用的下載情況,而虛假下載行為會對演算法結果產生負面影響。根據F1,通過用戶的平均下載量可以對虛假下載行為進行檢測。例如,一個只有18個獨立用戶的應用卻有3581次下載和更新,且其中的3563次下載來自同一個用戶,則可以認為出現了虛假下載行為。對於收集此類信息的應用商店,可以對少量用戶短期內的大量下載行為進行監測。

3)預測應用排名

下載量和評分是應用商店對應用進行排名的主要依據,然而這一做法存在其局限性。一方面,相對於下載量,下載/卸載比與應用生命周期能夠更為準確地衡量應用;另一方面,應用評分與應用排名之間並非總是存在相關性。

為此,我們設計出預測應用流行度的新指標。用戶行為並非是互相獨立的,它們通常以事件序列的方式存在。當搜索引擎利用不同的用戶行為作為文件相關性的隱性反饋時,行為序列能比單個點擊行為提供更多的信息。作為類比,相對於下載量,應用管理行為的序列模式可能是更好的應用質量評價指標。我們2016年發表於WWW大會的工作[1]就是從用戶的應用管理行為中挖掘與評分相關的序列模式,通過Lasso、Random Forest、GBRT等機器學習演算法,找到能夠準確預測應用排名的模式,這些模式還可以用來有效預測新的高質量應用。研究表明應用管理序列可以有效地反映用戶態度。由於用戶評論很稀疏,甚至有些應用沒有評分,這一方法可以幫助應用商店進行應用排名,同時幫助開發者估算潛在收益。未來可以考慮進一步將深度學習技術運用在用戶行為數據上。

2.避免設備額外資源消耗

從F7可知,移動應用普遍存在後台數據流量,且可能與應用聲明的功能不符。進一步地,F6表明大多數應用會在後台保持長時間的TCP連接。這些發現表明目前大部分Android應用即使被切換到後台依然能夠停留在內存中。為了快速喚醒應用恢復網路連接,這類後台網路連接可能是有用的。然而,後台連接會佔用設備內存,對系統性能產生影響。實際上,很多用戶對Android設備響應交互速度變慢頗有怨言。研究長時間後台網路連接是否影響交互性能將是一個有趣的研究課題。我們在WWW 2017的工作[3]對豌豆莢、百度、騰訊的第三方應用商店中的1000個應用進行了實證研究,發現一些應用之間存在互相喚醒行為,即,應用會在用戶不知情的情況下在後台互相喚醒。互相喚醒行為帶來的計算資源和能源上的隱形代價非常顯著,終端用戶可以考慮使用工具來定期清理設備中的應用或終結後台中運行的應用。

這些後台喚醒的應用會為用戶帶來數據流量和電量等方面的隱形開銷,而如何衡量這些開銷的必要性則需要有效的解決方案。相關研究表明這類開銷可能來自不合理的應用許可權、API使用、第三方廣告庫等等,但僅僅通過靜態分析來辨別這些開銷是否惡意並不足夠。有時多餘的數據開銷可能並非出於惡意,例如開發者可能是為了收集地點信息以提供基於情境的廣告。將用戶行為數據與多種分析方法包括自然語言處理、靜態代碼分析、庫分析、網路軌跡分析等結合起來進而深入理解應用語義,全面衡量開銷與應用功能之間的關係,將是一種可能的解決方案。此外,研究者可以考慮提供一種輕量級的系統服務以識別必要功能與其它功能的不同開銷,並將這類信息提供給終端用戶,由用戶來決定是否停用某些功能來避免某些不必要的開銷。當然,由於不同功能之間可能會相互影響,這一方案實施難度較大。我們的研究提供了一組具有可觀後台流量的應用,研究者可以從這些應用入手開展研究。

在實際操作中,我們基於上文的發現,將後台移動流量作為檢測可疑應用的指標。例如,我們近期的工作[2]發現某鬧鐘應用每天在後台消耗13MB的移動流量,而某手電筒應用每天在後台消耗7MB的流量。豌豆莢將這些應用放入觀測名單,進行了更為深入的分析,並根據分析情況進行下架管理。

由於用戶可能會因為額外開銷給應用較低的評分,甚至卸載應用,開發者應當有針對性地對應用進行優化。例如從更細粒度配置網路連接,在蜂窩網路下關閉後台數據,或通過彈窗等形式向用戶顯式告知此類潛在開銷。

3.解決特定設備問題

根據F10,有一些應用在某些設備上更容易被卸載,意味著在這些設備上可能存在諸如硬體、驅動或API方面的兼容性問題。例如,按照StackOverflow的報告,在Samsung Galaxy Note2上存在一些與相機相關的bug。雖然一些問題的根源尚不明確,這類發現可以幫助開發者在有限設備範圍內關注設備特定的問題。

此外,應用開發者還面臨Android碎片化帶來的挑戰。根據F8,本文使用的數據集中有超過19000種設備型號。碎片化問題為移動應用的設計、開發、維護、質量保障等多方面帶來很大挑戰。2013年有研究發現,94%不喜歡Android平台的移動應用開發者將碎片化問題列為主要原因。在大量的Android設備中,應用開發者需要識別出主要的設備以實現功能、提升可用性、獲得收入。

因此,對設備進行優先順序排序成為一個重要的研究課題。在應用發布之前,開發者需要購買一些設備或使用諸如Appthwack或Testin之類的雲端模擬器進行測試。由於缺少用戶數據,大部分開發者依賴市場報告選取最為流行的設備型號。但這些報告的統計粒度不夠精細,且對於不同應用來說主要的設備可能很不一樣。在資源有限的情況下,開發者非常需要更加準確地定位具體設備。

根據本文數據集中的應用使用信息,可以為設備型號優先排序問題設計有效的技術方案。我們發表於ICSE2016的工作[5]即是基於大規模用戶數據,提出了一種為單個應用提供Android設備優先排序和預測的方法PRADA。PRADA借鑒了operational profiling的概念,使用協同過濾技術預測新應用在不同設備上的使用情況。與市場報告相比,PRADA能夠更加準確預測一個新應用會被哪些設備更多地使用。此外,相對於用戶評論,不同設備上的應用卸載行為分布情況是一個更加客觀的指標,我們目前在對PRADA方法進行擴展以預測應用在哪些設備上更容易被卸載。

4.理解用戶多樣性需求

從F9-12可以發現,使用不同設備的用戶可能具有非常不同的需求。一方面,用戶對日常應用的選取存在多樣性。例如,高端機型的用戶傾向於使用財經類(FINANCIAL)和新聞閱讀類(NEWS_AND_READING)應用,而低端機型用戶更多地使用遊戲類(GAME)和教育類(EDUCATION)應用。另一方面,對提供了相似功能的競品應用,用戶的選擇也存在多樣性。例如,低端機型的用戶更喜歡使用百度瀏覽器和Opera Mini瀏覽器而非Chrome瀏覽器。通過分析這兩個瀏覽器應用的文本描述信息,我們發現Opera Mini瀏覽器宣稱可以通過內容壓縮節省網路流量。基於這些多樣性,開發者可以識別出更應關注的用戶群體,並提供優化服務或定製功能。例如,如果開發者知道持有某種特定設備的用戶使用移動網路多於Wi-Fi,就能夠通過用戶適配、情境感知等方式為這類用戶提供定製化的功能,包括由終端用戶手動開關或付費試用某些功能,關閉在移動網路下的內容下載功能,或者為流量有限的用戶在Wi-Fi網路下預取內容。

在設備機型之外,對用戶的分類還可以從年齡、性別、地區等維度進行,而用戶需求的多樣性也將更為複雜。傳統的基於產品的軟體發布模式經常提供大量功能以期滿足所有潛在用戶的需求,而移動應用的發布和分發是以一種基於用戶的模式進行,與傳統模式非常不同。因此,如何獲取具體用戶的具體功能需求,對需求工程提出了方法上的挑戰。其中一個問題就是為用戶建立準確的、細粒度的、多方位的畫像。一種可能的做法就是對用戶評論、bug報告、社交網路以及類似於Wandoujia的應用商店進行全面的數據分析。此外,由於應用新版本的發布非常頻繁,需要進一步縮小需求與實現之間的缺口。

5.尋求應用潛在盈利模式

流行應用多為免費應用,而移動應用(特別是遊戲、媒體等類別的應用)的盈利多依賴於應用內購買、廣告等渠道。應用開發者應該準確定位目標用戶以提升獲利。例如,F10表明使用低端設備的用戶更喜歡遊戲類應用,而大量的遊戲應用是付費下載的,因此遊戲應用開發者可以推出試用功能以鼓勵低端設備用戶使用。實際上很多遊戲應用已經採取諸如第一階段免費的類似策略。

本文的研究成果還可能幫助應用進行廣告推薦。根據F11,設備型號的選擇與聯網時間之間存在相關性,因此開發者可以知道哪些用戶更喜歡使用他們的應用,從而提高廣告點擊率。用戶對設備型號的選擇還可以反映出其經濟背景。例如,經濟狀況較好的用戶更可能使用高端機型,開發者可以據此提供更加個性化的廣告。同樣,廣告商能夠根據我們的研究獲知特定用戶群體對應用的偏好,從而在相關應用中植入廣告。

工作影響

在過去的三年中,圍繞以應用商店為中心的移動應用生態系統,我們已經展開了一系列前沿研究,並在ICSE[5]、WWW[1][3]、UbiComp[6]、IMC[2]等國際會議和TSE、TOIS[4]等期刊發表了多篇論文。本文實際上即擴展於IMC15長文《Characterizing Smartphone Usage Patterns from Millions of Android Users》。我們的工作已經得到了國內外學術界的廣泛關注。基於我們工作中的發現和提出的研究問題,來自美國、巴西、香港、日本等多個研究團隊相繼在ASE、FSE、WWW等國際頂級會議發表高水平論文。

作者簡介

本文作者包括北京大學劉譞哲副教授,博士研究生李豁然、陸璇,美國伊利諾伊大學厄巴納-香檳分校計算機科學系謝濤教授,密歇根大學電子工程與計算機科學系梅俏竹副教授,梅宏院士,以及豌豆莢實驗室聯合創始人馮鋒。

相關文獻

[1]Huoran Li, Wei Ai, Xuanzhe Liu, Jian Tang, Gang Huang, Feng Feng, Qiaozhu Mei. "Voting with Their Feet: Inferring User Preferences from App Management Activities", in Proceedings of 25th International World Wide Web Conference.

[2]Huoran Li, Xuan Lu, Xuanzhe Liu, Tao Xie, Kaigui Bian, Felix Xiaozhu Lin, Qiaozhu Mei, Feng Feng. "Characterizing Smartphone Usage Patterns from Millions of Android Users", in Proceedings of the 2015 ACM SIGCOMM conference on Internet measurement conference.

[3]Mengwei Xu, Yun Ma, Xuanzhe Liu, Felix Xiaozhu Lin and Yunxin Liu. 「AppHolmes: Detecting and Characterizing App Collusion among Third-Party Android Markets」, in Proceedings of the 26th International World Wide Web Conference.

[4]Xuanzhe Liu, Wei Ai, Huoran Li, Jian Tang, Gang Huang, Feng Feng, and Qiaozhu Mei. "Deriving User Preferences of Mobile Apps from Their Management Activities." ACM Transactions on Information Systems (TOIS).

[5]Xuan Lu, Xuanzhe Liu, Huoran Li, Tao Xie, Dan Hao, Qiaozhu Mei, Gang Huang, Feng Feng. "PRADA: Prioritizing Android Devices for Apps by Mining Large-Scale Usage Data", in Proceedings of 38th International Conference on Software Engineering.

[6]Xuan Lu, Zhenpeng Chen, Xuanzhe Liu, Huoran Li, Tao Xie, Qiaozhu Mei. 「PRADO: Predicting App Adoption by Learning the Correlation between Developer-Controllable Properties and User Behaviors」, in Proceedings of the 2017 ACM International Joint Conference on Pervasive and Ubiquitous Computing.

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 軟體工程研究與實踐 的精彩文章:

TAG:軟體工程研究與實踐 |