Text Embedding - BD-SEARCH/MLtutorial GitHub Wiki
์ธ๊ณต์ ๊ฒฝ๋ง ๋ชจ๋ธ์ ์ ๋ ฅ๊ฐ์ ์ซ์์ด๋ค. ํ ์คํธ๋ฅผ ๋ฅ๋ฌ๋์ ์ด์ฉํ๋ ค๋ฉด ์ซ์ ํํ๋ก ๋์ด ์๋ Vector ํํ๋ก ๋ฐ๊ฟ์ฃผ์ด์ผ ํ๋ค. ์ด ๊ฒ์ ๋จ์ด/๋ฌธ์ฅ/๊ธ์ ์๋ฒ ๋ฉ(Embedding)ํ๋ค๊ณ ๋ถ๋ฅธ๋ค.
- ๋จ์ด์ ์๋ฏธ๋ ์ฃผ๋ณ ๋จ์ด์ ์ํด ํ์ฑ๋๋ค
- ๋จ์ด๋ฅผ ๋ฒกํฐ๋ก ํํํ๋ ์ต๊ทผ ์ฐ๊ตฌ๋ ๋๋ถ๋ถ ์ด ๊ฐ์ค์ ๋ฐ๋ผ ํ์ฑ๋จ
- ๋จ์ด์ ์๋ฏธ๋ฅผ ์ ํํ๊ฒ ํ์ ํ ์ ์๋ ๋ฒกํฐ ํํ
- ์ด๋ค ๋จ์ด์ ์ฃผ๋ชฉํ์ ๋ ๊ทธ ์ฃผ๋ณ์ ๋จ์ด๊ฐ ๋ช ๋ฒ ๋ฑ์ฅํ๋์ง๋ฅผ ์ธ์ด ์ง๊ณํ๋ ๋ฐฉ๋ฒ
-
you say goodbye and I say hello.
๋ผ๋ ๋ฌธ์ฅ์ด ์์ ๋, window size=1์ธ ๊ฒฝ์ฐ ๋์๋ฐ์ ํ๋ ฌ์ ์๋์ ๋ํ๋ผ ์ ์๋ค. - ๋ฒกํฐ ๊ฐ ์ ์ฌ๋๋ ์ฝ์ฌ์ธ ์ ์ฌ๋๋ฅผ ์ด์ฉํด ๊ณ์ฐํ ์ ์๋ค.
word | you | say | goodbye | and | I | say | hello | . |
---|---|---|---|---|---|---|---|---|
you | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
say | 1 | 0 | 1 | 0 | 1 | 1 | 1 | 0 |
- ์ค์ํ ์ ๋ณด๋ ์ต๋ํ ์ ์งํ๋ฉด์ ๋ฒกํฐ์ ์ฐจ์์ ์ค์ด๋ ๊ธฐ๋ฒ
X = USV^T)
- U, V๋ ์ง๊ตํ๋ ฌ(orthogonal matrix)์ด๊ณ , ๊ทธ ์ด๋ฒกํฐ๋ ์๋ก ์ง๊ตํ๋ค.
- S๋ ๋๊ฐํ๋ ฌ(digonal matix). ํด๋น ์ถ์ ์ค์๋๋ก ๊ฐ์ฃผํ ์ ์๋ ํน์๊ฐ(singular value)์ด ํฐ ์์๋๋ก ๋์๋์ด ์์.
- S ํ๋ ฌ์์, ํน์๊ฐ์ด ์ ์ ์์๋ฅผ ์๋ผ๋ด๋ ๋ฐฉ์์ผ๋ก ๋ฒกํฐ ์ฐจ์์ ๊ฐ์์ํฌ ์ ์๋ค.
- NLP (Natural Language Processing, ์์ฐ์ด์ฒ๋ฆฌ) : ์ปดํจํฐ๊ฐ ์ธ๊ฐ์ด ์ฌ์ฉํ๋ ์ธ์ด๋ฅผ ์ดํดํ๊ณ ๋ถ์ํ ์ ์๊ฒ ํ๋ ๋ถ์ผ
- ex) 'Naive Bayes'๋ฅผ ์ฌ์ฉํ ์คํธ ๋ฉ์ผ ๋ถ๋ฅ๊ธฐ
- ์ฑ๋ฅ ์์ฒด๋ ์ข์ง๋ง, ๋จ์ด๊ฐ ๋ค๋ฅธ ๋จ์ด์ ์ด๋ค ์ฐจ์ด์ ์ ๊ฐ์ง๋์ง๋ ์ดํดํ ์ ์๋ค -> ๋ฒกํฐํ ๊ณ ์
NNLM -> RNNLM -> CBOW, Skip-gram (2013) -> word2vec
Input layer, projection layer, hidden layer, output layer
- ๋ฌธ์ฅ์์ ํ์ฌ ๋ณด๊ณ ์๋ ๋จ์ด ์ด์ ์ ๋จ์ด N๊ฐ๋ฅผ one-hot encoding์ผ๋ก vectorํ ํ๋ค
- vocab size๋ฅผ V๋ผ ํ๊ณ , projection layer์ size๋ฅผ P๋ผ ํ์ ๋, 1.์ vector๋ค์ VxP ํฌ๊ธฐ์ projection matrix์ ์ํด ๋ค์ ๋ ์ด์ด๋ก ๋ค์ด๊ฐ๋ค
- 2.์ ๊ฐ์ input์ด๋ผ ์๊ฐํ๊ณ , ํฌ๊ธฐ H์ hidden layer๋ฅผ ๊ฑฐ์ณ output layer์์ ๊ฐ ๋จ์ด๋ค์ด ๋์ฌ ํ๋ฅ ์ ๊ณ์ฐํ๋ค
- ์ด๋ฅผ back-propagationํด์ ๋คํธ์ํฌ์ weight๋ฅผ ์ต์ ํํ๋ค
- 1-4์์ ์ฌ์ฉํ๊ฒ ๋ ๋จ์ด์ vector๋ค์ projection layer์ ๊ฐ์ผ๋ก์, ๊ฐ ๋จ์ด๋ค์ ํฌ๊ธฐ P์ vector๊ฐ ๋๋ค
- ํ์ฌ์ neural network ๊ธฐ๋ฐ ๋จ์ด ํ์ต ๋ชจ๋ธ์ ๊ฑฐ์ ์ด ๋ชจ๋ธ์์๋ถํฐ ๋ฐ์
- ๋ช๊ฐ์ ๋จ์ด๋ฅผ ๋ณผ ๊ฑด์ง์ ๋ํ ํ๋ผ๋ฏธํฐ N์ด ๊ณ ์ ๋์ด์ผ ํ๊ณ , ๋ฐ๋ก ์ ํด์ค์ผ ํ๋ค
- ์ด์ ์ ๋จ์ด๋ค์ ๋ํด์๋ง ์ ๊ฒฝ์ฐ๊ณ ๋ค์ ๋จ์ด๋ ๊ณ ๋ คํ์ง ๋ชปํ๋ค
- ๋๋ฆฌ๋ค (์น๋ช ์ )
- ๋จ์ด๋ค์ projection ์ํค๋ ๊ฒ (2) : NxP
- projection layer์์ hidden layer๋ก ๋์ด๊ฐ๋ ๊ฒ (3) : NxPxH
- hidden layer์์ output layer๋ก ๋์ด๊ฐ๋ ค๋ฉด ๋ชจ๋ ๋จ์ด์ ๋ํ ํ๋ฅ ๊ณ์ฐ (3) : HxV
=> parameter ๊ฐ์ = NxP + NxPxH + HxV
- ๋ณดํต vocab size V๋ 1,000๋ง ๊ฐ ์ ๋. N=10, P=500, H=500.
=> O(HxV) = O(50์ต)
HxV -> Hxln(V) : O(NxPxH) = O(250๋ง)
- NNLM์ RNNํํ๋ก ๋ณํ (projection layer๊ฐ ์๋ค)
Input, hidden, output layer
hidden layer์ recurrentํ ์ฐ๊ฒฐ์ด ์์ด ์ด์ ์๊ฐ์ hidden layer์ ์ ๋ ฅ์ด ๋ค์ ์ ๋ ฅ๋๋ ํ์
- U : word embedding์ผ๋ก ์ฌ์ฉ
- H : hidden layer์ ํฌ๊ธฐ
๊ฐ ๋จ์ด๋ ๊ธธ์ด H์ vector๋ก ํํ๋๋ค.
- NNLM๊ณผ ๋ค๋ฅด๊ฒ ๋ช ๊ฐ์ ๋จ์ด์ธ์ง์ ๋ํด ์ ํด์ค ํ์๊ฐ ์๋ค.
- ํ์ต์์ผ์ค ๊ธ์ ๋จ์ด๋ฅผ ์์ฐจ์ ์ผ๋ก ์
๋ ฅํ๋ ๋ฐฉ์์ผ๋ก ํ์ต ์งํ
- recurrentํ ๋ถ๋ถ์ด short-term memory ์ญํ ์ ํ๋ฉด์ ์ด์ ๋จ์ด๋ฅผ ๋ณด๋ ํจ๊ณผ
- input layer์์ hidden layer๋ก ๋์ด๊ฐ๋ ๊ฒ : H
- hidden(t-1)์์ hidden(t)๋ก ๋์ด๊ฐ๋ vector ๊ณ์ฐ : HxH
- hidden layer์์ output๊ฒฐ๊ณผ๋ฅผ ๋ด๊ธฐ ์ํด ๋ชจ๋ ๋จ์ด์ ๋ํด ํ๋ฅ ๊ณ์ฐ : HxV
- ๋ณต์ก๋ : O(HxH + HxV)
- V -> ln(V).
- ๋ณต์ก๋ : O(HxH)
- H = 500 -> O(24๋ง)
- NNLM์ด O(250๋ง)์ด์๋ ๊ฒ์ ์๊ฐํ๋ฉด 1/N๋ฐฐ ์ค์ด๋ ๊ฒ
- ์ฑ๋ฅ ๋น๊ต ์คํ
- pair / (Athens, Greece) -> Oslo -> ๊ฒฐ๊ณผ ๋ฅผ ์ฃผ๋ ๋ฐฉ์
- semantic : ์๋, ํํ, ์ฃผ, ๋์์ ๊ด๋ จ๋ ๊ฒ
- syntactic : ๋ฌธ๋ฒ์ ๊ด๋ จ๋ ๊ฒ
์์ ํ์์๋ v(Greece)-v(Athens)+v(Oslo) = v(Norway)
-
๋จ์ด ๋ฒกํฐ ๊ธธ์ด : 640
-
RNNLM, NNLM์ ๋นํด CBOW, Skip-gram์ด Semantic, Syntactic์ ๋ํด ๋ ์ข์ ๊ฒฐ๊ณผ
- Skip-gram์ด Syntactic์ ๋ํ ์ ํ๋๋ ๋ฎ๋ค
- ํ์ง๋ง Semantic์ ๋ํด์๋ ํจ์ฌ ๋์ ๊ฒฐ๊ณผ
- NEG-k : k๊ฐ ๋จ์ด๋ฅผ ์ ํํ negative sampling
- HS-Huffman : Huffman Tree๋ฅผ ์ด์ฉํ Hierarchical Softmax
- NCE-k : negative sampling๊ณผ ์ ์ฌํ ๋ฐฉ๋ฒ. Noise Contrastive Estimation
- ์ด ๋ฐฉ๋ฒ์ ๊ธฐ์ด๋ก ํ์ฌ ๋ชฉ์ ํจ์๋ฅผ ์กฐ๊ธ ๋ฐ๊ฟ negative sampling ์์ฑ
์ ์ฒด์ ์ผ๋ก Hierarchical softmax๋ฅผ ์ฌ์ฉํ ๊ฒ๋ณด๋ค negative sampling์ด ๋ ์ข์ ๊ฒฐ๊ณผ
์์ฃผ ๋ฑ์ฅํ๋ ๋จ์ด๋ฅผ subsamplingํ๋ฉด ํ์ต์๊ฐ์ด ์ค์ด๋ค๊ณ , ์ฑ๋ฅ๋ ํฅ์
ํ์ง๋ง, ์ฌ๊ธฐ์ Hierarchical softmax๊ฐ ์์ข๊ฒ ๋์๋ค๊ณ ์ค์ ๋์ ๋ฐฉ๋ฒ์ ์๋!
- phrase์ ๋ํด ์คํ์ ํ๋ฉด Hierarchical softmax >> Negative sampling
- ์ด๋ค ๋ฌธ์ ์ ์ ์ฉํ๋์ง์ ๋ฐ๋ผ ์ฑ๋ฅ์ด ๋ฌ๋ผ์ง๋ค.
- NNLM, RNNLM ์ ๋จ์ด๋ฅผ ๋ฒกํฐํํ๋ ๋ฐ ์ข์ ๋ฐฉ๋ฒ์ด์ง๋ง, ํ์ต์ด ๋๋ฌด ๋๋ฆฌ๋ค.
- ์ด๊ฑธ ํด๊ฒฐํ๊ธฐ ์ํด word2vec์ด ๋ฑ์ฅํ์๋ค.
-
์ ํ๋ ์ฐจ์์ผ๋ก ๋จ์ด๋ฅผ vector๋ก ๋ํ๋ด๋ ๋ฐฉ๋ฒ
- ์ฅ์
- ๋จ์ด ๋ฒกํฐ ๊ฐ์ ์ ์ฌ๋๋ฅผ ์ฝ์ฌ์ธ ์ ์ฌ๋๋ก ๊ตฌํ ์ ์๋ค. (one-hot encoding์ ๋จ์ ํด๊ฒฐ)
- ํ์ํ ๋ฒกํฐ ์ฐจ์ ์๊ฐ ์ ๋ค.
- ์ฅ์
-
Word Embedding์ ์
- ๊ทผ์ฒ์ ๋์จ ๋จ์ด/๋น์ทํ ๋จ์ด์ผ์๋ก ๋ฒกํฐ ๊ฐ์ ์ ์ฌ๋๊ฐ ๋๋ค.
์๋ฅผ ๋ค์ด '์์ดํฐ ์ฑ๋ฅ'์ด๋ผ๋ ๋ฌธ์ฅ์ด ๋์ค๋ ๋น๋๊ฐ ๋๋ค๋ฉด '์์ดํฐ' ๋ฒกํฐ์ '์ฑ๋ฅ' ๋ฒกํฐ์ ์์น๊ฐ ๋น์ทํ ๊ฒ์ด๋ค. (๋ ๋ฒกํฐ ๊ฐ์ ์ ์ฌ๋๊ฐ ๋๋ค.) - ๋จ์ด ๋ฒกํฐ ๊ฐ์ ๋ง์
/๋บ์
ํ์๋ ๊ทธ ๊ด๊ณ๊ฐ ์ ์ง. ๋ฒกํฐ์ ์์น์ ๊ฑฐ๋ฆฌ๊ฐ ์ค์ ๋จ์ด ๊ฐ์ ๊ด๊ณ๋ฅผ ๋ฐ์.
์๋ฅผ ๋ค์ด ์์ฌ-์ฌ์+๋จ์์ ๊ฐ์ ์ฐ์ฐ์ ํ๋ฉด '๋จ์์ฌ' ๋ฒกํฐ์ ๊ฐ๊น์ด ๊ฒฐ๊ณผ๊ฐ ๋์ค๊ฒ ๋๋ค.
- ๊ทผ์ฒ์ ๋์จ ๋จ์ด/๋น์ทํ ๋จ์ด์ผ์๋ก ๋ฒกํฐ ๊ฐ์ ์ ์ฌ๋๊ฐ ๋๋ค.
-
๋ฅ๋ฌ๋ ๊ธฐ๋ฐ ์์ฐ์ด์ฒ๋ฆฌ ๊ธฐ๋ฒ์ ์ต๊ทผ ์ฐ๊ตฌ ๋ํฅ: 2017๋ 8์ ๊ธฐ์ค.
๋จ์ด๋ฅผ ํ๋์ ๋ฒกํฐ๋ก ์๋ฒ ๋ฉํ๋ ๋ฐฉ๋ฒ ์ค ํ๋์ด๋ค. ์์์ ์ฐจ์(128์ฐจ์ ๋ฑ)์ ๊ฐ์ง ๋ฒกํฐ ๊ณต๊ฐ์ ํ ์ ์ด ํ๋์ ๋จ์ด๋ฅผ ์๋ฏธํ๋ค. ํ ๋จ์ด๊ฐ ์์ ๋ ์ฃผ๋ณ์ ๋์จ ๋จ์ด์์ ๊ฑฐ๋ฆฌ๋ฅผ ์ขํ๊ณ , ์ฃผ๋ณ์ ์ ๋์จ ๋จ์ด์์ ๊ฑฐ๋ฆฌ๋ ๋ํ๋ ๋ฐฉ์์ผ๋ก ํ์ตํ๋ค.
- ์ฝ๊ฒ ์ฐ์ฌ์ง Word2Vec
- Word2Vec ๊ด๋ จ ์ด๋ก ์ ๋ฆฌ
- Word2Vec์ ํ์ต ๋ฐฉ์
- ๋จ์ด๋ค์ ๋ฒกํฐ ํํ (ํ ์ํ๋ก์ฐ ๋ฌธ์ ํ๊ธ ๋ฒ์ญ๋ณธ)
- The backpropagation algorithm for Word2Vec : link
word2vector๋ bin ํ์์ด๋ tsv ํ์์ผ๋ก ๋์ด ์๋ค. gensim ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ด์ฉํด์ ์ฝ๊ฒ ๋ก๋ฉํ ์ ์๋ค.
Pre-trained word vectors of 30+ languages๋ wikipedia database backup dump๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ง๋ค์ด์ง word vector์ผ๋ก, 30์ฌ ๊ฐ ์ธ์ด์ word vector๋ฅผ ์ ๊ณตํ๋ค. ์ฌ์ค์ ํ๊ตญ์ด๋ก ๋ ์ ์ผํ word vector์ด๋ค. ์ฌ๊ธฐ์ ์ ๊ณตํ๋ code๋ฅผ ์ด์ฉํด ์๋กญ๊ฒ word vector๋ฅผ ๋ง๋ค ์๋ ์๋ค. ๊ธฐ๋ณธ์ผ๋ก ์ ๊ณตํ๋ model์ ์ต๋ 2๋ง๊ฐ ๋จ์ด๋ง ์์ผ๋ฏ๋ก ์ด ๊ฐ์๋ฅผ ๋๋ฆด ์ ์๋ค.
>>> import gensim
>>> model = gensim.models.Word2Vec.load('ko.bin') # word vector ๋ก๋ฉ
>>> model['์ธ๊ณต์ง๋ฅ'] # ์ธ๊ณต์ง๋ฅ word vector๋ฅผ numpy array ํํ๋ก ์ถ๋ ฅ
array([-0.06324194, -0.6008734 , -0.26231512, 1.3287116 , -0.32701576,
0.5631857 , -0.7717267 , 0.31624222, -0.02853541, -0.39608407,
(์ค๋ต)
-0.2817213 , 0.3327664 , 0.15192133, 0.14019588, -0.8833335 ],
dtype=float32)
>>> model.most_similar(['ํ๊ตญ์ด', '๋ฏธ๊ตญ'], ['ํ๊ตญ'])
# word vector๋ฅผ "ํ๊ตญ์ด + ๋ฏธ๊ตญ - ํ๊ตญ"์ผ๋ก ๊ณ์ฐํ์ ๋ ๊ฐ์ฅ ๊ฐ๊น์ด ๊ฒ. ๋ฏธ๊ตญ์ ํ๊ตญ์ด, ์ฆ ๋ฏธ๊ตญ์ ์ธ์ด๋ฅผ ์๋ํจ.
[('์์ด', 0.6886879801750183), ('์ผ๋ณธ์ด', 0.549891471862793), ('์๋ฌธ', 0.5408982038497925),
('์ธ์ด', 0.5347272157669067), ('๋
์ผ์ด', 0.5142326951026917), ('ํ๋์ค์ด', 0.5100058317184448),
('๋ชจ๊ตญ์ด', 0.47583508491516113), ('์คํ์ธ์ด', 0.46559274196624756),
('์ค๊ตญ์ด', 0.4549825191497803), ('์์ด๊ถ', 0.4537474513053894)]
>>> model.n_similarity('ํ๊ตญ', 'ํ๊ตญ์ด')
# 'ํ๊ตญ' word vector์ 'ํ๊ตญ์ด' word vector ๊ฐ์ ์ฝ์ฌ์ธ ์ ์ฌ๋
0.76380414
>>> model.n_similarity('ํ๊ตญ', '์์ด')
# ํ๊ตญ-ํ๊ตญ์ด ๊ฐ์ similarity๊ฐ ํ๊ตญ-์์ด ๊ฐ์ similarity๋ณด๋ค ํฐ ๊ฒ์ ์ฃผ๋ชฉ.
0.08317596
# ๋ฏธ๊ตญ๊ณผ ์์ด์์ similarity๋ ๋ฎ์๋ฐ ์๊ตญ๊ณผ ์์ด์ similarity๋ ๋์. ๋ฏธ๊ตญ์ ๊ณต์ฉ์ด๋ ์์ด์ธ๋ฐ similarity๊ฐ ๋ฎ๊ฒ ๋์์.
์ด์ ๊ฐ์ด word2vec์ด ์ ํ์ต๋์ง ์์ ์ฌ๋ก๊ฐ ์์ ์ ์์.
>>> model.n_similarity('๋ฏธ๊ตญ', '์์ด')
0.11053801
>>> model.n_similarity('์๊ตญ', '์์ด')
0.42289335
์ด ์ธ ๋ ์์ธํ ์ฌ์ฉ ๋ฐฉ๋ฒ์ gensim model example์ ์ฐธ๊ณ ํ๋ฉด ๋๋ค.
- ํ๊ตญ์ด Word2Vec: ํ๊ตญ์ด word2vec ๋ชจ๋ธ์ ๋ง๋๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํ ๊ธ.
- ํ๊ตญ์ด Word2Vec ๋ฐ๋ชจ: ๋จ์ด ๋ฒกํฐ ๊ฐ์ ์ฐ์ฐ(๋ง์ , ๋บ์ )์ ํด์ ๊ฐ์ฅ ๊ฐ๊น์ด ๋จ์ด๋ฅผ ์ฐพ์ ์ฃผ๋ ๋ฐ๋ชจ. ๊ฝค ์ธ๋งํ ํ์ง์ ๋ณด์ฌ์ค๋ค.
ํ ๋ฌธ์ฅ์ด๋ ๋ฌธ๋จ, ๋ฌธ์๋ฅผ ํ๋์ Vector๋ก ์๋ฒ ๋ฉํ๋ ๋ฐฉ๋ฒ์ด๋ค. Word2Vec์ ํ์ฅํ ๊ฐ๋ ์ผ๋ก, document vector๊ฐ ๊ฐ ๋ฌธ์ฅ/๋ฌธ๋จ/๋ฌธ์์ ๋์จ ๋จ์ด vector๋ค๊ณผ ๊ฐ๊น์์ง๋๋ก ํ์ต์ ์ํจ๋ค. word2vec๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก doc2vec๋ gensim์์ ๊ตฌํ์ด ๋์ด ์๊ธฐ ๋๋ฌธ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ๋ฐ๋ก ์ธ ์ ์๋ค.
๋ ๋ฌธ์ฅ์ด ์์ ๋ ๊ทธ ๋ฌธ์ฅ์ ์๋ ๋จ์ด๋ค์ word vector๊ฐ ์ ์ฌํ ์๋ก document vector๋ ์ ์ฌํ๊ฒ ๋์จ๋ค. ์๋ฅผ ๋ค์ด "๊ณ ์์ด๊ฐ ๊ธธ์ ๊ฑด๋๋ค."์ "๊ฐ์์ง๊ฐ ๊ธธ์ ๊ฑด๋๋ค."์์๋ ๊ณ ์์ด์ ๊ฐ์์ง์ word vector๊ฐ ์ ์ฌํ๊ธฐ ๋๋ฌธ์ document vector๋ ์ ์ฌํ๊ฒ ๋์ฌ ๊ฒ์ด๋ค. ๊ทธ๋ฐ๋ฐ "๊ฐ์์ง๊ฐ ๊ธธ์ ๊ฑด๋๋ค"์ "๋ก๋ด์ด ๊ธธ์ ๊ฑด๋๋ค"์์ ๊ฐ์์ง์ ๋ก๋ด์ word vector๋ ๋ ์ ์ฌํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ document vector๋ ์์ ์์๋ณด๋ค๋ ๋ ์ ์ฌํ ๊ฒ์ด๋ค.
- ๋ฌธ์ฅ ํ๋๋ฅผ ํ๋์ ๋ฒกํฐ๋ก ์๋ฒ ๋ฉํ๋ ๋ฐฉ๋ฒ
- ํ์ต ๋ฐฉ๋ฒ
- CBOW๋ฅผ ๋ณํํ์ฌ Context๋ฅผ ํ์ตํ๋ค.
- Window Size๋ฅผ ๋ฌธ์ฅ ์ ์ฒด๋ก ๊ณ ์ : ๋ฌธ์ฅ ์ ์ฒด์ ์๋ฏธ๋ฅผ ์ด๋ฆฌ๊ธฐ ์ํด ๋ฌธ์ฅ์ ๋ชจ๋ n-gram์ ์กฐํฉํ์ฌ ํ์ตํ๋ฏ๋ก
- Subsampling์ ์ฌ์ฉํ์ง ์์: ์ค์ํ n-gram ์ ์์ฑ์ ๋ฐฉํดํ ์ ์๊ธฐ ๋๋ฌธ์.
- ๋ณํ๋ CBOW๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์ n-gram ์, ๋จ์ด n-gram ์์ Context๋ก ํ์ฌ ํ์ตํ๋ค. ์ฌ๊ธฐ์ n-gram์ ์ผ๋ฐ์ ์ธ n-gram์ด ์๋๋ผ, bi-gram์ ์ต๋ ๊ฑฐ๋ฆฌ๋ฅผ ์๋ฏธํ๋ค. ๋จ, ํ๊ธ์์ ์กฐํฉ ๊ฐ๋ฅํ ๋ฌธ์ ์ ํน์ฑ์ ๋ฌธ์ n-gram์ ์ฌ์ฉํ์ง ์๋๋ค.
- Sent2Vec์ ๊ตฌํ ๋ ๊ฐ๋ฅํ ๋ชจ๋ Context ๋ฒกํฐ์ ํ๊ท ์ ๋ด์ด ๊ตฌํ๋ค.
- CBOW๋ฅผ ๋ณํํ์ฌ Context๋ฅผ ํ์ตํ๋ค.
- ๋ฌธ์ฅ์ Sent2Vec์ผ๋ก ๋ฐ๊พธ๊ณ , Sent2Vec ๊ฐ์ ์ฝ์ฌ์ธ ์ ์ฌ๋๋ฅผ ๊ตฌํ๋ฉด ๋ฌธ์ฅ ๊ฐ์ ์ ์ฌ๋๋ฅผ ๊ตฌํ ์ ์๋ค.