掌桥专利:专业的专利平台
掌桥专利
首页

一种word2vec模型训练、数据召回方法及装置

文献发布时间:2023-06-19 10:51:07


一种word2vec模型训练、数据召回方法及装置

技术领域

本公开涉及数据处理领域,尤其涉及一种word2vec模型训练、数据召回方法及装置。

背景技术

为实现针对性的推荐契合目标账户需要的文章,通常建立推荐系统,并在推荐系统的召回阶段,采用词嵌入方式,将文章信息处理为向量形式,进而通过计算向量相似度,分析目标账户的兴趣,进而召回符合目标账户的需要的文章,其中,所述召回过程是指将目标账户感兴趣的文章从各类文章中筛选出来的过程。

相关技术下,在将账户点击的文章信息序列作为训练样本输入word2vec模型中,得到向量形式的文章信息时,由于文章信息序列仅体现出了不同文章被点击的先后顺序,而没有体现出账户与文章的关联关系,使得对于账户信息利用不充分,造成生成的向量形式的账户信息和文章信息无法体现出账户与账户点击的文章之间的关联性,召回的文章无法满足用户的实际需要。

发明内容

本公开实施例提供一种word2vec模型训练、数据召回方法及装置,用以解决存在的对于账户信息利用不充分,导致获取的word2vec模型生成的向量,无法表征账户与账户点击的文章之间的关联性,召回的数据无法满足实际需求的问题。

本公开实施例提供的技术方案如下:

第一方面,提出一种word2vec模型的训练方法,包括:

周期性获取每一个账户在指定时间段内对于业务数据的操作日志,其中,所述操作日志中保存有对应的账户在至少一个会话过程中访问的,关联有操作时间的各个业务数据的项目标识信息ID;

根据每一个账户对于业务数据的操作顺序,以及业务数据关联的操作时间和会话过程,将每一个账户的账户ID和该账户访问的业务数据的项目ID,组合生成至少一个重构ID序列,其中,重构ID序列中包括按照操作顺序排列的项目ID,以及至少在每相邻的两个项目ID之间添加的账户ID;

按照设置的模型架构搭建word2vec模型,并将生成的每一个重构ID序列分别作为所述word2vec模型的一条训练样本,对所述word2vec模型进行训练,获得所述word2vec模型输出的与训练样本中包括的各个ID对应的各个向量,生成表征ID与向量之间的对应关系的向量集合。

可选的,所述根据每一个账户对于业务数据的操作顺序,以及业务数据关联的操作时间和会话过程,将每一个账户的账户ID和该账户访问的业务数据的项目ID,组合生成至少一个重构ID序列,包括:

根据每一个账户对于业务数据的操作顺序,生成每一个账户关联的项目ID序列,并根据项目ID归属的会话过程和项目ID关联的操作时间,将每一个账户的项目ID序列拆分为至少一个项目ID子序列;

分别将每一个账户的账户ID添加至该账户对应的各个项目ID子序列中,组合生成至少一个重构ID序列。

可选的,所述根据项目ID归属的会话过程和项目ID关联的操作时间,将每一个账户的项目ID序列拆分为至少一个项目ID子序列,包括:

确定每一个账户的项目ID序列中各个项目ID归属的会话过程,并在归属于不同会话过程的项目ID之间设置拆分节点;

根据每一个账户的项目ID序列中各个项目ID关联的操作时间,确定相邻的各个项目ID之间的时间间隔,并筛选出高于设定阈值的时间间隔,以及在筛选出的时间间隔对应的项目ID之间设置拆分节点;

根据设置的拆分节点,将每一个账户的项目ID序列拆分为至少一个项目ID子序列。

可选的,所述分别将每一个账户的账户ID添加至该账户对应的各个项目ID子序列中,包括:

获取每一个账户的账户ID,并获取由每一个账户关联的项目ID序列拆分得到的至少一个项目ID子序列,以及将账户ID添加至对应账户的各个项目ID子序列中每两个相邻的项目ID之间;或者,

获取每一个账户的账户ID,并获取由每一个账户关联的项目ID序列拆分得到的至少一个项目ID子序列,以及将账户ID添加至对应账户的各个项目ID子序列中的首端、末端,以及每两个相邻的项目ID之间。

可选的,所述将生成的每一个重构ID序列分别作为所述word2vec模型的一条训练样本,对所述word2vec模型进行训练,包括:

采用skip-gram架构搭建word2vec模型时,将生成的每一个重构ID序列分别作为所述word2vec模型的一条训练样本,对所述word2vec模型进行训练,获得所述word2vec模型输出的与训练样本中各个ID对应的各个向量,其中,在训练过程中,按照设置的窗口长度,针对每一个重构ID序列,分别以每一个重构ID序列中的每一个ID作为所述word2vec模型内部的输入层ID,以对应位置的窗口长度覆盖的所述重构ID序列中的各个其他ID分别作为对应的输出层ID;或者,

采用CBOW架构搭建word2vec模型时,将生成的每一个重构ID序列分别作为所述word2vec模型的一条训练样本,对所述word2vec模型进行训练,获得所述word2vec模型输出的与训练样本中各个ID对应的各个向量,其中,在训练过程中,按照设置的窗口长度,针对每一个重构ID序列,分别以每一个重构ID序列中的每一个ID作为所述word2vec模型内部的输出层ID,以对应位置的窗口长度覆盖的所述重构ID序列中的各个其他ID分别作为对应的输入层ID。

第二方面,提出一种数据召回方法,采用上述第一方面中任一项所述的word2vec模型的训练方法进行训练后生成的向量集合,包括:

接收目标账户发送的业务数据召回请求,获取所述业务数据召回请求中携带的所述目标账户的目标账户ID;

基于所述目标账户的操作日志和最新保存的所述向量集合,确定对应所述目标账户召回的业务数据。

可选的,所述基于所述目标账户的操作日志和最新保存的所述向量集合,确定对应所述目标账户召回的业务数据,包括:

根据所述目标账户的操作日志,确定所述目标账户访问的各个历史业务数据,并根据最新保存的所述向量集合,确定与所述各个历史业务数据的项目ID分别对应的向量,并针对每一个向量,分别计算该向量与所述向量集合中各个其他项目ID对应的向量之间的相似度并筛选出相似度最大的前N个向量对应的项目ID,将筛选出的项目ID对应的业务数据作为召回的业务数据;或者,

根据最新保存的所述向量集合,确定所述目标账户ID对应的向量,并计算所述向量与所述向量集合中各个其他账户ID对应的向量之间的相似度,筛选出相似度最大的前M个向量对应的账户ID,以及获取M个账户ID对应的账户的操作日志,并将各个操作日志中记录访问的业务数据作为召回的业务数据;或者,

根据最新保存的所述向量集合,确定所述目标账户ID对应的向量,并计算所述向量与所述向量集合中各个项目ID对应的向量之间的相似度,筛选出相似度最大的前Z个向量对应的项目ID,并将筛选出的项目ID对应的业务数据作为召回的业务数据。

第三方面,提出一种word2vec模型的训练装置,包括:

获取单元,周期性获取每一个账户在指定时间段内对于业务数据的操作日志,其中,所述操作日志中保存有对应的账户在至少一个会话过程中访问的,关联有操作时间的各个业务数据的项目标识信息ID;

