개념격자구조로 표현된 UMLS Visualizer 개발

* 본 연구는 보건복지부 보건의료기술진흥사업의 지원에 의하여 이루어진 것임.(과제고유번호 : 0412-MI02-0404-0002)

위현욱*, 김홍기**, 황석형***, 김명기**

* 서울대학교 치과대학 의과학 지식 및 온톨로지 관리기술 개발센터 wesee2358@gmail.com

** 서울대학교 치과대학 {hgkim, meeree}@snu.ac.kr

*** 선문대학교 컴퓨터정보학부 온톨로지기반 소프트웨어공학 연구실 shwang@sunmoon.ac.kr

Abstract: UMLS(Unified Medical Language System)는 의학 분야의 각종 용어집들 간의 호환성을 높이기 위하여 NLM(National Library of Medicine)에서 구축된 통합 의학언어시스템이다. 그러나 기존의 UMLS관련 도구들은 용어체계상의 순환구조를 찾아낼 수 없고, 또한, Text기반의 디렉토리구조로 개념들을 표시함으로써 개념의 개수가 많아질수록 사용자의 편의성이 저하된다. 따라서 본 논문에서는 개념계층구조를 수학적 모델로 제공하는 형식개념분석기법(FCA, Formal Concept Analysis)을 토대로, UMLS의 메타시소러스에 포함되어 있는 개념들의 개념계층 구조를 파악하여 표현하기 위한 지원도구(UMLS Visualizer)를 개발함으로써 UMLS사용자들이 의학용어와 관련된 개념구조를 보다 수월하게 파악하고, UMLS내에 존재하는 개념들 간의 모순된 순환구조를 검출하는데 이용할 수 있다.

Keyword: UMLS, Formal Concept Analysis, Concept hierarchy, Circular Structure

Ⅰ. 배 경

정보가 방대해짐에 따라서 사용자는 정보를 많이 접할 수 있게 되었지만, 효과적인 정보의 검색을 더욱 어렵게 만들었다. 따라서 효과적인 정보검색을 하기 위해서 동의어나 동음이의어 등을 하나의 개념으로 만든 어휘집의 필요성이 절실히 요구된다. 그러나, 이와 같은 어휘집들은 여러 단체에서 각각 구축함으로써 상호호환성 문제가 발생된다. 의학 관련 용어집들 사이에서도 이와 같은 상호호환성 문제를 해결하기 위하여 National Library of Medicine에서는 UMLS(Unified Medical Language System)을 구축하여 호환성 문제를 해결하고자 하였다.

UMLS는 동일 개념을 표현하는데 사용되는 용어의 다양성으로 인한 정보검색의 효율 저하 및 통합검색 문제를 해결하기 위하여 NLM이 개발한 통합개념체계로서, 메타시소러스, 의미망, 전문가 사전으로 구성되어 있다. 현재 UMLS는 70여개의 의학 관련 용어집 등에서 나오는 개념들이 총정리 되어 있다. 특히, UMLS의 구성 요소 중 메타시소러스는 특정 개념에 해당하는 용어, 문자열을 연계하는 UMLS의 중심 어휘요소로서, MeSH를 포함한 약 70여개 이상의 통제어휘집에서 추출된 개념들로 구축되었다[1].

그러나, UMLS는 취급하고 있는 용어 및 개념이 너무 방대하여서 일반 사용자가 필요한 부분만 추출하여 사용한다. 이러한 과정에서 개념과 그 개념들 사이의 관계를 바탕으로 검색된 개념을 구축하는 툴들이 제공 되어있다. 그러나, 이런 툴들은 개념과 그 개념간의 관계를 Text기반의 디렉토리구조로 표현됨으로 개념이 많을 경우 사용자들에게 혼란을 초래할 수 있다. 또한, UMLS는 다양한 용어집들을 통합하는 과정에서 용어체계상의 순환구조가 발생하는 문제점을 가지고 있으나, 이와 같은 순환구조를 모두 수작업으로 제거해야 하기 때문에 모든 순환구조를 제거할 수 없다[2].

