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

2018-02-13 01:28尚燕飞陈德运杨海陆
哈尔滨理工大学学报 2018年6期
关键词:移动APP

尚燕飞 陈德运 杨海陆

摘 要:针对移动互联网移动端的推荐系统推荐满意度和精度较低问题,在分析应用信息系统推荐方法的基础上,提出了一种基于用户相似度和主题相似度个性化的移动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-08

Abstract: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 of APP which provides a new method for mobile APP′s personalized recommendation.

Keywords:mobile application;recommendation algorithm;the accuracy of recommending;personalized information

0 引 言

隨着互联网技术的发展,移动端与互联网的迅速融合,越来越多的移动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]。基于此,提出一种基于复杂兴趣推荐的算法,用来判断用户兴趣突然变化或者多个人公用一个账户的情况。

其基本思想是:首先根据用户在一个时间周期内的地理位置信息的变化,构造用户自己的时间和行为偏好模型,因为在多个时间周期内,移动用户的位置变化往往有一定的规律性,这是我们进一步挖掘用户的行为偏好的前提条件[15]。以此偏好模型作为基础,计算下一个周期内的用户偏好模型。设定一个周期阈值,以M个周期为基础,计算每一个偏好的相似度,取平均值作为基础偏好模型,此时再设定一个合适的偏好阈值,作为判断用户兴趣突然发生变化或者多用户共同使用一个账户的情况。为了提高判断的精度,根据用户在一个时间周期内的行为操作属性的变化加入到相似度判断中,并将用户对于移动APP的使用频率加入到数据集中,定义如下:

算法流程如下:首先,初始化用户U的推荐列表为空,并令simtool初始化为空(1~2行),然后根据用户的每个周期的偏好矩阵uk,通过循环迭代,计算相近的两个周期内的偏好矩阵的相似度,并将前k个相似度依次加入到simtool中(3~5行)。当k=M-1时,将第M个周期的用户偏好矩阵与前M-1个周期的总体平均相似度对比,若相似度之差小于阈值σ,则说明第M个周期的用户行为偏好与之前的用户行为偏好相似度很低,重新根据推荐算法生成推荐列表;若相似度大于阈值σ,则说明相似度稳定,按照原来的用户偏好算法生成推荐列表(6~12行)。

在计算用户临近周期偏好相似度时,我们采取余弦相似度计算方法:

3 实验与结果分析

实验运行在有用户基础的移动APP软件中,实验代码采用Java语言实现,开发环境为MyEclipse10和Android Studio1.3,数据库使用的是MySQL,实验环境是由Windows7操作系统、双核英特尔处理器、4GB内存的PC组建。

3.1 实验数据集

实验数据主要来自创业帮APP项目2016年3月份到8月份的部分数据,包括1000位用户以及他们在这段时间中发布的所有项目信息,约3000条,这些数据保存于MySQL数据库系统中。

数据集中一条项目信息的数据项有:项目编号、项目名称、项目发起人、项目类型、发起时间、项目简介、项目详细介绍、项目需求、项目进展、点赞数、评论、转发、被关注数、浏览量。其中项目发起人已做匿名化处理,防止泄露用户隐私。将实验数据分为两大部分,一部分为训练集,占70%,剩余的30%作为测试集。首先设置为用户推荐的个性化项目信息为20条。以下将根据测评方法对项目进行测评,最后展示实验结果数据。

3.2 LDA模型对比

对C-LDA算法进行改进,现将改进之后的算法与C-LDA、LDA进行比较。比较方法通过计算Perplexity方法计算各模型的泛化程度来评估性能的优劣。Perplexity值越低,模型的性能越好。实验数据主要来自张磊等人的实验结果,然后计算改进后的C-LDA算法,具体数据如表1所示。

以上实验表明,收敛后改进的C-LDA算法的Perplexity值要小于C-LDA和LDA,证明了改进后的算法性能较好。

3.3 离线计算推荐实验

