CN110795618B - 内容推荐方法、装置、设备及计算机可读存储介质 - Google Patents
内容推荐方法、装置、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN110795618B CN110795618B CN201910869110.4A CN201910869110A CN110795618B CN 110795618 B CN110795618 B CN 110795618B CN 201910869110 A CN201910869110 A CN 201910869110A CN 110795618 B CN110795618 B CN 110795618B
- Authority
- CN
- China
- Prior art keywords
- session
- neighbor
- current
- code
- content
- 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
- 238000000034 method Methods 0.000 title claims abstract description 98
- 230000007246 mechanism Effects 0.000 claims abstract description 26
- 238000013528 artificial neural network Methods 0.000 claims description 44
- 238000012549 training Methods 0.000 claims description 24
- 238000004364 calculation method Methods 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 5
- 238000010606 normalization Methods 0.000 claims description 5
- 230000006870 function Effects 0.000 description 21
- 230000008569 process Effects 0.000 description 21
- 238000013527 convolutional neural network Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 12
- 238000004891 communication Methods 0.000 description 11
- 230000001537 neural effect Effects 0.000 description 10
- 210000002569 neuron Anatomy 0.000 description 10
- 238000012545 processing Methods 0.000 description 9
- 239000013598 vector Substances 0.000 description 9
- 238000004422 calculation algorithm Methods 0.000 description 8
- 230000002452 interceptive effect Effects 0.000 description 8
- 239000011159 matrix material Substances 0.000 description 8
- 230000004913 activation Effects 0.000 description 6
- 230000000306 recurrent effect Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 230000001133 acceleration Effects 0.000 description 3
- 230000008485 antagonism Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 3
- 125000004122 cyclic group Chemical group 0.000 description 3
- 238000010295 mobile communication Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000002829 reductive effect Effects 0.000 description 2
- 241000282472 Canis lupus familiaris Species 0.000 description 1
- 241000282326 Felis catus Species 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000037213 diet Effects 0.000 description 1
- 235000005911 diet Nutrition 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 238000009472 formulation Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000011524 similarity measure Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect 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/9535—Search customisation based on user profiles and personalisation
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
-
- 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
- G06N3/084—Backpropagation, e.g. using gradient descent
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Biomedical Technology (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Databases & Information Systems (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开了一种内容推荐方法、装置、设备及计算机可读存储介质,其中方法包括:基于训练好的推荐模型对当前会话进行编码,得到当前会话编码;基于所述当前会话编码,采用注意力机制对近邻会话集合中的近邻会话进行编码,得到近邻会话编码;其中,所述近邻会话集合包括基于与所述当前会话的相似度选取组成的会话集合,所述近邻会话集合中的近邻会话的发生时间在所述当前会话的发生时间之前;根据所述当前会话编码和所述近邻会话编码,生成所述当前会话的下一内容的推荐结果。实施本申请,可以解决传统的推荐方式中推荐结果的准确率不高的问题,提高推荐结果的准确率。
Description
技术领域
本申请涉及内容推荐技术领域,尤其涉及一种内容推荐方法、装置、设备及计算机可读存储介质。
背景技术
随着网络的快速发展,如何在庞大的信息库中准确找到自己需要的信息是本领域技术人员的研究热点。
现有技术中,传统的推荐技术主要包括以下两大类推荐方法:第一类为基于内容的推荐方法;第二类为基于协同过滤的推荐方法。基于内容匹配或协同过滤的推荐方法需要用户身份信息,即用户需进行登录操作;在一些实际场景下并不具备这种条件,例如有一些用户极注重隐私,或当前操作发生在陌生设备上。因此,基于不具名用户所发起会话的推荐是一种适应性更广的推荐模式。
基于不具名用户所发起会话的推荐,现有技术中有利用循环神经网络对当前会话建模的推荐方法,该类方法主要包括基于循环神经网络(Recurrent Neural Networks,RNN)的会话推荐算法及其改进,通常以某不具名用户所发起会话中的已有物品序列为输入,使用循环神经网络(GRU是其中一种)进行建模编码,从而为该不具名用户预测下一物品。然而,利用循环神经网络对当前会话建模的推荐方法由于仅仅基于当前会话进行后续推荐,从而受限于会话的一些不良特性,不仅会话的长度较短,通常包含的信息有限,而且会话中存在很多噪声,即存在用户误操作或漫无目的操作的可能。
基于不具名用户所发起会话的推荐,现有技术中还有基于会话的K近邻推荐方法,基于会话的K近邻推荐方法(Session-based KNN,SKNN)是一种相对传统的方法。首先,该类方法先人为设定一种相似性度量,并计算当前会话与各历史会话的相似度,从中挑选与当前会话最为相近的N个近邻会话;然后,对于近邻会话中包含的物品,该类方法按照相对应的相似度进行加权求和,得出各物品与当前会话的相关性度量,从而进行推荐。该类方法从历史会话中获取相关信息进行推荐,其性能依赖于人工规则的制定,即如何挑选近邻会话,然而人为制定的规则是无法保证最优的。此外,该类方法忽略了当前会话的局部信息,推荐结果准确率不高。
发明内容
本申请实施例提供一种内容推荐方法、相关装置、设备及计算机可读存储介质,可以解决传统的推荐方式中推荐结果的准确率不高的问题,提高推荐结果的准确率。
第一方面,本申请实施例提供了一种内容推荐方法,该方法包括:
基于训练好的推荐模型对当前会话进行编码,得到当前会话编码;
基于所述当前会话编码,采用注意力机制对近邻会话集合中的近邻会话进行编码,得到近邻会话编码;其中,所述近邻会话集合包括基于与所述当前会话的相似度选取组成的会话集合,所述近邻会话集合中的近邻会话的发生时间在所述当前会话的发生时间之前;
根据所述当前会话编码和所述近邻会话编码,生成所述当前会话的下一内容的推荐结果。
通过实施本申请实施例,动态地考虑了相似会话中的内容情况,提高内容推荐的准确性,具体地通过引入注意力机制,对当前会话的建模能力与近邻方法引入的辅助信息进行有机结合,减少了传统推荐方法对于人工规则的依赖性,从而提高内容推荐的准确性。为了达到本申请内容推荐的准确性,本申请通过动态地考虑了相似会话中的内容情况,并通过引入注意力机制,相对于现有技术而言运算效率更高,占用的计算机运算资源更少,因此可以提高计算机性能。
在其中一个可能的实现方式中,所述基于所述当前会话编码,采用注意力机制对近邻会话集合中的近邻会话进行编码,得到近邻会话编码,包括:
基于所述当前会话编码,采用注意力机制分别计算所述当前会话与所述近邻会话集合中的近邻会话的每个内容的注意力分数;
根据计算得到的所述注意力分数,对所述近邻会话中的每个内容的注意力分数进行求和,得到近邻会话编码。
也就是说,本申请实施例考虑了当前会话的具体情况,对近邻会话中的每个内容进行动态感知,得到近邻会话编码,以用于后续的内容推荐,可提高内容推荐的准确性。
在其中一个可能的实现方式中,所述基于所述当前会话编码,采用注意力机制分别计算所述当前会话与所述近邻会话集合中的近邻会话的每个内容的注意力分数,包括:
将所述近邻会话集合中的近邻会话转换为嵌入层表示,得到所述近邻会话的每个内容对应的嵌入层表示;
分别计算所述当前会话编码与所述每个内容对应的嵌入层表示的相关性;
将计算得到的相关性进行权重归一化,得到注意力分数。
本申请实施例通过计算当前会话编码与每个内容对应的嵌入层表示的相关性,然后进行权重归一化,可有助于更加准确地高效地完成后续的内容推荐。
在其中一个可能的实现方式中,所述基于训练好的推荐模型对当前会话进行编码,得到当前会话编码,包括:
将所述当前会话转换为嵌入层表示,得到所述当前会话中的内容对应的嵌入层表示;
将所述当前会话中的内容对应的嵌入层表示作为序列输入到神经网络中,输出得到当前会话编码。
在其中一个可能的实现方式中,所述基于所述当前会话编码,采用注意力机制对近邻会话集合中的近邻会话进行编码,得到近邻会话编码之前,还包括:
根据所述当前会话的发生时间,得到候选会话集合;所述候选会话集合中会话的发生时间在所述当前会话的发生时间之前;
计算所述当前会话与所述候选会话集合中会话的相似度;
所述候选会话集合中选取相似度符合需求的会话组成近邻会话集合。
本申请实施例是既考虑了当前会话的具体信息,也结合与当前会话的相似度,将相似度高的历史会话组成近邻会话集合,可有助于更加准确地高效地完成后续的内容推荐。
在其中一个可能的实现方式中,所述根据所述当前会话编码和所述近邻会话编码,生成所述当前会话的下一内容的推荐结果,包括:
将所述当前会话编码和所述近邻会话编码输入全连接层,输出得到所述当前会话的需求编码;
根据所述需求编码计算所述当前会话对待推荐内容的推荐度,将推荐度符合需求的一个或多个待推荐内容作为所述当前会话的下一内容。
在其中一个可能的实现方式中,所述基于训练好的推荐模型对当前会话进行编码,得到当前会话编码之前,还包括对所述推荐模型进行训练;
所述对所述推荐模型进行训练包括:
基于推荐模型对样本会话进行编码,得到样本会话编码;
基于所述样本会话编码,采用注意力机制对近邻样本会话集合中的近邻样本会话进行编码,得到近邻样本会话编码;其中,所述近邻样本会话集合包括基于与所述样本会话的相似度选取组成的会话集合,所述近邻样本会话集合中的近邻会话的发生时间在所述样本会话的发生时间之前;
根据所述样本会话编码和所述近邻样本会话编码,生成所述样本会话的下一内容的样本推荐结果,并以所述样本会话中最后一个内容作为目标推荐结果更新所述推荐模型的参数,使得生成的样本推荐结果匹配所述目标推荐结果。
本申请实施例可以对预先设定的推荐模型进行离线训练,可以将历史会话中的某一个会话作为样本会话,以所述样本会话中出现的最后一个内容作为目标推荐结果,引入注意力机制结合样本会话编码和近邻样本会话编码对该推荐模型进行训练,从而得到训练好的推荐模型。
第二方面,本申请实施例提供了一种内容推荐装置,该装置包括用于执行上述第一方面的方法的单元。具体地,该装置至少可以包括:
第一编码单元,用于基于训练好的推荐模型对当前会话进行编码,得到当前会话编码;
第二编码单元,用于基于所述当前会话编码,采用注意力机制对近邻会话集合中的近邻会话进行编码,得到近邻会话编码;其中,所述近邻会话集合包括基于与所述当前会话的相似度选取组成的会话集合,所述近邻会话集合中的近邻会话的发生时间在所述当前会话的发生时间之前;
推荐结果生成单元,用于根据所述当前会话编码和所述近邻会话编码,生成所述当前会话的下一内容的推荐结果。
第三方面,本申请实施例提供了一种内容推荐设备,包括处理器,所述处理器被配置用于调用存储的程序指令,执行上述第一方面的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行上述第一方面的方法。
第五方面,本申请实施例还提供了一种计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行上述第一方面的方法。
应当理解的是,本申请的第二至第五方面与本申请的第一方面的技术方案一致,各方面及对应的可行实施方式所取得的有益效果相似,不再赘述。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。
图1是本申请实施例提供的一种内容推荐***架构的原理示意图;
图2是本申请实施例的内容推荐方法的流程示意图;
图3是本申请实施例提供的内容推荐方法的推荐原理示意图;
图4是本申请实施例提供的推荐模型训练方法的流程示意图;
图5是本申请实施例提供的内容推荐方法的原理示意图;
图6是本申请实施例提供的内容推荐装置的结构示意图;
图7是本申请实施例提供的一种内容推荐设备的结构示意图;
图8是本申请实施例中另一种内容推荐设备的示意性框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
为了更好的理解本申请实施例提供的内容推荐方法,先说明本申请涉及的一些概念。
本申请实施例中的会话是指,不具名用户与交互***或交互平台或交互应用程序(下面统称交互***)进行通信的一个时间间隔中,该不具名用户的点击行为或浏览行为。不具名用户是指没有进行用户身份登录的用户。
本申请实施例的会话中包括内容(或者称为物品),会话中的内容具体可以根据交互***的不同而不同,例如交互***为新闻资讯***,那么会话的内容即可以为新闻;又如交互***为生活类分享***,那么会话的内容即可以为其他用户分享的生活信息;又如交互***为多媒体分享***,那么会话的内容即可以为视频、音频等多媒体信息。
本申请实施例的内容推荐,即可以为根据某不具名用户的当前会话已发生的部分,结合与该当前会话对应的近邻会话,向该不具名用户推荐下一个内容。
具体而言,本申请实施例的内容推荐方法可以应用在如下所示的场景A、场景B和场景C中,但本申请实施例的内容推荐方法不限于这三种应用场景。下面分别对场景A、场景B和场景C进行简单的介绍。
场景A:
某不具名用户打开新闻资讯***,进入新闻资讯浏览页面后,该不具名用户可基于当前页面,在今日值得看里面浏览新闻,当前浏览新闻的行为构成当前会话,该不具名用户在浏览新闻的过程中,通过本申请实施例的内容推荐方法即可在线向该不具名用户推荐下一个新闻。
场景B:
某不具名用户打开生活类分享***,该不具名用户进入***的生活类分享的浏览页面后,可基于当前页面,在浏览其他用户上传分享的生活信息,包括旅游、化妆、饮食等生活信息,当前浏览生活信息的行为构成当前会话,该不具名用户在浏览生活信息的过程中,通过本申请实施例的内容推荐方法即可在线向该不具名用户推荐下一个生活信息。
场景C:
某不具名用户打开多媒体分享***,该不具名用户进入***的多媒体分享的浏览页面后,可基于当前页面,在浏览***或其他用户上传分享的多媒体信息,当前浏览多媒体信息的行为构成当前会话,该不具名用户在浏览多媒体信息的过程中,通过本申请实施例的内容推荐方法即可在线向该不具名用户推荐下一个多媒体信息。
由于本申请实施例涉及神经网络的应用,为了便于理解,下面先对本申请实施例涉及的相关术语及神经网络等相关概念进行介绍。
(1)神经网络
神经网络可以是由神经单元组成的,神经单元可以是指以xs和截距1为输入的运算单元,该运算单元的输出可以为:
其中,s=1、2、……n,n为大于1的自然数,Ws为xs的权重,b为神经单元的偏置。f为神经单元的激活函数(activation functions),用于将非线性特性引入神经网络中,来将神经单元中的输入信号转换为输出信号。该激活函数的输出信号可以作为下一层卷积层的输入。激活函数可以是sigmoid函数。神经网络是将许多个上述单一的神经单元联结在一起形成的网络,即一个神经单元的输出可以是另一个神经单元的输入。每个神经单元的输入可以与前一层的局部接受域相连,来提取局部接受域的特征,局部接受域可以是由若干个神经单元组成的区域。
(2)深度神经网络
深度神经网络(deep neural network,DNN),也称多层神经网络,可以理解为具有很多层隐含层的神经网络,这里的“很多”并没有特别的度量标准。从DNN按不同层的位置划分,DNN内部的神经网络可以分为三类:输入层,隐含层,输出层。一般来说第一层是输入层,最后一层是输出层,中间的层数都是隐含层。层与层之间是全连接的,也就是说,第i层的任意一个神经元一定与第i+1层的任意一个神经元相连。虽然DNN看起来很复杂,但是就每一层的工作来说,其实并不复杂,简单来说就是如下线性关系表达式:其中,/>是输入向量,/>是输出向量,b是偏移向量,W是权重矩阵(也称系数),α()是激活函数。每一层仅仅是对输入向量/>经过如此简单的操作得到输出向量/>由于DNN层数多,则系数W和偏移向量b的数量也就很多了。这些参数在DNN中的定义如下所述:以系数W为例:假设在一个三层的DNN中,第二层的第4个神经元到第三层的第2个神经元的线性系数定义为/>上标3代表系数W所在的层数,而下标对应的是输出的第三层索引2和输入的第二层索引4。总结就是:第L-1层的第k个神经元到第L层的第j个神经元的系数定义为/>需要注意的是,输入层是没有W参数的。在深度神经网络中,更多的隐含层让网络更能够刻画现实世界中的复杂情形。理论上而言,参数越多的模型复杂度越高,“容量”也就越大,也就意味着它能完成更复杂的学习任务。训练深度神经网络的也就是学习权重矩阵的过程,其最终目的是得到训练好的深度神经网络的所有层的权重矩阵(由很多层的向量W形成的权重矩阵)。
(3)卷积神经网络
卷积神经网络(CNN,convolutional neuron network)是一种带有卷积结构的深度神经网络。卷积神经网络包含了一个由卷积层和子采样层构成的特征抽取器。该特征抽取器可以看作是滤波器,卷积过程可以看作是使用一个可训练的滤波器与一个输入的图像或者卷积特征平面(feature map)做卷积。卷积层是指卷积神经网络中对输入信号进行卷积处理的神经元层。在卷积神经网络的卷积层中,一个神经元可以只与部分邻层神经元连接。一个卷积层中,通常包含若干个特征平面,每个特征平面可以由一些矩形排列的神经单元组成。同一特征平面的神经单元共享权重,这里共享的权重就是卷积核。共享权重可以理解为提取图像信息的方式与位置无关。这其中隐含的原理是:图像的某一部分的统计信息与其他部分是一样的。即意味着在某一部分学习的图像信息也能用在另一部分上。所以对于图像上的所有位置,都能使用同样的学习得到的图像信息。在同一卷积层中,可以使用多个卷积核来提取不同的图像信息,一般地,卷积核数量越多,卷积操作反映的图像信息越丰富。
卷积核可以以随机大小的矩阵的形式初始化,在卷积神经网络的训练过程中卷积核可以通过学习得到合理的权重。另外,共享权重带来的直接好处是减少卷积神经网络各层之间的连接,同时又降低了过拟合的风险。
(4)循环神经网络(RNN,recurrent neural networks)是用来处理序列数据的。在传统的神经网络模型中,是从输入层到隐含层再到输出层,层与层之间是全连接的,而对于每一层层内之间的各个节点是无连接的。这种普通的神经网络虽然解决了很多难题,但是却仍然对很多问题却无能无力。例如,你要预测句子的下一个单词是什么,一般需要用到前面的单词,因为一个句子中前后单词并不是独立的。RNN之所以称为循环神经网路,即一个序列当前的输出与前面的输出也有关。具体的表现形式为网络会对前面的信息进行记忆并应用于当前输出的计算中,即隐含层本层之间的节点不再无连接而是有连接的,并且隐含层的输入不仅包括输入层的输出还包括上一时刻隐含层的输出。理论上,RNN能够对任何长度的序列数据进行处理。对于RNN的训练和对传统的CNN或DNN的训练一样。同样使用误差反向传播算法,不过有一点区别:即,如果将RNN进行网络展开,那么其中的参数,如W,是共享的;而如上举例上述的传统神经网络却不是这样。并且在使用梯度下降算法中,每一步的输出不仅依赖当前步的网络,还依赖前面若干步网络的状态。该学习算法称为基于时间的反向传播算法Back propagation Through Time(BPTT)。
既然已经有了卷积神经网络,为什么还要循环神经网络?原因很简单,在卷积神经网络中,有一个前提假设是:元素之间是相互独立的,输入与输出也是独立的,比如猫和狗。但现实世界中,很多元素都是相互连接的,比如股票随时间的变化,再比如一个人说了:我喜欢旅游,其中最喜欢的地方是云南,以后有机会一定要去。这里填空,人类应该都知道是填“云南”。因为人类会根据上下文的内容进行推断,但如何让机器做到这一步?RNN就应运而生了。RNN旨在让机器像人一样拥有记忆的能力。因此,RNN的输出就需要依赖当前的输入信息和历史的记忆信息。
(5)损失函数
在训练深度神经网络的过程中,因为希望深度神经网络的输出尽可能的接近真正想要预测的值,所以可以通过比较当前网络的预测值和真正想要的目标值,再根据两者之间的差异情况来更新每一层神经网络的权重向量(当然,在第一次更新之前通常会有过程,即为深度神经网络中的各层预先配置参数),比如,如果网络的预测值高了,就调整权重向量让它预测低一些,不断的调整,直到深度神经网络能够预测出真正想要的目标值或与真正想要的目标值非常接近的值。因此,就需要预先定义“如何比较预测值和目标值之间的差异”,这便是损失函数(loss function)或目标函数(objective function),它们是用于衡量预测值和目标值的差异的重要方程。其中,以损失函数举例,损失函数的输出值(loss)越高表示差异越大,那么深度神经网络的训练就变成了尽可能缩小这个loss的过程。
(6)反向传播算法
卷积神经网络可以采用误差反向传播(back propagation,BP)算法在训练过程中修正初始样本生成器中参数的大小,使得初始样本生成器的重建误差损失越来越小。具体地,前向传递输入信号直至输出会产生误差损失,通过反向传播误差损失信息来更新初始样本生成器中参数,从而使误差损失收敛。反向传播算法是以误差损失为主导的反向传播运动,旨在得到最优的目标样本生成器的参数,例如权重矩阵。
(7)生成式对抗网络
生成式对抗网络(generative adversarial networks,GAN)是一种深度学习模型。该模型中至少包括两个模块:一个模块是生成模型(generative model,本申请实施例中也称生成网络),另一个模块是判别模型(discriminative model,本申请实施例中也称为判别网络),通过这两个模块互相博弈学习,从而产生更好的输出。生成模型和判别模型都可以是神经网络,具体可以是深度神经网络,或者卷积神经网络。GAN的基本原理如下:以生成图片的GAN为例,假设有两个网络,G(generator)和D(discriminator),其中G是一个生成图片的网络,它接收一个随机的噪声z,通过这个噪声生成图片,记做G(z);D是一个判别网络,用于判别一张图片是不是“真实的”。它的输入参数是x,x代表一张图片,输出D(x)代表x为真实图片的概率,如果为1,就代表100%是真实的图片,如果为0,就代表不可能是真实的图片。在对该生成式对抗网络进行训练的过程中,生成网络G的目标就是尽可能生成真实的图片去欺骗判别网络D,而判别网络D的目标就是尽量把G生成的图片和真实的图片区分开来。这样,G和D就构成了一个动态的“博弈”过程,也即“生成式对抗网络”中的“对抗”。最后博弈的结果,在理想的状态下,G可以生成足以“以假乱真”的图片G(z),而D难以判定G生成的图片究竟是不是真实的,即D(G(z))=0.5。这样就得到了一个优异的生成模型G,它可以用来生成图片。
下面介绍本申请实施例提供的***架构。
参见附图1,本申请实施例提供了一种内容推荐***架构的原理示意图,如图中内容推荐的***架构100,包括模型离线训练过程,以及在线推荐过程。其中,
近邻会话检索是用于基于输入的会话,通过计算输入会话与历史会话的相似度,组成近邻会话集合;具体地可以参照基于会话的K近邻推荐方法,根据该输入的会话在历史记录中检索出N个近邻会话,组成近邻会话集合。
推荐模型可预先设定,然后通过离线训练来更新调整模型中的参数,最终得到训练后的推荐模型。
在离线训练过程中,可以对于历史会话记录中的任意会话,将之前的内容序列作为输入会话,并根据输入会话检索出发生在该会话之前的近邻会话集合;而后以该输入会话中的最后一个内容(比如新闻)视为推荐结果,进行推荐模型的训练,更新调整模型中的参数,最终得到训练后的推荐模型。
在在线推荐过程中,以新发起会话为输入会话,在全体历史会话记录中检索近邻会话集合,而后通过训练好的推荐模型进行推荐,得到内容推荐结果。
值得注意的是,附图1仅是本申请实施例提供的一种***架构的示意图,图中所示设备、器件、模块等之间的位置关系不构成任何限制。
下面再结合附图说明本申请实施例中推荐模型的结构。
如图2示出的本申请实施例的内容推荐方法的流程示意图,可以包括如下步骤:
步骤S200:基于训练好的推荐模型对当前会话进行编码,得到当前会话编码;
具体地,可以同步参考图3示出的本申请实施例提供的内容推荐方法的推荐原理示意图,可以将所述当前会话转换为嵌入层表示,得到该当前会话中的内容对应的嵌入层表示。以内容为新闻为例,输入部分可以为当前会话的新闻编号i,输出结果为当前会话中的新闻i的嵌入层表示εi,该嵌入层表示的层可进行离线训练。
将所述当前会话中的内容对应的嵌入层表示εi作为序列输入到神经网络中,输出得到当前会话编码hs。该神经网络可以为循环神经网络、卷积神经网络或全连接神经网络等神经网络。
步骤S202:基于所述当前会话编码,采用注意力机制对近邻会话集合中的近邻会话进行编码,得到近邻会话编码;
其中,所述近邻会话集合包括基于与所述当前会话的相似度选取组成的会话集合,所述近邻会话集合中的近邻会话的发生时间在所述当前会话的发生时间之前;
具体地,可以基于所述当前会话编码,采用注意力机制分别计算所述当前会话与所述近邻会话集合中的近邻会话的每个内容的注意力分数;根据计算得到的所述注意力分数,对所述近邻会话中的每个内容的注意力分数进行求和,得到近邻会话编码。
在其中一个可能的实施方式中,可以将所述近邻会话集合中的近邻会话转换为嵌入层表示,得到所述近邻会话的每个内容对应的嵌入层表示ei;分别计算所述当前会话编码与所述每个内容对应的嵌入层表示的相关性;
例如可以通过如下公式2进行计算:
其中,hs为当前会话编码;ei为近邻会话的内容i对应的嵌入层表示;Whe为权重,是推荐模型的参数之一。通过公式2可以计算出当前会话编码hs与近邻会话的内容i对应的嵌入层表示ei的相关性αsi。
其中,本申请实施例中的下标s代表会话,下标i代表内容(如新闻),例如有S个会话,I个内容,那么Ii即代表编号为i的内容,Ss即代表会话s,如果会话5中内容的点击顺序为1,5,4,7,则有S5=[I1,I5,I4,I7]。
为会话-内容矩阵,其中如果会话s包含了内容i,则rsi=1,否则为0。
然后可以将计算得到的相关性进行权重归一化,得到注意力分数。例如可以使用softmax函数进行权重归一化,如下公式3所示:
在其中一个可能的实施方式中,可以通过如下公式4,来对所述近邻会话中的每个内容的注意力分数进行求和,得到近邻会话编码es:
在其中一个可能的实施方式中,图4中的近邻会话是在步骤S302之前组成的或生成的。在步骤S302之前,可以包括根据所述当前会话的发生时间,得到候选会话集合;所述候选会话集合中会话的发生时间在所述当前会话的发生时间之前;计算所述当前会话与所述候选会话集合中会话的相似度;所述候选会话集合中选取相似度符合需求的会话组成近邻会话集合。
具体地,基于给定的输入会话s以及会话-内容矩阵R,通过以下步骤,可以获得输入会话的近邻会话:
1、根据输入会话s发生时间,得到候选会话集合Cs。即Cs中的任意会话,发生时间都在s之前。
2、对候选会话集合Cs中任意会话sc,以余弦相似度为度量,计算输入会话s与sc的相似度。即,similarity(s,sc)=cosine(rs,rsc)。
3、按照步骤2中求得的相似度,取与s最相似的N个会话,组成近邻会话集合Ns。具体地,可以设置相似度阈值作为需求或条件,相似度大于或达到阈值的会话即符合需求的会话,组成近邻会话集合;或者可以设置相似度的排序结果作为需求或条件,相似度从大到小排序在前N个的会话即符合需求的会话,组成近邻会话集合。
步骤S204:根据所述当前会话编码和所述近邻会话编码,生成所述当前会话的下一内容的推荐结果。
具体地,可以将所述当前会话编码和所述近邻会话编码输入全连接层,输出得到所述当前会话的需求编码;例如可以通过如下公式5来得到当前会话的需求编码qs:
qs=σ(Wqhhs+Wqees+bq) (5)
其中,Wqh、Wqe为权重,bq为偏置参数,都是推荐模型的参数之一。
然后根据所述需求编码qs计算所述当前会话对待推荐内容的推荐度rs,将推荐度符合需求的一个或多个待推荐内容作为所述当前会话的下一内容。例如可以通过公式6来计算推荐度rs:
rs=softmax(Wrqqs+br) (6)
具体地,例如可以对推荐度rs做降序排序,输出推荐度最高的若干个结果,即可对当前会话进行内容推荐。其中Wrq的行数代表有多少个候选推荐内容,对每个候选推荐内容的推荐度rs做降序排序,输入例如推荐度排序最高的前10个内容,推荐给用户。
在其中一个可能的实施方式中,还可以通过公式7来计算推荐度:
具体地,例如可以对推荐度rsi做降序排序,输出推荐度最高的若干个结果,即可对当前会话进行内容推荐。
在其中一种可能的实施方式中,本申请在基于训练好的推荐模型对当前会话进行编码,得到当前会话编码之前,还包括对所述推荐模型进行训练;
如图4示出的本申请实施例提供的推荐模型训练方法的流程示意图,本申请实施例中所述推荐模型进行训练,可以包括如下步骤:
步骤S400:基于推荐模型对样本会话进行编码,得到样本会话编码;
具体地,本申请实施例中的样本会话可以为历史会话记录中的任意会话,将输入的样本会话进行编码后得到样本会话编码。
步骤S402:基于所述样本会话编码,采用注意力机制对近邻样本会话集合中的近邻样本会话进行编码,得到近邻样本会话编码;
其中,所述近邻样本会话集合包括基于与所述样本会话的相似度选取组成的会话集合,所述近邻样本会话集合中的近邻会话的发生时间在所述样本会话的发生时间之前;
步骤S404:根据所述样本会话编码和所述近邻样本会话编码,生成所述样本会话的下一内容的样本推荐结果,并以所述样本会话中最后一个内容作为目标推荐结果更新所述推荐模型的参数,使得生成的样本推荐结果匹配所述目标推荐结果。最终得到训练好的推荐模型,用于后续的在线推荐。
下面再结合图5示出的本申请实施例提供的内容推荐方法的原理示意图,来进行说明。
在离线训练阶段,可以将任意历史会话作为样本会话进行输入,首先会根据输入的会话发生时间得到候选会话集合,然后计算输入的会话与各候选会话的相似度,最后根据相似度得到近邻会话集合。接着将输入的会话以及近邻会话集合中的会话分别转换为嵌入层表示,并对输入的会话进行RNN编码,接着计算输入的会话与近邻会话的注意力分数,得到近邻会话编码,并最终根据输入的会话的编码和近邻会话编码生成推荐结果,根据样本会话中最后一个内容作为目标推荐结果更新所述推荐模型的参数,直到对基于近邻会话动态感知的推荐模型训练完毕。
在在线推荐阶段,发起新的会话,并根据发起的当前会话的发生时间得到候选会话集合,然后计算当前会话与各候选会话的相似度,最后根据相似度得到近邻会话集合。接着将输入的当前会话以及近邻会话集合中的会话分别转换为嵌入层表示,并对输入的当前会话进行RNN编码,接着计算输入的当前会话与近邻会话的注意力分数,得到近邻会话编码,并最终根据输入的当前会话编码和近邻会话编码生成推荐结果,并向不具名用户进行推荐。
具体地,本申请各个实施例中的在近邻会话进行编码时,可以使用多种多样的注意力分数计算机制,例如多头注意力机制、改变激活函数等等。
通过实施本申请实施例,动态地考虑了相似会话中的内容情况,提高内容推荐的准确性,具体地通过引入注意力机制,对当前会话的建模能力与近邻方法引入的辅助信息进行有机结合,减少了传统推荐方法对于人工规则的依赖性,从而提高内容推荐的准确性。
为了便于更好地实施本申请实施例的上述方案,本申请还对应提供了一种内容推荐装置,如图6示出的本申请实施例提供的内容推荐装置的结构示意图,内容推荐装置60包括:第一编码单元600、第二编码单元602和推荐结果生成单元604,其中,
第一编码单元600用于基于训练好的推荐模型对当前会话进行编码,得到当前会话编码;
第二编码单元602用于基于所述当前会话编码,采用注意力机制对近邻会话集合中的近邻会话进行编码,得到近邻会话编码;其中,所述近邻会话集合包括基于与所述当前会话的相似度选取组成的会话集合,所述近邻会话集合中的近邻会话的发生时间在所述当前会话的发生时间之前;
推荐结果生成单元604用于根据所述当前会话编码和所述近邻会话编码,生成所述当前会话的下一内容的推荐结果。
在其中一种可能的实施方式中,第二编码单元602具体可以包括第一计算单元和加权平均单元,其中,第一计算单元用于基于所述当前会话编码,采用注意力机制分别计算所述当前会话与所述近邻会话集合中的近邻会话的每个内容的注意力分数;加权平均单元用于根据计算得到的所述注意力分数,对所述近邻会话中的每个内容进行加权平均,得到近邻会话编码。
在其中一种可能的实施方式中,第一计算单元可以具体用于将所述近邻会话集合中的近邻会话转换为嵌入层表示,得到所述近邻会话的每个内容对应的嵌入层表示;分别计算所述当前会话编码与所述每个内容对应的嵌入层表示的相关性;将计算得到的相关性进行权重归一化,得到注意力分数。
在其中一种可能的实施方式中,第一编码单元600可以具体用于将所述当前会话转换为嵌入层表示,得到所述当前会话中的内容对应的嵌入层表示;将所述当前会话中的内容对应的嵌入层表示作为序列输入到神经网络中,输出得到当前会话编码。
在其中一种可能的实施方式中,内容推荐装置60还可以包括近邻会话生成单元,用于在第二编码单元602基于所述当前会话编码,采用注意力机制对近邻会话集合中的近邻会话进行编码,得到近邻会话编码之前,根据所述当前会话的发生时间,得到候选会话集合;所述候选会话集合中会话的发生时间在所述当前会话的发生时间之前;计算所述当前会话与所述候选会话集合中会话的相似度;所述候选会话集合中选取相似度符合需求的会话组成近邻会话集合。
在其中一种可能的实施方式中,推荐结果生成单元604可以包括全连接单元和第二计算单元,其中,全连接单元用于将所述当前会话编码和所述近邻会话编码输入全连接层,输出得到所述当前会话的需求编码;第二计算单元用于根据所述需求编码计算所述当前会话对待推荐内容的推荐度,将推荐度符合需求的一个或多个待推荐内容作为所述当前会话的下一内容。
在其中一种可能的实施方式中,内容推荐装置60还可以包括模型训练单元,用于在第一编码单元600基于训练好的推荐模型对当前会话进行编码,得到当前会话编码之前,对所述推荐模型进行训练。具体地,可用于:
基于推荐模型对样本会话进行编码,得到样本会话编码;
基于所述样本会话编码,采用注意力机制对近邻样本会话集合中的近邻样本会话进行编码,得到近邻样本会话编码;其中,所述近邻样本会话集合包括基于与所述样本会话的相似度选取组成的会话集合,所述近邻样本会话集合中的近邻会话的发生时间在所述样本会话的发生时间之前;
根据所述样本会话编码和所述近邻样本会话编码,生成所述样本会话的下一内容的样本推荐结果,并以所述样本会话中最后一个内容作为目标推荐结果更新所述推荐模型的参数,使得生成的样本推荐结果匹配所述目标推荐结果。
本申请实施例中的内容推荐装置60各单元用于对应执行上述各方法实施例中图1至图5实施例中的内容推荐方法中执行设备执行的步骤,这里不再赘述。
图7是本申请实施例提供的一种内容推荐设备的结构示意图。图7所示的内容推荐设备700(该设备具体可以是一种计算机设备)包括存储器701、处理器702、通信接口703以及总线704。其中,存储器701、处理器702、通信接口703通过总线704实现彼此之间的通信连接。
存储器701可以是只读存储器(Read Only Memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(Random Access Memory,RAM)。存储器701可以存储程序,当存储器701中存储的程序被处理器702执行时,处理器702和通信接口703用于执行本申请实施例的内容推荐方法的各个步骤。
处理器702可以采用通用的中央处理器(Central Processing Unit,CPU),微处理器,应用专用集成电路(Application Specific Integrated Circuit,ASIC),图形处理器(graphics processing unit,GPU)或者一个或多个集成电路,用于执行相关程序,以执行本申请方法实施例的内容推荐方法。
处理器702还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本申请的样本生成器的训练方法的各个步骤可以通过处理器702中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器702还可以是通用处理器、数字信号处理器(DigitalSignal Processing,DSP)、专用集成电路(ASIC)、现成可编程门阵列(Field ProgrammableGate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器701,处理器702读取存储器701中的信息,结合其硬件完成本申请方法实施例的内容推荐方法。
在其中一种可能的实施方式中,内容推荐设备700可以不包括存储器701,处理器702通过通信接口703可以获取云端存储的程序,以执行申请方法实施例的内容推荐方法的步骤。
通信接口703使用例如但不限于收发器一类的收发装置,来实现装置700与其他设备或通信网络之间的通信。例如,可以通过通信接口703获取训练数据。
总线704可包括在装置700各个部件(例如,存储器701、处理器702、通信接口703)之间传送信息的通路。
上述各个功能器件的具体实现可以参见上述各个方法实施例中相关描述,本申请实施例不再赘述。
图8为本申请实施例中另一种内容推荐设备的示意性框图;图8所示的内容推荐设备800(该装置800具体可以是一种终端)包括存储器801、基带芯片802、射频模块803、******804和传感器805。基带芯片802包括至少一个处理器8021,例如CPU,时钟模块8022和电源管理模块8023;******804包括摄像头8041、音频模块8042、触摸显示屏8043等,进一步地,传感器805可以包括光线传感器8051、加速度传感器8052、指纹传感器8053等;******804和传感器805包括的模块可以视实际需要来增加或者减少。上述任意两个相连接的模块可以具体通过总线相连,该总线可以是工业标准体系结构(英文:industry standardarchitecture,简称:ISA)总线、外部设备互连(英文:peripheral componentinterconnect,简称:PCI)总线或扩展标准体系结构(英文:extended industry standardarchitecture,简称:EISA)总线等。
射频模块803可以包括天线和收发器(包括调制解调器),该收发器用于将天线接收到的电磁波转换为电流并且最终转换为数字信号,相应地,该收发器还用于将该手机将要输出的数字信号据转换为电流然后转换为电磁波,最后通过该天线将该电磁波发射到自由空间中。射频模块803还可包括至少一个用于放大信号的放大器。通常情况下,可以通过该射频模块803进行无线传输,如蓝牙(英文:Bluetooth)传输、无线保证(英文:Wireless-Fidelity,简称:WI-FI)传输、第三代移动通信技术(英文:3rd-Generation,简称:3G)传输、***移动通信技术(英文:the 4th Generation mobile communication,简称:4G)传输等。
触摸显示屏8043可用于显示由用户输入的信息或向用户展示信息,触摸显示屏8043可包括触控面板和显示面板,可选的,可以采用液晶显示器(英文:Liquid CrystalDisplay,简称:LCD)、有机发光二极管(英文:Organic Light-Emitting Diode,简称:OLED)等形式来配置显示面板。进一步的,触控面板可覆盖显示面板,当触控面板检测到在其上或附近的触摸操作后,传送给处理器8021以确定触摸事件的类型,随后处理器8021根据触摸事件的类型在显示面板上提供相应的视觉输出。触控面板与显示面板是作为两个独立的部件来实现内容推荐设备800的输入和输出功能,但是在某些实施例中,可以将触控面板与显示面板集成而实现内容推荐设备800的输入和输出功能。
摄像头8041用于获取图像。
音频输入模块8042具体可以为麦克风,可以获取语音,并可以输入到训练后的内容推荐网络。
传感器805用于可以包括光线传感器8051、加速度传感器8052、指纹传感器8052,其中,光线传感器8051用于获取环境的光强,加速度传感器8052(比如陀螺仪等)可以获取内容推荐设备800的运动状态,指纹传感器8053可以输入的指纹信息;传感器805感应到相关信号后将该信号量化为数字信号并传递给处理器8021做进一步处理。
存储器801可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。存储器801可选的还可以包括至少一个位于远离前述处理器8021的存储装置,该存储器801可以具体包括存储指令区和存储数据区,其中,存储指令区可存储操作***、用户接口程序、通信接口程序等程序,该存储数据区可存储该处理在执行相关操作所需要的数据,或者执行相关操作所产生的数据。
处理器8021是内容推荐设备800的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行存储在存储器801内的程序,以及调用存储在存储器801内的数据,执行内容推荐设备800的各项功能。可选的,处理器8021可包括一个或多个应用处理器,该应用处理器主要处理操作***、用户界面和应用程序等。在本申请实施例中,处理器8021读取存储器801中的信息,结合其硬件完成本申请实施例的内容推荐方法。
通过射频模块803用户实现该内容推荐设备800的通信功能。
需要说明的是,上述各个功能单元的具体实现可以参见上述各个方法实施例中相关描述,本申请实施例不再赘述。上述各个操作的具体实现及有益效果还可以对应参照上述图1至图6中提供的实施例及其可能的实施例的相应描述。
在具体实现中,内容推荐设备可以为终端或者服务器,具体地,其表现形式可以包括移动手机、平板电脑、个人数字助理(Personal Digital Assistant,PDA)、移动互联网设备(Mobile Internet Device,MID)等各种用户可以使用的设备,本发明实施例不作具体限定。
应理解,本申请实施例提供的方法可以适用的应用场景只是作为一种示例,实际应用中并不限于此。
还应理解,本申请中涉及的第一、第二、第三以及各种数字编号仅仅为描述方便进行的区分,并不用来限制本申请的范围。
应理解,本申请中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本申请中字符“/”,一般表示前后关联对象是一种“或”的关系。
此外,在本申请的各个实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚的了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块和单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。
所述作为分离部件说明的单元可以是物理上分开的,也可以不是物理上分开的,作为单元显示的部件可以是物理单元,也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本申请实施例方案的目的。
此外,在本申请各个实施例中所涉及的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现,本申请对此不作限定。
本发明实施例还提供了一种计算机存储介质,该计算机可读存储介质中存储有指令,当其在计算机或处理器上运行时,使得计算机或处理器执行上述任一个实施例所述方法中的一个或多个步骤。上述装置的各组成模块如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在所述计算机可读取存储介质中,基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机产品存储在计算机可读存储介质中。
上述计算机可读存储介质可以是前述实施例所述的设备的内部存储单元,例如硬盘或内存。上述计算机可读存储介质也可以是上述设备的外部存储设备,例如配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,上述计算机可读存储介质还可以既包括上述设备的内部存储单元也包括外部存储设备。上述计算机可读存储介质用于存储上述计算机程序以及上述设备所需的其他程序和数据。上述计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可通过计算机程序来指令相关的硬件来完成,该计算机的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可存储程序代码的介质。
本申请实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
本申请实施例装置中的模块可以根据实际需要进行合并、划分和删减。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (9)
1.一种内容推荐方法,其特征在于,包括:
基于训练好的推荐模型对当前会话进行编码,得到当前会话编码;
基于所述当前会话编码,采用注意力机制分别计算所述当前会话与近邻会话集合中的近邻会话的每个内容的注意力分数;根据计算得到的所述注意力分数,对所述近邻会话中的每个内容的注意力分数进行求和,得到近邻会话编码;其中,所述近邻会话集合包括基于与所述当前会话的相似度选取组成的会话集合,所述近邻会话集合中的近邻会话的发生时间在所述当前会话的发生时间之前;所述近邻会话集合中的近邻会话,是从候选会话集合中所确定的符合需求的会话,所述候选会话集合由发生时间在所述当前会话的发生时间之前的不同会话组成;
根据所述当前会话编码和所述近邻会话编码,生成所述当前会话的下一内容的推荐结果。
2.根据权利要求1所述的方法,其特征在于,所述基于所述当前会话编码,采用注意力机制分别计算所述当前会话与所述近邻会话集合中的近邻会话的每个内容的注意力分数,包括:
将所述近邻会话集合中的近邻会话转换为嵌入层表示,得到所述近邻会话的每个内容对应的嵌入层表示;
分别计算所述当前会话编码与所述每个内容对应的嵌入层表示的相关性;
将计算得到的相关性进行权重归一化,得到注意力分数。
3.根据权利要求1所述的方法,其特征在于,所述对当前会话进行编码,得到当前会话编码,包括:
将所述当前会话转换为嵌入层表示,得到所述当前会话中的内容对应的嵌入层表示;
将所述当前会话中的内容对应的嵌入层表示作为序列输入到神经网络中,输出得到当前会话编码。
4.根据权利要求1所述的方法,其特征在于,所述基于所述当前会话编码,采用注意力机制对近邻会话集合中的近邻会话进行编码,得到近邻会话编码之前,还包括:
根据所述当前会话的发生时间,得到候选会话集合;所述候选会话集合中会话的发生时间在所述当前会话的发生时间之前;
计算所述当前会话与所述候选会话集合中会话的相似度;
所述候选会话集合中选取相似度符合需求的会话组成近邻会话集合。
5.根据权利要求1所述的方法,其特征在于,所述根据所述当前会话编码和所述近邻会话编码,生成所述当前会话的下一内容的推荐结果,包括:
将所述当前会话编码和所述近邻会话编码输入全连接层,输出得到所述当前会话的需求编码;
根据所述需求编码计算所述当前会话对待推荐内容的推荐度,将推荐度符合需求的一个或多个待推荐内容作为所述当前会话的下一内容。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述基于训练好的推荐模型对当前会话进行编码,得到当前会话编码之前,还包括对所述推荐模型进行训练;
所述对所述推荐模型进行训练包括:
基于推荐模型对样本会话进行编码,得到样本会话编码;
基于所述样本会话编码,采用注意力机制对近邻样本会话集合中的近邻样本会话进行编码,得到近邻样本会话编码;其中,所述近邻样本会话集合包括基于与所述样本会话的相似度选取组成的会话集合,所述近邻样本会话集合中的近邻会话的发生时间在所述样本会话的发生时间之前;
根据所述样本会话编码和所述近邻样本会话编码,生成所述样本会话的下一内容的样本推荐结果,并以所述样本会话中最后一个内容作为目标推荐结果更新所述推荐模型的参数,使得生成的样本推荐结果匹配所述目标推荐结果。
7.一种内容推荐装置,其特征在于,包括:
第一编码单元,用于基于训练好的推荐模型对当前会话进行编码,得到当前会话编码;
第二编码单元,用于基于所述当前会话编码,采用注意力机制分别计算所述当前会话与近邻会话集合中的近邻会话的每个内容的注意力分数;根据计算得到的所述注意力分数,对所述近邻会话中的每个内容的注意力分数进行求和,得到近邻会话编码;其中,所述近邻会话集合包括基于与所述当前会话的相似度选取组成的会话集合,所述近邻会话集合中的近邻会话的发生时间在所述当前会话的发生时间之前;所述近邻会话集合中的近邻会话,是从候选会话集合中所确定的符合需求的会话,所述候选会话集合由发生时间在所述当前会话的发生时间之前的不同会话组成;
推荐结果生成单元,用于根据所述当前会话编码和所述近邻会话编码,生成所述当前会话的下一内容的推荐结果。
8.一种内容推荐设备,其特征在于,包括处理器,所述处理器被配置用于调用存储的程序指令,执行如权利要求1-6任一项所述的方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1-6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910869110.4A CN110795618B (zh) | 2019-09-12 | 2019-09-12 | 内容推荐方法、装置、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910869110.4A CN110795618B (zh) | 2019-09-12 | 2019-09-12 | 内容推荐方法、装置、设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110795618A CN110795618A (zh) | 2020-02-14 |
CN110795618B true CN110795618B (zh) | 2024-05-14 |
Family
ID=69427095
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910869110.4A Active CN110795618B (zh) | 2019-09-12 | 2019-09-12 | 内容推荐方法、装置、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110795618B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111581519B (zh) * | 2020-05-25 | 2022-10-18 | 中国人民解放军国防科技大学 | 基于会话中用户意图的物品推荐方法和*** |
CN112800209A (zh) * | 2021-01-28 | 2021-05-14 | 上海明略人工智能(集团)有限公司 | 会话语料推荐方法、装置、存储介质和电子设备 |
CN113344177B (zh) * | 2021-05-10 | 2022-10-14 | 电子科技大学 | 基于图注意力的深度推荐方法 |
CN113704438B (zh) * | 2021-09-06 | 2022-02-22 | 中国计量大学 | 一种基于分层注意力机制的异构图的会话推荐方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015143096A1 (en) * | 2014-03-18 | 2015-09-24 | Staples, Inc. | Clickstream purchase prediction using hidden markov models |
CN109871485A (zh) * | 2019-02-13 | 2019-06-11 | 北京航空航天大学 | 一种个性化推荐方法及装置 |
CN109960761A (zh) * | 2019-03-28 | 2019-07-02 | 腾讯科技(深圳)有限公司 | 信息推荐方法、装置、设备及计算机可读存储介质 |
CN110008408A (zh) * | 2019-04-12 | 2019-07-12 | 山东大学 | 一种会话推荐方法、***、设备及介质 |
CN110119467A (zh) * | 2019-05-14 | 2019-08-13 | 苏州大学 | 一种基于会话的项目推荐方法、装置、设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3079116A1 (en) * | 2015-04-10 | 2016-10-12 | Tata Consultancy Services Limited | System and method for generating recommendations |
-
2019
- 2019-09-12 CN CN201910869110.4A patent/CN110795618B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015143096A1 (en) * | 2014-03-18 | 2015-09-24 | Staples, Inc. | Clickstream purchase prediction using hidden markov models |
CN109871485A (zh) * | 2019-02-13 | 2019-06-11 | 北京航空航天大学 | 一种个性化推荐方法及装置 |
CN109960761A (zh) * | 2019-03-28 | 2019-07-02 | 腾讯科技(深圳)有限公司 | 信息推荐方法、装置、设备及计算机可读存储介质 |
CN110008408A (zh) * | 2019-04-12 | 2019-07-12 | 山东大学 | 一种会话推荐方法、***、设备及介质 |
CN110119467A (zh) * | 2019-05-14 | 2019-08-13 | 苏州大学 | 一种基于会话的项目推荐方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110795618A (zh) | 2020-02-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110795618B (zh) | 内容推荐方法、装置、设备及计算机可读存储介质 | |
CN110084281B (zh) | 图像生成方法、神经网络的压缩方法及相关装置、设备 | |
CN110119467B (zh) | 一种基于会话的项目推荐方法、装置、设备及存储介质 | |
WO2021120719A1 (zh) | 神经网络模型更新方法、图像处理方法及装置 | |
WO2022083536A1 (zh) | 一种神经网络构建方法以及装置 | |
WO2021218517A1 (zh) | 获取神经网络模型的方法、图像处理方法及装置 | |
WO2021233199A1 (zh) | 搜索推荐模型的训练方法、搜索结果排序的方法及装置 | |
WO2022042713A1 (zh) | 一种用于计算设备的深度学习训练方法和装置 | |
WO2021022521A1 (zh) | 数据处理的方法、训练神经网络模型的方法及设备 | |
WO2022068623A1 (zh) | 一种模型训练方法及相关设备 | |
US20230153615A1 (en) | Neural network distillation method and apparatus | |
CN109885756B (zh) | 基于cnn和rnn的序列化推荐方法 | |
WO2021190296A1 (zh) | 一种动态手势识别方法及设备 | |
CN111353076A (zh) | 训练跨模态检索模型的方法、跨模态检索的方法和相关装置 | |
CN113326930B (zh) | 数据处理方法、神经网络的训练方法及相关装置、设备 | |
CN113705769A (zh) | 一种神经网络训练方法以及装置 | |
CN113240127B (zh) | 基于联邦学习的训练方法、装置、电子设备及存储介质 | |
CN112613581A (zh) | 一种图像识别方法、***、计算机设备和存储介质 | |
CN112487217A (zh) | 跨模态检索方法、装置、设备及计算机可读存储介质 | |
WO2021136058A1 (zh) | 一种处理视频的方法及装置 | |
CN111695673B (zh) | 训练神经网络预测器的方法、图像处理方法及装置 | |
CN112561028A (zh) | 训练神经网络模型的方法、数据处理的方法及装置 | |
WO2022156475A1 (zh) | 神经网络模型的训练方法、数据处理方法及装置 | |
US20220292357A1 (en) | Neural Network Search Method, Apparatus, And Device | |
WO2023185925A1 (zh) | 一种数据处理方法及相关装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40022038 Country of ref document: HK |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |