跨场景的项目推荐方法、装置、电子设备及存储介质与流程

文档序号:18900525发布日期:2019-10-18 21:52阅读:126来源:国知局
跨场景的项目推荐方法、装置、电子设备及存储介质与流程

本申请涉及计算机技术领域,特别是涉及一种跨场景的项目推荐方法、装置、电子设备及计算机可读存储介质。



背景技术:

推荐作为解决信息过载和挖掘用户潜在需求的技术手段,在各大网络平台中发挥着重要的作用。通常,网络平台上包括大量匹配不同场景的项目,例如,匹配餐饮场景的餐饮项目、匹配旅游场景的旅游项目、匹配休闲娱乐场景的娱乐项目等。为了便于区域,通常将用户当前浏览的项目所匹配的场景之外的其他项目称为综合项目。现有技术中,常见的项目推荐方式有两种:第一种,为用户推荐与当前浏览项目匹配相同场景的其他项目;为用户推荐与当前浏览项目匹配不同场景其他项目,即为用户推荐综合项目。为用户推荐综合项目可以形成全面的现有技术中,为用户推荐综合项目时,通常根据平台的推广策略或运营策略预先设置打包售卖的项目,然后将与当前浏览项目打包的综合项目推荐给用户。

然而,通过这种方法打包的综合项目,并没有反应用户的真正需求,对用户获取项目的效率的提升作用很小。如何确定与某一项目打包的综合项目,以提升用户获取项目的效率,是网络平台需要解决的一个重要问题。



技术实现要素:

本申请提供一种跨场景的项目推荐方法,有助于提升用户获取项目的效率。

为了解决上述问题,第一方面,本申请实施例提供了一种跨场景的项目推荐方法,包括:

根据用户历史行为数据,确定预设用户行为对应的若干第一项目序列;

分别对每个所述第一项目序列进行拆分、重组处理,确定若干第二项目序列,使得每个所述第二项目序列中相邻的两个项目匹配不同场景;

基于所述若干第二项目序列,训练项目词向量模型;

通过所述项目词向量模型,确定目标项目的第一词向量,以及与所述目标项目匹配不同场景的待推荐项目的第二词向量;

根据所述第一词向量分别和各所述第二次词向量的相似度,确定针对所述目标项目推荐的所述待推荐项目。

第二方面,本申请实施例提供了一种跨场景的项目推荐装置,包括:

第一项目序列确定模块,用于根据用户历史行为数据,确定预设用户行为对应的若干第一项目序列;

第二项目序列确定模块,用于分别对每个所述第一项目序列进行拆分、重组处理,确定若干第二项目序列,使得每个所述第二项目序列中相邻的两个项目匹配不同场景;

项目词向量模型训练模块,用于基于所述若干第二项目序列,训练项目词向量模型;

项目词向量确定模块,用于通过所述项目词向量模型,确定目标项目的第一词向量,以及与所述目标项目匹配不同场景的待推荐项目的第二词向量;

待推荐项目确定模块,用于根据所述第一词向量分别和各所述第二次词向量的相似度,确定针对所述目标项目推荐的所述待推荐项目。

第三方面,本申请实施例还公开了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本申请实施例所述的跨场景的项目推荐方法。

第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时本申请实施例公开的跨场景的项目推荐方法的步骤。

本申请实施例公开的跨场景的项目推荐方法,通过根据用户历史行为数据,确定预设用户行为对应的若干第一项目序列;分别对每个所述第一项目序列进行拆分、重组处理,确定若干第二项目序列,使得每个所述第二项目序列中相邻的两个项目匹配不同场景;基于所述若干第二项目序列,训练项目词向量模型;通过所述项目词向量模型,确定目标项目的第一词向量,以及与所述目标项目匹配不同场景的待推荐项目的第二词向量;根据所述第一词向量分别和各所述第二次词向量的相似度,确定针对所述目标项目推荐的所述待推荐项目,使得推荐的跨场景的项目更加符合用户的需求,有助于提升用户获取项目的效率。

附图说明

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

图1是本申请实施例一的跨场景的项目推荐方法流程图;

图2是本申请实施例一种生成的加权有向图示意图;

图3是本申请实施例一种序列拆分、重组示意图;

图4是本申请实施例二的跨场景的项目推荐装置结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

