StarSpace:Embed All The Things!
Abstract
作者提出了StarSpace,一种通用的神经嵌入模型,可以解决各种各样的问题:
标记任务,如文本分类,排名任务,如信息检索/网络搜索,
基于协作过滤或基于内容的推荐,嵌入多关系 图表,学习单词,句子或文档级嵌入。
在每种情况下,模型通过嵌入由离散特征组成的实体并将它们相互比较来工作——学习依赖于任务的相似性。 许多任务的实证结果表明,StarSpace与现有方法竞争激烈,同时也普遍适用于那些方法不具备的新案例。
Introduction
作者介绍了一个神经嵌入模型StarSpace,它足以解决各种各样的问题:
- 文本分类或其他标签任务,例如 情绪分类。
- 实体组的排名,例如 给出查询的web文档排名。
- 基于协作过滤的建议,例如: 推荐文件,音乐或视频。
- 基于内容的推荐,其中内容使用离散特征定义,例如: 文件的话。
- 嵌入图表,例如 多关系图,如Freebase。
- 学习单词,句子或文档嵌入。
对于以上的任何任务,StarSpace都可以被视为一种直接且高效的强大基线。
在实验中,它显示出与几种竞争方法相同或优于几种竞争方法的效果,同时适用于许多方法不适用的情况。
该方法通过从这些实体的集合之间的关系中学习具有离散特征表示的实体嵌入来直接用于排序或感兴趣分类的任务。 (The method works by learning entity embeddings with discrete feature representations from relations among collections of those entities directly for the task of ranking or classification of interest)
在一般情况下,StarSpace将不同类型的实体嵌入到矢量嵌入空间中,因此名称中的“星形”(“*”,表示所有类型)和“空格”,并且在该公共空间中将它们相互比较。 它学习在给定查询实体,文档或对象的情况下对一组实体,文档或对象进行排名,其中查询不一定与集合中的项目具有相同的类型。
作者在六个不同的任务上评估我们的方法的质量,即文本分类,知识库中的链接预测,文档推荐,文章搜索,句子匹配和学习一般句子嵌入。
潜在文本表示或嵌入是单词或文档的矢量表示,传统上以无监督的方式在大型语料库中学习。 关于该领域的神经嵌入的工作包括word2vec和fastText。 在实验中,将word2vec和fastText作为无监督嵌入的代表性可扩展模型进行比较,还对SentEval任务与各种无监督的句子嵌入模型进行了比较。
在监督嵌入领域,SSI和WSABIE早期认为在NLP和信息检索任务中具有前景,包括TagSpace和fastText 在内的多个重要作品,在分类任务(如情绪分析或主题标签预测)方面取得了良好的效果。
在推荐领域,嵌入模型取得了很大的成功,从SVD及其改进,如SVD++,以及许多其他技术,这些方法中的许多方法都集中于协同过滤(collaborative filtering)设置,其中用户ID和电影ID具有单独的嵌入,例如在Netflix挑战设置中,因此不能自然地并入新用户或项目。
StarSpace如何能够自然地满足该设置和基于内容的设置,其中用户和项目被表示为功能,因此具有自然的样本外扩展而不是仅考虑固定集合。
近年来,利用基于嵌入的方法在知识库(KB)中执行链接预测也显示出有希望的结果。 在这方面已经做了一系列的工作,StarSpace也可用于此任务,优于多种方法,并匹配TransE方法。
Model
StarSpace模型由学习实体组成(learning entities),每个学习实体由来自固定长度字典的一组离散特征描述( described by a set of discrete features (bag-of-
features) coming from a fixed-length dictionary),一个实体,比如文档、句子等可以用一袋单词(a-bag-of-words)或者n-grams表示,比如用户之类的实体可以通过它们喜欢的文档,电影或者项目来描述,重要的是,StarSpace可以很自由的去比较不同类型的实体(entities of different kinds)。
例如,一个user entity和一个item entity(RS)或者具有标签的实体(Text Classification)的文档进行比较,这是通过模型学习将它们嵌入相同的空间,以使得它们的比较更有意义——通过对于感兴趣的度量量化进行优化来完成。
将dictionary features 记为 ,其中 代表 feature(row).
模型产生d维的嵌入,使用嵌入实体a。
即每个feature都有一个嵌入,由于一个实体a具有不同的feature,所以构成实体a的嵌入就是这些特征的加和(或加权和)。
也就是说,像其他嵌入模型一样,我们的模型开始于此。
将维向量分配给我们想要直接嵌入的集合中的每个离散特征(我们称之维dictionary。它可以包含诸如单词之类的特征)
由特征(例如文档)组成的实体由dictionary中的一系列特征表示,并且隐含的学习它们的嵌入,请注意,实体可以包含单个(唯一)功能,如单个的词,名称或用户或者项目id。
为了训练我们的模型,我们需要学习如何比较实体(compare entities)
具体来说,我们希望最大限度地减少一下损失函数。
其中,
- positive entity pairs (a,b) 的生成从 set 来,这种生成取决于任务。
- negative entity 的生成从 set 来,利用k-negative sampling strategy(负采样策略)为每批次更新选取k和negative entity pairs,我们从可以出现在相似度函数的第二个参数中的实体集合中随机选择(例如,对于文本标签任务,a是文档,b是标签,因此,我们从标签集合中采样b)
- 相似度函数,在系统中,实现了余弦相似度和内积,并选择了hyperparameter,之所以这么选择的原因,是因为它们对于少量标签特征,例如用于分类,同样工作良好,而余弦对于较大的数字能够更好的工作,例如,用于计算句子或者文件的相似性。
- 比较positive entity pair (a,b) 和 negative pairs ,我们还实现了两种可能性:margin ranking loss【i.e. max(0,µ − sim(a,b), where µ is the margin parameter】 和 negative log loss of softmax。所有的实验都使用前者,因为它的表现更好一些。
模型通过SGD随机梯度下降进行优化,即每个SGD步骤是外部和的一个样本(each SGD step is one sample from E + in the outer sum)使用Adagrad用于多CPUs上。模型还应用嵌入的最大范数来限制所学习的矢量位于空间为半径的球中。
在测试时,可以使用学习函数来测量实体之间的相似性。例如,对分类问题,在测试时,标签的预测方法是,给定a,在所有有可能的的标签集中(a set of possible lables),选取最大相似的一个,即
以下描述如何将模型应用于各种任务,在每种情况下如何描述和,以及如何设置。
Multiclass Classification (e.g. Text Classification)
对于positive pair generator来自标记过的数据集,其指定的(a,b)对,其中a是文档(或者bags-of-word词袋),b是标签(single features),negative entity从可能的标签集中采样。
Multilabel Classification 在多标签分类这种情况下,每个文档a可以对应多个正标签(multiple positive labels),在每个SGD步骤中将其中一个采样为b以实现多标记分类。
Collaborative Filtering-based Recommendation
trainning data由一组user组成,其中每个user由其喜欢的items组成(a bag of items, describe as a unique features from the dictionary that user likes)
positive pair generator选择user作为该user唯一的单例特征,并选择user喜欢的单个item作为 ,negative sample 从可能的items集合里选择
Collaborative Filtering-based Recommendation with out-of-sample user extension
经典的协同过滤的一个问题是不弄识别或者对新用户进行处理(用户冷启动)因为每个用户id学习了单独的嵌入
使用与以前相同的训练数据,可以使用StarSpace学习代替模型,选择 a 当作它们喜欢的所有items而不是一个,b 是余下的项目。也就是说,模型通过将用户建模而不是基于用户ID的单个嵌入来估计用户是否想要item,而是通过将用户表示为它们喜欢的items的嵌入的总和来学习。
Content-based Recommendation
根据内容推荐这个任务由一组用户组成,其中每个用户由一组项目描述(a bag of items),其中每个项目由字典中的一组特征描述(a bag of features)
例如,对于文档推荐,每个用户都由它们喜欢的一系列文档描述,而每个文档由它们包含的词来描述
现在可以选择a作为除了一个之外的所有item(a can be selected as all of the items except one)b作为余下的item。系统现在可以扩展到新项目和新用户,因为两者都可以使用特征来表示的。