生成单元,根据每一个账户对于业务数据的操作顺序,以及业务数据关联的操作时间和会话过程,将每一个账户的账户ID和该账户访问的业务数据的项目ID,组合生成至少一个重构ID序列,其中,重构ID序列中包括按照操作顺序排列的项目ID,以及至少在每相邻的两个项目ID之间添加的账户ID;

训练单元,按照设置的模型架构搭建word2vec模型,并将生成的每一个重构ID序列分别作为所述word2vec模型的一条训练样本,对所述word2vec模型进行训练,获得所述word2vec模型输出的与训练样本中包括的各个ID对应的各个向量,生成表征ID与向量之间的对应关系的向量集合。

可选的,所述根据每一个账户对于业务数据的操作顺序,以及业务数据关联的操作时间和会话过程,将每一个账户的账户ID和该账户访问的业务数据的项目ID,组合生成至少一个重构ID序列时,所述生成单元具体用于:

根据每一个账户对于业务数据的操作顺序,生成每一个账户关联的项目ID序列,并根据项目ID归属的会话过程和项目ID关联的操作时间,将每一个账户的项目ID序列拆分为至少一个项目ID子序列;

分别将每一个账户的账户ID添加至该账户对应的各个项目ID子序列中,组合生成至少一个重构ID序列。

可选的,所述根据项目ID归属的会话过程和项目ID关联的操作时间,将每一个账户的项目ID序列拆分为至少一个项目ID子序列时,所述生成单元具体用于:

确定每一个账户的项目ID序列中各个项目ID归属的会话过程,并在归属于不同会话过程的项目ID之间设置拆分节点;

根据每一个账户的项目ID序列中各个项目ID关联的操作时间,确定相邻的各个项目ID之间的时间间隔,并筛选出高于设定阈值的时间间隔,以及在筛选出的时间间隔对应的项目ID之间设置拆分节点;

根据设置的拆分节点,将每一个账户的项目ID序列拆分为至少一个项目ID子序列。

可选的,所述分别将每一个账户的账户ID添加至该账户对应的各个项目ID子序列中时,所述生成单元具体用于:

获取每一个账户的账户ID,并获取由每一个账户关联的项目ID序列拆分得到的至少一个项目ID子序列,以及将账户ID添加至对应账户的各个项目ID子序列中每两个相邻的项目ID之间;或者,

获取每一个账户的账户ID,并获取由每一个账户关联的项目ID序列拆分得到的至少一个项目ID子序列,以及将账户ID添加至对应账户的各个项目ID子序列中的首端、末端,以及每两个相邻的项目ID之间。

可选的,所述按照设置的word2vec模型架构和窗口长度,对各个账户的重构ID序列处理后生成训练样本集合时,所述训练单元用于:

采用skip-gram架构搭建word2vec模型时,将生成的每一个重构ID序列分别作为所述word2vec模型的一条训练样本,对所述word2vec模型进行训练,获得所述word2vec模型输出的与训练样本中各个ID对应的各个向量,其中,在训练过程中,按照设置的窗口长度,针对每一个重构ID序列,分别以每一个重构ID序列中的每一个ID作为所述word2vec模型内部的输入层ID,以对应位置的窗口长度覆盖的所述重构ID序列中的各个其他ID分别作为对应的输出层ID;或者,

采用CBOW架构搭建word2vec模型时,将生成的每一个重构ID序列分别作为所述word2vec模型的一条训练样本,对所述word2vec模型进行训练,获得所述word2vec模型输出的与训练样本中各个ID对应的各个向量,其中,在训练过程中,按照设置的窗口长度,针对每一个重构ID序列,分别以每一个重构ID序列中的每一个ID作为所述word2vec模型内部的输出层ID,以对应位置的窗口长度覆盖的所述重构ID序列中的各个其他ID分别作为对应的输入层ID。

第四方面,提出一种数据召回装置,采用上述第二方面中任一项所述的word2vec模型的训练装置进行训练后生成的向量集合,包括:

接收单元,接收目标账户发送的业务数据召回请求,获取所述业务数据召回请求中携带的所述目标账户的目标账户ID;

召回单元,基于所述目标账户的操作日志和最新保存的所述向量集合,确定对应所述目标账户召回的业务数据。

可选的,所述基于所述目标账户的操作日志和最新保存的所述向量集合,确定对应所述目标账户召回的业务数据时,所述召回单元具体用于:

根据所述目标账户的操作日志,确定所述目标账户访问的各个历史业务数据,并根据最新保存的所述向量集合,确定与所述各个历史业务数据的项目ID分别对应的向量,并针对每一个向量,分别计算该向量与所述向量集合中各个其他项目ID对应的向量之间的相似度并筛选出相似度最大的前N个向量对应的项目ID,将筛选出的项目ID对应的业务数据作为召回的业务数据;或者,

根据最新保存的所述向量集合,确定所述目标账户ID对应的向量,并计算所述向量与所述向量集合中各个其他账户ID对应的向量之间的相似度,筛选出相似度最大的前M个向量对应的账户ID,以及获取M个账户ID对应的账户的操作日志,并将各个操作日志中记录访问的业务数据作为召回的业务数据;或者,

根据最新保存的所述向量集合,确定所述目标账户ID对应的向量,并计算所述向量与所述向量集合中各个项目ID对应的向量之间的相似度,筛选出相似度最大的前Z个向量对应的项目ID,并将筛选出的项目ID对应的业务数据作为召回的业务数据。

第五方面,提出一种电子设备,包括:

存储器,用于存储可执行指令;

处理器,用于读取并执行存储器中存储的可执行指令,以实现上述第一方面中任一项所述的word2vec模型的训练方法。

第六方面,提出一种电子设备,包括:

存储器,用于存储可执行指令;

处理器,用于读取并执行存储器中存储的可执行指令,以实现上述第二方面中任一项所述的数据召回方法。

第七方面,提出一种计算机可读存储介质,当所述存储介质中的指令由电子设备执行时,使得所述电子设备能够执行上述第一方面中任一项所述的word2vec模型的训练方法。

第八方面,提出一种计算机可读存储介质,当所述存储介质中的指令由电子设备执行时,使得所述电子设备能够执行上述第二方面中任一项所述的数据召回方法。

本公开有益效果如下:

本公开实施例中,在对word2vec模型进行训练时,周期性获取每一个账户在指定时间段内对于业务数据的操作日志,其中,所述操作日志中保存有对应的账户在至少一个会话过程中访问的,关联有操作时间的各个业务数据的项目标识信息ID,再根据每一个账户对于业务数据的操作顺序,以及业务数据关联的操作时间和会话过程,将每一个账户的账户ID和该账户访问的业务数据的项目ID,组合生成至少一个重构ID序列,其中,重构ID序列中包括按照操作顺序排列的项目ID,以及至少在每相邻的两个项目ID之间添加的账户ID,然后按照设置的模型架构搭建word2vec模型,并将生成的每一个重构ID序列分别作为所述word2vec模型的一条训练样本,对所述word2vec模型进行训练,获得所述word2vec模型输出的与训练样本中包括的各个ID对应的各个向量,生成表征ID与向量之间的对应关系的向量集合。使得生成的训练样本中充分利用了账户与业务数据之间的交互信息,在对word2vec模型进行训练时,使得所述word2vec模型充分的学习账户与业务数据之间,以及不同业务数据之间的内在联系,使得所述word2vec模型对于账户向量和业务数据向量训练的更加充分。

