安卓应用的推荐方法转让专利

申请号 : CN201610666053.6

文献号 : CN106294788B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 刘绪崇苏欣张悦童宇

申请人 : 湖南警察学院

摘要 :

本发明公开了一种安卓应用的推荐方法,包括执行所有需要推荐的安卓应用并捕获其产生的网络流量数据;对需要推荐的安卓应用进行统计;构建安卓应用及其网络流量开销的二分图;对安卓应用的网络流量开销进行评分;对每个安卓应用的网络流量开销进行等级划分;对安卓应用进行排序;构造安卓应用哈希矩阵完成安卓系统网络应用的推荐。本发明方法融合了安卓应用的网络开销和流行度,并以此做基础进行安卓应用的推荐,因此本发明方法在对用户进行应用推荐时,能够有效节省用户的移动数据开销;而且本发明方法实施起来,计算速度快,能够快速在线对安卓应用市场中的海量应用进行推荐,实用性极佳。

权利要求 :

1.一种安卓应用的推荐方法,包括如下步骤:

S1.采用安卓应用自动执行工具执行所有需要推荐的安卓应用,并使用记录工具捕获需要推荐的安卓应用在执行过程中产生的网络流量数据;

S2.根据步骤S1获取的网络流量数据,从安卓应用总体流量情况、安卓应用网络流量开销成分和相同功能的其他安卓应用网络流量开销三个方面,对需要推荐的安卓应用进行统计;

S3.根据步骤S2得到的统计数据结果,构建安卓应用及其网络流量开销的二分图;

S4.使用规则化随机游走算法对安卓应用的网络流量开销进行评分;

S5.根据步骤S4得到的评分结果,采用基于变异系数的等级划分算法对每个安卓应用的网络流量开销进行等级划分;

S6.根据步骤S5得到的等级划分结果、安卓应用的流行度和安卓应用的网络流量开销对安卓应用进行排序;

S7.构造安卓应用哈希矩阵,并根据构造的安卓应用哈希矩阵和步骤S6的安卓应用排序结果,采用现代证券投资组合理论完成安卓系统网络应用的推荐。

2.根据权利要求1所述的安卓应用的推荐方法,其特征在于步骤S1所述的网络流量数据,包括四类:第一、安卓应用和自身服务器交换数据产生的流量;第二、安卓应用中嵌入的第三方库产生的网络流量;第三、安卓应用与CDN或者云服务器通信产生的网络流量;第四、安卓应用与其他类型服务器通信产生的网络流量。

3.根据权利要求1或2所述的安卓应用的推荐方法,其特征在于步骤S2所述的对需要推荐的安卓应用进行统计,具体包括:

1)统计每一类安卓应用的总体流量数据情况;

2)根据访问服务器的类型不同,统计安卓应用访问网络的数据类别和数据流量情况;

3)统计相同功能的其他安卓应用的网络流量数据情况。

4.根据权利要求1或2所述的安卓应用的推荐方法,其特征在于步骤S3所述的构建安卓应用及其网络流量开销的二分图,具体为:设G={V,E,W}为二分图,其中V={Va,Vh}表示结点集合,Va={a1,a2,...,aM}表示安卓应用集合,Vh={h1,h2,...,hN}表示应用所访问的不同类型的主机集合;E表示边集合,当且仅当应用ai在操作中和主机hj建立连接,eij∈E才成立;W表示边的权重集合,wij∈W代表每条边的权重,同时也表示安卓应用ai在运行过程中可能访问主机hj的概率;权重的计算公式如下:其中,fij表示在应用类别c中访问主机hj的安卓应用个数,参数P表示在应用类别c中每个安卓应用访问主机hj所产生的网络流量大小占该应用类别中所有应用访问主机hj所产生的网络流量大小的比例;

此外,分别对每个安卓应用和所访问的主机类型进行向量化,即 和并通过余弦距离公式来计算两个应用之间潜在的相似度,计算公式如下:

类似的,两个访问主机类型之间的潜在相似度可以定义为

