유사한 기업은 어떻게 찾을까?

A기업과 B기업은 유사한 회사다.

이때의 유사성은 다양한 기준으로 정의가 가능하다. 주가 움직임이 비슷할 수도 있고, 비슷한 사업을 하고 있을 수도 있다. 또는 이 모든것을 반영해 유사한 기업을 걸러낼 수도 있을 것이다.


딥서치에서는 기업에서 발행하는 사업보고서, 문서를 기반으로 유사한 기업을 검출하고 있다. Doc2Vec 기법을 적용해 각각의 문서(기업)를 벡터 공간에 표현한다. 이 공간에서 가장 근접한 벡터를 찾아 유사 기업을 검출한다.

Doc2Vec은 Word2Vec을 문서 단위로 확장한 distributed word representation방법이다. Word2Vec은 단어의 의미를 고려해 벡터공간에 단어를 embedding한다. 데이터에서 단어 간의 관계를 포착하기 때문에 모델은 v(China) -v(Beijing) = v(Japan)-v(??)와 같은 수식에서 (??)에 들어갈 단어가 Tokyo임을 알 수 있다.

Doc2Vec은 각 문서의 id를 하나의 단어로 취급해 단어 공간에 함께 embedding 한다. 단어가 완전히 일치히지 않더라도 유사한 단어로 구성된 문서 vector는 비슷해진다. v(dog)와 v(cat)가 유사하고, v(table)과 v(board)가 유사하기 때문에 문서(문장) ‘a dog sit on the table’, ‘a cat sit on the board’ 역시 비슷한 위치에 mapping된다.

문서 기반으로 유사한 기업을 찾기 위해 사업보고서를 사용해 Doc2Vec모델을 학습시켰다. 아래 정리된 사업 보고서의 목차 중에서 해당 기업의 사업 내용을 설명하는 ‘1. 사업의 개요’ 중 일부 부분만을 떼어내 학습 데이터로 사용했다. 기업마다 사업보고서 양식 및 사업의 개요 부분 구성이 다르기 때문에 이를 처리하는 전처리 과정에 많은 시간이 소요됐다.

  1. 사업의 개요 Business Overview
  2. 매출에 관한 사항 Sales matters
  3. 형태별 매출현황 Sales by type
  4. 영업설비 등의 현황 Status of operating facilities
  5. 경영상의 주요계약 등 Major contracts
  6. 연구개발활동 R&D activities
  7. 기타 투자의사결정에 필요한 사항 Others

모델을 통해 security vector와 word vector를 벡터 공간에 mapping한 결과는 아래와 같다. security vector와 word vector가 같은 공간에 표현되기 때문에 유사한 기업 뿐만 아니라 특정 keyword와 관련있는 회사도 찾을 수 있다.

참고한 모델에 대한 자세한 설명은 원논문 ‘Distributed Representations of Sentences and Documents’를 참고하자

Leave a Reply

Your email address will not be published.

%d bloggers like this: