CN113254795B - 一种推荐模型的训练方法和装置 - Google Patents
一种推荐模型的训练方法和装置 Download PDFInfo
- Publication number
- CN113254795B CN113254795B CN202010086742.6A CN202010086742A CN113254795B CN 113254795 B CN113254795 B CN 113254795B CN 202010086742 A CN202010086742 A CN 202010086742A CN 113254795 B CN113254795 B CN 113254795B
- Authority
- CN
- China
- Prior art keywords
- data
- model
- prediction
- training
- prediction result
- 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
Links
- 238000012549 training Methods 0.000 title claims abstract description 111
- 238000000034 method Methods 0.000 title claims abstract description 85
- 239000012634 fragment Substances 0.000 claims description 17
- 238000002360 preparation method Methods 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 9
- 238000012163 sequencing technique Methods 0.000 claims description 5
- 230000006870 function Effects 0.000 abstract description 120
- 230000006399 behavior Effects 0.000 abstract description 31
- 230000002787 reinforcement Effects 0.000 abstract description 17
- 230000002829 reductive effect Effects 0.000 abstract description 13
- 238000010586 diagram Methods 0.000 description 31
- 230000008569 process Effects 0.000 description 31
- 238000004422 calculation algorithm Methods 0.000 description 22
- 238000013528 artificial neural network Methods 0.000 description 19
- 230000000306 recurrent effect Effects 0.000 description 18
- 230000009471 action Effects 0.000 description 12
- 239000003795 chemical substances by application Substances 0.000 description 11
- 230000000694 effects Effects 0.000 description 8
- 238000007781 pre-processing Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 238000012360 testing method Methods 0.000 description 7
- 238000001914 filtration Methods 0.000 description 6
- 238000013461 design Methods 0.000 description 5
- 230000010355 oscillation Effects 0.000 description 5
- 125000004122 cyclic group Chemical group 0.000 description 4
- 239000011159 matrix material Substances 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000007796 conventional method Methods 0.000 description 3
- 238000013135 deep learning Methods 0.000 description 3
- 238000011156 evaluation Methods 0.000 description 3
- 230000007774 longterm Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000003062 neural network model Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000013145 classification model Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000007635 classification algorithm Methods 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 235000014510 cooky Nutrition 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000001771 impaired effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 230000035939 shock Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9536—Search customisation based on social or collaborative filtering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0631—Item recommendations
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Molecular Biology (AREA)
- Business, Economics & Management (AREA)
- Databases & Information Systems (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Finance (AREA)
- Accounting & Taxation (AREA)
- General Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Marketing (AREA)
- Economics (AREA)
- Development Economics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种推荐模型的训练方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:根据获取的用户行为数据生成训练数据集;将训练数据集输入至待训练模型中以得到第一预测结果;根据第一预测结果生成中间预测数据,并将中间预测数据输入至待训练模型中以得到第二预测结果;根据第一预测结果和第二预测结果计算反馈函数,并根据反馈函数更新待训练模型以进行模型训练。该实施方式基于强化学习的思想,将模型的预测结果引入模型训练中,使得预测结果的误差大大的减小,可以帮助模型加快收敛,减少模型迭代的次数,加快训练效率,解决了仅有短期会话数据时无法很好地进行推荐的技术问题。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种推荐模型的训练方法和装置。
背景技术
在当今生活的各个领域中推荐系统都占有着很重要的位置,会直接影响用户的体验,进而影响到用户粘度。现在大部分的推荐方法都是利用用户本身的数据和用户一段时间内的历史行为数据所体现的用户兴趣爱好来进行建模,并通过模型进行推荐的。
但是在一些现实应用场景中,有时用户会在非登录的情况下进行操作,在这种情景下推荐系统是无法获取用户的历史兴趣爱好等数据的,只能获得一个未知用户的短期行为序列或者说是用户的短期兴趣。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
针对上面提到的情况,在无法得到用户长期历史行为的情况下,如何训练推荐模型以实现很好的推荐效果,这是亟待解决的技术问题。
发明内容
有鉴于此,本发明实施例提供一种推荐模型的训练方法和装置,能够基于强化学习的思想,将模型的预测结果引入模型训练中,使得预测结果的误差大大的减小,可以帮助模型加快收敛,减少模型迭代的次数,加快训练效率,解决了仅有短期会话数据时无法很好地进行推荐的技术问题。
为实现上述目的,根据本发明实施例的一个方面,提供了一种推荐模型的训练方法。
一种推荐模型的训练方法,包括:根据获取的用户行为数据生成训练数据集;将所述训练数据集输入至待训练模型中以得到第一预测结果;根据所述第一预测结果生成中间预测数据,并将所述中间预测数据输入至所述待训练模型中以得到第二预测结果;根据所述第一预测结果和所述第二预测结果计算反馈函数,并根据所述反馈函数更新所述待训练模型以进行模型训练。
可选地,根据获取的用户行为数据生成训练数据集包括:对获取的用户行为数据进行数据重构,以得到每个用户对应的数据链;从所述数据链中依次截取指定长度的片段,并对截取的片段进行编码以生成训练数据集。
可选地,对获取的用户行为数据进行数据重构,以得到每个用户对应的数据链包括:根据用户行为数据获取每个用户的访问项目、每个访问项目的项目得分及打分时间;对每个用户的行为数据,将每个访问项目及所述访问项目的项目得分组成序列对,并根据访问项目的打分时间对生成的序列对进行排序;将每个用户对应的排序后的序列对生成数据链。
可选地,根据所述第一预测结果生成中间预测数据包括:获取所述第一预测结果对应的训练数据包括的访问项目序列;将所述访问项目序列中的第一个访问项目删除,并分别将所述第一预测结果中的每个访问项目拼接到删除后的访问项目序列中,以得到中间预测数据,所述中间预测数据的条数与所述第一预测结果中的访问项目个数相同。
可选地,根据所述反馈函数更新所述待训练模型包括:根据所述反馈函数生成损失函数,并根据生成的损失函数更新所述待训练模型。
可选地,所述反馈函数通过以下公式计算得到:
其中,表示反馈函数,表示第一预测结果,表示第二预测结果,p(y_preci)表示中间预测数据中的第i个数据被选中的概率,i=1,2,……,k;且对应的损失函数通过以下公式计算得到:其中,Loss1表示损失函数,NS为样本个数,为样本i实际的标签向量,为样本i经过模型预测得到的结果。
可选地,所述反馈函数通过以下公式计算得到:
其中,表示反馈函数,表示第一预测结果,表示第二预测结果,p(y_preci)表示中间预测数据中的第i个数据被选中的概率,i=1,2,……,k;且对应的损失函数通过以下任一公式计算得到:
其中,Loss2、Loss3表示损失函数,NS为样本个数,为样本i实际的标签向量,为样本i经过模型预测得到的结果。
根据本发明实施例的另一方面,提供了一种推荐模型的训练装置。
一种推荐模型的训练装置,包括:数据准备模块,用于根据获取的用户行为数据生成训练数据集;第一预测模块,用于将所述训练数据集输入至待训练模型中以得到第一预测结果;第二预测模块,用于根据所述第一预测结果生成中间预测数据,并将所述中间预测数据输入至所述待训练模型中以得到第二预测结果;反馈更新模块,用于根据所述第一预测结果和所述第二预测结果计算反馈函数,根据所述反馈函数更新所述待训练模型以进行模型训练。
可选地,所述数据准备模块还用于:对获取的用户行为数据进行数据重构,以得到每个用户对应的数据链;从所述数据链中依次截取指定长度的片段,并对截取的片段进行编码以生成训练数据集。
可选地,所述数据准备模块还用于:根据用户行为数据获取每个用户的访问项目、每个访问项目的项目得分及打分时间;对每个用户的行为数据,将每个访问项目及所述访问项目的项目得分组成序列对,并根据访问项目的打分时间对生成的序列对进行排序;将每个用户对应的排序后的序列对生成数据链。
可选地,所述第二预测模块还用于:获取所述第一预测结果对应的训练数据包括的访问项目序列;将所述访问项目序列中的第一个访问项目删除,并分别将所述第一预测结果中的每个访问项目拼接到删除后的访问项目序列中,以得到中间预测数据,所述中间预测数据的条数与所述第一预测结果中的访问项目个数相同。
可选地,所述反馈更新模块还用于:根据所述反馈函数生成损失函数,并根据生成的损失函数更新所述待训练模型。
可选地,所述反馈函数通过以下公式计算得到:
其中,表示反馈函数,表示第一预测结果,表示第二预测结果,p(y_preci)表示中间预测数据中的第i个数据被选中的概率,i=1,2,……,k;且对应的损失函数通过以下公式计算得到:其中,Loss1表示损失函数,NS为样本个数,为样本i实际的标签向量,为样本i经过模型预测得到的结果。
可选地,所述反馈函数通过以下公式计算得到:
其中,表示反馈函数,表示第一预测结果,表示第二预测结果,p(y_preci)表示中间预测数据中的第i个数据被选中的概率,i=1,2,……,k;且对应的损失函数通过以下任一公式计算得到:
其中,Loss2、Loss3表示损失函数,NS为样本个数,为样本i实际的标签向量,为样本i经过模型预测得到的结果。
根据本发明实施例的又一方面,提供了一种推荐模型的训练电子设备。
一种推荐模型的训练电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例所提供的推荐模型的训练方法。
根据本发明实施例的再一方面,提供了一种计算机可读介质。
一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例所提供的推荐模型的训练方法。
上述发明中的一个实施例具有如下优点或有益效果:通过根据获取的用户行为数据生成训练数据集;将训练数据集输入至待训练模型中以得到第一预测结果;根据第一预测结果生成中间预测数据,并将中间预测数据输入至待训练模型中以得到第二预测结果;根据第一预测结果和第二预测结果计算反馈函数,并根据反馈函数更新待训练模型以进行模型训练,实现了基于强化学习的思想,将模型的预测结果引入模型训练中,使得预测结果的误差大大的减小,可以帮助模型加快收敛,减少模型迭代的次数,加快训练效率。从而解决了现有技术中存在的仅有短期会话数据时无法很好地进行推荐的技术问题。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是本发明一个实施例的循环神经网络的预测过程示意图;
图2是本发明另一个实施例的循环神经网络的预测过程示意图;
图3是强化学习的基本模型;
图4是本发明实施例的RL-based模型的实现流程示意图;
图5是根据本发明实施例的推荐模型的训练方法的主要步骤示意图;
图6是本发明实施例的RL-based算法的整体框架示意图;
图7是本发明实施例的数据重构的实现原理示意图;
图8是本发明实施例的数据预处理过程示意图;
图9是本发明实施例的数据结构划分方式示意图;
图10是本发明实施例的用户信息编码示意图;
图11是本发明实施例的训练数据划分原理示意图;
图12是本发明实施例的第二预测数据的生成过程示意图;
图13是本发明实施例的RL-based模型训练过程示意图;
图14是本发明实施例的推荐模型在EachMovie数据集上各损失函数对比;
图15是本发明实施例的推荐模型在MovieLen数据集上各损失函数对比;
图16是根据本发明实施例的推荐模型的训练装置的主要模块示意图;
图17是本发明实施例可以应用于其中的示例性系统架构图;
图18是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
为了更好地进行用户推荐,发明人对现有常用的推荐系统进行了仔细分析。常见的推荐算法按照基本思想的不同可以划分为基于协同过滤的推荐、基于内容的推荐、基于知识的推荐、混合推荐等方法。
常见的推荐算法中,基于协同过滤的推荐方法、基于用户的推荐方法,主要是基于用户-物品的评分矩阵,然后使用各种策略以及算法对用户-物品评分矩阵的空缺部分进行补充,然后找到用户可能喜欢的物品并进行推荐。另外,一些基于内容和知识的推荐方法,是将推荐转化为分类问题,主要基于机器学习中的概率分类模型,输入新物品的特征,就可以得到用户是否喜欢该物品。除了使用单一分类算法,还可以将算法进行组合。通过模型融合的方法,可以克服单模型自身的缺点和劣势,从而提升推荐效果,给用户更好的体验。
但是,现有的推荐方法大多是利用用户本身的数据和兴趣建模,按照用户对项目兴趣的高低来进行推荐。在这个过程中,项目之间是割裂开的,无论是传统的协同过滤方法还是基于概率的分类模型,用户对项目的操作顺序这一信息都没有被考虑在内。
然而,用户的兴趣是随时间改变的,很多情况下用户的短期兴趣要比长期兴趣更能影响用户的行为和喜好。而且在现实生活中的推荐系统通常面临的问题是,只能得到短期的基于会话的数据,而没有用户的长期历史数据作为推荐基础。例如在有些网站中用户不会进行登录操作,系统只能利用会话和cookie机制获得用户的短期偏好,进而进行推荐。在这种情况下,经典的推荐算法例如矩阵分解就无法得到很好的效果。针对这些情况,本发明提出了一种基于深度学习的相关方法对问题进行求解,通过将深度学习中的循环神经网络和强化学习的思想进行融合,将推荐问题转化为时间序列问题,然后进行求解,来解决上面情景中遇到的问题。下面详细介绍本发明的具体实现过程。
1、问题转化
首先需要将推荐问题转化为时间序列预测。对每一个用户user,根据其对项目item评分的时间顺序,可以构造出一个由项目组成的序列。即对于每一个用户都有user:{item1,item2,…,itemn},其中项目item的排列顺序是由用户对其打分的时间顺序来进行确定的。其中,用户对项目的打分(打分表示用户对项目的喜爱程度)可以根据用户对项目的操作对应得到,例如对于电商领域来说,用户浏览项目=1分,用户收藏项目=2分,用户加入购物车=3分,用户购买了项目=4分;对于新闻等领域来说,由于用户操作仅包括看项目和没看项目,故可以使用户看项目=1分,用户没看项目=0分。
然后将这个由项目组成的时间序列作为循环神经网络模型的原始输入,循环神经网络模型会通过学习之前的序列,然后预测输入序列的下一个项目是什么。模型的输入数据除了处理好的项目id之外,还会把其他信息(例如评分、用户个人信息、项目信息)整合后作为输入。这个部分会在后面方法实现中进行详细的描述。最后网络模型的输出就是用户下一个可能操作的项目,也就是要推荐的目标项目。整个过程如图1所示,图1是本发明一个实施例的循环神经网络的预测过程示意图。
经过上面的处理,本发明的推荐就变成了通过学习时间序列数据来确定下一个项目是什么,从推荐变成了一个时间序列预测问题。而且和基于马尔科夫链的方法相比,循环神经网络模型不仅考虑了用户对项目的操作顺序,同时还考虑了其他关键信息,例如用户对项目的打分,用户本身的基本信息等。
图2是本发明另一个实施例的循环神经网络的预测过程示意图。图1中展示的是其中一条数据进入循环神经网络并输出的过程,图2展示了具体模型训练过程中数据是如何展开进入循环神经网络的。即每个时刻输入模型的是当前时刻对应的物品编码,最后经过softmax层后输出的是物品作为序列中下一个出现的概率,可以选择概率最高的k个推荐给用户。在图2所示的实施例中,是以门控循环单元GRU(Gated recurrent units)为例来获取序列中每个物品的编码的。其中,对物品的编码过程后面将详细论述,此处不再赘述。
2、转为多目标预测
在实际的推荐场景中,推荐模块一般不会只给用户推荐一个项目,即使推荐模块在显示器或智能手机中的显示面积有限,一般也会给用户推荐其可能喜欢的多个项目。所以推荐方法除了关注用户的短期兴趣之外,推荐结果的正确率以及召回率等指标同样是考察推荐效果的重要方面。因此除了itemt+1很重要之外,后面用户评价的{itemt+1,…,itemt+k}这个短序列同样很重要。{itemt+1,…,itemt+k}短序列在表明用户短期兴趣的同时,将模型关注的“下一个”项目的范围进行相应扩大。通过这种扩大模型将在关注下一个项目的同时,也会考虑后面几个项目,所以将单目标预测改为多目标就显得很有必要。
针对上面的问题,本发明提出了一种多目标推荐。和单目标推荐不同的是,模型不光考虑itemt+1,同时后面的k个项目都会按照相应的比例进行考虑。假设对任意用户u,都有对应的一个时间序列数据{itemn},首先随机的从中间选择一个片段,将这个时间序列片段记为x:{item1,item2,…,itemt},这个片段对应的下k个项目记为y:{itemt+1,itemt+2,…,itemt+k}。
3、强化学习基本思想
图3是强化学习的基本模型,如图3所示,强化学习是一个不需要先验知识,只需要通过智能体agent和环境交互,不断通过反馈来积累经验,从而能够自行学习的过程。对于一个agent,如果它做出动作a,那么agent所处的环境会对这个动作a进行相应的惩罚或者奖励并且把这个奖惩r反馈给agent,然后agent再利用这个返回的奖惩r更新自己的状态s。
当环境对动作a产生奖励,那么说明这个动作a是好的,这个动作被选择的概率就会增大。相反,如果当前环境对动作a产生的是惩罚,那么这个动作就会被削弱。然后agent就不断通过动作以及当时环境反馈的状态进行更新,从而让agent能够学习到正确的信息。强化学习的学习过程就是一个不断尝试,不断改正的过程,通过和环境的不断交互进行学习,不断改进agent的性能。
基于强化学习的基本思想,本发明提出了一个RL_based模型。在上面提到的强化学习的训练过程中,根据每个时刻agent的状态,环境都会反馈一个值来表明这个状态的好或者坏,进而让机器知道下一个状态是什么会更好。根据这个思想,可以把这个策略融入到循环神经网络预测中。在循环神经网络使用损失函数更新模型的时候,可以在损失函数中加入一个反馈函数reward。在训练过程中如果网络在当前步骤中的预测结果更接近真实值,就通过reward函数的设计减少它的误差。相反,如果网络模型在当前步骤中的预测结果和真实值偏离较大,reward函数会增大这个样本产生的误差。这样就通过reward函数对预测结果误差大小的增减,可以更快的指导模型,减少模型迭代的次数,加快训练效率。具体的流程如图4,图4是本发明实施例的RL-based模型的实现流程示意图。
在本发明中,将这个模型定义为RL-based,模型虽然引入了强化学习的方法,但是和强化学习相比还是有很大的不同,因为在RL-based模型中,样本是有着确定的标签的。也就是说用户明确的知道下一个数据应该是什么。强化学习更多的像是一个无监督学习过程,每次更新依靠的就是环境对当前状态的反馈来进行的,并没有明确的标签数据。而在RL-based模型中,是将这种反馈策略应用到监督模型中。也就是说在更新模型的时候,不光使用标签信息,也会将当前环境给出的反馈也作为更新模型的指标,来帮助模型加快收敛。所以下面的关键问题就是通过什么方法来计算reward,以及如何将计算好的reward融入到原本的损失函数中。
算法中反馈函数的主要作用就是评价模型对此时输入数据预测的好坏,所以本发明提出将模型的预测步骤增加一步,本身模型是用来预测用户下一个可能喜欢的项目有哪些,本发明中可以让模型在第一步预测的基础上再预测一步,将模型变为两步预测。即首先让模型正常预测一步,然后将第一步预测的结果当作是真实数据,使用真实数据对预测数据进行替换和拼接,再重新为模型构造新的输入数据。将新的输入数据再次输入到模型中,预测第二步,然后使用第二步预测结果的好坏来对第一步的预测进行评价。因为只有第一步预测的结果越接近真实值,第二步的预测结果才能更好,如果第一步的预测结果已经偏离了真实值,那么第二步的预测结果在很大的概率上都会受到不好的影响。
所以在RL-based模型中,模型本身就相当于强化学习中的agent,模型每次向后预测一步就相当于agent的一次动作,因为在推荐中不可能凭空捏造项目,所以整个项目集合就相当于强化学习中动作的集合,这个集合在推荐问题中是离散的。强化学习中的环境相当于RL-based模型中第二步的预测。而模型第二步预测结果的好坏就相当于环境对动作的反馈。所以综合上面提出的思想,提出了RL-based模型算法,算法总体设计代码例如如下:
Algorithm 2RL_based model
4、RL_based模型反馈函数以及损失函数设计
前面已给出了RL-based模型的算法的大致流程,该模型的关键就在于如何利用两次预测结果来设计反馈函数reward,以及如何将reward函数结合到模型的损失函数中,指导模型进行更新迭代。reward函数的目的在于区分模型预测结果的好坏,在损失函数中越好的结果,即希望它的损失越小越好,而对于预测结果越差的样本,希望它的损失越大越好。
所以本发明先定义reward函数,假设共有item_size个项目,根据第二步预测的结果,将reward函数定义为:
其中,表示反馈函数,表示第一预测结果,是个item_size的向量;表示第二预测结果,由于第二步预测时的输入有k个,所以第二步的预测结果有k个,其中,每一个预测结果也都是一个item_size大小的向量;p(y_preci)表示中间预测数据中的第i个数据被选中的概率,i=1,2,……,k;整个第二步预测都是在第一步预测的基础上进行的,所以假设在中选择k个概率最高的作为第二步预测中的真实值,记为y_preci(i=1,…,k),所以公式中的p(y_preci)代表第i个被选中的概率。
通过上面对reward函数的定义,可以大致简单分析一下,如果第二步预测的结果越接近真实值,那么部分的值就会越大。相反如果预测结果越偏离真实值,上述部分的值就会越小。但是成立的前提是在第一步的基础上,即得到的概率是条件概率,所以需要在式子的前面乘上对应的第一步预测概率从而得到最终的reward函数。
在RL-based模型中,使用交叉熵(CCE)损失函数,本发明对其进行了改进,并将之前定义好的reward函数加入到损失函数中,现定义如下损失:
其中,Loss1表示损失函数,NS为样本个数,为样本i实际的标签向量,为样本i经过模型预测得到的结果。和交叉熵损失函数相比,就是在原来损失的基础上加上第一步预测结果的reward函数反馈的结果。
除了上面的方法外,本发明还使用了另外的策略构造了不同的reward函数,记为reward_more函数,具体定义公式如下:
reward_more函数和前面定义的reward函数区别在于,在reward_more函数中,预测结果越接近真实值,所得到反馈值越小,相反如果预测结果越偏离真实值,那么通过reward_more函数得到的反馈结果就越大。根据reward_more函数的特点,定义了下面两种新的损失函数,公式如下:
其中,Loss2、Loss3表示损失函数,NS为样本个数,为样本i实际的标签向量,为样本i经过模型预测得到的结果。
本发明中分别使用两种不同的方式定义了两种反馈函数reward和reward_more,并且根据不同的反馈函数的对预测结果返回值的特点,定义了其对应的损失函数。对这两种反馈函数及其对应的损失函数的比较分析如表1。
表1
根据以上的分析内容可以得出,本发明实施例所提供的推荐模型及其训练方法。
图5是根据本发明实施例的推荐模型的训练方法的主要步骤示意图。如图5所示,本发明实施例的推荐模型的训练方法主要包括如下的步骤S501至步骤S504。
步骤S501:根据获取的用户行为数据生成训练数据集;
步骤S502:将训练数据集输入至待训练模型中以得到第一预测结果;
步骤S503:根据第一预测结果生成中间预测数据,并将中间预测数据输入至待训练模型中以得到第二预测结果;
步骤S504:根据第一预测结果和第二预测结果计算反馈函数,并根据反馈函数更新待训练模型以进行模型训练。
根据本发明的一个实施例,在步骤S501根据获取的用户行为数据生成训练数据集时,具体可以是:对获取的用户行为数据进行数据重构,以得到每个用户对应的数据链;从数据链中依次截取指定长度的片段,并对截取的片段进行编码以生成训练数据集。
根据本发明的另一个实施例,在对获取的用户行为数据进行数据重构,以得到每个用户对应的数据链时,具体可以包括:根据用户行为数据获取每个用户的访问项目、每个访问项目的项目得分及打分时间;对每个用户的行为数据,将每个访问项目及所述访问项目的项目得分组成序列对,并根据访问项目的打分时间对生成的序列对进行排序;将每个用户对应的排序后的序列对生成数据链。
根据本发明的另一个实施例,根据第一预测结果生成中间预测数据包括:获取所述第一预测结果对应的训练数据包括的访问项目序列;将访问项目序列中的第一个访问项目删除,并分别将第一预测结果中的每个访问项目拼接到删除后的访问项目序列中,以得到中间预测数据,中间预测数据的条数与第一预测结果中的访问项目个数相同。
根据本发明的又一个实施例,根据反馈函数更新待训练模型包括:根据反馈函数生成损失函数,并根据生成的损失函数更新待训练模型。
在本发明的一个实施例中,反馈函数通过以下公式计算得到:其中,表示反馈函数,表示第一预测结果,表示第二预测结果,p(y_preci)表示中间预测数据中的第i个数据被选中的概率,i=1,2,……,k;且对应的损失函数通过以下公式计算得到:其中,Loss1表示损失函数,NS为样本个数,为样本i实际的标签向量,为样本i经过模型预测得到的结果。
在本发明的另一个实施例中,反馈函数通过以下公式计算得到:
其中,表示反馈函数,表示第一预测结果,表示第二预测结果,p(y_preci)表示中间预测数据中的第i个数据被选中的概率,i=1,2,……,k;且对应的损失函数通过以下任一公式计算得到:
其中,Loss2、Loss3表示损失函数,NS为样本个数,为样本i实际的标签向量,为样本i经过模型预测得到的结果。
下面结合具体实施例介绍本发明的推荐模型的训练方法的具体实施过程。
图6是本发明实施例的RL-based算法的整体框架示意图。如图6,算法输入用户的历史行为,经过数据预处理以及模型训练的过程后,输出对相应数据的推荐项目。其中的循环神经网络画成虚线的意思是,2次预测使用的是同一个网络,只不过在预测的时候需要预测2步。
下面介绍RL_based模型的数据预处理过程。图7是本发明实施例的数据重构的实现原理示意图,图8是本发明实施例的数据预处理过程示意图。
通常见到的数据都是表形式,例如图7左侧中的数据格式,但是在本发明的问题中,需要将原来的表式数据进行变化,由表式变为链条式,如图7中右侧所示。最后将链条式数据进行编码,才能作为模型的输入,总体的数据预处理的流程如图8所示。
1、数据清洗:作为数据处理的第一步,将不需要考虑的数据进行过滤,留下有有价值的部分,为后面的处理奠定基础。具体方法如下:
(1)筛选数据:因为本发明的目的是推荐给用户其可能喜欢的项目,所以首先需要从数据中将用户不喜欢的项目过滤下去,也就是说,将用户评分很低的那些项目过滤掉,留下用户比较喜欢的项目数据。将低于用户平均分的项目认为是用户不喜欢的,然后过滤掉其对应的信息。
(2)过滤低活跃度用户:将用户评价过的项目个数定义为用户的活跃度,然后将活跃度太低的用户数据删除,因为如果用户的活跃度太低,后面生成的链式数据就会太短,模型训练时参考意义不是很大。
(3)过滤低流行度项目:将项目用户的用户评分数量定义为项目的流行度,然后将流行度太低的项目删除。降低输入数据的维数。
2、重新编号:将清洗后的用户和项目从0开始重新进行编号,为后面数据编码做准备。
3、数据重构:将清洗后的数据按照一定的结构进行重新构造,方便后面将数据进行编码和使用。首先将按照图8中的方式,将表数据整理为链式数据。即每个用户对应一个项目的链条,链条中项目的链接顺序按照用户对项目评价的时间进行排列。
4、训练测试数据构造:经过数据重构步骤,将数据变成了每个用户对应一个链条式数据的形式。然后参考Devooght R划分数据集的方式,直接从所有用户中随机抽取部分用户作为测试数据集,将剩下的大部分用户数据作为训练数据集。但是在模型训练以及测试的过程中,需要截取用户对应的项目链条数据中的某一个片段,并整理成相应的数据结构。图9是本发明实施例的数据结构划分方式示意图,定义每次截取获得的数据结构为S,S由四个部分组成,划分方式如图9,图9中是用户a以及该用户对应用的项目序列,序列划分的四个部分分别为:
S1:模型输入的数据x,数据的长度等于循环神经网络中的时间步长参数;
S2:模型输出的数据y;
S3:截取后用户之前所有喜欢过的物品,用来在推荐时去掉用户评价过的项目;
S4:用户所有喜欢的物品减去S3,用来计算模型的召回率。
5、数据编码:数据每次进入模型训练之前都需要编码成为特定的形式,数据编码这一步将会把各种信息进行汇总编码以及合并,构造成模型需要的格式。需要进行编码的有S1和S2部分的数据,具体编码方法如下:
(1)用户信息编码:将可以获得的用户信息数据例如年龄、性别、职业等进行one-hot编码。文本使用的数据集中用户性别有2种,年龄段有7种,职业有21种。然后对每个用户的性别、年龄、职业分别进行one-hot编码,然后将得到的编码进行合并。得到最终用户信息编码,结果如图10,图10是本发明实施例的用户信息编码示意图。
(2)项目信息编码:针对本文使用的数据集中的项目,具有电影上映年份以及电影类别信息。本文将电影上映年份分为8种,电影类别信息有18种。然后使用同样的方式对项目信息进行one-hot编码。需要注意的是有很多电影同时属于不同的类别,只要将对应类别的都标记为1即可。编码后的结果和上一步类似。
(3)输入x的编码:模型输入x是多个用户对应的项目序列片段,而这些片段的长度等于循环神经网络的时间步长参数。即在模型中,每个时刻输入一个项目的相关信息。而对于每个时刻要输入的项目编码,假设当前时刻输入的是用户a对应的项目m,则此刻输入将由4个部分组成,后面两部分是直接将用户a对项目m的评分以及项目m的id进行one-hot编码得到。最后将这四部分数据进行拼接,得到当前时刻的输入:由用户a的信息编码、项目m的信息编码、用户a对m的评分编码和项目m的id编码拼接构成。
(4)输出y的编码:直接对y中项目id使用one-hot方式编码即可。
经过上面介绍的预处理步骤,就将原本的数据变成了可以输入到模型中的形式,数据预处理结束后,下面将具体介绍模型具体是如何进行训练的。
在模型训练的过程中,为了加速模型训练的速度,本发明使用的是批量梯度处理的方法,将一个批次定义为batch_size。对于训练集中的链式数据,每次训练都对每个用户随机截取其对应的项目链中的片段,将这个片段的长度定义为time_stamp。然后将batch_size个数的片段作为模型一个batch的输入。经过多个批次batch后,会使用完这批项目链片段,然后使用训练数据集中的每一个用户再次随机截取长度为time_stamp的项目片段。我们将使用一次全部用户数据的项目片段称为一轮epoch。即每次训练模型我们都会进行多个epoch次,每个epoch中又会将数据分成batch_size个成批输入到模型中,批量进行训练,整个训练数据划分过程如图11,图11是本发明实施例的训练数据划分原理示意图。
RL-based模型的数据预处理模块和多目标预测算法相同,同时训练数据划分的方式同样如图11。即全部用户数据会输入模型epoch次,而针对每个epoch,每次输入batch_size个用户截取后的项目片段来进行模型的训练。和Multi_object模型中的输入x和y的格式相同,输入x的大小为batch_size×time_stamp×code_size,输入的y的大小为batch_size×1×code_size。对于用户的每一条输入数据{item1,item2,…,itemm},模型都需要经过图2中的过程对输入数据进行预测,得到各个项目作为序列下一个的概率大小。但是RL-based和Muli-object模型不同的地方在于模型每次更新迭代之前模型进行了两次预测。
模型的第一步预测和Multi_object模型的过程是完全相同的,数据划分编码方式也相同,在第一步预测结束后,为了构造第二步据测的输入数据,需要将原来的划分方式进行如图12中的变化。图12是本发明实施例的第二预测数据的生成过程示意图。假设对于用户a来说,首先需要将截取的项目片段整体向后移一位,然后将对应的S1到S4进行相应的改动。其次将红色网格对应的真实项目id替换为第一步预测结果中的项目id,如果第一步预测的id有k个,就将红色网络处的真实项目id替换k次,形成k条新数据,作为第二步预测的输入数据。
以某一用户的一条数据为例,首先假设输入用户a的一条项目序列xa:{item1,item2,…,itemm},整个序列经过编码处理作为网络模型G的输入,然后通过网络模型G后,可以计算得到k个预测结果,记为y_pre:{pre1,pre2,…,prek},下面将这个时刻的预测结果作为真实值,也就是说时间序列的第m+1个项目就是y_pre中的项目之一,所以按照图12中方式去构造新的输入数据,进而得到新的k个输入x1:{item2,…,itemm,pre1},…,xk:{item2,…,itemm,prek}。将得到的k个输入数据作为中间预测数据,再次输入到网络模型G中进行预测,将第二步的预测结果记为y_pre_next。
然后使用第一步和第二步预测的结果共同计算reward,因为第二步预测的结果是在默认第一步预测结果为真的情况下进行的。所以第二次预测结果的好坏可以说是对第一次预测结果的一个反馈评价。所以本发明根据第二次预测结果的好坏来计算反馈reward,具体的2步训练过程如图13,图13是本发明实施例的RL-based模型训练过程示意图。
本发明在进行模型训练时使用了两个公开数据集,第一个是MovieLen_1M数据集,在该数据集中,包含了6040个用户对3900个物品的1000209个评分数和评分时间戳数据。除了评分数据,数据集中还有对于用户性别描述的字段,将用户的年龄离散划分为7个阶段,如表2中所示。类似的,用户职业也被分为21个类别。数据集中的电影数据提供了电影上映年份及电影类别信息(共18种),其中部分电影具有多个类别划分,为了便于编码,本实验采用相同方法将电影上映年份离散化为3种。第二个数据集是EachMovie数据集,有43586个用户对于1526个物品的1888358个评分,没有其他的额外信息。
表2
类别 | 年龄 |
1 | 小于18 |
2 | 18-24 |
3 | 25-34 |
4 | 35-44 |
5 | 45-49 |
6 | 50-55 |
7 | 56+ |
数据集的简单统计结果如表3所示,将数据集按照前面提到的方法,分成训练集和测试集,对于MovieLen数据集选择200个用户的数据作为测试集,剩下的用户数据作为训练集。在EachMovie数据集选择2000个用户的数据来测试,剩下的用户数据作为测试集。
表3
数据集 | 用户数量 | 物品数量 | 评分数量 |
MovieLen_1M | 6040 | 3900 | 1000209 |
EachMovie | 43586 | 1526 | 1888358 |
推荐系统有自己的一套指标,例如准确率、召回率等,除了这两个指标,本发明还提出了几个新的指标,用来衡量方法的有效性。新增加的指标有短期正确率、用户覆盖率、项目覆盖率三种。下面将具体介绍这些指标是如何定义和计算的。
假设用户真正喜欢的项目集合为Su,模型推荐的项目集合为Srs,可以将推荐的准确率定义为:
而推荐的召回率定义为:
推荐的准确率衡量的是推荐给用户的项目中,符合用户喜好的项目占比。推荐的召回率衡量的是系统能找到符合用户喜好的多少项目。准确率越高,表明推荐算法的质量也越高,召回率越高,代表推荐算法对用户喜好预测的越全面。
除了准确率和召回率这两个较为常见的指标,对于这种短期的预测,本发明还使用了一个新的指标Short-term Prediction Success简称为Sps,用来标明用户的下一个喜好项目是否出现在推荐集合中。具体计算方法为,假设用户u下一个喜好项目为xu,将推荐给用户u的项目集合记为Sru,用户总数为N,那么Sps定义如下:
Sps的大小可以表明模型对用户下一个喜好项目的预测能力,Sps的值越高,表明模型找到用户下一个喜欢的项目的能力越强,即模型对用户的短期预测越准确。
为了描述推荐结果对用户和项目的覆盖程度,本发明提出用户覆盖率和项目覆盖量率两个指标。假设用户u实际喜欢的项目集合为Sfu,用户覆盖率为:
项目覆盖量定义式为:
用户覆盖率可以表示推荐算法能够找到用户推荐喜爱项目的能力,用户覆盖率越高,表明模型对用户的泛化能力越好。项目覆盖量用来表示有推荐算法推荐项目成功和多样性能力。
此处对本发明要使用的评价指标进行了定义,其中除了一些比较常用的指标之外,Sps指标更看重模型对用户下一个项目的预测是否准确,针对本发明提出的时间序列预测的推荐模型来说,Sps指标也能很好的对模型的短时预测进行一个比较好的评价,所以后面会对Sps指标进行更为详细的分析。
为了证明RL_based模型的有效性,本发明使用传统方法、循环神经网络模型(GRU网络加CCE作为损失函数)、RL_based模型在2个公开数据集上的结果进行了对比。
传统方法选择了协同过滤算法中的基于用户的推荐算法(UKNN)、以及同样采用时间序列预测进行推荐的马尔科夫方法(MC)作为对比算法。选择这两个算法的原因是UKNN算法是推荐方法中最为经典的方法之一,MC方法是使用马尔科夫链,运用概率论中的转移矩阵来给用户做推荐,MC方法使用的场景和RL_based模型是相似的。
表4
表5
从表4以及表5中的对比结果可以看出以推荐十个项目为例,对比了RL_based模型在5项指标上的提升幅度,表中对传统方法和基于深度学习方法的最高结果进行了加粗表示,并计算了RL_based模型结果的提升率,可以发现无论是针对只有评分数据的EachMovie数据集还是有额外信息的MovieLen数据集,使用RL_based模型来进行推荐都是十分有效的。尤其在Sps指标上,Sps指标就代表本发明的模型能不能准确的找到用户下一个喜欢的物品,也就是问题关注的关键。
除了和传统方法对比,本发明还对比了本文改进的3个损失函数和常用的CCE函数,可以发现使用改进的损失函数得到的效果更好。对比4种不同损失函数在迭代过程中,结果如图14以及图15,图14是本发明实施例的推荐模型在EachMovie数据集上各损失函数对比;图15是本发明实施例的推荐模型在MovieLen数据集上各损失函数对比。图中横坐标为batch的个数,纵坐标为推荐用户10个项目Sps的结果。
在EachMovie数据集上,发现虽然RL-based模型在最终结果上没有很大的提升,但是却加快了模型收敛的速度,对比图14中的结果,可以发现基于循环神经网络的模型想要达到稳定结果,需要震荡很多次,在30000个batch之后才变得稳定。对比三个RL-based模型,使用Loss作为损失函数,整个模型震荡很小,在训练5000个batch后,模型基本只有小范围震荡,训练20000个batch后,模型稳定;如果使用Loss2作为损失函数,模型在15000个batch后,模型小范围震荡,25000个batch后模型稳定;如果使用Loss3作为损失函数,模型在15000个batch后,模型小范围震荡,25000个batch后模型稳定。综上对比,可以明显发现三个RL-based模型,在训练过程中都比基于循环神经网络的模型产生的震荡小的多,且收敛速度加快,模型可以更快的达到稳定。最终所有模型Sps全部收敛至0.7附近。
在数据集MovieLen上,可以发现基于循环神经网络的模型在第40000个batch后模型开始小幅度震荡直到最终收敛。而在RL-based模型中,如果使用Loss1作为损失函数,模型在第30000个batch后模型开始小幅度震荡直到收敛;如果使用Loss2作为损失函数,模型同样在第30000个batch后Sps指标开始逐渐趋于稳定;使用Loss3作为损失函数,模型在第35000个batch后,开始小幅度震动直到结果稳定。对比图15中的结果,可以明显发现RL-based模型除了收敛速度要比基于循环神经网络的模型要快以外,模型最终的收敛结果也明显要高于基于循环神经网络的模型。在图15中,标注出了Sps等于0.4的分界线,也就是图中的虚线,我们可以发现,3个RL-based模型在第20000个batch后,Sps都稳定在了0.4以上,使用Loss作为损失函数,模型最终的Sps稳定在了0.44附近;使用Loss2作为损失函数,模型的Sps最终稳定在0.41附近;而使用Loss3作为损失函数,模型的Sps最终很高的稳定在了0.45附近。反观基于循环神经网络的模型,模型的Sps指标最终稳定在了0.38附近。3个RL-based模型在MovieLen数据集上,不论是收敛速度还是模型最终Sps的结果,都要优于基于循环神经网络的模型。
另外,根据本发明的另一方面,还提供了一种推荐模型的训练装置。图16是根据本发明实施例的推荐模型的训练装置的主要模块示意图。如图16所示,本发明实施例的推荐模型的训练装置1600主要包括数据准备模块1601、第一预测模块1602、第二预测模块1603和反馈更新模块1604。
数据准备模块1601,用于根据获取的用户行为数据生成训练数据集;
第一预测模块1602,用于将所述训练数据集输入至待训练模型中以得到第一预测结果;
第二预测模块1603,用于根据所述第一预测结果生成中间预测数据,并将所述中间预测数据输入至所述待训练模型中以得到第二预测结果;
反馈更新模块1604,用于根据所述第一预测结果和所述第二预测结果计算反馈函数,根据所述反馈函数更新所述待训练模型以进行模型训练。
根据本发明的一个实施例,数据准备模块1601还可以用于:对获取的用户行为数据进行数据重构,以得到每个用户对应的数据链;从所述数据链中依次截取指定长度的片段,并对截取的片段进行编码以生成训练数据集。
根据本发明的另一个实施例,数据准备模块1601还可以用于:根据用户行为数据获取每个用户的访问项目、每个访问项目的项目得分及打分时间;对每个用户的行为数据,将每个访问项目及所述访问项目的项目得分组成序列对,并根据访问项目的打分时间对生成的序列对进行排序;将每个用户对应的排序后的序列对生成数据链。
根据本发明的又一个实施例,第二预测模块1603还可以用于:获取所述第一预测结果对应的训练数据包括的访问项目序列;将所述访问项目序列中的第一个访问项目删除,并分别将所述第一预测结果中的每个访问项目拼接到删除后的访问项目序列中,以得到中间预测数据,所述中间预测数据的条数与所述第一预测结果中的访问项目个数相同。
根据本发明的再一个实施例,反馈更新模块1604还可以用于:根据所述反馈函数生成损失函数,并根据生成的损失函数更新所述待训练模型。
在本发明的一个实施例中,反馈函数通过以下公式计算得到:其中,表示反馈函数,表示第一预测结果,表示第二预测结果,p(y_preci)表示中间预测数据中的第i个数据被选中的概率,i=1,2,……,k;且对应的损失函数通过以下公式计算得到:
其中,Loss1表示损失函数,NS为样本个数,为样本i实际的标签向量,为样本i经过模型预测得到的结果。
在本发明的另一个实施例中,反馈函数通过以下公式计算得到:
其中,表示反馈函数,表示第一预测结果,表示第二预测结果,p(y_preci)表示中间预测数据中的第i个数据被选中的概率,i=1,2,……,k;且对应的损失函数通过以下任一公式计算得到:
其中,Loss2、Loss3表示损失函数,NS为样本个数,为样本i实际的标签向量,为样本i经过模型预测得到的结果。
根据本发明实施例的技术方案,通过根据获取的用户行为数据生成训练数据集;将训练数据集输入至待训练模型中以得到第一预测结果;根据第一预测结果生成中间预测数据,并将中间预测数据输入至待训练模型中以得到第二预测结果;根据第一预测结果和第二预测结果计算反馈函数,并根据反馈函数更新待训练模型以进行模型训练,实现了基于强化学习的思想,将模型的预测结果引入模型训练中,使得预测结果的误差大大的减小,可以帮助模型加快收敛,减少模型迭代的次数,加快训练效率。
图17示出了可以应用本发明实施例的推荐模型的训练方法或推荐模型的训练装置的示例性系统架构1700。
如图17所示,系统架构1700可以包括终端设备1701、1702、1703,网络1704和服务器1705。网络1704用以在终端设备1701、1702、1703和服务器1705之间提供通信链路的介质。网络1704可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备1701、1702、1703通过网络1704与服务器1705交互,以接收或发送消息等。终端设备1701、1702、1703上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备1701、1702、1703可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器1705可以是提供各种服务的服务器,例如对用户利用终端设备1701、1702、1703所浏览的购物类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果(例如目标推送信息、产品信息--仅为示例)反馈给终端设备。
需要说明的是,本发明实施例所提供的推荐模型的训练方法一般由服务器1705执行,相应地,推荐模型的训练装置一般设置于服务器1705中。
应该理解,图17中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图18,其示出了适于用来实现本发明实施例的终端设备或服务器的计算机系统1800的结构示意图。图18示出的终端设备或服务器仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图18所示,计算机系统1800包括中央处理单元(CPU)1801,其可以根据存储在只读存储器(ROM)1802中的程序或者从存储部分1808加载到随机访问存储器(RAM)1803中的程序而执行各种适当的动作和处理。在RAM 1803中,还存储有系统1800操作所需的各种程序和数据。CPU 1801、ROM 1802以及RAM 1803通过总线1804彼此相连。输入/输出(I/O)接口1805也连接至总线1804。
以下部件连接至I/O接口1805:包括键盘、鼠标等的输入部分1806;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1807;包括硬盘等的存储部分1808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1809。通信部分1809经由诸如因特网的网络执行通信处理。驱动器1810也根据需要连接至I/O接口1805。可拆卸介质1811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1810上,以便于从其上读出的计算机程序根据需要被安装入存储部分1808。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1809从网络上被下载和安装,和/或从可拆卸介质1811被安装。在该计算机程序被中央处理单元(CPU)1801执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,例如,可以描述为:一种处理器包括数据准备模块、第一预测模块、第二预测模块和反馈更新模块。其中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定,例如,数据准备模块还可以被描述为“用于根据获取的用户行为数据生成训练数据集的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:根据获取的用户行为数据生成训练数据集;将所述训练数据集输入至待训练模型中以得到第一预测结果;根据所述第一预测结果生成中间预测数据,并将所述中间预测数据输入至所述待训练模型中以得到第二预测结果;根据所述第一预测结果和所述第二预测结果计算反馈函数,并根据所述反馈函数更新所述待训练模型以进行模型训练。
根据本发明实施例的技术方案,通过根据获取的用户行为数据生成训练数据集;将训练数据集输入至待训练模型中以得到第一预测结果;根据第一预测结果生成中间预测数据,并将中间预测数据输入至待训练模型中以得到第二预测结果;根据第一预测结果和第二预测结果计算反馈函数,并根据反馈函数更新待训练模型以进行模型训练,实现了基于强化学习的思想,将模型的预测结果引入模型训练中,使得预测结果的误差大大的减小,可以帮助模型加快收敛,减少模型迭代的次数,加快训练效率。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (8)
1.一种推荐模型的训练方法,其特征在于,包括:
根据获取的用户行为数据生成训练数据集;
将所述训练数据集输入至待训练模型中以得到第一预测结果;
根据所述第一预测结果生成中间预测数据,并将所述中间预测数据输入至所述待训练模型中以得到第二预测结果;
根据所述第一预测结果和所述第二预测结果计算反馈函数,并根据所述反馈函数更新所述待训练模型以进行模型训练;
根据所述反馈函数更新所述待训练模型包括:根据所述反馈函数生成损失函数,并根据生成的损失函数更新所述待训练模型;
所述反馈函数通过以下公式计算得到:
,
其中,表示反馈函数,表示第一预测结果,表示第二预测结果,表示中间预测数据中的第i个数据被选中的概率,i=1,2,……,k;
且对应的损失函数通过以下公式计算得到:
,
其中,表示损失函数,Ns为样本个数,为样本i实际的标签向量,为样本i经过模型预测得到的结果。
2.根据权利要求1所述的方法,其特征在于,根据获取的用户行为数据生成训练数据集包括:
对获取的用户行为数据进行数据重构,以得到每个用户对应的数据链;
从所述数据链中依次截取指定长度的片段,并对截取的片段进行编码以生成训练数据集。
3.根据权利要求2所述的方法,其特征在于,对获取的用户行为数据进行数据重构,以得到每个用户对应的数据链包括:
根据用户行为数据获取每个用户的访问项目、每个访问项目的项目得分及打分时间;
对每个用户的行为数据,将每个访问项目及所述访问项目的项目得分组成序列对,并根据访问项目的打分时间对生成的序列对进行排序;
将每个用户对应的排序后的序列对生成数据链。
4.根据权利要求2所述的方法,其特征在于,根据所述第一预测结果生成中间预测数据包括:
获取所述第一预测结果对应的训练数据包括的访问项目序列;
将所述访问项目序列中的第一个访问项目删除,并分别将所述第一预测结果中的每个访问项目拼接到删除后的访问项目序列中,以得到中间预测数据,所述中间预测数据的条数与所述第一预测结果中的访问项目个数相同。
5.根据权利要求1所述的方法,其特征在于,所述反馈函数还通过以下公式计算得到:
;
其中,表示反馈函数,表示第一预测结果,表示第二预测结果, 表示中间预测数据中的第i个数据被选中的概率,i=1,2,……,k;
且对应的损失函数通过以下任一公式计算得到:
、
,
其中,、表示损失函数,Ns为样本个数,为样本i实际的标签向量,为样本i经过模型预测得到的结果。
6.一种推荐模型的训练装置,其特征在于,包括:
数据准备模块,用于根据获取的用户行为数据生成训练数据集;
第一预测模块,用于将所述训练数据集输入至待训练模型中以得到第一预测结果;
第二预测模块,用于根据所述第一预测结果生成中间预测数据,并将所述中间预测数据输入至所述待训练模型中以得到第二预测结果;
反馈更新模块,用于根据所述第一预测结果和所述第二预测结果计算反馈函数,根据所述反馈函数更新所述待训练模型以进行模型训练;
所述反馈更新模块还用于:根据所述反馈函数生成损失函数,并根据生成的损失函数更新所述待训练模型;所述反馈函数通过以下公式计算得到:
,
其中,表示反馈函数,表示第一预测结果,表示第二预测结果,表示中间预测数据中的第i个数据被选中的概率,i=1,2,……,k;
且对应的损失函数通过以下公式计算得到:
,
其中,表示损失函数,Ns为样本个数,为样本i实际的标签向量,为样本i经过模型预测得到的结果。
7.一种推荐模型的训练电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-5中任一所述的方法。
8.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-5中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010086742.6A CN113254795B (zh) | 2020-02-11 | 2020-02-11 | 一种推荐模型的训练方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010086742.6A CN113254795B (zh) | 2020-02-11 | 2020-02-11 | 一种推荐模型的训练方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113254795A CN113254795A (zh) | 2021-08-13 |
CN113254795B true CN113254795B (zh) | 2023-11-07 |
Family
ID=77219547
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010086742.6A Active CN113254795B (zh) | 2020-02-11 | 2020-02-11 | 一种推荐模型的训练方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113254795B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113806632A (zh) * | 2021-08-26 | 2021-12-17 | 上海交通大学 | 一种基于双重一致性自集成学习的个性化推荐方法 |
CN113919866B (zh) * | 2021-09-27 | 2024-02-13 | 抖音视界有限公司 | 模型训练方法、广告投放方法、装置、设备及存储介质 |
CN116700736B (zh) * | 2022-10-11 | 2024-05-31 | 荣耀终端有限公司 | 一种应用推荐算法的确定方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107515909A (zh) * | 2017-08-11 | 2017-12-26 | 深圳市耐飞科技有限公司 | 一种视频推荐方法及系统 |
CN109241440A (zh) * | 2018-09-29 | 2019-01-18 | 北京工业大学 | 一种基于深度学习的面向隐式反馈推荐方法 |
CN110276446A (zh) * | 2019-06-26 | 2019-09-24 | 北京百度网讯科技有限公司 | 模型训练和选择推荐信息的方法和装置 |
CN110287420A (zh) * | 2019-06-28 | 2019-09-27 | 深圳前海微众银行股份有限公司 | 一种信息推荐系统的训练方法及装置 |
CN110532471A (zh) * | 2019-08-27 | 2019-12-03 | 华侨大学 | 基于门控循环单元神经网络的主动学习协同过滤方法 |
CN110765353A (zh) * | 2019-10-16 | 2020-02-07 | 腾讯科技(深圳)有限公司 | 项目推荐模型的处理方法、装置、计算机设备和存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190042956A1 (en) * | 2018-02-09 | 2019-02-07 | Intel Corporation | Automatic configurable sequence similarity inference system |
-
2020
- 2020-02-11 CN CN202010086742.6A patent/CN113254795B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107515909A (zh) * | 2017-08-11 | 2017-12-26 | 深圳市耐飞科技有限公司 | 一种视频推荐方法及系统 |
CN109241440A (zh) * | 2018-09-29 | 2019-01-18 | 北京工业大学 | 一种基于深度学习的面向隐式反馈推荐方法 |
CN110276446A (zh) * | 2019-06-26 | 2019-09-24 | 北京百度网讯科技有限公司 | 模型训练和选择推荐信息的方法和装置 |
CN110287420A (zh) * | 2019-06-28 | 2019-09-27 | 深圳前海微众银行股份有限公司 | 一种信息推荐系统的训练方法及装置 |
CN110532471A (zh) * | 2019-08-27 | 2019-12-03 | 华侨大学 | 基于门控循环单元神经网络的主动学习协同过滤方法 |
CN110765353A (zh) * | 2019-10-16 | 2020-02-07 | 腾讯科技(深圳)有限公司 | 项目推荐模型的处理方法、装置、计算机设备和存储介质 |
Non-Patent Citations (3)
Title |
---|
Deep Learning with Gated Recurrent Unit Networks for Financial Sequence Predictions;Guizhu Shen, Qingping Tan, Haoyu Zhang, Ping Zeng, Jianjun X;ELSEVIER;全文 * |
Personalized Top-N Sequential Recommendation via Convolutional Sequence Embedding;Jiaxi Tang, Ke Wang;arxiv;全文 * |
基于属性偏好自学习的推荐方法;刘志;林振涛;鄢致雯;陈波;;浙江工业大学学报(02);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113254795A (zh) | 2021-08-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11593894B2 (en) | Interest recommendation method, computer device, and storage medium | |
CN110321422B (zh) | 在线训练模型的方法、推送方法、装置以及设备 | |
CN110162693B (zh) | 一种信息推荐的方法以及服务器 | |
EP4181026A1 (en) | Recommendation model training method and apparatus, recommendation method and apparatus, and computer-readable medium | |
CN113254795B (zh) | 一种推荐模型的训练方法和装置 | |
Margaris et al. | What makes a review a reliable rating in recommender systems? | |
Li et al. | Haes: A new hybrid approach for movie recommendation with elastic serendipity | |
CN109840833B (zh) | 贝叶斯协同过滤推荐方法 | |
CN104794367B (zh) | 基于隐语义模型的就医资源评分与推荐方法 | |
CN111881358B (zh) | 一种对象推荐系统、方法、装置、电子设备和存储介质 | |
CN112989146B (zh) | 向目标用户推荐资源的方法、装置、设备、介质和程序产品 | |
WO2022011553A1 (en) | Feature interaction via edge search | |
CN113343091A (zh) | 面向产业和企业的科技服务推荐计算方法、介质及程序 | |
Du et al. | A unified hierarchical attention framework for sequential recommendation by fusing long and short-term preferences | |
Liang et al. | Measure prediction capability of data for collaborative filtering | |
Zhu et al. | Influential Recommender System | |
CN111198991A (zh) | 一种基于信任度和专家用户的协同过滤推荐方法 | |
CN109299351B (zh) | 内容推荐方法和装置、电子设备及计算机可读介质 | |
Wang et al. | KASR: knowledge-aware sequential recommendation | |
WO2022083596A1 (zh) | 一种排序方法、装置、设备及计算机存储介质 | |
Venugopal et al. | A proficient web recommender system using hybrid possiblistic fuzzy clustering and Bayesian model approach | |
Li et al. | Genetic algorithm and graph theory based matrix factorization method for online friend recommendation | |
CN111651643A (zh) | 候选内容的处理方法及相关设备 | |
Xu | BanditMF: Multi-Armed Bandit Based Matrix Factorization Recommender System | |
Burashnikova et al. | Sequential learning over implicit feedback for robust large-scale recommender systems |
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 |