提供商品推荐信息的方法、装置及电子设备与流程

文档序号:32478629发布日期:2022-12-09 20:10阅读:33来源:国知局
提供商品推荐信息的方法、装置及电子设备与流程

1.本技术涉及信息推荐技术领域,特别是涉及提供商品推荐信息的方法、装置及电子设备。


背景技术:

2.个性化推荐有助于将用户与符合用户兴趣的商品联系起来,其对于旅行相关的商品推荐至关重要。现有技术中,虽然在个性化推荐方面已经取得了很大的进展,但是,大部分的推荐系统都是基于用户的历史行为进行相似性或者相关性推荐。例如,假设某用户历史浏览过某酒店,则将与该酒店相似或相关的其他商品进行推荐。但是,在对旅行相关的商品进行推荐时,如果简单的按照该方式确定推荐商品,则在推荐结果的准确性上会较难得到保证。


技术实现要素:

3.本技术提供了提供商品推荐信息的方法、装置及电子设备,可以提升推荐结果的准确性,更好地为旅行服务类商品的需求者用户提供个性化的服务。
4.本技术提供了如下方案:
5.一种提供商品推荐信息的方法,包括:
6.建立聚类模型,所述聚类模型用于对数据样本进行聚类,并根据聚类结果确定多个场景类别;所述数据样本包括:用户-商品二元组;
7.针对所述多个场景类别分别建立用户偏好模型,所述用户偏好模型用于对用户在对应场景类别下对商品执行目标行为的概率进行预测;
8.利用训练数据样本对所述聚类模型以及用户偏好模型进行交替训练,直到目标损失函数达到目标条件,所述目标损失函数是通过将聚类模型部分的第一损失函数与用户偏好模型部分的第二损失函数进行融合后获得;
9.在向目标用户进行目标商品的推荐时,将所述目标用户与目标商品组成的二元组作为待预测的数据样本,利用训练完成的聚类模型将该待预测的数据样本分配到对应的场景类别下,利用训练完成的用户偏好模型,预测出所述目标用户在对应场景类别下对所述目标商品执行所述目标行为的概率,以便根据预测结果提供商品推荐结果。
10.其中,所述聚类模型用于通过无监督学习的方式对数据样本进行聚类。
11.其中,所述用户偏好模型中还包括用户意图感知模块,用于对用户在对应场景类别下对商品执行所述目标行为的意图类别偏好进行预测,以便基于意图类别偏好的预测结果,确定用户在对应场景类别下对商品执行所述目标行为的概率。
12.其中,所述用户意图感知模块具体用于:
13.针对各数据样本,分别对用户在对应场景类别下对已执行过目标行为的商品重复执行所述目标行为的第一概率,或者,对未执行过目标行为的商品进行探索并执行所述目标行为的第二概率,以便根据所述第一概率或第二概率将各样本确定为第一意图类别或第
二意图类别;
14.根据各数据样本对应的第一意图类别或第二意图类别,确定用户在对应场景类别下对商品执行所述目标行为的第一意图类别偏好得分以及第二意图类别偏好得分,以便根据第一概率与第一意图类别偏好得分的乘积,或者第二概率与第二意图类别偏好得分的乘积,预测出用户在对应场景类别下对商品执行目标行为的概率。
15.其中,将根据用户意图感知模块构造的第三损失函数作为所述目标损失函数的辅助损失函数。
16.其中,在对所述用户偏好模型进行训练时,所述训练样本中的标注信息还包括:用户在对对应商品产生目标行为时的意图类别标注值;
17.所述第三损失函数包括:根据所述用户意图感知模块输出的意图类别预测结果与意图类别标注值之间的差值建立的损失函数。
18.其中,所述第一损失函数包括:根据训练样本的特征向量与聚类模型为其预测出的场景类别质心之间的距离建立的损失函数;其中,所述场景类别质心是可训练的。
19.其中,利用可训练的空间映射矩阵,在变换后的子空间中测量样本的特征向量与聚类模型为其预测出的场景类别质心之间的距离,并建立所述第一损失函数;所述空间映射矩阵用于确定不同的特征维度对场景类别划分的影响权重。
20.其中,在对所述用户偏好模型进行训练时,所述训练样本中还包括用户-商品二元组的标注信息,所述标注信息包括用户是否对商品执行目标行为的行为标注值;
21.所述第二损失函数包括:根据用户偏好模型为训练样本输出的概率预测结果与对应的行为标注值之间的差值建立的损失函数。
22.其中,还包括:
23.获取所述数据样本中的用户-商品二元组的用户特征、商品特征以及产生数据时的场景上下文特征,并组合成所述数据样本的特征向量,以用于作为聚类模型以及用户偏好模型的输入信息。
24.其中,所述根据预测结果提供商品推荐结果,包括:
25.利用训练完成的聚类模型将确定待预测的数据样本分别属于多个场景类别的概率;
26.利用训练完成的用户偏好模型,分别预测出所述目标用户在多个场景类别下对所述目标商品执行所述目标行为的概率;
27.通过综合所述待预测的数据样本分别属于多个场景类别的概率,以及目标用户在多个场景类别下对所述目标商品执行所述目标行为的概率,确定所述目标用户对所述目标商品执行所述目标行为的概率;
28.根据所述目标用户分别对多个目标商品执行所述目标行为的概率,对所述多个目标商品进行排序后提供所述商品推荐结果。
29.一种提供商品推荐信息的装置,包括:
30.聚类模型建立单元,用于建立聚类模型,所述聚类模型用于对数据样本进行聚类,并根据聚类结果确定多个场景类别;所述数据样本包括:用户-商品二元组;
31.用户偏好模型建立单元,用于针对所述多个场景类别分别建立用户偏好模型,所述用户偏好模型用于对用户在对应场景类别下对商品执行目标行为的概率进行预测;
32.训练单元,用于利用训练数据样本对所述聚类模型以及用户偏好模型进行交替训练,直到目标损失函数达到目标条件,所述目标损失函数是通过将聚类模型部分的第一损失函数与用户偏好模型部分的第二损失函数进行融合后获得;
33.预测单元,用于在向目标用户进行目标商品的推荐时,将所述目标用户与目标商品组成的二元组作为待预测的数据样本,利用训练完成的聚类模型将该待预测的数据样本分配到对应的场景类别下,利用训练完成的用户偏好模型,预测出所述目标用户在对应场景类别下对所述目标商品执行所述目标行为的概率,并根据预测结果提供商品推荐结果。
34.一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述任一项所述的方法的步骤。
35.一种电子设备,包括:
36.一个或多个处理器;以及
37.与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行前述任一项所述的方法的步骤。
38.根据本技术提供的具体实施例,本技术公开了以下技术效果:
39.通过本技术实施例提供的方案,可以建立聚类模型,并从数据样本中学习到场景划分方式,从而可以聚类出多个场景类别,并将数据样本分配到具体的场景类别中。另外,还可以针对所述多个场景类别分别建立用户偏好模型,以用于对用户在对应场景类别下对商品执行目标行为的概率进行预测。在进行模型训练时,可以利用训练数据样本对所述聚类模型以及用户偏好模型进行交替训练,并通过将聚类模型部分的第一损失函数与用户偏好模型部分的第二损失函数进行融合后获得目标损失函数。这样,在向目标用户进行目标商品的推荐时,可以利用训练完成的聚类模型以及用户偏好模型,预测出所述目标用户对所述目标商品执行所述目标行为的概率,并根据多个目标商品对应的概率预测结果进行排序后提供商品推荐结果。通过这种方式,能够区分不同的场景类别进行商品推荐,并且,通过对不同场景进行差异化的用户偏好模型建模,并通过将聚类模型与用户偏好模型进行交替式训练,将两部分的损失函数相融合,从而提升两部分训练目标的一致性,以此提升推荐系统在商品推荐上的表现,更好地为旅行服务类商品的需求者用户提供个性化的服务。
40.在优选的实施方式下,可以使用基于无监督学习的聚类算法实现场景类别的划分,这样,具体的场景类别并不是通过人为定义的方式进行划分的,而是可以自适应地学习数据样本中包括的不同推荐场景。
41.另外,针对用户在选择酒店等旅行服务类商品时,在不同场景类别下表现出的行为心智上的明显差异,还可以在用户偏好模型部分还可以包括意图感知模块,使得用户偏好模型在预测用户在具体场景类别下对商品执行目标行为的概率的过程中,还可以进行用户在具体场景类别下的意图偏好等信息,以帮助获得更准确的预测结果。另外,还可以基于意图感知模块提供辅助的损失函数,使得模型训练过程中,还可以通过对意图预测的监督,提升模型训练效果。
42.当然,实施本技术的任一产品并不一定需要同时达到以上所述的所有优点。
附图说明
43.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例中所
需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
44.图1是本技术实施例提供的系统架构的示意图;
45.图2是本技术实施例提供的方法的流程图;
46.图3是本技术实施例提供的算法模块的示意图;
47.图4是本技术实施例提供的装置的示意图;
48.图5是本技术实施例提供的电子设备的示意图。
具体实施方式
49.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本技术保护的范围。
50.为了便于理解本技术实施例提供的技术方案,首先需要说明的是,本技术发明人在实现本技术的过程中发现,现有的商品推荐系统之所以难以对旅行类商品给出准确的推荐结果,一个很重要的原因在于,现有的大部分推荐系统在很大程度上忽略了用户行为(例如,浏览、点击、购买等)中潜在的多场景特征。例如,基于旅行类商品信息服务系统中的数据上的经验学习发现,根据用户访问旅行类商品信息服务系统时的访问入口、时间、位置等的不同,用户所需要的商品往往都是不同的。例如,如果以关联的支付系统作为访问入口访问旅行类商品信息服务系统,则用户对旅行类商品的诉求关注点可能是低价;如果直接通过旅行类商品信息服务系统的应用程序客户端进行访问,则用户对旅行类商品的诉求关注点可能是高品质,等等;或者,如果用户是在工作时间访问旅行类商品信息服务系统,或者进行酒店等旅行类商品的搜索等,则更多的原因可能是需要出差,此时,用户可能更喜欢复购以前入住过的酒店;如果是在非工作时间访问旅行类商品信息服务系统,则可能是需要外出度假,此时用户可能需要探索新的酒店,等等。可见,在不同的场景下,用户的诉求(或称行为心智)会有着很大的差别,如果能够识别出具体的场景,并根据用户在具体场景下通常所具有的行为性质进行商品推荐,则有利于提升商品推荐的准确性。
51.为了达到上述目的,一种可能的实现方式是,预先人为定义出多种场景,例如,根据预订日期是否与入住日期相同以及目的地城市是否与用户出发城市相同,可以将用户的酒店预订数据归纳为四种场景:当天同城,当天异地,非当天同城,非当天异地。然后,分别根据各种场景进行旅行类商品的推荐。但是,这种方式下,由于其前提是假设各种场景是明确给出的,因此当这些明确信息不可得时效果会降低。另一个简单的解决方案是手动和凭经验定义与示例类似的场景。然而,这种手工做法效率低且不够准确,可能会阻碍下游推荐任务。
52.针对上述情况,在本技术实施例中,还提供了另一种解决方案,具体的,首先可以建立场景聚类模型,使其可以通过无监督的方式自适应地学习数据样本(用户-商品二元组)中的不同推荐场景类别,并且可以对不同场景类别进行差异化建模,以用于对用户在各种场景类别下对具体商品执行目标行为(例如,点击或者购买等)的概率,再根据该预测结
果对推荐商品进行排序,从而提升推荐系统在旅行商品推荐上的表现,更好地为旅行用户提供个性化的服务。
53.也就是说,在本技术实施例中,可以通过聚类模型对训练数据样本进行聚类,从而得到多个场景类别,然后再分别为聚类得到的各个场景类别建立用户偏好模型,以学习用户在各场景类别下对商品的行为偏好。另外,关于模型的训练,一种方式可以是单独对聚类模型进行多轮训练,通过聚类结果得到多个场景类别后,再单独对各个场景类别的用户偏好模型进行训练。但是,这种方式下,由于聚类模型与用户偏好模型是单独训练的,因此,难以使得两者之间产生关联。而实际上,这两种模型之间其实是相互影响的,并且这种相互影响的关系也能够促使双方获得更准确的学习结果。
54.因此,在本技术实施例中,可以对聚类模型以及用户偏好模型进行交替式训练,也即,在每一轮迭代过程中,首先通过聚类模型得到聚类结果,然后,用户偏好模型基于该聚类结果得到行为预测结果,再以损失函数作为监督,开始下一轮迭代,再下一轮迭代中,仍然首先通过聚类模型得到新的聚类结果,然后用户偏好模型基于该新的聚类结果重新得到行为预测结果,以此类推,直到目标损失函数达到目标条件(例如,函数值最小)即可停止迭代。其中,为了更好地体现聚类模型与用户偏好模型之间的相关性,可以将聚类模型部分的损失函数,与用户偏好模型部分的损失函数相融合,得到目标损失函数,进而可以最小化目标损失函数的函数值为目标,对聚类模型以及用户偏好模型进行交替式训练。
55.另外,本技术实施例还充分考虑了旅行类商品尤其是酒店服务类商品自身的特点,在用户偏好模型中实现用户意图识别模块,以用于对用户在各个场景类别下的行为心智进行预测。例如,在出差等场景下,用户在购买酒店服务类商品时,通常会体现出比较明显的“复购”心智,等等。也就是说,用户在不同场景类别下的行为心智差异显著,本技术实施例中重点关注不同场景类别下的用户重复执行某目标行为(例如,“复购”)意图的差异。在每个场景类别下,通过用户意图感知模块首先推断用户的意图类别,例如,用户是否大概率重复购买之前购买过的酒店服务商品,等等。同时,还可以将用户意图识别模块产生的损失函数作为前述目标损失函数的辅助损失函数,帮助聚类模型以及用户偏好模型获得更准确的学习训练结果。
56.从系统架构角度而言,如图1所示,本技术实施例可以涉及到旅行类商品信息服务系统的服务端以及客户端,其中,服务端主要用于预先对聚类模型、用户偏好模型进行训练,完成训练之后,具体在需要向用户提供商品推荐信息时,可以根据预先配置的商品筛选策略,从商品池中筛选出部分商品,组成待推荐商品集合。然后,将用户与各个待推荐的商品组成用户-商品二元组形式的数据样本,并根据用户特征(包括用户的基础属性,还可以包括历史行为记录等)、商品特征、当前与场景相关的上下文特征(包括时间,定位信息,访问入口信息,等等),为样本生成特征向量。然后根据聚类模型确定样本所属的场景类别(可以是样本分别属于各场景类别的概率),并根据用户偏好模型预测出用户在各场景下对商品执行目标行为的概率。然后,通过综合各个场景类别对应的概率预测结果,可以得到最终的预测结果,也即,预测出用户对商品执行目标行为的概率,进而,可以根据该概率对不同商品进行排序后提供商品推荐结果。
57.下面对本技术实施例提供的具体实现方案进行详细介绍。
58.首先,本技术实施例提供了一种提供商品推荐信息的方法,参见图2,该方法可以
包括:
59.s201:建立聚类模型,所述聚类模型用于对数据样本进行聚类,并根据聚类结果确定多个场景类别;所述数据样本包括:用户-商品二元组。
60.在本技术实施例中,首先可以建立聚类模型,以用于进行从训练样本及其上下文信息中,学习出场景类别的划分方式。在优选的实施方式下,该聚类模型可以是基于无监督学习方式的聚类模型,也就是说,本技术实施例中,不需要人为定义多个场景类别,而是只需要指定需要聚类的数量即可,例如,需要聚类出6个场景类别,则聚类模型则可以根据输入的训练数据样本,聚类出6个场景类别,同时可以将各个训练数据样本分配到具体的场景类别中。具体的,同一个训练数据样本可以分配到一个场景类别中,或者,还可以确定出将同一训练数据样本按照不同的概率分配到多个不同的场景类别中,等等。在这种方式下,虽然每个场景类别可能不具有人类可理解的含义,但是,划分到同一场景类别或者对同一场景类别归属度比较高的样本之间会具有共同的特征。
61.其中,在本技术实施例中,可以以用户-商品二元组作为具体的训练数据样本。这种二元组可以是根据多个用户对应的商品曝光记录等进行收集获得。例如,只要曾经想某用户展示过某商品,无论是否产生点击、购买等行为,都可以作为训练数据样本进行收集。其中,关于收集到的多个用户-商品二元组,可以分别获取其中用户的用户特征、商品的商品特征,另外还可以收集到具体的数据产生时刻对应的场景上下文信息,例如,包括时间,定位,访问入口,等等。之后,可以基于上述特征信息,为具体的训练数据样本生成特征向量,可以将这种特征向量作为聚类模型的输入,以用于进行场景聚类,也即,可以在基于过往用户数据上下文信息的自动场景学习中,通过无监督的聚类方法,将每个用户-商品二元组分配到合适的场景中。
62.例如,具体在聚类的过程中,可以由需求方提出所需的场景类别的数量,具体的聚类模型在开始进行聚类时,可以为各场景类别提供初始化的向量(可以随机生成)作为场景的初始中心点,对于第一个数据样本,通过计算与初始化向量的距离,分配到格式的场景中。后续随着分配到同一场景类别中的样本的增多,场景中心也可以发生变化,等等。
63.其中,在对模型进行训练的过程中,还会涉及到损失函数的建立,具体的,可以根据训练样本的特征向量与聚类模型为其预测出的场景类别质心之间的距离来建立损失函数(可以称为第一损失函数),其中,场景类别质心是可训练的。具体实现时,聚类模型中关于场景划分方式的学习又可以分为两类:硬划分(hard version)和软划分(soft version),对于两类划分方式,具体的损失函数公式可以有所区别。
64.关于硬划分(hard version):是指每个数据样本都被分配给唯一一个场景。假设c1,...,ck是k个场景的质心(也即,场景的聚类中心点),此时,可以通过最小化以下损失函数的函数值来识别每个数据样本到不同的场景类别的分配方式:
[0065][0066]
其中,c=[c1,...,ck]是场景质心矩阵,ti是one-hot的指示向量用来标记样本属于的场景(例如:有三个场景,[0,0,1]就表示样本属于第三个场景),n是所有样本的数量,函数d表示欧几里得距离,w是可训练的空间映射矩阵。这样,可以在变换后的子空间中测量
数据样本与其各自质心之间的欧几里得距离。这样做的原因是在于:在确定可能对推荐任务有益的场景划分时,可以对不同的特征维度进行不同的加权(权重是可学习的),这也与联合因子分析和潜在聚类的工作思想相一致。
[0067]
软划分(soft version):在软划分版本中,每个数据样本都可以以一定的概率分配给所有场景类别。在这种情况下,指示向量ti是一个自由度为(k-1)的k维向量,其中第k个维度表示该样本属于第k个场景的概率。实际中用样本和每个场景质心距离的归一化值来计算这个概率,即:
[0068][0069]
然后通过最小化以下损失函数的函数值来学习场景划分:
[0070][0071]
其中,c=[c1,...,ck]是场景质心矩阵,ti是一个概率分布形式的指示向量,n是所有样本的数量,函数d表示欧几里得距离,w是可训练的映射矩阵。在软划分版本中,数据样本将以一定概率被分配到k个场景,这个概率表示该样本属于该场景的隶属度。
[0072]
s202:针对所述多个场景类别分别建立用户偏好模型,所述用户偏好模型用于对用户在对应场景类别下对商品执行目标行为的概率进行预测。
[0073]
在聚类模型将数据样本分配到适合的场景类别后,得到多个场景类别,然后可以为多个场景类别分别建立用户偏好模型,该用户偏好模型可以用于对用户在对应场景类别下对商品执行目标行为的概率进行预测。例如,对于某用户-商品二元组,可以预测该用户点击或购买这个商品的概率,等等。其中,分别为各个场景类别建立的用户偏好模型,可以具有相同的模型结构,当然在完成训练之后,各自的参数训练结果可以不同。
[0074]
需要说明的是,关于用户偏好模型部分,在训练时,同样可以使用用户-商品二元组形式的样本作为训练数据样本,但是与聚类模型部分不同的是,训练数据样本中可以包括一些标注信息,包括用户是否对商品执行了目标行为的行为标注信息。例如,如果某用户-商品二元组中,该用户对该商品进行了购买或者点击等目标行为,则可以标注的标签可以为1,否则可以标注为0,等等。这样,关于用户偏好模型部分的训练,可以通过有监督的方式来进行。相应的,具体的损失函数可以是根据用户偏好模型为训练样本输出的概率预测结果与对应的行为标注值之间的差值建立的损失函数。例如,具体的损失函数(可以称为第二损失函数)可以通过以下交叉熵来表达:
[0075][0076]
其中,是用户偏好模型预测出的用户对商品执行目标行为的概率,y为行为标注值,也即真实值。具体实现时,可以以最小化上述损失函数的函数值为目标,对用户偏好模型进行训练。
[0077]
s203:利用训练样本对所述聚类模型以及用户偏好模型进行交替训练,直到目标损失函数达到目标条件,所述目标损失函数是通过将聚类模型部分的第一损失函数与用户
偏好模型部分的第二损失函数进行融合后获得。
[0078]
在建立了聚类模型以及用户偏好模型之后,在本技术实施例中,可以利用训练样本对所述聚类模型以及用户偏好模型进行交替训练,直到目标损失函数达到目标条件。其中,关于具体的训练数据样本,由于是多个用户-商品二元组,因此,在输入到模型之前,首先还可以为具体的用户-商品二元组生成特征向量,将特征向量参与到具体的计算中。其中,在一种具体的实现方式下,可以获取数据样本中的用户-商品二元组的用户特征、商品特征以及产生数据时的场景上下文特征,并组合成数据样本的特征向量,以用于作为聚类模型以及用户偏好模型的输入信息。其中,关于用户特征,具体可以包括用户的基本属性特征(如,购买力、性别、年龄等),历史行为特征(历史购买、点击过哪些商品等)。场景上下文特征具体可以包括时间、地点、天气、访问入口,等等。
[0079]
具体在交替训练时,可以将训练数据样本分为多个patch(分组),每次迭代时,可以首先使用其中一个patch的训练数据样本,对聚类模型进行训练,得到初步的场景类别聚类结果之后,可以基于该聚类结果以及同一patch的训练数据样本,对用户偏好模型进行训练,使得用户偏好模型能够为每个样本输出用户对商品执行目标行为的概率预测结果。之后,在下一轮迭代过程中,可以使用另一个patch的训练数据样本,重复上述过程,最终每个patch的训练数据样本都可以参与到训练中,直到目标损失函数达到目标条件(例如,函数值最小)。
[0080]
其中,关于目标损失函数,可以是通过将聚类模型部分的第一损失函数与用户偏好模型部分的第二损失函数进行融合后获得。例如,可以通过将前述lclu与lent相加等方式进行融合,得到目标损失函数。也就是说,在每一轮迭代过程中,可以以最小化融合后的目标损失函数的函数值为目标进行训练,从而使得聚类模型与用户偏好模型部分可以向着一致的目标方向进行训练,提升两者之间的相关性。
[0081]
另外,如前文所述,在优选的实施方式中,还可以在用户偏好模型中加入用户意图感知模块,该模块可以用于对用户在对应场景类别下对商品执行所述目标行为的意图类别偏好进行预测。这样,在具体的数据样本进入到用户偏好模型后,可以首先通过用户意图感知模块预测用户在当前场景类别下,对具体商品是否具有某种意图,然后,在具体的意图感知结果的基础上,给用户对商品执行目标行为的概率进行打分,例如,预测用户购买或者点击这个酒店服务类商品的概率,等等。具体的,意图类别可以根据实际需求而定,例如,在酒店服务等类别的商品推荐场景中,具体的意图类别可以分为“复购”与“探索”两种。其中,所谓的“复购”,就是用户对已经购买/点击过的商品进行重复购买/点击,“探索”就是指用户之前没有购买/点击过某商品,在探索的过程中,对该商品进行购买/点击,等等。
[0082]
具体实现时,假设用于意图类别划分为“复购”与“探索”两类,则用户意图感知模块可以由三个组件组成:1)意图推理层,用于计算数据样本中用户对商品进行复购等意图的概率,并依此预测如果用户对该商品执行目标行为,则属于何种意图类别,例如,是属于复购行为还是探索行为(即购买未曾消费过的商品,或者点击未曾查看过的商品,等等);2)复购层,如意图推理层输出为复购行为,输出用户对所有已消费过的商品的偏好得分;3)探索层,如意图推理层输出为探索行为,输出用户对未消费过的商品的偏好得分。
[0083]
也就是说,针对各数据样本,可以分别对用户在对应场景类别下对已执行过目标行为的商品重复执行所述目标行为的第一概率,或者,对未执行过目标行为的商品进行探
索并执行所述目标行为的第二概率,以便根据所述第一概率或第二概率将各样本确定为第一意图类别或第二意图类别。例如,如果第一概率大于第二概率,则属于第一意图类别,否则属于第二意图类别,等等。之后,可以根据各数据样本对应的第一类别意图或第二类别意图,确定用户在对应场景类别下对商品执行所述目标行为的第一意图类别偏好得分以及第二意图偏好得分。通过将第一概率与第一意图类别偏好得分的乘积,或者,第二概率与第二意图类别偏好得分的乘积,可以得到用户在具体场景类别下对同一样本中的商品执行目标行为的概率。
[0084]
具体的,可以使用多层感知机拟合用户“复购”的概率pr,相应的,1-pr表示用户“探索”的概率,该多层感知机的输入信息可以不包括商品特征。类似地,复购层与探索层也均可以使用多层感知机进行用户偏好得分的计算,但是,该多层感知机的输入信息需要包括商品特征作。
[0085]
另外,由于前述第二损失函数中,真实标签y仅监督最终模型输出的预测分数,这可能不足以监督用户复购意图pr的推断。因此,本技术实施例还另外提出了一个辅助损失函数(可以称为第三损失函数)来监督这种意图预测。例如,该第三损失函数可以为:
[0086][0087]
其中ri是辅助标签,它是用户在第i个数据样本发生的同一天(或者其他周期)执行了目标行为的所有商品中,用户之前执行过目标行为的商品所占的比例。辅助标签表征用户在特定日期重复执行目标行为(简称为“复购”)的实际比例。括号中的第二项是预测的所有场景的复购倾向,其中是第k个场景的复购概率。
[0088]
这样,可以联合学习多场景,通过最小化以下最终的目标损失函数来推断复购意图和用户对目标商品i的偏好:
[0089]
l=l
ent
+l
clu
+βl
aux
[0090]
其中,β是辅助损失函数的权重。
[0091]
具体在通过交替优化的方式进行模型训练的过程中,可以通过sgd(随机梯度下降法)的思想来最小化上述目标损失函数。具体的,前述模型中共有三个变量块,即聚类质心c、投影矩阵w,以及聚类模型和用户偏好模型中的网络参数θ。
[0092]
具体在进行交替训练时,在每一轮迭代过程中,首先利用一个patch的训练数据样本对聚类模型进行训练,可以得到初步的场景类别聚类结果,此时,可以把这些场景类别固定下来,也即固定c,更新w和θ。具体的,可以通过聚类模型中的软划分版本中的反向传播来完成。在硬划分版本中,由于指示向量ti是一个离散变量,不能反向传播。此时,可以使用gumbel-softmax等技术来解决这个问题。
[0093]
这里需要说明的是,l
clu
不能反向传播以更新w,否则w将退化为零矩阵来使得l
clu
为零,可以只使用预测损失来指导找到用于聚类的最佳投影空间。
[0094]
在下一轮迭代时,则固定w和θ,更新c(也即,下一轮样本到来后要重新聚类),此时,可以用下式可以更新场景质心:
[0095]
[0096]
其中,上标中的t是训练步骤,b是batch大小,α控制应该从最后一步中减去多少质心,具体实现时,可以默认将α固定为0.2(或者其他数值)。之所以这里没有直接用传统无监督聚类的范式,是因为分布式训练的最小单位是mini-batch,可能无直接获取所有训练样本的情况,所以可以使用每个batch的质心点进行更新。
[0097]
s204:在向目标用户进行目标商品的推荐时,将所述目标用户与目标商品组成的二元组作为待预测的数据样本,利用训练完成的聚类模型将该待预测的数据样本分配到对应的场景类别下,利用训练完成的用户偏好模型,预测出所述目标用户在对应场景类别下对所述目标商品执行所述目标行为的概率,以便根据预测结果提供商品推荐结果。
[0098]
在完成聚类模型以及用户偏好模型的训练后,可以利用具体的模型,向用户进行商品推荐。具体的,可以在用户通过某入口访问商品信息服务系统(可以是旅行服务领域的商品信息服务系统,例如,某用户通过打开商品信息服务系统的应用程序客户端发起访问,等等)时,如果需要向用户进行商品推荐,则首先可以根据一些策略从大的推荐商品池中筛选出部分商品组成待推荐商品集合,然后,可以将当前用户与集合中的各个商品分别组成用户-商品二元组,并分别生成特征向量,作为模型的输入,以用于预测出用户对商品执行目标行为的概率。
[0099]
具体的,在聚类模型采用软划分的方式下,在将目标用户与目标商品组成的二元组作为待预测的数据样本后,可以首先利用训练完成的聚类模型将确定待预测的数据样本分别属于多个场景类别的概率。同时,可以利用训练完成的用户偏好模型,分别预测出所述目标用户在多个场景类别下对所述目标商品执行所述目标行为的概率。然后,可以通过综合所述待预测的数据样本分别属于多个场景类别的概率,以及目标用户在多个场景类别下对所述目标商品执行所述目标行为的概率,确定所述目标用户对所述目标商品执行所述目标行为的概率;根据所述目标用户分别对多个目标商品执行所述目标行为的概率,对所述多个目标商品进行排序后提供所述商品推荐结果。其中,在预测出目标用户在多个场景类别下对所述目标商品执行所述目标行为的概率的过程中,还可以首先对目标用户在具体场景类别下的意图类别进行预测,根据目标用户在对一个场景类别下的意图类别的偏好,预测出目标用户在具体场景类别下对所述目标商品执行所述目标行为的概率。
[0100]
例如,如图3所示,对于具体的用户-商品二元组组成的数据样本,可以根据商品信息、用户历史行为记录、用户基本属性信息、当前上下文信息(包括时间、地点、天气、访问入口,等等),为数据样本生成特征向量,例如,假设对于当前用户与商品i组成的二元组,生成的向量为xi。然后可以输入到多场景聚类模型中,由于该模型已经完成训练,各个场景类别的聚类中心已经固定,因此,可以根据当前数据样本的特征向量分别与各场景类别的聚类中心的距离等,确定出特征向量所述的场景类别,或者分别属于各场景类别的概率,假设分别为t
1,i
、t
2,i
、t
3,i
。另外,还可以将xi输入到每个场景类别分别对应的用户偏好模型中,分别通过其中的意图感知模块进行意图感知。其中,在意图感知模块,可以通过意图推理层,推理出用户对商品进行复购的概率pr,或者探索的概率1-pr。另外,还可以判断商品i是否位于当前用户曾经执行过目标行为的集合中,如果是,则可以进入到复购层,输出用户在当前场景下对商品进行复购的偏好得分sr;否则,输入到探索层,输出用户在当前场景下对商品进行探索的偏好得分se。然后,通过sr*pr,或者se*(1-pr),可以得到用户在各场景类别下对商品执行目标行为的概率之后,再通过以下方式,计算得到最终预测出的当前用户对商
品i执行目标行为的概率:
[0101][0102]
在分别得到当前用户对各个待推荐商品执行目标行为的概率后,则可以根据该概率对各个待推荐商品进行排序,然后,可以按照排序结果提供商品推荐结果,例如,可以将排序在前n位的商品进行推荐,等等。
[0103]
总之,通过本技术实施例提供的方案,可以建立聚类模型,并从数据样本中学习到场景划分方式,从而可以聚类出多个场景类别,并将数据样本分配到具体的场景类别中。另外,还可以针对所述多个场景类别分别建立用户偏好模型,以用于对用户在对应场景类别下对商品执行目标行为的概率进行预测。在进行模型训练时,可以利用训练数据样本对所述聚类模型以及用户偏好模型进行交替训练,并通过将聚类模型部分的第一损失函数与用户偏好模型部分的第二损失函数进行融合后获得目标损失函数。这样,在向目标用户进行目标商品的推荐时,可以利用训练完成的聚类模型以及用户偏好模型,预测出所述目标用户对所述目标商品执行所述目标行为的概率,并根据多个目标商品对应的概率预测结果进行排序后提供商品推荐结果。通过这种方式,能够区分不同的场景类别进行商品推荐,并且,通过对不同场景进行差异化的用户偏好模型建模,并通过将聚类模型与用户偏好模型进行交替式训练,将两部分的损失函数相融合,从而提升两部分训练目标的一致性,以此提升推荐系统在商品推荐上的表现,更好地为旅行服务类商品的需求者用户提供个性化的服务。
[0104]
在优选的实施方式下,可以使用基于无监督学习的聚类算法实现场景类别的划分,这样,具体的场景类别并不是通过人为定义的方式进行划分的,而是可以自适应地学习数据样本中包括的不同推荐场景。
[0105]
另外,针对用户在选择酒店等旅行服务类商品时,在不同场景类别下表现出的行为心智上的明显差异,还可以在用户偏好模型部分还可以包括意图感知模块,使得用户偏好模型在预测用户在具体场景类别下对商品执行目标行为的概率的过程中,还可以进行用户在具体场景类别下的意图偏好等信息,以帮助获得更准确的预测结果。另外,还可以基于意图感知模块提供辅助的损失函数,使得模型训练过程中,还可以通过对意图预测的监督,提升模型训练效果。
[0106]
需要说明的是,本技术实施例中可能会涉及到对用户数据的使用,在实际应用中,可以在符合所在国的适用法律法规要求的情况下(例如,用户明确同意,对用户切实通知,等),在适用法律法规允许的范围内在本文描述的方案中使用用户特定的个人数据。
[0107]
与前述方法实施例相对应,本技术实施例还提供了一种提供商品推荐信息的装置,参见图4,该装置可以包括:
[0108]
聚类模型建立单元401,用于建立聚类模型,所述聚类模型用于对数据样本进行聚类,并根据聚类结果确定多个场景类别;所述数据样本包括:用户-商品二元组;
[0109]
用户偏好模型建立单元402,用于针对所述多个场景类别分别建立用户偏好模型,所述用户偏好模型用于对用户在对应场景类别下对商品执行目标行为的概率进行预测;
[0110]
训练单元403,用于利用训练数据样本对所述聚类模型以及用户偏好模型进行交替训练,直到目标损失函数达到目标条件,所述目标损失函数是通过将聚类模型部分的第一损失函数与用户偏好模型部分的第二损失函数进行融合后获得;
[0111]
预测单元404,用于在向目标用户进行目标商品的推荐时,将所述目标用户与目标商品组成的二元组作为待预测的数据样本,利用训练完成的聚类模型将该待预测的数据样本分配到对应的场景类别下,利用训练完成的用户偏好模型,预测出所述目标用户在对应场景类别下对所述目标商品执行所述目标行为的概率,并根据预测结果提供商品推荐结果。
[0112]
其中,所述聚类模型用于通过无监督学习的方式对数据样本进行聚类。
[0113]
在优选的实施方式下,所述用户偏好模型中还包括用户意图感知模块,用于对用户在对应场景类别下对商品执行所述目标行为的意图类别偏好进行预测,以便基于意图类别偏好的预测结果,确定用户在对应场景类别下对商品执行所述目标行为的概率。
[0114]
具体的,所述用户意图感知模块具体用于:
[0115]
针对各数据样本,分别对用户在对应场景类别下对已执行过目标行为的商品重复执行所述目标行为的第一概率,或者,对未执行过目标行为的商品进行探索并执行所述目标行为的第二概率,以便根据所述第一概率或第二概率将各样本确定为第一意图类别或第二意图类别;
[0116]
根据各数据样本对应的第一意图类别或第二意图类别,确定用户在对应场景类别下对商品执行所述目标行为的第一意图类别偏好得分以及第二意图类别偏好得分,以便根据第一概率与第一意图类别偏好得分的乘积,或者第二概率与第二意图类别偏好得分的乘积,预测出用户在对应场景类别下对商品执行目标行为的概率。
[0117]
具体的,还可以将根据用户意图感知模块构造的第三损失函数作为所述目标损失函数的辅助损失函数。
[0118]
此时,在对所述用户偏好模型进行训练时,所述训练样本中的标注信息还可以包括:用户在对对应商品产生目标行为时的意图类别标注值;
[0119]
相应的,所述第三损失函数包括:根据所述用户意图感知模块输出的意图类别预测结果与意图类别标注值之间的差值建立的损失函数。
[0120]
其中,所述第一损失函数包括:根据训练样本的特征向量与聚类模型为其预测出的场景类别质心之间的距离建立的损失函数;其中,所述场景类别质心是可训练的。
[0121]
具体的,还可以利用可训练的空间映射矩阵,在变换后的子空间中测量样本的特征向量与聚类模型为其预测出的场景类别质心之间的距离,并建立所述第一损失函数;所述空间映射矩阵用于确定不同的特征维度对场景类别划分的影响权重。
[0122]
另外,在对所述用户偏好模型进行训练时,所述训练样本中还包括用户-商品二元组的标注信息,所述标注信息包括用户是否对商品执行目标行为的行为标注值;
[0123]
此时,所述第二损失函数可以包括:根据用户偏好模型为训练样本输出的概率预测结果与对应的行为标注值之间的差值建立的损失函数。
[0124]
具体实现时,该装置还可以包括:
[0125]
特征向量生成单元,用于获取所述数据样本中的用户-商品二元组的用户特征、商品特征以及产生数据时的场景上下文特征,并组合成所述数据样本的特征向量,以用于作为聚类模型以及用户偏好模型的输入信息。
[0126]
具体的,所述预测单元具体可以用于:
[0127]
利用训练完成的聚类模型将确定待预测的数据样本分别属于多个场景类别的概
率;
[0128]
利用训练完成的用户偏好模型,分别预测出所述目标用户在多个场景类别下对所述目标商品执行所述目标行为的概率;
[0129]
通过综合所述待预测的数据样本分别属于多个场景类别的概率,以及目标用户在多个场景类别下对所述目标商品执行所述目标行为的概率,确定所述目标用户对所述目标商品执行所述目标行为的概率;
[0130]
根据所述目标用户分别对多个目标商品执行所述目标行为的概率,对所述多个目标商品进行排序后提供所述商品推荐结果。
[0131]
另外,本技术实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述方法实施例中任一项所述的方法的步骤。
[0132]
以及一种电子设备,包括:
[0133]
一个或多个处理器;以及
[0134]
与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行前述方法实施例中任一项所述的方法的步骤。
[0135]
其中,图5示例性的展示出了电子设备的架构,具体可以包括处理器510,视频显示适配器511,磁盘驱动器512,输入/输出接口513,网络接口514,以及存储器520。上述处理器510、视频显示适配器511、磁盘驱动器512、输入/输出接口513、网络接口514,与存储器520之间可以通过通信总线530进行通信连接。
[0136]
其中,处理器510可以采用通用的cpu(central processing unit,处理器)、微处理器、应用专用集成电路(application specific integrated circuit,asic)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本技术所提供的技术方案。
[0137]
存储器520可以采用rom(read only memory,只读存储器)、ram(random access memory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器520可以存储用于控制电子设备500运行的操作系统521,用于控制电子设备500的低级别操作的基本输入输出系统(bios)。另外,还可以存储网页浏览器523,数据存储管理系统524,以及商品推荐信息处理系统525等等。上述商品推荐信息处理系统525就可以是本技术实施例中具体实现前述各步骤操作的应用程序。总之,在通过软件或者固件来实现本技术所提供的技术方案时,相关的程序代码保存在存储器520中,并由处理器510来调用执行。
[0138]
输入/输出接口513用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
[0139]
网络接口514用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如usb、网线等)实现通信,也可以通过无线方式(例如移动网络、wifi、蓝牙等)实现通信。
[0140]
总线530包括一通路,在设备的各个组件(例如处理器510、视频显示适配器511、磁盘驱动器512、输入/输出接口513、网络接口514,与存储器520)之间传输信息。
[0141]
需要说明的是,尽管上述设备仅示出了处理器510、视频显示适配器511、磁盘驱动
器512、输入/输出接口513、网络接口514,存储器520,总线530等,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本技术方案所必需的组件,而不必包含图中所示的全部组件。
[0142]
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例或者实施例的某些部分所述的方法。
[0143]
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0144]
以上对本技术所提供的提供商品推荐信息的方法、装置及电子设备,进行了详细介绍,本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想;同时,对于本领域的一般技术人员,依据本技术的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本技术的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1