Computer >> 컴퓨터 >  >> 프로그래밍 >> 프로그래밍

거리 함수란 무엇일까? 유사도 계산의 핵심 원리

거리 함수란 무엇인가?

거리(distance)는 메모리 기반 추론(MBR, Memory-Based Reasoning)이 데이터 간 유사도(similarity)를 계산할 때 사용하는 기본적인 방법입니다. 하나의 참된 거리 척도(true distance metric)에서 점 A에서 점 B까지의 거리를 d(A,B)라고 표현할 때, 이 거리 함수는 다음의 네 가지 특성을 만족해야 합니다.

거리 함수의 네 가지 핵심 특성

  • 잘 정의됨(Well-defined) — 두 점 사이의 거리는 언제나 정의되어 있으며, 음수가 아닌 실수입니다. 즉, d(A,B) ≥ 0 입니다.

  • 동일성(Identity) — 한 점에서 자기 자신까지의 거리는 항상 0입니다. 즉, d(A,A) = 0 입니다.

  • 교환 법칙(Commutativity) — 방향은 거리에 영향을 주지 않습니다. 따라서 A에서 B까지의 거리와 B에서 A까지의 거리는 같습니다. 즉, d(A,B) = d(B,A) 입니다. 이 성질은 일방통행 도로처럼 방향에 따라 거리가 달라지는 경우를 배제합니다.

  • 삼각 부등식(Triangle Inequality) — A에서 B로 가는 길에 중간 지점 C를 경유하는 것이 결코 전체 거리를 줄여 주지 않습니다. 즉, d(A,B) ≤ d(A,C) + d(C,B) 입니다.

MBR에서의 거리 함수 활용

MBR 관점에서 '점'이란 곧 데이터베이스의 레코드(record)를 의미합니다. 위에서 설명한 거리의 정의는 유사도를 계산하는 기반이 되지만, 실제로 MBR은 이러한 제약 조건 중 일부가 다소 완화되더라도 충분히 잘 작동합니다.

예를 들어, 뉴스 기사 분류 사례 연구에서 사용된 거리 함수는 교환 법칙을 만족하지 않았습니다. 즉, 기사 A에서 기사 B까지의 거리가 항상 B에서 A까지의 거리와 일치하지 않았습니다. 그럼에도 불구하고 이 유사도 측정 방식은 분류 목적에는 매우 유용하게 활용될 수 있었습니다.

거리가 '잘 정의된다'는 사실은 데이터베이스 내 모든 레코드가 어딘가에 반드시 이웃(neighbor)을 가진다는 것을 의미하며, MBR은 바로 이러한 이웃들을 필요로 하기 때문에 작동합니다. 또한 동일성(Identity) 속성 덕분에 거리 개념은 '특정 레코드와 가장 유사한 데이터는 그 레코드 자신이다'라는 직관적인 개념과 자연스럽게 일치합니다.

최근접 이웃의 특성과 거리 조합 방식

교환 법칙과 삼각 부등식은 최근접 이웃(nearest neighbors)을 국소적(local)이고 명확하게 정의되도록 만들어 줍니다. 새로운 레코드가 데이터베이스에 추가되더라도 기존 레코드가 서로 더 가까워지는 일은 없으며, 유사도는 어디까지나 두 레코드 사이에서만 판단되는 문제입니다. 다만 거리 측정 방식 자체가 최근접 이웃을 찾는 데 잘 정의되어 있다고 해도, 그 결과로 나오는 이웃 집합은 때때로 독특한 특징을 보일 수 있습니다.

이웃 집합은 데이터 거리 함수가 각 필드(field)별 거리 함수를 어떻게 결합하느냐에 따라 달라집니다. 실제로 합(summation) 방식으로 계산했을 때 두 번째로 가까운 이웃이, 유클리드(Euclidean) 방식으로는 가장 먼 이웃이 되는 경우도 발생할 수 있습니다. 합 방식이나 정규화(normalized) 방식과 비교했을 때, 유클리드 방식은 모든 필드 값이 상대적으로 고르게 가까운 이웃을 선호하는 경향이 있습니다.

합, 유클리드, 정규화 방식에는 가중치(weight)를 부여할 수도 있습니다. 이를 통해 각 필드가 전체 데이터 거리에 기여하는 정도를 다르게 조절할 수 있습니다. MBR은 일반적으로 모든 가중치를 1로 설정했을 때 좋은 결과를 보이지만, 경우에 따라서는 사전 지원(a priori knowledge)을 반영하기 위해 가중치를 활용하기도 합니다. 예를 들어 분류 결과에 큰 영향을 미친다고 예상되는 특정 필드에 더 높은 가중치를 부여하는 방식입니다.