Author Topic Modeling, 저자 - 주제 관계를 포함한 토픽모델링

Author Topic Modeling, 저자 - 주제 관계를 포함한 토픽모델링
Photo by Darius Bashar / Unsplash

Author Topic Modeling

  • **Author Topic Model(ATM)**은 텍스트 데이터에서 주제와 저자 간의 관계를 동시에 모델링하는 기법입니다.
  • 이는 저자가 작성한 문서의 주제 분포를 추정하고, 각 주제에 대한 저자의 기여도를 파악하는 데 유용합니다.
  • 학술 문서 분석, 소셜 미디어 데이터 분석 등 다양한 텍스트 마이닝 분야에서 사용됩니다.

Motivation

  • 단순한 토픽 모델링 기법(LDA 등)으로는 저자와 주제 간의 복잡한 관계를 충분히 설명하기 어려웠습니다.
  • 이를 해결하기 위해 저자와 주제를 동시에 모델링하는 Author Topic Model이 등장했습니다.

Pros & Cons

장점

  1. 저자-주제 관계 파악: 저자와 주제 간의 관계를 명확히 파악할 수 있습니다.
  2. 다양한 응용 가능: 학술 문서, 소셜 미디어, 뉴스 기사 등 다양한 분야에서 활용할 수 있습니다.
  3. 주제 분포 추정: 각 저자가 주로 다루는 주제를 추정할 수 있어 저자의 연구 방향이나 관심사를 분석하는 데 유용합니다.

Cons

  1. 복잡한 모델링: 저자와 주제를 동시에 모델링하므로, 단순한 토픽 모델링에 비해 복잡합니다.
  2. 데이터 요구량: 저자와 주제 정보를 모두 포함하는 대규모 데이터셋이 필요합니다.
  3. 계산 비용: 모델 학습에 필요한 계산 비용이 높아질 수 있습니다.

Alternatives

  1. Latent Dirichlet Allocation (LDA): 단순한 토픽 모델링 기법으로, 저자 정보를 포함하지 않습니다.
  2. Author-Recipient-Topic Model (ARTM): 저자뿐만 아니라 수신자 정보를 포함하여 주제와 관계를 모델링합니다.
  3. Hierarchical Dirichlet Process (HDP): 비정규화 토픽 모델로, 주제의 수를 미리 지정할 필요 없이 데이터를 통해 주제를 학습합니다.
import gensim
from gensim import corpora
from gensim.models import AuthorTopicModel

# 샘플 데이터
documents = [
    ["human", "interface", "computer"],
    ["survey", "user", "computer", "system", "response", "time"],
    ["eps", "user", "interface", "system"],
    ["system", "human", "system", "eps"],
    ["user", "response", "time"],
    ["trees"],
    ["graph", "minors", "trees"],
    ["graph", "minors", "survey"]
]

# 저자 정보
author2doc = {
    'author_1': [0, 1, 2],
    'author_2': [3, 4, 5],
    'author_3': [6, 7]
}

# 사전 생성
dictionary = corpora.Dictionary(documents)
corpus = [dictionary.doc2bow(doc) for doc in documents]

# Author Topic Model 학습
model = AuthorTopicModel(corpus=corpus, num_topics=3, id2word=dictionary, author2doc=author2doc)

# 결과 출력
for author in model.id2author.values():
    print(f"Author: {author}")
    print(f"Topics: {model.get_author_topics(author)}")

Author: author_1
Topics: [(0, 0.031613979296316014), (1, 0.9380545191419738), (2, 0.03033150156171012)]
Author: author_2
Topics: [(0, 0.0977369409541409), (1, 0.27095486982704725), (2, 0.6313081892188119)]
Author: author_3
Topics: [(0, 0.06613595341346513), (1, 0.06264315585003843), (2, 0.8712208907364964)]

Read more

다중공선성은 잘못된 인과추론 결과를 만들어낼 수 있습니다.

다중공선성은 잘못된 인과추론 결과를 만들어낼 수 있습니다.

다중공선성(Multi Collinearity) * **Multi-Collinearity(다중공선성)**는 독립 변수들 간의 강한 상관관계가 존재할 때 발생합니다. 즉, 한 독립 변수가 다른 독립 변수에 의해 설명될 수 있을 정도로 상관관계가 높은 상황을 의미합니다. * 이 문제는 주로 회귀 분석에서 나타나며, 변수들 간의 관계를 해석하는 데 있어 큰 장애물이 될 수 있습니다. * 일반적인 회귀식을 $Y=

Bayesian P-Value는 불확실성을 감안하여 모델의 적합도를 평가합니다.

Bayesian P-Value는 불확실성을 감안하여 모델의 적합도를 평가합니다.

Bayesian P- Value * Bayesian P-Value는 **모델의 적합도(goodness-of-fit)**를 평가하는 데 사용됩니다. * 사후 분포(posterior distribution)를 이용하여 실제 데이터와 모델이 생성한 예상 데이터를 비교함으로써, 관측된 데이터가 모델에 의해 얼마나 잘 설명되는지를 평가합니다. * 빈도주의 p-값은 "관찰된 데이터보다 극단적인 데이터가 나올 확률"을 계산하지만, Bayesian P-Value는 "모델이 실제

Non-Identifiability는 Model Parameter를 고유하게 식별할 수 없는 현상입니다.

Non-Identifiability는 Model Parameter를 고유하게 식별할 수 없는 현상입니다.

Non Identifiability * Non-Identifiability는 주어진 데이터와 모델에 대해 특정 파라미터를 고유하게 식별할 수 없는 상황을 의미합니다. 즉, 여러 파라미터 값들이 동일한 데이터를 생성할 수 있으며, 이로 인해 특정 파라미터 값을 확정적으로 추정하기 어렵게 됩니다. * 베이지안 추론에서 Non-Identifiability는 사후 분포가 특정 파라미터 값에 대해 명확하게 수렴하지 않고, 여러 값들에 대해 비슷한 확률을

Rootgram은 큰 분산을 갖거나 비정규 형태의 데이터를 위한 히스토그램입니다.

Rootgram은 큰 분산을 갖거나 비정규 형태의 데이터를 위한 히스토그램입니다.

Rootgram * 히스토그램의 변형으로 데이터가 비정규적이거나 큰 분산을 가지는 경우, 정확한 분포를 파악하기 위해 사용됩니다. * 일반적으로 히스토그램은 데이터의 빈도를 직접적으로 나타내기 때문에, 큰 값이 빈번하게 발생하는 경우 상대적으로 작은 값을 잘 드러내지 못하는 경향이 있습니다. 반면, Rootgram은 빈도를 제곱근 형태로 변환하여, 데이터 분포의 차이를 더 잘 시각화할 수 있도록 돕습니다 * 여기서