1. 程式人生 > >Word Embedding模型: 詞、短語及它們的組合的分散式表示

Word Embedding模型: 詞、短語及它們的組合的分散式表示

摘要

  最近引入的連續Skip-gram模型是學習可以高質量分散式向量表示的有效方法,而這種分散式向量表示可以刻畫大量精確的句法和語義關係。本文我們介紹了Skip-gram模型的多種擴充套件,它們可以提升向量的質量和訓練速度。通過對頻繁詞進行重複取樣我們可以極大地提升學習速度,學習到更有規律的單詞表示。我們還描述了一種分層softmax的簡單代替方案稱作負抽樣。
  單詞表示的內在侷限是它們對單詞順序的無差異化以及不能表示慣用短語。例如,在單詞表示中,難以簡單地將“Canada”和“Air”結合得到“Air Canada”。受此例所激發,我們給出了一種找到文字中的短語的簡單方法,並且表明為百萬級的短語學習到好的向量表示是可能的。

引言

  在自然語言處理任務中,向量空間中單詞的分散式表示通過對相似的詞分類可以幫助學習演算法取得更好的效果。單詞表示的最早使用可以追溯到1986年[Rumelhart, Hinton and Williams]。此後該思想便被應用於統計語言模型中,獲得了極大的成功。後續的工作包括將其應用到自動語音辨識,機器翻譯以及大量的自然語言處理任務中。
  最近,Mikolov等人引入了Skip-gram模型[8],這是一種從大量分結構化的文字資料中學習高質量的向量表示的有效方法。與之前大量使用的用神經網路結構學習單詞向量的架構不同,訓練Skip-gram模型(如圖1)不涉及密集的矩陣乘法。這就使得訓練非常有效:經過優化的單機訓練可以在一天訓練1000億個單詞。
  使用神經網路計算得到的單詞表示非常有趣,因為學習到的向量可以顯式編碼很多語言規律和模式。有點驚人的是,很多這些模式可以表示成linear translations(線性變換)。例如,v