따라서, 본 논문에서는 이와 같은 문제점들을 해결하기 위하여, UMLS의 구성 요소 중 메타시소러스에 포함된 개념들을 대상으로 형식개념분석기법(FCA)을 적용하여 개념계층구조를 파악하고 가시화하기 위한 기법을 제안한다. 또한, 본 논문에서 제안한 기법을 지원하는 도구(UMLS Visualizer)를 개발하여, 실제 UMLS로부터 개념들 간의 순환구조를 검출하기위한 실험을 실시하여 그 결과에 대하여 설명한다.

본 논문은 다음과 같이 구성된다. 2장에서는 형식개념분석기법(FCA)의 소개와 순환구조 추출 및 개념계층구조를 구축하기 위한 알고리즘을 제안하고. 이를 지원하기위한 도구(UMLS Visualizer)를 설명한다. 3장에서는 UMLS Visualizer를 토대로 개념계층구조의 구축 및 순환구조의 추출에 관한 실험과 그 결과를 설명한다. 4장에서는 결론 및 향후 연구과제에 대해서 설명한다.

Ⅱ. 방  법

UMLS와 관련하여, 방대한 양의 용어집으로부터 전체적인 개념 구조를 파악하기 난해하고, 용어집 통합으로 인한 용어체계상의 순환구조가 발생하는 등의 문제점이 제기되고 있다. 이와 같은 문제점을 해결하기 위하여, 용어체계 및 관련개념들을 토대로 개념계층구조를 구축할 필요가 있다.

본 논문에서는 FCA[3,4,5]를 소개하고, FCA에서 제공하는 개념계층모델(Concept Lattice)를 토대로 개념계층구조를 다양한 측면에서 시각화하여 표현함으로써 UMLS로부터 유용한 정보를 보다 수월하게 획득할 수 있다.

1.Formal          Concept         Analysis

Formal Context K = (G, M, I)는 객체(Object)들의 집합G 와 속성(Attribute)들의 집합M, 그리고 G와 M사이의 이항관계I⊆G×M로 구성된다. 이항관계I는, “G의 원소 g는 M의 원소 m을 가지고 있다“라는 것을 나타낸다.

Formal Concept을 정의하기 위해서 다음과 같은 연산이 필요하다.

[eqn: Y -> Y prime := cases{g IN M`G```|``g``Im``for``all```} m IN Y````]}        [eqn: X -> X prime := cases{m IN M` `|``g``Im``for``all```} g IN X````]}

Formal Concept은 Formal Context로부터 다음과 같이 정의된다. 즉 Formal Concept은, 임의의 쌍 (A, B)로서 A⊆G ∧B⊆M∧A=B'∧B=A' 의 조건을 만족해야한다. 이 때 A는 extent라고 부르고 B는 intent라고 부른다.

위와 같은 정의를 바탕으로 Formal Context로부터 다양한 개념(Formal Concept)들을 추출할 수 있다. 이러한 Formal Concept들 사이에는 일종의 순서관계(subconcept-superconcept관계)가 존재한다. 즉, 임의의 concept ([eqn: A _{1} ,`B _{1}])과 ([eqn: A _{2} ,`B _{2}])에 대하여, [eqn: A _{1} SUBSETEQ `A _{2}]이거나 [eqn: B _{2} SUBSETEQ `B _{1}]일 때, concept([eqn: A _{1} ,`B _{1}])는 concept([eqn: A _{2} ,`B _{2}])의 subconcept이라고 정의한다.(이때 concept([eqn: A _{2} ,`B _{2}])는 concept([eqn: A _{1} ,`B _{1}])의 superconcept이라고 한다.)