5.根据权利要求4所述的安卓应用的推荐方法,其特征在于步骤S4所述的使用规则化随机游走算法对安卓应用的网络流量开销进行评分,具体为:定义两类网络流量开销评分TrafficCost(ai)和TrafficCost(hj);TrafficCost(ai)表示安卓应用的网络流量开销评分,TrafficCost(hj)表示该主机类型的全局的网络流量开销;

其次,设计规则化框架对上述的两类评分的平滑性进行规则化,并定义开销函数如下公式所示:其中,λ,μ表示规则化参数, 分别表示TrafficCost(ai),TrafficCost(hj),表示通过外部知识推导出来的安卓应用网络流量开销评分;上述公式由三个部分组成:第一部分是被参数λ所控制,并定义两类网络流量开销评分符合先验知识的约束条件;第二部分是被参数μ所控制,并定义二分图中的网络流量开销评分的整体一致性;第三部分是安卓应用和所访问的主机类型之间的平滑约束条件;

网络流量开销的评分问题转化为寻找最优的 的优化问题:使用梯度下降法计算最小化开销函数ρ。

6.根据权利要求5所述的安卓应用的推荐方法,其特征在于所述的使用梯度下降法计算最小化开销函数ρ,具体为:指定 并通过下述两个公式来迭代更新 和 这两个变量的值,并

直至这两个变量的值为0:

在每次迭代之后, 的值都要重新标准化;并当结果聚集后,即得到优化后的网络流量开销评分。

7.根据权利要求6所述的安卓应用的推荐方法,其特征在于所述的指定 的值为采用基于概率的先验信息贝叶斯方法来指定。

8.根据权利要求7所述的安卓应用的推荐方法,其特征在于所述的采用基于概率的先验信息贝叶斯方法来指定 的值,具体为:建立一个具有参数θ的贝叶斯模型,参数θ是服从Beta先验分布,Beta(θ;α0,β0),其概率可以通过下述公式来确定:其中,M表示数据集中安卓应用的数目,xi,j是一个二元的函数,当值为1的时候表示该安卓应用在运行时产生了该类型的网络流量开销,0则表示没有产生该类型的网络流量开销;通过外部知识推导出来基于访问主机hj的网络流量开销评分可以通过来确定,通过外部知识推导出来基于安卓应用ai的网络流量开销评分可以通过来确定。

9.根据权利要求1或2所述的安卓应用的推荐方法,其特征在于步骤S6所述的对安卓应用进行排序,具体为按照步骤S5划分的等级,在每个等级内进行排序:基于网络流量开销评分的排序方式:首先根据网络流量开销评分降序来排序安卓应用;若某些应用具有相同的网络流量开销评分,那么将对这类应用按照流行度评分进行排序;

基于流行度评分的排序方式:首先根据流行度评分降序来排序安卓应用;若某些应用具有相同的流行度评分,那么将对这类应用按照网络流量开销评分进行排序。

10.根据权利要求1或2所述的安卓应用的推荐方法,其特征在于步骤S7所述的采用现代证券投资组合理论完成安卓系统网络应用的推荐,具体为:在现代证券投资组合理论中,股票被认作安卓应用,未来的收益和风险分别认作安卓应用的流行度和网络流量开销;一个安卓应用的证券投资组合γ可以用一组安卓应用来表示,该组包含了n个安卓应用,并且每个安卓应用都有相应的权重ωi,证券投资组合γ可以通过以下公式计算得到:其中,权重ωi用来确定安卓应用的排序,即根据安卓应用的权重以降序的方式进行排序;

对安卓应用组合的未来收益Ε[γ]进行定义:

其中Δi表示安卓应用ai根据流行度排序的列表ΛPop;同样的,根据以下公式定义安卓应用组合的未来风险R[γ]:其中Γi表示安卓应用基于网络流量开销排序的列表ΛTrafficcost,Jij表示安卓应用ai和aj之间的网络流量开销相互关系;

根据产生的网络流量开销的相似度来确定Jij的值:其中相似度通过以下算式计算Jaccard系数来得到:其中Ni表示安卓应用ai在运行过程中所生成的不同的网络流量类型的数目,Nij表示两个安卓应用ai和aj在运行过程中所生成共同的网络流量类型数目;

