快速理解Facebook图嵌入算法Pytorch-Biggraph的原理

     Facebook最近开源了其图嵌入算法Pytorch-Biggraph。这个算法完全基于CPU进行运算不需要GPU支持,而且号称能够应对上亿节点。有热心的读者给我私信问到图嵌入是是否就是笔者在之前的博客20行代码读懂复仇者联盟的人物关系中,给大家展示的人物关系图呢?

    其实人物关系图、知识图谱等只是图嵌入的一种展示方式,Facebook的Pytorch-Biggraph算法不是用来做这种图像渲染的,而是计算机用来理解图片含义的一种方式。

                    从词嵌入说起

   之前机器学习在图像处理方面做到了很多非常令人难以想象的成绩,之前笔者也曾经介绍过AI能换脸(https://blog.csdn.net/BEYONDMA/article/details/88365203),甚至能换人(https://blog.csdn.net/BEYONDMA/article/details/89042448),不过计算机好像很难理解图像的含义。

    而在自然语言处理方面也是同样的问题,计算机很难处理人类的语言。不过2013年,一位谷歌的技术大牛Mikolov在论文“Efficient Estimation of Word Representation in Vector Space”开创性的提出了一种词嵌入的算法(Word to Vector),其核心理念是用一个单词附近的其它单词,去定义这个单词本身。

简要的讲word2vec的算法就是将单词转化为向量(一般是500维),并保持词与词之间的关系,例如下图                 

                               

                                         词向量的平面投影

     由此可以看到将单词转化的向量过程中会有两个目标:

     首先是意思相近的单词其距离要的短,比如同为男士衬衫品牌泰芝朗、欧比森和优沙在词空间中就要距离比较近。在我之前的博客,用Rword2vec告诉你券商的推荐买股票是否靠谱也曾经介绍过word2vec模型训练完成后,可以通过dist函数找到与一个单词意思最为相近的其它单词,说的就是这个意思。例子如下:

dist<-distance(file_name='d:/beyondma.bin',search_word='推荐',num=10)

dist

        word              dist
1  强烈推荐 0.991746842861176
2      买入 0.983411431312561
3      给予 0.982171237468719
4        维持 0.979804515838623
5      评级 0.977733969688416

     其次是存在类比关系的单词做向量减法的结果要尽量保持一致。如Vector(男版)-Vector(男)=Vector(女版)-Vector(女)

     简要的讲word2vec就是通过文章中单词出现的顺序及条件概率,将每个单词嵌入到向量空间的对应位置。从而将文字转换为向量序列,以便计算机处理。 
 

             让计算机理解图像

    近些来互相网的大规模应用,使图像也有了序列化的信息,如用户在INSGRAM、微信朋友圈上顺序点击的图片或者在淘宝上搜索商品所依次进入的图片介绍,这些操作都形成了非常有价值的信息链,而且Word2vec算法之父Mikolov也从谷歌跳槽到了Facebook,这些都使Graph2vec变成可能。

    Facebook的深度学习框架是Pytorch,而Biggraph算法也正是基于Pytorch的,从本质来说Biggraph图嵌入与之前的Word2vec没有太大区别,都是通过图片出现的序列信息及前后依赖的条件概率,将图片转为向量便于计算机处理。

           Biggraph的安装与数据集下载

Biggraph安装起来非常简单,只需要用pip install torchbiggraph命令就能完成安装。

其训练数据下载地址为:https://dl.fbaipublicfiles.com/starspace/fb15k.tgz

其github的地址是:https://github.com/facebookresearch/PyTorch-BigGraph

论文地址是:https://www.sysml.cc/doc/2019/71.pdf

 

评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值