이와 같이 주어진 Context로부터 Formal Concept들을 추출하여 subconcept-superconcept관계를 구성함으로써, 일종의 격자구조(Complete Lattice)를 구축할 수 있다. 이때 추출된 Concept들은 자연스럽게 객체집합이나 속성집합에 의한 계층적 관계가 형성이 되며 이를 개념격자(Concept Lattice)라고 부른다. FCA에서는 개념격자를 Hasse Diagram으로 가시화 할 수 있다. Hasse Diagram은 Concept을 나타내는 정점들과 subconcept-superconcept관계를 나타내는 변으로 구성된다(그림1). 각 개념을 나타내는 정점에는 해당개념이 갖는 extent들과 intent들에 대한 정보가 레이블로 표시된다.

그림 . FCA Lattice 및 Context Table

2.개념구조 시각화         및              순환구조 검출 알고리즘

FCA에 의해서 추출한 Concept들과 subconcept-superconcept관계를 나타낸 개념격자를 시각화하기 위한 알고리즘은 다음과 같다[3].

이와 같은 알고리즘을 이용함으로써 UMLS의 PAR, CHD관계를 개념격자형태로 가시화 할 수 있다.

표 1. 개념격자구조 시각화를 위한 알고리즘

1. First          Step.

1.1 Extent G를 리스트에 넣는다.

1.2 attribute m ∈ M을 임의로 정렬한다.

2.  Step           m.

2.1리스트에 넣었던 각각의 집합 A를 A∩m' 인 집        합이 리스트에 없다면 리스트에 넣는다.

3.  Last           Step.

3.1 extent=∅,intent=M의 조건을 만족하는 Concept          을 그린다.

3.2다음에 가장 많은 extent가 있는 Concept부터 격         자모양으로 차례대로 그려나간다. 만약 지금 차         례의 Concept의 extent가 현재 그려진 그래프의         leaf의 extent에 속해 있다면, 그 Concept과 선을         긋는다.

예를 들면, 그림2에서는 UMLS로부터 임의로 선택한 "Lymphocyte antigen CD73"이라는 용어를 토로 표1의 시각화 알고리즘을 적용하여 개념화하여 개념계층구조로 표시한 예이다. 이 예에서는 "Lymphocyte antigen CD73"와 PAR관계가 있는 용어들을 개념화하여, 상속깊이 5까지의 개념화한 개념계층구조를 나타내고 있다.

그림 . 개념격자형태로 표현한 UMLS

한편, 위와 같이 구축된 개념계층구조를 대상으로  UMLS와 관련된 용어체계상의 순환구조를 검출하는 알고리즘을 제안한다.

표 2. 순환구조 검출 알고리즘

cycle(vertex v) {

visit(v);

for each neighbor w of v {

if w is visited and w is not prevvertex or w is v

print 순환구조;

if w is unvisited

cycle(w);

}

}

위의 알고리즘은, 개념격자를 대상으로 DFS(Depth First Search)탐색 알고리즘[6]을 사용하여 개념들 간의 순환구조를 검출한다. 그림3은 UMLS에서 제공하는 정보를 토대로 본 연구에서 제안한 순환구조 검출알고리즘을 적용하여 순환구조를 검출한 예를 나타내고 있다. 즉, Expectorant_agent_NOS 는 PAR, CHD 관계에서 자기 자신을 참조하고 있음을 알 수 있다.

그림 . 순환구조검출 알고리즘 적용예

Ⅲ. 실험         및       결과

본 연구에서는, 표1과 표2의 각 알고리즘을 토대로, UMLS사용자들이 수월하게 UMLS로부터의 개념계층구조를 파악하고 순환구조를 검출하기 위한 지원도구(UMLS Visualizer)를 구축하였다(그림3). UMLS Visualizer는, UMLS의 개념들과 개념계층구조를 FCA에서 제공하는 개념계층모델(개념격자모델)로 변환하여  Hasse Diagram으로 표현하고 개념들 간의 순환구조를 자동으로 검출하여 표시해 준다. 각각의 정점은 개념이고, 연결된 변은 개념간의 PAR, CHD 관계이다. 또한, 각 정점에는 해당의 개념의 이름이 레이블로 붙여져 있다. 또한, UMLS visualizer에는 복잡한 개념계층구조를 효율적으로 표시해 주고, 사용자편의성을 제공하기 위하여 개념계층구조를 3차원적으로 표시하는 기능 등을 제공하고 있다.

