SOOJLE
1.0.0
1.0.0
  • SOOJLE Document
  • 프로젝트 요약
  • 프로젝트 개요
    • 프로젝트 소개
    • 추진 배경 및 필요성
    • 프로젝트 내용
      • 기능적 요구사항
      • 비기능적 요구사항
    • 개발환경 및 팀 구성
    • 워크플로우
      • 계획 수립 & 설계
      • 데이터 수집 및 정규화
      • 인공지능 개발
      • 서비스 모듈 개발
      • 성능 평가 및 보고
    • 프로젝트 예산 내역
  • 사전조사 & 의사결정
    • 사전조사
      • 재학생 대상 사전조사
      • 수집 URL 대상 목록
        • 세종대학교 직할
        • 세종대학교 학과
        • 공식 공지사항
        • 세종대 평생교육원
        • 외부 웹사이트
      • 학습 모델 사전조사
        • LSA - 잠재 의미 분석
        • LDA - 잠재 디리클레 할당
        • Word2Vec - 워드투벡터
        • FastText - 패스트텍스트
    • 의사결정
      • 사용자 인증 방식 의사결정
      • 데이터베이스 의사결정
        • MySQL vs MongoDB 성능 분석
      • 토픽별 의사결정
      • 부가 기능 의사 결정
  • 프로젝트 설계
    • 시스템 구조 설계
    • 핵심 기능 설계
      • 데이터 크롤러 설계
      • 게시물 토픽 정의 및 분류
      • 사용자 관심분야 측정
      • 뉴스피드 설계
        • 사용자-문서 유사도(Recommendation Score)
        • FaS (관심 분야 및 유사도 측정 - 추가)
        • 토픽 뉴스피드 목록
      • 검색 알고리즘 설계
        • 검색 알고리즘 1차 설계
        • 검색 알고리즘 1차 개선안
        • 검색 알고리즘 2차 설계
    • 요구사항 목록
      • DB 요구사항
      • 기능 요구사항
      • 품질 요구사항
      • 관리 요구사항
  • DB
    • 구조 설계
    • 테이블 명세
  • 데이터 크롤러
    • 데이터 크롤러 개요
    • 크롤링 URL 선정
    • 크롤러 구현을 위한 사전조사
    • 크롤러 개발 과정
      • 크롤러 프로그램 설계
      • 크롤러 규격화
      • 크롤러 정규화
      • 데이터 정제 과정
      • 에러 핸들러 구현
      • 배포 환경 이식을 위한 Porting
    • Issue & Exception
    • 결과 보고
  • 인공지능 개발
    • 인공지능 개발 개요
    • NLP 스터디
      • Bag of Words(BoW)
      • Document Term Matrix(DTM)
      • TF-IDF(Term Frequency-Inverse Document Frequency)
      • 문서 유사도(Document Similarity)
    • 데이터 전처리 과정
    • 개발 과정
      • 토크나이저 구현
      • LDA 모델 학습 및 구현
    • LDA 학습 모델링
      • 1차 파라미터 튜닝 결과 (NUM_TOPICS)
      • 2차 파라미터 튜닝 결과 (NUM_TOPICS)
      • 3차 파라미터 튜닝 결과 (NUM_TOPICS)
      • NUM_TOPICS 파라미터 의사결정
      • 4차 파라미터 튜닝 결과 (PASESS, ITERATION)
      • 최종 학습 모델 명세
    • Word2Vec(FastText) 학습 모델링
    • Issue & Exception
    • 성능 분석 결과
  • BackEnd
    • 서버 구축 및 배포
      • SOOJLE 서버 구조
      • 상용 서버 (UWSGI + NGINX) 구축
      • HTTPS 서버 구현
    • API 문서 개요
    • API 목록
      • Analysis
      • Auth API
      • Newsfeed API
      • Post API
      • Search API
      • Admin API
    • 세종 Auth API
    • 통계 기능 설계
    • Issue & Exception
    • 성능 분석 결과
  • FRONTEND
    • 프론트엔드 설계 개요
    • 디자인 설계 의사결정
      • 디자인 컨셉 및 기능 정의
      • 컴포넌트 디자인
      • Logo Variation
    • 화면 흐름도
    • 페이지 UI 명세
      • Main Page
      • Header
      • Footer
      • Mobile Control Bar
      • Login Page
      • Timeline Page
      • Menu Page
      • Hyperlink Icons Page
      • Search Component & Mobile Search Modal
      • Search Page
      • Post Block
      • Snackbar
  • 프로그램 배포
    • 프로그램 개요
    • 시스템 아키텍쳐
    • 주요 기능 및 명세
    • 프로그램 테스트
    • 구현 결과물 배포
  • 마무리
    • References
  • SOOJLE AI
  • SEJONG AUTH
  • IML Tokenizer
  • SOOJLE Crawler
  • SOOJLE Frontend
  • SOOJLE Backend
