• 검색 결과가 없습니다.

텍스트 네트워크

문서에서 저작자표시 (페이지 43-47)

입력 문장을 형태소 구문 분석을 통해 단어로 분해하고 어간 추출을 통해 단 어의 원형으로 변형해준다. Word2Vec[7]의 경우 학습에 사용한 단어를 말뭉치 사전으로 구축하는데 말뭉치 사전에 없는 경우 임베딩을 할 수 없다. 그다음으로 각 단어를 임베딩한다. 표 1의 예에서는 어간 추출로 추출한 단어의 수가 9개이 고 사전학습으로 출력하는 vector size가 200이기 때문에 9 x 200의 크기를 갖는 벡터가 반환된다. 각 단어 벡터를 문장 벡터로 변환하기 위해 각 벡터의 열을 기 준으로 평균을 취해준다.

텍스트 네트워크에서 RNN[8]을 사용하기 위해 기본적인 형태의 RNN 구조를 구성하여 인코더와 같이 사용했다. RNN[8]에 문장을 입력하기 위해 전체 문서에 대한 단어 사전을 구축하고 bag-of-words 한다. 20개의 RNN cell로 구성했으며, 각 문장에서 최대 문장의 길이로 입력 크기를 설정했고 최대 문장의 길이보다 짧은 문장은 zero padding으로 입력 크기를 맞췄다. 활성화 함수로는 하이퍼볼릭 탄젠트를 사용했고 출력의 크기는 768이다. 표 2는 RNN으로 임베딩한 결과를 보인다.

입력 문장 나는 건강을 위해 매주 운동을 한다

문장 임베딩 embedding shape(768)

[[2.80887983e-03 –6.37548603e-03 2.34103063e-04 ...

3.87605908e-03 –5.97368693e-03 -5.66468108e-04]]

표 2. 기본적인 RNN으로 문장을 임베딩하는 과정

텍스트 네트워크에서 LSTM[9]을 사용하기 위해 기본적인 형태의 LSTM 구조 를 구성하여 인코더와 같이 사용했다. forget, input, output gate에서 사용하는 활성화 함수는 sigmoid, sell state의 활성화 함수는 하이퍼볼릭탄젠트로 구성했 다. 입력 문장의 처리와 LSTM cell의 개수, 출력의 크기는 RNN[8]과 동일하게 진행했다. 표 3은 LSTM[9]으로 임베딩한 결과를 보인다.

입력 문장 나는 건강을 위해 매주 운동을 한다 문장 임베딩

embedding shape(768)

[[-6.8857765e-04 –8.7323471e-04 -3.7422928e-03 ...

3.9630355e-03 –4.6416780e-04 2.7927137e-03]]

표 3. 기본적인 LSTM으로 문장을 임베딩하는 과정

텍스트 네트워크에서 KoBERT를 사용하기 위해 기존에 공개된 사전학습 모델 을 이용한다[33]. 입력 문장을 토크나이저 방법 중 하나인 WordPiece[34]를 통해 토큰화하고 bag-of-words와 같은 방법으로 단어를 input ids로 변환한다. 사전학 습된 KoBERT의 출력 vector size는 768이고 학습에 사용된 말뭉치의 크기는 문 장 5M, 단어 54M, 단어의 개수는 8,002이다. 최대 입력을 512개의 단어까지 받으 며, 출력의 크기는 768이다. 표 4는 사전학습된 KoBERT[33]로 임베딩한 결과를 보인다.

입력 문장 나는 건강을 위해 매주 운동을 한다

토큰화 [CLS], ‘_나는’, ‘_건강’, ‘을’, ‘_위해’, ‘_매주’, ‘_운동’, ‘을’, ‘_한다’, [SEP]

input ids [2, 1375, 882, 7088, 3567, 1999, 3514, 7088, 4965, 3]

문장 임베딩 embedding shape(768)

[-0.030031124129 –0.031172504648 -0.18609851598, ...

0.042988702654 –0.045441471040 -0.068088270723]

표 4. 사전학습된 KoBERT으로 문장을 임베딩하는 과정

표 4의 입력 문장이 토큰화된 결과에서 특수 토큰인 [CLS]와 [SEP]가 등장한 다. [CLS]는 문장의 시작을 알리는 특수 토큰이고 [SEP]는 문장을 구분해주는 특수 토큰이다. 토큰화 결과를 보면 언더바(_)가 있는 단어가 존재하는데 언더바 는 뒤에 등장하는 단어와 결합되는 경우에 구분하기 위함이다. 언더바가 있는 단 어의 언더바를 제거하고 뒤의 단어를 붙이게 되면 토큰화 전의 구성으로 복원된 다. 예를 들어 ‘_건강’, ‘을’과 같이 토큰화가 되었을 경우 ‘_건강’에서 언더바를 제거하고 뒤에 오는 단어인 ‘을’을 합친 ‘건강을’이 원래의 구성이다. 언더바가 있

는 단어 뒤에 언더바가 있는 단어가 올 경우 이 두 단어는 결합의 여지가 없는 단독적인 단어로 토큰화된 것이다. 토큰화 후에 사전학습된 KoBERT[33]의 단어 사전을 통해 입력을 id로 바꿔주고 임베딩을 통해 768의 크기를 갖는 벡터로 임 베딩한다.

지금까지 설명한 Word2Vec[7], RNN[8], LSTM[9], KoBERT[10]를 이용한 텍 스트 임베딩 방법을 텍스트 네트워크로 구성하여 본 논문에서 제안한 텍스트-이 미지 임베딩을 수행한다. 텍스트-이미지 임베딩 결과가 가장 좋은 텍스트 임베딩 방법을 본 논문의 텍스트 네트워크로 선정한다.

문서에서 저작자표시 (페이지 43-47)

관련 문서