一种应用于推荐系统的模型训练方法以及相关装置与流程

文档序号:19071398发布日期:2019-11-08 20:38阅读:149来源:国知局
一种应用于推荐系统的模型训练方法以及相关装置与流程

本申请涉及计算机技术领域,尤其涉及一种应用于推荐系统的模型训练方法以及相关装置。



背景技术:

随着机器学习技术的发展,机器学习应用在越来越多的场景中,例如对于商品推荐系统,可以根据机器学习对用户和项目进行分析,以为用户推荐合适的项目。从实质上讲,推荐系统可以看作一个对商品进行排序的过程,在信息过载的情况下可以从海量的数据中选择排序较高的商品或项目进行推荐。

一般的推荐行为是基于用户对于项目的点击率而设定的,例如,基于listing-embedding算法,分析设备会对用户的点击行为进行统计、分析,然后建立相关模型,基于建模为用户提供推荐服务。

但是,单一的基于点击率生成用户画像比较片面,在复杂的场景中无法准确的为用户提供推荐服务,降低了对相关项目模型训练方法的准确性,影响用户体验。



技术实现要素:

有鉴于此,本申请第一方面提供一种模型训练方法,可应用于基于机器学习的项目推荐系统或程序过程中,具体包括:基于推荐列表中的第一项目序列生成的第一向量,所述第一项目序列包含多个项目;

基于所述多个项目获取预设时间段内用户对于所述多个项目的操作信息,以得到第二向量,所述操作信息包括用户的行为特征或基于所述行为特征产生的相关参数;

根据转移矩阵算法关联所述第一向量和所述第二向量,以得到二元组向量;

使用所述二元组向量对机器学习模型进行训练,以得到推荐系统模型,所述推荐系统模型用于根据用户特征输出对应的第二项目序列。

优选的,在本申请一些可能的实现方式中,所述基于推荐列表中的第一项目序列生成的第一向量,包括:

确定当前用户浏览的目标项目;

根据预设模型以所述目标项目为中心确定所述第一项目序列,以生成第一向量。

优选的,在本申请一些可能的实现方式中,所述根据预设模型以所述目标项目为中心确定所述第一项目序列,以生成第一向量,包括:

获取预设窗口大小,所述预设窗口大小用于指示所述推荐列表的信息阈值;

根据所述预设模型以所述目标项目为中心确定向量集合;

根据所述预设窗口大小对所述向量集合进行选择,以生成的第一向量。

优选的,在本申请一些可能的实现方式中,所述第二项目序列包括第一项目和第二项目,所述根据用户特征输出对应的第二项目序列之后,所述方法还包括:

确定所述第一项目和所述第二项目的操作信息;

若所述第一项目和所述第二项目的操作信息基于相同预设字段设定,则生成所述第一项目和所述第二项目的关联信息,所述关联信息用于当所述第一项目被选择时调用所述第二项目。

优选的,在本申请一些可能的实现方式中,所述操作信息包括正向行为特征信息或负向行为特征信息,所述通过所述二元组向量引导机器学习模型进行训练,包括:

根据所述正向行为特征信息确定所述机器学习模型中的正样本,所述正向行为特征信息基于预设字符设定;

根据所述负向行为特征信息确定所述机器学习模型中的负样本;

通过所述二元组向量和所述正样本以及所述负样本引导机器学习模型进行训练。

优选的,在本申请一些可能的实现方式中,所述根据所述负向行为特征信息确定所述机器学习模型中的负样本,包括:

根据所述负向行为特征信息获取所述行为特征产生的相关参数;

若所述行为特征产生的相关参数满足预设条件,则将所述负向行为特征信息对应的二元组向量作为所述机器学习模型中的负样本。

优选的,在本申请一些可能的实现方式中,所述根据用户特征输出对应的第二项目序列,包括:

根据所述二元组向量生成映射矩阵,所述映射矩阵用于指示所述多个项目与所述操作信息的对应关系;

计算所述映射矩阵中所述多个项目与所述用户特征的相似度,以生成所述第二项目序列。

本申请第二方面提供一种应用于推荐系统的模型训练装置,包括:

生成单元,用于基于推荐列表中的第一项目序列生成的第一向量,所述第一项目序列包含多个项目;

获取单元,用于基于所述多个项目获取预设时间段内用户对于所述多个项目的操作信息,以得到第二向量,所述操作信息包括用户的行为特征或基于所述行为特征产生的相关参数;

