close

前一篇介紹了兩個作者溯源的工作,從二進制代碼和源代碼兩方面實現作者去匿名化或識別。這篇文章主要介紹六個非常具有代表性的向量表徵算法,它們有特徵詞向量表示、文檔向量表示、圖向量表示,以及兩個安全領域二進制和日誌的向量表徵。通過類似的梳理,讓讀者看看這些大佬是如何創新及應用到新領域的,希望能幫助到大家。這六篇都是非常經典的論文,希望您喜歡。一方面自己英文太差,只能通過最土的辦法慢慢提升,另一方面是自己的個人學習筆記,並分享出來希望大家批評和指正。希望這篇文章對您有所幫助,這些大佬是真的值得我們去學習,獻上小弟的膝蓋~fighting!

文章目錄:

一.圖神經網絡發展歷程

二.Word2vec:NLP經典工作(谷歌)

三.Doc2vec

四.DeepWalk(KDD2014)

五.Graph2vec

六.Asm2vec(S&P2019)

七.Log2vec(CCS2019)

八.總結

《娜璋帶你讀論文》系列主要是督促自己閱讀優秀論文及聽取學術講座,並分享給大家,希望您喜歡。由於作者的英文水平和學術能力不高,需要不斷提升,所以還請大家批評指正。同時,前期翻譯提升為主,後續隨着學習加強會更多分享論文的精華和創新,在之後是復現和論文撰寫總結分析。希望自己能在科研路上不斷前行,不斷學習和總結更高質量的論文。雖然自己科研很菜,但喜歡記錄和分享,也歡迎大家給我留言評論,學術路上期待與您前行,加油~

前文推薦:

[AI安全論文] 01.人工智能真的安全嗎?浙大團隊分享AI對抗樣本技術

[AI安全論文] 02.清華張超老師 GreyOne和Fuzzing漏洞挖掘各階段進展總結

[AI安全論文] 03.什麼是生成對抗網絡?GAN的前世今生(Goodfellow)

[AI安全論文] 04.NLP知識總結及NLP論文撰寫之道——Pvop老師

[AI安全論文] 05.RAID-Cyber Threat Intelligence Modeling Based on GCN

[AI安全論文]06.NDSS2020 UNICORN: Runtime Provenance-Based Detector for Advanced Persistent Threats

[AI安全論文] 07.S&P19 HOLMES:基於可疑信息流相關性的實時APT檢測

[AI安全論文] 08.基於溯源圖的APT攻擊檢測安全頂會論文總結

[AI安全論文] 09.ACE算法和暗通道先驗圖像去霧算法詳解(Rizzi | 何愷明老師)

[AI安全論文] 10.英文論文引言introduction如何撰寫及精句摘抄——以入侵檢測系統(IDS)為例

[AI安全論文] 11.英文論文模型設計(Model Design)如何撰寫及精句摘抄——以IDS為例

[AI安全論文] 12.英文論文實驗評估(Evaluation)如何撰寫及精句摘抄(上)——以IDS為例

[AI安全論文] 13.英文SCI論文審稿意見及應對策略學習筆記總結

[AI安全論文] 14.S&P2019-Neural Cleanse 神經網絡中的後門攻擊識別與緩解

[AI安全論文] 15.Powershell惡意代碼檢測論文總結及抽象語法樹(AST)提取

[AI安全論文] 16.CCS2019 針對PowerShell腳本的輕量級去混淆和語義感知攻擊檢測(經典)

[AI安全論文] 17.英文論文Design和Overview撰寫及精句摘抄——以系統AI安全頂會為例

[AI安全論文] 18.英文論文Evaluation(實驗數據集、指標和環境)撰寫及精句摘抄——以系統AI安全頂會為例

[AI安全論文] 19.USENIXSec21 DeepReflect:通過二進制重構發現惡意功能(經典)

[AI安全論文] 20.RAID19 基於Android移動設備的互聯網流量中的位置數據泄漏分析(譯文)

[AI安全論文] 21.S&P21 Survivalism經典離地攻擊(Living-Off-The-Land)惡意軟件系統分析

[AI安全論文] 22.圖神經網絡及認知推理總結和普及-清華唐傑老師

[AI安全論文] 23.惡意代碼作者溯源(去匿名化)經典論文閱讀:二進制和源代碼對比

[AI安全論文] 24.向量表徵:從Word2vec和Doc2vec到Deepwalk和Graph2vec,再到Asm2vec和Log2vec(上)

一.圖神經網絡發展歷程

在介紹向量表徵之前,作者先結合清華大學唐傑老師的分享,帶大家看看圖神經網絡的發展歷程,這其中也見證了向量表徵的發展歷程,包括從Word2vec到Deepwalk發展的緣由。

圖神經網絡的發展歷程如下圖所示:

(1) Hinton早期(1986年)圖神經網絡最早也不是這樣的,從最早期Hinton做了相關的思路,並給出了很多的ideas,他說「一個樣本可以分類成不同的representation,換句話,一個樣本我們不應該去關注它的分類結果是什麼,而更應該關注它的representation,並且它有很多不同的representation,每個表達的意思可能不同」 ,distributed representation後接着產生了很多相關的研究。

(2) 擴展(Bengio到Word2Vec)Andrew Ng 將它擴展到網絡結構上(結構化數據),另一個圖靈獎獲得者Yoshua Bengio將它拓展到了自然語言處理上,即NLP領域如何做distributed representation,起初你可能是對一個樣本representation,但對自然語言處理來講,它是sequence,需要表示sequence,並且單詞之間的依賴關係如何表示,因此2003年Bengio提出了Nerual Probabilistic Language Model,這也是他獲得圖靈獎的一個重要工作。其思路是:每個單詞都有一個或多個表示,我就把sequence兩個單詞之間的關聯關係也考慮進去。

Yoshua Bengio, Rejean Ducharme, Pascal Vincent, and Christian Jauvin. A neural probabilistic language model. Journal of Machine Learning Research (JMLR), 3:1137–1155, 2003.

原文地址:https://www.jmlr.org/papers/volume3/bengio03a/bengio03a.pdf

但是,當時做出來後由於其計算複雜度比較高,很多人無法fellow。直到谷歌2013年提出Word2Vec,基本上做出來一個場景化算法,之後就爆發了,包括將其擴展到paragraph、文檔(Doc2Vec)。補充一句,Word2Vec是非常經典的工作或應用,包括我們安全領域也有相關擴展,比如二進制、審計日誌、惡意代碼分析的Asm2Vec、Log2Vec、Token2Vec等等。

Efficient Estimation of Word Representations in Vector Space

原文地址:https://arxiv.org/abs/1301.3781v3

(3) 網絡化數據時期(Deepwalk)此後,有人將其擴展到網絡化的數據上,2014年Bryan做了Deepwalk工作。其原理非常建立,即:原來大家都在自然語言處理或抽象的機器學習樣本空間上做,那能不能針對網絡化的數據,將網絡化數據轉換成一個類似於自然語言處理的sequence,因為網絡非常複雜,網絡也能表示成一個鄰接矩陣,但嚴格意義上沒有上下左右概念,只有我們倆的距離是多少,而且周圍的點可多可少。如果這時候在網絡上直接做很難,那怎麼辦呢?

通過隨機遊走從一個節點隨機到另一個節點,此時就變成了了一個序列Sequence,並且和NLP問題很像,接下來就能處理了。

原文地址:https://dl.acm.org/doi/10.1145/2623330.2623732

隨後又有了LINE(2015)、Node2Vec(2016)、NetMF(2018)、NetSMF(2019)等工作,它們擴展到社交網絡領域。唐老師們的工作也給了證明,這些網絡本質上是一個Model。

(4) 圖卷積神經網絡(GCN)時期2005年,Marco Gori 實現了Graph Neural Networks。2014年,Yann Lecun 提出了圖卷積神經網絡Graph Convolutional Networks。2017年,Max Welling將圖卷積神經網絡和圖數據結合在一起,完成了GCN for semi-supervised classification,這篇文章引起了很大關注。還有很多不做卷積工作,因此有很多Graph Neural Networks和Neural Message Passing(一個節點的分布傳播過去)的工作。Jure針對節點和Transductive Learning又完成了Node2vec和grahpSAGE兩個經典工作。唐老師他們最近也做了一些工作,包括Graph Attention Network。

GraphSAGE 是 2017 年提出的一種圖神經網絡算法,解決了 GCN 網絡的局限性: GCN 訓練時需要用到整個圖的鄰接矩陣,依賴於具體的圖結構,一般只能用在直推式學習 Transductive Learning。GraphSAGE 使用多層聚合函數,每一層聚合函數會將節點及其鄰居的信息聚合在一起得到下一層的特徵向量,GraphSAGE 採用了節點的鄰域信息,不依賴於全局的圖結構。

Hamilton, Will, Zhitao Ying, and Jure Leskovec. 「Inductive representation learning on large graphs.」 Advances in neural information processing systems. 2017.

原文地址:https://proceedings.neurips.cc/paper/2017/file/5dd9db5e033da9c6fb5ba83c7a7ebea9-Paper.pdf

Data Mining over Networks

DM tasks in networks:– Modeling individual behavior– Modeling group behavioral patterns– Reveal anomaly patterns– Deal with big scale

第一部分花費大量時間介紹了研究背景,接下來我們正式介紹這六個工作。

二.Word2vec:NLP經典工作(谷歌)

原文標題:Efficient Estimation of Word Representations in Vector Space原文作者:Tomás Mikolov, Kai Chen, Greg Corrado, Jeffrey Dean 原文鏈接:https://arxiv.org/pdf/1301.3781.pdf 發表會議:2013 ICLR (Workshop Poster) 參考博客:行歌. Word2Vec論文學習筆記

Word2vec是一個用於生成詞向量(word vectors)並預測相似詞彙的高效預測框架,Word2vec是Google公司在2013年開發。

1.摘要本文提出了兩種新的「神經網絡語言」模型框架,用於計算大規模數據集中單詞的連續向量表示。這些表示的質量是在單詞相似度任務中測量的,並將結果與以前基於不同類型的神經網絡的最佳性能進行對比。

我們觀察到,本文所提出的模型擁有更低的計算成本,並大幅提高了準確性。它能從16億個單詞的數據集中學習到高質量的詞向量(word vectors),並且只需不到一天的時間。此外,該研究表明,這些向量在評估語法和語義特徵詞相似性時具有最先進的性能。

2.引言和貢獻先前的自然語言處理系統將單詞視為原子單位,單詞之間沒有相似性的概念。因此通常採用索引的方式來與詞彙表建立聯繫,但這種手段所能處理的數據量遠遠跟不上複雜任務的大規模數據。如N-gram模型。

近年來,隨着機器學習技術的進步,在更大的數據集上訓練更複雜的模型已經成為可能,而且它們通常優於簡單的模型。可能最成功的概念是「distributed representations of words」(單詞的分布式表示)。例如,基於神經網絡的語言模型明顯優於N-gram模型。

The main goal of this paper is to introduce techniques that can be used for learning high-quality wordvectors from huge data sets with billions of words, and with millions of words in the vocabulary.

基於此,本文提出了Word2Vec,旨在從大規模詞向量中高效學習詞向量,並預測與輸入詞彙關聯度大的其他詞彙。在本文中,我們試圖通過開發新的模型結構來保持單詞之間的線性規律,以及語法和語義的規律,從而來提高這些向量操作的準確性。此外,我們還討論了訓練時間和準確性如何依賴於單詞向量的維數和訓練數據的數量。