ec(Madrid")vec(Spain")+vec(France")的向量計算比任何詞向量都更接近於vec("Paris")
  本文我們給出了原始Skip-gram模型的若干擴充套件。我們的研究表明在模型訓練時對頻繁詞進行子抽樣可以極大提升訓練速度(2-10倍),並且提升了欠頻繁詞的表示精度。此外,我們介紹了用Noise Contrastive Estimation(噪音對比估計)的簡單變體來訓練Skip-gram模型,實驗表明我們的方法相比於之前工作中使用的更加複雜的分層softmax方法,可以得到更好的頻繁詞的向量表示,訓練速度更快。
  單詞表示受限於它們不能表示慣用語,慣用語不是單個詞的簡單組合。例如波士頓環球報是一家報紙,但它不是波士頓和環球兩個單詞組合在一起的意思。因此,使用向量來表示整個短語使得Skip-gram模型更具有表達力。其它的通過構成詞向量來表示句子意思的技術也可以受益於短語向量而不是詞向量。
  將基於詞的模型擴充套件到基於短語的模型相當簡單。首先我們使用資料驅動的方法識別大量的短語,然後在訓練階段我們將短語視作單個符號。為了評價短語向量的質量,我們生成了包含單詞和短語的類比推理任務的測試集。我們測試集中一個典型的類比對是蒙特利爾:蒙特利爾加拿大人隊,多倫多:多倫多楓葉隊(二者都是北美冰球聯盟的俱樂部)。因此如果vec(Montreal Canadiens)-vec(Montreal)+vec(Toronto)的最近表示為vec(Toronto Maple Leafs),那麼我們就認為是一個正確的短語表示。

Skip-gram模型

  Skip-gram模型的訓練目標是發現可以用於預測句子或者文件中附近的詞(surrounding words)的單詞表示。更正式地講,給定一個訓練詞w1,w2,w3,,wT序列,Skip-gram模型的目標是最大化平均對數概率
  

1Tt=1Tcjc,j0logp(wt+j|wt)
其中c是訓練環境的規模(可以是中心詞center wordwt的函式)。大c會得到更多的訓練樣本從而能得到更高的精度,當然也會有著更多的訓練時間。基本的Skip-gram模型使用下面的softmax函式定義p(wt+j|wt)
p(wO|wI)=exp(vwOvwI)Ww=1exp(vwvwI)
其中vwvw是w的輸入和輸出的向量表示,W是詞典中的單詞個數。這種方式不太實際,因為計算logp(wO|wI)正比於W,而W通常非常大(105107)。

分層Softmax

  完全softmax的有效近似計算是分層Softmax。在神經網路語言模型環境中,首先由Morin和Bengio引入。主要優勢在於在神經網路中不需要評估W個輸出節點而是log2(W)個節點來得到概率分佈。
  分層Softmax使用一種輸出層的二元樹表示(有W個詞)作為它的葉子節點,而且對於每個節點,顯式地表示它的子節點的相關概率。這些定義了一個將概率分配到單詞的隨機遊走模型。
  更精確的是,我們可以通過一個從樹根的合適路徑到達每個單詞w。令n(w,j)為從根到w的路徑上的第j個節點,令L(w)為這條路徑的長度,所以n(w,1)=rootn(w,L(w))=w。此外,對於任何內部節點n,令ch(n)n的一個任意固定的子代,若x為真令[x]為1,否則為-1。那麼用分層softmax定義的p(wO|wI)如下:

p(w|wI)=j=1L(w)1σ([n(w,j+1)=ch(n(w,j))]vn(w,j)vwI)
其中σ(x)=1/(1+exp(x))。可以證明Ww=1p(w|wI)

相關推薦

Word Embedding模型: 短語它們組合分散式表示

摘要   最近引入的連續Skip-gram模型是學習可以高質量分散式向量表示的有效方法,而這種分散式向量表示可以刻畫大量精確的句法和語義關係。本文我們介紹了Skip-gram模型的多種擴充套件,它們可以提升向量的質量和訓練速度。通過對頻繁詞進行重複取樣我們可以

基於騰訊AI Lab向量進行未知短語向量補齊與域內相似搜尋

(~免費廣告位一則~) AI Lab開源大規模高質量中文詞向量資料,800萬中文詞隨你用,質量非常高,就是一個詞向量.txt檔案都有16G之多,太誇張了。。不過的確非常有特點: ⒈ 覆蓋率(Coverage): 該詞向量資料包含很多現有公開的詞向量資料所欠缺的

“什麼是Word Embedding嵌入)”的個人理解

首先貼上一下Wiki英文的定義: Word embedding is the collective name for a set of language modeling and feature learning techniques in natural language

canvas saverestore圖片組合

var c=document.getElementById("myCanvas"); var ctx=c.getContext("2d"); ctx.fillStyle="red"; ctx.fillRect(20,20,75,50); ctx.save(); // 儲存當前環境的狀態 ctx.globa

使用CSocketCSocketFileCArchive組合接收不到資料的一種原因

這幾天在做網路程式設計,發現一個問題 客戶端使用CSocket、CSocketFile及CArchive組合, 關鍵程式碼如下: void CClientSock::init(CClientDlg* pdlgClient) {m_pdlgClient=pdlgClient;

模型(BOW,bag of words)和向量模型Word Embedding)概念介紹

例句:Jane wants to go to Shenzhen.Bob  wants to go to Shanghai.一、詞袋模型    將所有詞語裝進一個袋子裡,不考慮其詞法和語序的問題,即每個詞語都是獨立的。例如上面2個例句,就可以構成一個詞袋,袋子裡包括Jane、w

嵌入 word embedding

原文連結:https://blog.csdn.net/ch1209498273/article/details/78323478  詞嵌入(word embedding)是一種詞的型別表示,具有相似意義的詞具有相似的表示,是將詞彙對映到實數向量的方法總稱。詞嵌入是自然語言處理的重要突破

Hbase架構工作原理資料物理模型Hbase優化

 一、HBase 簡介 1.HBase 概述 HBase 是一個構建在HDFS之上的,分散式的、面向列的開源資料庫 HBase 是 Google BigTable的開源實現,它主要用於儲存海量資料 個人理解:      

LeNet-5模型prototxt檔案描述各層含義註釋

LeNet-5模型描述 本節例程中的LeNet-5模型與原版稍有不同(例如,將Sigmoid啟用函式改為ReLU),其描述檔案在Caffe目錄下的examples/mnist/lenet_train_test.prototxt中,內容及程式碼註釋如下: name