进一步的,接收目标账户发送的业务数据召回请求,获取所述业务数据召回请求中携带的所述目标账户的目标账户ID,再基于所述目标账户的操作日志和最新保存的所述向量集合,确定对应所述目标账户召回的业务数据。这样,能够根据充分学习了账户与业务数据之间的内在联系、不同业务数据之间的内在联系,以及项目ID的序列特征的word2vec模型输出的向量,针对目标账户的需求针对性的召回业务数据。

附图说明

通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,其中:

图1为本公开实施例中word2vec模型训练的流程示意图;

图2a为本公开实施例中账户关联的项目ID序列示意图;

图2b本公开实施例中对项目ID序列设置拆分节点示意图;

图3a为本公开的一个实施例中生成的重构ID示意图;

图3b为本公开的一个实施例中生成的重构ID序列示意图;

图4a为本公开实施例中窗口在初始位置时的输入层ID标识示意图;

图4b为本公开实施例中窗口在位置2时的输入层ID标识示意图;

图4c为本公开实施例中窗口在位置3时的输入层ID标识示意图;

图4d为本公开实施例中窗口在位置4时的输入层ID标识示意图;

图4e为本公开实施例中窗口在位置5时的输入层ID标识示意图;

图5为本公开实施例中业务数据召回流程示意图;

图6为本公开实施例中word3vec模型的训练装置的逻辑结构示意图;

图7为本公开实施例中数据召回装置的逻辑结构示意图;

图8为本公开实施例中word2vec模型的训练装置的实体结构示意图;

图9为本公开实施例中数据召回装置的实体结构示意图。

具体实施方式

为了使本公开的目的、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本公开进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本公开,并不用于限定本公开。

本领域技术人员知道,本公开的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。

为了方便理解,下面对本公开实施例中涉及的名词进行解释:

word2vec,指用来产生词向量的相关模型,可以将词映射为向量,来表示词与词之间的关系,该向量为神经网络的隐藏层,其中,神经网络的隐藏层相当于一个矩阵,矩阵的每一行表征一个向量,word2vec依赖于跳字(skip-gram)架构或连续词袋(ContinuousBag-of-Words,CBOW)架构来建立神经词嵌入。

词嵌入,指自然语言处理(Natural Language Processing,NLP)中语言模型与表征学习技术的统称,概念上而言,是指把一个维数为所有词的数量的高维空间,嵌入到一个维数低得多的连续向量空间中,每个单词或词组被映射为实数域上的向量。

召回,指根据一定的筛选原则,为存在数据需求的账户筛选出满足需要的数据的过程,可以理解为按照与具体需求的匹配程度,对数据进行粗排序的过程,如,按照与配置的筛选条件的匹配程度,对可选择的数据进行排序。

服务器:可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务以及大数据和人工智能平台等基础云计算服务的云服务器。

终端设备:可以是移动终端、固定终端或便携式终端,例如移动手机、站点、单元、设备、多媒体计算机、多媒体平板、互联网节点、通信器、台式计算机、膝上型计算机、笔记本计算机、上网本计算机、平板计算机、个人通信系统设备、个人导航设备、个人数字助理、音频/视频播放器、数码相机/摄像机、定位设备、电视接收器、无线电广播接收器、电子书设备、游戏设备或者其任意组合,包括这些设备的配件和外设或者其任意组合。还可预见到的是,终端设备能够支持任意类型的针对用户的接口(例如可穿戴设备)等。

下面参考本公开的若干代表性实施方式,详细阐释本公开的原理和精神。

相关技术下,将word2vec模型应用到召回领域,通过将点击的信息序列作为输入,得到信息的向量,计算过程中没有用到用户和信息的交互信息,或者只将用户信息作为上下文中的其中一个节点,对于用户信息利用不充分。以word2vec模型对一个训练样本的处理为例,所述word2vec模型对应一个训练样本上的各个文章信息,输出所述各个文章信息对应的向量形式,使得所述word2vec模型得到的向量形式的文章信息仅能够表征对应的各个文章被点击的先后顺序,而且,由于word2vec模型的训练样本中,账户信息最多只出现在训练样本的首端,用作对训练样本的标记,那么,在word2vec模型内部对训练样本进行处理时,仅在极少部分的输入层和输出层数据中,能够体现出账户信息与文章信息之间的关联关系,这极少的输入层和输出层数据使得word2vec模型输出的向量,无法表征出账户与账户点击的各文章之间的关联性,也就是说,无法在向量空间中体现出账户与账户所点击的文章之间的关系。所以必然的,相关技术下生成的向量无法表征账户与文章信息之间的内在联系,这样,在对应一个目标账户进行文章召回时,无法召回满足账户需要的文章。

本公开中提出的word2vec模型的训练方法和数据召回方法,可以应用于对诸如文章、视频、音乐等各类业务数据的召回场景下,针对不同场景下需要呈现的业务数据内容,进行针对性的召回,如,同一场景下,可能存在有多类需要召回的业务数据。

处理设备能够为建立联系的各个账户提供服务,并获取所述各个账户对于各类业务数据的操作日志,以及对应每一个账户的操作日志生成至少一个重构ID序列,并将获得的各个重构ID序列分别作为word2vec模型的训练样本,其中,每一类操作日志中记录有账户在至少一个会话过程中,对于某类业务数据的点击操作,重构ID序列中包括有账户操作的某类业务数据的项目ID,以及至少在相邻两个项目ID之间添加的对应账户的账户ID。

具体的,在意图召回某种类型的业务数据时,如,假设意图召回文章数据时,则确定各个账户的操作日志中所记录的对于文章的点击操作,并基于所操作的各个文章的文章标识信息(Identity,ID)生成训练样本;在意图召回视频数据时,确定各个账户的操作日志中所记录的对于视频的点击操作,并基于所操作的各个视频的视频ID生成训练样本;在意图召回音乐数据时,确定各个账户的操作日志中所记录的对于文章的点击操作,并基于所操作的各个音乐的音乐ID生成训练样本。

进一步的,采用生成的训练样本对word2vec模型进行训练,获得所述word2vec对应每一个输入的训练样本中的各个ID输出的向量形式,并在针对各个账户进行业务数据的推荐时,根据建立的向量之间的相似度,召回符合账户需要的业务数据。

这样,将账户ID添加至由所操作的业务数据的项目ID生成的训练样本中后,能够在训练样本中突出账户与账户所操作的业务数据之间的关联关系,使得基于添加有账户ID的训练样本对word2vec模型进行训练时,所述word2vec模型能够学习到账户ID与项目ID之间的内在联系、不同项目ID之间的内在联系,以及项目ID的序列特征,并在对应的向量空间中能够体现出项目ID与账户ID之间的关联关系,进而有效表征出账户和项目ID对应的业务数据之间的关系,召回符合账户需要的业务数据。

需要说明的是,本公开实施例中,进行word2vec模型训练的第一处理设备,与进行数据召回的第二处理设备可以同一个处理设备,或者,可以能够交互的不同的处理设备,所述第一处理设备和所述第二处理设备可以是服务器或者具有处理能力的终端设备,本公开不对所述第一处理设备和所述第二处理设备的类型进行具体限定。

