一种通过移动设备信息进行推荐冷启动的方法和装置技术领域
本发明涉及一种,特别是一种通过移动设备信息进行推荐冷启动的方法和装置。
背景技术
推荐系统的冷启动问题,是指对于新用户系统缺乏足够的数据来捕获用户的兴趣并有效地推荐内容。这个问题是推荐系统在实际产品应用中的一个主要挑战。在众多针对此问题的解决方案中,有一类广泛使用的方法是鼓励用户用社交网络(Social Network Service:SNS)账号登陆推荐系统。推荐系统可以利用用户社交网络的信息(比如关注关系、好友关系、兴趣标签、发布内容等)初始化用户的兴趣模型,从而进行有效推荐。申请号为“201410020292”,名称为“基于用户兴趣挖掘的微博词云生成方法及访问支持系统”的中国发明专利申请,提出了一种通过挖掘用户发布内容的关键词作为用户兴趣关键词的方法。再如发表于2012年7月《程序员》杂志的“标签传播算法在微博用户兴趣图谱的应用”一文,介绍了一种利用用户的社交关系把用户好友或者关注对象的兴趣标签汇聚到用户身上的方法,这样有助于解决用户自身兴趣标签的稀疏性问题,因为大量用户都没有兴趣标签。
但在实际应用中,很多用户因为担心隐私问题或者怕麻烦不会选择用社交网络账号登陆推荐产品。据统计,在一些热门的新闻推荐类产品中,所有用户中用微博、QQ、微信等主流社交网络账号登陆的不超过50%。这就使得现有方法很难彻底解决推荐系统新用户的冷启动问题。相比之下,本发明提出了一种这种方法普适性更强,而且在不少用户上冷启动效果并不亚于挖掘用户社交网络信息。
发明内容
本发明所要解决的技术问题是针对现有技术的上述缺陷,提供一种通过移 动设备信息进行推荐冷启动的方法和装置,利用用户移动设备信息来挖掘用户兴趣,从而彻底解决推荐系统新用户的冷启动问题。
为了实现上述目的,本发明提供了一种通过移动设备信息进行推荐冷启动的方法,其中,包括如下步骤:
S100、获取用户的移动设备信息,通过该用户的移动设备的操作系统获取该用户的移动设备型号及安装在该移动设备上的所有APP信息;
S200、产生针对该用户的推荐列表,包括:
S201、基于协同过滤产生第一推荐列表,将数据库中与该用户的移动设备型号和/或安装的APP类似的其他用户喜欢的内容作为推荐内容生成第一推荐列表;或者
S202、基于兴趣标签映射产生第二推荐列表,把App显式地映射到一个或多个兴趣标签,然后根据每个兴趣标签筛选对应的内容作为推荐内容生成第二推荐列表;
S300、将所述第一推荐列表或第二推荐列表中的内容推荐给该用户。
上述的通过移动设备信息进行推荐冷启动的方法,其中,所述步骤S201中基于协同过滤为基于相似用户发现的协同过滤方法,包括:
S2011、筛选常用有区分性App;
S2012、选取常见智能手机机型;
S2013、把App和机型映射到特定维度;
S2014、对于给定用户,从该给定用户的移动设备信息中抽取移动设备特征向量;
S2015、基于WeakAND算法找到向量距离和该给定用户最近的K个用户;
S2016、统计这K个用户中点击率最高的内容作为推荐内容。
上述的通过移动设备信息进行推荐冷启动的方法,其中,所述步骤S2014中抽取给定用户的移动设备特征向量包括:
S20141、将每个App映射到一个[0,N-1]之间的维度;
S20142、将每个机型映射到一个[N,M-1]之间的维度,与用户机型对应维度的值为1,其他维度的值均为0;
S20143、用户安装的App对应维度的值为该用户最近特定天数的使用次数,其他维度的值均为0。
上述的通过移动设备信息进行推荐冷启动的方法,其中,所述步骤S201中基于协同过滤为基于APP和机型信息的协同过滤方法,包括:
S201a、定期分别统计每个App和常用机型的用户群体中点击率为Top K的高点击内容列表;
S201b、给定用户移动设备,通过该用户移动设备安装的App和机型分别获取对应的所述高点击内容列表;
S201c、按照对应的App和机型的权重合并获取的所述高点击内容列表并将其中的Top N作为推荐内容。
上述的通过移动设备信息进行推荐冷启动的方法,其中,所述步骤S201c中,合并所述高点击内容列表时推荐内容i的排序采用如下公式计算:
score(i)=sum(wa)+wd
其中,a代表用户的一个App,而且i出现在a的Top K高点击内容列表中,wa代表App a能够代表用户兴趣的权重;d代表用户的机型,wd代表用户机型能够代表用户兴趣的权重。
上述的通过移动设备信息进行推荐冷启动的方法,其中,所述步骤S202基于兴趣标签映射产生推荐列表包括:
S2021、对App标记兴趣标签;
S2022、给定用户移动设备,获取该用户移动设备安装的对应App的所述兴趣标签;
S2023、将与所述兴趣标签相关的内容作为推荐内容。
上述的通过移动设备信息进行推荐冷启动的方法,其中,所述步骤S2021中标记兴趣标签包括:
S20211、建立推荐系统自身的标签数据库;
S20212、用网页抓取技术抓取APP应用市场中每个APP的标签;
S20213、把抓取的所述APP的标签映射到所述标签数据库中。
上述的通过移动设备信息进行推荐冷启动的方法,其中,所述步骤S2021中标记兴趣标签包括:
S2021a、统计所有用户的全局兴趣标签Top M;
S2021b、给定一个App,统计安装了该App的用户群体中,最流行的Top L个兴趣标签;
S2021c、比较该Top L个兴趣标签和全局兴趣标签Top M,取出区别于该全局Top M的兴趣标签作为该App的兴趣标签。
上述的通过移动设备信息进行推荐冷启动的方法,其中,所述步骤S2021a中统计所有用户的全局兴趣标签Top M,采用如下公式计算用户的兴趣标签向量:
其中,Ti代表第i个用户动作的兴趣标签向量,wi代表第i个用户动作的权重。
为了更好地实现上述目的,本发明还提供了一种通过移动设备信息进行推荐冷启动的方法,其中,包括如下步骤:
S100、获取用户的移动设备信息,通过该用户的移动设备的操作系统获取该用户的移动设备型号及安装在该移动设备上的所有APP信息;
S200、基于协同过滤产生对该用户的第一推荐列表,将数据库中与该用户的移动设备型号和/或安装的APP类似的其他用户喜欢的内容作为推荐内容生成第一推荐列表;
S300、基于兴趣标签映射产生对该用户的第二推荐列表,把App显式地映射到一个或多个兴趣标签,然后根据每个兴趣标签筛选对应的内容作为推荐内容生成第二推荐列表;
S400、合并所述第一推荐列表和所述第二推荐列表,并根据其中所列推荐内容的加权和重新排列推荐顺序,生成一优选推荐列表;
S500、将所述优选推荐列表中的内容推荐给该用户。
为了更好地实现上述目的,本发明还提供了一种用于上述通过移动设备信息进行推荐冷启动的方法的装置。
本发明的有益功效在于:
和现有技术中利用用户社交网络信息进行推荐冷启动相比,本发明直接利用用户移动设备的信息,无需用户主动授权,覆盖率100%。而且在实际应用中,本发明的效果将优于基于用户社交网络信息的推荐冷启动,无论是用户的使用时间和内容点击率都达到或超过了同等的水平。
以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的 限定。
附图说明
图1为本发明一实施例的方法流程图;
图2为本发明一实施例的基于相似用户发现的协同过滤方法流程图;
图3为本发明一实施例的抽取移动设备特征向量示意图;
图4为本发明一实施例的基于APP和机型信息的协同过滤方法流程图;
图5为本发明一实施例的基于兴趣标签映射产生推荐列表流程图;
图6为本发明另一实施例的方法流程图。
其中,附图标记
S100-S500、S2011-S2016、S201a-S201c、S2021-S2023步骤
具体实施方式
下面结合附图对本发明的结构原理和工作原理作具体的描述:
参见图1,图1为本发明一实施例的方法流程图。本发明的通过移动设备信息进行推荐冷启动的方法,可以用于推荐文章、图片、视频、商品等任何可以用兴趣标签分类的对象,包括如下步骤:
步骤S100、获取用户的移动设备信息,通过该用户的移动设备的操作系统获取该用户的移动设备型号及安装在该移动设备上的所有APP信息,例如可通过移动设备操作系统提供的API获取设备型号,安装过的App,正在运行的App等移动设备信息。目前市场上主流的移动操作系统都有公开的API(Application Program Interface:应用程序接口)供第三方App获取一些基本的设备信息。在得到用户授权后,第三方App获得这些API的访问权限获取需要的信息。比如,在安卓平台,第三方App可以获取设备型号和安装的所有APP信息(安装包名)。在iOS平台上,情况稍微复杂些,第三方App不能直接获取用户移动设备上安装的App列表,但是可以通过查询该设备是否安装某个App的方式间接获得此信息。这种方法要求第三方App内置常用iOS App的id列表,这些数据是可以从App Store的网页版抓取的。
步骤S200、产生针对该用户的推荐列表,进一步包括以下步骤:
步骤S201、基于协同过滤产生推荐列表,将数据库中与该用户的移动设 备型号和/或安装的APP类似的其他用户喜欢的内容作为推荐内容生成推荐列表,即通过设备型号,安装App等信息推荐同样设备型号,安装同样App用户点击、分享、收藏的内容。这种策略不要求推荐系统理解用户机型和安装App反映出的用户兴趣,对于一个给定的用户U,只需要推荐和U机型相同或者安装App类似的用户喜欢的内容即可。具体的,这种策略有两种常用的实现方法。
或者,也可采用步骤S202、基于兴趣标签映射产生推荐列表,和协同方法不同,这种方法只能利用App信息,不能利用机型信息。把App显式地映射到一个或多个兴趣标签,然后根据每个兴趣标签筛选对应的内容作为推荐内容生成推荐列表,即通过建立App和兴趣标签的映射关系,对于安装特定App的用户利用映射的兴趣标签推荐内容。例如,对于App“携程”,如果把这个App打上“商务旅行”、“职场”等标签(对应的用户很可能是一个经常出差的商务人士),对于安装了这个App的用户,我们就可以推荐标记了“商务旅行”和“职场”标签的热门文章。自动给文章打标签的方法已经有比较成熟的应用,故不再赘述。
步骤S300、将所述推荐列表中的内容推荐给该用户。
参见图2,图2为本发明一实施例的基于相似用户发现的协同过滤方法流程图。所述步骤S201中例如可以为基于相似用户发现的协同过滤方法,给定一个用户U,为了获取合适的内容推荐列表IU,需要先找到机型及App安装列表和U比较类似的用户。具体可包括:
步骤S2011、筛选常用有区分性App,例如可以通过收集某个用户量足够大的应用所有用户的APP安装信息,统计每个APP的用户安装比例,该统计基本可以模拟所有App在所有移动互联网用户中的安装比例。首先,过滤安装比例大于50%的App,这一类基本上是微博、微信、百度客户端这种全民App,对识别用户个性化兴趣没有太大帮助。其次,过滤安装比例小于1%的App,假设移动互联网用户有5亿,1%意味着5万的安装量,低于这个数字可以认为过于小众,没有统计意义;
步骤S2012、选取常见智能手机机型;
步骤S2013、把App和机型映射到特定维度;
步骤S2014、对于给定用户,从该给定用户的移动设备信息中抽取移动设备特征向量;
步骤S2015、基于WeakAND算法找到向量距离和该给定用户最近的K个用户;
步骤S2016、统计这K个用户中点击率最高的内容作为推荐内容。
其中,所述步骤S2014中抽取给定用户的移动设备特征向量,可以把每个用户的移动设备信息表示为一个N+M维的设备特征向量VU,其中N代表所考虑的App种类,M代表主流智能手机机型的数量。具体包括:
步骤S20141、将每个App映射到一个[0,N-1]之间的维度(比如携程网–>2340);
步骤S20142、将每个机型映射到一个[N,M-1]之间的维度(例如小米2–>10012),这样给定一台移动设备的信息,就可以获得一个与之对应的向量,与用户机型对应维度的值为1,其他维度的值均为0;
步骤S20143、用户安装的App对应维度的值为该用户最近特定天数(例如最近七天)的使用次数,其他维度的值均为0。
例如,对于安装了“携程网(2340)”,“懂球帝(3078)”的一台小米2(10012)设备,可以获得图3所描述的向量。其中,第0-2339维度的值为0,第2340维度的值为1,第2341-3077维度的值为0,第3078维度的值为3,第3079-10011维度的值为0,第10012维度的值为1,第10013-(N+M-1)维度的值为0,则第2340维度的值为1、第3078维度的值为3分别代表相应APP七天内的使用次数,第10012维度的值为1代表用户机型为10012(对应小米2)。即在这个向量上,用户安装App对应维度的值用用户的使用次数表示,用户机型对应维度的值为1,其它维度的值都为0。
给定一个用户的设备特征向量VU可以方便地找到和这个向量最相似的Top K向量。如果对所有设备特征向量做一遍计算,计算量非常大(比如一些主流的推荐产品用户已经过亿),不但会消耗大量计算资源,而且延迟可能无法接受(需要几个小时)。这个问题经典的WeakAND算法可以很好地解决,实际中分钟级即可处理完毕。找到类似用户后,可以在这些用户中统计过去几个小时内点击率最高的内容作为推荐列表IU。需要说明的是,目前,主流的移动应用市场往往有几十万种应用可供下载。也就是说,理论上该方法中的N可以达到几十万的量级,这样计算相似用户的开销会比较大。在实际应用中,为了去除噪声和降低计算开销,可以过滤掉那些下载量特别大的全民级应用 (例如微信、微博、QQ、百度地图等)和下载量特别少的应用,实际上参与计算的App种类例如在1万左右。
假设用户u的设备特征向量为Vu,Top K向量就是和Vu最相似的特征向量。而向量相似性一般可以采用向量距离或者向量的夹角来衡量。WeakAND算法传统上用于在文本检索领域快速查找一个词向量(查询文档)最相似的TopK个词向量(相似文档)。其主要思想是,给定一个词向量V1,另一个词向量V2和V1的向量距离有一个上限,这个上限可以分解为每个词的贡献上限之和。每个词的贡献上限是可以预先计算的,比如一个词“国足”在所有文章词向量里面最大的权重是0.2,那么这个词的贡献上限就是0.2*0.2=0.04,也就是说,容易计算得到,两篇只包含一个共同词“国足”的文章,向量距离最大为0.04。根据该快速计算向量距离上限的方法,给定V1,要找到Top K个向量距离最近的向量,就不用把所有候选向量都计算一遍距离然后排序。通常可以维护一个长度为K的队列,对于前K个向量,可以直接先放到队列里。从第K+1个向量开始,检查每一个向量的距离上限是否小于队列中和V1距离最小的向量,如果小于,就直接丢弃,否则再计算真实距离,看看是否小于队列中和V1距离最小的向量。如果小于或等于,就丢弃,如果大于,就把队列中和V1距离最小的向量替换出来。这样对于很多向量,就可以省去距离的计算,而且只需要对候选向量扫描一遍。本实施例中,如果把App和移动设备型号当成单词,用户移动设备特征向量当成词向量,就可以借用WeakAND算法快速地获取和一个用户移动设备向量最相似的K的其他用户移动设备特征向量,即Top K向量。
参见图4,图4为本发明一实施例的基于APP和机型信息的协同过滤方法流程图。所述步骤S201中基于协同过滤也可为基于APP和机型信息的协同过滤方法,包括:
步骤S201a、定期(比如每个小时)分别统计每个App对应的用户和每个常用机型的用户群体中在过去一段时间内点击率为Top K的高点击内容列表,然后把统计结果保存在数据库或者基于内存的缓存服务器中(存取速度更快);
步骤S201b、给定用户移动设备,通过该用户移动设备安装的App和机型分别获取对应的所述高点击内容列表;
步骤S201c、按照对应的App和机型的权重合并获取的所述高点击内容列表并将其中的Top N作为推荐内容。
其中,所述步骤S201c中,可以考虑不同App的权重,合并所述高点击内容列表时推荐内容i的排序采用如下公式计算:
score(i)=sum(wa)+wd
其中,a代表用户的一个App,而且i出现在a的Top K高点击内容列表中,wa代表该App a能够代表用户兴趣的权重;d代表用户的机型,wd代表该用户机型能够代表用户兴趣的权重。跟据每项内容的得分,可以选取Top K篇内容作为推荐结果返回。
参见图5,图5为本发明一实施例的基于兴趣标签映射产生推荐列表流程图。所述步骤S202基于兴趣标签映射产生推荐列表可以包括如下步骤:
步骤S2021、对App标记兴趣标签;
步骤S2022、给定用户移动设备,获取该用户移动设备安装的对应App的所述兴趣标签;
步骤S2023、将与所述兴趣标签相关的内容作为推荐内容。
其中,所述步骤S2021中标记兴趣标签可采用如下方法,包括:
步骤S20211、建立推荐系统自身的标签数据库;
步骤S20212、用网页抓取技术抓取APP应用市场(比如豌豆荚)中每个APP的标签;
步骤S20213、把抓取的所述APP的标签映射到所述标签数据库中。之所以需要映射是因为App应用市场的标签体系可能和推荐系统自身的并不一致。比如一个欧冠视频App,在应用市场上可能只有一个“欧冠”的标签,而推荐系统内部可能没有“欧冠”但是有“国际足球”的标签,这种情况下“欧冠”就应该映射为“国际足球”。映射关系可以由人工维护,也可以由系统自动维护,因为需要映射的标签数量一般不超过一千个,而且不需要对每个App有更多的了解,所以操作起来更加容易。
一种计算App权重的方法是比较一个App的Top K列表和全站点击率TopK内容的区别,如果两个列表区别越大,说明这个App越能体现用户的个性化兴趣,权重越大。类似的,也可以根据机型的Top K列表和全站点击率Top K内容比较获得机型的权重。例如,在今日头条的用户中,安装了“知乎日报”的用户喜欢点击的文章和全站点击率最高的文章有明显差别。全站点击率最高的文章往往是娱乐八卦和社会奇闻类的文章,而安装了这个App的用户则偏好 小众的高质量内容。因此,这个App的兴趣表达权重和一般的工具性App相比非常高。具体的,可以用下面的公式计算wa
wa=1-|Ia I|/K
其中Ia,I分别代表安装了App a用户的Top K点击率内容列表和全站点击率Top K内容列表,|Ia I|表示它们二者交集的大小。类似地,也可以根据机型的Top K列表和全站点击率Top K内容比较获得机型的权重wd。
因此,所述步骤S2021中标记兴趣标签也可采用如下方法,包括:
步骤S2021a、统计所有用户的全局兴趣标签Top M;
步骤S2021b、给定一个App,统计安装了该App的用户群体中,最流行的Top L个兴趣标签;
步骤S2021c、比较该Top L个兴趣标签和全局兴趣标签Top M,取出区别于该全局Top M的兴趣标签作为该App的兴趣标签。
该方法要求事先挖掘出每个用户的兴趣标签,然后给定一个App,统计安装了这个App的用户群体中,最流行的Top K个兴趣标签。最后拿这个Top K个兴趣标签和所有用户统计出的Top M兴趣标签(全局Top M)做对比,取出和全局Top M不一样的作为这个App的兴趣标签。在每一项推荐内容已有兴趣标签的情况下,通过用户行为挖掘用户兴趣标签也是一项较成熟的技术。一般通过记录站内用户使用推荐服务的行为数据(例如,浏览过哪些内容,点击/收藏/评论过哪些内容),并根据内容的兴趣标签挖掘出用户的兴趣标签以及每个标签的权重,二者共同构成了用户的兴趣标签向量。具体方法如下:
a.对于每种用户动作act设定一个权重w,比如点击算1分,浏览但是没有点击算-0.2分,收藏算5分;
b.给定一个用户动作序列[act1,act2,…,act3],用户的兴趣标签向量计算如下:
其中Ti代表第i个用户动作的兴趣标签向量,wi代表第i个用户动作的权重。
参见图6,图6为本发明另一实施例的方法流程图。在本实施例中,通过移动设备信息进行推荐冷启动的方法,可包括如下步骤:
步骤S100、获取用户的移动设备信息,通过该用户的移动设备的操作系统获取该用户的移动设备型号及安装在该移动设备上的所有APP信息;
步骤S200、基于协同过滤产生对该用户的第一推荐列表,将数据库中与该用户的移动设备型号和/或安装的APP类似的其他用户喜欢的内容作为推荐内容生成第一推荐列表;
步骤S300、基于兴趣标签映射产生对该用户的第二推荐列表,把App显式地映射到一个或多个兴趣标签,然后根据每个兴趣标签筛选对应的内容作为推荐内容生成第二推荐列表;
步骤S400、合并所述第一推荐列表和所述第二推荐列表,并根据其中所列推荐内容的加权和重新排列推荐顺序,生成一优选推荐列表;
步骤S500、将所述优选推荐列表中的内容推荐给该用户。
该方法综合利用了基于协同过滤和基于兴趣标签映射两种方法的优点,混合二者的推荐结果。具体的,一项推荐内容的得分可以用表示为在两种策略中得分的加权和,这样二者都倾向于推荐的内容将会获得较高的权重并优先推荐给用户。其实质就是一个两个得分列表的合并问题,在处理上可以有很多方法。例如,令一项内容的得分:
score(i)=w1*score_1(i)+w2*score_2(i)
其中score_1表示i在列表1的得分,score_2表示i在列表2的得分,权重w1和w2可以通过实验调试出来。
本发明还提供一种用于上述通过移动设备信息进行推荐冷启动的方法的装置,包括数据采集模块、数据处理模块和数据输出模块,其中,数据采集模块用于获取用户的移动设备信息,通过该用户的移动设备的操作系统获取该用户的移动设备型号及安装在该移动设备上的所有APP信息;数据处理模块用于处理所述数据采集模块采集的移动设备信息并生成推荐列表,包括基于协同过滤产生对该用户的第一推荐列表,将数据库中与该用户的移动设备型号和/或安装的APP类似的其他用户喜欢的内容作为推荐内容生成第一推荐列表;或者基于兴趣标签映射产生对该用户的第二推荐列表,把App显式地映射到一个或多个兴趣标签,然后根据每个兴趣标签筛选对应的内容作为推荐内容生成第二推荐列表;以及合并所述第一推荐列表和所述第二推荐列表,并根据其中所列推荐内容的加权和重新排列推荐顺序,生成一优选推荐列表;数据输出模块用 于推送数据处理模块生成的推荐列表中的优选推荐内容给相应用户。
本发明直接利用用户移动设备的信息,无需用户主动授权,覆盖率100%。而且在实际应用中,本发明的效果优于基于用户社交网络信息的推荐冷启动,无论是用户的使用时间和内容点击率都可达到更高至少是同等的水平。
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。