确定一组安卓应用的权重,并以此来确定安卓应用组合γ具有最大化的未来收益和最小化的风险,计算公式如下所示:其中b表示特定的网络流量开销偏好参数,是由给定的网络流量开销等级L*所定义;通过优化权重ω来得到上述公式的最优解:其中, E*可以通过以下公式计算得到,

其中,x=1TΣ-11,y=1TΣ-1E,z=ETΣ-1E。

说明书 :

安卓应用的推荐方法

技术领域

[0001] 本发明具体涉及一种安卓应用的推荐方法。

背景技术

[0002] 随着无线通信技术,比如WiFi和3G/4G技术,的飞速发展,安卓(安卓)应用能够通过网络向用户提供丰富多样的服务。由于安卓操作系统可以提供标准的TCP/IP栈,因此其可以像PC的软件一样在提供服务的同时生成网络流量。但是不同于传统的有线网络,在移动网络中任何网络数据流量的生成都是需要移动用户进行付费的。为了给用户提供更好的服务和获得更多的下载量,安卓应用开发者在开发应用的时候尽可能的设计多样化的功能使得安卓应用更加智能化。然而这些服务大部分都会导致网络流量的开销,甚至个别会带来安全问题。图1以安卓市场中某个应用为例来说明目前安卓市场推荐应用存在的问题。从图1观察得到该应用在Google Play上的流行度非常高,具有较高的评分和评论数。但是该应用在运行时会请求网络权限来访问网络,同时也会请求读取手机状态和身份,使用时该应用的时候会给安卓用户带来两个问题:第一、运行时产生的网络流量开销会消耗安卓用户的移动数据套餐;第二、该应用有可能会通过网络传输隐私数据(比如,IMEI)到未知服务器造成用户敏感数据泄露。此外,目前安卓市场在推荐应用的时候仅仅通过流行度(评分、下载次数等)或者用户相关度等因素来进行推荐,这样肯定存在恶意购买流行度,从而引导消费者进行应用下载,从而获取用于隐私数据和增加用户额外的不必要的网络流量数据开销的情况。

发明内容

