written by 602
Statistical Language Model
N-Gram Language Model
Uni-gram
Bi-gram
Sparsity Problem의 대안
One-hot Encoding
Distributed Representation
Embedding layer 소스 코드(Tensorflow)
class Embedding(Layer):
def __init__(self,
input_dim,output_dim,embeddings_initializer='uniform',embeddings_regularizer=None,activity_regularizer=None,embeddings_constraint=None,
mask_zero=False,input_length=None,**kwargs):
self.input_dim = input_dim
self.output_dim = output_dim
self.embeddings_initializer = initializers.get(embeddings_initializer)
self.embeddings_regularizer = regularizers.get(embeddings_regularizer)
self.activity_regularizer = regularizers.get(activity_regularizer)
self.embeddings_constraint = constraints.get(embeddings_constraint)
self.mask_zero = mask_zero
self.supports_masking = mask_zero
self.input_length = input_length
self._supports_ragged_inputs = True
@tf_utils.shape_type_conversion
def build(self, input_shape):
self.embeddings = self.add_weight(
shape=(self.input_dim, self.output_dim),
initializer=self.embeddings_initializer,
name='embeddings',
regularizer=self.embeddings_regularizer,
constraint=self.embeddings_constraint)
def call(self, inputs):
out = embedding_ops.embedding_lookup(self.embeddings, inputs)
return out
Purpose
For Language Model(이하 LM): 단어 시퀀스에 대한 Joint Probability Function을 나타내는 것
For Word Representation: 단어집합 내 각 단어의 Embedded feature를 학습하는 것
유사한 구조나 의미를 가진 문장에 대한 일반화 가능
Architecture
Vocab size
x m(Embedding Size)
Evaluation Metric: Perplexity
단어들의 Joint probability에 역수,n제곱근을 취한 값
LM이 주어진 문장을 헷갈려하는 정도
다음번에 A Neural Probabilistic Language Model 논문리뷰로 다시 한 번 자세하게 다룰 예정이다.