下面结合附图,对本公开的实施方式进行详细说明:

参考图1所示,其为本公开实施例中word2vec模型训练的流程示意图,下面对word2vec模型的训练过程进行详细说明:

步骤101:周期性获取每一个账户在指定时间段内对于业务数据的操作日志。

第一处理设备周期性获取每一个账户在指定时间段内对于被曝光的业务数据的操作日志,其中,被曝光的业务数据是呈现在账户的可操作页面上,或者,能够被账户搜索到的业务数据,在不同账户的可操作页面上曝光呈现的业务数据可能不同,所述操作日志中保存有对应的账户在至少一个会话过程中访问的,关联有操作时间的各个业务数据的项目ID,每一个业务数据对应一个项目ID,项目ID用于在同类的业务数据中唯一确定一个业务数据。

需要说明的是,当应用场景中存在多种类型的业务数据时,所述操作日志中记录有对于不同类型的业务数据的操作记录,且不同业务数据对应不同的标识,使得所述第一处理设备能够从操作日志中提取出账户分别操作的各类业务数据。

具体的,所述第一处理设备可以采用设定的时间长度为周期,周期性地获取在过去的所述时间长度内每一个账户的操作日志,并确定每一个账户各自在过去的所述设定长度内操作的业务数据,其中,所述操作日志中保存有所操作的关联有操作时间的各个业务数据的项目ID,所述设定的时间长度根据实际的处理需要自行配置,本公开不做具体限定。

例如,假设以1h为设定的时间长度,则每隔1h,第一处理设备获取每一个账户在过去的1h内的操作日志,确定每一个账户在过去的1h内所操作的业务数据,以及操作业务数据时的操作时间。

在一些可能的实施例中,第一处理设备可以获取预先完成注册,并登录验证的账户的操作日志;在另一些可能的实施例中,为保证获取的数据的全面性,所述第一处理设备在获取预先完成注册,并登陆验证的账户操作日志的同时,可以获取未验证登录,但在终端设备上发起过对于业务数据的操作的虚拟账户的操作日志,并将终端设备的设备ID作为虚拟账户ID,获取对应所述虚拟账户ID的操作日志。

这样,第一处理设备通过周期性地获取每一个账户的操作日志,在获取每一个账户对于业务数据所进行的操作的同时,能够及时感知每一个账户对于业务数据的兴趣变化。

需要说明的是,本公开实施例中,对于可能包括有完成注册登录的账户,以及未完成注册登录的虚拟账户的情况,由于本公开对于不同类型的账户的操作日志的处理逻辑相同,以下的叙述中将统称为账户,本公开将不再进行分别说明。

步骤102:根据每一个账户对于业务数据的操作顺序,以及业务数据关联的操作时间和会话过程,将每一个账户的账户ID和该账户访问的业务数据的项目ID,组合生成至少一个重构ID序列。

第一处理设备获取每一个账户的操作日志后,根据每一个账户对于业务数据的操作顺序,以及业务数据关联的操作时间和会话过程,将每一个账户的账户ID和该账户访问的业务数据的项目ID,组合生成至少一个重构ID序列,其中,重构ID序列中包括按照操作顺序排列的项目ID,以及至少在每相邻的两个项目ID之间添加的账户ID。

本公开一些可能的实施例中,所述第一处理设备在根据每一个账户的操作日志,确定每一个账户操作的业务数据后,可以按照业务数据关联的操作时间的先后顺序,基于业务数据对应的项目ID生成项目ID序列,并将对应的账户的账户ID添加至每相邻的两个项目ID之间,生成一个重构ID序列。

本公开另一些可能的实施例中,为保证重构ID序列中包括的各个ID之间的相关性,第一处理设备可以根据每一个账户对于业务数据的操作顺序,生成每一个账户关联的项目ID序列,并根据项目ID归属的会话过程和项目ID关联的操作时间,将每一个账户的项目ID序列拆分为至少一个项目ID子序列,再分别将每一个账户的账户ID添加至该账户对应的各个项目ID子序列中,组合生成至少一个重构ID序列。

需要说明的是,本公开涉及到的操作日志中,至少保存有账户所操作的各个业务数据的项目ID,以及关联的对于业务数据的操作时间,同时,操作日志中对于一个会话的结束标记有结束标识符,使得第一处理设备能够确定操作日志中保存的归属于各个会话过程的业务数据,其中,一个会话过程结束的依据可以是,确定账户跳出操作页面,如,账户关闭操作页面,或者,确定账户无任何操作行为的持续时间达到设定值。本公开一些可能的实施例中,所述操作日志中可以保存有对于各个业务数据的操作持续时间,所述操作持续时间表征所记录的从账户操作该业务数据开始,至操作其他业务数据为止的持续时间,账户对于不同类型的业务数据的操作,包括有:对于文章数据的点击操作,对于视频数据或音频数据的点击播放。

本公开一些可能的实施例中,所述第一处理设备将每一个账户关联的项目ID序列拆分为至少一个项目ID子序列时,所述第一处理设备首先确定每一个账户的项目ID序列中各个项目ID归属的会话过程,并在归属于不同会话过程的项目ID之间设置拆分节点,再根据每一个账户的项目ID序列中各个项目ID关联的操作时间,确定相邻的各个项目ID之间的时间间隔,并筛选出高于设定阈值的时间间隔,以及在筛选出的时间间隔对应的项目ID之间设置拆分节点,然后根据设置的拆分节点,将每一个账户的项目ID序列拆分为至少一个项目ID子序列。

例如,参考图2a-2b,图2a为本公开实施例中账户关联的项目ID序列示意图,对于业务数据为文章的场景来说,假设根据操作日志中记录的账户A对于被曝光的各个文章的点击操作,确定账户A在15:01:27对项目ID为ID1的文章的发起点击操作;在15:03:24对项目ID为ID2的文章发起点击操作;在15:05:27对项目ID为ID3的文章发起点击操作;在15:08:36对项目ID为ID4的文章的发起点击操作;在15:15:26对项目ID为ID5的文章发起点击操作;在15:21:37对项目ID为ID6的文章发起点击操作;在15:52:27对项目ID为ID7的文章的发起点击操作;在15:55:24对项目ID为ID8的文章发起点击操作;在15:57:27对项目ID为ID9的文章发起点击操作。则按照账户A对于各个文章的点击的先后顺序,生成项目ID序列为图2a所示意的项目ID序列为:ID1-ID2-ID3-ID4-ID5-ID6-ID7-ID8-ID9。假设根据操作日志中记录的,确定ID2和ID3之间记录有会话结束的标识,则在所述项目ID序列中的ID2和ID3之间设置拆分节点,进而假设针对时间间隔设置的设定阈值为30min,则可知对于ID6和ID7之间操作间隔达到了所述设定阈值,故在所述项目ID序列中的ID6和ID7之间设置拆分节点,具体如图2b所示,其为本公开实施例中对项目ID序列设置拆分节点示意图,使得一个项目ID序列被拆分为3个项目ID子序列,分别为:ID1-ID2、ID3-ID4-ID5-ID6,以及ID7-ID8-ID9。

