BFM에서 임베딩을 도출할 때 mean pooling을 해야 하나?

“대부분은 아니다 — 목적이 다르면 답도 달라진다”


들어가며

BFM(Behavior Foundation Model)을 만들다 보면

거의 자동 반사처럼 나오는 질문이 있다.

“Transformer니까
token 임베딩들을 mean pooling 해서
하나의 벡터로 쓰면 되는 거 아닌가요?

LLM 임베딩에서는 익숙한 패턴이다.

하지만 BFM에서는 이 선택이 훨씬 더 중요하고, 위험할 수도 있다.


한 문장 요약

BFM에서 mean pooling은 ‘항상 해야 하는 기본값’이 아니다.
임베딩의 목적이 ‘상태(state)’라면,
mean pooling은 오히려 의미를 흐릴 수 있다.


1. 먼저 결론부터 정리하자

상황

mean pooling 권장 여부

next-action / time-to-event 예측

X 거의 필요 없음

BFM 내부 상태 임베딩

X 권장 안 함

BFM 임베딩을 외부 분석용으로 사용

O 경우에 따라

LLM-style 의미 임베딩을 원할 때

O

설명/페르소나/클러스터링 목적

O (대안과 함께)

“임베딩을 어디에 쓸 건가?”가 답을 결정한다


2.LLM에서는 mean pooling이 자연스러운 이유

LLM 임베딩에서 mean pooling은 합리적이다.

  • 모든 토큰이 문맥을 공유
  • 문장 전체의 “의미 평균”을 뽑고 싶음
  • 순서보다 내용이 중요

그래서:

sentence_embedding = mean(token_embeddings)

의미 요약 문제에는 잘 맞는다.


3.그런데 BFM에서는 왜 문제가 될까?

BFM 임베딩의 본질은 이것이다.

“지금 이 시퀀스는
다음 행동을 결정하기에
어떤 상태(state)에 있는가?”

이때 중요한 건:

  • 최근 행동
  • 마지막 전이
  • 누적 흐름의 끝점

즉, 시퀀스의 ‘끝’과 ‘방향’ 이다.


mean pooling의 구조적 문제

mean pooling은 이렇게 만든다.

(초기 탐색 + 중간 비교 + 최근 행동) / N

→ 결과:

  • 오래된 행동 영향 과대
  • 최근 행동 영향 희석
  • 상태 변화가 둔감해짐

BFM이 가장 중요하게 보는 ‘전이 직전 상태’가 흐려진다


4. BFM에서 기본값은 무엇인가?

기본값: 마지막 상태 기반 임베딩

가장 일반적인 선택은 이것이다.

embedding = hidden_state[last_step]

또는

embedding = hidden_state[EOS]

이 벡터는:

  • 지금까지의 행동을 모두 요약했고
  • 다음 행동 예측 loss에 직접 연결됨

BFM이 스스로 “이게 상태다”라고 학습한 표현


5.그럼 mean pooling은 언제 쓰나?

경우 1.BFM 임베딩을 “외부에서” 쓸 때

예:

  • 고객 클러스터링
  • 고객 간 유사도
  • 시각화 (UMAP / t-SNE)

이때는:

  • 전이 정확도 ↓
  • 대신 전반적 행동 성향 요약이 중요

→ mean pooling or weighted pooling 고려 가능


경우 2. 의미 + 전이를 함께 쓰는 하이브리드 구조

예:

  • BFM + LLM 임베딩 병행
  • 하나의 벡터로 페르소나 분석

이 경우:

  • BFM last-state 임베딩 → 예측용
  • pooled 임베딩 → 분석/설명용

목적별로 임베딩을 나눈다


6.mean pooling보다 나은 대안들

대안 1. Weighted pooling (시간 가중)

embedding = Σ w_t · h_t
  • 최근 행동일수록 가중치 ↑
  • exponential decay 자주 사용

전이 민감도 유지 + 요약 가능


대안 2.Attention pooling

  • 모델이 “중요한 시점”을 직접 선택
  • 학습 비용 ↑
  • 해석 난이도 ↑

→ 데이터 충분할 때만 추천


대안 3. Dual embedding

state_embedding = h_last        (전이용)
summary_embedding = mean(h_t)   (분석용)

→ 실무에서 가장 안전한 패턴


7.실무 판단 기준 (이 질문 하나면 충분)

“이 임베딩을
사람이 해석할 것인가,
모델이 다음 행동을 고를 것인가?”
  • 사람이 본다 → pooling 고려
  • 모델이 쓴다 → last state 유지

8.흔한 실패 패턴

(X) BFM 임베딩에 아무 생각 없이 mean pooling

(X) 전이 성능이 떨어졌는데 이유를 모름

(X) pooling된 임베딩으로 next-action 학습

(X) 하나의 임베딩으로 모든 목적을 해결하려 함

임베딩의 역할 혼동


한 문장으로 정리하면

BFM에서 mean pooling은
‘기본값’이 아니라
‘의미 요약이 필요할 때만 쓰는 선택지’다.


마치며

BFM 임베딩은

LLM 임베딩처럼 “의미 평균”이 아니다.

그건 오히려 이쪽에 가깝다.

“이 고객은 지금
다음 행동을 하기 직전,
어떤 상태에 있는가?”

그 질문에 답하고 싶다면, mean pooling은 대부분 과한 친절이다.

[Embedding] 12. BFM에서 임베딩을 도출할 때 mean pooling을 해야하나?