实施例一

本申请实施例公开的一种跨场景的项目推荐方法,如图1所示,该方法包括:步骤110至步骤150。

步骤110,根据用户历史行为数据,确定预设用户行为对应的若干第一项目序列。

在申请的一些实施例中所述的项目可以电子商务平台的餐饮产品、酒店、门票、美容项目、娱乐项目等等。

本申请实施例中所述的预设用户行为包括:用户的购买、点击、浏览、收藏等行为中的任意一种或多种行为。例如,用户1点击了项目a之后,又点击了项目b,之后,用户1购买了项目c,则平台将记录一条用户历史行为数据,该条用户历史行为数据包括用户1的点击和购买行为对应的项目a、项目b和项目c构成的第一项目序列,该第一项目序列可以表示为:{项目a,项目b,项目c}。

在申请实施例中所述的第一项目序列,指用户在一次历史行为中执行所述预设用户行为时依次访问的项目按照被操作的顺序从前向后排列后构成的项目序列。用户的多次预设用户行为将生成多个第一项目序列。

在申请的一些实施例中,根据用户历史行为数据,确定预设用户行为对应的若干第一项目序列的步骤,包括:根据用户针对平台上各项目的历史行为数据构建加权有向图,其中,所述加权有向图的每个顶点分别对应一个所述项目,所述加权有向图的边连接一次访问行为中所访问的项目对应的顶点,所述边的权重根据该边连接的两个顶点对应的项目之间的关系确定;利用加权随机游走算法遍历所述加权有向图,确定若干第一项目序列。

例如,首先获取平台中若干用户的历史行为数据,然后,确定在用户的历史行为数据中出现的所有项目。之后,基于用户的历史行为数据构建一个记录项目之间关系的加权有向图。在构建该加权有向图时,以项目作为顶点(也可以称为节点),通过有向边将在同一条历史行为数据中出现的项目对应的顶点连接起来。

以平台包括9个项目举例,这9个项目分别用a至i共9个英文字母表示表示,其中,英文字母a至e表示的项目为餐项目(即餐饮场景的项目),英文字母f至i表示的项目为综项目(即除餐饮场景意外的项目,成为综合项目)。如果用户2的历史行为数据记录的信息包括:用户2点击了项目a之后,又点击了项目f,之后,用户2购买了项目c;用户2点击了项目a之后,又依次点击了项目g、项目i,之后,用户2购买了项目h;如果用户3的历史行为数据记录的信息包括:用户3依次点击了项目b、项目c和项目h;用户3依次点击了项目c、项目h、项目e和项目g。则根据用户2和用户3的上述历史行为数据可以得到的第一项目序列包括:{a,f,c}、{a,g,i,h}、{b,c,h}和{c,h,e,g}。以项目作为顶点,通过有向边将在同一条历史行为数据中出现的项目对应的顶点连接起来构建得到如图2所示的加权有向图。其中,有向边的方向表示用户操作的该有向边的顶点对应的项目的顺序。

在申请的一些优选实施例中,所述边的权重根据该边连接的两个顶点对应的项目之间的关系确定,包括:所述边的权重根据该边连接的两个顶点对应的项目的共同访问次数和/或距离确定。

例如,所述边的权重根据该边连接的两个顶点对应的项目的共同访问次数确定。以wij表示顶点i和j之间的边的权重为例,可以通过公式计算wij的取值,其中,n(i)表示顶点i的出度顶点组成的集合,其中,vij表示顶点i和j的共同访问次数,∑j∈n(i)vij表示与顶点i连接的所有顶点j与顶点i的共同访问次数之和。

再例如,所述边的权重根据该边连接的两个顶点对应的项目之间的距离确定。当该边连接的两个顶点对应的项目之间的距离越大时,该边的权重越小,当该边连接的两个顶点对应的项目之间的距离越小时,该边的权重越大。

在申请的另一些优选实施例中,所述边的权重还可以根据其他因素确定。例如,所述边的权重根据该边连接的两个顶点对应的项目之间的场景相关性确定。当该边连接的两个顶点对应的项目之间的场景相关性越大时,该边的权重越大,当该边连接的两个顶点对应的项目之间的场景相关性越小时,该边的权重越小。其中,项目之间的场景相关性根据专家经验确定,例如,餐项目和娱乐类或住宿类的综项目之间的场景相关性大于餐项目和教育类的综项目之间的场景相关性。

在确定了项目的加权有向图之后,可以采用加权随机游走的方法确定所述加权有向图中的若干项目访问路径,根据每一条项目访问路径可以确定一个第一项目序列。按照此方法,可以得到若干第一项目序列。在利用加权随机游走算法遍历所述加权有向图时,根据边的权重决定该边被游走的概率,权重越大,游走的概率也越大,游走的概率越大,确定的包括该边的顶点对应的项目的第一项目序列越多,后续基于第一项目序列训练项目词向量模型时,将会得到更多的符合用户行为习惯的样本,可以进一步提升推荐的项目与用户的匹配度。

步骤120,分别对每个所述第一项目序列进行拆分、重组处理,确定若干第二项目序列,使得每个所述第二项目序列中相邻的两个项目匹配不同场景。

以网络平台中餐项目和综项目打包推荐的应用为例,由于平台的推荐需求是基于用户当前访问的餐项目在召回一定数量的餐项目的同时向用户推荐一定数量的综项目,落实到技术层面,实际需求是根据用户访问的餐项目,挖掘与该餐项目关联的综项目,并推荐给用户。因此,获取的用于训练词向量模型的语料时必须保证基于该语料产生的项目序列和业务保持一致,即用户实际先访问餐项目后再访问综项目,或者先访问综项目后再访问餐项目,这样才能充分挖掘访问的餐项目和综项目之间的内在联系。

然而,在上述步骤中确定了第一项目序列是用户实际访问的项目序列,存在连续访问餐项目和连续访问综项目的情况。为了和业务需求一致,需要对随机游走得到的第一项目序列进行拆分、重组处理,保证匹配相同场景的项目(如同类别属性的项目)不会连续出现。

在本申请的一些实施例中,所述分别对每个所述第一项目序列进行拆分、重组处理,确定若干第二项目序列的步骤,包括:确定一个未被拆分、重组处理的所述第一项目序列作为当前第一项目序列,并对所述当前第一项目序列执行以下操作,直至所有所述第一项目序列均被拆分、重组处理:确定所述当前第一项目序列中排在序列首的第一个项目作为当前项目;确定所述当前第一项目序列中所述当前项目的后一个项目是否与所述当前项目匹配相同场景;若是,则将所述当前项目的后一个项目从所述当前第一项目序列中移除,重新生成一个第一项目序列,同时,将所述当前项目从所述当前第一项目序列中移除,重新生成一个第一项目序列,并将所述当前第一项目序列标记为已被拆分、重组处理,跳转至所述确定一个未被拆分、重组处理的所述第一项目序列作为当前第一项目序列,并对所述当前第一项目序列执行以下操作,直至所有所述第一项目序列均被拆分、重组处理的步骤;若否,确定所述当前项目的后一个项目是否为所述当前第一项目序列中最后一个项目;若所述当前项目的后一个项目是所述当前第一项目序列中最后一个项目,则标识所述第一项目序列已经被拆分、重组处理,并将所述第一项目序列作为一个第二项目序列,之后,跳转至所述确定一个未被拆分、重组处理的所述第一项目序列作为当前第一项目序列,并对所述当前第一项目序列执行以下操作,直至所有所述第一项目序列均被拆分、重组处理的步骤;若所述当前项目的后一个项目非所述当前第一项目序列中最后一个项目,则将所述当前项目的后一个项目作为当前项目,跳转至执行确定所述当前第一项目序列中所述当前项目的后一个项目是否与所述当前项目匹配相同场景的步骤。

在本申请的一些实施例中,首先将随机游走得到的所有第一项目序列看作是未被拆分、重组处理的第一项目序列。然后,可以随机选择一个未被拆分、重组处理的第一项目序列,并对该第一项目序列进行拆分、重组处理。也可以按照游走得到所有第一项目序列的顺序,依次对每个第一项目序列进行拆分、重组处理。在本申请的一些实施例中,可以通过对已经被拆分处理过的第一项目序列设置标识(包括拆分得到的第一项目序列),以区别于未被拆分、重组处理的第一项目序列。

下面以对图2进行游走得到的一个第一项目序列{b,c,h,e,g,i}举例,详细说明对第一项目序列进行拆分、重组的技术方案。具体到本实施例而言,第一项目序列{b,c,h,e,g,i}为当前第一项目序列。

首先,确定所述当前第一项目序列(即第一项目序列{b,c,h,e,g,i})中排在序列首的第一个项目(即项目b)作为当前项目;确定所述当前第一项目序列中所述当前项目的后一个项目(即项目c)是否与所述当前项目匹配相同场景。

如前所述,项目b和项目c均表示餐项目,即项目b和项目c匹配相同场景,则将项目c从所述当前第一项目序列中移除,重新生成一个第一项目序列,即得到第一项目序列{b,h,e,g,i}。同时,将项目b从所述当前第一项目序列中移除,重新生成一个第一项目序列,即得到第一项目序列{c,h,e,g,i}。以及,将所述当前第一项目序列{b,c,h,e,g,i}标记为已被拆分、重组处理。之后,跳转至所述确定一个未被拆分、重组处理的所述第一项目序列作为当前第一项目序列,并对所述当前第一项目序列执行以下操作,直至所有所述第一项目序列均被拆分、重组处理的步骤,在未被标记为已被拆分、重组处理的所述第一项目序列中重新选择一个所述第一项目序列,重新执行拆分、重组处理。

假设下一步执行拆分、重组处理时,确定未被拆分、重组处理的所述第一项目序列{b,h,e,g,i}作为当前第一项目序列。

首先,确定所述当前第一项目序列(即第一项目序列{b,h,e,g,i})中排在序列首的第一个项目(即项目b)作为当前项目;确定所述当前第一项目序列中所述当前项目的后一个项目(即项目h)是否与所述当前项目匹配相同场景.

如前所述,项目b表示餐项目,项目h表示综项目,即项目b和项目h匹配不同场景,则继续对后面的项目场景进行判断。

首先,确定所述当前项目的后一个项目(即项目h)是否为所述当前第一项目序列中最后一个项目。具体到本实施例而言,所述当前项目的后一个项目(即项目h)不是所述当前第一项目序列中最后一个项目,则将所述当前项目的后一个项目(即项目h)作为当前项目,然后,跳转至执行确定所述当前第一项目序列中所述当前项目的后一个项目是否与所述当前项目匹配相同场景的步骤,即继续判断所述当前第一项目序列中所述当前项目(即项目h)的后一个项目(即项目e)是否匹配相同场景。

在本申请的另一些实施例中,如果所述当前项目的后一个项目为所述当前第一项目序列中最后一个项目,则确定将所述当前第一项目序列作为一个第二项目序列。并标识所述第一项目序列已经被拆分、重组处理。之后,跳转至所述确定一个未被拆分、重组处理的所述第一项目序列作为当前第一项目序列,并对所述当前第一项目序列执行以下操作,直至所有所述第一项目序列均被拆分、重组处理的步骤。

通过基于上述方法对游走得到的第一项目序列进行拆分、重组处理,可以得到若干第二项目序列。得到的第二项目序列中每个第二项目序列中的项目排列的规律为:相邻项目匹配不同场景。例如,游走得到的第一项目序列{b,c,h,e,g,i}经过拆分、重组处理之后,将得到4个第二项目序列,分别表示为:{b,h,e,g}、{b,h,e,i}、{c,h,e,g}和{c,h,e,i}。

步骤130,基于所述若干第二项目序列,训练项目词向量模型。

接下来,基于拆分、重组处理后得到的所述若干第二项目序列,,训练项目词向量模型。

word2vec是从大量文本语料中以无监督的方式学习语义知识的一种模型,它被大量地用在自然语言处理中。word2vec通过学习文本来用词向量的方式表征词的语义信息,即通过一个嵌入空间使得语义上相似的单词在该空间内距离很近。word2vec模型中,主要有skip-gram和cbow两种模型,从直观上理解,skip-gram是给定输入词来预测上下文。本申请的实施例中,以利用skip-gram算法训练项目词向量模型举例说明基于所述若干第二项目序列,训练项目词向量模型的具体技术方案。

skip-gram的整个建模过程是先基于训练数据构建一个神经网络,当这个模型训练好以后,可以通过这个模型训练数据所学得的参数,例如隐层的权重矩阵计算输入词的词向量。因此,训练模型的真正目的是获得模型基于训练数据学得的隐层权重。

具体到本实施例而言,训练项目词向量模型之前,首先需要构建训练样本。本申请实施例中的训练样本的数据来源为前述步骤得到的第二项目序列,以及平台的预设项目。用于训练项目词向量模型的正样本为第二项目序列中同时出现的匹配不同场景的项目对,如餐项目和综项目构成的项目对;用于训练项目词向量模型的负样本为匹配不同场景的,且没有同时出现的项目对。

本申请的一些实施例中,所述基于所述若干第二项目序列,训练项目词向量模型的步骤,包括:对于每个所述第二项目序列,分别执行以下操作:在所述第二项目序列中依次确定输入项目,并确定所述第二项目序列中在指定窗口范围内与所述输入项目匹配不同场景的项目分别作为所述输入项目的配对项目;根据所述输入项目和每个所述配对项目分别构建一个作为正样本的项目对;在所述若干第一项目序列中包括的项目中,逐次选择两个匹配不同场景的项目分别构建作为负样本的项目,其中,所述两个匹配不同场景的项目中最多包括一个所述第二项目序列中在所述指定窗口范围内的项目,且所述两个匹配不同场景的项目中不包括所述输入项目;基于作为正样本的所述项目对和作为负样本的所述项目对,训练项目词向量模型。具体实施时,以指定窗口对所述第二项目序列进行滑动扫描,在所述第二项目序列中依次确定输入项目,并确定所述第二项目序列中在指定窗口范围内与所述输入项目匹配不同场景的项目分别作为所述输入项目的配对项目。

本申请的一些实施例中,所述指定窗口范围可以根据需要设定,如设置为3个项目或2个项目或更多项目。优选的,所述指定窗口范围内包括两个项目。因为,本申请的第二项目序列中相邻的两个项目匹配不同场景,因此,将所述指定窗口范围设置为2时,所述指定窗口范围的每一个位置都可以得到一个项目对,即可以得到一个正样本。

下面以第二项目序列{b,h,e,g}举例,详细说明样本的确定方案。

在所述第二项目序列中依次确定输入项目,即b、h、e和g,并确定所述第二项目序列{b,h,e,g}中在指定窗口范围内与所述输入项目匹配不同场景的项目分别作为所述输入项目的配对项目。例如,项目b的配对项目为项目h、项目h的配对项目为项目b和项目e、项目e的配对项目为项目h和项目g、项目g的配对项目为项目e。之后,每个输入项目和其配对项目分别构建作为正样本的项目对,例如,可以得到项目对(b,h)、(h,b)、(h,e)、(e,h)、(e,g)和(g,e)。

项目词向量模型的输入输出单元和词的数量相同,输出表示每个词和输入词同时出现的概率,如果项目数量特别多,标识项目的词的数量会特别大,则会导致模型的网络参数特征多,每次更新全部网络参数则会导致训练非常耗时。因此skip-gram在训练词向量模型时,采用负采样的方式来更新网络参数:每个训练样本只更新其中的部分参数,通过随机选择一些数目较少的负样本(希望模型输出为0的样本)进行更新。具体到本实施例而言,我们把每个项目可以看成是一个词,为了保证负采样训练的网络参数有意义,只能采样餐综项目对以期望采样的餐和综没有关联,而采样餐餐项目对或者综综项目对实际并没有意义。即采样餐餐项目对或者综综项目对实只是说明餐项目和餐项目、综项目和综项目之间没有联系,并不能让模型学习出给定的餐项目和综项目是不是有关联。

因此,构建负样本时,可以选择在游走得到的所述第一项目序列中出现过,但在所述第二项目序列中未出现的任意两个匹配不同场景的项目,例如,选择项目i和项目a构成一个作为负样本的项目对,表示为(a,i)。还可以选择一个所述第二项目序列中的项目(如项目b)和所述第二项目序列中未出现的、且与选择的所述第二项目序列中的项目(如项目b)匹配不同场景的项目(如项目f)构成一个作为负样本的项目对,例如表示为(b,f)。

在构建了若干正样本和负样本之后,基于作为正样本的所述项目对和作为负样本的所述项目对,训练项目词向量模型。基于确定的样本训练项目词向量模型的具体技术方案参见现有技术中skip-gram算法训练word2vec模型的具体过程,本申请实施例中不再赘述。

步骤140,通过所述项目词向量模型,确定目标项目的第一词向量,以及与所述目标项目匹配不同场景的待推荐项目的第二词向量。

接下来,可以根据训练好的项目词向量模型得到平台的各餐项目和综项目的向量,从而根据向量的相似度选取相似度最高的n个(n为大于1的自然数)餐项目或综项目进行召回,形成最终的推荐候选集。本申请实施例中所述的目标项目为用户当前访问的项目,以所目标项目为餐项目a举例,,通过所述项目词向量模型可以确定餐项目a的词向量(以下称为第一词向量),进一步的,所述项目词向量模型还可以确定平台中所有与目标项目匹配不同场景的项目(如综项目)的词向量(以下称为第二词向量)。

步骤150,根据所述第一词向量分别和各所述第二次词向量的相似度,确定针对所述目标项目推荐的所述待推荐项目。

进一步的,可以采用现有技术中计算两个向量的相似度的方法,计算所述目标项目的第一词向量分别与每个所述第二词向量的相似度。之后,根据计算的到的所述相似度,选择所述相似度最大的预设数量所述待推荐项目,作为与所述目标项目打包推荐的项目。以目标项目为餐项目举例,第二词向量是综项目的词向量,因此,本步骤将确定于所述餐项目相似度最高的综项目作为推荐项目。而基于前述的词向量模型训练方法可以确定,词向量的相似度体现了不同项目共同出现的概率,词向量相似度越高,说明项目共同出现的概率越高,基于词向量相似度推荐的项目更加符合用户的需求,有效提升了推荐准确率。

本申请实施例公开的跨场景的项目推荐方法,通过根据用户历史行为数据,确定预设用户行为对应的若干第一项目序列;分别对每个所述第一项目序列进行拆分、重组处理,确定若干第二项目序列,使得每个所述第二项目序列中相邻的两个项目匹配不同场景;基于所述若干第二项目序列,训练项目词向量模型;通过所述项目词向量模型,确定目标项目的第一词向量,以及与所述目标项目匹配不同场景的待推荐项目的第二词向量;根据所述第一词向量分别和各所述第二次词向量的相似度,确定针对所述目标项目推荐的所述待推荐项目,使得推荐的跨场景的项目更加符合用户的需求,有助于提升用户获取项目的效率。本申请实施例公开的跨场景的项目推荐方法,通过对项目序列进行拆分、重组处理,得到匹配不同场景的项目间隔排列的项目序列,并基于此项目序列构建用于训练词向量模型的正样本和负样本,使得基于所述正样本和负样本训练得到的项目词向量模型更加适用于跨场景的项目推荐。

实施例二

本实施例公开的一种跨场景的项目推荐装置,如图4所示,所述装置包括:

第一项目序列确定模块410,用于根据用户历史行为数据,确定预设用户行为对应的若干第一项目序列;

第二项目序列确定模块420,用于分别对每个所述第一项目序列进行拆分、重组处理,确定若干第二项目序列,使得每个所述第二项目序列中相邻的两个项目匹配不同场景;

项目词向量模型训练模块430,用于基于所述若干第二项目序列,训练项目词向量模型;

项目词向量确定模块440,用于通过所述项目词向量模型,确定目标项目的第一词向量,以及与所述目标项目匹配不同场景的待推荐项目的第二词向量;

待推荐项目确定模块450,用于根据所述第一词向量分别和各所述第二次词向量的相似度,确定针对所述目标项目推荐的所述待推荐项目。

可选的,所述项目词向量模型训练模块430进一步用于:

对于每个所述第二项目序列,分别执行以下操作:

在所述第二项目序列中依次确定输入项目,并确定所述第二项目序列中在指定窗口范围内与所述输入项目匹配不同场景的项目分别作为所述输入项目的配对项目;

根据所述输入项目和每个所述配对项目分别构建一个作为正样本的项目对;

在所述若干第一项目序列中包括的项目中,逐次选择两个匹配不同场景的项目分别构建作为负样本的项目,其中,所述两个匹配不同场景的项目中最多包括一个所述第二项目序列中在所述指定窗口范围内的项目,且所述两个匹配不同场景的项目中不包括所述输入项目;

