CN107832426B - 一种基于使用序列上下文的app推荐方法及系统 - Google Patents

一种基于使用序列上下文的app推荐方法及系统 Download PDF

Info

Publication number
CN107832426B
CN107832426B CN201711117741.8A CN201711117741A CN107832426B CN 107832426 B CN107832426 B CN 107832426B CN 201711117741 A CN201711117741 A CN 201711117741A CN 107832426 B CN107832426 B CN 107832426B
Authority
CN
China
Prior art keywords
app
user
context
preference
neural network
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201711117741.8A
Other languages
English (en)
Other versions
CN107832426A (zh
Inventor
徐亚南
朱燕民
沈艳艳
俞嘉地
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Jiaotong University
Original Assignee
Shanghai Jiaotong University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Jiaotong University filed Critical Shanghai Jiaotong University
Priority to CN201711117741.8A priority Critical patent/CN107832426B/zh
Publication of CN107832426A publication Critical patent/CN107832426A/zh
Application granted granted Critical
Publication of CN107832426B publication Critical patent/CN107832426B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0631Item recommendations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • H04M1/72406User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality by software upgrading or downloading

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • General Business, Economics & Management (AREA)
  • Evolutionary Computation (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • Development Economics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Economics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于使用序列上下文的APP推荐方法及系统,所述推荐方法包括如下步骤:步骤一,对任意用户,利用已训练好的神经网络模型,预测该用户对所有未安装的APP的偏好程度;步骤二,根据用户对所有未安装的APP的偏好进行排序,将偏好值最大的K个作为结果推荐给该用户,本发明根据用户使用APP的记录来抽取用户对APP的偏好情况,并根据用户使用APP的上下文信息,来解决数据稀疏性问题,以提高推荐准确率。

Description

一种基于使用序列上下文的APP推荐方法及系统
技术领域
本发明涉及一种APP(Application,应用程序)推荐方法及系统,特别是涉及一种基于使用序列上下文的APP推荐方法及系统。
背景技术
近些年,随着人们生活水平的提高和科学技术的进步,智能手机逐渐成为人们生活的一部分。而智能手机上多种多样的APP也为人们提供了很多便利。然而在APP带给我们便利的同时,数目众多APP也让人们的选择变得更加困难。尤其是在数以万千的应用中,找到符合人们需求的APP更是十分困难。因此很多互联网公司提供了应用商店,这些商店汇总了手机上的APP程序,同时可以根据APP的安装情况来推荐一些APP给用户。
在科研领域,也有很多工作致力于设计更优良的推荐方法,提高推荐的准确度。然而,这些工作大多是根据一个用户对物品的打分矩阵,如电影评分等,来进行物品推荐。这些评分直接反映了用户对物品的喜好程度,但是评分数据很难直接获得。因为用户很少主动去给物品打分,这个问题在手机APP的使用上更为严重,与之相反,用户的隐式反馈,如用户点击、安装、删除等行为,却是比较容易获得的。但是隐式反馈也存在数据稀疏的问题,即用户仅安装数量十分少的APP,但是APP的总数却十分庞大。因此,本发明欲提供一种根据用户使用APP的记录来抽取用户对APP的偏好情况,同时根据用户使用APP的上下文信息,来解决数据稀疏性问题,提高推荐准确率的基于使用序列上下文的APP推荐方法及系统。
发明内容
为克服上述现有技术存在的不足,本发明之目的在于提供一种基于使用序列上下文的APP推荐方法及系统,以根据用户使用APP的记录来抽取用户对APP的偏好情况,并根据用户使用APP的上下文信息,来解决数据稀疏性问题,以提高推荐准确率。
为达上述及其它目的,本发明提出一种基于使用序列上下文的APP推荐方法,包括如下步骤:
步骤一,对任意用户,利用已训练好的神经网络模型,预测该用户对所有未安装的APP的偏好程度;
步骤二,根据用户对所有未安装的APP的偏好进行排序,将偏好值最大的K个作为结果推荐给该用户。
进一步地,于步骤一之前,还包括如下步骤:
根据用户对APP的偏好和APP使用序列上下文建立神经网络模型,并利用训练样本进行模型训练,获得训练好的神经网络模型。
进一步地,所述根据用户对APP的偏好和APP使用序列上下文建立神经网络模型,并利用训练样本进行模型训练,获得训练好的神经网络模型的步骤进一步包括:
步骤S1,根据用户的使用记录生成偏好矩阵;
步骤S2,根据用户的APP使用序列抽取出用户使用APP对应的上下文;
步骤S3,根据用户偏好和APP使用上下文建立神经网络模型;
步骤S4,获取训练样本,对该神经网络模型进行训练。
进一步地,于步骤S1中,所述偏好矩阵Y中元素的取值情况如下:
Figure BDA0001466668690000021
其中,取值1表示用户喜欢对应的APP,而取值0表示未观察到的状态。
进一步地,于步骤S2中,所述APP对应的上下文为使用序列中用户使用一个APP的记录附近的其他APP。
进一步地,所述神经网络模型包括输入层、嵌入层以及预测输出层,输入层的输入是一个用户和一个APP的向量表示,经嵌入层得到用户特征向量和APP特征向量,合并后经预测输出层输出用户对APP的偏好预测和用户使用该APP上下文的预测。
进一步地,用户对APP的偏好预测值计算方法如下:
Figure BDA0001466668690000031
用户偏好预测的损失函数如下:
Figure BDA0001466668690000032
其中,
Figure BDA0001466668690000033
表示用户u的one-hot向量与嵌入层参数P相乘得到的向量表达,
Figure BDA0001466668690000034
是APPa的向量表达,f表示神经网络的函数。P和Q分别是用户和APP向量表达的参数,θf是神经网络中其他的参数。
进一步地,上下文预测的损失函数为:
Figure BDA0001466668690000035
其中p(c|u,a)为给定用户u和APPa的情况下,上下文c出现的概率。
进一步地,步骤S4训练过程如下:
(1)使用随机数初始化模型参数;
(2)初始化t=1;
(3)随机选择一批数量为B样本(u,a)而且yua=1,作为正样本,标记为1,对每个正样本采样Np个负样本(u,a′),标记为0;
(4)使用损失函数
Figure BDA0001466668690000036
更新模型参数;
(5)t=t+1。如果t<T1回到步骤(3);
(6)初始化t=1;
(7)采样一批数量为B的上下文样本(u,a,c),对每一个上下文样本采样出Nc个负样本;
(8)使用损失函数
Figure BDA0001466668690000042
更新模型参数;
(9)t=t+1,如果t<T2回到步骤(7);
(10)判断损失函数
Figure BDA0001466668690000041
是否收敛,收敛则退出,未收敛则返回步骤(2)
为达到上述目的,本发明还提供一种基于使用序列上下文的APP推荐系统,包括:
偏好程序预测单元,根据用户的APP使用记录,对任意用户利用已训练好的神经网络模型,预测该用户对所有未安装的APP的偏好程度;
推荐单元,用于根据用户对所有未安装的APP的偏好进行排序,将偏好值最大的K个作为结果推荐给该用户。
与现有技术相比,本发明一种基于使用序列上下文的APP推荐方法及系统通过从用户的APP使用记录中抽取用户对APP的偏好以用于APP的推荐,同时抽取用户使用APP的上下文用来解决用户偏好数据太稀疏的问题,提高了APP推荐的准确度。
附图说明
图1为本发明一种基于使用序列上下文的APP推荐方法的一个实施例的步骤流程图;
图2为本发明一种基于使用序列上下文的APP推荐方法的另一实施例的步骤流程图;
图3为本发明具体实施例中预处理单元的细部结构图;
图4为本发明一种基于使用序列上下文的APP推荐系统的一个实施例的系统架构图;
图5为本发明一种基于使用序列上下文的APP推荐系统的另一实施例的系统架构图;
图6为本发明具体实施例中模型建立单元的细部结构图。
具体实施方式
以下通过特定的具体实例并结合附图说明本发明的实施方式,本领域技术人员可由本说明书所揭示的内容轻易地了解本发明的其它优点与功效。本发明亦可通过其它不同的具体实例加以施行或应用,本说明书中的各项细节亦可基于不同观点与应用,在不背离本发明的精神下进行各种修饰与变更。
图1为本发明一种基于使用序列上下文的APP推荐方法的步骤流程图。如图1所示,本发明一种基于使用序列上下文的APP推荐方法,包括如下步骤:
步骤101,针对每一个用户,利用已训练好的神经网络模型,预测该用户对所有未安装的APP的偏好程度。
步骤102,根据用户对所有未安装的APP的偏好进行排序,将偏好值最大的K个作为结果推荐给该用户。
优选地,如图2所示,本发明一种基于使用序列上下文的APP推荐方法,于步骤101之前,还包括如下步骤:
步骤100,根据用户对APP的偏好和APP使用序列上下文建立神经网络模型,并使用梯度下降算法进行模型训练,获得训练好的神经网络模型。
具体地,步骤100进一步包括:
步骤S1,根据用户的使用记录生成偏好矩阵。其中偏好矩阵的一行表示一个用户,一列表示一个APP。如果用户使用过一个APP,则矩阵中对应项赋值为1,否则赋值为0。
在本发明具体实施例中,使用U和A分别表示用户和APP的集合。用户和APP的总数分别是M和N。根据用户使用APP的记录,则可以生成用户对APP的偏好矩阵Y,偏好矩阵Y中元素的取值情况如下公式:
Figure BDA0001466668690000051
该矩阵使用1表示用户喜欢该APP,而0表示未观察到的状态,可能是用户不喜欢该APP,也可能是用户还没有用过该APP。
步骤S2,根据用户的APP使用序列抽取出用户使用APP对应的上下文,即,使用序列中用户使用一个APP的记录附近的其他APP。
用户使用APP的上下文是指在APP使用日志中,该用户使用该APP的记录附近的APP。例如对一个用户u,他的APP使用序列是(a1,t1),...,(an,tn),其中αi表示APP,ti表示使用该APP的时刻。对于一个记录(αi,ti),用户u使用APPαi的两个上下文是{ai-1,ai+1}。较佳地,为了去除使用序列中的噪声,例如前一天使用的最后一个APP记录和今天使用的第一个APP记录,虽然相邻,但是并没有相互的关联,将原始的使用序列根据生成的日期被分割成子序列,因为用户的生活习惯经常是以一天为一个周期,对于(u,a)的所有上下文记录,转换成格式{a′:num,...},num是该上下文a′出现的次数。
步骤S3,根据用户偏好和APP使用上下文建立一个神经网络模型,所述神经网络模型包括输入层、嵌入层以及预测输出层,输入层的输入是一个用户和一个APP的向量表示,经嵌入层得到用户特征向量和APP特征向量,合并后经预测输出层输出用户对APP的偏好预测和用户使用该APP上下文的预测。
在本发明具体实施例中,该神经网络模型的架构如3所示,其中,
模型输入:模型的输入是一个用户和一个APP的向量表示,这里使用one-hot向量
Figure BDA0001466668690000061
Figure BDA0001466668690000062
来分别唯一表示用户u和APPa。即该向量只有一位为1,其他位为0。不同的用户向量不同,不同的APP向量也不同。向量的长度分别是用户数目和APP数目。
模型输出:模型的输出包括两个部分,图3中左边部分是用户对APP的偏好预测,即0-1之间的一个值。图3中右边部分是用户使用该APP的上下文。
对应于模型的输出,模型的损失函数如下:
Figure BDA0001466668690000063
其中,
Figure BDA0001466668690000064
是用户偏好预测的误差,
Figure BDA0001466668690000065
是上下文预测误差,λ是用来平衡这两部分的参数,可以人为设定。以下分别介绍该模型中的用户的偏好预测和上下文预测:
1、用户对APP偏好的预测
在本发明具体实施例中,用户对APP的偏好预测值计算方法如下:
Figure BDA0001466668690000071
Figure BDA0001466668690000072
表示用户u的one-hot向量与嵌入层参数P相乘得到的向量表达,
Figure BDA0001466668690000073
是APPa的向量表达。f表示神经网络的函数。P和Q分别是用户和APP向量表达的参数,θf是神经网络中其他的参数。神经网络具体的函数形式如下:
Figure BDA0001466668690000074
其中hM表示用户和APP的向量合并,这里直接将用户和APP的向量拼接成一个新的向量。hi(x)表示神经网络的一个隐藏层,ho表示输出层,隐藏层和输出层的形式如下
hi(x)=φ(Wix+bi)
其中x表示该层的输入,Wi和bi分别是权重和偏置参数。φ(·)是Sigmoid函数,可以将输出控制在范围[0,1]之间。
Figure BDA0001466668690000075
根据用户的隐式反馈,即使用记录,只能获取用户喜欢那些APP,即yua=1。而当yua为0时并不能确定用户u不喜欢APPα。因此不能将所有的yua=0的元素作为训练样本,只能采样出一部分作为负样本进行模型训练。采样方法是给定一个正样本(u,a),其标记为1,即yua=1,作为训练样本。同时对该用户u,从未安装的APP中均匀采样出Np个负样本(u,a′),标记为0作为训练数据。
用户偏好预测的损失函数定义如下
Figure BDA0001466668690000081
2、用户使用APP上下文的预测
除了用户的偏好预测以外,上下文的预测方法可以作为正则化部分,更新用户和APP的向量表达。上下文预测的损失函数定义如下:
Figure BDA0001466668690000082
其中p(c|u,a)是给定u和a的情况下,上下文c出现的概率。下面介绍该概率如何计算,先定义神经网络上下文隐含层的输出为
Figure BDA0001466668690000083
在最后一层经过softmax函数,可以计算出上下文c出现的概率。softmax函数计算公式如下。
Figure BDA0001466668690000084
其中
Figure BDA0001466668690000085
是上下文c对应的向量。Softmax函数计算的结果即p(c|u,a)。但是softmax函数的分母部分,需要计算zua和所有APP向量的内积,因此计算量较大,可以修改为负采样的方法来学习模型。假设(u,a,c)是根据用户使用APP记录得到的样本。可以认为这些样本是正样本C+,并针对每个正样本采样出负样本集合C-。使用逻辑回归的方法来判断一个样本是否为正样本,则损失函数就可以定义为
Figure BDA0001466668690000086
针对一个(u,a)会有多个上下文,而且不同的用户,不同的APP上下文的数目也不同,这样一些活跃的用户和热门的APP会有特别多的训练数据,会导致训练数据不均衡的问题。解决方法是给定一个(u,a)采样出固定数目的上下文c。在(u,a)所有上下文的集合C中,本发明提供了以下三种不同的采样的概率:
1)基于频率的采样概率pf。n(c|u,a)是对于(u,a)来说,上下文c出现的次数。
Figure BDA0001466668690000091
2)基于idf的采样概率pi。APP的idf定义是
Figure BDA0001466668690000092
Figure BDA0001466668690000093
3)基于频率和idf的采样概率pfi。首先根据上下文APP的频率计算概率分布pf,然后结合每个APP的idf值计算采样概率pfi
Figure BDA0001466668690000094
在获取上下文样本之后,对每个上下文样本,还需要进行负采样,用来解决softmax函数计算量大的问题。给定一个上下文样本(u,a,c),我们在所有的APP中根据APP的受欢迎程度采样出Nc个负样本,采样概率定义如下
Figure BDA0001466668690000095
其中nU(a)=|{u∈U|yua=1}|,表示安装了APPa的用户数目,用来表示该APP的受欢迎程度。
步骤S4,获取训练样本,对该神经网络模型进行训练。
具体地,步骤S4的训练方法如下:
(1)使用随机数初始化模型参数
(2)初始化t=1
(3)随机选择一批数量为B的样本(u,a)而且yua=1,作为正样本,标记为1,对每个正样本采样Np个负样本(u,a′),标记为0
(4)使用损失函数
Figure BDA0001466668690000096
更新模型参数
(5)t=t+1,如果t<T1回到步骤(3)
(6)初始化t=1
(7)采样一批数量为B的上下文样本(u,a,c),对每一个上下文样本采样出Nc个负样本
(8)使用损失函数
Figure BDA0001466668690000101
更新模型参数
(9)t=t+1。如果t<T2回到步骤(7)
(10)判断损失函数
Figure BDA0001466668690000103
是否收敛,收敛则退出。未收敛则返回步骤(2)。
图4为本发明一种基于使用序列上下文的APP推荐系统的系统架构图。如图4所示,本发明一种基于使用序列上下文的APP推荐系统,包括:
偏好程序预测单元401,根据用户的APP使用记录,对任意用户,利用已训练好的神经网络模型,预测该用户对所有未安装的APP的偏好程度。
推荐单元402,用于根据用户对所有未安装的APP的偏好进行排序,将偏好值最大的K个作为结果推荐给该用户。
优选地,如图5所示,本发明一种基于使用序列上下文的APP推荐系统,还包括:
模型建立单元400,用于根据用户对APP的偏好和APP使用序列上下文建立神经网络模型,并使用梯度下降算法进行模型训练,获得训练好的神经网络模型。
具体地,如图6所示,模型建立单元400进一步包括:
偏好矩阵生成单元400a,根据用户的使用记录生成偏好矩阵。其中偏好矩阵的一行表示一个用户,一列表示一个APP。如果用户使用过一个APP,则矩阵中对应项赋值为1,否则赋值为0。
在本发明具体实施例中,使用U和A分别表示用户和APP的集合。用户和APP的总数分别是M和N。根据用户使用APP的记录,则可以生成用户对APP的偏好矩阵Y,偏好矩阵Y中元素的取值情况如下公式:
Figure BDA0001466668690000102
该矩阵使用1表示用户喜欢该APP,而0表示未观察到的状态,可能是用户不喜欢该APP,也可能是用户还没有用过该APP。
APP上下文抽取单元400b,根据用户的APP使用序列抽取出用户使用APP对应的上下文,即,使用序列中用户使用一个APP的记录附近的其他APP。
用户使用APP的上下文是指在APP使用日志中,该用户使用该APP的记录附近的APP。例如对一个用户u,他的APP使用序列是(a1,t1),...,(an,tn),其中ai表示APP,ti表示使用该APP的时刻。对于一个记录(ai,ti),用户u使用APPai的两个上下文是{ai-1,ai+1}。较佳地,为了去除使用序列中的噪声,例如前一天使用的最后一个APP记录和今天使用的第一个APP记录,虽然相邻,但是并没有相互的关联,将原始的使用序列根据生成的日期被分割成子序列,因为用户的生活习惯经常是以一天为一个周期,对于(u,a)的所有上下文记录,转换成格式{a′:num,...},num是该上下文a′出现的次数。
神经网络模型建立单元400c,用于根据用户偏好和APP使用上下文建立一个神经网络模型,所述神经网络模型包括输入层、嵌入层以及预测输出层,输入层的输入是一个用户和一个APP的向量表示,经嵌入层得到用户特征向量和APP特征向量,合并后经预测输出层输出用户对APP的偏好预测和用户使用该APP上下文的预测。
在本发明具体实施例中,该神经网络模型的架构如3所示,其中,
模型输入:模型的输入是一个用户和一个APP的向量表示,这里使用one-hot向量
Figure BDA0001466668690000111
Figure BDA0001466668690000112
来分别唯一表示用户u和APPa。即该向量只有一位为1,其他位为0。不同的用户向量不同,不同的APP向量也不同。向量的长度分别是用户数目和APP数目。
模型输出:模型的输出包括两个部分,图3中左边部分是用户对APP的偏好预测,即0-1之间的一个值。图3中右边部分是用户使用该APP的上下文。
对应于模型的输出,模型的损失函数如下:
Figure BDA0001466668690000113
其中,
Figure BDA0001466668690000114
是用户偏好预测的误差,
Figure BDA0001466668690000115
是上下文预测误差,λ是用来平衡这两部分的参数,可以人为设定。以下分别介绍该模型中的用户的偏好预测和上下文预测:
1、用户对APP偏好的预测
在本发明具体实施例中,用户对APP的偏好预测值计算方法如下:
Figure BDA0001466668690000121
Figure BDA0001466668690000122
表示用户u的one-hot向量与嵌入层参数P相乘得到的向量表达,
Figure BDA0001466668690000123
是APPa的向量表达。f表示神经网络的函数。P和Q分别是用户和APP向量表达的参数,θf是神经网络中其他的参数。神经网络具体的函数形式如下:
Figure BDA0001466668690000124
其中hM表示用户和APP的向量合并,这里直接将用户和APP的向量拼接成一个新的向量。hi(x)表示神经网络的一个隐藏层,ho表示输出层,隐藏层和输出层的形式如下
hi(x)=φ(Wix+bi)
其中x表示该层的输入,Wi和bi分别是权重和偏置参数。φ(·)是Sigmoid函数,可以将输出控制在范围[0,1]之间。
Figure BDA0001466668690000125
根据用户的隐式反馈,即使用记录,只能获取用户喜欢那些APP,即yua=1。而当yua为0时并不能确定用户u不喜欢APPa。因此不能将所有的yua=0的元素作为训练样本,只能采样出一部分作为负样本进行模型训练。采样方法是给定一个正样本(u,a),其标记为1,即yua=1,作为训练样本。同时对该用户u,从未安装的APP中均匀采样出Np个负样本(u,a′),标记为0作为训练数据。
用户偏好预测的损失函数定义如下
Figure BDA0001466668690000131
2、用户使用APP上下文的预测
除了用户的偏好预测以外,上下文的预测方法可以作为正则化部分,更新用户和APP的向量表达。上下文预测的损失函数定义如下:
Figure BDA0001466668690000132
其中p(c|u,a)是给定u和a的情况下,上下文c出现的概率。下面介绍该概率如何计算,先定义神经网络上下文隐含层的输出为
Figure BDA0001466668690000133
在最后一层经过softmax函数,可以计算出上下文c出现的概率。softmax函数计算公式如下。
Figure BDA0001466668690000134
其中
Figure BDA0001466668690000135
是上下文c对应的向量。Softmax函数计算的结果即p(c|u,a)。但是softmax函数的分母部分,需要计算zua和所有APP向量的内积,因此计算量较大,可以修改为负采样的方法来学习模型。假设(u,a,c)是根据用户使用APP记录得到的样本。我可以认为这些样本是正样本C+,并针对每个正样本采样出负样本集合C-。使用逻辑回归的方法来判断一个样本是否为正样本,则损失函数就可以定义为
Figure BDA0001466668690000136
针对一个(u,a)会有多个上下文,而且不同的用户,不同的APP上下文的数目也不同,这样一些活跃的用户和热门的APP会有特别多的训练数据,会导致训练数据不均衡的问题。解决方法是给定一个(u,a)采样出固定数目的上下文c。在(u,a)所有上下文的集合C中,本发明提供了以下三种不同的采样的概率:
1)基于频率的采样概率pf。n(c|u,a)是对于(u,a)来说,上下文c出现的次数。
Figure BDA0001466668690000141
2)基于idf的采样概率pi。APP的idf定义是
Figure BDA0001466668690000142
Figure BDA0001466668690000143
3)基于频率和idf的采样概率pji。首先根据上下文APP的频率计算概率分布pf,然后结合每个APP的idf值计算采样概率pfi
Figure BDA0001466668690000144
在获取上下文样本之后,对每个上下文样本,还需要进行负采样,用来解决softmax函数计算量大的问题。给定一个上下文样本(u,a,c),在所有的APP中根据APP的受欢迎程度采样出Nc个负样本,采样概率定义如下
Figure BDA0001466668690000145
其中nU(a)=|{u∈U|yua=1}|,表示安装了APPa的用户数目,用来表示该APP的受欢迎程度。
模型训练单元400d,用于获取训练样本,对该神经网络模型进行训练。
具体地,模型训练单元400d的训练过程如下:
(1)使用随机数初始化模型参数
(2)初始化t=1
(3)随机选择一批数量为B的样本(u,a)而且yua=1,作为正样本,标记为1,对每个正样本采样Np个负样本(u,a′),标记为0
(4)使用损失函数
Figure BDA0001466668690000146
更新模型参数
(5)t=t+1,如果t<T1回到步骤(3)
(6)初始化t=1
(7)采样一批数量为B的上下文样本(u,a,c),对每一个上下文样本采样出Nc个负样本
(8)使用损失函数
Figure BDA0001466668690000152
更新模型参数
(9)t=t+1。如果t<T2回到步骤(7)
(10)判断损失函数
Figure BDA0001466668690000151
是否收敛,收敛则退出。未收敛则返回步骤(2)。
综上所述,本发明一种基于使用序列上下文的APP推荐方法及系统通过从用户的APP使用记录中抽取用户对APP的偏好以用于APP的推荐,同时抽取用户使用APP的上下文用来解决用户偏好数据太稀疏的问题,提高了APP推荐的准确度。
与现有技术相比,本发明具有如下优点:
1、解决了数据稀疏性问题。根据用户与APP之间的交互情况得到的偏好矩阵是比较稀疏的。如果仅仅使用该矩阵来进行APP推荐,推荐效果会比较差。本发明结合了用户使用APP的序列,解决了数据稀疏性的问题,并提高了推荐准确率;
2、静态的用户对APP偏好数据和时间序列的APP使用记录数据的结合。用户对APP的偏好,可以认为是静态的数据,因为用户安装APP的情况在较长的一段时间不会变化。而用户使用APP的记录却是在随着时间的增加而增加的。而这两类数据因为特性不同,很难结合到一块。本发明先从用户的APP使用记录中抽取出了所有的上下文,根据用户和使用的APP来预测用户偏好和使用记录上下文,使这两类数据很好地结合到了一起。
3、解决了不同用户之间以及不同APP之间训练数据不均衡问题。在用户使用APP的记录中,活跃的用户一定会比其他用户产生更多记录,受欢迎的APP也是如此。因此,如果直接使用原始的APP使用记录的上下文数据会导致训练数据的不均衡问题。本发明通过对不同的用户和APP采样出固定数目的上下文样本,解决了该问题。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何本领域技术人员均可在不违背本发明的精神及范畴下,对上述实施例进行修饰与改变。因此,本发明的权利保护范围,应如权利要求书所列。

