当前位置:文档之家› 面向移动APP的个性化推荐算法

面向移动APP的个性化推荐算法

面向移动APP的个性化推荐算法作者:尚燕飞陈德运杨海陆来源:《哈尔滨理工大学学报》2018年第06期摘;要:针对移动互联网移动端的推荐系统推荐满意度和精度较低问题,在分析应用信息系统推荐方法的基础上,提出了一种基于用户相似度和主题相似度个性化的移动APP信息推荐方法,该方法采用用户相似度和个性化加权组合的方式生成信息推荐,使推荐信息更为个性化,提高了推荐精度。

同时针对多用户公用账号和兴趣发生变化的推荐问题,提出了一种基于复杂兴趣的推荐算法,该方法通过挖掘用户间的相似度、用户的行为操作及兴趣取向,使推荐信息更为准确。

同时,相比于性能较好的Popular推荐算法,本算法在准确率上提高了3.91%,召回率提高了3.45%,覆盖率提高了4.84%,性能明显提高。

因此,文中所提出方法用于移动APP的个性化推荐,为移动APP的个性化推荐提供了一种新方法。

关键词:移动APP;推荐算法;推荐精度;个性化信息DOI:10.15938/j.jhust.2018.06.021中图分类号: TP393.08文献标志码: A文章编号: 1007-2683(2018)06-0116-08Abstract:For the problem of low precision to both experience satisfaction and personalized requirement of Internet mobile terminal;based on the recommendation method of analyzing information system;a method of mobile APP information recommendation based on user similarity and subject similarity is proposed;which generated information recommendation by the weighted combination of user similarity and personalized;that the recommended information is more personalized;and the recommended accuracy is improved. At the same time;a recommendation algorithm based on complex interest is proposed;which makes the recommendation information more accurate by mining the similarity between users;the behavior of users and the orientation of interest for the recommendation problem of multi-user public account and interest change. Compared with the Popular which has better performance;the algorithm improves the accuracy rate by 3.91%;the recall rate is 3.45%;the coverage rate is improved by 4.84%;and the performance is improved obviously. Therefore;the method proposed in this paper is used to the personalized recommendation ofAPP;which provides a new method for mobile APP′s personalized recommendation.Keywords:mobile application;recommendation algorithm;the accuracy of recommending;personalized information0;引;言隨着互联网技术的发展,移动端与互联网的迅速融合,越来越多的移动APP出现在了用户的移动设备上。

随之而来的移动APP网络信息推荐服务需要响应用户实时、连续、个性化的服务需求。

目前,推荐类的系统主要有基于内容的推荐系统、协同过滤推荐系统以及混合推荐系统[1]。

基于内容的推荐是根据信息的内容与用户偏好之间的相关性向用户推荐,比较适用于文本信息推荐[2]。

协同过滤推荐是根据具有类似观点用户的行为对目标用户进行推荐[3]。

混合推荐是为了解决单一推荐技术的不足,按照不同的混合策略(如加权、特征组合等)将不同的推荐技术进行组合从而完成推荐[4]。

但是,当前多数移动APP的信息推荐并未充分考虑用户的个性化服务需求,只是根据用户的历史浏览记录和选择标签的形式来向用户推荐相关信息,使得信息推荐的精度和用户使用满意度达不到较高的水平,特别是在复杂兴趣推荐方面难以达到用户的需求。

目前比较出名的Applause推荐系统是基于位置上下文的个性化推荐系统,其位置信息主要通过移动设备自动感知或人为设定获取,但是该系统没有考虑新用户的个人兴趣,只是根据当前位置附近APP的使用频繁程度向用户进行推荐[5]。

因此,本文通过挖掘用户间的相似度,以及用户的行为操作,并结合兴趣取向,设计了一种具有较好推荐精度并满足用户需求的移动APP推荐算法。

在推荐系统中,冷启动一直是一个很重要的问题。

由于很多移动APP目前都支持使用第三方登陆,此处的冷启动用户兴趣偏好主要通过第三方获取偏好模型,在此不再赘述。

1;离线状态下的信息推荐1.1;用户相似度的定义及计算在具有推荐系统的移动APP中,用户为了得到更加丰富、更加符合自己兴趣的信息之前,往往需要注册个人信息来使系统推荐给自己喜欢的数据,例如豆瓣中需要用户选择类型标签,书单推荐类软件需要让用户输入自己喜欢的书籍类型或者读过的书籍名称,还有招聘类的软件需要用户输入条件信息来筛选自己想要的信息。

以上信息无非分为两类,即名称型的用户属性(比如专业、学历等)和数值型的用户属性(比如年龄、身高、健身频率等)。

1)对于用户属性中的数值型属性,主要是计算不同用户之间属性的绝对差值‖d‖=DA-DB。

目前,有的学者将不同属性绝对差值的最小和最大组成差值区间,在得到用户的数值型属性绝对差以后,差值落到某个小区间,对以上属性值区间给定相应的距离,并以此差值作为用户个人信息数值属性的度量距离Lnum[6]。

但是,这种方法在统计用户的数值属性的时候,存在着数据颗粒度大小差距过大的问题,并且没有考虑到数据的多个属性使用的是不同的度量单位(比如,用户A的身高为170cm,用户B的身高为175cm,则Lnum=5cm;同样,用户A 的工资为3000RMB,用户B的工资为4000RMB,则Lnum=1000RMB),这将直接影响聚类分析的结果。

为此,首先将数值型属性进行标准化,标准化的方法主要使用数值属性标准化方法[7]。

对于一个用户u,其属性有n个,则将全部属性定义为一个n维向量f(x1,x2,…,xn),xi为第i个属性,则采用平均绝对差:离线状态下,选取喜好程度比较高的前N条信息推荐给用户。

2;在线个性化的信息推荐2.1;在线用户行为权重特征求解算法LDA是一种非监督学习技术,可以用来识别大规模文档集或语料库中潜藏的主题信息[8]。

它采用了词袋的方法,这种方法将每一篇文档视为一个词频向量,从而将文本信息转化为了易于建模的数字信息。

但是词袋方法没有考虑词与词之间的顺序,这简化了问题的复杂性,同时也为模型的改进提供了契机[9]。

每一篇文档代表了一些主题所构成的一个概率分布,而每一个主题又代表了很多单词所构成的一个概率分布。

C-LDA主题模型是在三层LDA 算法的文档主题层之前增加用户选择层形成四层C-LDA算法,在选择主题概率向量时考虑其关注者的影响[10]。

基于移动APP的个性化推荐算法主要运用LDA主题模型判断用户关注项目的主题分布和用户的兴趣偏好。

目前很多移动APP为了挖掘用户的喜好和习惯,通常有很多体现用户喜好的行为操作选项,例如对于某些信息,用户可以点赞、分享、评论、转发、收藏等操作,反应了用户对于此信息不同的喜好程度[11]。

通常情况下,点赞比较简单,用户一般对于自己喜欢的或者有共鸣的信息进行点赞操作;相比之下,评论操作比点赞操作更为复杂,用户需要将自己的情感和思想用文字的形式表示出来,因此权重比点赞更高;而分享操作一般在用户认为此条信息对自己有很高的价值,并且对身边的朋友有很高的价值的情况下才会发生,权重最高。

因此将这些能够反应用户情感喜好程度的行为操作进行抽象,并賦予相应的权重,累计到用户的兴趣偏好中。

算法基本思想是:首先对用户具有行为操作的项目使用LDA提取用户偏好。

如果用户对某一模块的某一条信息具有能够体现用户喜好的行为操作(点赞、评论、分享,此处只列举这三项操作),那么我们有理由认为,这条信息对用户是有价值的。

由于本算法主要应用于创业帮APP的个性化项目信息推荐模块,模块的用户交互功能主要有点赞、评论与分享,基于项目中用户操作频率与喜好之间的对应关系,对这三项操作分别赋予2,3,5的权重(不同APP 下的权重可以根据情况另行赋予),即将行为操作转化为评分操作。

于是我们在计算用户的兴趣偏好的时候,将此类的兴趣偏好的权重按照一定的规则提高。

算法流程如下:首先对用户的偏好评分集进行初始化(1~2行),然后迭代循环判断用户的偏好集合(3~10行)。

对于某一信息的评分是否超过一个阈值n,然后判断该用户在历史偏好中的评分是不是超过了阈值n,如果都超过了,则相应地提高用户对于该兴趣的权重值(4~8行)。

反之,则降低用户对于该兴趣的权重值。

最后规范化并返回S(u)。

因为此算法只遍历一次信息源,所以算法复杂度为O(N)。

2.2;推断用户兴趣取向用户发布的每一条信息或者项目通常会涉及一个或多个主题,此类信息发布的特征正好和LDA主题模型相匹配。

基于此,在判断用户发布的信息所属的主题分布时主要使用LDA主题模型,根据此模型可以初步判断用户的兴趣取向[12]。

户兴趣会发生变化,这里需要在离线状态下周期性地构建训练集来更新φjwi,从而更新用户的兴趣数据集。

2.3;复杂兴趣下的用户偏好推荐在很多推荐算法中,对于用户兴趣突然发生变化或者多人公用一个账户的复杂兴趣推荐,目前还没有比较有效的在线计算方法解决[14]。

相关主题