[0003] 本发明的目的在于提供一种能够有效节省用户移动数据开销的安卓应用的推荐方法。
[0004] 本发明提供的这种安卓应用的推荐方法,包括如下步骤:
[0005] S1.采用安卓应用自动执行工具执行所有需要推荐的安卓应用,并使用记录工具捕获需要推荐的安卓应用在执行过程中产生的网络流量数据;
[0006] S2.根据步骤S1获取的网络流量数据,从安卓应用总体情况、安卓应用网络流量开销成分和相同功能的其他安卓应用网络流量开销三个方面,对需要推荐的安卓应用进行统计;
[0007] S3.根据步骤S2得到的统计数据结果,构建安卓应用及其网络流量开销的二分图;
[0008] S4.使用规则化随机游走算法对安卓应用的网络流量开销进行评分;
[0009] S5.根据步骤S4得到的评分结果,采用基于变异系数的等级划分算法对每个安卓应用的网络流量开销进行等级划分;
[0010] S6.根据步骤S5得到的等级划分结果、安卓应用的流行度和安卓应用的网络流量开销对安卓应用进行排序;
[0011] S7.构造安卓应用哈希矩阵,并根据构造的安卓应用哈希矩阵和步骤S6的安卓应用排序结果,采用现代证券投资组合理论完成安卓系统网络应用的推荐。
[0012] 步骤S1所述的记录工具为tcpdump数据记录工具;
[0013] 步骤S1所述的网络流量数据,包括四类:第一、安卓应用和自身服务器交换数据产生的流量;第二、安卓应用中嵌入的第三方库产生的网络流量;第三、安卓应用与CDN或者云服务器通信产生的网络流量;第四、安卓应用与其他类型服务器通信产生的网络流量。
[0014] 步骤S2所述的对网络流量数据进行统计,具体包括:
[0015] 1)统计每一类安卓应用的总体流量数据情况;
[0016] 2)根据访问服务器的类型不同,统计安卓应用访问网络的数据类别和数据流量情况;
[0017] 3)统计相同功能的其他安卓应用的网络流量数据情况。
[0018] 步骤S3所述的构建安卓应用及其网络流量开销的二分图,具体为:
[0019] 设G={V,E,W}为二分图,其中V={Va,Vh}表示结点集合,Va={a1,a2,...,aM}表示安卓应用集合,Vh={h1,h2,...,hN}表示应用所访问的不同类型的主机集合;E表示边集合,当且仅当应用ai在操作中和主机hj建立连接,eij∈E才成立;W表示边的权重集合,wij∈W代表每条边的权重,同时也表示安卓应用ai在运行过程中可能访问主机hj的概率;权重的计算公式如下:
[0020]
[0021]
[0022] 其中,fij表示在应用类别c中访问主机hj的安卓应用个数,参数P表示在应用类别c中每个安卓应用访问主机hj所产生的网络流量大小占该应用类别中所有应用访问主机hj所产生的网络流量大小的比例;
[0023] 此外,分别对每个安卓应用和所访问的主机类型进行向量化,即 和并通过余弦距离公式来计算两个应用之间潜在的相似度,计算公式如
下:
[0024]
[0025] 类似的,两个访问主机类型之间的潜在相似度可以定义为
[0026] 步骤S4所述的使用规则化随机游走算法对安卓应用的网络流量开销进行评分,具体为:
[0027] 定义两类网络流量开销评分TrafficCost(ai)和TrafficCost(hj);TrafficCost(ai)表示安卓应用的网络流量开销评分,TrafficCost(hj)表示该主机类型的全局的网络流量开销;
[0028] 其次,设计规则化框架对上述的两类评分的平滑性进行规则化,并定义开销函数如下公式所示:
[0029]
[0030] 其中,λ,μ表示规则化参数, 分别表示TrafficCost(ai),TrafficCost(hj),表示通过外部知识推导出来的安卓应用网络流量开销评分;上述公式由三个部分组成:第一部分是被参数λ所控制,并定义两类网络流量开销评分符合先验知识的约束条件;第二部分是被参数μ所控制,并定义二分图中的网络流量开销评分的整体一致性;第三部分是安卓应用和所访问的主机类型之间的平滑约束条件,并规定若一个安卓应用有较大的概率去访问一类主机,那么它们的网络流量开销评分是相似的;
[0031] 网络流量开销的评分问题转化为寻找最优的 的优化问题:使用梯度下降法计算最小化开销函数ρ。
[0032] 所述的使用梯度下降法计算最小化开销函数ρ,具体为:
[0033] 指定 并通过下述两个公式来迭代更新 和 这两个变量的值,并直至这两个变量的值为0:
[0034]
[0035]
[0036]
[0037]
[0038] 在每次迭代之后, 的值都要重新标准化;并当结果聚集后,即得到优化后的网络流量开销评分。
[0039] 所述的指定 的值为采用基于概率的先验信息贝叶斯方法来指定。
[0040] 所述的采用基于概率的先验信息贝叶斯方法来指定 的值,具体为:
[0041] 建立一个具有参数θ的贝叶斯模型,参数θ是服从Beta先验分布,Beta(θ;α0,β0),其概率可以通过下述公式来确定:
[0042]
[0043] 其中,M表示数据集中安卓应用的数目,xi,j是一个二元的函数,当值为1的时候表示该安卓应用在运行时产生了该类型的网络流量开销,0则表示没有产生该类型的网络流量开销;通过外部知识推导出来的安卓应用的网络流量开销评分hj和安卓应用ai可以通过和 来确定。
[0044] 步骤S6所述的对安卓应用进行排序,具体为按照步骤S5划分的等级,在每个等级内进行排序:
[0045] 基于网络流量开销评分的排序方式:首先根据网络流量开销评分降序来排序安卓应用;若某些应用具有相同的网络流量开销评分,那么将对这类应用按照流行度评分进行排序;
[0046] 基于流行度评分的排序方式:首先根据流行度评分降序来排序安卓应用;若某些应用具有相同的流行度评分,那么将对这类应用按照网络流量开销评分进行排序。
[0047] 步骤S7所述的采用现代证券投资组合理论完成安卓系统网络应用的推荐,具体为:
[0048] 在现代证券投资组合理论中,股票被认作安卓应用,未来的收益和风险分别认作安卓应用的流行度和网络流量开销;一个安卓应用的证券投资组合γ可以用一组安卓应用来表示,该组包含了n个安卓应用,并且每个安卓应用都有相应的权重ωi,证券投资组合γ可以通过以下公式计算得到:
[0049]
[0050] 其中,权重ωi用来确定安卓应用的排序,即根据安卓应用的权重以降序的方式进行排序;
[0051] 对安卓应用组合的未来收益Ε[γ]进行定义。
[0052]
[0053] 其中Δi表示安卓应用ai根据流行度排序的列表ΛPop;同样的,根据以下公式定义安卓应用组合的未来风险R[γ]:
[0054]
[0055] 其中Γi表示安卓应用基于网络流量开销排序的列表ΛTrafficcost,Jij表示安卓应用ai和aj之间的网络流量开销相互关系;
[0056] 根据产生的网络流量开销的相似度来确定Jij的值:其中相似度通过以下算式计算Jaccard系数来得到:
[0057]
[0058] 其中Ni表示安卓应用ai在运行过程中所生成的不同的网络流量类型的数目,Nij表示两个安卓应用ai和aj在运行过程中所生成共同的网络流量类型数目;
[0059] 确定一组安卓应用的权重,并以此来确定安卓应用组合γ具有最大化的未来收益和最小化的风险,计算公式如下所示:
[0060]
[0061] 其中b表示特定的网络流量开销偏好参数,是由给定的网络流量开销等级L*所定义;通过优化权重ω来得到上述公式的最优解:
[0062]
[0063] 其中, E*可以通过以下公式计算得到,
[0064]
[0065] 其中,x=1TΣ-11,y=1TΣ-1E,z=ETΣ-1E。
[0066] 本发明提供的这种安卓应用的推荐方法,通过获取和统计安卓应用运行时的产生的网络数据流量,然后根据统计结果对安卓网络应用进行评分和分级,最终根据最优化理论得到安卓网络应用的排序结果,并根据排序结果进行推荐;本发明方法融合了安卓应用的网络开销和流行度,本以此做基础进行安卓应用的推荐,因此本发明方法在对用户进行应用推荐时,能够有效节省用户的移动数据开销;而且本发明方法实施起来,计算速度快,处理1000个安卓应用仅耗时142毫秒,能够快速在线对安卓应用市场中的海量应用进行推荐,实用性极佳。

