一种针对地理位置敏感app的个性化推荐方法与流程

文档序号:11199231阅读:710来源:国知局
一种针对地理位置敏感app的个性化推荐方法与流程
本发明涉及一种针对地理位置敏感app的个性化推荐方法。
背景技术
:随着智能手机的普及,手机应用app数量也越来越多,种类越来越繁杂。为了更好的了解目前手机app应用的发展状况,研究当下三个主流的手机app在线提供商店googleplay,iosappstore和amazonappstore。这几个app在线提供商店是手机app最大的提供商店,就他们的优缺点而言,只能说各有千秋。但是,它们却都有一个共同的特点,就是:提供的手机app数量巨大,用户数量巨大,涵盖全世界各地,包括各个阶层。并且,它们的手机app数量仍处在不断上升的趋势中(如图1)。目前appstore收录的app超过了120万,吸引了28万多名开发人员(同一名开发人员能开发多个应用)。googleplay作为安卓平台的提供商,用户和市场上更具有优势,目前收录的app已经超过143万,平台吸引了39万开发人员。amazon则是29万和4.8万。面对海量的app,同一款功能应用的手机app,仍能找出几十上百款。而且,不同的手机app有不同的特色,质量和用户体验上更是良莠不齐。这就给用户带来了一个很严重的问题:用户到底要怎么样从海量的app应用中,找到一款正在的适合自己并且高质量的app呢?这就需要为用户提供一种推荐机制,根据用户的性格特点,生活环境,年龄性别特点甚至于天气时间等为用户自动的找出适合他的高质量的app应用,这也就是个性化的app应用推荐。有鉴于此,提供一个算法,使得这个推荐变得精准可靠,从而增强用户的体验,使得用户能节省大量的时间与精力从海量的app提供商店中,找寻到最适合自己的app。现有技术:手机应用app的推荐技术,大多数是继承于电脑pc端商品、电影等推荐技术,但是也具有自己独有的特性。手机应用app的推荐技术目前起步不久,不如pc端推荐技术成熟,但是由于是在pc推荐技术基础上发展的,手机端app应用的推荐技术的发展相当迅速。目前,主要的推荐方法包括:基于内容推荐、协同过滤推荐、基于关联规则推荐、基于效用推荐、基于知识推荐和组合推荐。这些算法都比较成熟,但是都各有其优劣(如表1)。尤其是,当一款app应用具有明显的地方性(即:这款app是专门针对某个地方开发的应用时),这些传统的对应的算法往往会把这些软件给湮没了,但事实上这些app对于当地的人来说,可能才是最适合他们的app应用。表1技术实现要素:本发明的目的在于克服现有技术的缺点与不足,提出了一种针对地理位置敏感app的个性化推荐方法,通过对地理位置敏感app的敏感度计算,带地理位置权重的矩阵分解方法,通过这两个方面的技术改进,使得推荐评分的预测更加准确。为实现上述目的,本发明所采用的技术方案是:一种针对地理位置敏感app的个性化推荐方法,其特征在于包括以下步骤:步骤1、原始数据的获取和处理;步骤2、城市对应app敏感度计算;步骤3、评分矩阵预测并给出app推荐。进一步的,所述步骤1是通过统计用户使用该app的下载、卸载、更新情况来得出用户对于某一款app的评分。进一步的,步骤2具体包括以下步骤:app对应地理位置敏感度计算;带敏感度权重的矩阵分解。进一步的,所述app对应地理位置敏感度计算具体包括以下步骤:1)收集并且处理原始的用户流量数据,统计出每一个城市对于每一款app的使用量;2)使用tf-idf算法对步骤1)得出的矩阵进行初步处理,得到原始的城市和app的敏感度关系;3)定义一个置信度函数,来进一步优化城市和app之间的敏感度关系。进一步的,所述带敏感度权重的矩阵分解具体包括采用分解公式:分解重构的ri,j作为预测值,然后通过优化目标函数,使得预测值尽可能的逼近真实值,目标函数:在所述带地理位置敏感度的矩阵分解方法中,在分解的时候加入了地理位置敏感度的权重,目标函数就变为:公式中n,m分别代表n个用户和m个app,代表的是用户i所在位置对于appj的敏感度。ri,j代表的是用户i对于appj的评价分。进一步的,优选的优化方法是最小二乘法或随机梯度下降。进一步的,步骤3具体包括使用带城市app敏感度权重的矩阵分解来预测步骤1构建的用户-app的评分矩阵,用矩阵分解的方法去预测出评分矩阵中的缺失值,最终得出完整的评分矩阵,通过所述用户—app的评分矩阵,对于某个用户就能给出一个app评分的排序,系统将评分高的app自动推荐给用户。本发明的有益效果是:通过对地理位置敏感app的敏感度计算,带地理位置权重的矩阵分解方法,通过这两个方面的技术改进,使得推荐评分的预测更加准确。附图说明图1为2016年手机app数量趋势图;图2为一种针对地理位置敏感app的个性化推荐方法流程图;图3为第802号app明显的异常情况示意图;图4为带敏感度权重的矩阵分解图。具体实施方式下面结合附图对本发明技术方案进一步说明:一种针对地理位置敏感app的个性化推荐方法,流程图如图2所示,具体实施主要包括以下步骤:步骤1、原始数据的获取和处理;步骤2、城市对应app敏感度计算;步骤3、评分矩阵预测并给出app推荐。其中,步骤1、原始数据的获取和处理:通过内置手机软件采集手机用户使用app流量数据,采集的目标数据主要包括:用户,用户的地理位置,用户的卸载软件情况,用户每天使用手机app的情况(使用的流量、时间、次数等)以及用户下载更新软件的情况。通过我们内置软件采集到的数据,构建出来用户-app评分表见表2,和前述的城市对于app的敏感度矩阵。下载卸载更新得分10011102100311141015表2正如上面表2所示,用户对于某一款app的评分,是通过统计用户使用该app的下载,卸载,更新情况来得出的评分。步骤2、城市对应app敏感度计算,可以通过以下方法得出app敏感度矩阵:一、app对应地理位置(主要以城市为单位)敏感度计算:1)收集并且处理原始的用户流量数据,统计出每一个城市对于每一款app的使用量。统计的结果形式大概如表3。表3的这个数据形式,正好是符合tf-idf算法的数据结构的。腾讯qq深圳巴士微信探探北京233232333--上海34334341--深圳2233232343444--2)使用tf-idf算法对步骤1)得出的矩阵进行初步处理,得到原始的城市和app的敏感度关系。矩阵中的取值在0,1之间。例如北京市对截图中第一款软件腾讯qq的敏感度即为0.269。这里,说明一下tf-idf算法。tf-idf(termfrequency–inversedocumentfrequency)是一种用于信息检索与数据挖掘的常用加权技术。是一种统计方法。主要思想是:如果某个词或短语在一篇文章中出现的频率tf高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类。tfidf实际上是:tf*idf,tf词频(termfrequency),idf逆向文件频率(inversedocumentfrequency)。tf表示词条在文档d中出现的频率。idf的主要思想是:如果包含词条t的文档越少,也就是n越小,idf越大,则说明词条t具有很好的类别区分能力。如果某一类文档c中包含词条t的文档数为m,而其它类包含t的文档总数为k,显然所有包含t的文档数n=m+k,当m大的时候,n也大,按照idf公式得到的idf的值会小,就说明该词条t类别区分能力不强。但是实际上,如果一个词条在一个类的文档中频繁出现,则说明该词条能够很好代表这个类的文本的特征,这样的词条应该给它们赋予较高的权重,并选来作为该类文本的特征词以区别与其它类文档。这就是idf的不足之处.在一份给定的文件里,词频(termfrequency,tf)指的是某一个给定的词语在该文件中出现的频率。这个数字是对词数(termcount)的归一化,以防止它偏向长的文件。(同一个词语在长文件里可能会比短文件有更高的词数,而不管该词语重要与否。)对于在某一特定文件里的词语来说,它的重要性可表示为:以上式子中分子是该词在文件中的出现次数,而分母则是在文件中所有字词的出现次数之和。逆向文件频率(inversedocumentfrequency,idf)是一个词语普遍重要性的度量。某一特定词语的idf,可以由总文件数目除以包含该词语之文件的数目,再将得到的商取对数得到:其中|d|:语料库中的文件总数:包含词语的文件数目(即的文件数目)如果该词语不在语料库中,就会导致分母为零,因此一般情况下使用1+|{d∈d:t∈d}|作为分母。然后再计算tf与idf的乘积。tfidfi,j=tfi,j×idfi某一特定文件内的高词语频率,以及该词语在整个文件集合中的低文件频率,可以产生出高权重的tf-idf。因此,tf-idf倾向于过滤掉常见的词语,保留重要的词语。基于此原理类比过来用到城市和app的关系上。tfidf计算就能说明,如果某个app在某一个城市使用量较高,但是在其他城市使用量低的时候,那么计算得出的tfidf结果就会大,也就说明了城市对某款app的敏感度。3)定义一个置信度函数,来进一步优化城市和app之间的敏感度关系。在步骤2)算法通过tfidf计算出了城市与app直接的敏感度,但是现实情况是数据收集的时候,在一些大城市收集的数据量远远要大过一些比较落后的城市。数据量越少,该数据反反映的城市与app之间的关系就越发不准确。换而言之,数据量越少,得出来的敏感关系就未必准确。这里通过分析数据,定义了一个置信度函数。函数取值在0,1之间,发f(x)值就某个城市的置信度,x代表该城市所有app平均用户量,用户量越大,置信度越高。通过算法定义的敏感度,通过实验发现确实一些城市对于一些app更加敏感。如图3所示,第802号app有明显的异常情况。通过网络查看802号app是深圳本地的一款乘坐公共汽车的app。该款app基本只在深圳以及周边的几个城市使用,具有明显的地域特点。所以深圳对于该款软件的敏感度高。这说明,定义的敏感度算法是正确可靠的。二、带敏感度权重的矩阵分解。矩阵分解方法是推荐系统比较传统的方法,将要给矩阵拆解为数个矩阵的乘积。常见的有三种1)三角分解法(triangularfactorization),2)qr分解法(qrfactorization),3)奇异值分解法(singularvaluedecompostion)。本发明采用的方法在qr分解法的基础上改进。分解公式:分解图如图4所示。分解重构的ri,j作为预测值。然后通过优化目标函数,使得预测值尽可能的逼近真实值。通常的优化方法是:最小二乘法和随机梯度下降。目标函数:在所述带地理位置敏感度的矩阵分解方法中,在分解的时候加入了地理位置敏感度的权重。目标函数就变为:公式中n,m分别代表n个用户和m个app,代表的是用户i所在位置对于appj的敏感度。ri,j代表的是用户i对于appj的评价分。步骤3、评分矩阵预测并给出app推荐:使用带城市app敏感度权重的矩阵分解来预测,步骤1构建的用户-app的评分矩阵。用矩阵分解的方法去预测出评分矩阵中的缺失值。最终得出完整的评分矩阵。通过这个用户—app的评分矩阵,对于某个用户就能给出一个app评分的排序,系统将评分高的app自动推荐给用户。上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1