关联单元,用于根据转移矩阵算法关联所述第一向量和所述第二向量,以得到二元组向量;

训练单元,用于使用所述二元组向量对机器学习模型进行训练,以得到推荐系统模型,所述推荐系统模型用于根据用户特征输出对应的第二项目序列。

优选的,在本申请一些可能的实现方式中,所述生成单元,具体用于确定当前用户浏览的目标项目;

所述生成单元,具体用于根据预设模型以所述目标项目为中心确定所述第一项目序列,以生成第一向量,所述预设模型用于产生词向量。

优选的,在本申请一些可能的实现方式中,所述生成单元,具体用于获取预设窗口大小,所述预设窗口大小用于指示所述推荐列表的信息阈值;

所述生成单元,具体用于根据所述预设模型以所述目标项目为中心确定向量集合;

所述生成单元,具体用于根据所述预设窗口大小对所述向量集合进行选择,以生成的第一向量。

优选的,在本申请一些可能的实现方式中,所述第二项目序列包括第一项目和第二项目,所述根据用户特征输出对应的第二项目序列之后,

所述关联单元,还用于确定所述第一项目和所述第二项目的操作信息;

所述关联单元,还用于若所述第一项目和所述第二项目的操作信息基于相同预设字段设定,则生成所述第一项目和所述第二项目的关联信息,所述关联信息用于当所述第一项目被选择时调用所述第二项目。

优选的,在本申请一些可能的实现方式中,所述操作信息包括正向行为特征信息或负向行为特征信息,

所述训练单元,具体用于根据所述正向行为特征信息确定所述机器学习模型中的正样本,所述正向行为特征信息基于预设字符设定;

所述训练单元,具体用于根据所述负向行为特征信息确定所述机器学习模型中的负样本;

所述训练单元,具体用于通过所述二元组向量和所述正样本以及所述负样本引导机器学习模型进行训练。

优选的,在本申请一些可能的实现方式中,所述训练单元,具体用于根据所述负向行为特征信息获取所述行为特征产生的相关参数;

所述训练单元,具体用于若所述行为特征产生的相关参数满足预设条件,则将所述负向行为特征信息对应的二元组向量作为所述机器学习模型中的负样本。

优选的,在本申请一些可能的实现方式中,所述训练单元,具体用于根据所述二元组向量生成映射矩阵,所述映射矩阵用于指示所述多个项目与所述操作信息的对应关系;

所述训练单元,具体用于计算所述映射矩阵中所述多个项目与所述用户特征的相似度,以生成所述第二项目序列。

本申请第三方面提供一种计算机设备,包括:存储器、处理器以及总线系统;所述存储器用于存储程序代码;所述处理器用于根据所述程序代码中的指令执行上述第一方面或第一方面任一项所述的模型训练方法。

本申请第四方面提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面或第一方面任一项所述的模型训练方法。

从以上技术方案可以看出,本申请实施例具有以下优点:

通过确定第一项目序列,然后基于所述第一项目序列获取预设时间段内用户对于所述多个项目的操作信息,并根据预设算法将所述操作信息与所述多个项目关联,得到第二项目序列,基于用户的相关操作可以更精确地反映出各个项目的需求度,进而在序列中显示并推荐到更显著的位置,该过程可应用于多种复杂的场景,且可以根据不同场景下的不同操作信息产生相应的序列方案,提高了对于用户推荐过程的精确性,提高了用户体验。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为现有技术中生成特征序列的示意图;

图2为本申请实施例提供的一种模型训练方法的流程图;

图3为本申请实施例提供的另一种模型训练方法的流程图;

图4为本申请实施例提供的一种模型训练方法方法的逻辑示意图;

图5为是本申请实施例提供的一种应用场景示意图;

图6为本申请实施例提供的一种模型训练方法的界面显示示意图;

图7为本申请实施例提供的模型训练装置的结构示意图;

图8为本申请实施例提供的另一种模型训练装置的结构示意图。

具体实施方式