附图说明

[0067] 图1为背景技术的某安卓应用评分和请求权限示意图。
[0068] 图2为本发明方法的流程图。
[0069] 图3为本发明的应用-访问主机二分图的示意图。
[0070] 图4为本发明的安卓应用的哈希矩阵示意图。
[0071] 图5为本发明的网络流量开销评分确定的时间开销示意图。
[0072] 图6为本发明的网络流量开销等级划分的时间开销示意图。
[0073] 图7为本发明的安卓应用哈希矩阵建立的时间开销示意图。
[0074] 图8为本发明方法与RankNet、RankBoost和ListNet在Precision指标下的对比图。
[0075] 图9为本发明方法与RankNet、RankBoost和ListNet在NDCG指标下的对比图。
[0076] 图10为本发明方法与RankNet、RankBoost和ListNet在ERR指标下的对比图。
[0077] 图11为本发明方法与基于流行度的推荐方法、基于网络流量开销的推荐方法在推荐等级1的安卓应用时NDCG值的对比示意图。
[0078] 图12为本发明方法与基于流行度的推荐方法、基于网络流量开销的推荐方法在推荐等级3的安卓应用时NDCG值的对比示意图。
[0079] 图13为本发明方法与基于流行度的推荐方法、基于网络流量开销的推荐方法在推荐等级5的安卓应用时NDCG值的对比示意图。

