word2vec应用场景_Embedding在腾讯应用宝的推荐实践

作者:carloslin,腾讯 PCG 应用研究员

Embedding 技术目前在工业界以及学术界中应用非常广泛,关于 Embedding 的探索和应用从未停歇。Embedding 的训练方法主要分成 DNN 的端到端的方法以及序列学习的非端到端的方法,其中最经典的 word2vec 以及由此衍生出 sentence2vec,doc2vec,item2vec 等都属于非端到端的学习方法;本文主要介绍 Embedding 技术的非端到端学习方法在应用宝推荐场景的应用实践。

1.经典的 word2vec 模型

word2vec 模型的问世,极大的促进了 Embedding 技术的发展。下面我们先从 word2vec 模型切入,简单介绍一下 embedding 的推导过程。以业界最广泛使用的 Skip-gram+negative sampling 为例。

损失函数如下所示:

ea7e39c6e4fc4fe6ba63332ad1f357b8.png

其中 a 表示当前中心词,c 表示序列上下文词,Dp 为 window_size 中的词集合,Dn 为全局随机采样的负样本集合。损失函数中左半部分为正样本的损失函数项,右半部分为负样本的损失函数项。

为什么正样本和负样本能够通过加法的方式组合起来构成损失函数呢?首先,原始的 skip-gram 模型的损失函数(1)如下:

a8076917754f3cbe062165d37640b9e5.png

其中 w 为中心词,c 为 w 的上下文单词,D 为训练集中 w 和 c 的 pair 对,θ 为需要学习的参数;我们可以把这个优化问题转化为一个分类问题,利用 softmax 函数展开后:

57b9108b77fa21d5468382aae48e37fb.png

我们得到如下格式的函数(2):

f6650ad218adf444b48f021bc13ee17d.png

其中 vc 和 vw 分别为中心词和上下文词的 embedding,C 为训练集中所有上下文单词的集合。接着我们可以对损失函数(1)进行 log 变换得到(3):

8304b61ccff9b774960fc97ea5730948.png

由于需要对所有的上下文单词集合进行计算,公式(3)的计算复杂度非常高,所以 Negative sampling 的训练方式应运而生。Negative sampling 的思想本质上是一个二分类的问题,即预测(w, c)pair 是否存在训练集中。我们用公式:

9a2f9b5dfeb9f18cb34deedd99ad9698.png

表示(w, c) 存在训练集的概率,相应的:

eeb26f7df5a645d39ff8eedf38e720e7.png

表示(w, c)不存在训练集中的概率。此时的我们的损失函数(4)如下所示

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值