StarSpace(embed all the things嵌入表示)编译和测试

  StarSpace是Facebook开源的一个嵌入式表示的库,号称可以embed all things,可以学习任何实体的向量表示。其对应的文章为https://arxiv.org/pdf/1709.03856.pdf,对应的开源代码库为:https://github.com/facebookresearch/Starspace。

  如其主页上所介绍的,StarSpace可以学习到任何实体(单词、句子、文档、用户-网页(推荐类)、关系图、知识图谱、图片)的向量表示,特别是图片,是论文中所没有介绍的。

  论文中提到的向量学习模型,首先将实体定义为bag-of-features,即类似于词袋模型一样。将实体离散化为特征袋,而特征袋相对而言是在一定的词典范围内的,从而实体的向量表示学习有个损失函数,即使得两两实体之间的距离最小。(相似)

StarSpace

StarSpace is a general-purpose neural model for efficient learning of entity embeddings for solving a wide variety of problems:

  • Learning word, sentence or document level embeddings.
  • Information retrieval: ranking of sets of entities/documents or objects, e.g. ranking web documents.
  • Text classification, or any other labeling task.
  • Metric/similarity learning, e.g. learning sentence or document similarity.
  • Content-based or Collaborative filtering-based Recommendation, e.g. recommending music or videos.
  • Embedding graphs, e.g. multi-relational graphs such as Freebase.
  •  Image classification, ranking or retrieval (e.g. by using existing ResNet features).

下面主要是对源码进行编译,具体过程如下:

(1)make,编译可以直接通过,在此之前需要安装boost_1_63_0版本的C++,编译效果如下图所示:


(2) 例子 examples/classification_ag_news.sh,实现对新闻的分类


学习到的向量如图所示:



(3) 对句子的嵌入

examples/wikipedia_sentence_matching_full.sh


由于采用了1 ngrams,其表示结果如下所示:


表示的向量后,可以进行向量的查找,即querypredict

./query_predict <model> k [basedocs]


(4) 对多关系图的向量表示(知识表示),测试数据为freebase

examples/multi_relation_example.sh


(5) 对文档的嵌入和查找,可以合用embed_doc进行文档的向量表示及时生成


(6)可以实现对图片的向量表示



表示结果如下所示



向量表示之后,将实体转化为向量,可以方便地实现实体的分类等相关操作,如进行可视化可以看出哪些实体比较相似,类似于word2vec的功能。如对cifar10向量表示后采用TSNE进行可视化后,其效果如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值