本公开另一些可能的实施例中,第一处理设备在获取对应每一个账户的项目ID序列后,可以根据设置的拆分条件,同步判定每相邻的两个项目ID之间在操作日志中是否记录有会话结束标识,以及判定所述两个项目ID之间的时间间隔是否达到设定阈值,并确定满足两者之一的判定条件时,则对所述两个项目ID进行切分,使得在前的项目ID与在后的项目ID被划分至不同的项目ID子序列中。

这样,第一处理设备在根据获得的每一个账户的操作日志,生成对应的项目ID序列后,考虑到账户的兴趣是时刻变化的,按照操作时间间隔和归属的会话过程进行拆分,对应每一个项目ID序列得到至少一个项目ID子序列,使得一个项目ID子序列中的各个项目ID能够表征对应的账户在一定时间内的兴趣,且拆分得到的各个项目ID子序列中包括的项目ID之间足够相似,后续在基于项目ID子序列生成对word2vec模型进行训练的训练样本时,使得word2vec模型能够学习到业务数据之间的相似关系。

本公开一些可能的实施例中,所述第一处理设备获取每一个账户的账户ID,并获取由每一个账户关联的项目ID序列拆分得到的至少一个项目ID子序列,以及将账户ID添加至对应账户的各个项目ID子序列中每两个相邻的项目ID之间,进而将添加有账户ID的各个项目ID子序列分别作为各个重构ID序列。

例如,参考图3a所示,其为本公开的一个实施例中生成的重构ID示意图,其为在图2b得到的3个项目ID子序列的基础上进行的操作,以一个项目ID子序列为例,在项目ID子序列中每相邻两个ID子序列之间添加账户ID后,即可得到对应该项目ID子序列的重构ID序列,进而针对所述3个项目ID子序列对应生成3个重构ID序列。

本公开的另一些可能的实施例中,所述第一处理设备获取每一个账户的账户ID,并获取由每一个账户关联的项目ID序列拆分得到的至少一个项目ID子序列,以及将账户ID添加至对应账户的各个项目ID子序列中的首端、末端,以及每两个相邻的项目ID之间,进而将添加有账户ID的各个项目ID子序列分别作为各个重构ID序列。

例如,参考图3b所示,其为本公开的一个实施例中生成的重构ID序列示意图,其为在图2b得到的3个项目ID子序列的基础上进行的操作,以一个项目ID子序列的处理为例,在项目ID子序列的首端、末端,以及每相邻的两个项目ID之间添加账户ID后,即可得到对应该项目ID子序列的重构ID序列,进而针对所述3个项目ID子序列对应生成3个重构ID序列。

这样,第一处理设备通过至少在各个项目ID子序列中每相邻两个项目ID之间添加账户ID,组合生成重构ID序列,能够在体现出项目ID之间的内在联系的基础上,表征出项目ID与账户ID之间的关联关系,使得新生成的重构ID序列中,账户与项目ID的交互更加充分,使得后续将重构ID序列作为word2vec模型的训练样本时,能够使word2vec模型学习到账户ID与项目ID之间的内在联系、项目ID与项目ID之间的内在联系,以及项目ID的序列特征,使得word2vec模型生成的向量更能够表征出账户与业务数据之间,以及不同业务数据之间的关联关系。

步骤103:按照设置的模型架构搭建word2vec模型,并将生成的每一个重构ID序列分别作为所述word2vec模型的一条训练样本,对所述word2vec模型进行训练。

第一处理设备按照设置的模型架构搭建word2vec模型,并将生成的每一个重构ID序列分别作为所述word2vec模型的一条训练样本,对所述word2vec模型进行训练,其中,所述模型架构可以是skip-gram架构,或者,所述模型架构可以是CBOW架构,其中不同的模型架构对应不同的训练数据生成格式。

本公开的一些实施例中,第一处理设备采用skip-gram架构搭建word2vec模型,将生成的每一个重构ID序列分别作为所述word2vec模型的一条训练样本,对所述word2vec模型进行训练,并获得所述word2vec模型输出的与训练样本中各个ID对应的各个向量,其中,在训练过程中,按照设置的窗口长度,针对每一个重构ID序列,分别以每一个重构ID序列中的每一个ID作为所述word2vec模型内部的输入层ID,以对应位置的窗口长度覆盖的所述重构ID序列中的各个其他ID分别作为对应的输出层ID。

具体的,所述第一处理设备分别将每一个重构ID序列分别作为一条训练样本,对搭建的word2vec模型进行训练。下面以使用任意一条训练样本对word2vec模型进行训练为例,对word2vec模型的训练过程进行说明:

所述第一处理设备首先设置word2vec模型的窗口长度,使得在基于skip-gram架构搭建的word2vec模型的内部,将长度固定的窗口在训练样本上不断滑动过程,分别确定训练样本上的各个ID分别作为输入层ID时,对应位置的窗口长度所覆盖的各个其他ID,并将所述各个其他ID分别作为与输入层ID对应的输出层ID,并针对每一个输入层ID,建立由一个输入层ID和一个输出层ID组成的各个ID组。然后,将输出层ID作为正样本,随机从该训练样本中的各个ID中选择负样本,计算正样本和负样本的输出层激励函数值的交叉熵,并根据最小化交叉熵的原则,训练所述word2vec模型的隐层参数,得到所述word2vec输出的对应训练样本中各个ID的各个向量。

例如,参考图4a-4e,示意性的呈现了word2vec模型内部确定输入层ID和输出层ID的过程,图4a为本公开实施例中窗口在初始位置时的输入层ID标识示意图,假设窗口长度设置为2,也就是在当前ID的前后2个ID均作为窗口长度的覆盖范围,在图4a所示意的初始窗口位置:位置1处,输入层ID为账户ID,对应的输出层ID可以是ID1或者账户ID,也就是说,在当前位置的窗口长度覆盖区域内,存在两组输入层ID和输出层ID,分别为账户ID-ID1,以及账户ID-账户ID;图4b为本公开实施例中窗口在位置2时的输入层ID标识示意图,对于位置2处的滑动窗口,输入层ID为ID1,对应的输出层ID可以是账户ID、账户ID,或者ID2,也就是说,在当前位置的窗口长度覆盖区域内,存在三组输入层ID和输出层ID,分别为:ID1-账户ID、ID1-账户ID,以及ID1-ID2;图4c为本公开实施例中窗口在位置3时的输入层ID标识示意图,对于位置3处的滑动窗口,输入层ID为账户ID,对应的输出层ID可以是账户ID、ID1、ID2,以及账户ID,也就是说,在当前位置的窗口长度覆盖区域内,存在四组输入层ID和输出层ID,分别为:账户ID-账户ID、账户ID-ID1、账户ID-ID2,以及账户ID-账户ID;图4d为本公开实施例中窗口在位置4时的输入层ID标识示意图,对于位置4处的滑动窗口,输入层ID为ID2,对应的输出层ID可以是ID1、账户ID,以及账户ID,也就是说,在当前位置的窗口长度覆盖区域内,存在三组输入层ID和输出层ID,分别为ID2-ID1、ID2-账户ID,以及ID2-账户ID;图4e为本公开实施例中窗口在位置5时的输入层ID标识示意图,对于位置5处的滑动窗口,输入层ID为账户ID,对应的输出层ID可以是账户ID,或者ID2,也就是说,在当前位置的窗口长度覆盖区域内,存在两组输入层ID和输出层ID,分别为账户ID-输出层ID,以及账户ID-ID2。

本公开的另一些实施例中,所述第一处理设备可以采用CBOW架构搭建word2vec模型,将生成的每一个重构ID序列分别作为所述word2vec模型的一条训练样本,对所述word2vec模型进行训练,获得所述word2vec模型输出的与训练样本中各个ID对应的各个向量,其中,在训练过程中,按照设置的窗口长度,针对每一个重构ID序列,分别以每一个重构ID序列中的每一个ID作为所述word2vec模型内部的输出层ID,以对应位置的窗口长度覆盖的所述重构ID序列中的各个其他ID分别作为对应的输入层ID。

需要说明的是,本公开实施例中,采用CBOW架构搭建的word2vec模型,与采用skip-gram架构搭建的word2vec模型的训练方式类似,但采用CBOW架构搭建word2vec模型时,确定窗口长度后,针对每一个重构ID序列,分别以重构ID序列中的每一个ID作为word2vec模型内部的输出层ID,并将对应位置的窗口长度覆盖的其他ID分别作为输入层ID,进而按照同理的训练方式,对word2vec模型进行训练,本公开在此不再赘述。

本公开实施例中,确定生成的每一个重构ID序列均作为训练样本,对搭建的word2vec模型进行训练后,判定为本次训练结束。

这样,第一处理设备通过周期性的获取每一个账户的操作日志,生成作为word2vec模型的训练样本的重构ID序列,以实现周期性的使用最新获得的账户的操作日志生成训练样本对word2vec模型进行训练,使得word2vec能够及时学习到账户的兴趣变化,而且,由于训练样本中账户ID与业务数据对应的项目ID是穿插重构的,所以word2vec模型内部在生成各组输入层ID和输出层ID时,输入层ID可以是账户ID,也可以是项目ID,使得在word2vec模型中不仅可以学习到给定一个项目ID,找到与之相似的账户ID和项目ID,还可以学习到给定一个账户ID,找到与之相似的业务数据ID和账户ID,使得能够更加充分的对账户和业务数据之间的内在联系进行学习,充分利用了账户与业务数据之间的交互信息,使得word2vec模型对于账户对应的向量和业务数据对应的向量训练的更加充分。

步骤104:获得word2vec模型输出的与训练样本中包括的各个ID对应的各个向量,生成表征ID与向量之间的对应关系的向量集合。

第一处理设备获得word2vec模型输出的与训练样本中包括的各个ID对应的各个向量,生成表征ID与向量之间的对应关系的向量集合。

本公开一些可能的实施例中,第一处理设备在周期性的获取每一个账户的操作日志,生成训练样本对word2vec模型进行训练时,针对每个训练周期内word2vec模型输出的向量,分别生成与训练周期对应的向量集合,其中,向量集合中包括各个ID以及ID对应的向量之间的对应关系。

本公开另一些可能的实施例中,为保证业务数据的时效性,可以按照向量集合中各个项目ID对应的业务数据的发布时间,对业务数据进行筛选,至少筛选出发布时间距当前时间的时间间隔未达到设定时长的业务数据,并基于筛选出的业务数据对应的向量以及每一个账户ID对应的向量,生成向量子集。

这样,通过对word2vec模型进行训练,能够获得word2vec模型输出的项目ID和账户ID的向量表示,进而生成表征ID与向量之间的对应关系的向量集合,相当于将当前训练周期下所获得的所有向量形式的ID整合在向量集合中,便于进行统一的管理操作和查找操作。

基于同一发明构思,第二处理设备在采用重构ID序列对word2vec模型进行训练后,获取表征ID与向量之间对应关系的向量集合,进而基于获得的向量集合实现业务数据的召回操作,参考附图5,其为本公开实施例中的业务数据召回流程示意图,下面结合附图5对召回业务数据的过程进行详细说明。

步骤501:接收目标账户发送的业务数据召回请求,获取所述业务数据召回请求中携带的所述目标账户的目标账户ID。

第二处理设备接收目标账户发送的业务数据召回请求,获取所述业务数据召回请求中携带的所述目标账户的目标账户ID,其中,所述目标账户可以是每一个发送业务数据召回请求的账户,账户发起业务数据请求的方式可以是:账户在终端设备上刷新可操作页面,刷新方式可以是上拉或下拉界面;或者,账户重新进入可操作页面,具体可以为,重新呈现处于后台的可操作界面,或者,账户重新开启可操作页面。

具体的,对于步骤501的场景,可以理解为,第二处理设备能够为不同账户提供服务,并响应于账户发送的业务数据召回请求,确定对应召回的业务数据并向各个账户推送,以及将业务数据呈现在账户所在的终端设备的可操作页面上,并能够响应于各个账户在可操作页面上的操作指示,在对应的终端设备的可操作页面上呈现业务数据的具体内容。

步骤502:基于目标账户的操作日志和最新保存的向量集合,确定对应所述目标账户召回的业务数据。

第二处理设备获取目标账户的目标账户ID后,基于目标账户的操作日志和最新保存的向量集合,确定对应所述目标账户召回的业务数据。

需要说明的是,本公开实施例中,第二处理设备周期性的获取每一个账户的操作日志,生成作为训练样本的重构ID序列,并获取采用重构ID序列对word2vec模型进行训练时,根据word2vec模型输出的对应每一个重构ID序列中的各个ID的各个向量,建立能够表征ID与向量之间的对应关系的向量集合。故对于第二处理设备来说,在不同的训练周期可能生成不同的向量集合,为保证召回的业务数据契合账户的实际需求,通常选择最新生成的向量集合,以更好的适应不同账户的喜好。

本公开一些可能的实施例中,所述第二处理设备可以分别采用以下几种方式,确定对应所述目标账户召回的业务数据:

方式一、根据目标账户访问的历史业务数据,确定召回的业务数据。

第二处理设备可以根据所述目标账户的操作日志,确定所述目标账户访问的各个历史业务数据,并根据最新保存的所述向量集合,确定与所述各个历史业务数据的项目ID分别对应的向量,并针对每一个向量,分别计算该向量与所述向量集合中各个其他项目ID对应的向量之间的相似度并筛选出相似度最大的前N个向量对应的项目ID,将筛选出的项目ID对应的业务数据作为召回的业务数据。

具体的,所述第二处理设备在针对目标账户进行业务数据的召回时,可以通过目标账户的账户ID获取目标账户的操作日志,并按照访问时间距离当前时间的远近顺序,从最近访问的历史业务数据开始,依次获取各个历史业务数据各自对应的项目ID,并在最新保存的向量集合中查找与该项目ID对应的各个向量,以及针对查找到的每一个向量,分别计算每一个向量与所述向量集合中同类型的各个其他向量之间的相似度,最终针对每一个向量,筛选出相似度最大的N个向量,并确定所述N个向量各自对应的业务数据,以及将获取的各个历史业务数据各自对应的N个相似业务数据作为对应目标账户召回的业务数据,其中,N为正整数,且N的取值根据实际配置需要自行设置,确定两个向量之间相似度的方式包括但不限于计算两个向量之间的内积,或者,计算两个向量之间的欧式距离。

