理解GloVe模型

2021-08-21 11:25:00 字數 4239 閱讀 1027

輸入:語料庫

輸出:詞向量

方法概述:首先基於語料庫構建詞的共現矩陣,然後基於共現矩陣和glove模型學習詞向量。

x,其元素為xi,

jxi,j。 x

i,jxi,j

的意義為:在整個語料庫中,單詞i

i和單詞j

j共同出現在乙個視窗中的次數。 

舉個栗子: 

設有語料庫:

中心詞視窗內容0i

i love you

1love

i love you but

2you

i love you but you

3but

love you but you love

4you

you but you love him

5love

but you love him i

6him

you love him i am7i

love him i am sad8am

him i am sad

9sad

i am sadlo

ve,b

ut+=

1xlove,but+=1lo

ve,y

ou+=

1xlove,you+=1lo

ve,h

im+=

1xlove,him+=1lo

ve,i

+=1xlove,i+=1x=

∑i,j

nf(x

i,j)

(vti

vj+b

i+bj

−log

(xi,

j))2

j=∑i,jnf(xi,j)(vitvj+bi+bj−log(xi,j))2ivi

jvjij

ibijbj

fn∗n

n∗ni=∑

j=1n

xi,j

xi=∑j=1nxi,jii

,k=x

i,kx

ipi,k=xi,kxiki

atio

i,j,

k=pi

,kpj

,kratioi,j,k=pi,kpj,kat

ioi,

j,kratioi,j,kat

ioi,

j,kratioi,j,k的值單

詞j,k

單詞j,k相關單

詞j,k

單詞j,k

不相關單詞i

,k單詞i,k

相關趨近1很大單

詞i,k

單詞i,k

不相關很小

趨近1i

vi、vjvj

、vkvk通過某種函式計算rat

ioi,

j,kratioi,j,k

,能夠同樣得到這樣的規律的話,就意味著我們詞向量與共現矩陣具有很好的一致性,也就說明我們的詞向量中蘊含了共現矩陣中所蘊含的資訊。 

設用詞向量vivi

、vjvj、vkvk

計算rati

oi,j

,kratioi,j,k

的函式為g(v

i,vj

,vk)

g(vi,vj,vk)

(我們先不去管具體的函式形式),那麼應該有: i,

kpj,

k=ra

tioi

,j,k

=g(v

i,vj

,vk)

pi,kpj,k=ratioi,j,k=g(vi,vj,vk)i,

kpj,

k=g(

vi,v

j,vk

)pi,kpj,k=g(vi,vj,vk)=∑

i,j,

kn(p

i,kp

j,k−

g(vi

,vj,

vk))

2j=∑i,j,kn(pi,kpj,k−g(vi,vj,vk))2∗n

∗nn∗n∗n(v

i,vj

,vk)

g(vi,vj,vk)ij

(vi,

vj,v

k)g(vi,vj,vk)i−

vjvi−vji−

vjvi−vjat

ioi,

j,kratioi,j,k(v

i,vj

,vk)

g(vi,vj,vk)vi

−vj)

tvk(vi−vj)tvkvi

−vj)

tvk(vi−vj)tvkxp

()exp()(v

i,vj

,vk)

=exp

((vi

−vj)

tvk)

g(vi,vj,vk)=exp((vi−vj)tvk)xp

()exp()i,

kpj,

k=g(

vi,v

j,vk

)pi,kpj,k=g(vi,vj,vk)i,

kpj,

k=ex

p((v

i−vj

)tvk

)pi,kpj,k=exp((vi−vj)tvk)i,

kpj,

k=ex

p(vt

ivk−

vtjv

k)pi,kpj,k=exp(vitvk−vjtvk)i,

kpj,

k=ex

p(vt

ivk)

exp(

vtjv

k)pi,kpj,k=exp(vitvk)exp(vjtvk)i,

k=ex

p(vt

ivk)

並且pj

,k=e

xp(v

tjvk

)pi,k=exp(vitvk)並且pj,k=exp(vjtvk)i,

j=ex

p(vt

ivj)

pi,j=exp(vitvj)i,

kpj,

k=g(

vi,v

j,vk

)pi,kpj,k=g(vi,vj,vk)i,

j=ex

p(vt

ivj)

pi,j=exp(vitvj)og

(pi,

j)=v

tivj

log(pi,j)=vitvj=∑

i,jn

(log

(pi,

j)−v

tivj

)2j=∑i,jn(log(pi,j)−vitvj)2∗n

n∗n∗n∗

nn∗n∗nxp

()exp()xp

()exp()og

(pi,

j)=v

tivj

和log

(pj,

i)=v

tjvi

log(pi,j)=vitvj和log(pj,i)=vjtviog

(pi,

j)log(pi,j)og

(pj,

i)log(pj,i)ti

vjvitvjtj

vivjtviog

(pi,

j)=v

tivj

log(pi,j)=vitvjog

(xi,

j)−l

og(x

i)=v

tivj

log(xi,j)−log(xi)=vitvjog

(xi,

j)=v

tivj

+bi+

bjlog(xi,j)=vitvj+bi+bjjbj

og(x

i)log(xi)ibi

=∑i,

jn(v

tivj

+bi+

bj−l

og(x

i,j)

)2j=∑i,jn(vitvj+bi+bj−log(xi,j))2=∑

i,jn

f(xi

,j)(

vtiv

j+bi

+bj−

log(

xi,j

))2j=∑i,jnf(xi,j)(vitvj+bi+bj−log(xi,j))2(x

)={(

x/xm

ax)0.75,1

,if 

xaxif x

>=xm

axf(x)={(x/xmax)0.75,if x=xmax

Glove模型的理解

glove模型的理解可以看如下的文章內容 glove模型的理解 這個檔案包含了對應的50維度,100維度以及200維度的詞向量矩陣的內容。glove對應的矩陣的含義 根據語料庫 corpus 構建乙個共現矩陣 co ocurrence matrix 什麼是共現矩陣?矩陣中的每乙個元素代表單詞和上下文...

GloVe模型的理解及實踐(1)

1 原理 功能 基於語料庫構建詞的共現矩陣,然後基於共現矩陣和glove模型對詞彙進行向量化表示 輸入 語料庫 輸出 詞向量 2 與skip gram cbow模型比較 例如 句子為 dog barked at the mailman 目標單詞為 at skip gram模型 skip gram模型...

glove中文詞向量 GloVe

做自然語言處理的時候很多時候會用的word embedding,訓練詞向量的方法主要有兩條路 glove模型就是將這兩中特徵合併到一起的,即使用了語料庫的全域性統計特徵,也使用了區域性的上下文特徵。為了做到這一點glove模型引入了co occurrence probabilities matrix...