推荐embedding总结2

Graph Embedding

需要提供和序列采样出的类似的关系样本数据,只不过现在高了一个维度,于是整个样本构建的流程就变成了先按照业务关系构造图,然后从图采样到序列,再从序列采样到样本,才能作为Embedding训练模型的输入

Item2Vec 也通过商品的组合去生成商品的 Embedding,这里商品的组合也是序列式的,我们可以称他们为“Sequence Embedding”

更多场景下,数据对象之间更多以图(网络)的结构呈现,这种结构生成Embedding的方法,我们称之为图嵌入(Graph Embedding)。例如下图,由淘宝用户行为数据生成的物品关系图(Item Graph),更能捕获Items间的高维相似性

关键算法:

DeepWalk:重点解决的就是如何从图采样到序列

主要思想是在由物品组成的图结构上进行「随机游走(Random Walk)」,产生大量物品序列,然后将这些物品序列作为训练样本输入word2vec进行训练,得到物品的Embedding。

LINE

微软亚洲研究院在 2015 年发布的 LINE

LINE 可以应用于有向图、无向图以及边有权重的网络,并通过将一阶、二阶的邻近关系引入目标函数,能够使最终学出的 node embedding 的分布更为均衡平滑,避免 DeepWalk 容易使 node embedding 聚集的情况发生

端到端和非端到端的Embedding

将Embedding层与整个深度学习网络整合后一同进行训练更新,是有监督的可以与最终目标产生联系,但是维度大训练慢

但还是非常常见,高维稀疏特征向量天然不适合多层复杂神经网络的训练,因此如果使用深度学习模型处理高维稀疏特征向量,几乎都会在输入层到全连接层之间加入Embedding层完成高维稀疏特征向量到低维稠密特征向量的转换。一般为了节省训练时间,深度神经网络中的 Embedding 层往往是一个简单的高维向量向低维向量的直接映射

经典:微软的Deep Crossing模型、Wide&Deep模型(深度部分

「非端到端(预训练)」:预训练的方式得到的Embedding

将训练集中的词替换成事先训练好的向量表示放到网络中,就是一个非端到端的过程,因为学到一个好的的词向量表示,就能很好地挖掘出词之间的潜在关系

Embedding的训练往往独立于深度学习网络进行,在得到稀疏特征的稠密表达之后,再与其他特征一起输入神经网络进行训练。

Word2Vec,Doc2Vec,Item2Vec都是典型的非端到端的方法

FNN利用了FM训练得到的物品向量,作为Embedding层的初始化权重,从而加快了整个网络的收敛速度。在实际工程中,直接采用FM的物品向量作为Embedding特征向量输入到后续深度学习网络也是可行的办法。

2013年Facebook提出的著名的「GBDT+LR」的模型,其中GBDT的部分本质上也是完成了一次特征转换,可以看作是利用GBDT模型完成Embedding预训练之后,将Embedding输入单层神经网络进行CTR预估的过程。

2015年以来,随着大量Graph Embedding技术的发展,Embedding本身的表达能力进一步增强,而且能够将各类特征全部融合进Embedding之中,这使Embedding本身成为非常有价值的特征。这些特点都使Embedding预训练成为更被青睐的技术途径。

基于时序和基于集合

在Item2Vec中,样本数据可以有两种看待方式:

基于时序:前面item对后面item的产生有很大的影响

基于时序的示例比如视频网站的用户观看的视频序列,音乐网站用户听的歌曲序列。

基于集合:行为序列视为一个集合,共现在同一个集合的item就可以认为它们是相似的,然后视为正样本,不管它们是以什么样的顺序产生的,如果某两个item频繁共现,二者的Embedding则可能也很相似。

Embedding使用和好处

Embedding的这种携带语义信息以及保留嵌入实体间的潜在关系的特性,使Embedding有了更多用武之地,例如:

  • 「计算相似度」,比如「man」「woman」的相似度比「man」「apple」的相似度高

  • 「在一组单词中找出与众不同的一个」,例如在如下词汇列表中:「[dog, cat, chicken, boy]」,利用词向量可以识别出「boy」和其他三个词不是一类。

  • 「直接进行词的运算」,例如经典的:「woman + king-man = queen」

  • 「表征文本」,如累加得到一个文本的稠密向量,或平均表征一个更大的主体;

  • 「方便聚类」,会得到比使用词向量聚类更好的语义聚类效果。

  • 「由于携带了语义信息,还可以计算一段文字出现的可能性」,也就是说,这段文字是否「通顺」

Embedding好处:

  • 不丢失信息的情况下降低维度

  • 矩阵及向量运行便于并行

  • 向量空间具有物理意义,比如可以根据距离比较相似性(线性规则:king - man = queen - woman

  • 可以在多个不同的维度上具有相似性

参考:https://mp.weixin.qq.com/s/2JuyVJos2RrqGKcVgZRZvA

### 推荐用于生成嵌入(Embedding)的机器学习模型或深度学习框架 在选择适合生成嵌入的机器学习模型或深度学习框架时,需考虑具体的应用场景以及数据特性。以下是几种广泛使用的模型和框架: #### 1. Word2Vec 和 GloVe Word2Vec 是一种基于神经网络的语言建模方法,能够通过上下文关系捕捉词义并将其表示为低维稠密向量[^2]。GloVe 则是一种矩阵分解方法,利用全局统计信息来构建词向量。这两种方法适用于简单的 NLP 场景。 #### 2. BERT (Bidirectional Encoder Representations from Transformers) BERT 使用 Transformer 架构,在大规模语料上进行预训练,可以生成高质量的上下文敏感型 Embedding 向量。它特别适合需要理解复杂句法结构的任务,例如情感分析、问答系统等[^1]。 ```python from transformers import BertTokenizer, BertModel tokenizer = BertTokenizer.from_pretrained('bert-base-uncased') model = BertModel.from_pretrained('bert-base-uncased') text = "Replace me by any text you'd like." encoded_input = tokenizer(text, return_tensors='pt') output = model(**encoded_input) embeddings = output.last_hidden_state.mean(dim=1).detach().numpy() ``` #### 3. Sentence-BERT (SBERT) Sentence-BERT 对原始 BERT 进行改进,专门针对句子级别的相似度计算进行了优化。相比传统 BERT 方法,其推理速度更快且效果更优。 #### 4. Hugging Face Transformers 库 Hugging Face 提供了一个全面而灵活的工具包,支持多种预训练模型及其变体版本。开发者可以通过该库轻松加载各种先进的 embedding 模型,并快速应用于实际项目中。 #### 5. TensorFlow Hub 和 PyTorch Hub 这两个平台分别隶属于 Google 的 TensorFlow 及 Meta 的 PyTorch 生态体系,汇集了大量的开源 embedding 模型资源。用户可以根据需求挑选合适的模块直接调用[^3]。 --- ### 总结 每种方案都有各自的适用范围和技术特点,因此最终的选择应依据具体的业务目标与约束条件综合考量。如果追求高效便捷,则可优先尝试现成解决方案;而对于定制化程度较高的场合,则可能需要深入调整甚至重新设计基础架构。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值