本公开一些可能的实施例中,为保证召回的业务数据的时效性,可以在最新保存的向量集合的基础上,从所述向量集合中筛选出发布时间距离当前时间未达到设定时长的业务数据对应的向量,生成向量子集,并在向量子集中筛选召回的业务数据。

本公开另一些可能的实施例中,在生成向量子集时,可以按照一定的处理策略,对涉及到敏感内容的业务数据进行屏蔽,避免召回带有敏感内容的业务数据。

需要说明的是,本公开实施例中,对于账户操作的历史业务数据,可能存在有无法在向量集合或者向量子集中查找到对应的向量的情况,这时,则无法计算该历史业务数据相似的其他业务数据,无法针对该历史业务数据召回相似的其他业务数据,但本公开是针对账户操作的多个历史业务数据分别确定相似的N个召回的业务数据,故对于实际的业务数据召回过程影响不大,其中,所针对性获取的历史业务数据的数目根据实际的召回需要自行设置,本公开在此不做过多限定。

这样,第二处理设备基于最新保存的向量集合,或者,基于对向量集合进一步处理得到的向量子集,完成不同项目ID之间的相似度计算,能够获得与历史业务数据足够相似的其他业务数据,并将确定的其他业务数据作为对应该历史业务数据召回的业务数据,使得召回的业务数据能够契合于账户曾操作过的业务数据,使得召回的业务数据能够一定程度上符合账户的需求。

方式二、确定与目标账户相似的其他账户,并根据其他账户的操作日志确定召回的业务数据。

第二处理设备根据最新保存的所述向量集合,确定所述目标账户ID对应的向量,并计算所述向量与所述向量集合中各个其他账户ID对应的向量之间的相似度,筛选出相似度最大的前M个向量对应的账户ID,以及获取M个账户ID对应的账户的操作日志,并将各个操作日志中记录访问的业务数据作为召回的业务数据,其中,M为正整数,且M的取值根据实际配置需要自行设置,确定两个向量之间相似度的方式包括但不限于计算两个向量之间的内积,或者,计算两个向量之间的欧式距离。

这样,通过计算账户ID对应的向量之间的相似度,能够确定与目标账户相似的其他账户,并将相似账户的操作日志中记录访问的业务数据作为召回的业务数据,使得能够召回与目标账户相似的其他账户曾浏览过的业务数据,相当于在账户层面上提出了一种新的召回模型,在丰富了业务数据的召回模式的同时,能够满足账户的使用需求。

方式三、筛选与目标账户的账户ID相似的项目ID,并召回筛选出的项目ID对应的业务数据。

第二处理设备根据最新保存的所述向量集合,确定所述目标账户ID对应的向量,并计算所述向量与所述向量集合中各个项目ID对应的向量之间的相似度,筛选出相似度最大的前Z个向量对应的项目ID,并将筛选出的项目ID对应的业务数据作为召回的业务数据,其中,Z为正整数,且Z的取值根据实际配置需要自行设置,确定两个向量之间相似度的方式包括但不限于计算两个向量之间的内积,或者,计算两个向量之间的欧式距离。

本公开一些可能的实施例中,为保证召回的业务数据的时效性,可以在最新保存的向量集合的基础上,从所述向量集合中筛选出发布时间距离当前时间未达到设定时长的业务数据对应的向量,生成向量子集,并在向量子集中筛选召回的业务数据。

本公开另一些可能的实施例中,在生成向量子集时,可以按照一定的处理策略,对涉及到敏感内容的业务数据进行屏蔽,避免召回带有敏感内容的业务数据。

这样,借助于体现有账户ID与项目ID之间的关联性,以及项目ID与项目ID之间的关联性的训练数据对word2vec模型进行训练,使得所述word2vec模型能够学习到账户ID与项目ID之间的内在联系、不同项目ID之间的内在联系,以及项目ID的序列特征,并体现在输出的向量中,进而所述第二处理设备能够直接通过计算账户ID与项目ID之间的相似度,确定召回的业务数据,能够对不同账户针对性地召回契合实际使用需要的业务数据,实现个性化的推荐。

基于方式一至方式三中的数据召回方式,可以确定的是,本公开实施例中可以根据word2vec模型学习到的内容,借助于word2vec模型输出的向量,在给定一个目标账户的目标账户ID的情况下,能够通过计算向量之间的相似度,召回与之匹配的业务数据ID,或者,在给定一个业务数据ID的情况下,能够通过计算向量之间的相似度,找到与之相似的其他业务数据ID,使得业务数据的召回模型更加多样化,且对于不同的应用场景具有普遍的适用性。

可以预见的是,根据本公开的内容,能够适应于账户的实际需求,最大可能的向账户推荐切合其兴趣的业务数据,使得相关的业务衡量指标能够得到明显的上升,具体地,由于推送的业务数据满足账户的需要,故在推送的业务数据为视频数据的情况下,能够提高视频播放时长,以及提高视频数据的人均播放次数,对于文章类的业务数据,能够明显提高阅读时长,以及提高账户在存在有推送内容的区域的停留时长,提升人均浏览时长,进而极大的提升了使用体验,为账户维护起到了至关重要的作用。

基于同一发明构思,参阅图6所示,其为本公开实施例中word3vec模型的训练装置的逻辑结构示意图,包括:获取单元601、生成单元602,以及训练单元603,其中:

获取单元601,周期性获取每一个账户在指定时间段内对于业务数据的操作日志,其中,所述操作日志中保存有对应的账户在至少一个会话过程中访问的,关联有操作时间的各个业务数据的项目标识信息ID;

生成单元602,根据每一个账户对于业务数据的操作顺序,以及业务数据关联的操作时间和会话过程,将每一个账户的账户ID和该账户访问的业务数据的项目ID,组合生成至少一个重构ID序列,其中,重构ID序列中包括按照操作顺序排列的项目ID,以及至少在每相邻的两个项目ID之间添加的账户ID;

训练单元603,按照设置的模型架构搭建word2vec模型,并将生成的每一个重构ID序列分别作为所述word2vec模型的一条训练样本,对所述word2vec模型进行训练,获得所述word2vec模型输出的与训练样本中包括的各个ID对应的各个向量,生成表征ID与向量之间的对应关系的向量集合。

可选的,所述根据每一个账户对于业务数据的操作顺序,以及业务数据关联的操作时间和会话过程,将每一个账户的账户ID和该账户访问的业务数据的项目ID,组合生成至少一个重构ID序列时,所述生成单元602具体用于:

根据每一个账户对于业务数据的操作顺序,生成每一个账户关联的项目ID序列,并根据项目ID归属的会话过程和项目ID关联的操作时间,将每一个账户的项目ID序列拆分为至少一个项目ID子序列;

分别将每一个账户的账户ID添加至该账户对应的各个项目ID子序列中,组合生成至少一个重构ID序列。

可选的,所述根据项目ID归属的会话过程和项目ID关联的操作时间,将每一个账户的项目ID序列拆分为至少一个项目ID子序列时,所述生成单元602具体用于:

确定每一个账户的项目ID序列中各个项目ID归属的会话过程,并在归属于不同会话过程的项目ID之间设置拆分节点;

根据每一个账户的项目ID序列中各个项目ID关联的操作时间,确定相邻的各个项目ID之间的时间间隔,并筛选出高于设定阈值的时间间隔,以及在筛选出的时间间隔对应的项目ID之间设置拆分节点;