또한, UMLS의 메타시소러스에 포함되어 있는 개념들 중에서 무작위 방법으로 표3과 같은 3개의 용어를 선택하여, 상속깊이를 3, 4, 5와 같이 설정하여 UMLS Visualizer를 적용한 결과(개념계층구조)를 표시하고, 순환구조를 검출하기 위한 실험을 실시하였다. 표 3 및 그림5의 실험결과와 같이, UMLS로부터 선택한 3개의 용어에 관한 개념계층구조가 시각화되었으며, 실험대상용어 3개중 Phosmet,MOSKITY 등에 관한 개념계층구조상에는 순환구조가 존재함을 알 수 있었다.

그림 . UMLS Visualizer

Ⅳ. 결론        및            향후 과제

본 논문에서는 UMLS의 메타시소러스에서 제공하는 용어체계를 토대로, 형식개념분석기법(FCA)을 적용하여 개념계층구조를 시각화하고 개념들 간의 순환구조를 검출하기 위한 지원도구(UMLS Visualizer)를 개발하였다. 앞서 살펴보았던 실험에서는 UMLS의 MetaSubset에서 임의의 개념을 검색하여 3가지용어에 관한 UMLS의 메타시소러스에서 정의된 PAR과 CHD관계만을 적용하여 순환구조를 검출한 결과, 3개 용어들 중에서 2개 용어(Phosmet, MOSKITY)에서 순환구조를 검출할 수 있었다.

이와 같은 실험결과를 토대로, UMLS의 메타시소러스에 정의된 PAR, CHD뿐 아니라 Broader, Narrower,  semantic type 등 여러 가지 관계들을 고려할 경우, 보다 많은 순환구조를 검출할 수 있을 것으로 예상된다. 따라서, 향후 UMLS Visualizer는 각각의 관계를 전부 시각화할 필요가 있으며, 각 관계들로부터 파생되는 모든 순환구조를 검출할 수 있도록 확장할 예정이다. 또한, 용어체계들의 병합에 의해 발생할 수 있는 개념들 간의 순환구조를 검출하여 이를 비순환구조로 변환하기 위한 기법이 필요하다. 따라서, 이와 같은 향후 연구 과제를 해결하기 위해서는, 의학 분야 전문용어들에 대한 보다 광범위한 개념체계화 실험이 필요하며, 이와 더불어, 의학 분야 전문가들의 도움이 절대적으로 필요하다.

표 3 UMLS Visualizer 실행실험 데이터

용어	상속깊이	fUMLS Visualizer 실험결과	순환구조 검출결과
Hydroxyproline oxidase	3	(a)	순환구조 없음
	4	(b)
	5	(c)
Phosmet	3	(d)
	4	순환구조 발생	(g)
	5
MOSKITY	3	(e)	순환구조 없음
	4	(f)
	5	순환구조 발생	(h)

그림 5. UMLS Visualizer 실행결과

(a)	(b)		(c)
(d)	(e)		(f)
(g)		(h)

참고문헌

1. 김 혜선. “통합의학언어 시스템(UMLS)의 구성및 적용에 관한 고찰”, 情報管理硏究. vol. 32. no. 2. 2001.pp.26-39

2. Olivier Bodernreider, Circular Hierarchical Relationships in the UMLS: Etiology, Diagnosis, Treatment, Complications and Prevention, Proceedings of AMIA Annual Symposium 2001;:57-61.

3. Bernhand Ganter, Rudolf Wille. "Formal Concept Analysis(Methematical Foundation), 1999

4. B.A. Davey, H.A. Priestley, Introduction to Lattices and Order(2nd ed.), Cambridge University Press, 2002.

5. Claudio Carpineto, Giovanni Romano, Concept Data Analysis : Theory and Applications, Wiley, 2004

6. Thomas H. Cormen, Charles E. Leiserson, Ronald L.  Rivest, Clifford Stein. Introduction to Algorithms, Second Edition, The MIT Press; 2nd edition (September 1, 2001)