本申请实施例提供了一种模型训练方法以及相关装置,可以应用基于机器学习中嵌入模型的项目推荐场景中,具体的,通过确定第一项目序列,然后基于所述第一项目序列获取预设时间段内用户对于所述多个项目的操作信息,并根据预设算法将所述操作信息与所述多个项目关联,得到第二项目序列,基于用户的相关操作可以更精确地反映出各个项目的需求度,进而在序列中显示并推荐到更显著的位置,该过程可应用于多种复杂的场景,且可以根据不同场景下的不同操作信息产生相应的序列方案,提高了对于用户推荐过程的精确性,提高了用户体验。

本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“对应于”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

机器学习(machinelearning,ml)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、式教学习等技术。随着机器学习技术的发展,机器学习应用在越来越多的场景中,例如对于商品推荐系统,可以根据机器学习对用户和项目进行分析,以为用户推荐合适的项目。从实质上讲,推荐系统可以看作一个对商品进行排序的过程,在信息过载的情况下可以从海量的数据中选择排序较高的商品或项目进行推荐。

在推荐系统中常用到词向量计算的工具word2vec,word2vec可以在百万数量级的词典和上亿的数据集上进行高效地训练;得到训练结果,即词向量。词向量可以很好地度量词与词之间的相似性,根据这种相似性可以对相关项目进行排序并为用户提供推荐功能。一般的推荐功能是基于用户对于项目的点击率而设定的,即将项目与点击率通过嵌入模型(embedding)进行计算并关联,例如,基于listing-embedding算法,分析设备会对用户的点击行为进行统计、分析,然后建立相关的嵌入模型,基于建模为用户提供推荐服务。具体的,一般采用skip-gram模型通过机器学习学习每个用户和商品的嵌入信息,进而计算相似性,如图1所示,是现有技术中生成特征序列的示意图。skip-gram模型是指对于一个特征序列,随机给每个特征初始化一个向量表示,对于位置c的特征fc对应的向量vc,使用向量vc应该能尽可能准确的预测fc左右窗口大小各k个特征,数学形式表示即setf,k={fc-k,fc-k+1,fc-k+2,…,fc-1,fc+1,fc+2,…,fc+k}。用数学形式表示即为最大化似然概率:

其中,pf=softmax(vc×w+b),w和b做空间变换,将vc映射到全量特征空间,并通过softmax给出每个词的概率。

但是,单一的基于点击率生成用户画像比较片面,在复杂的场景中无法准确的为用户提供推荐服务;例如,类似读书,购物场景中,用户的行为不仅包括点击(查看详情),还包括收藏,加书架(购物车),评论,读完(购买),阅读等诸多有意义的行为特征,但listing-embedding无法对此类应用场景建模,降低了对相关项目模型训练方法的准确性,影响用户体验。

为了解决上述问题,本申请提出了一种模型训练方法,请参阅图2,图2为本申请实施例提供的一种模型训练方法的流程图,本申请实施例至少包括以下步骤:

201、基于推荐列表中的第一项目序列生成的第一向量。

本实施例中,推荐列表中的项目序列在不同的场景可以对应不同的功能选项,例如:在推荐读书的场景中,项目序列可以为各种书籍信息;在商城场景中,项目序列可以为各种商品;在游戏场景中,项目序列可以为各种游戏背景的缩略图;对应于不同的场景,项目序列可以为具有向用户传达相似信息的内容集合,具体形式因实际场景而定。

可以理解的是,第一向量可以表示为ebook,其中该向量可以对应一个项目,也可以对应多个项目的集合;第一项目序列用于指示对于用户的项目推荐方式,推荐列表中的项目推荐方式可以是按照一定的规则进行排序,一般在推荐场景中,可以按照点击率由高到低进行排序;也可以按时间顺序由最近时刻向前排序;还可以根据预设的排列算法进行排序,具体的方式因实际场景而定,此处不做限定。

可选的,在一种可能的场景中,可以首先确定用户在预设时间段内的浏览项目;然后根据所述浏览项目按照时序进行排序,得到第一项目序列。其中,预设时间段可以是距离当前时刻最近的一段时间,也可以是历史记录中的一段时间;时间段的确定可以是基于用户设定的,也可以是基于设备按照一定规则自动获取的。

可选的,在另一种可能的场景中,可以首先确定用户当前浏览的目标项目,以目标项目为特征向量vc,采用skip-gram模型预测其预设左右窗口大小内的多个特征,多个特征的集合即为第一项目序列。

202、基于所述多个项目获取预设时间段内用户对于所述多个项目的操作信息,以得到第二向量。

本实施例中,操作信息包括用户的行为特征或基于所述行为特征产生的相关参数。其中,操作信息可以是静态的描述,即用户的行为特征;也可以是动态的描述,即基于所述行为特征产生的相关参数,例如:以推荐书籍的场景为例,基于静态的操作信息可以是,该用户购买过该书籍,或该用户收藏过该书籍,或其他反应用户对于相关书籍已完成的操作;基于动态的操作信息可以是用户浏览该书籍的时长信息,该动作可以是当前时刻还在进行的,也可以是已经发生并记录的,其中第二向量可以表示为praction。

可选的,对于不同的操作信息,其对应的用户对于该书籍的参考价值亦不同,可以根据不同的参考价值对不同的操作信息设置权重信息,以便于后续步骤进行相关计算;例如,对于已购买的书籍,用户不太可能再次购买,此时可以降低其权重,在listing-embedding算法中,可以最小化该书籍对应项目item的出现概率;对于用户阅读时长超过60秒的书籍,用户可能对该书籍比较感兴趣,此时可以最大化该书籍对应item的出现概率;对于用户阅读时长小于60秒的书籍,用户可能对该书籍不感兴趣,此时可以最小化该书籍对应item的出现概率;具体操作与算法的对应关系因实际场景而定,此处不做限定。

可以理解的是,上述对于不同操作信息所关联的算法过程在不同的场景中可以有不同的表述,例如,在一些可能的场景中,也可以将用户阅读时长超过60秒的书籍,降低其权重,具体的对应关系因实际场景而定;另外对于类似于60秒这种界定数值的确定可以是人为的设置,也可以是相关推荐系统根据历史记录统计而成。

203、根据转移矩阵算法关联所述第一向量和所述第二向量,以得到二元组向量。

本实施例中,预设算法可以是矩阵转移算法,可选的,在该算法场景下,可以根据所述多个项目确定第一向量;根据所述操作信息确定第二向量;根据转移矩阵算法关联所述第一向量和所述第二向量,得到二元组向量;基于所述二元组向量标记所述多个项目,得到第二项目序列,可以理解的是,在推荐场景中,第二项目序列用于输入所述嵌入模型中计算推荐参考值,所述推荐参考值用于指示对于用户的项目推荐方式。

以读书场景为例,本实施例中,将书籍序列按照向量标识,同时将书通过行为转移矩阵映射为<书,行为>的二元组关系,即对于给定book的向量表示ebook,通过矩阵变换praction得到二元组<book,action>的向量表示ebook,action。

204、使用所述二元组向量对机器学习模型进行训练,以得到推荐系统模型。

本实施例采用skip-gram模型进行训练,在skip-gram模型中,还可以规定相关的正样本与负样本,具体的,操作信息可以包括正向行为特征信息或负向行为特征信息,根据所述正向行为特征信息确定所述机器学习模型中的正样本,所述正向行为特征信息基于预设字符设定,例如:finish和pay;然后根据所述负向行为特征信息确定所述机器学习模型中的负样本,根据所述负向行为特征信息获取所述行为特征产生的相关参数;若所述行为特征产生的相关参数满足预设条件,则将所述负向行为特征信息对应的二元组向量作为所述机器学习模型中的负样本,例如阅读总时长小于60s的书作为全局负样本。然后通过所述二元组向量和所述正样本以及所述负样本引导机器学习模型进行训练。对于给定book的向量表示ebook,通过矩阵变换praction得到二元组<book,action>的向量表示ebook,action,为一个用户的行为序列中,左右各k本书,即:

bookc-k,bookc-k+1,…,bookc-1,bookc+1,bookc+2,…,bookc+k通过变换矩阵praction将这些书的向量表示转变为二元组的向量表示:

并通过迭代算法最小化ebook,action与的距离。

在上述算法中引入全局正样本和局部正样本,可以分别代表符合用户条件的书,并将其表示成向量ebook,pos,并直接最小化其与ebook,action之间的距离,根据距离即可反映多个特征之间的相似度,对于不同的用户特征可以得到不同的相似度集合,根据得到的相似度集合即可以对相关用户进行推荐过程。

可以理解的是,上述向量之间的距离用于指示相关书籍符合用户条件的程度,可以是一个相对量,可以基于欧氏距离、曼哈顿距离、切比雪夫距离、闵可夫斯基距离、标准化欧氏距离或余弦距离中的一种或多种的具体计算方式所得。

