深度学习-NLP-item2vec商品推荐

参考网址:

(主要看这个的,他的推导过程更详细)

https://zhuanlan.zhihu.com/p/82022962

这篇稍微总结了一些,看看利于理解

https://zhuanlan.zhihu.com/p/53194407

商品推荐的其它神经网络算法:

https://cloud.tencent.com/developer/news/322989

http://cjc.ict.ac.cn/online/onlinepaper/42-8-7-201981695203.pdf

item2vec商品推荐

1基本思想

item2vec 是一种学习 item embedding 的成熟方案,是一个只有一个隐层的深度学习模型。输入端是用户的商品购买序列, 输出端是与输入端的 target item 邻近的多个item,基本思想是用户输入某个商品后,使用embedding后的物品为输入向量,从而训练出一个向量空间,在此空间中,类似的物品的值相近,item2vec可以从已经训练好的模型中选取出与该商品最相似的前几个商品,实现从word2vec到item2vec。

2应用场景

一般像电商网站的“看了也看”、“买了也买”、“相似物品”模块比较适合应用Item2Vec算法,因为缺少用户信息,另外用户也可能是未登陆状态。

3基本概念

万物皆可Embedding,简单来说,embedding 就是用一个低维的向量(向量就是一组数值。)表示一个物体,可以是一个词,或是一个商品,或是一个电影等等。这个 embedding 向量的性质是能使距离相近的向量对应的物体有相近的含义,比如 Embedding(苹果) 和 Embedding(水果) 之间的距离就会很接近,但 Embedding(苹果) 和 Embedding(宝马) 的距离就会远一些。

                                                                                                图 3.1

除此之外Embedding甚至还具有数学运算的关系,比如:

Embedding(西班牙)-Embedding(马德里)≈ Embedding(法国) - Embedding(巴黎)

                                                                                               图 3.2

Item2vec就是使用embedding后的物品为输入向量,从而训练出一个向量空间,在此空间中,类似的物品的值相近,比如在向量空间中,西瓜的向量可为0.56,香瓜为0.66,而手表则为0.77。在此向量空间中,西瓜与手表之间的距离大于西瓜与香瓜,所以西瓜与香瓜更为相似。

                                                                                               图 3.3 

4商品推荐模型item2vec

Item2vec脱胎于自然语言处理的word2vec。既然我们要训练一个物品的语义表达,那么训练样本显然是一个物品的集合。

 

                                                         图3.4 word2vec 的两种模型结构 CBOW 和 Skip-gram

1)那么为了产生模型的正样本,我们选一个长度为2的滑动窗口,从序列左边滑倒右边,每滑一次,窗口中的词就形成了我们的一个正样本。有了训练样本之后我们就可以着手定义优化目标了,既然每个词w(t),都决定了相邻词w(j),基于极大似然,我们希望所有样本的条件概率p(w(j)|w(t))之积最大,因为我们希望推荐的商品是用户最可能购买的,这里我们使用log probability。我们的目标函数有了:

 

2)接下来的问题是怎么定义p(w(j)|w(i)),作为一个多分类问题,最简单最直接的方法当然是直接用softmax函数,我们又希望用向量v(w),表示每个词w,用词之间的距离表示语义的接近程度,那么我们的条件概率的定义就可以很直观的写出。

 

 

(3)根据word2vec的神经网络架构图输入向量表达和输出向量表达,输入向量表达就是input layer到hidden layer的权重矩阵,而输出向量表达就是hidden layer到output layer的权重矩阵。

                                                                                                图 3.5

4)根据 p(w(t+j)|w(t)) 的定义,我们可以把两个vector的乘积再套上一个softmax的形式转换成上面的神经网络架构,在训练过程中通过梯度下降的方式求解模型参数。当模型训练好后,我们上面所说的输入向量矩阵中每一行对应的权重向量就是我们所需要的词向量v(w),于是这个权重矩阵自然转换成了item2veclookup table(我们所需的词向量表)。

                                                                               图 3.6从word2vec到item2vec

有了词向量表后,我们就可以对输入的商品进行相似度的查找。

5实验过程:

实验过程(部分截图)

 

                                                       图 3.7

实验结果

输入拖鞋:

                                                                              图3.8  输入拖鞋的实验结果

输入是背包:

图 3.9

  1. 结果分析:

在上图中输入模型的词是背包,在词向量空间中,跟它相似的有双肩包、电脑包、帆布背包等,按推荐指数降序排序。

如今大数据已经成了各大互联网公司工作的重点方向,而推荐系统可以说就是大数据最好的落地应用之一,已经为企业带来了可观的用户流量和销售额。特别是对于电商,好的推荐系统可以大大提升电商企业的销售业绩。国内外的知名电商,如亚马逊、淘宝、京东等公司,都在推荐系统领域投入了大量研发力量,也在大量招收相关的专业人才。打造的电商推荐系统项目,就是以经过修改的中文亚马逊电商数据集作为依托,并以某电商网站真实的业务架构作为基础来实现的,其中包含了离线推荐与实时推荐体系,综合利用了协同过滤算法以及基于内容的推荐方法来提供混合推荐。具体实现的模块主要有:基于统计的离线推荐、基于隐语义模型的离线推荐、基于自定义模型的实时推荐,以及基于内容的、和基于Item-CF的离线相似推荐。整个项目具有很强的实操性和综合性,对已有的大数据和机器学习相关知识是一个系统性的梳理和整合,通过学习,同学们可以深入了解推荐系统在电商企业中的实际应用,可以为有志于增加大数据项目经验的开发人员、特别是对电商业务领域感兴趣的求职人员,提供更好的学习平台。适合人群:1.有一定的 Java、Scala 基础,希望了解大数据应用方向的编程人员2.有 Java、Scala 开发经验,了解大数据相关知识,希望增加项目经验的开发人员3.有电商领域开发经验,希望拓展电商业务场景、丰富经验的开发人员4.有较好的数学基础,希望学br习机器学习和推荐系统相关算法的求职人员
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值