根据设置的拆分节点,将每一个账户的项目ID序列拆分为至少一个项目ID子序列。

可选的,所述分别将每一个账户的账户ID添加至该账户对应的各个项目ID子序列中时,所述生成单元602具体用于:

获取每一个账户的账户ID,并获取由每一个账户关联的项目ID序列拆分得到的至少一个项目ID子序列,以及将账户ID添加至对应账户的各个项目ID子序列中每两个相邻的项目ID之间;或者,

获取每一个账户的账户ID,并获取由每一个账户关联的项目ID序列拆分得到的至少一个项目ID子序列,以及将账户ID添加至对应账户的各个项目ID子序列中的首端、末端,以及每两个相邻的项目ID之间。

可选的,所述按照设置的word2vec模型架构和窗口长度,对各个账户的重构ID序列处理后生成训练样本集合时,所述训练单元603用于:

采用skip-gram架构搭建word2vec模型时,将生成的每一个重构ID序列分别作为所述word2vec模型的一条训练样本,对所述word2vec模型进行训练,获得所述word2vec模型输出的与训练样本中各个ID对应的各个向量,其中,在训练过程中,按照设置的窗口长度,针对每一个重构ID序列,分别以每一个重构ID序列中的每一个ID作为所述word2vec模型内部的输入层ID,以对应位置的窗口长度覆盖的所述重构ID序列中的各个其他ID分别作为对应的输出层ID;或者,

采用CBOW架构搭建word2vec模型时,将生成的每一个重构ID序列分别作为所述word2vec模型的一条训练样本,对所述word2vec模型进行训练,获得所述word2vec模型输出的与训练样本中各个ID对应的各个向量,其中,在训练过程中,按照设置的窗口长度,针对每一个重构ID序列,分别以每一个重构ID序列中的每一个ID作为所述word2vec模型内部的输出层ID,以对应位置的窗口长度覆盖的所述重构ID序列中的各个其他ID分别作为对应的输入层ID。

基于同一发明构思,参阅图7所示,其为本公开实施例中数据召回装置的逻辑结构示意图,包括:接收单元701,以及召回单元702,其中,

接收单元701,接收目标账户发送的业务数据召回请求,获取所述业务数据召回请求中携带的所述目标账户的目标账户ID;

召回单元702,基于所述目标账户的操作日志和最新保存的所述向量集合,确定对应所述目标账户召回的业务数据。

可选的,所述基于所述目标账户的操作日志和最新保存的所述向量集合,确定对应所述目标账户召回的业务数据时,所述召回单元702具体用于:

根据所述目标账户的操作日志,确定所述目标账户访问的各个历史业务数据,并根据最新保存的所述向量集合,确定与所述各个历史业务数据的项目ID分别对应的向量,并针对每一个向量,分别计算该向量与所述向量集合中各个其他项目ID对应的向量之间的相似度并筛选出相似度最大的前N个向量对应的项目ID,将筛选出的项目ID对应的业务数据作为召回的业务数据;或者,

根据最新保存的所述向量集合,确定所述目标账户ID对应的向量,并计算所述向量与所述向量集合中各个其他账户ID对应的向量之间的相似度,筛选出相似度最大的前M个向量对应的账户ID,以及获取M个账户ID对应的账户的操作日志,并将各个操作日志中记录访问的业务数据作为召回的业务数据;或者,

根据最新保存的所述向量集合,确定所述目标账户ID对应的向量,并计算所述向量与所述向量集合中各个项目ID对应的向量之间的相似度,筛选出相似度最大的前Z个向量对应的项目ID,并将筛选出的项目ID对应的业务数据作为召回的业务数据。

参阅图8所示,其为本公开实施例中word2vec模型的训练装置的实体结构示意图。基于同一技术构思,本申请实施例还提供了一种控制设备,可以包括存储器801和处理器802。

存储器801,用于存储处理器802执行的计算机程序。存储器801可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据区块链节点的使用所创建的数据等。处理器802,可以是一个中央处理单元(central processing unit,CPU),或者为数字处理单元等。本申请实施例中不限定上述存储器801和处理器802之间的具体连接介质。本申请实施例在图8中以存储器801和处理器802之间通过总线803连接,总线803在图8中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线803可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

存储器801可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器801也可以是非易失性存储器(non-volatilememory),例如只读存储器,快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)、或者存储器601是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器801可以是上述存储器的组合。

处理器802,用于调用存储器801中存储的计算机程序时执行如图1中所示的实施例提供的word2vec模型的训练方法。

基于同一发明构思,本公开实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述任意方法实施例中的word2vec模型的训练方法。

基于同一发明构思,参阅图9所示,其为本公开实施例中数据召回装置的实体结构示意图,本公开实施例提出一种电子设备,包括存储器901和处理器902,其中,所述处理器用于读取所述存储器中存储的计算机指令,并执行上述数据召回的方法。

基于同一发明构思,本公开实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述任意方法实施例中的数据召回的方法。

综上所述,本公开实施例中,在对word2vec模型进行训练时,周期性获取每一个账户在指定时间段内对于业务数据的操作日志,其中,所述操作日志中保存有对应的账户在至少一个会话过程中访问的,关联有操作时间的各个业务数据的项目标识信息ID,再根据每一个账户对于业务数据的操作顺序,以及业务数据关联的操作时间和会话过程,将每一个账户的账户ID和该账户访问的业务数据的项目ID,组合生成至少一个重构ID序列,其中,重构ID序列中包括按照操作顺序排列的项目ID,以及至少在每相邻的两个项目ID之间添加的账户ID,然后按照设置的模型架构搭建word2vec模型,并将生成的每一个重构ID序列分别作为所述word2vec模型的一条训练样本,对所述word2vec模型进行训练,获得所述word2vec模型输出的与训练样本中包括的各个ID对应的各个向量,生成表征ID与向量之间的对应关系的向量集合。这样,通过将账户ID穿插至根据账户操作的业务数据生成的项目ID序列中,能够保证每相邻两个项目ID之间存在一个账户ID,使得生成的训练样本中充分利用了账户与业务数据之间的交互信息,在对word2vec模型进行训练时,使得所述word2vec模型充分的学习账户与业务数据之间,以及不同业务数据之间的内在联系,使得所述word2vec模型对于账户向量和业务数据向量训练的更加充分。

进一步的,接收目标账户发送的业务数据召回请求,获取所述业务数据召回请求中携带的所述目标账户的目标账户ID,再基于所述目标账户的操作日志和最新保存的所述向量集合,确定对应所述目标账户召回的业务数据。这样,能够根据充分学习了账户与业务数据之间的内在联系、不同业务数据之间的内在联系,以及项目ID的序列特征的word2vec模型输出的向量,能够针对目标账户的需求针对性的召回业务数据。

本领域内的技术人员应明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本公开是参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本公开的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本公开范围的所有变更和修改。

显然,本领域的技术人员可以对本公开实施例进行各种改动和变型而不脱离本公开实施例的精神和范围。这样,倘若本公开实施例的这些修改和变型属于本公开权利要求及其等同技术的范围之内,则本公开也意图包含这些改动和变型在内。

相关技术
  • 一种word2vec模型训练、数据召回方法及装置
  • 一种视频数据的召回方法、装置、计算机设备和存储介质
技术分类

06120112706803