CN110674181B - 信息推荐方法、装置、电子设备及计算机可读存储介质 - Google Patents
信息推荐方法、装置、电子设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN110674181B CN110674181B CN201910970036.5A CN201910970036A CN110674181B CN 110674181 B CN110674181 B CN 110674181B CN 201910970036 A CN201910970036 A CN 201910970036A CN 110674181 B CN110674181 B CN 110674181B
- Authority
- CN
- China
- Prior art keywords
- information
- hidden layer
- characteristic information
- feature information
- time
- 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
Images
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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2457—Query processing with adaptation to user needs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供了一种信息推荐方法、装置、电子设备及计算机可读存储介质,该方法包括:提取当前行为信息的行为特征信息;根据当前时刻的行为特征信息得到当前时刻的隐层特征信息,并缓存在缓存模块中;根据当前时刻的行为特征信息、以及存储于存储模块的历史特征信息,确定下一时刻的待推荐信息;当缓存模块中缓存的隐层特征信息的个数等于预设值时,基于每个存储区域各自所对应的预设数量的、且与每个存储区域所存储的信息的时序先后对应的隐层特征信息,对每个存储区域分别进行信息更新。在本方案中,将隐层特征信息缓存在缓存模块中,在缓存的隐层特征信息的个数等于预设值时,才对存储模块中的历史特征信息更新一次,可提高数据处理效率。
Description
技术领域
本发明涉及信息处理技术领域,具体而言,本发明涉及一种信息推荐方法、装置、电子设备及计算机可读存储介质。
背景技术
现有的信息推荐方法中,通常是基于用户当前时刻的当前行为信息和当前时刻之前的一段时间内的历史行为信息,预测下一时刻推荐给用户的信息,然后,基于当前行为信息,更新该当前时刻之前的历史信息,则基于现有技术中的方法,每一时刻获取到用户的行为信息,都会基于每一时刻的行为信息更新一次对应时刻之前的历史信息,由于一个时刻的行为信息的信息量有限,可能不能准确反映出用户的兴趣变化,因此,如果每个时刻都更新一次相应的历史信息,会使得更新次数频繁,降低了数据处理效率。
发明内容
本发明的目的旨在至少能解决上述的技术缺陷之一,可提高数据处理效率。本发明采用的技术方案如下:
第一方面,本发明提供了一种信息推荐方法,该方法包括:
获取用户当前时刻的当前行为信息,并提取当前行为信息的行为特征信息;
根据当前时刻的行为特征信息得到当前时刻对应的隐层特征信息,并缓存在缓存模块中;
根据当前时刻的行为特征信息、以及存储于存储模块的用户的历史特征信息,确定下一时刻的待推荐信息;
其中,历史特征信息是基于历史隐层特征信息得到的,存储模块包括按照时序先后存储信息的至少两个存储区域;
该方法还包括:
当缓存模块中缓存的隐层特征信息的个数等于预设值时,基于每个存储区域各自所对应的预设数量的、且与每个存储区域所存储的信息的时序先后对应的隐层特征信息,对每个存储区域分别进行信息更新,并删除所缓存的隐层特征信息;
其中,各存储区域所对应的预设数量之和等于预设值,存储时序靠后的信息的存储区域所对应的预设数量不大于存储时序靠前的信息的存储区域所对应的预设数量。
本发明第一方面的实施例中,预设数量是基于预设值和存储区域的个数确定的。
本发明第一方面的实施例中,各个存储区域各自对应的预设数量是通过以下方式确定的:
基于预设值和存储区域的个数,确定各相邻存储区域所对应的预设数量之间的差值;
根据预设值、存储区域的个数、以及各相邻存储区域所对应的差值,确定各存储区域所对应的预设数量。
本发明第一方面的实施例中,各相邻存储区域所对应的预设数量之间的差值相等,差值的表达式为:
其中,g表示差值,L表示预设值,M表示存储区域的个数。
本发明第一方面的实施例中,对于一个存储区域,基于缓存模块中该存储区域所对应的隐层特征信息,对该存储区域进行信息更新,包括:
确定该存储区域所对应的各隐层特征信息的权重;
基于该存储区域所对应的各隐层特征信息的权重,对该存储区域所对应的各隐层特征信息进行融合,得到该存储区域所对应第三特征信息;
基于第三特征信息,对该存储区域进行信息更新。
本发明第一方面的实施例中,确定该存储区域所对应的各隐层特征信息的权重,包括:
基于该存储区域所对应的各隐层特征信息,以及上一时刻的第一特征信息,该存储区域所对应的各隐层特征信息的权重。
本发明第一方面的实施例中,根据当前时刻的行为特征信息得到当前时刻对应的隐层特征信息,包括:
根据当前时刻的行为特征信息、上一时刻对应的隐层特征信息、以及上一时刻对应的第一特征信息,确定当前时刻对应的隐层特征信息;
其中,初始时刻对应的隐层特征信息是基于初始时刻的行为特征信息得到,上一时刻对应的第一特征信息是根据上一时刻的第二特征信息和上一时刻对应的历史特征信息得到的,初始时刻的第一特征信息是基于初始时刻的第二特征信息得到的,初始时刻的第二特征信息是基于初始时刻的行为特征信息得到的;
上一时刻的第二特征信息是通过以下方式得到的:
根据上一时刻的行为特征信息、上一时刻的上一时刻对应的隐层特征信息、以及上一时刻的上一时刻对应的第一特征信息,得到上一时刻的第二特征信息。
本发明第一方面的实施例中,根据当前时刻的行为特征信息、以及存储于存储模块的用户的历史特征信息,确定下一时刻的待推荐信息,包括:
根据当前时刻的行为特征信息、上一时刻对应的隐层特征信息、以及上一时刻对应的第一特征信息,确定当前时刻的第二特征信息;
根据当前时刻的第二特征信息和上一时刻对应的历史特征信息,确定当前时刻的第一特征信息;
基于当前时刻的第一特征信息和当前时刻的第二特征信息,确定下一时刻的待推荐信息。
本发明第一方面的实施例中,信息推荐方法通过神经网络模型实现,神经网络模型包括第一网络模型、存储模块和缓存模块;
其中,第一网络模型用于:
基于当前行为信息,提取当前行为信息的行为特征信息,根据当前时刻的行为特征信息得到当前时刻对应的隐层特征信息,根据当前时刻的行为特征信息、以及存储于存储模块的用户的历史特征信息,确定下一时刻的待推荐信息;
存储模块用于存储历史特征信息,以及当缓存模块中缓存的隐层特征信息的个数等于预设值时,基于每个存储区域各自所对应的预设数量的、且与每个存储区域所存储的信息的时序先后对应的隐层特征信息,对每个存储区域分别进行信息更新;
缓存模块用于缓存隐层特征信息,并在存储模块更新一次后,删除所缓存的隐层特征信息。
本发明第一方面的实施例中,存储模块还用于基于对应时刻的第二特征信息确定对应时刻的第一特征信息。
本发明第一方面的实施例中,神经网络模型是基于训练样本数据对第一网络模型的模型参数进行训练更新得到的。
本发明第一方面的实施例中,该方法由服务器执行,该服务器为区块链系统中的一个节点。
第二方面,本发明提供了一种信息推荐装置,该装置包括:
行为特征信息确定模块,用于获取用户当前时刻的当前行为信息,并提取当前行为信息的行为特征信息;
缓存模块,用于根据当前时刻的行为特征信息得到当前时刻对应的隐层特征信息,并缓存在缓存模块中;
待推荐信息确定模块,用于根据当前时刻的行为特征信息、以及存储于存储模块的用户的历史特征信息,确定下一时刻的待推荐信息;
其中,历史特征信息是基于历史隐层特征信息得到的,存储模块包括按照时序先后存储信息的至少两个存储区域;
该装置还包括:
更新模块,用于在缓存模块中缓存的隐层特征信息的个数等于预设值时,基于每个存储区域各自所对应的预设数量的、且与每个存储区域所存储的信息的时序先后对应的隐层特征信息,对每个存储区域分别进行信息更新,并删除所缓存的隐层特征信息;
其中,各存储区域所对应的预设数量之和等于预设值,存储时序靠后的信息的存储区域所对应的预设数量不大于存储时序靠前的信息的存储区域所对应的预设数量。
本发明第二方面的实施例中,预设数量是基于预设值和存储区域的个数确定的。
本发明第二方面的实施例中,各个存储区域各自对应的预设数量是通过以下方式确定的:
基于预设值和存储区域的个数,确定各相邻存储区域所对应的预设数量之间的差值;
根据预设值、存储区域的个数、以及各相邻存储区域所对应的差值,确定各存储区域所对应的预设数量。
本发明第二方面的实施例中,各相邻存储区域所对应的预设数量之间的差值相等,差值的表达式为:
其中,g表示差值,L表示预设值,M表示存储区域的个数。
本发明第二方面的实施例中,对于一个存储区域,更新模块在基于缓存模块中该存储区域所对应的隐层特征信息,对该存储区域进行信息更新时,具体用于:
确定该存储区域所对应的各隐层特征信息的权重;
基于该存储区域所对应的各隐层特征信息的权重,对该存储区域所对应的各隐层特征信息进行融合,得到该存储区域所对应第三特征信息;
基于第三特征信息,对该存储区域进行信息更新。
本发明第二方面的实施例中,更新模块在确定该存储区域所对应的各隐层特征信息的权重时,具体用于:
基于该存储区域所对应的各隐层特征信息,以及上一时刻的第一特征信息,该存储区域所对应的各隐层特征信息的权重。
本发明第二方面的实施例中,缓存模块在根据当前时刻的行为特征信息得到当前时刻对应的隐层特征信息时,具体用于:
根据当前时刻的行为特征信息、上一时刻对应的隐层特征信息、以及上一时刻对应的第一特征信息,确定当前时刻对应的隐层特征信息;
其中,初始时刻对应的隐层特征信息是基于初始时刻的行为特征信息得到,上一时刻对应的第一特征信息是根据上一时刻的第二特征信息和上一时刻对应的历史特征信息得到的,初始时刻的第一特征信息是基于初始时刻的第二特征信息得到的,初始时刻的第二特征信息是基于初始时刻的行为特征信息得到的;
上一时刻的第二特征信息是通过以下方式得到的:
根据上一时刻的行为特征信息、上一时刻的上一时刻对应的隐层特征信息、以及上一时刻的上一时刻对应的第一特征信息,得到上一时刻的第二特征信息。
本发明第二方面的实施例中,待推荐信息确定模块在根据当前时刻的行为特征信息、以及存储于存储模块的用户的历史特征信息,确定下一时刻的待推荐信息时,具体用于:
根据当前时刻的行为特征信息、上一时刻对应的隐层特征信息、以及上一时刻对应的第一特征信息,确定当前时刻的第二特征信息;
根据当前时刻的第二特征信息和上一时刻对应的历史特征信息,确定当前时刻的第一特征信息;
基于当前时刻的第一特征信息和当前时刻的第二特征信息,确定下一时刻的待推荐信息。
本发明第二方面的实施例中,信息推荐方法通过神经网络模型实现,神经网络模型包括第一网络模型、存储模块和缓存模块;
其中,第一网络模型用于:
基于当前行为信息,提取当前行为信息的行为特征信息,根据当前时刻的行为特征信息得到当前时刻对应的隐层特征信息,根据当前时刻的行为特征信息、以及存储于存储模块的用户的历史特征信息,确定下一时刻的待推荐信息;
存储模块用于存储历史特征信息,以及当缓存模块中缓存的隐层特征信息的个数等于预设值时,基于每个存储区域各自所对应的预设数量的、且与每个存储区域所存储的信息的时序先后对应的隐层特征信息,对每个存储区域分别进行信息更新;
缓存模块用于缓存隐层特征信息,并在存储模块更新一次后,删除所缓存的隐层特征信息。
本发明第二方面的实施例中,存储模块还用于基于对应时刻的第二特征信息确定对应时刻的第一特征信息。
本发明第二方面的实施例中,神经网络模型是基于训练样本数据对第一网络模型的模型参数进行训练更新得到的。
第三方面,本发明提供了一种电子设备,该电子设备包括:
处理器和存储器;
存储器,用于存储计算机操作指令;
处理器,用于通过调用计算机操作指令,执行如本发明的第一方面和任一实施例中所示的方法。
第四方面,本发明提供了一种计算机可读存储介质,该存储介质存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现如本发明的第一方面任一实施例中所示的方法。
本发明实施例提供的技术方案带来的有益效果是:
本发明实施例的信息推荐方法、装置、电子设备及计算机可读存储介质,在缓存模块中缓存的隐层特征信息的个数等于预设值时,可以基于缓存模块所缓存的隐层特征信息更新一次存储模块中的历史特征信息,从而提高了数据处理效率;另外,由于存储模块存储的信息中存储时序靠后的信息相对于靠前的信息对确定下一时刻的待推荐信息更重要,具有更多可反映用户兴趣变化的信息,因此,在更新时,存储时序靠后的信息的存储区域所对应的预设数量不大于存储时序靠前的信息的存储区域所对应的预设数量,基于存储区域各自对应的预设数量的隐层特征信息对每个存储区域对应的历史特征信息进行更新,可最大化保存隐层特征信息中的有用信息,从而使得在基于历史特征信息预测下一时刻的待推荐信息时,确定的待推荐信息更准确。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对本发明实施例描述中所需要使用的附图作简单地介绍。
图1为本发明的实施例提供的一种GRU模型的网络结构示意图;
图2为本发明的实施例提供的第一种更新策略的示意图;
图3为本发明的实施例提供的第二种更新策略的示意图;
图4为本发明的实施例提供的一种信息推荐方法流程示意图;
图5为本发明的实施例提供的一示例中的信息更新策略示意图;
图6为本发明的实施例提供的一种神经网络模型的网络结构示意图;
图7为本发明的实施例提供的一种数据处理效率比较示意图;
图8为本发明的实施例提供的一种分布式系统应用于区块链系统的结构示意图;
图9为本发明的实施例提供的一种区块结构的示意图;
图10为本发明的实施例提供的一种信息推荐装置的结构示意图;
图11为本发明的实施例提供的一种电子设备的结构示意图。
具体实施方式
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面详细描述本发明的实施例,该实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
其中,机器学习(Machine Learning,ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、式教学习等技术。
随着人工智能技术研究和进步,人工智能技术在多个领域展开研究和应用,例如常见的智能家居、智能穿戴设备、虚拟助理、智能音箱、智能营销、无人驾驶、自动驾驶、无人机、机器人、智能医疗、智能客服等,相信随着技术的发展,人工智能技术将在更多的领域得到应用,并发挥越来越重要的价值。
本申请实施例提供的方案涉及人工智能的机器学习等技术,具体通过如下实施例进行说明:
首先,为了更好的理解及说明本发明实施例的方案,下面对本发明实施例中所涉及到的一些技术用语进行简单说明。
神经网络(Neural Network,NN):是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型。这种网络依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的。
RNN(Recurrent Neural Network,循环神经网络):是一类以序列(sequence)数据为输入,在序列的演进方向进行递归(recursion)且所有节点(循环单元)按链式连接的递归神经网络。
GRU(Gated Recurrent Unit,门控循环单元):是RNN神经网络的一种变体。
RUM(a framework integrating Recommender system with external UserMemory networks)模型:是一种基于外部用户记忆网络的集成推荐系统框架。
GRU4Rec模型:一种基于会话的递归神经网络推荐模型,通过使用由GRU单元组成的深度RNN对会话进行建模。
NTM(Neural Turing Machine,神经图灵机):图灵机就是一种简单的计算机模型,由外部存储器(写有指令的磁带)和存储器(能够沿着磁带读取的设备)组成,根据磁带上读取到的指令,计算机能够决定在磁带上不同的方向上移动来进行写入或者擦除新符号等操作。
CUW(Cached Uniform Writing,缓存统一书写):一种周期性信息更新策略,其中,每个信息的重要性一致。
会话:会话是服务器端用来记录识别用户的一种机制。典型的场景比如短视频,服务端为特定的对象创建了特定的会话,该会话用于标识这个对象,并且跟踪用户的浏览观看行为。本发明中可以将会话理解为具有时序关系的一些记录序列。
one-hot:是一种向量编码方式,也称之为独热编码。
MRR(Mean Reciprocal Rank):平均倒数排名。
NDCG(Normalized Discounted Cumulative Gain):归一化折损累计增益。
Recall:召回率。
上述的Recall、MRR以及NDCG是推荐系统常用的几个评价指标。
在现有技术中,信息推荐可以通过以下方式实现:
基于GRU4Rec模型的推荐方式:由于RNN比较容易面临梯度消失或者爆炸的问题,该方案中的神经网络模型采用RNN的变种GRU模型。GRU4Rec模型的网络结构示意图如图1所示,该模型可以包括多个GRU层(图1中所示的GRU layer)、以及一个前馈网络层(图1中所示的Feedforward layer,具体可以采用全连接层)。基于该GRU4Rec模型,以短视频推荐应用场景为例,已知一个会话(比如,一个用户一段时间内所观看的视频)中的观看视频序列为x1,x2,…,xT-1,依次将x1,x2,…,xT-1输入到GRU4Rec模型中,预测T时刻被观看的视频。
如图1中所示,基于用户当前所观看的视频序列x1,x2,…,xT-1,通过该GRU4Rec模型预测下一时刻即T时刻被观看的概率最大的视频,具体的,在基于模型进行预测时,序列中的各视频xi(u=1,2,…,T-1),可以首先被转换为one-hot向量,随后将one-hot向量通过嵌入层(图1中所示的Embedding layer)转换成一定维度的嵌入向量,之后经过多层GRU单元(图1中所示的GRU layer)完成序列化建模,完成序列化建模之后再经过一个全连接层得到下一次每个视频被观看的概率,选取其中概率最大的视频即为xT。
但是,通过上述方式进行信息推荐存在以下问题:
(1)GRU4Rec模型只能使用嵌入向量表示、存储会话的特征信息,其表达能力弱,会产生了不必要的信息损失。
(2)在处理长会话时,例如,在短视频推荐场景,用户在一个小时的时间可以观看数百个视频,通过RNN建模容易出现梯度爆炸或者消失等问题,即便通过LSTM(Long ShortTerm Memory network,长短期记忆网络)和GRU来对长会话进行建模,也只能处理有限数量的视频,使得该模型性能较差。
(3)虽然RNN模型可以使用细胞状态来记忆过去的信息,但会话末端的输入对最终的预测结果的影响会更大,即该模型在预测阶段只考虑了局部信息,无法捕捉到该用户长期的兴趣变化,使得预测的推荐信息不准确。
基于上述信息推荐方式存在的问题,可以采用外部记忆模块进行会话推荐,即将用户的历史会话信息通过外部存储的方式进行存储,外部记忆模块则可以存储用户长时间的历史会话信息,基于外部记忆模块存储的信息可以捕捉到用户长期的兴趣变化,使得预测的推荐信息更加准确。
现有技术中的外部记忆模块的实现方式为:基于NTM的会话推荐方法,即每个时间节点都对外部记忆模块进行读写更新。但该方式由于在每个时间节点都要对外部记忆模块进行读写,因此对外部记忆模块进行读写操作的计算消耗比较大,且训练以及预测消耗的时间也会随之增大。
针对上述问题,效率更好的访问策略应该是周期性的读写外部记忆模块。比如,基于心理学人类记忆理论中的组块原理,即为了能够记忆更多的信息,人类主观的将外界摄入的信息按照某种组合规则进行初步组合加工(例如记忆10个数字4648611346时,会按照464、861、1346的组合记忆,而不是单独的记忆10个数字),然后存储记忆于人类的大脑,通过这种方式可以更加容易、准确的记住更多的信息。基于上述原理,现有技术中目前主要有以下两种更新策略:
假设给定的会话序列长度为L,L=20,每个会话序列长度对应一个时间节点,共有20个时间节点,外部记忆模块中的存储区域的数量是M,M=4,即存储模块包括4个存储区域,每个会话按照获取的时序先后存储。
第一种更新策略:如图2所示,每个存储区域对应不同数量的会话,第一个存储区域(图2中所示的外部记忆模块中的1区域)对应17个会话(第1时间节点至第17时间节点对应的会话),第二个存储区域(图2中所示的外部记忆模块中的2区域)对应1个会话(第18时间节点对应的会话),第三个存储区域(图2中所示的外部记忆模块中的3区域)对应1个会话(第19时间节点对应的会话),第四个存储区域(图2中所示的外部记忆模块中的4区域)对应1个会话(第20时间节点对应的会话),分别在这M个时间节点对外部记忆模块中的信息进行更新,即分别在第17、18、19、20这几个时间节点对对应的存储区域中的信息进行更新。
第二种更新策略:如图3所示,是基于CUW的更新策略,其主要原则是进行周期性的更新,该更新策略中每个会话的重要性是相等的。更新周期为每个存储区域对应相同数量的会话,第一个存储区域(图3中所示的外部记忆模块中的1区域)对应5个会话(第1时间节点至第5时间节点对应的会话),第二个存储区域(图3中所示的外部记忆模块中的2区域)对应5个会话(第6时间节点至第10时间节点对应的会话),第三个存储区域(图3中所示的外部记忆模块中的3区域)对应5个会话(第11时间节点至第15时间节点对应的会话),第四个存储区域(图3中所示的外部记忆模块中的4区域)对应5个会话(第16时间节点至第20时间节点对应的会话),基于该策略,会分别在这M个时间节点对外部记忆模块中的信息进行更新,即分别在第5、10、15、20这几个时间节点对对应的存储区域中的信息进行更新。
但是,在实际场景中,会话序列中的每个会话的重要性是不相等的,会话序列中越靠后的会话其重要性越大,也就是越新的会话重要性越大。那么,模型就应该随着时间的推进,更加频繁的更新外部记忆模块,以此来保持模型最大化的保存有用信息。由此,基于上述两种更新策略仍然会存在以下问题:
第一种更新策略:在更新时,会造成时间节点1到L-M之间信息的大量损失,即1~17之间信息的大量损失。
第二种更新策略:信息损失均摊到了每一次的更新过程中,但是考虑到会话中末尾16、17、18、19、20的重要性大于1、2、3、4、5,却分摊了相同的信息损失,该更新策略仍不是理想的更新策略。
针对现有技术存在的问题,以及更好的满足实际应用需求,本发明实施例提供了一种信息推荐方法,该方法将隐层特征信息缓存在缓存模块中,在缓存的隐层特征信息的个数等于预设值时,才对存储模块中的历史特征信息更新一次,基于该方案,可在更有效的利用所获取到的用户行为信息的前提下,提高数据处理效率。
下面以具体地实施例对本发明的技术方案以及本发明的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本发明的实施例进行描述。
为了便于对本方案的理解与描述,首先对在本发明实施例下文中的描述中所出现的各技术用语的表示方式进行说明:
用户的当前行为信息记为xi,i表示当前时刻;
用户当前时刻之前的各时刻的历史行为信息记为xi-n,其中,n≥1,则当前时刻的上一时刻的上一时刻的历史行为信息为xi-1,上一时刻的上一时刻的历史行为信息为xi-2。
用户当前时刻所对应的历史行为信息即当前时刻之前的所有历史行为信息即为x<i,当前时刻之前的上一时刻所对应的历史行为信息则可以记为x<i-1。可以理解的是,若当前时刻为第一个时刻即初始时刻,则不存在当前时刻之前的历史行为信息。
相应的,上一时刻的行为特征信息记为vi-1,上一时刻的隐层特征信息记为hi-1,上一时刻的第二特征信息记为上一时刻的第四特征信息记为oi-1,上一时刻的第一特征信息记为ri-1,上一时刻的历史特征信息记为Mi-1。
初始时刻的行为特征信息记为v1,初始时刻的隐层特征信息为h1,初始时刻的第二特征信息记为初始时刻的第四特征信息记为o1,初始时刻的第一特征信息记为r1,初始时刻的历史特征信息记为M1。同样的,若当前时刻为初始时刻,则实际上并不存在历史特征信息,也就是说,M1为空。下一时刻的待推荐信息记为xi+1。
图4示出了本发明提供的一种信息推荐方法的流程示意图,如图中所示,该方法可以包括步骤S110至步骤S140,其中:
步骤S110:获取用户当前时刻的当前行为信息,并提取当前行为信息的行为特征信息。
其中,用户的行为信息是指用户在终端设备上的操作行为信息,具体可以是指用户对应用程序的操作行为信息。对于不同的应用场景,用户的行为信息通常是不同的,例如,对于购物类应用程序,用户的行为信息可以是用户购买物品的操作,也可以用户在该应用程序对应的界面中搜索某个物品的操作;再例如,对于视频观看类应用程序,用户的行为信息则可以包括用户所观看的视频的相关信息等。
而当前行为信息指的是当前最新获取到的用户的行为信息,如上述对于上述视频观看类应用程序,当前行为信息则可以包括用户最新观看的视频的相关信息。
步骤S120:根据当前时刻的行为特征信息得到当前时刻对应的隐层特征信息,并缓存在缓存模块中。
具体的,隐层特征信息指的是基于行为特征信息进行处理后得到的中间特征信息,该信息中包含了对应行为特征信息中可反映用户行为特点的信息。若当前时刻为初始时刻,初始时刻的隐层特征信息则可以是基于初始时刻对应的用户的行为信息得到的。
步骤S130:根据当前时刻的行为特征信息、以及存储于存储模块的用户的历史特征信息,确定下一时刻的待推荐信息。
其中,历史特征信息是基于历史隐层特征信息得到的,历史隐层特征信息指的是历史特征信息对应的时刻之前所对应的隐层特征信息。
本发明实施例中,存储模块包括按照时序先后存储信息的至少两个存储区域。也就是说,存储模块中的各个存储区域也可按照该时序先后分别存储对应的信息,各历史特征信息按照所获取到的时间的先后分开存储于各存储区域中,且各个存储区域所存储的信息是连续的、不重叠的信息。
由前文描述可知,用户的历史行为信息指的是在当前时刻之前该用户所产生的所有行为信息,即当前时刻的前序时刻所获取到的用户的行为信息。若当前时刻为初始时刻,初始时刻对应的历史行为信息实质上是不存在的,此时,初始时刻对应的历史行为信息可以为空,或者为预配置的初始化信息。
其中,由于历史特征信息可以准确的反应出该用户的兴趣变化,因此,基于当前时刻的行为特征信息和历史特征信息确定的待推荐信息更加准确。
步骤S140:当缓存模块中缓存的隐层特征信息的个数等于预设值时,基于每个存储区域各自所对应的预设数量的、且与每个存储区域所存储的信息的时序先后对应的隐层特征信息,对每个存储区域分别进行信息更新,并删除所缓存的隐层特征信息。
其中,各存储区域所对应的预设数量之和等于预设值,存储时序靠后的信息的存储区域所对应的预设数量不大于存储时序靠前的信息的存储区域所对应的预设数量。
在更新一次历史特征信息之后,可将所缓存的隐层特征信息删除,即清除缓存,使得缓存模块中的信息清空,以便于继续缓存用于进行下一次更新的隐层特征信息。
其中,预设数量和预设值分别可基于实际需求配置,通常预设数量和预设值均为正整数,且预设值大于预设数量。预设值指的是一次更新历史特征信息所需要的隐层特征信息的个数,预设数量指的是用于更新每个存储区域的历史特征信息的隐层特征信息的个数。
需要说明的是,步骤S140在执行时并不限定于在上述步骤S130之后,在缓存模块中所缓存的隐层特征信息的个数等于预设值时,即可执行该步骤S140,对存储模块中的信息进行更新。
本发明实施例所提供的信息推荐方法,缓存模块中缓存的隐层特征信息的个数等于预设值时,可以基于所缓存的隐层特征信息更新一次存储模块中的历史特征信息,提高了数据处理效率;另外,由于存储模块存储的信息中存储时序靠后的信息相对于靠前的信息对确定下一时刻的待推荐信息更重要,具有更多可反映用户兴趣变化的信息,因此,在更新时,存储时序靠后的信息的存储区域所对应的预设数量不大于存储时序靠前的信息的存储区域所对应的预设数量,基于存储区域各自对应的预设数量的隐层特征信息对每个存储区域对应的历史特征信息进行更新,可最大化保存隐层特征信息中的有用信息,从而使得在基于历史特征信息预测下一时刻的待推荐信息时,确定的待推荐信息更准确。
本发明的可选方案中,预设数量是基于预设值和存储区域的个数确定的。
具体的,预设值指的是更新一次历史特征信息所需要的隐层特征信息的个数,由于各存储区域所对应的预设数量的和等于预设值,因此,可以基于存储区域的个数和预设值来确定每个存储区域在更新时所需要的隐层特征信息的个数,即预设数量。另外,由前文描述可知,按照各存储区域所存储的信息的获取时序先后,存储获取时序靠后的信息的存储区域所对应的预设数量不大于存储获取时序靠前的信息的存储区域所对应的预设数量,可选的,按照时序先后,各存储区域所对应的预设数量可以是依次递减的,从而更好的平衡信息的重要性,以保存下相对最有用的信息。
本发明的可选方案中,各个存储区域各自对应的预设数量是通过以下方式确定的:
基于预设值和存储区域的个数,确定各相邻存储区域所对应的预设数量之间的差值;
根据预设值、存储区域的个数、以及各相邻存储区域所对应的差值,确定各存储区域所对应的预设数量。
具体的,各相邻存储区域所对应的预设数量之间的差值可以是不同的,也可以是相同的,由前文描述可知,由于按照时序先后获取的隐层特征信息中对于确定下一时刻的待推荐信息的重要程度不同,所缓存的隐层特征信息中越靠后的信息其重要性越大,也就是越新的隐层特征信息重要性越大,越能反应用户近期的兴趣变化,因此,各相邻存储区域所对应的预设数量之间的差值可以是依次递减的,即越靠后的相邻存储区域所对应的差值越小。
本发明的可选方案中,各相邻存储区域所对应的预设数量之间的差值相等,差值的表达式为:
其中,g表示差值,L表示预设值,M表示存储区域的个数。
图5中示出了本发明一示例中提供的一种存储模块的更新策略示意图,如图中所示,该示例中预设值L为20,存储模块的存储区域的个数M为4,即存储模块包括4个存储区域,如图中所示的存储模块中标识为1、2、3、4的这四个区域,且1-4这四个存储区域按照信息获取的时序先后进行信息存储,每个存储区域对应的预设数量可以是不同的。基于本发明所提供的上述方案,则该示例中1-4这四个存储区域各自所对应的预设数量分别为8、6、4和2。
预设值是一次更新所需要的隐层特征信息的数量,每个时间节点对应一个所缓存的隐层特征信息,则图5中可包括20个时间节点,在本示例中,可通过图中所示的1至20的标识表示这20个时间节点,且1至20的数值大小也代表了缓存隐层特征信息的时序先后。基于1-4这四个存储区域各自所对应的预设数量8、6、4和2,存储区域1更新时对应需要图5中所示的第1至第8时间节点对应的隐层特征信息,存储区域2更新时对应需要图5中所示的第9至第14时间节点对应的隐层特征信息,存储区域3更新时对应需要(图5中所示的第15至第18时间节点对应的隐层特征信息,存储区域4更新时对应需要图5中所示的第19至第20时间节点对应的隐层特征信息。
基于上述更新策略,在缓存模块中缓存的隐层特征信息的个数为20个时,基于缓存模块中缓存的8个隐层特征信息对存储区域1存储的历史特征信息进行更新,基于缓存模块中缓存的6个隐层特征信息对该存储区域2存储的历史特征信息进行更新,基于缓存模块中缓存的4个隐层特征信息对该存储区域3存储的历史特征信息进行更新,基于缓存模块中缓存的2个隐层特征信息对存储区域4存储的历史特征信息进行更新,其中,上述8个隐层特征信息、6个隐层特征信息、4个隐层特征信息、以及2个隐层特征信息是连续的,时序为依次向后,即8个隐层特征信息是在6个隐层特征信息之前缓存的信息。
本发明的实施例中,对于一个存储区域,基于缓存模块中该存储区域所对应的隐层特征信息,对该存储区域进行信息更新,可以包括:
确定该存储区域所对应的各隐层特征信息的权重;
基于该存储区域所对应的各隐层特征信息的权重,对该存储区域所对应的各隐层特征信息进行融合,得到该存储区域所对应第三特征信息;
基于第三特征信息,对该存储区域进行信息更新。
由于各个存储区域对应的隐层特征信息是按照获取信息的时序先后缓存的,越靠后缓存的隐层特征信息其重要性越大,越能反应用户近期的兴趣变化,则可通过权重表征各个隐层特征信息的重要性。另外,由于每个存储区域对应多个隐层特征信息,因此在对一个存储区域存储的历史特征信息进行更新时,为了便于处理,可将该存储区域对应的多个隐层特征信息转化为设定维度的信息,即第三特征信息为设定维度的信息,比如,设定维度可以为1维,然后基于该第三特征信息对该存储区域进行信息更新。
本发明的实施例中,确定该存储区域所对应的各隐层特征信息的权重,可以包括:
基于该存储区域所对应的各隐层特征信息,以及上一时刻的第一特征信息,该存储区域所对应的各隐层特征信息的权重。
在更新时,每个隐层特征信息的重要程度可能是不同的,当前时刻的隐层特征信息与上一时刻的第一特征信息有关,则隐层特征信息的重要程度也与上一时刻的第一特征信息有关,基于各个隐层特征信息,结合上一时刻的第一特征信息,确定出的隐层特征信息的权重可以更加准确的反应对应该隐层特征信息的重要性,权重越大,表示该隐层特征信息越重要。
作为一个示例,每个隐层特征信息hi通过cj表示,其中,i表示各个存储区域所对应的时间节点中最后一个时间节点,一个时间节点对应一个隐层特征信息,为描述方便,一个存储区域所对应的时间节点中最后一个时间节点称为时间步,可通过L-L来表示时间步,其中,g表示差值,L表示预设值,M表示存储区域的个数。
如前文所描述的示例,假设存储模块包括20个时间节点,存储区域1对应第1至第8时间节点,存储区域2对应第9至第14时间节点,存储区域3对应第15至第18时间节点,存储区域4对应第19至第20时间节点,则i分别为8、14、18和20。li为第i个时间步所对应的存储区域所对应的预设数量,若i分别为8、14、18和20,则l8=8,l14=6,l18=4,l20=2。
基于当i=8时,l8=8,对应的存储区域为存储区域1,该存储区域1对应缓存的第1个(j=1)隐层特征信息c1=h8-8+1=h1,第8个(j=8)隐层特征信息c8=h8-8+8=h8,同理,c20=h20。
基于各个隐层特征信息(也可以是cj),以及上一时刻的第一特征信息ri-1,通过以下公式(2)确定每个隐层特征信息对应的权重pij:
pij=softmax(zT tanh(Xcj+Yri-1)) (2)
其中,pij是第i个时间步的第j个隐层特征信息的权重,z、X和Y是参数,T表示转置。
基于各隐层特征信息以及各隐层特征信息对应的权重pij,通过以下公式(3)得到第三特征信息pi:
其中,pi可以是设定维度的特征信息,比如,设定维度为1维。
本发明的实施例中,根据当前时刻的行为特征信息得到当前时刻对应的隐层特征信息,可以包括:
根据当前时刻的行为特征信息、上一时刻对应的隐层特征信息、以及上一时刻对应的第一特征信息,确定当前时刻对应的隐层特征信息;
其中,初始时刻对应的隐层特征信息是基于初始时刻的行为特征信息得到,上一时刻对应的第一特征信息是根据上一时刻的第二特征信息和上一时刻对应的历史特征信息得到的,初始时刻的第一特征信息是基于初始时刻的第二特征信息得到的,初始时刻的第二特征信息是基于初始时刻的行为特征信息得到的;
上一时刻的第二特征信息是通过以下方式得到的:
根据上一时刻的行为特征信息、上一时刻对应的隐层特征信息、以及上一时刻的第一特征信息,得到上一时刻的第二特征信息。
其中,当前时刻的行为特征信息为vi,基于该行为特征信息vi、上一时刻对应的隐层特征信息hi-1以及上一时刻对应的第一特征信息ri-1,可通过以下公式(4)确定当前时刻的隐层特征信息hi:
hi=fh(hi-1,vi,ri-1) (4)
其中,上一时刻对应的隐层特征信息hi-1是基于上一时刻对应的行为信息xi-1、上一时刻的上一时刻对应的隐层特征信息hi-2、以及上一时刻的上一时刻对应的第一特征信息ri-2确定的。初始时刻的隐层特征信息h1是基于初始时刻对应的行为信息x1得到的,具体的,初始时刻的没有对应的上一时刻的隐层特征信息和第一特征信息,只有基于初始时刻对应的行为信息x1对应的特征信息v1,因此,初始时刻的隐层特征信息h1实际上是基于初始时刻的行为信息x1对应的特征信息v1确定的。
其中,上一时刻对应的第一特征信息是根据上一时刻的第二特征信息和上一时刻对应的历史特征信息通过以下公式(5)得到的:
其中,基于上述公式(5)可知初始时刻的第一特征信息r1是基于初始时刻的第二特征信息得到的,则初始时刻的下一时刻的第一特征信息r2可以基于初始时刻的下一时刻的第二特征信息和初始时刻的下一时刻的历史特征信息M1确定,同理,第一特征信息r3可以基于第二特征信息和历史特征信息M2得到,依次类推,基于上述公式(5)可以确定得到不同时刻对应的第一特征信息,且基于该不同时刻对应的第一特征信息,基于上述公式(4)可以对应得到不同时刻对应的隐层特征信息。
其中,上一时刻的第二特征信息是通过以下方式得到的:根据上一时刻的行为特征信息、上一时刻对应的隐层特征信息、以及上一时刻的第一特征信息,通过以下公式(6)得到的:
其中,基于上述公式(4)可知,初始时刻的第二特征信息是基于初始时刻的行为信息x1确定的,即基于初始时刻的行为特征信息v1确定的。上一时刻对应的隐层特征信息hi-1是基于上一时刻对应的行为信息xi-1、上一时刻的上一时刻对应的隐层特征信息hi-2、以及上一时刻的上一时刻对应的第一特征信息ri-2确定的。
其中,上一时刻的历史特征信息是通过以下方式得到的:根据上一时刻的上一时刻的隐层特征信息hi-2,上一时刻的行为特征信息vi-1,以及上一时刻的上一时刻的第一特征信息ri-2,通过上述公式(6)得到上一时刻的上一时刻的第二特征信息基于上一时刻的第二特征信息对上一时刻的上一时刻的历史特征信息Mi-2进行更新,得到上一时刻的历史特征信息Mi-1,具体可参见以下公式(7):
本发明的实施例中,根据当前时刻的行为特征信息、以及存储于存储模块的用户的历史特征信息,确定下一时刻的待推荐信息,可以包括:
根据当前时刻的行为特征信息、上一时刻对应的隐层特征信息、以及上一时刻对应的第一特征信息,确定当前时刻的第二特征信息;
根据当前时刻的第二特征信息和上一时刻对应的历史特征信息,确定当前时刻的第一特征信息;
基于当前时刻的第一特征信息和当前时刻的第二特征信息,确定下一时刻的待推荐信息。
其中,基于前文的描述,由于上一时刻对应的隐层特征信息hi-1以及上一时刻对应的第一特征信息ri-1是基于当前时刻对应的历史行为信息确定的,当前时刻的第二特征信息是基于当前时刻的行为特征信息vi以及当前时刻对应的历史行为信息确定的,因此,该当前时刻的第二特征信息受当前时刻之前的所有历史行为信息影响,即当前时刻的第二特征信息可以基于当前时刻之前的所有历史行为信息,反应出该用户在当前时刻之前的兴趣变化,换句话说,基于当前时刻对应的历史行为信息确定的当前时刻的第二特征信息考虑到了用户长期的兴趣变化。
将当前时刻的第一特征信息、以及当前时刻的第二特征信息进行融合,得到当前时刻的第四特征信息;
基于当前时刻的第四特征信息,确定下一时刻的待推荐信息。
由此,基于上述公式(4)至公式(8)可知,下一时刻的待推荐信息是基于上一时刻的信息和当前时刻的信息确定的,在确定出下一时刻的待推荐信息后,该下一时刻的信息可以作为下一时刻的下一时刻的上一时刻的信息,即上一时刻的信息一直影响下一时刻的信息预测结果,由此,在基于当前时刻的信息预测下一时刻的信息时,结合了当前时刻的上一时刻的信息,使得预测得到的下一时刻的信息更加准确。
本发明的可选方案中,信息推荐方法通过神经网络模型实现,神经网络模型包括第一网络模型、存储模块和缓存模块;
其中,第一网络模型用于:
基于当前行为信息,提取当前行为信息的行为特征信息,根据当前时刻的行为特征信息得到当前时刻对应的隐层特征信息,根据当前时刻的行为特征信息、以及存储于存储模块的用户的历史特征信息,确定下一时刻的待推荐信息;
存储模块用于存储历史特征信息,以及当缓存模块中缓存的隐层特征信息的个数等于预设值时,基于每个存储区域各自所对应的预设数量的、且与每个存储区域所存储的信息的时序先后对应的隐层特征信息,对每个存储区域分别进行信息更新;
缓存模块用于缓存隐层特征信息,并在存储模块更新一次后,删除所缓存的隐层特征信息。
具体的,本发明的方案可通过神经网络模型实现,其中,该模型包括第一网络模型、存储模块和缓存模块,第一网络模型的输入为用户当前时刻的当前行为信息,输出为下一时刻的待推荐信息,其中,第一网络模型中用到的历史特征信息是从第二网络模型中获取的。第一网络模型可以是基于GRU、LSTM、RNN或其他神经网络训练得到的模型。
本发明的可选方案中,神经网络模型是基于训练样本数据对第一网络模型的模型参数进行训练更新得到的,即在训练更新阶段,存储模块不参与模型的更新训练,由于,历史特征信息存储在存储模块中,不存储在第一网络模型中,则可以降低基于第一网络模型的模型参数进行更新训练时发生的梯度爆炸的问题。
另外,第一网络模型中用到的第一特征信息是从第二网络模型中获取的。如果神经网络模型为RNN模型,由于RNN模型通常处理的是一维特征向量,即RNN模型通常处理的是隐层特征信息hi,该隐层特征信息是一维特征向量,而第二网络模型存储的历史特征信息是二维特征矩阵信息,二维特征矩阵信息相较于一维特征向量更能保存完整的信息的特征,因此基于第二网络模型可以保存更加全面的历史特征信息,使得基于该历史特征信息确定的待推荐信息更加准确。
本发明的可选方案中,对于本发明中的神经网络模型,存储模块还用于基于对应时刻的第二特征信息确定对应时刻的第一特征信息。
相较于通过第一网络模型基于第二特征信息确定第一特征信息而言,会减少第一网络模型的数据处理量。
本发明的神经网络模型可以选择使用GRU或者LSTM,甚至是其他RNN的变种。
本发明的信息推荐模型的建模方式为:假如,给定会话中item序列为x1,x2,…,xL-1,xL,即每个用户的历史行为信息,对于给定会话中的item序列,最大化序列中item的联合分布(例如,xi出现概率最大是在序列x1,x2,…,xi-1出现的条件下)。并将其合写为条件概率的乘积。数学语言表示为公式(9):
这种建模方式能够更深度的挖掘到会话内部item之间的依赖关系,使得每个item对训练都有相对最大的贡献。按照时间发生顺序输入x1,x2,…,xL,预测x2,x3,…,xL+1。也就是说,基于当前时刻的信息,预测下一时刻的待推荐信息需要基于上一时刻的历史行为信息(均为基于上一时刻的历史行为信息确定的),基于x1预测x2,基于x1和x2,预测x3,依次类推,这样在预测下一时刻的待推荐信息时,均考虑了当前时刻之前的用户行为信息,使得确定的待推荐信息更加准确。
为了对本方案进行进一步的说明,下面具体结合图6中的第一网络模型、存储模块和缓存模块对本方案进行进一步的说明:
第一网络模型包括依次级联输入层、嵌入层(图6中所示的Embedding层)、控制层(图6中所示的Controller层)和输出层(图6中所示的Feedforword层);存储模块(图6中所示的Memory)分别与控制层和输出层连接,存储模块用于存储历史特征信息,缓存模块(图6中所示的cache)与控制层连接,缓存模块也可以称之为chuck即组块,chuck可以理解为数据的存储区域,在内存中表现为缓存。缓存模块用于缓存控制层输出的隐层特征信息,隐层特征信息可由图6中所示的ci、ci+1、ci+2表示,此处的i表示缓存的隐层特征信息的个数,比如,ci中对应的c1,表示缓存模块中只缓存了1个隐层特征信息,ci+1中对应的c1和c2,表示缓存模块中缓存了2个隐层特征信息,神经网络模型可以是预先基于训练样本数据训练得到的模型,每个训练样本数据包括每个用户的历史行为信息,即item序列x1,x2,…,xT-1,xT,以及每个历史行为信息对应的样本标签(简称为标注结果)。
在基于训练样本数据对神经网络模型进行训练时,以图6中的行为信息xi作为当前时刻的历史行为信息进行说明:将该历史行为信息输入至输入层,输入层对历史行为信息进行归一化处理(比如,归一化为设定长度的[0,1]序列),得到一个列向量(归一化的特征向量),该列向量的行数等于用户对应的历史行为信息的长度,如果某个用户对应的历史行为信息的长度小于设定长度,则可在该历史行为信息对应的列向量通过设定值进行补齐,该设定值通常为0,由于历史行为信息中越靠后的信息对待推荐信息的影响越大,则可将该设定值补充在列向量前面的位置。然后将归一化的特征向量输入至第一网络模型的嵌入层,将该归一化的特征向量转换为设定维度的特征向量,即行为特征信息vi。
将该行为特征信息vi、上一时刻的第一特征信息ri-1、以及上一时刻的隐层特征信息hi-1输入至控制层,该控制层是一个可扩展的RNN的框架,其可以选用不同类型的神经元(例如RNN,GRU,LSTM)。控制层基于该当前时刻的行为特征信息vi、上一时刻的第一特征信息ri-1、上一时刻的隐层特征信息hi-1,通过以下公式(4)确定当前时刻的隐层特征信息hi:
hi=fh(hi-1,vi,ri-1) (4)
其中,该当前时刻的隐层特征信息hi为控制层的输出,作为下一个控制层的输入,同时得到输入至输出层的第二特征信息控制层将当前时刻的隐层特征信息hi缓存至缓存模块中。基于上述公式(4)可知,初始时刻的隐层特征信息h1是基于初始时刻对应的行为信息x1得到的,具体的,初始时刻的没有对应的上一时刻的隐层特征信息和第一特征信息,即初始时刻的没有对应的上一时刻的隐层特征信息和第一特征信息可全部置为0,只有基于初始时刻对应的行为信息x1对应的特征信息v1,因此,初始时刻的隐层特征信息h1实际上是基于初始时刻的行为信息x1对应的特征信息v1确定的。
其中,上一时刻对应的第一特征信息是根据上一时刻的第二特征信息和上一时刻对应的历史特征信息通过以下公式(5)得到的:
其中,基于上述公式(5)可知初始时刻的第一特征信息r1是基于初始时刻的第二特征信息得到的,则初始时刻的下一时刻的第一特征信息r2可以基于初始时刻的下一时刻的第二特征信息和初始时刻的下一时刻的历史特征信息M1确定,同理,第一特征信息r3可以基于第二特征信息和历史特征信息M2得到,依次类推,基于上述公式(5)可以确定得到不同时刻对应的第一特征信息,且基于该不同时刻对应的第一特征信息,基于上述公式(4)可以对应得到不同时刻对应的隐层特征信息。
存储模块中存储有上一时刻的上一时刻的历史特征信息Mi-2,则可以从存储模块中获取上一时刻的上一时刻的历史特征信息,基于该历史特征信息Mi-2确定上一时刻对应的第一特征信息。
Mi=fm(oi,Mi-1) (10)
其中,初始时刻的历史特征信息M1是基于初始时刻的第二特征信息o1确定的,当前时刻对应的历史行为信息指的是当前时刻之前所有历史特征信息,可由存储模块通过上述公式(10)确定任一时刻对应的历史特征信息。
由此,基于上述公式可知,下一时刻的待推荐信息是基于上一时刻的信息和当前时刻的信息确定的,在确定出下一时刻的待推荐信息后,该下一时刻的信息可以作为下一时刻的下一时刻的上一时刻的信息,即上一时刻的信息一直影响下一时刻的信息预测结果,由此,在基于当前时刻的信息预测下一时刻的信息时,结合了当前时刻的上一时刻的信息,使得预测得到的下一时刻的信息更加准确。
在确定得到当前时刻的第四特征信息oi之后,将该当前时刻的第四特征信息oi输入至输出层,输出层的输出为下一时刻的待推荐信息xi+1;其中,该输出层接收控制层的输出后,可以基于该待推荐信息所对应的预测结果和对应的标注结果的相似程度来判断模型训练是否结束,如通过模型的损失函数(比如,softmax函数)是否收敛来判断模型训练是否结束,该损失函数表征了各训练样本数据的预测结果和标注结果的差异程度,如果损失函数未收敛,将训练结束时的模型作为本发明实施例应用时的神经网络模型。
在训练更新阶段,存储模块不参与模型的更新训练,由于历史特征信息存储在存储模块中,不存储在第一网络模型中,则可以降低基于第一网络模型的模型参数进行更新训练时发生的梯度爆炸的问题。并且,由于存储模块相较于第一网络模型中的控制层具有更大的存储空间,因此基于存储模块可以存储更多的历史特征信息,则基于存储模块存储的历史特征信息可以为信息的推荐提供全局的参考,使得预测得到的待推荐信息更准确。
在本示例中,缓存模块中缓存的隐层特征信息的个数对应的预设值L为20,存储模块中存储区域的个数M为4,分别为存储区域1、第存储区域2,存储区域3和存储区域4,该4个存储区域所存储的信息是按照获取信息的时序先后进行存储的。
首先,基于预设值为L以及存储区域的个数M,通过以下方式确定个存储区域各自对应的预设数量:基于预设值和存储区域的个数,确定各相邻存储区域所对应的预设数量之间的差值,在本示例中,各相邻存储区域所对应的预设数量之间的差值相等,则差值为2,基于预设值、存储区域的个数、以及差值2,确定各个存储区域各自所对应的预设数量分别为8、6、4和2。
当缓存模块中缓存的隐层特征信息的个数等于20时,基于存储区域1所对应的8个隐层特征信息对该存储区域1进行信息更新,基于存储区域2所对应的6个隐层特征信息对该存储区域2进行信息更新,基于存储区域3所对应的4个隐层特征信息对该存储区域3进行信息更新,基于存储区域4所对应的2个隐层特征信息对该存储区域4进行信息更新,其中,各个存储区域所对应的隐层特征信息是与每个存储区域所存储的信息的时序先后对应的隐层特征信息。
在更新过程中,以更新存储区域1中的历史特征信息为例:
由于各个存储区域对应的隐层特征信息也是按照获取信息的时序先后缓存的,越靠后缓存的隐层特征信息其重要性越大,则可通过权重表征各个隐层特征信息的重要性,另外,由于每个存储区域对应多个隐层特征信息,因此在对一个存储区域存储的历史特征信息进行更新时,为了便于处理,可将该存储区域对应的多个隐层特征信息转化为设定维度的信息,即第三特征信息为设定维度的信息。
每个隐层特征信息hi通过cj表示,其中,i表示各个存储区域所对应的时间节点中最后一个时间节点,一个时间节点对应一个隐层特征信息,为描述方便,一个存储区域所对应的时间节点中最后一个时间节点称为时间步,可通过 L来表示时间步,其中,g表示差值,L表示预设值,M表示存储区域的个数。
如前文所描述的示例,如果存储模块包括20个时间节点,存储区域1对应第1至第8时间节点,存储区域2对应第9至第14时间节点,存储区域3对应第15至第18时间节点,存储区域4对应第19至第20时间节点,则i分别为8、14、18和20。li为第i个时间步所对应的存储区域所对应的预设数量,若i分别为8、14、18和20,则l8=8,l14=6,l18=4,l20=8。
在更新时,每个隐层特征信息的重要程度可能不同,当前时刻的隐层特征信息与上一时刻的第一特征信息有关,则隐层特征信息的重要程度还与上一时刻的第一特征信息有关,基于各个隐层特征信息,结合上一时刻的第一特征信息,确定出的隐层特征信息的权重可以更加准确的反应对应该隐层特征信息的重要性,权重越大,表示该隐层特征信息越重要。
基于当i=8时,l8=8,对应的存储区域为存储区域1,该存储区域1对应缓存的第1个(j=1)隐层特征信息c1=h8-8+1=h1,第8个(j=8)隐层特征信息c8=h8-8+8=h8,同理,c20=h20。
基于每个隐层特征信息(也可以是cj),以及上一时刻的第一特征信息ri-1,通过以下公式(2)确定每个隐层特征信息对应的权重pij:
pij=softmax(zT tanh(Xcj+Yri-1)) (2)
其中,pij是第i个时间步的第j个隐层特征信息的权重,z、X和Y是参数,T表示转置。
基于各隐层特征信息以及各隐层特征信息对应的权重pij,通过以下公式(3)得到第三特征信息pi:
其中,pi可以是设定维度的特征信息,比如,设定维度为1维。上述的权重确定以及基于缓存的多个隐层特征信息得到可第三特征信息pi通过图6中所示的Attention注意力机制模块实现。
基于上述第三特征信息,对该存储区域1进行信息更新。更新完成之后,删除缓存模块中所缓存的隐层特征信息。
基于上述训练好的神经网络模型,结合具体的应用场景进行信息的预测,具体可以为:比如,应用场景为视频推荐,用户的历史行为信息为在预设的一段时间内(可以是10分钟,也可以说1小时,也可以是1天,或者是其他自定义的时间长度)在所使用的系统中观看、点击、购买等行为,将该历史行为信息输入至训练好的神经网络模型,基于该模型即可预测出该用户之后可能感兴趣的视频。以短视频为例,某用户在一个小时内有效观看(播放时长满足预设条件,比如,预设条件为大于设定时长,或者,播放时长占视频总时长的比例大于设定值,比如,设定值为80%)为50个视频,基于本发明的方案,可以基于上述50个视频,预测出该用户下一个时间内可能感兴趣的视频,最后将该视频推荐给用户。
将本发明的方案与现有技术中的其他方案(包括传统的RNN、GRU&Mem、GRU4Rec、LSTM&Mem、LSTM4Rec)进行比较,评价指标Metrics包括MRR、Recall、NDCG;其中,各评价指标的值越高,表示该算法的性能越好。
作为一个示例,以应用1的会话数据(历史行为信息)为例,实验结果如下表1所示,其中,表1针对的是不同方案基于应用1的数据对应的实验结果。
其中,应用1的数据来源为针对包含10671个电影的电影库的178768个会话数据(历史行为信息),应用1的每个用户的会话的长度为50。对于小于50的会话数据,采用填充方式在序列开始处填充0,直至序列长度达到50,对于长度超过50的会话数据,从前往后计数为50后截断,多余的会话序列作为一个新的会话。
表1
Metrics | MRR@5 | Recall@5 | NDCG@5 | MRR@20 | Recall@20 | NDCG@20 |
GRU4Rec | 0.0461 | 0.0575 | 0.0405 | 0.2061 | 0.1155 | 0.0895 |
GRU&Mem | 0.0488 | 0.0608 | 0.0428 | 0.2187 | 0.1218 | 0.0946 |
GRU&M+C | 0.0512 | 0.0638 | 0.0453 | 0.229 | 0.1286 | 0.0991 |
LSTM4Rec | 0.0485 | 0.0598 | 0.0420 | 0.2116 | 0.1208 | 0.0921 |
LSTM&Mem | 0.0504 | 0.0629 | 0.0444 | 0.2225 | 0.1261 | 0.0972 |
LSTM&M+C | 0.0531 | 0.0656 | 0.0467 | 0.2325 | 0.1333 | 0.1012 |
表1中的GRU&M+C和LSTM&M+C表示的是本发明中基于神经网络模型的信息推荐的方案,GRU&M+C表示的是将GRU&Mem、GRU4Rec作为第一网络模型时对应的信息推荐方案,LSTM&M+C表示的是将LSTM&Mem、LSTM4Rec作为第一网络模型时对应的信息推荐方案,@5表示的是需要预测得到电影的数量为5,@20表示的是需要预测得到的电影的数量为20。基于表1中的数据可知,本发明的神经网络模型对应的实验数据中的各个指标相较于其他算法的各项指标相比,本发明算法的性能更好。
本发明的方案相对于现有技术中的RNN模型具有非常稳定且重要的提升,对于基于外部存储结构会话推荐方法在效率上也有明显的提升。其中,效率比较结果如图7所示,图7显示了在存储区域为不同数量的情况下,GRU&M+C相比GRU&Mem、LSTM&Mem每次迭代训练所需时间减小比例通过A表示,LSTM&M+C相比GRU&Mem、LSTM&Mem每次迭代训练所需时间减小比例通过B表示。由图7可以看出,GRU&M+C、LSTM&M+C相比GRU&Mem、LSTM&Mem每次迭代训练所需时间都有所减小,则基于本发明的方案可提高训练效率。
实验中所有模型均采用Adam作为优化器,Adam是一种可以替代传统随机梯度下降过程的一阶优化算法,它能基于训练数据迭代地更新神经网络权重。嵌入向量的维度(embedding size)都设为128,行为信息的长度(word size)设置为128,隐藏层的数量(hidden number)为64;应用2与应用3数据的批处理数据的长度(batch size)都设置为1024,应用1数据的批处理数据的长度(batch size)设置为512。应用1、2与3的(对应存储空间的长度)Memory slot分别设置为8,4,2;学习率(learning rate)采用0.001,数据集进行随机划分,80%数据作为训练数据集合,剩下的20%数据作为测试数据集合。实验硬件环境采用计算引擎为GPU Tesla P40,版本1.8.0.的人工智能学习系统tensorflow。
本发明的可选方案中,该方法由服务器执行,该服务器为区块链系统中的一个节点。
由于用户的行为信息是指用户在终端设备(比如,客户端)上的操作行为信息,则用户的客户端也可以作为区块链系统中的节点,客户端以及服务器可通过网络通信的形式连接形成的分布式系统,该分布式系统作为区块链系统。
作为一个示例,参见图8,图8是本发明实施例提供的分布式系统100应用于区块链系统的一个可选的结构示意图,由多个节点(接入网络中的任意形式的计算设备,如服务器、用户终端)和客户端形成,节点之间形成组成的点对点(P2P,Peer To Peer)网络,P2P协议是一个运行在传输控制协议(TCP,Transmission Control Protocol)协议之上的应用层协议。在分布式系统中,任何机器如服务器、终端都可以加入而成为节点,节点包括硬件层、中间层、操作系统层和应用层。
参见图8示出的区块链系统中各节点的功能,涉及的功能包括:
1)路由,节点具有的基本功能,用于支持节点之间的通信。
节点除具有路由功能外,还可以具有以下功能:
2)应用,用于部署在区块链中,根据实际业务需求而实现特定业务,记录实现功能相关的数据形成记录数据,在记录数据中携带数字签名以表示任务数据的来源,将记录数据发送到区块链系统中的其他节点,供其他节点在验证记录数据来源以及完整性成功时,将记录数据添加到临时区块中。
例如,应用实现的业务包括:
2.1)钱包,用于提供进行电子货币的交易的功能,包括发起交易(即,将当前交易的交易记录发送给区块链系统中的其他节点,其他节点验证成功后,作为承认交易有效的响应,将交易的记录数据存入区块链的临时区块中;当然,钱包还支持查询电子货币地址中剩余的电子货币;
2.2)共享账本,用于提供账目数据的存储、查询和修改等操作的功能,将对账目数据的操作的记录数据发送到区块链系统中的其他节点,其他节点验证有效后,作为承认账目数据有效的响应,将记录数据存入临时区块中,还可以向发起操作的节点发送确认。
2.3)智能合约,计算机化的协议,可以执行某个合约的条款,通过部署在共享账本上的用于在满足一定条件时而执行的代码实现,根据实际的业务需求代码用于完成自动化的交易,例如查询买家所购买商品的物流状态,在买家签收货物后将买家的电子货币转移到商户的地址;当然,智能合约不仅限于执行用于交易的合约,还可以执行对接收的信息进行处理的合约。
3)区块链,包括一系列按照产生的先后时间顺序相互接续的区块(Block),新区块一旦加入到区块链中就不会再被移除,区块中记录了区块链系统中节点提交的记录数据。
参见图9,图9是本发明实施例提供的区块结构(Block Structure)一个可选的示意图,每个区块中包括本区块存储交易记录的哈希值(本区块的哈希值)、以及前一区块的哈希值,各区块通过哈希值连接形成区块链。另外,区块中还可以包括有区块生成时的时间戳等信息。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了相关的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
基于与图4中所示的方法相同的原理,本发明实施例还提供了一种信息推荐装置20,如图10中所示,该信息推荐装置20可以包括行为特征信息确定模块210、缓存模块220、待推荐信息确定模块230以及更新模块240,其中:
行为特征信息确定模块210,用于获取用户当前时刻的当前行为信息,并提取当前行为信息的行为特征信息;
缓存模块220,用于根据当前时刻的行为特征信息得到当前时刻对应的隐层特征信息,并缓存在缓存模块中;
待推荐信息确定模块230,用于根据当前时刻的行为特征信息、以及存储于存储模块的用户的历史特征信息,确定下一时刻的待推荐信息;
其中,历史特征信息是基于历史隐层特征信息得到的,存储模块包括按照时序先后存储信息的至少两个存储区域;
该装置还包括:
更新模块240,用于在缓存模块中缓存的隐层特征信息的个数等于预设值时,基于每个存储区域各自所对应的预设数量的、且与每个存储区域所存储的信息的时序先后对应的隐层特征信息,对每个存储区域分别进行信息更新,并删除所缓存的隐层特征信息;
其中,各存储区域所对应的预设数量之和等于预设值,存储时序靠后的信息的存储区域所对应的预设数量不大于存储时序靠前的信息的存储区域所对应的预设数量。
通过本实施例中的方案,在缓存模块中缓存的隐层特征信息的个数等于预设值时,可以基于缓存模块所缓存的隐层特征信息更新一次存储模块中的历史特征信息,从而提高了数据处理效率;另外,由于存储模块存储的信息中存储时序靠后的信息相对于靠前的信息对确定下一时刻的待推荐信息更重要,具有更多可反映用户兴趣变化的信息,因此,在更新时,存储时序靠后的信息的存储区域所对应的预设数量不大于存储时序靠前的信息的存储区域所对应的预设数量,基于存储区域各自对应的预设数量的隐层特征信息对每个存储区域对应的历史特征信息进行更新,可最大化保存隐层特征信息中的有用信息,从而使得在基于历史特征信息预测下一时刻的待推荐信息时,确定的待推荐信息更准确。
可选的,预设数量是基于预设值和存储区域的个数确定的。
可选的,各个存储区域各自对应的预设数量是通过以下方式确定的:
基于预设值和存储区域的个数,确定各相邻存储区域所对应的预设数量之间的差值;
根据预设值、存储区域的个数、以及各相邻存储区域所对应的差值,确定各存储区域所对应的预设数量。
可选的,各相邻存储区域所对应的预设数量之间的差值相等,差值的表达式为:
其中,g表示差值,L表示预设值,M表示存储区域的个数。
可选的,对于一个存储区域,更新模块240在基于缓存模块中该存储区域所对应的隐层特征信息,对该存储区域进行信息更新时,具体用于:
确定该存储区域所对应的各隐层特征信息的权重;
基于该存储区域所对应的各隐层特征信息的权重,对该存储区域所对应的各隐层特征信息进行融合,得到该存储区域所对应第三特征信息;
基于第三特征信息,对该存储区域进行信息更新。
可选的,更新模块240在确定该存储区域所对应的各隐层特征信息的权重时,具体用于:
基于该存储区域所对应的各隐层特征信息,以及上一时刻的第一特征信息,该存储区域所对应的各隐层特征信息的权重。
可选的,缓存模块220在根据当前时刻的行为特征信息得到当前时刻对应的隐层特征信息时,具体用于:
根据当前时刻的行为特征信息、上一时刻对应的隐层特征信息、以及上一时刻对应的第一特征信息,确定当前时刻对应的隐层特征信息;
其中,初始时刻对应的隐层特征信息是基于初始时刻的行为特征信息得到,上一时刻对应的第一特征信息是根据上一时刻的第二特征信息和上一时刻对应的历史特征信息得到的,初始时刻的第一特征信息是基于初始时刻的第二特征信息得到的,初始时刻的第二特征信息是基于初始时刻的行为特征信息得到的;
上一时刻的第二特征信息是通过以下方式得到的:
根据上一时刻的行为特征信息、上一时刻的上一时刻对应的隐层特征信息、以及上一时刻的上一时刻对应的第一特征信息,得到上一时刻的第二特征信息。
可选的,待推荐信息确定模块230在根据当前时刻的行为特征信息、以及存储于存储模块的用户的历史特征信息,确定下一时刻的待推荐信息时,具体用于:
根据当前时刻的行为特征信息、上一时刻对应的隐层特征信息、以及上一时刻对应的第一特征信息,确定当前时刻的第二特征信息;
根据当前时刻的第二特征信息和上一时刻对应的历史特征信息,确定当前时刻的第一特征信息;
基于当前时刻的第一特征信息和当前时刻的第二特征信息,确定下一时刻的待推荐信息。
可选的,信息推荐方法通过神经网络模型实现,神经网络模型包括第一网络模型、存储模块和缓存模块;
其中,第一网络模型用于:
基于当前行为信息,提取当前行为信息的行为特征信息,根据当前时刻的行为特征信息得到当前时刻对应的隐层特征信息,根据当前时刻的行为特征信息、以及存储于存储模块的用户的历史特征信息,确定下一时刻的待推荐信息;
存储模块用于存储历史特征信息,以及当缓存模块中缓存的隐层特征信息的个数等于预设值时,基于每个存储区域各自所对应的预设数量的、且与每个存储区域所存储的信息的时序先后对应的隐层特征信息,对每个存储区域分别进行信息更新;
缓存模块用于缓存隐层特征信息,并在存储模块更新一次后,删除所缓存的隐层特征信息。
可选的,存储模块还用于基于对应时刻的第二特征信息确定对应时刻的第一特征信息。
可选的,神经网络模型是基于训练样本数据对第一网络模型的模型参数进行训练更新得到的。
由于本发明实施例所提供的信息推荐装置为可以执行本发明实施例中的信息推荐方法的装置,故而基于本发明实施例中所提供的信息推荐方法,本领域所属技术人员能够了解本发明实施例的信息推荐装置的具体实施方式以及其各种变化形式,所以在此对于该装置如何实现本发明实施例中的信息推荐方法不再详细介绍。只要本领域所属技术人员实施本发明实施例中的信息推荐方法所采用的信息推荐装置,都属于本发明所欲保护的范围。
基于与本发明实施例所提供的信息推荐方法和信息推荐装置相同的原理,本发明实施例还提供了一种电子设备,该电子设备可以包括处理器和存储器。其中,存储器中存储有可读指令,可读指令由处理器加载并执行时,可以实现本发明任一实施例中所示的方法。
作为一个示例,图11中示出了本发明实施例的方案所适用的一种电子设备4000的结构示意图,如图11中所示,该电子设备4000可以包括处理器4001和存储器4003。其中,处理器4001和存储器4003相连,如通过总线4002相连。可选地,电子设备4000还可以包括收发器4004。需要说明的是,实际应用中收发器4004不限于一个,该电子设备4000的结构并不构成对本发明实施例的限定。
处理器4001可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本发明公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器4001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线4002可包括一通路,在上述组件之间传送信息。总线4002可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。总线4002可以分为地址总线、数据总线、控制总线等。为便于表示,图11中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器4003可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscRead Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
存储器4003用于存储执行本发明方案的应用程序代码,并由处理器4001来控制执行。处理器4001用于执行存储器4003中存储的应用程序代码,以实现前述任一方法实施例所示的方案。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (15)
1.一种信息推荐方法,其特征在于,
获取用户当前时刻的当前行为信息,并提取所述当前行为信息的行为特征信息;
根据所述当前时刻的行为特征信息得到当前时刻对应的隐层特征信息,并缓存在缓存模块中;
根据当前时刻的行为特征信息、以及存储于存储模块的所述用户的历史特征信息,确定下一时刻的待推荐信息;
其中,所述历史特征信息是基于历史隐层特征信息得到的,所述存储模块包括按照时序先后存储信息的至少两个存储区域;
所述方法还包括:
当所述缓存模块中缓存的隐层特征信息的个数等于预设值时,基于每个存储区域各自所对应的预设数量的、且与每个存储区域所存储的信息的时序先后对应的隐层特征信息,对每个存储区域分别进行信息更新,并删除所缓存的隐层特征信息;
其中,各存储区域所对应的预设数量之和等于所述预设值,存储时序靠后的信息的存储区域所对应的预设数量不大于存储时序靠前的信息的存储区域所对应的预设数量;
所述隐层特征信息为基于所述行为特征信息进行处理后得到的中间特征信息。
2.根据权利要求1所述的方法,其特征在于,所述预设数量是基于所述预设值和所述存储区域的个数确定的。
3.根据权利要求2所述的方法,其特征在于,所述存储区域各自对应的预设数量是通过以下方式确定的:
基于所述预设值和所述存储区域的个数,确定各相邻存储区域所对应的预设数量之间的差值;
根据所述预设值、所述存储区域的个数、以及各相邻存储区域所对应的所述差值,确定各存储区域所对应的预设数量。
5.根据权利要求1至3中任一项所述的方法,其特征在于,对于一个存储区域,基于所述缓存模块中该存储区域所对应的隐层特征信息,对该存储区域进行信息更新,包括:
确定该存储区域所对应的各隐层特征信息的权重;
基于该存储区域所对应的各隐层特征信息的权重,对该存储区域所对应的各隐层特征信息进行融合,得到该存储区域所对应第三特征信息;
基于所述第三特征信息,对该存储区域进行信息更新。
6.根据权利要求5所述的方法,其特征在于,所述确定该存储区域所对应的各隐层特征信息的权重,包括:
基于该存储区域所对应的各隐层特征信息,以及上一时刻的第一特征信息,确定该存储区域所对应的各隐层特征信息的权重。
7.根据权利要求1至3中任一项所述的方法,其特征在于,所述根据当前时刻的行为特征信息得到当前时刻对应的隐层特征信息,包括:
根据当前时刻的行为特征信息、上一时刻对应的隐层特征信息、以及上一时刻对应的第一特征信息,确定当前时刻对应的隐层特征信息;
其中,初始时刻对应的隐层特征信息是基于初始时刻的行为特征信息得到,上一时刻对应的第一特征信息是根据上一时刻的第二特征信息和上一时刻对应的历史特征信息得到的,初始时刻的第一特征信息是基于初始时刻的第二特征信息得到的,初始时刻的第二特征信息是基于初始时刻的行为特征信息得到的;
上一时刻的第二特征信息是通过以下方式得到的:
根据上一时刻的行为特征信息、上一时刻的上一时刻对应的隐层特征信息、以及上一时刻的上一时刻对应的第一特征信息,得到上一时刻的第二特征信息。
8.根据权利要求7所述的方法,其特征在于,所述根据当前时刻的行为特征信息、以及存储于存储模块的所述用户的历史特征信息,确定下一时刻的待推荐信息,包括:
根据当前时刻的行为特征信息、上一时刻对应的隐层特征信息、以及所述上一时刻对应的第一特征信息,确定所述当前时刻的第二特征信息;
根据所述当前时刻的第二特征信息和上一时刻对应的历史特征信息,确定当前时刻的第一特征信息;
基于所述当前时刻的第一特征信息和所述当前时刻的第二特征信息,确定所述下一时刻的待推荐信息。
9.根据权利要求1至3中任一项所述的方法,其特征在于,所述信息推荐方法通过神经网络模型实现,所述神经网络模型包括第一网络模型、所述存储模块和所述缓存模块;
其中,所述第一网络模型用于:
基于当前行为信息,提取所述当前行为信息的行为特征信息,根据当前时刻的行为特征信息得到当前时刻对应的隐层特征信息,根据当前时刻的行为特征信息、以及存储于存储模块的所述用户的历史特征信息,确定下一时刻的待推荐信息;
所述存储模块用于存储历史特征信息,以及当所述缓存模块中缓存的隐层特征信息的个数等于预设值时,基于每个存储区域各自所对应的预设数量的、且与每个存储区域所存储的信息的时序先后对应的隐层特征信息,对每个存储区域分别进行信息更新;
所述缓存模块用于缓存隐层特征信息,并在所述存储模块更新一次后,删除所缓存的隐层特征信息。
10.根据权利要求9所述的方法,其特征在于,所述存储模块还用于基于对应时刻的第二特征信息确定对应时刻的第一特征信息。
11.根据权利要求9所述的方法,其特征在于,所述神经网络模型是基于训练样本数据对第一网络模型的模型参数进行训练更新得到的。
12.根据权利要求1至3中任一项所述的方法,其特征在于,所述方法由服务器执行,所述服务器为区块链系统中的一个节点。
13.一种信息推荐装置,其特征在于,包括:
行为特征信息确定模块,用于获取用户当前时刻的当前行为信息,并提取所述当前行为信息的行为特征信息;
缓存模块,用于根据所述当前时刻的行为特征信息得到当前时刻对应的隐层特征信息,并缓存在缓存模块中;
待推荐信息确定模块,用于根据当前时刻的行为特征信息、以及存储于存储模块的所述用户的历史特征信息,确定下一时刻的待推荐信息;
其中,所述历史特征信息是基于历史隐层特征信息得到的,所述存储模块包括按照时序先后存储信息的至少两个存储区域;
所述装置还包括:
更新模块,用于在所述缓存模块中缓存的隐层特征信息的个数等于预设值时,基于每个存储区域各自所对应的预设数量的、且与每个存储区域所存储的信息的时序先后对应的隐层特征信息,对每个存储区域分别进行信息更新,并删除所缓存的隐层特征信息;
其中,各存储区域所对应的预设数量之和等于所述预设值,存储时序靠后的信息的存储区域所对应的预设数量不大于存储时序靠前的信息的存储区域所对应的预设数量;
所述隐层特征信息为基于所述行为特征信息进行处理后得到的中间特征信息。
14.一种电子设备,其特征在于,包括:
处理器和存储器;
所述存储器,用于存储计算机操作指令;
所述处理器,用于通过调用所述计算机操作指令,执行权利要求1至12中任一项所述的方法。
15.一种计算机可读存储介质,其特征在于,所述存储介质存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现权利要求1至12中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910970036.5A CN110674181B (zh) | 2019-10-12 | 2019-10-12 | 信息推荐方法、装置、电子设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910970036.5A CN110674181B (zh) | 2019-10-12 | 2019-10-12 | 信息推荐方法、装置、电子设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110674181A CN110674181A (zh) | 2020-01-10 |
CN110674181B true CN110674181B (zh) | 2021-05-25 |
Family
ID=69082140
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910970036.5A Active CN110674181B (zh) | 2019-10-12 | 2019-10-12 | 信息推荐方法、装置、电子设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110674181B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111310034B (zh) * | 2020-01-23 | 2023-04-07 | 深圳市雅阅科技有限公司 | 一种资源推荐方法及相关设备 |
CN113127042A (zh) * | 2021-05-08 | 2021-07-16 | 中山大学 | 一种智能合约推荐方法、设备及存储介质 |
CN117632905B (zh) * | 2023-11-28 | 2024-05-17 | 广州视声智能科技有限公司 | 基于云端使用记录的数据库管理方法及系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103559299B (zh) * | 2013-11-14 | 2017-02-15 | 贝壳网际(北京)安全技术有限公司 | 清理文件的方法、装置及移动终端 |
CN106033474A (zh) * | 2016-04-21 | 2016-10-19 | 苏州奖多多科技有限公司 | 一种数据同步更新方法、装置及电子设备 |
CN106713470A (zh) * | 2016-12-29 | 2017-05-24 | 北京奇艺世纪科技有限公司 | 一种分布式缓存更新方法及缓存更新系统 |
-
2019
- 2019-10-12 CN CN201910970036.5A patent/CN110674181B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110674181A (zh) | 2020-01-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210256403A1 (en) | Recommendation method and apparatus | |
CN110765353B (zh) | 项目推荐模型的处理方法、装置、计算机设备和存储介质 | |
CN110674181B (zh) | 信息推荐方法、装置、电子设备及计算机可读存储介质 | |
CN111737546B (zh) | 确定实体业务属性的方法及装置 | |
CA3045736A1 (en) | Digital banking platform and architecture | |
CN110659678B (zh) | 一种用户行为分类方法、系统及存储介质 | |
CN112214499B (zh) | 图数据处理方法、装置、计算机设备和存储介质 | |
CN111506820B (zh) | 推荐模型、方法、装置、设备及存储介质 | |
CN112380453B (zh) | 物品推荐方法、装置、存储介质及设备 | |
CN109543112A (zh) | 一种基于循环卷积神经网络的序列推荐方法及装置 | |
CN112085615A (zh) | 图神经网络的训练方法及装置 | |
CN114579584B (zh) | 数据表处理方法、装置、计算机设备和存储介质 | |
CN113610610B (zh) | 基于图神经网络和评论相似度的会话推荐方法和系统 | |
US20220027722A1 (en) | Deep Relational Factorization Machine Techniques for Content Usage Prediction via Multiple Interaction Types | |
CN114925270B (zh) | 一种会话推荐方法和模型 | |
WO2024067373A1 (zh) | 一种数据处理方法及相关装置 | |
CN110659394A (zh) | 基于双向邻近度的推荐方法 | |
CN110727705B (zh) | 信息推荐方法、装置、电子设备及计算机可读存储介质 | |
CN113011911A (zh) | 基于人工智能的数据预测方法、装置、介质及电子设备 | |
CN116975686A (zh) | 训练学生模型的方法、行为预测方法和装置 | |
CN116541592A (zh) | 向量生成方法、信息推荐方法、装置、设备及介质 | |
CN113630476B (zh) | 应用于计算机集群的通信方法及通信装置 | |
CN116128575A (zh) | 物品推荐方法、装置、计算机设备、存储介质和程序产品 | |
CN115393098A (zh) | 理财产品信息推荐方法及装置 | |
CN111459990B (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: 40018649 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 |