Claims (7)

1.一种基于使用序列上下文的APP推荐方法,包括如下步骤:
根据用户的使用记录生成偏好矩阵;
根据用户的APP使用序列抽取出用户使用APP对应的上下文;
根据用户偏好和APP使用上下文建立神经网络模型,所述神经网络模型包括输入层、嵌入层以及预测输出层,输入层的输入是一个用户和一个APP的向量表示,经嵌入层得到用户特征向量和APP特征向量,合并后经预测输出层输出用户对APP的偏好预测和用户使用该APP上下文的预测;
获取训练样本,对该神经网络模型进行训练,获得训练好的神经网络模型;
对任意用户,利用已训练好的神经网络模型,预测该用户对所有未安装的APP的偏好程度;
根据用户对所有未安装的APP的偏好进行排序,将偏好值最大的K个作为结果推荐给该用户。
2.如权利要求1所述的一种基于使用序列上下文的APP推荐方法,其特征在于,于步骤S1中,所述偏好矩阵Y中各元素的取值情况如下:
Figure FDA0003144196920000011
其中,取值1表示用户喜欢对应的APP,而取值0表示未观察到的状态。
3.如权利要求1所述的一种基于使用序列上下文的APP推荐方法,其特征在于,于步骤S2中,所述APP对应的上下文为使用序列中用户使用一个APP的记录附近的其他APP。
4.如权利要求1所述的一种基于使用序列上下文的APP推荐方法,其特征在于,用户对APP的偏好预测值计算方法如下:
Figure FDA0003144196920000012
用户偏好预测的损失函数如下:
Figure FDA0003144196920000021
其中,
Figure FDA0003144196920000022
表示用户u的one-hot向量与嵌入层参数P相乘得到的向量表达,
Figure FDA0003144196920000023
是APPa的向量表达,f表示神经网络的函数, P和Q分别是用户和APP向量表达的参数,θf是神经网络中其他的参数。
5.如权利要求1所述的一种基于使用序列上下文的APP推荐方法,其特征在于,上下文预测的损失函数为:
Figure FDA0003144196920000024
其中p(c|u,a)为给定用户u和APPα的情况下,上下文c出现的概率。
6.如权利要求1所述的一种基于使用序列上下文的APP推荐方法,其特征在于,步骤S4训练过程如下:
(1)使用随机数初始化模型参数;
(2)初始化t=1;
(3)随机选择一批数量为B样本(u,a)而且yua=1,作为正样本,标记为1,对每个正样本采样Np个负样本(u,a′),标记为0;
(4)使用损失函数
Figure FDA0003144196920000025
更新模型参数;
(5)t=t+1,如果t<T1回到步骤(3);
(6)初始化t=1;
(7)采样一批数量为B的上下文样本(u,a,c),对每一个上下文样本采样出Nc个负样本;
(8)使用损失函数
Figure FDA0003144196920000026
更新模型参数;
(9)t=t+1,如果t<T2回到步骤(7);
(10)判断损失函数
Figure FDA0003144196920000027
是否收敛,收敛则退出,未收敛则返回步骤(2) 。
7.一种基于使用序列上下文的APP推荐系统,包括:
偏好矩阵生成单元,用于根据用户的使用记录生成偏好矩阵;
APP上下文抽取单元,用于根据用户的APP使用序列抽取出用户使用APP对应的上下文;
神经网络模型建立单元,用于根据用户偏好和APP使用上下文建立神经网络模型,所述神经网络模型包括输入层、嵌入层以及预测输出层,输入层的输入是一个用户和一个APP的向量表示,经嵌入层得到用户特征向量和APP特征向量,合并后经预测输出层输出用户对APP的偏好预测和用户使用该APP上下文的预测;
模型建立单元,用于获取训练样本,对该神经网络模型进行训练,获得训练好的神经网络模型;
偏好程序预测单元,根据用户的APP使用记录,对任意用户利用已训练好的神经网络模型,预测该用户对所有未安装的APP的偏好程度;
推荐单元,用于根据用户对所有未安装的APP的偏好进行排序,将偏好值最大的K个作为结果推荐给该用户。
CN201711117741.8A 2017-11-13 2017-11-13 一种基于使用序列上下文的app推荐方法及系统 Active CN107832426B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711117741.8A CN107832426B (zh) 2017-11-13 2017-11-13 一种基于使用序列上下文的app推荐方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711117741.8A CN107832426B (zh) 2017-11-13 2017-11-13 一种基于使用序列上下文的app推荐方法及系统

Publications (2)

Publication Number Publication Date
CN107832426A CN107832426A (zh) 2018-03-23
CN107832426B true CN107832426B (zh) 2021-11-02

Family

ID=61655300

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711117741.8A Active CN107832426B (zh) 2017-11-13 2017-11-13 一种基于使用序列上下文的app推荐方法及系统

Country Status (1)

Country Link
CN (1) CN107832426B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110569422B (zh) * 2018-03-29 2022-06-17 阿里巴巴(中国)有限公司 基于应用向量的应用推荐方法及装置
CN108536572B (zh) * 2018-04-16 2020-05-12 浙江大学 基于AppUsage2Vec模型的智能手机App使用预测方法
CN108648049B (zh) * 2018-05-03 2022-03-01 中国科学技术大学 一种基于用户行为区别建模的序列推荐方法
CN109522474B (zh) * 2018-10-19 2021-05-18 上海交通大学 基于交互序列数据挖掘深度用户相似性的推荐方法
CN109299327A (zh) * 2018-11-16 2019-02-01 广州市百果园信息技术有限公司 视频推荐方法、装置、设备及存储介质
CN110083769B (zh) * 2019-04-29 2023-04-18 西北工业大学 一种面向用户偏好演化的移动应用推荐方法
CN110765352B (zh) * 2019-10-11 2022-11-11 上海上湖信息技术有限公司 一种用户兴趣识别方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105912550A (zh) * 2015-12-15 2016-08-31 乐视网信息技术(北京)股份有限公司 一种移动终端的信息推荐方法及装置
CN105975309A (zh) * 2016-05-05 2016-09-28 广东小天才科技有限公司 一种移动终端的应用程序更新方法及装置
CN106528745A (zh) * 2016-10-27 2017-03-22 北京奇虎科技有限公司 在移动终端上推荐资源的方法、装置及移动终端
CN106779867A (zh) * 2016-12-30 2017-05-31 中国民航信息网络股份有限公司 基于上下文感知的支持向量回归推荐方法及系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104866505B (zh) * 2014-02-25 2021-04-06 腾讯科技(深圳)有限公司 一种应用的推荐方法及装置
CN104166668B (zh) * 2014-06-09 2018-02-23 南京邮电大学 基于folfm模型的新闻推荐系统及方法
US20170169473A1 (en) * 2015-12-11 2017-06-15 Wesley John Boudville App social network via linket and ads for mobile deep links

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105912550A (zh) * 2015-12-15 2016-08-31 乐视网信息技术(北京)股份有限公司 一种移动终端的信息推荐方法及装置
CN105975309A (zh) * 2016-05-05 2016-09-28 广东小天才科技有限公司 一种移动终端的应用程序更新方法及装置
CN106528745A (zh) * 2016-10-27 2017-03-22 北京奇虎科技有限公司 在移动终端上推荐资源的方法、装置及移动终端
CN106779867A (zh) * 2016-12-30 2017-05-31 中国民航信息网络股份有限公司 基于上下文感知的支持向量回归推荐方法及系统

