word2vec原理_【工业级推荐系统】word2vec 及其应用

"""

本系列尝试用最浅显的语言描述机器学习核心思想和技术在工业级推荐系统中的应用场景。

有兴趣的童鞋可以自行搜索相应的数学材料深度理解。

不定期更新 & 佛系推荐学习材料 & 建议欢迎私信

"""

word2vec 通过训练产生目标(内容/用户/etc) 的向量表示(embeddings),并且相似目标的向量表示距离相近,入下图所示:

0ecaa8e4457b570057897ae4ec79135b.png
语义相近的词,投影到二维平面上后距离更近

推荐系统应用

word2vec 目前被广泛应用于推荐系统。主要应用场景包括:

1) 推荐召回(sourcing):

目标的向量表示可用于寻找相似的用户/内容,只需要通过简单的最近邻算法(knn)便可得到。比如在知乎上,我们可以选取与用户点赞过的文章相似的文章进行推荐。由于相似性,此类文章会比其他文章有更大的概率被用户喜爱(喜欢看机器学习相关文章的朋友很有可能也会喜欢这篇文章?)。

2) 精排序(ranking)

目标的向量表示可以用来作为排序模型的特征,因为向量本身蕴含了高维的信息。在实际应用中,我们通常直接将向量表示作为sparse feature 放入模型中。

在大型工业级推荐系统中,我们往往需要根据不同的目标训练不同的向量表示。比如对于知乎的用户,我们可以根据 1) 用户在各类文章上的点赞行为 2) 用户的关注行为 3) 用户在各类文章的评论 训练3个不同的向量表示。这样,我们就能很容易找到和你在某些行为上相似的用户了。

原理

(需要对神经网络有基本了解,否则请先阅读这篇文章:《还没来得及写= =》)

word2vec最先应用于nlp问题,所以咱们先从nlp出发理解word2vec的原理。word2vec可采用CBOW或skip-gram模型(不熟悉概念的朋友可参考reference)。由于skip-gram在大型数据集中的表现要优于CBOW,因次我们在此就只以skip-gram进行阐述。

word2vec通过神经网络训练得到向量表示,所以让我们首先看这个神经网络。为了理解一个神经网络训练任务,我们只需了解: 输入,输出,网络结构。

假设语义库(vocabulary)为V,

输入:目标词的词向量one-hot representation 1 x V

输出:单个上下文的词向量 1 x V

训练集生成:

b7b4f9d7e5dcdce5ccba3570f959484b.png

网络结构:

d9015c2c71de3692353a384968d4f11c.png
Hidden Layer Neuron的个数 = 希望生成embedding的维数

Embeddings: 训练过后Hidden Layer得到的权重矩阵

推荐系统延伸:

只要我们可以将具体应用场景表示为词和文档的形式,我们就可以用word2vec解决相应的问题。比如我们在上文中提到的三个场景:

1) 词: 用户 文档:用户点赞文章作者的序列

2) 词: 用户 文档:用户关注作者的序列

3) 词: 用户 文档:用户评论文章作者的序列

REFERENCE

  1. One-hot representation

对于离散数据的一种编码方式。思想非常简单: 设该离散变量所有可能的取值个数为N,用N维向量表示该变量,每一取值对应一位,例如所有城市编码:

杭州 [0,0,0,0,0,0,0,1,0,……,0,0,0,0,0,0,0]
上海 [0,0,0,0,1,0,0,0,0,……,0,0,0,0,0,0,0]
宁波 [0,0,0,1,0,0,0,0,0,……,0,0,0,0,0,0,0]
北京 [0,0,0,0,0,0,0,0,0,……,1,0,0,0,0,0,0]

2. CBOW & Skip-gram

CBOW: P( w | Context(w) )概率最大化,即在给定上下文的情况下,预测目标词

Skip-gram: P( Context(w) | w )概率最大化,即给定目标词,预测上下文。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值