ML-Embeddings-嵌套-机器学习原理

什么是Embedding嵌套?

下面是谷歌官方定义:
一种分类特征,以连续值特征表示。通常,嵌套是指将高维度向量映射到低维度的空间。例如,您可以采用以下两种方式之一来表示英文句子中的单词:

  • 表示成包含百万个元素(高维度)的稀疏向量,其中所有元素都是整数。向量中的每个单元格都表示一个单独的英文单词,单元格中的值表示相应单词在句子中出现的次数。由于单个英文句子包含的单词不太可能超过 50 个,因此向量中几乎每个单元格都包含 0。少数非 0 的单元格中将包含一个非常小的整数(通常为 1),该整数表示相应单词在句子中出现的次数。
  • 表示成包含数百个元素(低维度)的密集向量,其中每个元素都包含一个介于 0 到 1 之间的浮点值。这就是一种嵌套。

嵌套本质上是降维,是化稀疏为密集。


嵌套的概念

嵌套是一种映射,将稀疏不连续的对象映射到实数向量。

比如下面是300维度的英语单词嵌套:

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)

向量中的这些单独的维度并没有什么具体意义,它们是向量的位置、距离关系的整体图式表达,以便于机器学习使用。

嵌套对于机器学习的输入非常重要。分类器Classifier、神经网络Neura networks普遍工作于实数向量Real number vector。训练Train最好是基于密集向量dense vector,全部所有数值共同定义对象。但是,对于机器学习来说,很多重要的输入比如文本的单词,都没有自然的向量表现形式,嵌套函数就是这么一个标准且有效的函数,可以把稀疏离散discrete/sparse的对象变为连续的向量表示法。

嵌套也作为机器学习的输出值。由于嵌套将物体映射为向量,应用程序可以使用向量空间相似的方法,强健且灵活的估算物体之间的相似性。一个通用的用途就是发现最近邻对象。

比如上面的单词向量,下面是每个单词的三个最近邻单词,用角度来展示:

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°)

最后一行数字告诉应用程序oranges和apples比较近似(分离45.3度),而和lemons,mangoes稍微区别大一些(48.3,50.4)。


Tensorflow中的嵌套Embedding

为了创建单词的嵌套,我们首先把文本划分为单词,并为每个词汇指定一个整数张量。假设这已经完成,word_ids表示包含这些整数的向量。比如句子,I have a cat.被划分为['I','have','a','cat',','],对应的word_ids张量是形状shape[5],由5个整数组成,比如[32,177,4,23,16]。要把这些单词映射为向量,我们需要使用tf.nn.embedding_lookup来生成嵌套变量。

word_embeddings = tf.get_variable(“word_embeddings”,
    [vocabulary_size, embedding_size])
embedded_word_ids = tf.nn.embedding_lookup(word_embeddings, word_ids)

如上,张量embedded_word_ids的形状变为[5,embedding_size],包含了5个嵌套(密集矢量)对应每个单词。训练结束后,word_embeddings将包含所有词汇单词的嵌套。

#如果Embedding_size=3,那么embedded_word_ids可能是
[[0.438890,0.782233,0.52721],
 [0.645432,0.523233,0.62333],
 [0.412333,0.124522,0.67223],
 [0.145333,0.133422,0.67223],
 [0.988888,0.765556,0.13344],
]

嵌套可以被多种网络类型训练,各种损失函数和数据集。例如,一个使用卷积神经网络RNN依赖词库去预测某个单词后面的下一个单词,或者使用两个网络进行语言翻译。


视觉化嵌套Visualizing Embeddings

Tensorboard中包含的嵌套投影器Embedding projector,它可以交互的显示嵌套,他可以从模型中读取嵌套并渲染到3D空间。

Embedding projector有三个面板:

  • Data panel
  • Projections panel
  • Inspector panel

此处省去很多内容的翻译...


探索人工智能的新边界

如果您发现文章错误,请不吝留言指正;
如果您觉得有用,请点喜欢;
如果您觉得很有用,感谢转发~


END

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,142评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,298评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,068评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,081评论 1 291
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,099评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,071评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,990评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,832评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,274评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,488评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,649评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,378评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,979评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,625评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,796评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,643评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,545评论 2 352

推荐阅读更多精彩内容