具体实施方式

[0080] 如图2所示为本发明的方法流程图:本发明提供的这种安卓应用的推荐方法,包括如下步骤:
[0081] S1.采用安卓应用自动执行工具执行所有需要推荐的安卓应用,并使用记录工具tcpdump捕获需要推荐的安卓应用在执行过程中产生的网络流量数据;
[0082] 这些数据分为四类:第一、安卓应用和自身服务器交换数据产生的流量;第二、安卓应用中嵌入的第三方库产生的网络流量,比如广告库;第三、安卓应用与CDN或者云服务器通信产生的网络流量,比如Akamai、Amazon;第四、安卓应用与其他类型服务器通信产生的网络流量;通过这些信息可以全面的反应一个安卓应用在运行过程中所产生的网络流量开销;
[0083] S2.根据步骤S1获取的网络流量数据,从安卓应用总体情况、安卓应用网络流量开销成分和相同功能的其他安卓应用网络流量开销三个方面,对需要推荐的安卓应用进行统计;具体包括如下三类数据统计:
[0084] 1)统计每一类安卓应用的总体流量数据情况;
[0085] 2)根据访问服务器的类型不同,统计安卓应用访问网络的数据类别和数据流量情况;
[0086] 3)统计相同功能的其他安卓应用的网络流量数据情况;
[0087] S3.根据步骤S2得到的统计数据结果,构建安卓应用及其网络流量开销的二分图;
[0088] 所述的安卓应用及其网络流量开销的二分图如图3所示,构建安卓应用及其网络流量开销的二分图则具体包括如下步骤:
[0089] 设G={V,E,W}为二分图,其中V={Va,Vh}表示结点集合,Va={a1,a2,...,aM}表示安卓应用集合,Vh={h1,h2,...,hN}表示应用所访问的不同类型的主机集合;E表示边集合,当且仅当应用ai在操作中和主机hj建立连接,eij∈E才成立;W表示边的权重集合,wij∈W代表每条边的权重,同时也表示安卓应用ai在运行过程中可能访问主机hj的概率;权重的计算公式如下:
[0090]
[0091]
[0092] 其中,fij表示在应用类别c中访问主机hj的安卓应用个数,参数P表示在应用类别c中每个安卓应用访问主机hj所产生的网络流量大小占该应用类别中所有应用访问主机hj所产生的网络流量大小的比例;
[0093] 此外,分别对每个安卓应用和所访问的主机类型进行向量化,即 和并通过余弦距离公式来计算两个应用之间潜在的相似度,计算公式如
下:
[0094]
[0095] 类似的,两个访问主机类型之间的潜在相似度可以定义为
[0096] S4.使用规则化随机游走算法对安卓应用的网络流量开销进行评分,具体为:
[0097] 定义两类网络流量开销评分TrafficCost(ai)和TrafficCost(hj);TrafficCost(ai)表示安卓应用的网络流量开销评分,TrafficCost(hj)表示该主机类型的全局的网络流量开销;
[0098] 其次,设计规则化框架对上述的两类评分的平滑性进行规则化,并定义开销函数如下公式所示:
[0099]
[0100] 其中,λ,μ表示规则化参数, 分别表示TrafficCost(ai),TrafficCost(hj),表示通过外部知识推导出来的安卓应用网络流量开销评分;上述公式由三个部分组成:第一部分是被参数λ所控制,并定义两类网络流量开销评分符合先验知识的约束条件;第二部分是被参数μ所控制,并定义二分图中的网络流量开销评分的整体一致性;第三部分是安卓应用和所访问的主机类型之间的平滑约束条件,并规定若一个安卓应用有较大的概率X(所述的概率X根据所需要进行评价和推荐的安卓应用的具体情况来确定)去访问一类主机,那么它们的网络流量开销评分是相似的,而所谓的网络流量开销评分相似则指的是在下一步骤进行等级划分时,它们应被划分为一个等级;
[0101] 网络流量开销的评分问题转化为寻找最优的 的优化问题:使用梯度下降法计算最小化开销函数ρ:
[0102] 采用基于概率的先验信息贝叶斯方法,建立一个具有参数θ的贝叶斯模型,参数θ是服从Beta先验分布,Beta(θ;α0,β0),其概率可以通过下述公式来确定:
[0103]
[0104] 其中,M表示数据集中安卓应用的数目,xi,j是一个二元的函数,当值为1的时候表示该安卓应用在运行时产生了该类型的网络流量开销,0则表示没有产生该类型的网络流量开销;安卓应用的网络流量开销评分hj和安卓应用ai可以通过 和来确定,hk∈ai;并根据计算结果指定 并通过下述
两个公式来迭代更新 和 这两个变量的值,并直至这两个变量的值为0:
[0105]
[0106]
[0107]
[0108]
[0109] 在每次迭代之后, 的值都要重新标准化;并当结果聚集后,即得到优化后的网络流量开销评分;
[0110] S5.根据步骤S4得到的评分结果,采用基于变异系数的等级划分算法对每个安卓应用的网络流量开销进行等级划分;
[0111] S6.根据步骤S5得到的等级划分结果、安卓应用的流行度和安卓应用的网络流量开销对安卓应用进行排序,具体为按照步骤S5划分的等级,在每个等级内进行排序:
[0112] 基于网络流量开销评分的排序方式:首先根据网络流量开销评分降序来排序安卓应用;若某些应用具有相同的网络流量开销评分,那么将对这类应用按照流行度评分进行排序;
[0113] 基于流行度评分的排序方式:首先根据流行度评分降序来排序安卓应用;若某些应用具有相同的流行度评分,那么将对这类应用按照网络流量开销评分进行排序;
[0114] S7.构造安卓应用哈希矩阵(结构如图4),并根据构造的安卓应用哈希矩阵和步骤S6的安卓应用排序结果,采用现代证券投资组合理论完成安卓系统网络应用的推荐。
[0115] 所述的采用现代证券投资组合理论完成安卓系统网络应用的推荐,具体为:
[0116] 在现代证券投资组合理论中,股票被认作安卓应用,未来的收益和风险分别认作安卓应用的流行度和网络流量开销;一个安卓应用的证券投资组合γ可以用一组安卓应用来表示,该组包含了n个安卓应用,并且每个安卓应用都有相应的权重ωi,证券投资组合γ可以通过以下公式计算得到:
[0117]
[0118] 其中,权重ωi用来确定安卓应用的排序,即根据安卓应用的权重以降序的方式进行排序;
[0119] 对安卓应用组合的未来收益Ε[γ]进行定义。
[0120]
[0121] 其中Δi表示安卓应用ai根据流行度排序的列表ΛPop;同样的,根据以下公式定义安卓应用组合的未来风险R[γ]:
[0122]
[0123] 其中Γi表示安卓应用基于网络流量开销排序的列表ΛTrafficcost,Jij表示安卓应用ai和aj之间的网络流量开销相互关系;
[0124] 根据产生的网络流量开销的相似度来确定Jij的值:其中相似度通过以下算式计算Jaccard系数来得到:
[0125]
[0126] 其中Ni表示安卓应用ai在运行过程中所生成的不同的网络流量类型的数目,Nij表示两个安卓应用ai和aj在运行过程中所生成共同的网络流量类型数目;
[0127] 确定一组安卓应用的权重,并以此来确定安卓应用组合γ具有最大化的未来收益和最小化的风险,计算公式如下所示:
[0128]
[0129] 其中b表示特定的网络流量开销偏好参数,是由给定的网络流量开销等级L*所定义;通过优化权重ω来得到上述公式的最优解:
[0130]
[0131] 其中, E*可以通过以下公式计算得到,
[0132]
[0133] 其中,x=1TΣ-11,y=1TΣ-1E,z=ETΣ-1E。
[0134] 本发明方法综合考虑了安卓应用运行时可能产生的网络流量参数和安卓应用的流行程度,因此能够综合两者指标给出负荷消费者需求、而且能够有效节省用户移动数据开销的安卓系统网络应用的推荐结果。
[0135] 图5为本发明的网络流量开销评分确定的时间开销示意图,图6为本发明的网络流量开销等级划分的时间开销示意图,图7为本发明的安卓应用哈希矩阵建立的时间开销示意图;本发明的推荐方法主要分为线下分析和线上推荐:安卓应用查找可以通过关键字在安卓应用哈希矩阵中快速定位得到,因此在线推荐阶段处理速度较快,适合在线推荐安卓应用给用户;而在线下分析阶段,时间开销主要来自三个部分:网络流量开销评分确定、网络流量开销等级划分和安卓应用哈希矩阵建立;图5~图7即为线下分析的时间开销示意图,所述的时间开销均在一台CPU为Intel i5 3.2GHZ,内存为8GB的服务器上完成;其中,x轴表示安卓应用数目,y轴表示时间开销。从图5~图7可以看到,完成这三个部分所需要的时间开销随着安卓应用数目的增加呈线性增长,这说明本工作提出这三种方法在离线分析阶段具备可扩展性,而且总体计算时间较短,处理1000个安卓应用最长也仅需耗时140多毫秒,说明本发明方法计算时间短,能够有效应用于实际应用场合。
[0136] 如图8~图10为本发明方法与现有的RankNet、RankBoost和ListNet算法在Precision、NDCG和ERR这三个指标上的对比结果示意图。
[0137] 其中,Precision、NDCG和ERR这三个指标定义如下:
[0138]
[0139] 其中,CN,rec表示排序列表里面安卓应用的个数,Cadopted表示排序列表中符合用户需要的安卓应用个数,N表示用户在搜索某类型应用该应用商店提供的应用的总数量。
[0140]
[0141] 其中,DCG是用来衡量排序性能的指标,NDCG就是通过IDCG对DCG进行归一化后的结果,reli表示相关度评分,即安卓应用网络流量开销评分。NDCG的值越大表示排序结果越好。
[0142]
[0143] 其中,r表示排序列表中的位置,Ri表示相关度的概率。ERR和NDCG一样,值越大表示排序方法的性能越好。
[0144] 如图8~10可以看到,随着K值的增加,本发明提出的方法,即MRTC在三个指标的比较中都要优于其他三种方法。在NDCG指标的比较中,相比于RankNet,RankBoost和ListNet算法,MRTC分别提升6.01%,1.96%和6.68%。在ERR指标的比较中,相比于RankNet,RankBoost和ListNet算法,MRTC分别提升4.63%,17.74%和5.26%。在Precision指标的比较中,虽然相比于其他三种方法,MRTC并没有明显的提升,但是也和这三种方法保持相似的结果。该结果说明本工作提出的方法在对安卓应用进行排序的时候不仅考虑安卓应用在运行时所产生的网络流量开销的因素,同时也在排序指标方面优于已有的方法或者与已有的方法保持相似的结果。
[0145] 如图11~13本发明方法与基于流行度的推荐方法、基于网络流量开销的推荐方法在推荐不同等级的安卓应用时NDCG值的对比示意图:本发明方法在图中的示例为recommend by hybid,NDCG_Pop表示基于流行度(Popularity)的推荐结果的NDCG值,NDCG_TC表示基于网络流量开销的推荐结果的NDCG值;图11~13分别对Level 1、Level 3和Level 5三个等级中的安卓应用通过三种不同的推荐的策略得到的NDCG指标进行比较。首先,在基于安卓应用流行度的推荐策略下,NDCG_Pop的值要高于NDCG_TC;其次,在基于安卓应用网络流量开销的推荐策略下,NDCG_TC的值要高于NDCG_Pop;最后,在基于混合推荐策略下,NDCG_Pop的值和NDCG_TC的值趋于平衡,没有很大的差别。这说明本工作提出的基于混合的推荐策略能较好的在基于流行度推荐结果和基于网络流量开销推荐结果之间取得平衡,为安卓用户推荐既具有较高流行度的安卓应用,同时具有较低的网络流量开销。