TensorFlow中将类别特征embedding之后,包含语义信息(context information)吗?

面试中问到了这个问题,这里稍微汇总理解理解。

问题:品类做embeding之后,有context信息吗?

品类embeding生成向量后,品类映射的向量具有语义信息,相似品类的向量,计算相似度的结果会高一些。将品类类比于单词,理解起来会容易一些。参考资料[2]中,例子颜色和水果的embeding:

blue:  (0.01359, 0.00075997, 0.24608, ..., -0.2524, 1.0048, 0.06259)
blues:  (0.01396, 0.11887, -0.48963, ..., 0.033483, -0.10007, 0.1158)
orange:  (-0.24776, -0.12359, 0.20986, ..., 0.079717, 0.23865, -0.014213)
oranges:  (-0.35609, 0.21854, 0.080944, ..., -0.35413, 0.38511, -0.070976)

分别计算相似度,这里计算两个向量之间的夹角,使用余弦公式,可以得到夹角:

blue:  (red, 47.6°), (yellow, 51.9°), (purple, 52.4°)
blues:  (jazz, 53.3°), (folk, 59.1°), (bluegrass, 60.6°)
orange:  (yellow, 53.5°), (colored, 58.0°), (bright, 59.9°)
oranges:  (apples, 45.3°), (lemons, 48.3°), (mangoes, 50.4°)

比起lemons和oranges,apples和oranges在某种程度上是相似的(夹角更小)。

分析:Embedding 层的结构可以比较复杂,只要达到高维向量的降维目的就可以了,但一般为了节省训练时间,深度神经网络中的 Embedding 层往往是一个简单的高维向量向低维向量的直接映射。Embedding 的本质是建立高维向量到低维向量的映射,而 “映射” 的方法并不局限于神经网络,实质上可以是任何异构模型,这也是 Embedding 预训练的另一大优势,就是可以采用任何传统降维方法,机器学习模型,深度学习网络完成 Embedding 的生成。

embedding其实属于降维方法/无监督学习,或者说表征学习、网络特征学习,其目的是把网络中的每个节点映射到一个固定维度的空间中(的向量),同时这些向量还能反映点在网络中的关系。所以,word2vec、TransX、item2vec、user2vec这些方法能把具有某些关系的词/实体/商品/用户向量化,作为可计算的特征,提供给分类器预测器。

1.word2vector这个算法得到的词向量是包含语义信息的,语言模型n-gram或者bow模型,涉及到了词临近词的关系,因此具备context信息。其衍生的doc2vector、item2vector之类的算法生成的embeding也具有语义信息,他们使用的模型同word2vector。

2.FM得到的向量Vi,第i维特征的向量Vi时候,使用了全部第i维特征非零的样本进行学习,因此这个也具备context信息。

3.主题模型 LDA 可以给出每一篇文章下主题的分布向量,也可以看作是学习出了文章的 Embedding,这个包含语义信息。

 

总结:embeding得到的向量,具有context信息,并且可以迁移使用。

 

参考资料:
1.TensorFlow中文社区:http://www.tensorfly.cn/tfdoc/tutorials/word2vec.html

2.举例子:http://d0evi1.com/tensorflow/embedding/

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值