例如,向量(King)- 向量(Man)+ 向量(Woman)能推斷出一個相近的單詞 (Queen)的向量表示。

當前,將單詞表示為連續向量的諸多模型中,比較受歡迎的是NNLM(Neural Network Language Model),由Bengio提出,利用線性投影層(linear projection layer)和非線性隱藏層的前饋神經網絡,對詞向量表示和統計語言模型進行聯合學習。其複雜度計算如下,對應輸入層、隱藏層和輸出層。其中,N-輸入單詞數量,D-詞向量維度,H-隱藏層維度,V-詞彙表維度。推薦我2016年在CSDN的博客:word2vec詞向量訓練及中文文本相似度計算

3.系統框架&本文方法本文提出了兩種模型架構,如下圖所示。由圖可知,本文的模型並沒有隱藏層,直接由輸入層做一次映射,就進行分類。

CBOW架構根據上下文預測當前的單詞,而Skip-gram根據當前單詞預測周圍的單詞

(1) 連續詞袋模型(CBOW,continuous bag-of-words model)根據源詞上下文詞彙來預測目標詞彙,可以理解為上下文決定當前詞出現的概率。

在CBOW模型中,上下文所有的詞對當前詞出現概率的影響的權重是一樣的,因此叫CBOW詞袋模型。如在袋子中取詞,取出數量足夠的詞就可以了,至於取出的先後順序是無關緊要的,單詞在時序中的順序不影響投影(在輸入層到投影層之間,投影層直接對上下文的詞向量求平均,這裡已經拋去詞序信息)。

CBOW模型結構類似於前饋NNLM,去除了非線性隱藏層,並且投影層被所有單詞共享(而不再僅僅共享投影矩陣),且輸入層和投影層之間的權重矩陣對於所有單詞位置都是共享的。因此,所有的單詞都被投影到相同的位置。

輸入層初始化的時候直接為每個詞隨機生成一個n維的向量,並且把這個n維向量作為模型參數學習,最終得到該詞向量,生成詞向量的過程是一個參數更新的過程。

輸入:指向單詞的上下文詞彙

輸出:預測該單詞出現的概率

模型複雜度如下:

(2) Skip-Gram模型根據當前單詞預測周圍的單詞。Skip-gram模型類似於CBOW,但它不是基於上下文預測當前單詞,而是試圖基於同一句子中的另一個單詞得到該單詞的最大限度分類。

更準確地說,我們將每個當前詞作為一個輸入,輸入到一個帶連續投影層的對數線性分類器中,預測當前詞前後一定範圍內的詞。該方法增加範圍可以提高詞向量的質量,但也增加了計算複雜度。由於距離較遠的單詞與當前單詞之間的聯繫通常比距離較近的單詞更小,因此我們通過在訓練示例中對這些單詞進行較少的抽樣,從而對距離較遠的單詞給予更少的權重。

Skip-gram表示「跳過某些符號」。語料的擴展能夠提高訓練的準確度,獲得的詞向量更能反映真實的文本含義,但計算複雜度增加。

模型複雜度如下:

優化策略:

Hierarchical Softmax:Huffman樹將較短的二進制代碼分配給頻繁出現的單詞,減少需要評估的輸出單元的數量

負採樣:每次讓一個訓練樣本僅僅更新一小部分的權重

4.對比實驗實驗發現:在大量數據上訓練高維詞向量時,所得到的向量可以用來回答單詞之間非常微妙的語義關係,例如一個城市和它所屬的國家,例如<法國, 巴黎>,<德國, 柏林>。具有這種語義關係的詞向量可以用於改進許多現有的自然語言處理應用,例如機器翻譯、信息檢索和問答系統,並且可能會使其他尚未出現的未來應用成為可能。

5.個人感受