Keras入門(二)模型的儲存讀取載入

本文將會介紹如何利用Keras來實現模型的儲存、讀取以及載入。   本文使用的模型為解決IRIS資料集的多分類問題而設計的深度神經網路(DNN)模型,模型的結構示意圖如下: 模型儲存   Keras使用HDF5檔案系統來儲存模型。模型儲存的方法很容易,只

Elastic5.5.2安裝中文分器教程簡單測試

一、下載分詞器安裝包 首先進入各版本下載頁面,選擇相應的版本進行下載(和自己安裝的ElasticSearch版本保持一致)。我這裡安裝的是5.5.2的ElasticSearch,所以選擇對應的5.5.2軟體包。 右鍵·複製下載連結·,在Linux系統中

網頁爬蟲中文分全文搜尋自動定時排程

    如題,實現網頁爬蟲,將制定URL下的網頁內容進行爬查,去掉HTML程式碼後儲存到本地,並對這些內容進行中文分詞,建立索引,而後提供全文搜尋服務。爬蟲、分詞並建立索引,可以單獨執行,也可以整合在一起進行定時排程而無需人工干預。不需要安裝任何資料庫,部署簡單。部署好之後

java 介面抽象類具體類內部類匿名內部類的區別它們之間的關係

其實java內部類也是一個類,與其他類不同的是內部類是類中類,它的作用範圍只能在這個類中。 java 匿名內部類: 匿名內部類的定義語法如下: new 父類構造器(引數列表)|實現介面() { //匿名內部類的類體部分 } 雖然看上去很簡單,但是還有一

DevOps 能力模型演進案例剖析

作者介紹 王曉偉 2009年創辦麥圖科技,專注於電商行業的垂直搜尋, 受到多家天使、Pre-A投資機構的關注。 有10+年網際網路、遊戲、核心安全從業經驗。歷任軟體工程師、高階軟體工程師、技術經理和總監。 目前主要從事手機遊戲發行平臺的構建,推進公司DevOps的培養和運維自動化的實施。 主題簡介

[未完] 深度學習 之 向量(Word Embedding)篇 :word2vec

歡迎參觀 一> 個人小站 一. 詞向量表示形式 在使用神經網路模型進行文字分類或者機器翻譯時,前提工作是要對整理好的文字資料進行詞向量化 (Word Embedding) ,既使用向量形式代表詞。 1.1 One-hot represen

無監督學習:嵌入or向量(Word Embedding

  National Taiwan University (NTU)李巨集毅老師的《Machine Learning》的學習筆記,因此在全文對視訊出現的內容多次引用。初出茅廬,學藝不精,有不足之處還望大家不吝賜教。   歡迎大家在評論區多多留言互

solr 6.2.0系列教程(二)IK中文分器配置新增擴充套件停止同義詞

前言 2、solr的不同版本,對應不同版本的IK分詞器。由於IK 2012年停止更新了。所以以前的版本不適合新版的solr。 有幸在網上扒到了IK原始碼自己稍微做了調整,用來相容solr6.2.0版本。IK原始碼下載地址 步驟 1、解壓下載的src.rar壓縮包,這是我建

「地址密碼私鑰助記Keystore 」釋義生成KeyStore

隨著國內區塊鏈交易平臺的逐步關閉,區塊鏈資產錢包的使用會越來越頻繁和重要(錢包的選擇和使用可參考“不知道你的幣該存哪?手把手的錢包系列教程來了!”及「續」不知道你的幣該存哪?手把手的錢包系列教程來了!)。 國內最好的以太系錢包當屬 imToken,在使用錢包時,有幾個名詞必

word embedding模型與測試

模型 text: I like deep learning. I like NLP. I enjoy flying. one-hot 缺點:高維度,稀疏性,相似度無法衡量 co-occurrence 優點:相似度一定程度上可以衡量 缺點

嵌入向量(Word Embedding)的原理和生成方法

Word Embedding 詞嵌入向量(WordEmbedding)是NLP裡面一個重要的概念,我們可以利用Word Embedding將一個單詞轉換成固定長度的向量表示,從而便於進行數學處理。本文將介紹Word Embedding的使用方式,並講解如何通過神經網路生成W