可选的,由于用户对于不同的书籍可能进行相同的操作,即第一项目与第二项目的操作信息相同,此时可以建立第一项目与第二项目的关联信息;以书籍推荐的场景为例,用户对于书籍a和书籍b的阅读时长均超过了60秒,即对于书籍a和书籍b的操作信息相同,当用户选定书籍a时,可以在推荐栏中出现书籍b,即对书籍a和书籍b进行关联;该过程类似于autoencoder的encode和decode过程,限制了映射矩阵的求解空间,可以使得相关向量在矩阵转移过程中更加鲁棒。

结合上述实施例可知,通过确定第一项目序列,然后基于所述第一项目序列获取预设时间段内用户对于所述多个项目的操作信息,并根据预设算法将所述操作信息与所述多个项目关联,得到第二项目序列,基于用户的相关操作可以更精确地反映出各个项目的需求度,进而在序列中显示并推荐到更显著的位置,该过程可应用于多种复杂的场景,且可以根据不同场景下的不同操作信息产生相应的序列方案,提高了对于用户推荐过程的精确性,提高了用户体验。

上述实施例提到不同的操作信息可以对应不同的权重,故可以规定一些预设的操作信息与预设算法中对应取值的关系以便于更好的模拟用户的需求;下面,对该场景结合附图进行说明,如图3所示,图3为本申请实施例提供的另一种应用于推荐系统的模型训练方法的流程图,本申请实施例至少包括以下步骤:

301、基于推荐列表中的第一项目序列生成的第一向量。

本实施例中,推荐列表中的项目序列在不同的场景可以对应不同的功能选项,例如:在推荐读书的场景中,项目序列可以为各种书籍信息;在商城场景中,项目序列可以为各种商品;在游戏场景中,项目序列可以为各种游戏背景的缩略图;对应于不同的场景,项目序列可以为具有向用户传达相似信息的内容集合,具体形式因实际场景而定。

可以理解的是,第一项目序列用于指示对于用户的项目推荐方式,推荐列表中的项目推荐方式可以是按照一定的规则进行排序,一般在推荐场景中,可以按照点击率由高到低进行排序;也可以按时间顺序由最近时刻向前排序;还可以根据预设的排列算法进行排序,具体的方式因实际场景而定,此处不做限定。

可选的,在一种可能的场景中,可以首先确定用户在预设时间段内的浏览项目;然后根据所述浏览项目按照时序进行排序,得到第一项目序列。其中,预设时间段可以是距离当前时刻最近的一段时间,也可以是历史记录中的一段时间;时间段的确定可以是基于用户设定的,也可以是基于设备按照一定规则自动获取的。

302、基于所述第一项目序列获取预设时间段内用户对于所述多个项目的操作信息。

本实施例中,操作信息包括用户的行为特征或基于所述行为特征产生的相关参数。其中,操作信息可以是静态的描述,即用户的行为特征;也可以是动态的描述,即基于所述行为特征产生的相关参数,例如:以推荐书籍的场景为例,基于静态的操作信息可以是,该用户购买过该书籍,或该用户收藏过该书籍,或其他反应用户对于相关书籍已完成的操作;基于动态的操作信息可以是用户浏览该书籍的时长信息,该动作可以是当前时刻还在进行的,也可以是已经发生并记录的。

303、根据预设规则确定正样本与负样本。

本实施例中,对应于步骤302中的描述,预设规则可以是对于用户的行为特征的限定或基于所述行为特征产生的相关参数的限定,例如预设规则可以是操作信息为已购买、已付款或阅读时长超过60秒等,在一些可能的算法中也可以是判断上述预设规则可能对应的字段,例如:pay、finish或read>60等,具体形式因实际场景而定。

本实施例中,对于不同的操作信息,其对应的用户对于该书籍的参考价值亦不同,可以根据不同的参考价值对不同的操作信息设置权重信息,以便于后续步骤进行相关计算,对于权重高的操作信息可以作为全局正样本,对于权重第的操作信息可以作为全局负样本;例如,对于已购买的书籍,用户不太可能再次购买,此时可以降低其权重,在listing-embedding算法中,可以最小化该书籍对应项目item的出现概率;对于用户阅读时长超过60秒的书籍,用户可能对该书籍比较感兴趣,此时可以最大化该书籍对应item的出现概率;对于用户阅读时长小于60秒的书籍,用户可能对该书籍不感兴趣,此时可以最小化该书籍对应item的出现概率;具体操作与算法的对应关系因实际场景而定,此处不做限定。