基于作为正样本的所述项目对和作为负样本的所述项目对,训练项目词向量模型。

在本申请的一些实施例中,所述第二项目序列确定模块420进一步用于:

确定一个未被拆分、重组处理的所述第一项目序列作为当前第一项目序列,并对所述当前第一项目序列执行以下操作,直至所有所述第一项目序列均被拆分、重组处理:

确定所述当前第一项目序列中排在序列首的第一个项目作为当前项目;

确定所述当前第一项目序列中所述当前项目的后一个项目是否与所述当前项目匹配相同场景;

若是,则将所述当前项目的后一个项目从所述当前第一项目序列中移除,重新生成一个第一项目序列,同时,将所述当前项目从所述当前第一项目序列中移除,重新生成一个第一项目序列,并将所述当前第一项目序列标记为已被拆分、重组处理,跳转至所述确定一个未被拆分、重组处理的所述第一项目序列作为当前第一项目序列,并对所述当前第一项目序列执行以下操作,直至所有所述第一项目序列均被拆分、重组处理的步骤;

若否,确定所述当前项目的后一个项目是否为所述当前第一项目序列中最后一个项目;

若所述当前项目的后一个项目是所述当前第一项目序列中最后一个项目,则标识所述第一项目序列已经被拆分、重组处理,并将所述第一项目序列作为一个第二项目序列,之后,跳转至所述确定一个未被拆分、重组处理的所述第一项目序列作为当前第一项目序列,并对所述当前第一项目序列执行以下操作,直至所有所述第一项目序列均被拆分、重组处理的步骤;

若所述当前项目的后一个项目非所述当前第一项目序列中最后一个项目,则将所述当前项目的后一个项目作为当前项目,跳转至执行确定所述当前第一项目序列中所述当前项目的后一个项目是否与所述当前项目匹配相同场景的步骤。

在本申请的一些实施例中,所述第一项目序列确定模块410进一步用于:

根据用户针对平台上各项目的历史行为数据构建加权有向图,其中,所述加权有向图的每个顶点分别对应一个所述项目,所述加权有向图的边连接一次访问行为中所访问的项目对应的顶点,所述边的权重根据该边连接的两个顶点对应的项目之间的关系确定;

利用加权随机游走算法遍历所述加权有向图,确定若干第一项目序列。

在本申请的一些实施例中,所述边的权重根据该边连接的两个顶点对应的项目之间的关系确定,包括:

所述边的权重根据该边连接的两个顶点对应的项目的共同访问次数和/或距离确定。

本申请实施例公开的跨场景的项目推荐装置,用于实现本申请实施例一中所述的跨场景的项目推荐方法的各步骤,装置的各模块的具体实施方式参见相应步骤,此处不再赘述。

本申请实施例公开的跨场景的项目推荐装置,通过根据用户历史行为数据,确定预设用户行为对应的若干第一项目序列;分别对每个所述第一项目序列进行拆分、重组处理,确定若干第二项目序列,使得每个所述第二项目序列中相邻的两个项目匹配不同场景;基于所述若干第二项目序列,训练项目词向量模型;通过所述项目词向量模型,确定目标项目的第一词向量,以及与所述目标项目匹配不同场景的待推荐项目的第二词向量;根据所述第一词向量分别和各所述第二次词向量的相似度,确定针对所述目标项目推荐的所述待推荐项目,使得推荐的跨场景的项目更加符合用户的需求,有助于提升用户获取项目的效率。本申请实施例公开的跨场景的项目推荐装置,通过对项目序列进行拆分、重组处理,得到匹配不同场景的项目间隔排列的项目序列,并基于此项目序列构建用于训练词向量模型的正样本和负样本,使得基于所述正样本和负样本训练得到的项目词向量模型更加适用于跨场景的项目推荐。

相应的,本申请还公开了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如本申请实施例一所述的跨场景的项目推荐方法。所述电子设备可以为pc机、移动终端、个人数字助理、平板电脑等。

本申请还公开了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请实施例一所述的跨场景的项目推荐方法的步骤。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上对本申请提供的一种跨场景的项目推荐方法及装置进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

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