数学基础
- 线性代数
- 概率论与随机过程
- 数值计算
- 蒙特卡洛方法与 MCMC 采样
- 机器学习方法概论
统计学习
深度学习
- 深度学习简介
- 深度前馈网络
- 反向传播算法
- 正则化
- 深度学习中的最优化问题
- 卷积神经网络
- CNN:图像分类
- 循环神经网络 RNN
- Transformer
- 一、Transformer [2017]
- 二、Universal Transformer [2018]
- 三、Transformer-XL [2019]
- 四、GPT1 [2018]
- 五、GPT2 [2019]
- 六、GPT3 [2020]
- 七、OPT [2022]
- 八、BERT [2018]
- 九、XLNet [2019]
- 十、RoBERTa [2019]
- 十一、ERNIE 1.0 [2019]
- 十二、ERNIE 2.0 [2019]
- 十三、ERNIE 3.0 [2021]
- 十四、ERNIE-Huawei [2019]
- 十五、MT-DNN [2019]
- 十六、BART [2019]
- 十七、mBART [2020]
- 十八、SpanBERT [2019]
- 十九、ALBERT [2019]
- 二十、UniLM [2019]
- 二十一、MASS [2019]
- 二十二、MacBERT [2019]
- 二十三、Fine-Tuning Language Models from Human Preferences [2019]
- 二十四 Learning to summarize from human feedback [2020]
- 二十五、InstructGPT [2022]
- 二十六、T5 [2020]
- 二十七、mT5 [2020]
- 二十八、ExT5 [2021]
- 二十九、Muppet [2021]
- 三十、Self-Attention with Relative Position Representations [2018]
- 三十一、USE [2018]
- 三十二、Sentence-BERT [2019]
- 三十三、SimCSE [2021]
- 三十四、BERT-Flow [2020]
- 三十五、BERT-Whitening [2021]
- 三十六、Comparing the Geometry of BERT, ELMo, and GPT-2 Embeddings [2019]
- 三十七、CERT [2020]
- 三十八、DeCLUTR [2020]
- 三十九、CLEAR [2020]
- 四十、ConSERT [2021]
- 四十一、Sentence-T5 [2021]
- 四十二、ULMFiT [2018]
- 四十三、Scaling Laws for Neural Language Models [2020]
- 四十四、Chinchilla [2022]
- 四十七、GLM-130B [2022]
- 四十八、GPT-NeoX-20B [2022]
- 四十九、Bloom [2022]
- 五十、PaLM [2022] (粗读)
- 五十一、PaLM2 [2023](粗读)
- 五十二、Self-Instruct [2022]
- 句子向量
- 词向量
- 传统CTR 预估模型
- CTR 预估模型
- 一、DSSM [2013]
- 二、FNN [2016]
- 三、PNN [2016]
- 四、DeepCrossing [2016]
- 五、Wide 和 Deep [2016]
- 六、DCN [2017]
- 七、DeepFM [2017]
- 八、NFM [2017]
- 九、AFM [2017]
- 十、xDeepFM [2018]
- 十一、ESMM [2018]
- 十二、DIN [2017]
- 十三、DIEN [2019]
- 十四、DSIN [2019]
- 十五、DICM [2017]
- 十六、DeepMCP [2019]
- 十七、MIMN [2019]
- 十八、DMR [2020]
- 十九、MiNet [2020]
- 二十、DSTN [2019]
- 二十一、BST [2019]
- 二十二、SIM [2020]
- 二十三、ESM2 [2019]
- 二十四、MV-DNN [2015]
- 二十五、CAN [2020]
- 二十六、AutoInt [2018]
- 二十七、Fi-GNN [2019]
- 二十八、FwFM [2018]
- 二十九、FM2 [2021]
- 三十、FiBiNET [2019]
- 三十一、AutoFIS [2020]
- 三十三、AFN [2020]
- 三十四、FGCNN [2019]
- 三十五、AutoCross [2019]
- 三十六、InterHAt [2020]
- 三十七、xDeepInt [2023]
- 三十九、AutoDis [2021]
- 四十、MDE [2020]
- 四十一、NIS [2020]
- 四十二、AutoEmb [2020]
- 四十三、AutoDim [2021]
- 四十四、PEP [2021]
- 四十五、DeepLight [2021]
- 图的表达
- 一、DeepWalk [2014]
- 二、LINE [2015]
- 三、GraRep [2015]
- 四、TADW [2015]
- 五、DNGR [2016]
- 六、Node2Vec [2016]
- 七、WALKLETS [2016]
- 八、SDNE [2016]
- 九、CANE [2017]
- 十、EOE [2017]
- 十一、metapath2vec [2017]
- 十二、GraphGAN [2018]
- 十三、struc2vec [2017]
- 十四、GraphWave [2018]
- 十五、NetMF [2017]
- 十六、NetSMF [2019]
- 十七、PTE [2015]
- 十八、HNE [2015]
- 十九、AANE [2017]
- 二十、LANE [2017]
- 二十一、MVE [2017]
- 二十二、PMNE [2017]
- 二十三、ANRL [2018]
- 二十四、DANE [2018]
- 二十五、HERec [2018]
- 二十六、GATNE [2019]
- 二十七、MNE [2018]
- 二十八、MVN2VEC [2018]
- 二十九、SNE [2018]
- 三十、ProNE [2019]
- Graph Embedding 综述
- 图神经网络
- 一、GNN [2009]
- 二、Spectral Networks 和 Deep Locally Connected Networks [2013]
- 三、Fast Localized Spectral Filtering On Graph [2016]
- 四、GCN [2016]
- 五、神经图指纹 [2015]
- 六、GGS-NN [2016]
- 七、PATCHY-SAN [2016]
- 八、GraphSAGE [2017]
- 九、GAT [2017]
- 十、R-GCN [2017]
- 十一、 AGCN [2018]
- 十二、FastGCN [2018]
- 十三、PinSage [2018]
- 十四、GCMC [2017]
- 十五、JK-Net [2018]
- 十六、PPNP [2018]
- 十七、VRGCN [2017]
- 十八、ClusterGCN [2019]
- 十九、LDS-GNN [2019]
- 二十、DIAL-GNN [2019]
- 二十一、HAN [2019]
- 二十二、HetGNN [2019]
- 二十三、HGT [2020]
- 二十四、GPT-GNN [2020]
- 二十五、Geom-GCN [2020]
- 二十六、Graph Network [2018]
- 二十七、GIN [2019]
- 二十八、MPNN [2017]
- 二十九、UniMP [2020]
- 三十、Correct and Smooth [2020]
- 三十一、LGCN [2018]
- 三十二、DGCNN [2018]
- 三十三、AS-GCN
- 三十四、DGI [2018]
- 三十五、DIFFPOLL [2018]
- 三十六、DCNN [2016]
- 三十七、IN [2016]
- 图神经网络 2
- 图神经网络 3
- 推荐算法(传统方法)
- 一、Tapestry [1992]
- 二、GroupLens [1994]
- 三、ItemBased CF [2001]
- 四、Amazon I-2-I CF [2003]
- 五、Slope One Rating-Based CF [2005]
- 六、Bipartite Network Projection [2007]
- 七、Implicit Feedback CF [2008]
- 八、PMF [2008]
- 九、SVD++ [2008]
- 十、MMMF 扩展 [2008]
- 十一、OCCF [2008]
- 十二、BPR [2009]
- 十三、MF for RS [2009]
- 十四、 Netflix BellKor Solution [2009]
- 推荐算法(神经网络方法 1)
- 一、MIND [2019](用于召回)
- 二、DNN For YouTube [2016]
- 三、Recommending What Video to Watch Next [2019]
- 四、ESAM [2020]
- 五、Facebook Embedding Based Retrieval [2020](用于检索)
- 六、Airbnb Search Ranking [2018]
- 七、MOBIUS [2019](用于召回)
- 八、TDM [2018](用于检索)
- 九、DR [2020](用于检索)
- 十、JTM [2019](用于检索)
- 十一、Pinterest Recommender System [2017]
- 十二、DLRM [2019]
- 十三、Applying Deep Learning To Airbnb Search [2018]
- 十四、Improving Deep Learning For Airbnb Search [2020]
- 十五、HOP-Rec [2018]
- 十六、NCF [2017]
- 十七、NGCF [2019]
- 十八、LightGCN [2020]
- 十九、Sampling-Bias-Corrected Neural Modeling [2019](检索)
- 二十、EGES [2018](Matching 阶段)
- 二十一、SDM [2019](Matching 阶段)
- 二十二、COLD [2020 ] (Pre-Ranking 模型)
- 二十三、ComiRec [2020](https://www.wenjiangs.com/doc/0b4e1736-ac78)
- 二十四、EdgeRec [2020]
- 二十五、DPSR [2020](检索)
- 二十六、PDN [2021](mathcing)
- 二十七、时空周期兴趣学习网络ST-PIL [2021]
- 推荐算法之序列推荐
- 一、FPMC [2010]
- 二、GRU4Rec [2015]
- 三、HRM [2015]
- 四、DREAM [2016]
- 五、Improved GRU4Rec [2016]
- 六、NARM [2017]
- 七、HRNN [2017]
- 八、RRN [2017]
- 九、Caser [2018]
- 十、p-RNN [2016]
- 十一、GRU4Rec Top-k Gains [2018]
- 十二、SASRec [2018]
- 十三、RUM [2018]
- 十四、SHAN [2018]
- 十五、Phased LSTM [2016]
- 十六、Time-LSTM [2017]
- 十七、STAMP [2018]
- 十八、Latent Cross [2018]
- 十九、CSRM [2019]
- 二十、SR-GNN [2019]
- 二十一、GC-SAN [2019]
- 二十二、BERT4Rec [2019]
- 二十三、MCPRN [2019]
- 二十四、RepeatNet [2019]
- 二十五、LINet(2019)
- 二十六、NextItNet [2019]
- 二十七、GCE-GNN [2020]
- 二十八、LESSR [2020]
- 二十九、HyperRec [2020]
- 三十、DHCN [2021]
- 三十一、TiSASRec [2020]
- 推荐算法(综述)
- 多任务学习
- 系统架构
- 实践方法论
- 深度强化学习 1
- 自动代码生成
工具
- CRF
- lightgbm
- xgboost
- scikit-learn
- spark
- numpy
- matplotlib
- pandas
- huggingface_transformer
- 一、Tokenizer
- 二、Datasets
- 三、Model
- 四、Trainer
- 五、Evaluator
- 六、Pipeline
- 七、Accelerate
- 八、Autoclass
- 九、应用
- 十、Gradio
Scala
- 环境搭建
- 基础知识
- 函数
- 类
- 样例类和模式匹配
- 测试和注解
- 集合 collection(一)
- 集合collection(二)
- 集成 Java
- 并发
十七、PTE [2015]
学习有意义且有效的文本(例如
word
、document
)的representation
,是许多机器学习任务(例如文本分类、文本聚类、文本检索)的关键前提条件。传统上,每个word
都相互独立地表示,并且每个document
都表示为bag-of-words
。然而,这两种representation
都存在数据稀疏、多义性polysemy
、同义性synonymy
等问题,因为在这两种representation
中不同word
之间的语义相关性semantic relatedness
通常被忽略。word
和document
的分布式representation
通过在低维空间中表达word
和document
,从而有效地解决了这个问题。在这个低维空间中,相似的word
/document
彼此紧密地嵌入。这些方法的基本思想来自于分布式假设distributional hypothesis
:一个单词的意义是由它的使用环境所形成的 (you shall know a word by the company it keeps
)。《Distributed representations of words and phrases and their compositionality》
提出了一种简单而优雅的word embedding
模型,称作SkipGram
。SkipGram
使用target word
的embedding
来预测局部窗口local window
中每个单独的context word
的embedding
。《Distributed representations of sentences and documents》
进一步扩展了这一思想,并提出了Paragraph Vector
从而嵌入任意的文本片段,例如sentence
和document
。其基本思想是:使用sentence/document
的embedding
来预测sentence/document
中word
的embedding
。和也利用word context
的分布式相似性distributional similarity
的其它经典方法(如布朗聚类Brown clustering
、最近邻法)相比,这些text embedding
方法已被证明是非常有效的,可以在单台机器上扩展到数百万个document
。由于采用无监督学习,通过这些
text embedding
模型学到的representation
足够通用,可以应用于分类classification
、聚类clustering
、以及排序ranking
等各种任务。然而,和端到端的复杂的深度学习方法(如卷积神经网络)相比时,text embedding
的性能通常在特定任务上达不到要求。这毫不奇怪,因为深度神经网络在学习数据representation
时充分利用了可用于任务的label
信息。大多数text embedding
方法在学习representation
时都无法考虑label
信息。只有在使用训练好的representation
作为特征来训练分类器时,label
才会被使用。换句话讲,无监督的text embedding
对于不同的任务是可泛化generalizable
的,但是对于特定任务的预测能力较弱。尽管存在这一缺陷,但是和深度神经网络相比,
text embedding
方法仍有相当大的优势。- 首先,深度神经网络(尤其是卷积神经网络)的训练是计算密集型的,在处理大量数据的时候通常需要多个
GPU
或CPU
集群。 - 其次,卷积神经网络通常假设大量的标记样本可用,这在许多任务中是不现实的。对于容易获取的未标记数据,卷积神经网络通常使用预训练的方式来间接利用。
- 第三,卷积神经网络的训练需要多许多超参数进行详尽的调优,即使对于专家而言也是非常耗时的,而对于非专家而言是不可行的。
另一方面,像
SkipGram
这样的text embedding
方法效率更高、更容易调优、并且天然地适应于未标记数据。在论文
《PTE:Predictive Text Embedding through Large-scale Heterogeneous Text Networks》
中,作者通过提出predictive text embedding: PTE
来填补这一空白。PTE
具有无监督text embedding
的优点,但是在representation learning
过程中自然地利用了标记信息。通过PTE
,我们可以从有限的标记样本和大量的未标记样本中联合学习有效的低维representation
。与无监督embedding
相比,这种representation
针对特定任务进行了优化,就像卷积神经网络所作的那样。即,PTE
学到的representation
对特定的分类任务具有很强的预测能力。PTE
自然地扩展了作者之前的无监督信息网络embedding
工作(《Line: Large-scale information network embedding》
),并首先提出通过异质文本网络heterogeneous text networt
学习word
的低维embedding
。该网络对word-word
、word-document
、word-label
之间不同level
的共现信息co-occurrence information
进行编码。该网络被嵌入到一个低维向量空间中,该空间保留了网络中顶点之间的二阶邻近性second-order proximity
。任意一段文本(例如sentence
或document
)的representation
可以简单地推断为word representation
的均值,结果证明这是非常有效的。整个优化过程仍然非常高效,在单台机器上可以扩展到数百万个document
和数十亿个token
。论文对现实世界的文本语料库进行了广泛的实验,包括
long document
和short document
。实验结果表明:PTE
在各种文本分类任务中显著优于state-of-the-art
的无监督embedding
。与用于文本分类的端到端卷积神经网络相比,PTE
在long document
上表现更好、在short document
上表现相当。与卷积神经网络相比,PTE
具有各种优势,因为它更高效、有效地利用大规模未标记数据,并且对模型超参数不太敏感。作者相信PTE
的探索指向了一个学习text embedding
的方向,该方向可以在特定任务中与深度神经网络进行正面竞争。总而言之,论文的贡献如下:
- 论文提出以半监督的方式学习
predictive text embedding
。未标记数据和标记信息被集成到一个异质文本网络中,该网络包含不同level
的文本共现信息。 - 论文提出了一种高效的算法
PTE
,它通过将异质文本网络嵌入到低维空间中来学习文本的分布式representation
。该算法非常有效,几乎没有需要调优的超参数。 - 论文使用各种真实世界的数据集进行了广泛的实验,并将
PTE
与无监督text embedding
、卷积神经网络进行了比较。
- 首先,深度神经网络(尤其是卷积神经网络)的训练是计算密集型的,在处理大量数据的时候通常需要多个
相关工作:我们的工作主要涉及分布式文本
representation learning
和信息网络embedding
。Distributed Text Embedding
:文本的分布式representation
已被证明在许多自然语言处理任务中非常有效,例如单词类比word analogy
、词性标注POS tagging
、parsing
、语言建模language modeling
、以及情感分析sentiment analysis
。现有的方法通常可以分为两类:无监督方法、监督方法。- 最近提出的无监督方法通常通过在局部上下文
local context
(例如SkipGram
)或者document
级别(例如Paragraph Vector
),利用word co-occurrence
来学习word/document
的embedding
。这些方法非常有效,可以扩展到数百万个document
。 - 监督方法通常基于深度神经网络架构,例如
recursive neural tensor network: RNTN
、convolutional neural network: CNN
。在RNTN
中,每个word
都嵌入到一个低维向量中,并且通过在parse tree
中的子短语sub-phrase
或者word
上应用相同的、基于张量tensor-based
的组合函数composition function
来递归学习短语phrase
的embedding
。在CNN
中,每个word
也用一个向量来表示,并且在sentence
的不同位置的上下文窗口上应用相同的卷积核,然后是一个最大池化层和一个全连接层。
这两类方法之间的主要区别在于它们如何在
representation learning
阶段利用标记信息和未标记信息。无监督方法在representation learning
时不包含标记信息,仅在将数据转换为学到的representation
之后,才使用label
来训练分类器。RNTN
和CNN
将label
直接结合到representation learning
中,因此学到的representation
特别针对分类任务进行了调优。然而,为了融合未标记的样本,这些神经网络通常必须使用间接方法,例如使用无监督方法预训练word embedding
。和这两类方法相比,PTE
以半监督方式学习text embedding
,representation learning
算法直接利用标记信息和大量的未标记数据。与
predictive word embedding
类似的另一项工作是《Learning word vectors for sentiment analysis》
,该工作学习特别针对情感分析调优的word embedding
。然而,他们的方法无法扩展到数百万个document
,也无法推广到其它分类任务。- 最近提出的无监督方法通常通过在局部上下文
Information Network Embedding
:我们的工作还与network/graph embedding
问题有关,因为PTE
的word representation
是通过异质文本网络heterogeneous text network
学到的。将
network/graph
嵌入到低维空间,这在各种应用中非常有用,例如节点分类、链接预测。MDS
、IsoMap
、Laplacian eigenmap
等经典graph embedding
算法不适用于嵌入包含数百万个顶点、数十亿条边的大型网络。最近有一些工作试图嵌入非常大的现实世界网络。
《Deepwalk: Online learning of social representations》
提出了一种叫做DeepWalk
的network embedding
模型,该模型在网络上使用截断的随机游走,并且仅适用于具有二元边的网络。我们先前的工作提出了一种新的大规模网络嵌入模型,称作LINE
。LINE
适用于任意类型的信息网络,无向或有向、二元边或者带权边。LINE
模型优化了一个目标函数,该目标函数旨在保持局部网络结构local network structure
和全局网络结构global network structure
。DeepWalk
和LINE
都是无监督的,只能处理同质网络homogeneous network
。PTE
使用的network embedding
算法扩展了LINE
从而处理异质网络(网络中存在多种类型的顶点和边)。
17.1 模型
17.1.1 基本概念
让我们从正式定义
predictive text embedding
问题(通过异质文本网络)来开始。与学习文本的通用语义representation
的无监督text embedding
方法(包括SkipGram
和Paragraph Vector
)相比,我们的目标是学习针对给定文本分类任务优化的文本representation
。换句话讲,我们期待text embedding
对给定任务的性能具有很强的预测能力。基本思想是:在学习text embedding
时结合标记信息和未标记信息。为了实现这一点,首先需要有一个统一的representation
对这两类信息(标记的和未标记的)进行编码。在本文中,我们提出了不同类型的网络来实现这一点,包括word-word co-occurrence network
、word-document network
、word-label network
。word-word co-occurrence network
:word-word
共现网络表示为 $ G_{w,w} = (\mathcal V, \mathcal E_{w,w}) $ ,它捕获了未标记数据的局部上下文local context
中的word
共现信息。 $ \mathcal V $ 为word
的词表vocabulary
, $ \mathcal E_{w,w} $ 为word
之间的边的集合(共现关系)。word
$ v_i $ 和 $ v_j $ 之间的边的权重 $ w_{i,j} $ 定义为:这两个word
在给定窗口大小的上下文窗口中同时出现的次数。word-word
网络捕获局部上下文中的word
共现,这是现有word embedding
方法(如SkipGram
)使用的基本信息。除了局部上下文之外,document level
的word
共现也在经典的文本representation
中被广泛探索,例如统计主题模型statistical topic model
(如latent Dirichlet allocation: LDA
)。为了捕获document level
的word
共现,我们引入了另一个网络,即word-document
网络。word-document network
:word-document
网络表示为二部图 $ G_{w,d} = ( \mathcal V\cup \mathcal D , \mathcal E_{w,d}) $ ,其中 $ \mathcal D $ 为document
的集合, $ \mathcal V $ 为word
的集合, $ \mathcal E_{w,d} $ 为word
到document
的链接构成的边集合。word
$ v_i $ 和document
$ d_j $ 之间的边的权重 $ w_{i,j} $ 定义为:word
$ v_i $ 出现在document
$ d_j $ 中的频次。word-word
网络和word-document
网络对大规模语料库中的未标记信息进行编码,在局部上下文level
和document level
捕获word
共现。为了对标记信息进行编码,我们引入了word-label
网络,该网络在category-level
捕获word
共现。word-label network
:word-label
网络表示为二部图 $ G_{w,l} = (\mathcal V\cup \mathcal L,\mathcal E_{w,l}) $ ,其中 $ \mathcal L $ 为class
的集合, $ \mathcal V $ 为word
的集合, $ \mathcal E_{w,l} $ 为word
到class
的链接构成边的集合。 $ G_{w,l} $ 捕获了category-level
的word
共现。word
$ v_i $ 和class
$ c_j $ 之间的边的权重 $ w_{i,j} $ 定义为: $ w_{i,j} = \sum_{(d:l_d = j)} n_{d,i} $ ,其中 $ n_{d,i} $ 为document
$ d $ 中word
$ v_i $ 出现的频次, $ l_d $ 为document
$ d $ 的class label
。上述三种网络可以进一步融合为一个异质文本网络
heterogeneous text network
(如下图所示)。Heterogeneous Text Network
:异质文本网络是由标记文本数据和未标记文本数据共同构建的word-word
网络、word-document
网络、word-label
网络的组合。它捕获不同level
的word
共现,并同时包含标记信息和未标记信息。注意,异质文本网络的定义可以推广到融合其它类型的网络,例如
word-sentence
网络、word-paragraph
网络、document-label
网络等等。在这项工作中,我们使用三种类型的网络(word-word
、word-document
、word-label
)作为说明性示例。我们特别关注word
网络,以便首先将word
表示为低维空间。然后可以通过聚合word representation
来计算其它文本单元(如stentence
或paragraph
)的representation
。子网的构建需要结合具体任务,并且对任务性能产生重大影响。但是论文并未给出子网构建的原则。可以借鉴的是:这里的
word-word
捕获局部共现、word-document
捕获全局共现。最后,我们正式定义
predictive text embedding
问题如下:Predictive Text Embedding
:给定具有标记信息和未标记信息的大量文本数据,predictive text embedding
问题旨在通过将由文本数据构建的异质文本网络嵌入到低维向量空间中从而学习word
的低维representation
。接下来我们将介绍通过异质文本网络学习
predictive text embedding
的方法。我们的方法首先将异质文本网络嵌入到低维空间来学习word
的向量representation
,然后根据学到的word embedding
推断text embedding
。由于异质文本网络由三个二部图组成,我们首先介绍一种嵌入单个二部图的方法。
17.1.2 二部图 Embedding
在我们之前的工作中,我们引入了
LINE
模型来学习大规模信息网络的embedding
。LINE
主要是为同质网络而设计的,即具有相同类型节点的网络。LINE
无法直接应用于异质网络,因为不同类型边的权重不具有可比性。在这里,我们首先将LINE
模型用于嵌入二部图。基本思想是:利用顶点之间的二阶邻近性,假设具有相似邻域的顶点彼此相似,因此应该在低维空间中紧密地表示。对于二部图,假设顶点
$ A $ 和顶点 $ B $ 具有相似的邻域,则暗示了 $ A $ 和 $ B $ 的顶点类型相同。给定一个二部图
$ G=(\mathcal V_A\cup \mathcal V_B, \mathcal E) $ ,其中 $ \mathcal V_A $ 和 $ \mathcal V_B $ 是不同类型的、两个不相交的顶点集合, $ \mathcal E $ 是它们之间的边的集合(相同类型顶点之间不存在边,只有不同类型顶点之间才存在边)。我们首先将集合 $ \mathcal V_B $ 中顶点 $ v_j $ 生成集合 $ \mathcal V_A $ 中顶点 $ v_i $ 的条件概率定义为:其中:
$ \mathbf{\vec u}_i $ 为 $ \mathcal V_A $ 中顶点 $ v_i $ 的embedding
向量, $ \mathbf{\vec u}_j $ 为 $ \mathcal V_B $ 中顶点 $ v_j $ 的embedding
向量。对于
$ \mathcal V_B $ 中的每个顶点 $ v_j $ ,上式给出了一个定义在 $ \mathcal V_A $ 中所有顶点上的条件分布 $ p(\cdot\mid v_j) $ 。对于 $ \mathcal V_B $ 中的每对顶点 $ v_j,v_{j^\prime} $ ,它们的二阶邻近性second-order proximity
可以由它们的条件分布 $ p(\cdot\mid v_j) $ 、 $ p(\cdot\mid v_{j^\prime}) $ 来决定。为了保持二阶邻近性,我们可以使条件分布 $ p(\cdot\mid v_j) $ 接近其经验分布 $ \hat p (\cdot\mid v_j) $ ,这可以通过最小化以下目标函数来实现:其中:
$ \text{dist}(\cdot,\cdot) $ 为两个分布之间的距离函数,这里采用KL-divergence
函数。 $ \lambda_j $ 为顶点 $ v_j $ 在网络中的重要性,我们设置为顶点的degree
: $ \text{deg}_j = \sum_i w_{i,j} $ 。- 经验分布
$ \hat p (\cdot\mid v_j) $ 定义为 $ \hat p (v_i\mid v_j) = \frac{w_{i,j}}{\text{deg}_j} $ 。
忽略常数项,则上述目标函数重写为:
我们可以采用带边采样
edge sampling
和负采样nagative sampling
的随机梯度下降法来求解该最优化问题。在梯度下降的每一步:- 首先以正比于权重
$ w_{i,j} $ 的概率随机采样一条二元边binary edge
$ e=(v_i,v_j) $ ,即edge sampling
。 - 然后通过
noise distribution
$ p_n(j) $ 来随机采样若干条负边,即nagative sampling
。
采样过程解决了学习
network embedding
中随机梯度下降的重大缺陷。详细的优化过程可以参考LINE
的原始论文。word-word
网络、word-document
网络、word-label
网络的embedding
都可以通过上述模型来学习。注意,word-word
网络本质上是一个二部图,可以将每条无向边视为两条有向边,并且将 $ \mathcal V_A $ 视为源顶点的集合、 $ \mathcal V_B $ 视为目标顶点的集合。因此,我们可以定义条件概率 $ p(v_i\mid v_j), p(v_i\mid d_j),p(v_i\mid l_j) $ ,然后通过优化目标函数来学习embedding
。
17.1.2 异质文本网络 Embedding
异质文本网络由三个二部图组成:
word-word
网络、word-document
网络、word-label
网络,其中word
顶点在三个网络之间共享。为了学习异质文本网络的embedding
,一种直观的方法是共同嵌入三个二部图,这可以通过最小化以下目标函数来实现:上述目标函数可以通过不同的方式进行优化,具体取决于如何使用标记信息(即
word-label
网络)。- 一种解决方案是同时使用未标记数据(
word-word
网络和word-document
网络)和标记数据训练模型。我们称这种方法为联合训练joint training
。 - 另一种解决方案是首先使用未标记数据来学习
embedding
,然后使用word-label
网络来微调embedding
。这是受到深度学习文献中预训练和微调pre-training and fine-tuning
思想的启发。
- 一种解决方案是同时使用未标记数据(
在联合训练中,所有三种类型的网络一起使用。优化目标
$ O_\text{pte} $ 的直接解决方案是合并三个集合 $ \mathcal E_{w,w},\mathcal E_{w,d},\mathcal E_{w,l} $ 中的所有边,然后执行边采样edge sampling
(在每个step
中对边进行采样从而进行模型更新,采样概率与边的权重成正比)。然而,当网络是异质的时候,不同类型顶点之间的边的权重是不可比的。更合理的解决方案是从三组边中交替采样。PTE
联合训练算法:输入:
- 异质文本网络的三个子网
$ G_{w,w},G_{w,d},G_{w,l} $ - 采样数量
$ T $ - 负采样比例
$ K $
- 异质文本网络的三个子网
输出:所有单词的
embedding
$ \mathbf U $算法步骤:
循环迭代,直到迭代了
$ T $ 个step
。迭代过程为:- 从
$ \mathcal E_{w,w} $ 采样一条正边和 $ K $ 个负边,更新word embedding
。 - 从
$ \mathcal E_{w,d} $ 采样一条正边和 $ K $ 个负边,更新word embedding
和document embedding
。 - 从
$ \mathcal E_{w,l} $ 采样一条正边和 $ K $ 个负边,更新word embedding
和label embedding
。
- 从
PTE
预训练和微调算法:输入:
- 异质文本网络的三个子网
$ G_{w,w},G_{w,d},G_{w,l} $ - 采样数量
$ T $ - 负采样比例
$ K $
- 异质文本网络的三个子网
输出:所有单词的
embedding
$ \mathbf U $算法步骤:
预训练阶段:循环迭代,直到迭代了
$ T $ 个step
。迭代过程为:- 从
$ \mathcal E_{w,w} $ 采样一条正边和 $ K $ 个负边,更新word embedding
。 - 从
$ \mathcal E_{w,d} $ 采样一条正边和 $ K $ 个负边,更新word embedding
和document embedding
。
微调阶段:循环迭代,直到迭代了
$ T $ 个step
。迭代过程为:- 从
$ \mathcal E_{w,l} $ 采样一条正边和 $ K $ 个负边,更新word embedding
和label embedding
。
- 从
Text Embedding
:异质文本网络对不同level
的word co-occurrence
进行编码,这些编码是从未标记数据和特定分类任务的标记信息中提取的。因此,通过嵌入异质文本网络学习的word representation
不仅更加鲁棒,而且针对该特定任务进行了优化。一旦学到了word vector
,就可以通过简单地对这段文本中word
的向量求均值来获得任意一段文本的representation
。即,一段文本 $ d=\{w_1,w_2,\cdots,w_n\} $ 的向量representation
可以计算为:其中
$ \mathbf{\vec u}_i $ 为word
$ w_i $ 的embedding
向量。事实上,
word embedding
的均值是最小化以下目标函数的最优解:其中
$ \text{loss}(\cdot,\cdot) $ 为word embedding
和text embedding
之间的、欧式距离的损失函数。与之相关的是
paragraph vector
的推断过程,它的目标函数相同但是具有不同的损失函数:然而这个损失函数对应的目标函数没有闭式解
close form solution
,因此必须通过梯度下降算法来优化。
17.2 实验
数据集:我们选择了长文
document
、短document
两种类型的数据集:长
document
数据集:20newsgroup
数据集:广泛使用的文本分类数据集,包含20
个类别。wiki
数据集:2010
年4
月的维基百科数据集,包含大约200
万篇英文文章。我们仅保留2010
年维基百科中出现的常见词汇。我们选择了七种不同类别,包括Art, History, Human, Mathematics, Nature, Technology, Sports
。每种类别我们随机选择9000
篇文章作为标记的document
来训练。Imdb
数据集:一个情感分类数据集。为避免训练数据和测试数据之间的分布偏差,我们随机混洗了训练数据和测试数据。RCV1
数据集:一个大型文本分类基准语料库。我们从数据集中抽取了四个子集,包括Corporate, Economics, Government, Market
。在RCV1
数据集中,文档已经被处理为bag-of-word: BOW
的格式,因此word
的顺序已经被丢失。
短
document
数据集:DBLP
数据集:包含来自计算机科学领域论文的标题。我们选择了六个领域的论文,包括database, arti cial intelligence, hardware, system, programming languages, theory
等。对于每个领域,我们选择该领域具有代表性的会议并收集该会议中发表的论文作为标记的document
。
MR
数据集:一个电影评论数据集,每条评论仅包含一个sentence
。Twitter
数据集:用于情感分类的Tweet
语料库。我们从中随机抽取了120
万Tweets
然后拆分为训练集和测试集。
我们并没有在原始数据上执行进一步的文本归一化text normalization
,如删除停用词或者词干化。下表给出了数据集的详细统计信息。
baseline
方法:我们将PTE
算法和其它的文本数据representation learning
算法进行比较,包括经典的BOW
算法、state-of-the-art
的无监督text embedding
、以及state-of-the-art
的监督text embedding
方法。BOW
:经典的BOW
方法。每篇文档使用一个 $ |\mathcal V| $ 维的向量来表达,向量第 $ i $ 个元素为word
$ v_i $ 的TFIDF
值。SkipGram
:根据SkipGram
训练得到word embedding
,然后我们使用word embedding
的均值来作为document embedding
。PVDBOW
:一种paragraph embedding
模型,其中document
内word
的顺序被忽略。PVDM
:另一种paragraph embedding
模型,其中document
内word
的顺序被考虑。LINE
:我们之前的工作提出的大规模信息网络embedding
模型。我们使用LINE
模型分别学习word-word
网络和word-dococument
网络,分别记作 $ \text{LINE}(G_{w,w}),\text{LINE}(G_{w,d}) $ 。另外,我们也考虑联合学习word-word
网络和word-document
网络,记作 $ \text{LINE}(G_{w,w},G_{w,d}) $ 。CNN
:基于卷积神经网络CNN
模型来监督学习text embedding
。尽管原始论文用于建模sentence
,我们这里将其改编为适用于长文本在内的一般word
序列。尽管CNN
通常适用于完全标记的documnet
,但是它也可以通过无监督的word embedding
从而对模型进行预训练来利用未标记数据,这被记作CNN(pretrain)
。PTE
:我们提出的、学习predictive text embedding
的方法。PTE
有多种变体,它们使用word-word
、word-document
、word-label
的不同组合。 $ \text{PTE}(G_{w,l}) $ 为仅使用word-label
的版本。 $ \text{PTE}(G_{w,w}, G_{w,l}) $ 为使用word-word
和word-label
的版本。 $ \text{PTE}(G_{w,d},G_{w,l}) $ 为仅使用word-document
和word-label
的版本。 $ \text{PTE(pretrain)} $ 为使用word-word
、word-document
进行无监督训练,然后使用word-label
来微调的版本。PTE(joint)
为联合训练异质文本网络的版本。
实验配置:
SkipGram, PVDBOW, PVDM, PTE, PTE
模型:- 随机梯度下降的
mini-batch size
设为1
。 - 学习率设为
$ \rho_t = \rho_0(1-t/T) $ ,其中T
为总的迭代步数, $ \rho_0 = 0.025 $ 。 - 负采样次数为
K=5
。
- 随机梯度下降的
SkipGram, PVDBOW, PVDM, PTE
模型:word-word
网络共现窗口大小为5
。CNN
模型:我们使用《Convolutional neural networks for sentence classi cation》
中的CNN
结构。该结构使用一个卷积层,然后是最大池化层和全连接层。卷积层的窗口大小设为3
,feature map
数量设为100
,随机选择训练集的1%
作为验证集来执行早停。所有
embedding
模型的词向量维度为100
。
注意:对于
PTE
模型,默认情况下在不同数据集上,超参数均按照上述设置。唯一需要调整的超参数的边采样中的样本数 $ T $ ,它可以较为安全地设为较大的值。评估方式:一旦构建或学习了
document
的向量representation
,我们就会使用相同的训练数据集应用相同的分类过程。具体而言,训练集中的所有文档都用于representation learning
阶段和classifier learning
阶段。- 如果使用无监督
embedding
方法,则在representation learning
阶段不使用document
的类别标签,仅在classifier learning
阶段使用类别标签。 - 如果使用
predictive embedding
方法,则同时在这两个阶段都使用类别标签。
对于测试数据集,我们在这两个阶段都留出
hold-out
标签数据和document
文本。注意:在
representation learning
阶段保留所有测试数据,即这一阶段模型看不到测试数据的标签、也看不到测试数据的文本。在分类阶段,我们使用
LibLinear package
中的one-vs-rest
逻辑回归模型,并评估micro-F
和macro-F1
指标。每一种配置我们都执行十次,并报告指标的均值和方差。- 如果使用无监督
17.2.1 实验结果
我们在
20NG,Wiki,IMDB
数据集上的长文本效果对比如下。首先我们比较无监督
text embedding
方法,可以看到:- 具有
document-level
的word
共现的 $ \text{LINE}(G_{w,d}) $ 的效果,在无监督embedding
中表现最好。 PVDM
性能不如PVDBOW
,这和原始论文中的结论不同。不幸的是我们始终无法得出他们的结论。
然后我们比较
predictive embedding
方法,可以看到: $ \text{PTE}(G_{w,d},G_{w,l}) $ 或者PTE(joint)
效果最好。- 所有带
word-label
网络PTE
方法都超越了对应的无监督方法(即LINE
模型),这表明了在监督学习下predictive text embedding
的强大能力。 PTE(joint)
超越了 $ \text{PTE}(G_{w,l}) $ ,这表明了使用未标记数据可以显著改善监督学习的质量。PTE(joint)
也超越了PTE(pretrain)
,这表明联合训练未标记数据和标记数据,要比将它们分别独立训练并微调更有效。- 另外我们通过
$ \text{LINE}(G_{w,l} + G_{w,d}) $ 学到的单词embedding
来对CNN
进行预训练,然后使用label
信息对其进行微调。出乎意料的是:预训练CNN
在20NG
和IMDB
数据集上显著提高,并且在Wiki
上几乎保持不变。这意味着训练良好的无监督embedding
对CNN
进行预训练非常有用。 - 但是,即使是预训练的
CNN
,其性能仍然不如PTE(joint)
。这可能的因为PTE
模型可以联合训练标记数据和未标记数据,而CNN
只能通过预训练和微调两阶段来各自独立的使用标记数据和未标记数据。 PTE(joint)
也始终优于经典的BOW
模型,尽管PTE(joint)
的embedding
向量维度远小于BOW
的向量维度。
- 具有
我们在
RCV1
数据集上的长文本效果对比如下。由于word
之间的顺序丢失,因此要求保留word
顺序信息的embedding
方法不适用。这里我们观察到了类似的结论:predictive embedding
方法超越了无监督embedding
。PTE(joint)
方法比PTE(pretrain)
方法更有效。
我们比较了
CNN
和PTE(joint)
在IMDB
数据集上的训练实践。我们采用异步随机梯度下降算法,在1T
内存、2.0G HZ
的40
核CPU
上执行。平均而言PTE(joint)
要比CNN
快10
倍以上。当使用pretrain
时,CNN
虽然训练速度加快,但是仍然比PTE(joint)
慢 5倍以上。我们在短文本上比较了模型性能如下。
首先我们比较无监督
text embedding
方法,可以看到:- 结合了
document-level
和local-context level
的word
共现的 $ \text{LINE}(G_{w,w},G_{w,d}) $ 效果最好。 - 使用局部上下文级别
word
共现的 $ \text{LINE}(G_{w,w}) $ 要优于使用document
级别word
共现的 $ \text{LINE}(G_{w,d}) $ 。这和长文本实验中结论相反。这是因为在短文本中,document
级别的word
共现非常稀疏。我们在主题模型中也观察到了类似的结果。 PVDM
性能仍然不如PVDBOW
性能,这和长文本中结论一致。
然后我们比较
predictive embedding
方法,可以看到:PTE
在DBLP,MR
数据集上性能最佳,CNN
在Twitter
数据集上性能最好。融合了
word-label
网络的PTE
方法超越了对应的无监督embedding
方法(即LINE
模型),这和长文本中结论一致。PTE(joint)
超越了 $ \text{PTE}(G_{w,l}) $ ,这证明了融合未标记数据的有效性。PTE(joint)
超越了PTE(pretrain)
,这证明了对标记数据和未标记数据联合训练的优势。我们观察到
PTE(joint)
并不能始终超越CNN
。原因可能是单词歧义ambiguity
问题,这类问题在短文本中更为严重。CNN
通过在卷积核中使用局部上下文的word
顺序来减少单词歧义问题,而PTE
抛弃了word
顺序。我们相信:如果利用了word
顺序,则PTE
还有很大提升空间。
- 结合了
17.2.2 标记数据 & 未标记数据
我们考察标记样本规模的变化对
CNN
和PTE
的影响。我们考虑两种模式:- 监督学习:不包含未标记数据。如
$ \text{PTE}(G_{w,l}) $ 、CNN
。 - 半监督学习:包含未标记数据。如
PTE(joint)
、CNN
等。
在半监督学习中,我们还比较了经典的半监督方法:带
EM
的朴素贝叶斯NB+EM
、标签传播算法label propagation:LP
。可以看到:
CNN
和PTE
随着标记数据规模的增加,性能持续改善。- 在监督学习的
CNN
和 $ \text{PTE}(G_{w,l}) $ 之间, $ \text{PTE}(G_{w,l}) $ 均优于CNN
或可与CNN
媲美。 - 在半监督学习的
CNN(pretrain)
和PTE(joint)
之间,PTE(joint)
始终优于CNN(pretrain)
。 PTE(joint)
还始终优于经典的NB+EM
和LP
方法。
另外我们还注意到:
- 当标记数据规模不足时,使用无监督
embedding
的预训练CNN
非常有效,尤其是在短文本上。当训练样本太少时,它甚至优于所有的PTE
。 - 当标记数据规模增加时,预训练
CNN
并不总是能够改善其性能,如DBLP
和MR
数据集。 - 对于
SkipGram
模型,增加标记数据规模几乎不会进一步改善其性能。 - 在
DBLP
数据集上,当标记样本太少时PTE
性能甚至不如SkipGram
。原因是当标记数据太少时,word-label
网络的噪音太多。PTE
将word-label
网络与噪音较少的word-word, word-document
网络同等对待。一种解决办法是:在标签数据不足时,调整word-label, word-word, word-document
网络的采样概率。
- 监督学习:不包含未标记数据。如
我们考察未标记数据规模的变化对
CNN(pretrain)
和PTE
的影响。由于篇幅有限,这里我们仅给出20NG
和DBLP
数据集的效果。对于CNN
,未标记数据可用于预训练。对于PTE
,未标记数据可用于预训练或联合训练。在
20NG
数据集上,我们使用10%
文档作为标记数据,剩余文档作为未标记数据;在DBLP
数据集上,我们随机抽取其它会议发表的20
万篇论文的标题作为未标记数据。我们使用
$ \text{LINE}(G_{w,w},G_{w,d}) $ 作为CNN
的预训练模型。可以看到:- 当未标记数据规模增加时,
CNN
和PTE
性能都有改善。 - 对于
PTE
模型,未标记数据和标记数据联合训练的效果要优于“预训练和微调”的方式。
- 当未标记数据规模增加时,
17.2.3 参数敏感性与可视化
PTE
模型除了训练步数T
之外,大多数超参数对于不同训练集都是不敏感的(如学习率、batch size
),所以可以使用默认配置。我们在
20NG
和DBLP
数据集上考察了PTE(joint)
对于参数T
的敏感性。可以看到:当T
足够大时,PTE(joint)
性能会收敛。实际应用中,我们可以将
T
的数量设置称足够大。经验表明:T
的合理范围是异质文本网络中所有边的数量的几倍。我们给出了无监督
embedding
(以 $ \text{LINE}(G_{w,d}) $ 为代表)和predictive embedding
(以 $ \text{PTE}(G_{w,l}) $ 为代表)在20NG
数据集上采用tSNE
可视化的结果。我们对训练集和测试集的文档均进行了可视化,其中
document embedding
为document
内所有word embedding
的均值。可以看到:在训练集和测试集上,predictive embedding
均比无监督embedding
更好地区分了不同的类别。这直观表明了predictive embedding
在文本分类任务中的强大能力。
17.2.4 讨论
无监督
embedding
使用的基本信息是局部上下文级别或者document
级别的word
共现。- 在长文本中,我们可以看到
document
级别的word
共现比局部上下文级别的word
共现效果更好,并且二者的结合并不能进一步改善效果。 - 在短文本中,局部上下文级别的
word
共现比document
级别的word
共现效果更好,并且二者的结合可以进一步改善效果。这是因为document
级别的word
共现受到文本长度太短的困扰,即文本太稀疏。
- 在长文本中,我们可以看到
predictive embedding
中:与
PTE
相比,CNN
模型可以更有效地处理标记信息,尤其是在短文本上。这是因为CNN
的模型结构比PTE
复杂得多,尤其时CNN
可以在局部上下文中利用词序从而解决word
的歧义问题。因此,在标记数据非常稀疏的情况下,CNN
可以超越PTE
,尤其是在短文本上。但是这个优势是以大量的计算、详尽的超参数调优为代价的。与
CNN
相比,PTE
训练速度更快、超参数调整更容易(几乎没有需要调整的超参数)。当标记数据更为丰富时,PTE
的性能至少和CNN
一样好并且通常更好。PTE
模型的一个明显优势是它可以联合训练标记数据和未标记数据。相比之下CNN
只能通过预训练来间接利用未标记数据。当标记数据非常丰富时,这种预训练并不总是有帮助的。
实践指南:基于上述讨论,我们提供以下实践指南。
当没有标记数据时:
- 在长文本上使用
$ \text{LINE}(G_{w,d}) $ 来学习无监督text embedding
。 - 在短文本上使用
$ \text{LINE}(G_{w,w},G_{w,d}) $ 来学习无监督text embedding
。
- 在长文本上使用
当只有少量标记数据时:
- 在长文本上使用
PTE
来学习text embedding
。 - 在短文本上使用
CNN(pretrain)
,其中预训练采用 $ \text{LINE}(G_{w,w},G_{w,d}) $ 。
- 在长文本上使用
当有大量标记数据时:
- 在长文本上使用
PTE(joint)
来学习text embedding
。 - 在短文本上从
PTE(joint)
、CNN
或者CNN(pretrain)
三者之间选择,其中主要考虑训练效率和模型效果之间的平衡。
- 在长文本上使用
未来方向:
PTE
中考虑word
的词序。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论