可以理解的是,上述对于不同操作信息所关联的算法过程在不同的场景中可以有不同的表述,例如,在一些可能的场景中,也可以将用户阅读时长超过60秒的书籍,降低其权重,具体的对应关系因实际场景而定;另外对于类似于60秒这种界定数值的确定可以是人为的设置,也可以是相关推荐系统根据历史记录统计而成。

304、据转移矩阵算法关联所述第一向量和所述第二向量,以得到二元组向量。

本实施例中,预设算法可以是矩阵转移算法,可选的,在该算法场景下,可以根据所述多个项目确定第一向量;根据所述操作信息确定第二向量;根据转移矩阵算法关联所述第一向量和所述第二向量,得到二元组向量;基于所述二元组向量标记所述多个项目,得到第二项目序列;可以理解的是,在推荐场景中,第二项目序列用于输入所述嵌入模型中计算推荐参考值,所述推荐参考值用于指示对于用户的项目推荐方式。

以读书场景为例,本实施例中,将书籍序列按照向量标识,同时将书通过行为转移矩阵映射为<书,行为>的二元组关系,具体的,可参照图4,图4是本申请实施例提供的一种模型训练方法方法的逻辑示意图,图中bc为当前浏览的项目,经过矩阵转移prac生成eac,bc,并依此处理序列中的其他项目。

305、将二元组向量输入预设模型进行分析。

本实施例中,预设模型可以是skip-gram模型,根据上述实施例中的<书,行为>的二元组关系,skip-gram模型的数学描述可以如下:

公式中,代表将booki的向量通过映射到二元组向量2k即代表二元组<actioni,booki>窗口内的其他二元组,gp(globalpositive)为全局正样本,gn(globalnegative)为全局负样本,ns(negativesampling)为随机采样二元组负样本,公式最后一项即为当前在读的书<booki>。

以读书场景为例,在上述skip-gram模型中,还可以规定相关的正样本与负样本,具体的,操作信息可以包括正向行为特征信息或负向行为特征信息,根据所述正向行为特征信息确定所述机器学习模型中的正样本,所述正向行为特征信息基于预设字符设定,例如:finish和pay;然后根据所述负向行为特征信息确定所述机器学习模型中的负样本,根据所述负向行为特征信息获取所述行为特征产生的相关参数;若所述行为特征产生的相关参数满足预设条件,则将所述负向行为特征信息对应的二元组向量作为所述机器学习模型中的负样本,例如阅读总时长小于60s的书作为全局负样本,然后通过所述二元组向量和所述正样本以及所述负样本引导机器学习模型进行训练。。对于给定book的向量表示ebook,通过矩阵变换praction得到二元组<book,action>的向量表示ebook,action,为一个用户的行为序列中,左右各k本书,即:

bookc-k,bookc-k+1,…,bookc-1,bookc+1,bookc+2,…,bookc+k通过变换矩阵praction将这些书的向量表示转变为二元组的向量表示:

并通过迭代算法最小化ebook,action与的距离,根据距离即可反映多个特征之间的相似度,对于不同的用户特征可以得到不同的相似度集合,根据得到的相似度集合即可以对相关用户进行推荐过程。

在上述算法中引入全局正样本和局部正样本,可以分别代表符合用户条件的书,并将其表示成向量ebook,pos,并直接最小化其与ebook,action之间的距离。

可以理解的是,上述向量之间的距离用于指示相关书籍符合用户条件的程度,可以是一个相对量,可以基于欧氏距离、曼哈顿距离、切比雪夫距离、闵可夫斯基距离、标准化欧氏距离或余弦距离中的一种或多种的具体计算方式所得。

可选的,由于用户对于不同的书籍可能进行相同的操作,即第一项目与第二项目的操作信息相同,此时可以建立第一项目与第二项目的关联信息;以书籍推荐的场景为例,用户对于书籍a和书籍b的阅读时长均超过了60秒,即对于书籍a和书籍b的操作信息相同,当用户选定书籍a时,可以在推荐栏中出现书籍b,即对书籍a和书籍b进行关联;该过程类似于autoencoder的encode和decode过程,限制了映射矩阵的求解空间,可以使得相关向量在矩阵转移过程中更加鲁棒。

