20

Common Pitfalls: 자주 하는 실수

Day 3: 유사도 알고리즘

학습 목표

이분 그래프 프로젝션 오류 방지 대규모 데이터 처리 전략 희소 데이터 대응 결과 필터링 주의점

유사도 알고리즘 Common Pitfalls

Pitfall 1: 이분 그래프에서 한 종류 노드만 포함

증상

  • 유사도 결과가 없거나 이상함
  • "No results" 반환

원인

유사도는 "공유 이웃"을 측정하는데, 이웃 노드가 없음

잘못된 코드

에디터 로딩 중...

올바른 코드

에디터 로딩 중...

Pitfall 2: 임계값 없이 대규모 실행

증상

  • 메모리 부족
  • 너무 많은 관계 생성
  • 쿼리 타임아웃

원인

N개 노드 → N(N-1)/2개 쌍 비교

계산 예시

에디터 로딩 중...

잘못된 코드

에디터 로딩 중...

올바른 코드

에디터 로딩 중...

Pitfall 3: 희소 데이터에서 Jaccard

증상

  • 대부분의 유사도가 0
  • 의미 있는 결과가 거의 없음

원인

Jaccard는 교집합이 없으면 0

예시

에디터 로딩 중...

해결책

에디터 로딩 중...

Pitfall 4: write와 stream 결과 혼동

증상

  • write로 저장했는데 쿼리에서 관계 안 보임
  • 예상과 다른 결과

원인

write는 노드 레이블 필터링을 하지 않음

잘못된 기대

에디터 로딩 중...

해결책

에디터 로딩 중...

Pitfall 5: 방향 그래프에서 UNDIRECTED 누락

증상

  • 유사도가 예상보다 낮음
  • 비대칭 결과

원인

기본 방향은 NATURAL (원본 유지)

잘못된 코드

에디터 로딩 중...

올바른 코드

에디터 로딩 중...

체크리스트

항목확인
이분 그래프 두 종류 노드 포함?[ ]
topK와 similarityCutoff 설정?[ ]
희소 데이터 대응 전략?[ ]
write 결과 필터링 고려?[ ]
UNDIRECTED 방향 설정?[ ]