目前很多学者都对推荐类的算法进行了研究[16],评测算法的指标主要以召回率和准确率作为主要的指标。对于用户的交互数据,主要选取了所有用户的真实历史数据,这些数据集包含不记名的用户属性以及互动信息,同时剔除了那些受欢迎用户的互动,测试集中选择的是在训练期内与其他用户产生了互动信息的用户。其中,召回率和准确率的数据表主要包括用户感兴趣的项目、不感兴趣的项目、向用户推荐的项目及没给用户推荐的项目数。其中,记推荐的新闻是用户感兴趣的新闻为N,推荐的新闻总数记为M,没有被推荐的项目但用户却感兴趣的项目数为N′,则准确率和召回率公式为:

p=NM,p′=NN+N′

同时,用户邻居数即相似用户的个数K是一个很重要的参数,通过对K取不同的值,进行对比实验,得到表2。

由表2可知,有80个相似度较高的用户时,对于推荐的准确率和召回率是最好的。

在实验中,针对相似度计算中3个权重α,β,χ,需要满足条件为:α+β+χ=1,根据实际测试数据及现行规划的最小二乘拟合法,不断去调整α,β,χ的值,獲得最佳的实验结果,最终通过多次试验α=0.46,β=0.32,χ=0.22时,算法取得较好的推荐效果。

为了说明本离线算法的优越性,我们选择K=80,α=0.46,β=0.32,χ=0.22,并与现有的推荐算法UPCC[17]、IPCC[18]、PMF[19]做了对比实验。对比数据如表3所示。

由实验数据得出,本相似度算法和其他算法相比,优于其他推荐算法,召回率和准确率都有提高。

3.4 在线个性化推荐实验

在线个性化推荐实验主要结合离线计算的结果,同时调用在线推荐算法,为用户在线状态下注册个人信息、多个用户共用同一账号以及用户兴趣突然发生变化的情况下进行个性化信息推荐,为用户解决复杂情况下的信息推荐。

数据集同样选取创业帮APP中1000个注册用户,通过数据预处理将点赞、评论、转发这三项数据转化为相应的兴趣偏好评分信息集作为测试集,清除用户在数据集中的评分信息,但保留基本的注册信息,剩余的数据作为训练集。将1000个用户看做新用户,当这些用户登陆到APP系统以后,将这些用户的行为操作转化为评分行为后输入到系统来表示当前的兴趣偏好,最后调用在线个性化推荐算法,更新用户的兴趣数据集,进行项目信息推荐。 准确率、召回率公式同离线计算公式相同。在这里,加入覆盖率作为对比依据,覆盖率指标是指算法向用户推荐的信息能覆盖全部信息的比例[20]。覆盖率公式如下:

计算1000个用户的平均准确率、召回率和覆盖率。与本算法做对比的是离线计算推荐算法、Radom推荐算法(每次为用户随机推荐20条项目信息)、Popular推荐算法(每次为用户推荐点赞等用户操作量最高的热门项目信息)。各算法性能对比见表4。

通过表3数据比较,可以得出本算法在性能上与Radom推荐算法和Popular推荐算法以及离线推荐算法相比,明显要优于这几类算法。

通过以上实验,证明了本算法相对于相关算法在用户满意度方面更高,同时在准确率、召回率及覆盖率方面有很好的表现,进一步证明了本算法的合理性。

4 结 论

本文研究了移动APP的个性化推荐问题的难点,同时提出了基于用户相似度和用户行为操作的个性化推荐算法。离线推荐方面,相比于用户相似度推荐算法,本算法通过计算用户相似度并结合用户间互动行为相似度,选取喜好程度比较高的信息推荐给用户,提高了推荐精度。在线推荐方面,通过在线用户行为权重特征求解算法,结合LDA主题模型提取用户偏好,进而判断用户兴趣取向,推荐个性化信息。在复杂兴趣推荐方面,由于目前还没有比较有效的在线计算方法解决,基于此,提出一种基于复杂兴趣推荐的算法,用来判断用户兴趣突然变化或者多个人公用一个账户的情况。最后,通过实验证明,本文算法可行,并在信息推荐精度和个性化方面优于其他算法。同时本文算法还需要在推荐效率和满足大用户量的情况下进行改进,以适应更多的移动APP推荐系统。