總結:這篇論文研究了在一組在句法和語義語言任務上由各種模型訓練出的詞向量表示的質量。我們觀察到,與流行的神經網絡模型(包括前饋神經網路和循環神經網絡)相比,使用非常簡單的模型結構訓練高質量的詞向量是可能的。

Word2Vec有效解決了先前NNLM計算複雜度太高的問題,另一個很重要的意義在於是無監督方法,不需要花額外的功夫去構建數據集來學習模型,只需要給入一個非常大的文本數據集,就可以得到非常好的效果。Word2Vec的提出,有效推動了工業界和學術界的NLP發展。三.Doc2vec

原文標題:Distributed Representations of Sentences and Documents 原文作者:Quoc V. Le, Tomás Mikolov 原文鏈接:http://proceedings.mlr.press/v32/le14.pdf 發表會議:2014 ICML (CCF-A)

在Word2Vec方法的基礎上,谷歌兩位大佬Quoc Le和Tomas Mikolov又給出了Doc2Vec的訓練方法,也被稱為Paragraph Vector,其目標是將文檔向量化。

1.摘要許多機器學習算法要求將輸入表示為固定長度的特徵向量。當涉及文本時,最常見的一種固定長度特徵是詞袋(bag-of-words)。儘管詞袋模型很受歡迎,但它有兩個主要弱點:它們失去了單詞的順序,並且忽略了單詞的語義。例如,「powerful」, 「strong」 和 「Pairs」等距離相同。

在本文中,我們提出了段落向量Paragraph Vector(Doc2vec),一種無監督算法,它可以從可變長度的文本片段中學習固定長度的特徵表示,比如句子、段落和文檔。

該算法通過一個密集向量來表示每個文檔,該向量被訓練來預測文檔中的單詞。它的構造使我們的算法有可能克服詞袋模型的弱點。實驗結果表明,我們的技術優於詞袋模型和其他文本表示技術。最後,我們在幾個文本分類和情感分析任務上取得了最先進的結果。

2.引言和貢獻

文本分類和聚類在許多應用中發揮着重要的作用,如文檔檢索、網絡搜索、垃圾郵件過濾。這些應用程序的核心是機器學習算法,如邏輯回歸或Kmeans。這些算法通常要求將文本輸入表示為一個固定長度的向量,如文本中最常見的固定長度向量表示方法:

bag-of-words

bag-of-n-grams

然而,詞袋模型存在很多缺點:

詞序丟失:不同的句子可以有完全相同的表示,只要使用相同的單詞

bag-of-n-grams存在數據稀疏和高維度的問題

忽略單詞的語義信息

本文提出了段落向量(Doc2vec),這是一種無監督框架,旨在從文本片段中學習連續分布的向量表示。該方法可以應用於可變長度的文本片段,從短語到句子,再到大型文檔,均可以使用Doc2vec進行向量表徵。

在本文模型中,將段落中要預測的單詞用向量表示來訓練是很有用的。更準確地說,我們將段落向量與一個段落中的幾個單詞向量連接起來,並在給定的上下文中預測後續的單詞。詞向量和段落向量都是通過隨機梯度下降和反向傳播進行訓練的。雖然段落向量在段落中是唯一的,但單詞向量是共享的。預測時,通過固定詞向量並訓練新的段落向量直到收斂來推導段落向量。

Doc2vec優點如下:

段落向量能夠構造可變長度的輸入序列的表示。與以前的一些方法不同,它是通用的,適用於任何長度的文本,包括句子、段落和文檔。

段落向量不需要對單詞加權函數進行特定任務的調整,也不依賴於解析樹。

本文在幾個benchmark數據集上進行實驗,證明了段落向量的優勢。例如,在情感分析任務中,我們獲得了最好的效果,比現有方法更好,其錯誤率相對提高了16%以上。在文本分類任務中,我們的方法令人驚訝地擊敗了詞袋模型,且提高了約30%。

3.系統框架&本文方法