Also Published As

Publication number Publication date
CN107832426A (zh) 2018-03-23

Similar Documents

Publication Publication Date Title
CN107832426B (zh) 一种基于使用序列上下文的app推荐方法及系统
CN110503531B (zh) 时序感知的动态社交场景推荐方法
WO2018188576A1 (zh) 资源推送方法及装置
He et al. Diversified third-party library prediction for mobile app development
CN106484777B (zh) 一种多媒体数据处理方法以及装置
CN110717099B (zh) 一种推荐影片的方法及终端
CN108304429B (zh) 信息推荐方法、装置和计算机设备
CN112115257A (zh) 用于生成信息评估模型的方法和装置
CN107437111B (zh) 基于神经网络的数据处理方法、介质、装置和计算设备
CN111783810B (zh) 用于确定用户的属性信息的方法和装置
CN111242310A (zh) 特征有效性评估方法、装置、电子设备及存储介质
US11741511B2 (en) Systems and methods of business categorization and service recommendation
US20210241072A1 (en) Systems and methods of business categorization and service recommendation
Ghanbari et al. Reconstruction of gene networks using prior knowledge
CN111737586A (zh) 信息推荐方法、装置、设备及计算机可读存储介质
CN110472659B (zh) 数据处理方法、装置、计算机可读存储介质和计算机设备
Buskirk et al. Why machines matter for survey and social science researchers: Exploring applications of machine learning methods for design, data collection, and analysis
CN115018552A (zh) 产品点击率确定方法
CN114780753A (zh) 基于知识图谱的对话推荐方法、装置、设备及存储介质
JP2024508502A (ja) 情報をプッシュする方法および装置
CN108520034B (zh) 应用推荐方法、装置及计算机设备
CN113836388A (zh) 信息推荐方法、装置、服务器及存储介质
CN107766944B (zh) 一种利用api分析进行系统功能流优化的系统和方法
CN116401522A (zh) 一种金融服务动态化推荐方法和装置
CN110717037A (zh) 对用户分类的方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant