avatar
kirise

생성형 AI의 발전 과정 : Bow, TF-IDF

데일리 회고 24.12.10
생성형AI
16 days ago
·
4 min read

LLM을 효과적으로 사용하기 위해서는 프롬프트가 중요하다!

생성형 AI의 발전 과정

  1. Bag of Words(BoW) : 텍스트 문서를 컴퓨터 프로그램에서 사용할 수 있는 숫자로 변환하는 자연어 처리 방법 중 하나

    ex) small dog, small small cat, small cute dog > small, cute, dog, cat으로 구분해서 단어 카운팅해서 각 문장을 숫자로 표현

    Google Colab
    https://colab.research.google.com/drive/111i-xwExJEnVFPSMFe8WNNVMMSKz_s8z?usp=sharing
  1. TF-IDF : 단어의 빈도(Term Frequency)와 문서의 빈도(Inverse Document Frequency)를 토대로, 특정 문서 내에 어떤 단어가 얼마나 중요한지를 찾아내는 자연어처리 방법 중 하나

    • BoW는 모든 단어를 카운팅하므로, 비중요 단어가 중요단어로 인식될 수 있는 문제가 있어 TF-IDF가 등장

    • 모든 문서에서 자주 등장하는 단어는 중요도가 낮다고 판단하며, 특정 문서에서만 자주 등장하는 단어는 중요도가 높다고 판단함

    • 주로 문서의 유사도를 구하는 작업, 검색 시스템에서 검색 결과의 중요도를 정하는 작업, 문서 내에서 특정 단어의 중요도를 구하는 작업 등에 쓰임

      tf(d,t) : 특정 문서 d에서의 특정 단어 t의 등장 횟수

      df(t) : 특정 단어 t가 등장한 문서의 수

      2430

      idf(t) : df(t)에 반비례하는 수

      TF-DF: TF와 IDF를 곱한 값

      Google Colab
      https://colab.research.google.com/drive/1dKZ4NHwHlXfPE5-6sbYHBBRC-4xxuAGi#scrollTo=xuW2wtEDoCL7

    • idf는 여러 문서에서 등장한 단어의 가중치를 낮추는 역할하므로 곱해주는 것

    • log 안의 식에서 분모에 1을 더해주는 이유는 특정 단어가 전체 문서에서 등장하지 않을 경우에 분모가 0이 되는 상황을 방지하기 위함

    • log를 씌워주는 이유

      • dft가 매우 작은 값(즉, 단어가 희귀한 경우)일 때, idf 값이 지나치게 커지는 문제가 발생

      • 희귀 단어의 가중치가 지나치게 커져서, 모델이 이 단어에 과도하게 민감하게 반응할 가능성 높음

      • log(x)는 입력 값이 커질수록 증가율이 줄어들어 가중치의 성장 속도를 완화할 수 있으므로 log를 씌워줌


- 컬렉션 아티클






할 수 이떠