参 考 文 献:

[1] ADOMAVICIUS G,TUZHILIN A.Towards the Next Generation of Recommender Systems:a Survey of the State-of-the-art and Possible Extensions [J].IEEE Transactions on Knowledge and Data Engineering,2005,17(6):734-749.

[2] 林钦.一种基于网页剪辑的信息推荐系统[J].鲁东大学学报(自然科学版),2012,28(4):319-321.

[3] 李涛.推荐系统中若干关键问题研究[D].南京:南京航空航天大学,2008.

[4] 徐海玲,吴潇,李晓东,等.互联网推荐系统比较研究[J].软件学报,2009,20(2):250-362.

[5] 林钦.一种协同过滤的移动APP推荐算法的设计[D].鲁东大学学报(自然科学版),2015,31(4):309-312.

[6] 荣辉桂,火生旭,胡春华等.基于用户相似度的协同过滤推荐算法[J].通讯学报,2014,2:16-24.

[7] 严晓光,褚学征.聚类在网络入侵的异常检测中的应用[J].计算机系统应用,2005:34-37.

[8] EBBINGHAUS H.MEMORY:A Contribution to Experimental Psychology[J].Annals of Neurosciences,2013,204):155-156.

[9] CHA M,HADDADI H.Measur-ing User Influence in Twitter: The Million Follower Fallacy[J].Icwsm′10 Proceedings of International Aaai Confer-ence on Weblogs&Social,2010(2):7-8.

[10]KIM Younghoon.TWITOBI:A Rec-ommendation System for Twitter Using Probabilistic Model-ing[C]//2013 IEEE 13th International Conference on DatMining IEEE,2011:340-349.

[11]KWAK H,LEE C.What is Twitter,as-ocialnetwork or a News Media[C]//Proceedings of the 19th International Conference on World Wide Web.ACM,2010:591-600.

[12]任磊.一种结合评分时间特性的协同推荐算法[J].计算机应用与软件,2015(05):12-21.

[13]王立才,孟祥武,张玉洁.上下文感知推荐系统[J].软件学报,2012,23(1) : 1-20.

[14]王帅,兰少华.基于显式和隐式社交网络的混合推荐[J].计算机应用与软件,2016(11):56-57.

[15]高明.面向微博系统的实时个性化推荐[J].计算机学报,2014(4):963-975.

[16]朱郁筱.推荐系统评价指标综述[J].电子科技大学报,2012(3):163-175.

[17]RESNICK,Paul,Neophytos,Suchak,Mitesh,et al. GroupLens:an Open Architecture for Collaborative Filtering of Netnews[C]∥In Proceedings of the1994 ACM conference on Computer supported cooperative work.Chapel Hill,USA,1994:175-186.

[18]SARWAR B,KARYPIS G,KONSTAN J,et al.Item-based Collaborative Filter Recommendation Algorithms[C]∥Proceedings of the 10th intemational conference on World Wide Web,Hong Kong,China,2001:285-295.

[19]SALAKHUTDINOV R AndriyMnih.Probabilistic Matrix Factorization.Advances in Neural Information Processing Systems,2008:1257-1264.

[20]孫晓会.基于用户行为的个性化新闻推荐系统研究[D].成都:电子科技大学,2015:22-24.

(编辑:温泽宇)

猜你喜欢
移动APP
基于条形码及移动APP的光缆信息查询系统技术研究
基于移动APP的大学生个人知识高效管理刍议
信息技术环境下会计专业教学模式的构建
高校学习者对日语学习APP使用状况的研究调查
移动APP的应用与发展
移动APP在英语教学中的应用研究
基于数字化校园的移动APP 研发与应用
基于移动App的大学生个人知识高效管理刍议