輸入:語料庫
輸出:詞向量
方法概述:首先基於語料庫構建詞的共現矩陣,然後基於共現矩陣和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...