##############
MaLSTM ๋ชจ๋ธ
##############
LSTM๊ณ์ด์ ํ์ฉํด ๋ฌธ์ฅ์ ์ ์ฌ๋๋ฅผ ๊ตฌํ๋ค. MaLSTM ๋ชจ๋ธ์ 2016๋
MIT์์ ์กฐ๋์ค ๋ฎ๋ฌ(Jonas Mueller)์ ๋
ผ๋ฌธ์์ ์ฒ์ ์๊ฐ ๋์๋ค. ๋ฌธ์์ Sequence ํํ๋ก ํ์ต ์ํค๊ณ ๊ธฐ์กด RNN๋ณด๋ค ์ฅ๊ธฐ์ ์ธ ํ์ต์ ํจ๊ณผ์ ์ธ ์ฑ๋์ ๋ณด์ฌ์คฌ๋ค.
MaLSTM์ด๋ ๋งจํํ ๊ฑฐ๋ฆฌ(Manhattan Distance) + LSTM์ ์ค์๋ง์ด๋ค. ์ฝ์ฌ์ธ ์ ์ฌ์ธ ์ ์ฌ๋๋ฅผ ๋์ ํด ๋งจํํ ๊ฑฐ๋ฆฌ(L1)์ ์ด์ฉํ๋ค.
LSTM์ ๋ง์ง๋ง ์คํ
์ธ $LSTM_a$์ $h_5^{a}$ ๊ฐ๊ณผ $LSTM_b$์ $h_4^{b}$ ๊ฐ์ด ์๋ ์ํ ๋ฒกํฐ๋ก ์ฌ์ฉ๋๋ค. ์ด ๊ฐ์ ๋ฌธ์ฅ์ ๋ชจ๋ ๋จ์ด์ ๋ํ ์ ๋ณด๊ฐ ๋ฐ์๋ ๊ฐ์ผ๋ก ์ ์ฒด ๋ฌธ์ฅ์ ๋ํํ๋ ๋ฒกํฐ๊ฐ ๋๋ค. ์ด๋ ๊ฒ ๋ฝ์ ๋ ๋ฒกํฐ์ ๋ํด ๋งจํํ ๊ฑฐ๋ฆฌ๋ฅผ ๊ณ์ฐํด์ ๋ ๋ฌธ์ฅ ์ฌ์ด์ ์ ์ฌ๋๋ฅผ ์ธก์ ํ๋ค. ์ด ์ ์ฌ๋๋ฅผ ์ค์ ๋ผ๋ฒจ๊ณผ ๋น๊ตํ๋ ํ์ต ๋ฐฉ์์ด๋ค.
# ๋ชจ๋ธ
# ๋ชจ๋ธ ๊ตฌํ
import tensorflow as tf
from tensorflow.keras import layers
class Model(tf.keras.Model):
def __init__(self,**kargs):
super(Model,self).__init__(name=model_name)
self.embedding = layers.Embedding(input_dim=kargs['vocab_size'],
output_dim=kargs['embedding_dimension'])
self.lstm = layers.LSTM(units=kargs['lstm_dimension'])
def call(self,x):
x1, x2 = x
x1 = self.embedding(x1)
x2 = self.embedding(x2)
x1 = self.lstm(x1)
x2 = self.lstm(x2)
x = tf.exp(-tf.reduce_sum(tf.abs(x1-x2),axis=1))
return x
'๐ฃ๏ธ Natural Language Processing' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Kaggle] ๋ค์ด๋ฒ ์ํ ๋ฆฌ๋ทฐ ๋ถ๋ฅ(2) (0) | 2021.02.17 |
---|---|
์ฑ ๋ด ๋ง๋ค๊ธฐ(1) (0) | 2021.02.13 |
[Kaggle] ๋ค์ด๋ฒ ์ํ ๋ฆฌ๋ทฐ ๋ถ๋ฅ(1) (0) | 2021.02.12 |
PCA, SVD ์ ์ฌ ์๋ฏธ ๋ถ์ (0) | 2021.02.11 |
CNN ํ ์คํธ ์ ์ฌ๋ ๋ถ์(Feat. Quora pairs) (0) | 2021.02.10 |