Powered by GitBook
On this page
  • 개요
  • 워드 임베딩(Word Embedding)
  • 희소 표현(Sparse Representation)
  • 밀집 표현(Dense Representation)
  • 워드투벡터(Word2Vec)
  • Skip-gram
  • Word2Vec 모델 분석

Was this helpful?

  1. 사전조사 & 의사결정
  2. 사전조사
  3. 학습 모델 사전조사

Word2Vec - 워드투벡터

PreviousLDA - 잠재 디리클레 할당NextFastText - 패스트텍스트

Last updated 5 years ago

Was this helpful?

개요

워드투벡터는 워드 임베딩에 기반하여 각 단어 간의 유사도를 벡터화하여 해당 단어의 의미를 수치화할 수 있는 알고리즘이다. SOOJLE은 해당 모듈을 검색 기능에 응용한다. 검색어의 의미를 분석하여 완전히 다른 단어일지라도, 유사한 의미의 단어로 병행 검색을 수행하여, 사용자가 원하는 정보를 더 쉽게 접근할 수 있도록 돕는다.

워드 임베딩(Word Embedding)

워드 임베딩(Word Embedding)은 단어를 벡터로 표현하는 대표적인 방법으로 주로 희소 표현에서 밀집 표현으로 변환하는 것을 의미한다.

희소 표현(Sparse Representation)

희소 표현이란, 벡터 및 행렬의 값을 0 혹은 1로 표현하는 원-핫 인코딩의 기법이 대표적인 예로 손꼽힌다. NLP에서 이러한 희소 표현의 문제점은 단어의 개수에 비례하여 벡터의 차원이 계속해서 커져 공간적 낭비를 일으킨다는 점이다.

밀집 표현(Dense Representation)

밀집 표현은 위와 같은 희소 표현은 밀집된 적은 차원의 벡터에서 표현하는 방법이다. 단어를 밀집 벡터(dense vector)의 형태로 표현하는 방법을 워드 임베딩(word embedding)이라고 지칭한다.

워드투벡터(Word2Vec)

원-핫 인코딩을 비롯한 희소 표현은 공간적 낭비 외에도 각 단어 간의 유사성을 표현할 수 없다는 문제점이 있고, 이를 대안으로 "단어의 의미"를 N차원 공간에서 벡터화시키는 방법이 바로 Word2Vec이다.

워드투벡터는 '비슷한 위치에서 등장하는 단어들은 비슷한 의미를 가진다" 는 가정 하에 수행된다. 표현된 벡터들은 원-핫 벡터처럼 벡터의 차원이 단어 갯수일 필요가 없으므로, 벡터의 차원이 상대적으로 저차원으로 줄어들게 된다. 또한 이러한 분산 표현 방법을 통해 각 단어간의 유사도 측정이 가능해진다.

워드투벡터는 기본적으로 RNN 기반이며, 아래와 같이 문자열의 DTM 데이터로 학습을 수행한다.

DTM을 통해 아래처럼 각 중심단어의 주변 단어를 모델이 학습하게 되고 그것을 통해 특정 단어가 등장했을 때 주변 단어를 유추할 수 있게 한다.

Skip-gram

스킵 그램은 중심 단어를 주변 단어를 분석하는 기법이다. 워드투벡터에는 보편적으로 CBOW와 Skip-gram 2가지 방법이 사용되며 여러 논문에서 성능 비교를 진행했을 때, 전반적으로 Skip-gram의 성능이 더 높다고 평가된다.

Word2Vec 모델 분석

워드투벡터를 통하여 각 단어를 벡터화하여 단어간의 의미 유사도를 산출할 수 있으나, 기본적인 워드투벡터는 OOV(Out of Vocabulary) 문제를 가지게 된다.

OOV란, 단어셋에 존재하지 않는 단어를 만났을 때 아무런 작업도 수행할 수 없는 경우를 말한다. 본 프로젝트는 가능한 한 많은 양의 데이터를 확보할 계획이지만, 전반적으로 이러한 문제에 직면했을 때 근본적인 해결책이 필요하다.