306、生成推荐结果。

本实施例中,推荐结果为基于预设模型输出的相关参数进行排序所得,其中,相关参数对应于不同的预设模型可以是相似度、推荐参考值或其他反映与用户相关性的参数,即考虑到项目本身以及用户对于该项目进行的相关操作综合考虑后的推荐结果。

下面结合具体算法的输入输出过程进行解释,例如,首先算法的输入为格式化的用户行为+书的序列,比如:

inputseq={detail_814400,read_814400,read_814400,detail_859985,down_859985,read_859985,pos_814400,neg_859985}

对于每一本书,算法给其随机初始化一个向量,假设长度为dim,并初始化m个转换矩阵,m为行为的数量,矩阵的维度pro∈rdim×dim

比如当前二元组为read_814400,则其需要预测其左右各k个行为,假设k=2,则需要预测{detail_814400,read_814400}和{detail_859985,download_859985},同时预测全局正样本{pos_814400}和全局负样本{neg_859985}和当前的书814400。

然后,算法通过梯度下降算法求解,优化算法可以是随机梯度下降,或adam等。

对于输出过程,算法最终会优化得到全部书的embedding和m个转换矩阵,不同的应用场景,embedding可以有不同的用法,比如计算书之间的相关性或书在不同行为上的权重;然后通过二元组embedding,计算书用户过去一段行为的向量表示,即转换后的向量求平均值,以此用来表示用户;通过用户的过去行为为其推荐最相关的书。

结合上述实施例可知,通过确定第一项目序列,然后基于所述第一项目序列获取预设时间段内用户对于所述多个项目的操作信息,并根据预设算法将所述操作信息与所述多个项目关联,得到第二项目序列,基于用户的相关操作可以更精确地反映出各个项目的需求度,进而在序列中显示并推荐到更显著的位置,该过程可应用于多种复杂的场景,且可以根据不同场景下的不同操作信息产生相应的序列方案,提高了对于用户推荐过程的精确性,提高了用户体验。

下面结合一种具体的场景进行说明,如图5所示,是本申请实施例提供的一种应用场景示意图,图中为一种书籍推荐表格,其中左边界面的书籍列表显示的是一般推荐系统中的排序方式,即由书籍1到书籍6的点击率递减,即书籍推荐方式与点击率相关,此时上述实施例中的方式输入操作信息,即书籍1为浏览完成finish的书籍,书籍2为已购买pay的书籍,书籍3为用户正在浏览reading的书籍,书籍4为阅读时长大于30秒read>30的书籍,书籍5为阅读时长小于30秒read<30的书籍,书籍6为点击次数小于10的书籍,将上述书籍列表及对应的操作信息通过矩阵转移算法转换为二元组向量ebook,action,并输入skip-gram模型中进行训练,然后根据输入的操作信息计算各个书籍与当前浏览书籍的相似度,得到右边视图所示的推荐列表,在大量数据的场景中,书籍1、书籍2和书籍4可以作为全局正样本,书籍5和书籍6可以作为全局负样本,并对其余书籍进行相似度计算得到最终的推荐列表。

在一种可能的显示方式中,可以采用如图6所述的显示方式展示推荐列表的推荐依据,图6为本申请实施例提供的一种应用于推荐系统的模型训练方法的界面显示示意图。该界面可以包括项目推荐列表和具体的项目详情;当用户需要知道相关项目的操作信息时,可以点击详情按钮,即为弹出在排序过程中各个项目的操作信息详情,以便于用户进一步的了解相关项目。

为了更好的实施本申请实施例的上述方案,下面还提供用于实施上述方案的相关装置。请参阅图7,图7为本申请实施例提供的应用于推荐系统的训练装置的结构示意图,训练装置700包括:

生成单元701,用于基于推荐列表中的第一项目序列生成的第一向量,所述第一项目序列包含多个项目;

获取单元702,用于基于所述多个项目获取预设时间段内用户对于所述多个项目的操作信息,以得到第二向量,所述操作信息包括用户的行为特征或基于所述行为特征产生的相关参数;

关联单元703,用于根据转移矩阵算法关联所述第一向量和所述第二向量,以得到二元组向量;

训练单元704,用于使用所述二元组向量对机器学习模型进行训练,以得到推荐系统模型,所述推荐系统模型用于根据用户特征输出对应的第二项目序列。

优选的,在本申请一些可能的实现方式中,所述生成单元701,具体用于确定当前用户浏览的目标项目;

所述生成单元701,具体用于根据预设模型以所述目标项目为中心确定所述第一项目序列,以生成第一向量。

优选的,在本申请一些可能的实现方式中,所述生成单元701,具体用于获取预设窗口大小,所述预设窗口大小用于指示所述推荐列表的信息阈值;

所述生成单元701,具体用于根据所述预设模型以所述目标项目为中心确定向量集合;

所述生成单元701,具体用于根据所述预设窗口大小对所述向量集合进行选择,以生成的第一向量。

优选的,在本申请一些可能的实现方式中,所述第二项目序列包括第一项目和第二项目,所述根据用户特征输出对应的第二项目序列之后,

所述关联单元703,还用于确定所述第一项目和所述第二项目的操作信息;

所述关联单元703,还用于若所述第一项目和所述第二项目的操作信息基于相同预设字段设定,则生成所述第一项目和所述第二项目的关联信息,所述关联信息用于当所述第一项目被选择时调用所述第二项目。

优选的,在本申请一些可能的实现方式中,所述操作信息包括正向行为特征信息或负向行为特征信息,

所述训练单元704,具体用于根据所述正向行为特征信息确定所述机器学习模型中的正样本,所述正向行为特征信息基于预设字符设定;

所述训练单元704,具体用于根据所述负向行为特征信息确定所述机器学习模型中的负样本;

所述训练单元704,具体用于通过所述二元组向量和所述正样本以及所述负样本引导机器学习模型进行训练。

优选的,在本申请一些可能的实现方式中,所述训练单元704,具体用于根据所述负向行为特征信息获取所述行为特征产生的相关参数;

所述训练单元704,具体用于若所述行为特征产生的相关参数满足预设条件,则将所述负向行为特征信息对应的二元组向量作为所述机器学习模型中的负样本。

优选的,在本申请一些可能的实现方式中,所述训练单元704,具体用于根据所述二元组向量生成映射矩阵,所述映射矩阵用于指示所述多个项目与所述操作信息的对应关系;

所述训练单元704,具体用于计算所述映射矩阵中所述多个项目与所述用户特征的相似度,以生成所述第二项目序列。

通过确定第一项目序列,然后基于所述第一项目序列获取的预设时间段内用户对于所述多个项目的操作信息,并且根据预设算法将所述操作信息与所述多个项目关联,得到第二项目序列,基于用户的相关操作可以更精确地反映出各个项目的需求度,进而在序列中显示并推荐到更显著的位置,该过程可应用于多种复杂的场景,且可以根据不同场景下的不同操作信息产生相应的序列方案,提高了对于用户推荐过程的精确性,提高了用户体验。

本申请实施例还提供了一种应用于推荐系统的模型训练装置,请参阅图8,图8是本申请实施例提供的另一种模型训练装置的结构示意图,该模型训练装置800可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(centralprocessingunits,cpu)822(例如,一个或一个以上处理器)和存储器832,一个或一个以上存储应用程序842或数据844的存储介质830(例如一个或一个以上海量存储设备)。其中,存储器832和存储介质830可以是短暂存储或持久存储。存储在存储介质830的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对模型训练装置中的一系列指令操作。更进一步地,中央处理器822可以设置为与存储介质830通信,在模型训练装置800上执行存储介质830中的一系列指令操作。

模型训练装置800还可以包括一个或一个以上电源826,一个或一个以上有线或无线网络接口850,一个或一个以上输入输出接口858,和/或,一个或一个以上操作系统841,例如windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm等等。

上述实施例中由模型训练装置所执行的步骤可以基于该图8所示的模型训练装置结构。

本申请实施例中还提供一种计算机可读存储介质,该计算机可读存储介质中存储有机器学习指令,当其在计算机上运行时,使得计算机执行如前述图2至图3所示实施例描述的方法中模型训练装置所执行的步骤。

本申请实施例中还提供一种包括机器学习指令的计算机程序产品,当其在计算机上运行时,使得计算机执行如前述图2至图3所示实施例描述的方法中模型训练装置所执行的步骤。

本申请实施例还提供了一种机器学习系统,所述机器学习系统可以包含图7所描述实施例中的模型训练装置,或者图8所描述的模型训练装置。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,模型训练装置,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1