本文框架的靈感來源於先前的Word2vec工作。Doc2vec包括兩種算法:

分布記憶的段落向量:PV-DM(the Distributed Memory Model of Paragraph Vector)

分布詞袋的段落向量:PV-DBOW(the Distributed Bag of Words version of Paragraph Vector)

(1) Paragraph Vector: A distributed memory model首先介紹單詞分布式向量表示的概念。下圖是著名的詞向量學習的框架。其任務是預測一個上下文中給定的另一個單詞。

由圖可知,每個Word都被映射成一個唯一的vector編碼,並組成矩陣W。其中,每列表示一個Word,對應於單詞序列 {w1, w2, …, wT}。列根據該單詞在詞彙表中的位置進行索引,向量的連接(concatenate)或求和(sum)將被用來預測句子中下一個單詞的特徵。

例如,用三個單詞(the、cat、sat)來預測第四個單詞(on)。輸入單詞被映射到矩陣W列中,以預測輸出單詞。

詞向量模型的目標是最大化平均概率:

預測任務通過多分類完成(如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,唯一的區別是:

增加了段落標記(paragraph token),通過矩陣D映射到一個向量中

在該模型中,矩陣W為詞向量矩陣,矩陣D為段落向量矩陣。向量D與另外三個單詞上下文的連接(concatenate)或平均(average)結果被用於預測第四個單詞。該段落向量表示了當前上下文中缺失的信息,同時也充當了描述該段落主題的一份記憶。

每一個段落被映射為矩陣D中的一個唯一的向量

每個單詞同樣被映射為矩陣W中的一個唯一向量

Paragraph vector在框架圖中扮演一個記憶的角色。在詞袋模型中,每次訓練只會截取段落的一小部分進行訓練,從而忽略本次訓練之外的單詞,這樣僅僅訓練出來每個詞的向量表示,段落是每個詞的向量累加在一起的表徵。因此,段落向量可以在一定程度上彌補詞袋模型的缺陷。

此外,PV-DM模型中的上下文(context)是固定長度的,並從段落上的滑動窗口中採樣得到(類似於Word2vec)。段落向量只在同一個paragraph中共享(不在各段落間共享),詞向量在paragraph之間共享。換句話說,「powerful」向量對於所有段落都是相同的。

段落向量和詞向量都使用隨機梯度下降(gradient descent)進行訓練,梯度由反向傳播(backpropagation)獲取。在隨機梯度下降的每一步,都可以從隨機段落中採樣一個固定長度的上下文,從圖2網絡中計算誤差梯度,並使用梯度來更新我們模型中的參數。

在預測期間,模型需要執行一個推理步驟來計算一個新段落的段落向量。這也是由梯度下降得到的。在這個過程中,模型的其它部分,詞向量W和softmax權重都是固定的。

假設語料庫中存在N個段落、M個單詞,想要學習段落向量使得每個段落向量被映射到p維,每個詞被映射到q維,然後模型總共就有N x p +M x q個參數(不包括softmax的參數)。即使當N很大時,模型的參數也可能會很大,但在訓練期間的更新通常是稀疏的,因此模型有效。訓練完之後,段落向量可用於表示段落的特徵,我們可以將這些特徵直接用在傳統的機器學習模型中,如邏輯回歸、支持向量機或K-means。

總之,整個算法包括以下階段:

無監督訓練得到詞向量W(word vectors)

推理階段得到段落向量D(paragraph vectors)

構造標準的機器學習分類器對特定標籤進行預測

段落向量的優點:

它們是從未標記的數據中學習出來的,因此可以很好地用於沒有足夠標記數據的任務。

段落向量解決了詞袋模型的弱點。它們繼承了詞向量的一個重要屬性——語義。

段落向量考慮了單詞的順序,至少在小規模上下文中,能像n-gram模型一樣實現任務,保留大量信息(如詞序)。Doc2vec比bag-of-n-grams模型更好,因為後者會創建非常高維的特徵表示,其泛化能力很差。

在訓練過程中,段落向量能夠記憶整個句子的意義,詞向量則能夠基於全局部分學習到其具體的含義。

(3) Paragraph Vector without word ordering: Distributed bag of words(分布詞袋的段落向量)上述方法考慮了段落向量與單詞向量的連接,以預測文本窗口中的下一個單詞。另一種方法是PV-DBOW(分布詞袋的段落向量)。PV-DBOW忽略輸入中的上下文,強制模型從輸出段落中隨機抽樣來預測單詞。

和PV-DM不同,PV-DBOW使用段落向量來預測單詞

通俗而言,PV-DBOW會在隨機梯度下降的每次迭代中,採樣出一個文本窗口,然後從文本窗口中採樣一個隨機單詞,並形成一個給定段落向量的分類任務。

PV-DBOW類似於Word2vec中的Skip-gram模型,其結構圖如下所示,段落向量在一個小窗口中被訓練來預測單詞。

除了概念簡單之外,這個模型只需要存儲更少的數據。我們只需要存儲softmax權值,而不像之前模型那樣存儲softmax的權值和單詞向量。

4.對比實驗

在本文實驗中,每個段落向量都是PV-DM和PV-DBOW兩個向量的組合。實驗結果發現,PV-DM在大多數任務上都能取得較好的表現,但如果再與PV-DBOW結合,能在更多的任務中取得始終如一的良好表現,因此強烈推薦使用。

本文在兩個需要固定長度的段落向量表示的文本理解問題上進行了段落向量的基準測試,即情感分析和信息檢索(推理任務)。數據集:

情感分析:Stanford sentiment treebank dataset (Socher et al., 2013b)

情感分析:IMDB dataset (Maas et al., 2011)

信息檢索:information retrieval task

下載地址:http://nlp.Stanford.edu/sentiment/

實驗參數設置:

window size設置為8

vector size設置為400

word vector聚合使用的是連接

實驗結果如下表所示,本文模型能取得較好的效果。

信息檢索類似於推理任務,實現網頁內容和查詢的匹配(比較哪兩段內容更接近)。實驗結果如下:

5.個人感受

本文描述了段落向量Doc2vec,一種無監督學習算法,它可以從可變長度的文本片段中學習固定長度的特徵表示,比如句子、段落和文檔。向量表示可以被學習來預測段落中上下文周圍的單詞。本文分別在Stanford和IMDB情感分析數據集上測試,有效證明了方法的性能,以及段落向量能捕獲語義信息的優點,且解決詞袋模型的許多弱點。

雖然這項工作的重點是文本表示,但本文的方法可以應用於多種領域,比如學習順序數據的表示。未來,在非文本領域中,我們期望段落向量是詞袋和n-grams模型的一個強有力的替代模型。

Doc2vec和Word2vec都是谷歌提出的兩個經典工作,Doc2vce是基於Word2vec改進而來,並且繼承了後者的許多優點,能在大規模文本數據上捕獲文檔中的語義和句法信息,加速模型運算。Doc2vec的目標是文檔向量化,通過添加段落標記(矩陣D)實現

此外,儘管Doc2vec和Word2vec有效促進了整個NLP領域的發展,但它們也存在缺點。正如機器之心(Hongfeng Ai)總結一樣:

Doc2vec缺乏統計學的運用,如果數據規模較小,一定程度上會影響段落向量質量的好壞。未來,Doc2vecc可能會融入統計學的知識,從而緩解由於數據不足帶來的問題。同時,模型計算速度也需要優化。比如2016年Fackbook團隊提出了fastText,該模型不像非監督方法如word2vec訓練的詞向量,fastText得到的詞特徵能夠平均在一起形成好的文本表示,而且模型運算速度很快,使用一個標準多核CPU,在十億詞上只需要不到10分鐘便能訓練好。而且不到一分鐘就可以分類好含有312K個類別的五十萬條句子。

四.DeepWalk:網絡化數據經典工作(KDD2014)

(待續見後)

五.Graph2vec

(待續見後)

六.Asm2vec:安全領域經典工作(S&P2019)

(待續見後)

七.Log2vec:安全領域經典工作(CCS2019)

(待續見後)

八.總結

寫到這裡,這篇文章就分享結束了,再次感謝論文作者及引文的老師們。由於是在線論文讀書筆記,僅代表個人觀點,寫得不好的地方,還請各位老師和博友批評指正。下面簡單總結下:

這篇文章我從向量表徵角度介紹了6個經典的工作,首先是谷歌的Word2vec和Doc2vec,它們開啟了NLP的飛躍發展;其次是DeepWalk和Graph2vec,通過隨機遊走的方式對網絡化數據做一個表示學習,它們促進了圖神經網絡的發展;最後是Asm2vec和Log2vec,它們是安全領域二進制和日誌向量表徵的兩個經典工作,見解了前面論文的思想,並優化且取得了較好的效果,分別發表在S&P19和CCS19。挺有趣的六個工作,希望您喜歡。其實啊,寫博客其實可以從很多個視角寫,科研也是,人生更是。

本文主要分享Word2vec和Doc2vec兩個經典工作,大家應該都很熟悉了。讀者也可以思考下面三個問題:

Word2vec和Doc2vec在NLP領域取得了極大的飛躍。那麼,其它計算機領域又將如何作向量表徵呢?網絡化數據或圖數據又將如何實現向量表徵呢?又有哪些代表性工作呢?某些具有獨特背景知識的領域又將如何借鑑其思想,比如安全領域的二進制、醫藥生物領域基因等。

代碼在gensim中直接可以調用,大家試試,之前我的博客也介紹得很多。

model = gensim.models.Word2Vec(size=200, window=8, min_count=10, iter=10, workers=cores)model = gensim.models.doc2vec.Doc2Vec(vector_size = 50, min_count=2,epochs=40)

最後祝大家在讀博和科研的路上不斷前行。項目學習再忙,也要花點時間讀論文和思考,加油!這篇文章就寫到這裡,希望對您有所幫助。由於作者英語實在太差,論文的水平也很低,寫得不好的地方還請海涵和批評。同時,也歡迎大家討論,繼續努力!感恩遇見,且看且珍惜。

貴陽,加油!

(By:Eastmount 2022-09-19)

參考文獻如下,感謝這些大佬!也推薦大家閱讀原文。

[1] 唐傑老網站:http://keg.cs.tsinghua.edu.cn/jietang

[2] Tomás Mikolov, Kai Chen, Greg Corrado, Jeffrey Dean. Efficient Estimation of Word Representations in Vector Space. ICLR, 2013.

[3] 行歌:Word2Vec論文學習筆記. https://zhuanlan.zhihu.com/p/540680257

[4] Quoc V. Le, Tomás Mikolov. Distributed Representations of Sentences and Documents. ICML, 2014: 1188-1196.

[5] 機器之心. Doc2vec. https://www.jiqizhixin.com/graph/

technologies/5d96aebf-926b-4766-89e7-40e68d662e35

[6] Thinkgamer. 論文|Doc2vec的算法原理、代碼實現及應用啟發. https://zhuanlan.zhihu.com/p/336921474

[7] Eastmount. word2vec詞向量訓練及中文文本相似度計算.

https://blog.csdn.net/Eastmount/article/details/50637476

[8] -派神-. Doc2Vec的簡介及應用(gensim). https://blog.csdn.net/

weixin_42608414/article/details/88378984

[9] DeepWalk和Grahp2vec

[10] Asm2vec和Log2vec

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 鑽石舞台 的頭像
    鑽石舞台

    鑽石舞台

    鑽石舞台 發表在 痞客邦 留言(0) 人氣()