在数字生活服务场景中构建商品向量化模型,开展精准推荐的实践

2021-06-06 09:03蔡琨闫宇谢致达叶秀泳刘松劲
中国新通信 2021年7期
关键词:矩阵向量模型

蔡琨 闫宇 谢致达 叶秀泳 刘松劲

引言:

和生活,是中国移动全力打造的一站式信息服务平台,以满足用户便捷生活为目标,为用户提供政务民生精品应用和丰富的商家优惠服务,其服务覆盖了餐饮、汽车等多个数字生活领域。本次研究旨在运用机器学习的算法框架,挖掘用户的使用行为数据,在用户使用和生活的搜索等场景中,为用户推荐关联度更高的应用,提升用户在和生活的使用体验,提高产品的订购或曝光转化率。

本文运用Embedding的方式,基于深度学习的模型框架,对数字生活平台中用户搜索行为数据、用户点击数据、用户订购数据进行整合和建模,将搜索词和数字生活服务商品构建成高维特征的向量,通过建模构建形成的向量携带的数字信息,反映出被向量化实体自身的特征和实体间的关系,我们可以方便地使用各种机器学习算法以及基于神经网络的算法开展数字生活服务商品的推荐。

一、模型介绍

通过对和生活用户数据的分析和向量化模型的迁移应用,本研究通过用户搜索词和实际搜索的商品间的关联关系,训练输出搜索词和商品两者的向量,从而计算搜索词向量与商品向量的余弦相似度,给用户推荐相似性高的数字生活商品。针对和生活的搜索场景,本文提出一种word&lifeproduct2vec模型,能够把搜索词和数字生活商品向量化,然后依据搜索词和商品的相似度排序搜索结果,使得搜索结果更合理word& lifeproduct 2vec的模型结构和上下文只有一个词的CBOW模型(图1)类似。

用户登录后搜索lifeproduct的场景,某个用户输入一个搜索词w1,和生活平台会展示一列相关的数字生活内容,然后用户从系列的展示结果中选择使用或购买了a1这个商品。这就在搜索词w1和a1之间建立了一个联系,说明a1可能是用户搜w1这个词想要找的商品,即w1与a1存在着关系。用户的每一次搜索后使用,就为我们提供了这样的一对对word与lifeproduct关系的样本。如果要把word和lifeproduct都embedding,那我们可以定义与图1类似的结构。把word作为输入,lifeproduct作为输出。模型的逻辑是:给定搜索词,预测要使用的lifeproduct。

我们运用用户的搜索日志和数字生活商品使用、订购日志,构造一个U×N矩阵W,和一个N×V矩阵W,其中U是不同的搜索词的数量,V是不同的lifeproduct数量。W与W是两个完全不同的矩阵。W的第i行记作,表示搜索词wi的向量。W的第j列记作,表示数字生活商品aj的向量。模型的输入x是搜索词的one-hot编码。隐藏层计算如下

(1)

可以看出h就是W矩阵中的第k行向量做了转置,wk是搜索词。然后给lifeproduct列表中的每个lifeproduct计算一个分数:

(2)

然后就可以通過softmax归一化成概率分布了:

(3)

和一般的神经网络一样,用反向传播去更新模型中的参数。给定搜索词wI,真实的中心词是aj*,训练的目标是最大化通过式(3)计算得到的aj*的条件概率,令目标函数为:

使用梯度下降法,把目标函数的参数求导。

(4)

其中当j=j*时tj=1,即当第j个lifeproduct是真实下载的应用时,tj为1,其余情况tj为0。ej可以理解为第j个lifeproduct的预测误差,即模型计算出的第j个lifeproduct为使用的lifeproduct的概率与它的实际概率的差。

接下来对求导,由:

根据链式法则,得:

(5)

得到输出层的参数更新公式:

(6)

其中η是学习率,上式可改写为:

(7)

观察式(7),因为ej=yj-tj,当yj>tj,更新参数时,就会减去向量h(也就是)的一部分,这样会让和的点积变小,即让远离;当yj

每次迭代,相关的搜索词和数字生活商品向量会相互加上对方,而不为相关的搜索词和数字生活商品的向量会相互减去对方。模型会让互为相关的搜索词与商品的内积越来越大,而不相关的搜索词和商品的向量内积越来越小。

模型训练完,每个word和lifeproduct都会得到一个能够反映它们之间隐含关系的向量表示。相关的word和lifeproduct会有更接近的向量表示,而不相关的则会有截然不同的向量表示。这种接近和远离的关系会通过搜索词与下载应用的联系传递开。

图2所示是一些搜索词和数字生活商品的关系,绿色线连接的搜索词和商品表示搜索前者后下载了后者,而没有绿色线连接表示搜索前者后没有下载后者。把绿色的线想象成一根有拉力的绳子,在训练的过程中,路径连通的部分会靠拢到一起。最终,绿色的节点两两之间的向量都会更接近,黄色的节点两两之间的向量都会更接近。黄色的部分和绿色的部分没有路径连通,这两部分会相互远离,黄色节点和绿色节点的向量会截然不同。

二、模型训练

在实际生产中, lifeproduct的数量V都会比较大,在计算式(3)时,需要对数以万计的lifeproduct都计算一个分值,而且在每次迭代都需要更新W矩阵的数以万计的行,这个计算量是很大的。为了加速训练过程,一般会使用负采样。即在每次更新中,不去更新每个lifeproduct的向量,而只更新其中一部分。

目标函数如下:

(8)

其中wneg={aj|j=1,2,…,K}是抽样得到的负样本集合,aO是真实的数字生活商品,σ是sigmoid函数。只需要使用梯度下降法去最小化这个目标函数即可。

使用负采样后,模型训练的计算量变小了。但每次训练,只有wneg中的负样本的向量才会与搜索词的向量远离。

三、模型的应用

通过以上模型,运用用户的搜索和使用、订购行为数据后,可以计算出搜索词和商品的向量,将模型应用到以下两种推荐场景中:

一种是在用户搜索结果栏目中,当用户输入搜索词w时,计算每个商品a与w的相似度,筛选出相似度最高的top n个商品展示给用户。这里的相似度有多种度量方式,可以根据具体效果而定,这里采用内积作为搜索词和商品的相似度度量,因为word& lifeproduct 2vec模型中,训练的目标是让搜索词与相关商品的向量内积最大化。相似度定义如下:

(9)

另一种是在用户下载后推荐的栏目中,当用户使用了某商品ai,则寻找与ai相似的top n个商品展示给用户。这里的相似度使用余弦相似度做度量。

(10)

结合和生活业务数据,采用本文模型进行训练,输出的APP向量、搜索词向量以及实体间的关联关系度量值如下:

1.构建了1万款应用的250维度的商品向量库,包含主要头部商品和长尾商品。例如图3。

2.通过商品向量和词向量,计算出相互之间的关联度数据,部分关联度如下:

与美团关联的商品和相互之间的关联度数值

{

(饿了么    掌上生活    大众点评    口碑    盒马    京东到家    本来生活    滴滴出行    12306    家常菜),

(0.6778    0.5542    0.4036    0.3705    0.3611    0.3463    0.3328    0.3286    0.3275    0.3214)

}

四、結束语

本文通过挖掘数字生活服务中用户的搜索、点击行为和订购行为数据,通过机器学习的模型训练大规模用户行为数据,构建lifeproduct向量和搜索词向量库,向量中包含了两种实体间的特征信息和关系信息,从而在数字生活服务的业务场景中为用户提供搜索和推荐的精准内容。

猜你喜欢
矩阵向量模型
自制空间站模型
向量的分解
多项式理论在矩阵求逆中的应用
模型小览(二)
圆周运动与解题模型
离散型随机变量分布列的两法则和三模型
向量垂直在解析几何中的应用
向量五种“变身” 玩转圆锥曲线
矩阵
矩阵