| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> [论文阅读] (24) 向量表征:从Word2vec和Doc2vec到Deepwalk和Graph2vec,再到Asm2vec和Log2vec(上) -> 正文阅读 |
|
[人工智能][论文阅读] (24) 向量表征:从Word2vec和Doc2vec到Deepwalk和Graph2vec,再到Asm2vec和Log2vec(上) |
《娜璋带你读论文》系列主要是督促自己阅读优秀论文及听取学术讲座,并分享给大家,希望您喜欢。由于作者的英文水平和学术能力不高,需要不断提升,所以还请大家批评指正,非常欢迎大家给我留言评论,学术路上期待与您前行,加油。 前一篇介绍了两个作者溯源的工作,从二进制代码和源代码两方面实现作者去匿名化或识别。这篇文章主要介绍六个非常具有代表性的向量表征算法,它们有特征词向量表示、文档向量表示、图向量表示,以及两个安全领域二进制和日志的向量表征。通过类似的梳理,让读者看看这些大佬是如何创新及应用到新领域的,希望能帮助到大家。这六篇都是非常经典的论文,希望您喜欢。一方面自己英文太差,只能通过最土的办法慢慢提升,另一方面是自己的个人学习笔记,并分享出来希望大家批评和指正。希望这篇文章对您有所帮助,这些大佬是真的值得我们去学习,献上小弟的膝盖~fighting! 文章目录前文赏析:
一.图神经网络发展历程在介绍向量表征之前,作者先结合清华大学唐杰老师的分享,带大家看看图神经网络的发展历程,这其中也见证了向量表征的发展历程,包括从Word2vec到Deepwalk发展的缘由。 图神经网络的发展历程如下图所示: (1) Hinton早期(1986年) (2) 扩展(Bengio到Word2Vec)
但是,当时做出来后由于其计算复杂度比较高,很多人无法fellow。直到谷歌2013年提出
(3) 网络化数据时期(Deepwalk) 通过 随机游走 从一个节点随机到另一个节点,此时就变成了了一个序列Sequence,并且和NLP问题很像,接下来就能处理了。 随后又有了LINE(2015)、Node2Vec(2016)、NetMF(2018)、NetSMF(2019)等工作,它们扩展到社交网络领域。唐老师们的工作也给了证明,这些网络本质上是一个Model。 (4) 图卷积神经网络(GCN)时期
Data Mining over Networks
第一部分花费大量时间介绍了研究背景,接下来我们正式介绍这六个工作。 二.Word2vec:NLP经典工作(谷歌)原文标题:Efficient Estimation of Word Representations in Vector Space
1.摘要 我们观察到,本文所提出的模型拥有更低的计算成本,并大幅提高了准确性。它能从16亿个单词的数据集中学习到高质量的词向量(word vectors),并且只需不到一天的时间。此外,该研究表明,这些向量在评估语法和语义特征词相似性时具有最先进的性能。 2.引言和贡献 近年来,随着机器学习技术的进步,在更大的数据集上训练更复杂的模型已经成为可能,而且它们通常优于简单的模型。可能最成功的概念是“distributed representations of words”(单词的分布式表示)。例如,基于神经网络的语言模型明显优于N-gram模型。
基于此,本文提出了Word2Vec,旨在从大规模词向量中高效学习词向量,并预测与输入词汇关联度大的其他词汇。 在本文中,我们试图通过开发新的模型结构来保持单词之间的线性规律,以及语法和语义的规律,从而来提高这些向量操作的准确性。此外,我们还讨论了训练时间和准确性如何依赖于单词向量的维数和训练数据的数量。
3.系统框架&本文方法
(1) 连续词袋模型(CBOW,continuous bag-of-words model) 在CBOW模型中,上下文所有的词对当前词出现概率的影响的权重是一样的,因此叫CBOW词袋模型。如在袋子中取词,取出数量足够的词就可以了,至于取出的先后顺序是无关紧要的,单词在时序中的顺序不影响投影(在输入层到投影层之间,投影层直接对上下文的词向量求平均,这里已经抛去词序信息)。 CBOW模型结构类似于前馈NNLM,去除了非线性隐藏层,并且投影层被所有单词共享(而不再仅仅共享投影矩阵),且输入层和投影层之间的权重矩阵对于所有单词位置都是共享的。因此,所有的单词都被投影到相同的位置。 输入层初始化的时候直接为每个词随机生成一个n维的向量,并且把这个n维向量作为模型参数学习,最终得到该词向量,生成词向量的过程是一个参数更新的过程。
模型复杂度如下: (2) Skip-Gram模型 更准确地说,我们将每个当前词作为一个输入,输入到一个带连续投影层的对数线性分类器中,预测当前词前后一定范围内的词。该方法增加范围可以提高词向量的质量,但也增加了计算复杂度。由于距离较远的单词与当前单词之间的联系通常比距离较近的单词更小,因此我们通过在训练示例中对这些单词进行较少的抽样,从而对距离较远的单词给予更少的权重。
模型复杂度如下: 优化策略:
4.对比实验 5.个人感受 总结:这篇论文研究了在一组在句法和语义语言任务上由各种模型训练出的词向量表示的质量。我们观察到,与流行的神经网络模型(包括前馈神经网路和循环神经网络)相比,使用非常简单的模型结构训练高质量的词向量是可能的。
三.Doc2vec原文标题:Distributed Representations of Sentences and Documents
1.摘要 在本文中,我们提出了段落向量 该算法通过一个密集向量来表示每个文档,该向量被训练来预测文档中的单词。它的构造使我们的算法有可能克服词袋模型的弱点。实验结果表明,我们的技术优于词袋模型和其他文本表示技术。最后,我们在几个文本分类和情感分析任务上取得了最先进的结果。 2.引言和贡献 文本分类和聚类在许多应用中发挥着重要的作用,如文档检索、网络搜索、垃圾邮件过滤。这些应用程序的核心是机器学习算法,如逻辑回归或Kmeans。这些算法通常要求将文本输入表示为一个固定长度的向量,如文本中最常见的固定长度向量表示方法:
然而,词袋模型存在很多缺点:
本文提出了段落向量(Doc2vec),这是一种无监督框架,旨在从文本片段中学习连续分布的向量表示。该方法可以应用于可变长度的文本片段,从短语到句子,再到大型文档,均可以使用Doc2vec进行向量表征。 在本文模型中,将段落中要预测的单词用向量表示来训练是很有用的。更准确地说,我们将段落向量与一个段落中的几个单词向量连接起来,并在给定的上下文中预测后续的单词。词向量和段落向量都是通过随机梯度下降和反向传播进行训练的。虽然段落向量在段落中是唯一的,但单词向量是共享的。预测时,通过固定词向量并训练新的段落向量直到收敛来推导段落向量。 Doc2vec优点如下:
3.系统框架&本文方法 本文框架的灵感来源于先前的Word2vec工作。Doc2vec包括两种算法:
(1) Paragraph Vector: A distributed memory model 由图可知,每个Word都被映射成一个唯一的vector编码,并组成矩阵W。其中,每列表示一个Word,对应于单词序列 {w1, w2, …, wT}。列根据该单词在词汇表中的位置进行索引,向量的连接(concatenate)或求和(sum)将被用来预测句子中下一个单词的特征。
词向量模型的目标是最大化平均概率: 预测任务通过多分类完成(如softmax),计算如下,其中 yi 表示第 i 个输出的单词未归一化的概率值。 本文使用和Word2vec相同的hierarical softmax优化策略,从而加快模型的训练速度。 (2) Paragraph Vector: A distributed memory model(分布记忆的段落向量) 本文提出PV-DM和PV-DBOW两种框架,其中分布记忆的段落向量(Distributed Memory Model of Paragraph Vectors,,PV-DM)描述如下。PV-DM类似于Word2vec中的CBOW模型(连续词袋模型)。其框架如下图所示,整个框架类似于图1,唯一的区别是:
在该模型中,矩阵W为词向量矩阵,矩阵D为段落向量矩阵。向量D与另外三个单词上下文的连接(concatenate)或平均(average)结果被用于预测第四个单词。该段落向量表示了当前上下文中缺失的信息,同时也充当了描述该段落主题的一份记忆。
此外,PV-DM模型中的上下文(context)是固定长度的,并从段落上的滑动窗口中采样得到(类似于Word2vec)。段落向量只在同一个paragraph中共享(不在各段落间共享),词向量在paragraph之间共享。换句话说,“powerful”向量对于所有段落都是相同的。 段落向量和词向量都使用随机梯度下降(gradient descent)进行训练,梯度由反向传播(backpropagation)获取。在随机梯度下降的每一步,都可以从随机段落中采样一个固定长度的上下文,从图2网络中计算误差梯度,并使用梯度来更新我们模型中的参数。 在预测期间,模型需要执行一个推理步骤来计算一个新段落的段落向量。这也是由梯度下降得到的。在这个过程中,模型的其它部分,词向量W和softmax权重都是固定的。
总之,整个算法包括以下阶段:
段落向量的优点:
(3) Paragraph Vector without word ordering: Distributed bag of words(分布词袋的段落向量)
PV-DBOW类似于Word2vec中的Skip-gram模型,其结构图如下所示,段落向量在一个小窗口中被训练来预测单词。 除了概念简单之外,这个模型只需要存储更少的数据。我们只需要存储softmax权值,而不像之前模型那样存储softmax的权值和单词向量。 4.对比实验 在本文实验中,每个段落向量都是PV-DM和PV-DBOW两个向量的组合。实验结果发现,PV-DM在大多数任务上都能取得较好的表现,但如果再与PV-DBOW结合,能在更多的任务中取得始终如一的良好表现,因此强烈推荐使用。 本文在两个需要固定长度的段落向量表示的文本理解问题上进行了段落向量的基准测试,即情感分析和信息检索(推理任务)。数据集:
实验参数设置:
实验结果如下表所示,本文模型能取得较好的效果。 信息检索类似于推理任务,实现网页内容和查询的匹配(比较哪两段内容更接近)。实验结果如下: 5.个人感受 本文描述了段落向量Doc2vec,一种无监督学习算法,它可以从可变长度的文本片段中学习固定长度的特征表示,比如句子、段落和文档。向量表示可以被学习来预测段落中上下文周围的单词。本文分别在Stanford和IMDB情感分析数据集上测试,有效证明了方法的性能,以及段落向量能捕获语义信息的优点,且解决词袋模型的许多弱点。 虽然这项工作的重点是文本表示,但本文的方法可以应用于多种领域,比如学习顺序数据的表示。未来,在非文本领域中,我们期望段落向量是词袋和n-grams模型的一个强有力的替代模型。 Doc2vec和Word2vec都是谷歌提出的两个经典工作,Doc2vce是基于Word2vec改进而来,并且继承了后者的许多优点,能在大规模文本数据上捕获文档中的语义和句法信息,加速模型运算。Doc2vec的目标是文档向量化,通过添加段落标记(矩阵D)实现 此外,尽管Doc2vec和Word2vec有效促进了整个NLP领域的发展,但它们也存在缺点。正如机器之心(Hongfeng Ai)总结一样:
四.DeepWalk:网络化数据经典工作(KDD2014)(待续见后) 五.Graph2vec(待续见后) 六.Asm2vec:安全领域经典工作(S&P2019)(待续见后) 七.Log2vec:安全领域经典工作(CCS2019)(待续见后) 八.总结写到这里,这篇文章就分享结束了,再次感谢论文作者及引文的老师们。由于是在线论文读书笔记,仅代表个人观点,写得不好的地方,还请各位老师和博友批评指正。下面简单总结下: 这篇文章我从向量表征角度介绍了6个经典的工作,首先是谷歌的Word2vec和Doc2vec,它们开启了NLP的飞跃发展;其次是DeepWalk和Graph2vec,通过随机游走的方式对网络化数据做一个表示学习,它们促进了图神经网络的发展;最后是Asm2vec和Log2vec,它们是安全领域二进制和日志向量表征的两个经典工作,见解了前面论文的思想,并优化且取得了较好的效果,分别发表在S&P19和CCS19。挺有趣的六个工作,希望您喜欢。其实啊,写博客其实可以从很多个视角写,科研也是,人生更是。 本文主要分享Word2vec和Doc2vec两个经典工作,读者可以思考下面三个问题:
代码在gensim中直接可以调用,大家试试,之前我的博客也介绍得很多。
最后祝大家在读博和科研的路上不断前行。项目学习再忙,也要花点时间读论文和思考,加油!这篇文章就写到这里,希望对您有所帮助。由于作者英语实在太差,论文的水平也很低,写得不好的地方还请海涵和批评。同时,也欢迎大家讨论,继续努力!感恩遇见,且看且珍惜。 (By:Eastmount 2022-09-19 周一夜于武汉 http://blog.csdn.net/eastmount/ ) 参考文献如下,感谢这些大佬!也推荐大家阅读原文。
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 22:45:36- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |