关键词:
Spark推荐实战系列目前已经更新:
- Spark推荐实战系列之Swing算法介绍、实现与在阿里飞猪的实战应用
- Spark推荐实战系列之ALS算法实现分析
- Spark中如何使用矩阵运算间接实现i2i
- FP-Growth算法原理、Spark实现和应用介绍
- Spark推荐系列之Word2vec算法介绍、实验和应用说明
更多精彩内容,请持续关注「搜索与推荐Wiki」!
1. 背景
word2vec 是Google 2013年提出的用于计算词向量的工具,在论文Efficient Estimation of Word Representations in Vector Space中,作者提出了Word2vec计算工具,并通过对比NNLM、RNNLM语言模型验证了word2vec的有效性。
word2vec工具中包含两种模型:CBOW和skip-gram。论文中介绍的比较简单,如下图所示,CBOW是通过上下文的词预测中心词,Skip-gram则是通过输入词预测上下文的词。
Word2vec 开启了Embedding的相关工作,自从embedding开始大规模走进推荐系统中,下面我们就来看一下Word2vec算法的原理、Spark实现和应用说明。
2. 算法原理
Word2vec包含了两种模型,分别是CBOW和Skip-gram,CBOW又分为:
- One-word context
- multi-word context
其中单词的总个数为 V V V,隐藏层的神经元个数为 N N N,输入层到隐藏层的权重矩阵为 W V ∗ N W_V*N WV∗N,隐藏层到输出层的权重矩阵为 W N ∗ V ′ W'_N*V WN∗V′。
此时的
h
h
h 表达式为:
h
=
1
C
W
T
(
x
1
+
x
2
+
.
.
.
.
+
x
C
)
=
1
C
(
v
w
1
+
v
w
2
+
.
.
.
+
v
w
C
)
T
h = \\frac1C W^T (x_1 + x_2 + .... + x_C) \\\\ = \\frac1C (v_w_1 + v_w_2+ ... + v_w_C)^T
h=C1WT(x1+x2+....+xC)=C1(vw1+vw2+...+vwC)T
其中
C
C
C 表示上下文单词的个数,
w
1
,
w
2
,
.
.
.
,
w
C
w_1, w_2, ..., w_C
w1,w2,...,wC 表示上下文单词,
v
w
v_w
vw 表示单词的输入向量(注意和输入层
x
x
x区别)。
目标函数为:
E
=
−
l
o
g
p
(
w
O
∣
w
I
1
,
w
I
2
,
.
.
.
,
w
I
C
)
=
−
u
j
∗
l
o
g
∑
j
′
=
1
V
e
x
p
(
u
j
′
)
=
−
(
v
w
O
′
)
T
∗
h
+
l
o
g
∑
j
′
=
1
V
e
x
p
(
(
v
w
j
′
)
T
∗
h
)
E = -log \\, p(w_O | w_I_1, w_I_2, ..., w_I_C) \\\\ = - u_j * log \\sum_j'=1^V exp(u_j') \\\\ = -(v'_w_O)^T * h + log \\sum_j'=1^V exp((v'_w_j)^T * h)
E=−logp(wO∣wI1,wI2,...,wIC)=−uj∗logj′=1∑Vexp(uj′)=−(vwO′)T∗h+logj′=1∑Vexp((vwj′)T∗h)
Skip-gram 对应的图如下:
从输入层到隐藏层:
h
=
W
k
,
.
T
:
=
v
w
I
T
h =W^T_k,. := v^T_w_I
h=Wk,.T:=vwIT
从隐藏层到输出层:
p
(
w
c
,
j
=
w
O
,
c
∣
w
I
)
=
y
c
,
j
=
e
x
p
(
u
c
,
j
)
∑
j
′
=
1
V
e
x
p
(
u
j
′
)
p(w_c,j= w_O,c | w_I) = y_c, j = \\fracexp(u_c,j) \\sum_j'=1^Vexp(u_j')
p(wc,j=wO,c∣wI)=yc,j=∑j′=1Vexp(uj′)exp(uc,j)
其中:
- w I w_I wI 表示的是输入词
- w c , j w_c,j wc,j 表示输出层第 c c c个词实际落在了第 j j j个神经元
-
w
O
,
c
w_O,c
wO,c 表示输出层第
c
c
c个词应该落在第
O
O
O<
spark推荐系列之word2vec算法介绍实现和应用说明
...i2iFP-Growth算法原理、Spark实现和应用介绍Spark推荐系列之Word2vec算法介绍、实验和应用说明更多精彩内容,请持续关注「搜索与推荐Wiki」!1.背景word2vec是Google2013年提出的用于计算词向量的工具,在论文EfficientEstimationof... 查看详情
利用tensorflow进行自然语言处理(nlp)系列之二高级word2vec(代码片段)
一、概述在上一篇中,我们介绍了Word2Vec即词向量,对于WordEmbeddings即词嵌入有了些基础,同时也阐述了Word2Vec算法的两个常见模型:Skip-Gram模型和CBOW模型,本篇会对两种算法做出比较分析并给出其扩展模型-GloVe模型。 首先... 查看详情
数平精准推荐|ocr技术之系统篇
导语:如果说算法和数据是跑车的发动机和汽油,那么系统则是变速箱,稳定而灵活的变速箱,是图像识别服务向前推进的基础。算法、数据、系统三位一体,随着算法的快速发展和数据的日益积累,系统也在高效而稳定地升级... 查看详情
推荐系统基础之介绍入门篇(代码片段)
大家好,我是辣条。今天给大家带来推荐系统介绍入门。目录一、推荐系统简介二、推荐系统设计2.1推荐系统要素2.2推荐系统架构三、推荐算法一推荐模型构建流程二最经典的推荐算法:协同过滤推荐算法(Collaborativ... 查看详情
论文|deepwalk的算法原理代码实现和应用说明(代码片段)
...Vector之语言模型:从N-Gram到NNLM、RNNLM万物皆可Vector之Word2vec:2个模型、2个优化及实战使用Item2vec中值得细细品味的8个经典tricks和thi 查看详情
swing算法介绍实现与在阿里飞猪的实战应用(代码片段)
本系列主要是基于Spark的推荐算法实战系列,本文为首篇,欢迎关注!1.Swing算法介绍Swing算法原理比较简单,是阿里早期使用到的一种召回算法,在阿里多个业务被验证过非常有效的一种召回方式,它认为u... 查看详情
推荐系统-协同过滤在spark中的实现
作者:vivo互联网服务器团队-TangShutao现如今推荐无处不在,例如抖音、淘宝、京东App均能见到推荐系统的身影,其背后涉及许多的技术。本文以经典的协同过滤为切入点,重点介绍了被工业界广泛使用的矩阵分解算法,从理论与... 查看详情
大数据推荐系统算法代码全接触(企业内训,现场实录,机器学习算法+spark实现)
【学途无忧网】大数据推荐系统算法代码全接触(企业内训,现场实录,机器学习算法+Spark实现)课程下载:https://pan.baidu.com/s/1piCNIxC2Sv0zMY0yWxY9Ug提取码:b10v一、课程简介:推荐系统是利用电子商务网站向客户提供商品信息和建... 查看详情
大数据推荐系统算法代码全接触(企业内训,现场实录,机器学习算法+spark实现)
【学途无忧网】大数据推荐系统算法代码全接触(企业内训,现场实录,机器学习算法+Spark实现)课程下载:https://pan.baidu.com/s/1piCNIxC2Sv0zMY0yWxY9Ug提取码:b10v一、课程简介:推荐系统是利用电子商务网站向客户提供商品信息和建... 查看详情
有啥关于spark的书推荐?
《大数据Spark企业级实战》本书共包括14章,每章的主要内容如下。第一章回答了为什么大型数据处理平台都要选择SPARK。为什么spark如此之快?星火的理论基础是什么?spark如何使用专门的技术堆栈来解决大规模数据处理的需要?第... 查看详情
论文|deepwalk的算法原理代码实现和应用说明(代码片段)
...Vector之语言模型:从N-Gram到NNLM、RNNLM万物皆可Vector之Word2vec:2个模型、2个优化及实战使用Item2vec中值得细细品味的8个经典tricks和thinksSentence2Vec&GloVe算法原理、推导与实现Doc2vec的算法原理、代码实现及应用启发DeepWalk的... 查看详情
基于spark和sparkstreaming的word2vec
概述Word2vec是一款由谷歌发布开源的自然语言处理算法,其目的是把words转换成vectors,从而可以用数学的方法来分析words之间的关系。Spark其该算法进行了封装,并在mllib中实现。整体流程是spark离线训练模型,可以是1小时1训练也... 查看详情
spark2.x机器学习视频教程
...从各种公开渠道获取用于机器学习系统的数据。内容涵盖推荐系统、回归、聚类、分类等经典机器学习算法及其实际应用,涵盖使用SparkMLPipelineAPI创建和调试机器学习流程,内容更加系统、全面、与时俱进,适合所有欲借助Spark... 查看详情
用spark学习矩阵分解推荐算法
在矩阵分解在协同过滤推荐算法中的应用中,我们对矩阵分解在推荐算法中的应用原理做了总结,这里我们就从实践的角度来用Spark学习矩阵分解推荐算法。1.Spark推荐算法概述 在SparkMLlib中,推荐算法这块只实... 查看详情
红黑树之原理和算法详细介绍
...cnblogs.com/skywang12345/p/3245399.html更多内容: 数据结构与算法系列目录 (01) 红黑树(一)之原理和算法详细介绍(02) 红黑树(二)之C语言的实现(03) 红黑树(三)之Linux内核中红黑树的经典实现(04) 红黑树(四)之C++的实现 (05) 红黑树(... 查看详情
推荐算法协同过滤算法代码(pyspark|als)(代码片段)
【推荐算法】协同过滤算法介绍_MachineCYL的博客-CSDN博客上文介绍了协同过滤算法的原理,接下来我介绍一下协同过滤算法的代码实现。下面我就开始介绍用pyspark中的ALS(交替最小二乘矩阵分解)来实现协同过滤代码... 查看详情
深入浅出springcloud原理及实战「netflix系列之hystrix」针对于限流熔断组件hystrix的基本参数和实现原理介绍分析(代码片段)
...流熔断组件Hystrix的基本参数和实现原理介绍分析在这里推荐给大家martinfowler的熔断器介绍和权威指南,有兴趣的小伙伴们可以研究一下哈。主要介绍相关:官 查看详情
word2vec进阶之skim-gram和cbow模型(hierarchicalsoftmaxnegativesampling)
文章目录系列目录(系列更新中)语言模型word2vec综述HierarchicalSoftmax基于HierarchicalSoftmax的CBOW模型基于HierarchicalSoftmax的skip-gram模型基于HierarchicalSoftmax的CBOW与skip-gram的异同NegativeSampling系列目录(系列更新中ÿ 查看详情