KR20100081871A - 사용자의 문맥을 바탕으로 개인화된 순위화 검색 방법 - Google Patents

사용자의 문맥을 바탕으로 개인화된 순위화 검색 방법 Download PDF

Info

Publication number
KR20100081871A
KR20100081871A KR1020090001293A KR20090001293A KR20100081871A KR 20100081871 A KR20100081871 A KR 20100081871A KR 1020090001293 A KR1020090001293 A KR 1020090001293A KR 20090001293 A KR20090001293 A KR 20090001293A KR 20100081871 A KR20100081871 A KR 20100081871A
Authority
KR
South Korea
Prior art keywords
context
user
search
preferences
contextual
Prior art date
Application number
KR1020090001293A
Other languages
English (en)
Other versions
KR100994725B1 (ko
Inventor
유개원
황승원
Original Assignee
포항공과대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 포항공과대학교 산학협력단 filed Critical 포항공과대학교 산학협력단
Priority to KR20090001293A priority Critical patent/KR100994725B1/ko
Publication of KR20100081871A publication Critical patent/KR20100081871A/ko
Application granted granted Critical
Publication of KR100994725B1 publication Critical patent/KR100994725B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24578Query processing with adaptation to user needs using ranking

Abstract

본 발명은 데이터베이스에서의 개인화된 순위화 검색을 위해 사전에 미리 사용자들의 피드백을 바탕으로 문맥적 선호도를 수집하여 저장하기 위한 효과적인 자료구조 구성과 그 피드백들을 이용하기 위하여 효율적인 검색을 하기 위한 검색 방법에 관한 것으로, 사전에 여러 사용자들의 정성적 피드백을 통하여 문맥적 선호도를 수집하는 과정; 상기 수집된 선호도의 집합을 효과적으로 저장하기 위하여 두 가지 자료구조를 명시하는 과정; 상기 명시된 자료구조의 바탕 위에서 특정한 사용자에게 가장 적합한 문맥적 선호도의 집합을 검색하기 위한 과정; 상기 검색된 문맥적 선호도를 바탕으로 현재 사용자에게 가장 적합한 순위화 함수를 학습하는 과정; 및 상기 학습된 순위화 함수를 이용하여 상위 K개의 질의 결과를 산출하는 과정을 포함한다. 이로써, 본 발명은 맹목적(user-oblivious)인 순위화 질의를 사용자의 문맥에 따라 순위화를 달리함으로써 질의 결과를 개인 맞춤형으로 상당히 향상시킬 수 있고, 질의 결과를 개인화 하는 문제를 문맥을 검색하는 검색문제로 치환함에 의해서 컴퓨팅에 필요한 비용을 최소한으로 축소하였다.
사용자 문맥, 단일 트리, 개인화된 순위화, 검색

Description

사용자의 문맥을 바탕으로 개인화된 순위화 검색 방법{Method of searching personalized ordering sequence based on user context}
본 발명은 사용자의 문맥을 바탕으로 개인화된 순위화 검색 방법에 관한 것으로, 보다 상세하게는 데이터베이스에서의 개인화된 순위화 검색을 위해 사전에 미리 사용자들의 피드백을 바탕으로 문맥적 선호도를 수집하여 저장하기 위한 효과적인 자료구조 구성과 그 피드백들을 이용하기 위하여 효율적인 검색을 하기 위한 검색 방법에 관한 것이다.
먼저, 이하의 설명에서 사용되는 용어를 정의하고자 한다.
스키마 R(tid, A1, …… , Ad)과 N개의 튜플(tuple) (t1, …… , tN)을 갖는 데이터베이스 테이블 r과 각각의 속성(attribute) Ai에 대해서 모든 가능한 값들의 집합인 도메인 Dom(Ai)이 주어 졌을 때, 문맥 X에 대한 문맥적 선호도(contextual preference)는 {tid = i > tid = j | X} 형태로 표현된다. 여기서 문맥 X란 불린 등호 조건(boolean equality condition)들의 결합(conjunction)이다. 등호 조건은 "Ai = ai"의 형태이고 ai∈Dom(Ai) 이다. 다시 말해서, 문맥 X는 X = ∧i∈l(Ai = ai) 형태로 표현되고 여기서 l ⊆ {1,...,d} 이다. 이런 문맥적 선호도는 X라는 문맥을 갖는 사용자가 튜플 j보다 i를 선호하는 것을 의미한다. 이러한 문맥적 선호도에 대한 정의는 참고문헌1 [R. Agrawal, R. Rantzau, and E. Terzi. Context-sensitive ranking. pages 383-394. In Proceedings of the ACM SIGMOD International Conference on Management of Data (SIGMOD'06), 2006]에 잘 나타나 있다.
상기 참고문헌1에서 정의된 문맥을 바탕으로, 두 문맥간의 유사도(similarity)를 측정하기 위한 방법을 정의한다. 먼저, 그 유사도를 계산하기 전에 각각의 문맥간의 유사도를 측정하기에 적합하도록 각각의 문맥을 벡터형태로 암호화(encoding)한다. 각각의 비트가 가능한 속성의 값(attribute value)의 존재여부를 표현하도록 문맥을 바이너리(binary) 벡터로 암호화한다. 즉, 각 비트는 상응하는 속성의 값이 해당 문맥에 존재하면 1로, 존재하지 않으면 0로 나타낸다. 따라서 하나의 문맥은 길이 n=
Figure 112009000927461-PAT00001
의 바이너리 벡터로 표현된다. 이런 바이너리 벡터 표현을 바탕으로 두 문맥간의 유사도는 기존의 벡터 유사도 측정 방법을 사용하여 계산될 수 있다. 특히, 본 발명은 두 문맥 C1, C2에 해당하는 각각의 벡터 VC1, VC2가 주어졌을 때, 벡터의 (1) 내적 VC1·VC2 혹은, (2) 코사인 유사도 cos(VC1, VC2) = VC1·C2/|VC1||VC2|로써 그 유사도를 측정한다. 이런 암호화 방식 또한 참고문헌1에 잘 명시되어 있다.
이하, 종래 기술에서 개인화된 검색을 위한 순위화 방법을 설명하고자 한다.
먼저, 최근의 연구는 사용자의 개인화에 염두에 두지 않았던 참고문헌2 [F. Radlinski and T. Joachims. Query chains: Learning to rank from implicit feedback. pages 239-248. In Proceedings of the ACM SIGKDD International Conference on Knowledge Discovery and Data Mining (KDD'05), 2005]와 참고문헌3 [J. M. Kleinberg. Authoritative sources in s hyperlinked environment. In Journal of the ACM, 1999]를 다양한 사용자의 암시적인 피드백 이용하여 순위화 결과를 향상 시키는 방향으로 확장하였다.
예를 들어, 참고문헌4 [T. Haveliwala. Topic-sensitive pagerank. pages 517-526. In Proceedings of the ACM WWW International conference on World Wide Web (WWW'02), 2002]는 참고문헌2의 바탕위에 사용자의 질의의 화제(topic)가 무엇인지에 따라서 질의 결과를 다시 순위화 하였다.
뿐만 아니라, 참고문헌 5 [F. Radlinski and T. Joachims. Query chains: Learning to rank from implicit feedback. pages 239-248. In Proceedings of the ACM SIGKDD International Conference on Knowledge Discovery and Data Mining (KDD'05), 2005]는 사용자의 클릭이나 눈의 움직임과 같은 사용자의 행동을 적용하여 질의 결과를 순위화하는 방법을 고안하였다.
다음으로, 상기에서 언급된 참고문헌1은 서로 다른 문맥에 따라서 수집된 여러 문맥적 선호도를 이용하여 각 문맥마다 튜플들 간에 하나의 선호도 순서(total ordering)를 구성하였다. 그러나 여기서 최적의 선호도 순서를 결정하는 일은 폴리노미얼 시간(polynomial time)에 풀리지 않는 매우 어려운 문제(NP-hard)로 알려져 있다. 따라서 참고문헌1은 이 문제를 해결하기 위해 최적의(optimal) 선호도 순서에 비해서 2배 이상 나쁘지 않은 근사(approximation) 알고리즘을 제안하였다. 또한, 이런 선호도 순서를 바탕으로 어떤 특정 문맥을 갖는 사용자가 데이터베이스에 질의를 했을 때, 이 사용자의 문맥과 기존에 미리 구성하였던 문맥들과의 유사도를 상기에서 언급하였던 코사인 유사도 지표를 사용하여 측정하고, 유사한 정도에 따라 각 문맥에 해당하는 선호도 순서를 가중치를 달리하여 민주적인 방법으로 하나의 순서로 규합하였다. 그러나 여러 순서를 하나의 순서로 규합하는 이 문제 역시 어려운 문제로 증명 되었고, 참고문헌1은 이 문제를 해결하기 위하여 또 다른 근사 알고리즘을 고안하였다. 그러나 이 처럼 근사하여 선호도 순서를 결정하는 참고문헌1과는 달리 이 문제를 기계학습을 통하여 정량적인 순위화 함수를 배운 뒤 각 튜플의 순위를 결정하는 문제로 치환할 필요가 생겼고, 사용자의 문맥에 해당하는 선호도 순서에 가중치를 달리하여 하나의 순서로 규합하는 참고문헌1과는 달리 가장 유사한 하나의 문맥을 찾는 검색 문제로 문제를 단순화할 필요가 생겼다.
한편, 상술한 종래의 방법들은 응용분야에 매우 의존적이라는 단점을 갖는다. 그러므로 본 발명에서처럼 데이터베이스와 같은 구조화된 데이터 구조 위에서 응용분야에 의존적이지 않은 보다 일반적인 프레임웍을 구축할 필요가 있다. 특히, 상기에서 언급했듯이 이를 달성하기 위하여 개인화 문제를 최소의 비용으로 문맥적 선호도를 찾는 문제로 치환할 필요가 있다.
본 발명은 상기와 같은 종래 기술의 문제점을 해결하기 위하여 안출한 것으로서, 그 목적은 문맥적 선호도를 저장하는데 필요한 오버헤드(overhead)를 최대한 줄이도록 그 자료 구조를 효과적으로 구성한, 사용자의 문맥을 바탕으로 개인화된 순위화 검색 방법을 제공하는데 있다.
또한, 본 발명의 다른 목적은 정의한 두 문맥간의 내적 유사도 측정 지표와 코사인 유사도 측정 지표를 지원하기 위하여, 특정 사용자의 문맥에 가장 잘 부합하는 문맥을 효율적으로 검색하는 사용자의 문맥을 바탕으로 개인화된 순위화 검색 방법을 제공하는데 있다.
또한, 본 발명의 또 다른 목적은 검색된 문맥에 대한 문맥적 선호도의 집합을 이용하여 개인화된 순위화 함수를 기계학습 기법을 통하여 배우고, 그 함수를 바탕으로 개인화된 순위화 질의 결과를 사용자에게 제공하는 사용자의 문맥을 바탕으로 개인화된 순위화 검색 방법을 제공하는데 있다.
상기와 같은 목적을 달성하기 위해 본 발명의 제1 양태에 따르면, 본 발명의 사용자의 문맥을 바탕으로 개인화된 순위화 검색 방법은 사전에 여러 사용자들의 정성적 피드백을 통하여 문맥적 선호도를 수집하는 제1과정; 상기 제1과정에서 수집된 선호도의 집합을 효과적으로 저장하기 위하여 두 가지 자료구조를 명시하는 제2과정; 상기 제2과정에서 명시된 자료구조의 바탕 위에서 특정한 사용자에게 가 장 적합한 문맥적 선호도의 집합을 검색하기 위한 제3과정; 상기 제3과정에서 검색된 문맥적 선호도를 바탕으로 현재 사용자에게 가장 적합한 순위화 함수를 학습하는 제4과정; 및 상기 제4과정에서 학습된 순위화 함수를 이용하여 상위 K개의 질의 결과를 산출하는 제5과정을 포함한다.
바람직하게는 상기 제1과정에서 명시된 정성적 피드백을 통하여 문맥적 선호도를 수집하는 과정을 명시하는 과정을 포함한다.
바람직하게는 상기 제2과정에서 명시된 상기 제1과정에서 수집된 선호도의 집합을 효과적으로 저장하기 위하여 복수개의 자료구조를 포함한다.
바람직하게는 상기 복수개의 자료구조는 2가지 자료구조를 포함하고, 정성적으로 표현된 사용자의 문맥적 선호도를 기반으로 하여 이 선호도를 효과적으로 저장하기 위한 제1 및 제2 자료 구조이고, 이와 같은 자료구조들을 기반으로 하여, 효율적으로 선호도를 찾는 제1 및 제2검색단계를 포함한다.
보다 바람직하게는, 상기 제2 자료구조를 기반으로 하여 상기 제2 검색단계를 확장하여 상기의 제1 및 제2 검색단계와는 다른 유사도 측정 지표(코사인 유사도)를 지원하기 위한 제3 검색단계를 포함한다.
이상에서 설명한 바와 같이 본 발명은 문맥에 따라 구분되는 사용자의 정성적인 선호도를 바탕으로 순위화 함수를 학습하고 이를 바탕으로 상위 K개의 튜플을 산출하는 방법을 제공한다. 이는 기존의 사용자의 기호를 고려하지 않은 맹목적(user-oblivious)인 순위화 질의를 사용자의 문맥에 따라 순위화를 달리함에 의 해서 질의 결과를 개인 맞춤형으로 상당히 향상시킬 수 있다.
또한 본발명은 질의 결과를 개인화 하는 문제를 문맥을 검색하는 검색문제로 치환함에 의해서 컴퓨팅에 필요한 비용을 최소한으로 축소하였다.
우선, 본발명의 개인화된 순위화 검색은, 문맥에 따라 구분되는 여러 사용자들의 정성적(qualitative)인 피드백을 기반으로 문맥적 선호도(contextual preference)의 집합을 미리 데이터베이스 시스템에 저장하고, 이를 바탕으로 어떤 문맥을 갖는 사용자가 데이터베이스에 질의를 했을 때, 현재 사용자와 가장 유사한 문맥의 문맥적 선호도 집합을 기반으로 하여 사용자에 가장 적합한 순위화 함수를 기계학습 기법을 통하여 배우고, 이를 바탕으로 개인화된 상위 K개의 질의 결과를 순서에 따라 사용자 보여준다.
본발명의 실시예에 따르면, 기존의 사용자들의 문맥적 선호도 집합을 저장하기 위한 제1 및 제2 자료구조를 포함하고, 그 자료 구조들을 바탕으로 가장 유사한 문맥을 갖는 문맥적 선호도 집합을 효율적으로 검색하기 위한 제1 및 제2 검색 단계를 포함한다. 또한, 상기의 제1 및 제2 검색단계에서 문맥간의 유사도 측정 지표로 사용한 내적(inner product) 지표를 확장하여, 코사인 유사도(cosine similarity) 지표를 지원하도록 제3 검색단계를 포함한다.
이와 같은 본 발명의 실시예를 종합하면, 본 발명에 의한 사용자의 문맥을 바탕으로 개인화된 순위화 검색 방법은 사전에 여러 사용자들의 정성적 피드백을 통하여 문맥적 선호도를 수집하는 제1과정; 상기 제1과정에서 수집된 선호도의 집 합을 효과적으로 저장하기 위하여 두 가지 자료구조를 명시하는 제2과정; 상기 제2과정에서 명시된 자료구조의 바탕 위에서 특정한 사용자에게 가장 적합한 문맥적 선호도의 집합을 검색하기 위한 제3과정; 상기 제 3과정에서 검색된 문맥적 선호도를 바탕으로 현재 사용자에게 가장 적합한 순위화 함수를 학습하는 제4과정; 상기 제4과정에서 학습된 순위화 함수를 이용하여 상위 K개의 질의 결과를 산출하는 제5과정을 포함하는 것을 특징으로 한다.
또한, 본 발명은 상기 제1과정에서 명시된 정성적 피드백을 통하여 문맥적 선호도를 수집하는 과정을 명시하는 과정을 포함한다.
본 발명은 기계학습 기법을 통해서 순위화 함수를 배우는 제4과정에서 사용되는 문맥적 선호도를 수집하기 위하여 참고문헌 5에 사용된 선호도 수집 방법을 차용하였음을 밝혀둔다.
상기 정의한 문맥적 선호도는 사용자의 행동을 분석하여 암시적으로 시스템이 자동으로 수집 할 수 있다. 특히, 본 발명은 문맥적 선호도를 수집하는 과정에서 참고문헌 5에서 사용된 방법과 일치하는 방법을 사용하였다. 즉, 본 발명에 적용되는 시스템은 사용자의 클릭 패턴을 분석하여 자동으로 문맥적 선호도를 분석하고 시스템 내부에 저장할 수 있다. 상기 정의된 문맥 X를 갖는 사용자가 j번째 튜플을 i번째 튜플보다 먼저 보았다는 가정에서 사용자가 i번째 튜플을 클릭 하였을 때, 참고문헌 4는 {tid = i > tid = j | X}와 같은 문맥적 선호도를 시스템에 저장하고 상기에서 명시된 순위화 함수를 학습하는 제3과정에서 이 문맥적 선호도를 이용한다. 이러한 문맥적 선호도에 대한 수집방법은 참고문헌 4에 더욱 자세히 나와 있으므로 본 발명에 직접적인 관련이 없는 설명은 생략하기로 한다.
또한, 본 발명은 상기 제2과정에서 명시된 상기 제1과정에서 수집된 선호도의 집합을 효과적으로 저장하기 위하여 제1 및 제2 자료구조를 포함한다.
상술한 바와 같이, 본 발명에서는 각각의 문맥이 바이너리 벡터로 암호화 되는 과정을 포함한다. 특히, 본 발명에서는 바이너리 벡터에서 각각의 비트는 문맥에서 각 속성 값의 존재 여부를 나타내는 1과 0으로 암호화된다.
이하, 이와 같은 바이너리 벡터로 암호화된 문맥을 가지고 어떻게 효과적으로 암호화된 문맥을 저장하는지에 대해 기술한다.
먼저, 시스템에 m개의 문맥이 존재 한다고 가정하고 모든 가능한 속성 값들의 개수의 합이 n이라고 가정을 하면 이 m개의 문맥은 1과 0으로 표현된 m행(row) n열(column)의 매트릭스로 나타낼 수 있고, 이 매트릭스를 바탕으로 후술에서 각 열에 대해 하나의 단일트리(simple tree)(제1 자료구조)를 정의한다.
<정의 1> 단일트리(simple tree)
등호조건 "Ui = <Aj, a>" (여기서 Ui = <Aj, a>는 Aj = a를 의미한다.)에 해당하는 단일트리 treei는 m개의 리프노드(leaf node)와 m-1개의 내부노드(internal node)를 갖는 완전 이진 트리(perfect binary tree) (여기서, 완전 이진 트리는 모든 리프노드가 같은 깊이(depth)를 갖고 모든 내부노드가 2개의 자식 노드를 갖는다.)이다. 또한, 이 단일트리의 k번째 리프노드는 k번째 문맥에 등호조건 Ui가 나타나면 1, 그렇지 않으면 0을 갖는다. 그리고 단일트리의 내부노드 u는 그것의 자식 노드들이 가질 수 있는 최소값 LW(u)과 최대값 UW(u)를 갖는다.
상기 단일트리의 정의를 바탕으로 매트릭스의 각 열에 대해서 어떻게 위와 같은 단일트리를 효율적으로 구성하는지에 대해 후술한다.
<정의 1>에 따라 단일 트리의 각 리프노드는 매트릭스의 열벡터의 각 비트에 해당하는 값을 갖고 내부노드는 그것의 자식노드들이 가질 수 있는 최소값과 최대값을 갖는다. 이 트리는 먼저 리프노드에 상응하는 값을 차례로 배치시키고, 리프노드에서 내부노드로 차례로 그 값들을 전파(propagation)함에 의해 완성될 수 있다. 특히, 그 값을 전파하는 과정에서 AND/OR 연산을 사용한다. 즉, 내부노드의 최소값을 계산하기 위하여 두 자식노드의 최소값들을 AND 연산하고, 내부노드의 최대값을 계산하기 위하여 두 자식노드의 최대값들을 OR 연산한다. 리프노드에서 루트(root)노드 까지 이와 같은 과정을 아래에서 위로 반복함에 따라 단일트리를 구성할 수 있다.
특히, 모든 열벡터에 해당하는 단일 트리를 구성하기 위한 저장 복잡도는 O(n(2m-1))이 된다. 각 단일 트리의 리프노드의 개수는 m개이고, 단일 트리는 완전 이진 트리라고 가정하였기 때문에, 각 단일트리는 m-1개의 내부 노드를 갖게 된다. 또한 각 열벡터마다 하나의 단일 트리를 갖게 됨으로 최종 복잡도는 위와 같은 값을 갖게 된다.
한편, 위의 복잡도를 좀 더 개선한 또 다른 제2 자료구조를 아래와 같이 정의한다.
<정의 2> 이분 그래프(bipartite graph)
모든 등호조건 Ui의 집합 U와 모든 문맥 Cj의 집합 C가 주어졌을 때, G = (U∪C, E)는 이분 그래프이다. 여기서 E는 U와 C의 원소들 사이에 연결된 에지(edge)의 집합이다. 특히 각각의 에지는 사용자의 문맥이 등호조건을 포함하는 것을 나타내는 것으로 Cj가 Ui를 포함하면 하나의 에지를 만든다.
위의 이분 그래프의 정의를 바탕으로 저장 복잡도를 계산하면 U와 C의 각 원소들과 에지들을 모두 합산한 O(|U∪C|+|E|)이다.
특히, 이분 그래프에서 C의 원소들은 U의 원소들과 연결된 에지의 개수에 대해서 내림차순으로 정렬을 하게 된다. 그 이유는 다음과 같은 식에 의해서 설명될 수 있다. 사전에 수집된 문맥의 집합 Ci와 현재 사용자의 문맥 X에 상응하는 벡터 VCi, VX가 주어졌을 때, 내적 유사도는 VCi·VX≤ |VCi|2 이다. 여기서 |VCi|2 은 문맥 Ci가 갖는 에지의 개수를 의미하기 때문에 두 문맥의 내적 유사도 지표의 최대값 또한 역시 문맥 Ci가 갖는 에지의 개수를 의미하게 된다. 따라서 본 발명에서는 이와 같은 사실을 이용하여 정렬된 문맥들을 다 검색하지 않고 조기에 가장 내적 유사도가 큰 문맥을 찾고 검색을 멈출 수 있다. 가장 내적 유사도가 큰 문맥을 찾는 문제는 제3과정의 제2 검색단계에서 후술한다.
한편, 상기 명시된 제1 및 제2 두 자료구조를 바탕으로 제3과정에서 명시된 문맥적 선호도를 효율적으로 검색하기 위한 제1 및 제 2 검색단계를 제공한다.
먼저 상기 정의된 제1 자료구조의 단일 트리를 바탕으로 한 제1 검색단계의 동작은 다음과 같이 4 단계로 구성된다. 제1단계로, 주어진 사용자의 문맥 X가 포함하는 등호조건에 상응하는 단일 트리를 수집한다. 제2단계로, 수집된 단일 트리의 루트(root)노드의 LW()과 UW()을 모두 합하여 하나의 노드를 구성하고 우선순위 큐(priority queue) (여기서, 우선순위 큐는 UW()의 값이 큰 순서대로 큐 안의 노드들을 정렬한다. 또한, UW()의 값이 같을 경우 LW()값이 큰 값을 우선으로 배치한다.)에 그 노드를 삽입한다. 제3단계로, 우선순위 큐의 제일 위에 있는 노드를 팝(pop)하여 그 자식노드 들의 LW()과 UW()을 계산하고 다시 큐에 그 노드들을 삽입한다. 제4 단계로, 팝한 노드가 리프노드일 경우에 위의 과정을 중단한다.
다음으로, 상기 정의된 제2 자료구조의 이분 그래프를 바탕으로 한 제2 검색단계의 동작은 다음과 같이 3 단계로 구성된다. 특히, 제2 자료구조에서 명시되었던 것처럼 정렬된 C의 원소 순서대로 문맥을 내림차순으로 접근한다. 제1단계로, 주어진 사용자의 문맥 X와 현재 문맥과 공유하는 등호조건의 개수를 센다. X와 공유하는 등호조건의 개수는 내적지표 유사도 값과 일치한다. 제2단계로, 제1단계에서 세어진 X와 공유하는 등호조건의 개수가 현재까지 센 등호조건의 최대값보다 크다면 그 최대값을 업데이트 한다. 제3단계로, 현재의 문맥의 등호조건의 총 개수가 최대값보다 작다면 위의 과정을 중단한다.
상기 두개의 제1 및 제2 검색단계를 통해서 본 발명은 효율적으로 가장 적절한 문맥을 검색할 수 있다. 즉, 내적 유사도 측면에서 가장 유사한 문맥을 빠르게 검색한다.
다음으로, 본 발명은 위에서 제안된 제2 자료구조를 바탕으로 상기 정의된 코사인 유사도 측정 지표의 측면에서 가장 유사한 문맥을 찾는 제3 검색단계를 포함한다.
특히, 아래 두 식은 이러한 코사인 유사도 측정 지표로의 확장을 가능하게 한다. 문맥의 집합 C와 사용자의 문맥 X가 주어 졌을 때, C의 원소 Ci와 X에 상응하는 벡터 VCi와 VX에 대해서 코사인 유사도는 아래 두 식으로 한정될 수 있다.
VCi·VX/|VCi||VX| ≤ |VCi|/|Vx|
VCi·VX/|VCi||VX| ≤ |Vx|/|VCi|
위의 두 식은 다음과 같은 두 가지 특징으로 구분되어 질 수 있다. 첫 번째로, 만약 VX가 많은 1 비트를 포함하고 있어서 밀집도가 높은 경우에 |Vx|의 값이 커짐에 따라서 |VCi|/|Vx| 값은 상대적으로 작아지게 된다. 따라서 이 경우는 수학식 1에 해당하는 |VCi|/|Vx|값이 코사인 유사도에 좀 가까운(tight) 한정 값이 된다. 두 번째로, 만약 VX가 적은 1 비트를 포함하고 있어서 밀집도가 낮은 경우에 수학식 2에 해당하는 |Vx|/|VCi|이 상대적으로 작은 값을 갖게 되어 더 가까운 한정 값의 역할을 하게 된다.
이 두식을 바탕으로 위에서 기술 하였던 제2 검색단계의 검색 순서와 제3단계인 정지 조건을 다르게 변형 하여 제3 검색단계를 구성할 수 있다. |Vx|은 모든 계산에 공통적으로 들어가기 때문에 생략을 하면 수학식 1에서는 한정치(upper bound)를 결정하는 요소는 |VCi|이고 수학식 2에서의 한정치를 결정하는 요소는 1/|VCi|이 된다. 따라서 상기의 두 가지 분석에 따라 VX의 밀집도가 높은 경우는 수학식 1의 한정치를 이용하여 제2 자료구조에서 C의 원소들을 내림차순으로 접근하고, 밀집도가 낮은 경우는 (2)의 한정치를 이용하여 C의 원소들을 오름차순으로 접근한다. 또한 제2 검색단계의 제3단계인 정지 조건은 각각 현재까지의 가장 큰 코사인 유사도가 상기 수학식 1과 수학식 2의 한정치보다 크지 않은 경우가 된다.
한편, 상기 검색된 가장 유사한 문맥이 갖는 문맥적 선호도를 바탕으로, 상기 제3과정에서 검색된 문맥적 선호도의 집합을 가지고 제4과정에서 명시된 순위화 함수를 학습한다.
본 발명에서 검색된 문맥적 선호도의 집합을 바탕으로 순위화 함수를 학습하는 과정은 참고문헌 6 [T. Joachims. Optimizing search engines using clickthrough data. pages 133-142. In Proceedings of the ACM SIGKDD International Conference on Knowledge Discovery and Data Mining (KDD'02), 2002]의 알고리즘 RankSVM과 일치하는 방법을 따른다. 특히, RankSVM은 수집된 정성적인 문맥적 선호도를 바탕으로 모든 튜플들의 순서를 정량적으로 결정하는 순위화 함수를 학습한다.
마지막으로, 본 발명에 따르면, 제4과정에서 학습한 순위화 함수를 바탕으로 참고문헌 7 [R. Fagin. Combining fuzzy information from multiple systems. pages 216-226. In Proceedings of the ACM SIGACT-SIGMOD-SIGART Symposium on Principles of Database Systems (PODS'96), 1996]에서 사용된 TA/NRA 스타일의 알고리즘을 사용하여 효율적으로 가장 유망한 상위 K개의 튜플을 검색한다.
이하 도면을 참조하여 본 발명을 설명하기로 한다.
도 1은 본 발명에 적용되는 개인화된 상위 K개의 튜플을 찾는 순위화 질의 시스템의 대략적인 구성을 나타낸 예시도이다. 본 발명은 도 1의 시스템 구성도를 바탕으로 개인화된 상위 K개의 튜플을 검색하는 순위화 질의를 지원하는데, CPU(10)의 처리하에, 순위화 질의 모듈(20)은 데이터 및 각종 자료구조를 구비한 데이터모듈(30)로부터의 데이터 및 자료구조를 읽어들여 개인화된 순위화 검색 명령을 처리한다. 상기 순위화 질의 모듈(20)은 CPU(10)의 명령에 응답하는 순위화 질의 시스템(22)과 상기 데이터 모듈(30)로부터 각종 데이터를 저장처리하는 데이터베이스시스템(24)을 포함한다. 또한, 상기 데이터 모듈(30)은 각종 데이터를 저장하는 데이터베이스(32)와 문맥적 선호도를 저장하는 자료구조에 관한 정보를 저장하는 저장부(34)를 포함한다.
도 2는 수집된 문맥을 암호화한 예시도이다. 본 발명은 도 2의 암호화된 예제 문맥을 바탕으로, 상기 명시된 방법들에 대해서 구체적인 설명을 한다.
즉, 등호 조건 집합(U)에 의해, 수집된 사전 문맥들의 집합(C)으로부터 현재 사용자 문맥(X)과 가장 유사한 문맥을 찾는다.
도 3은 단일 트리와 그 트리 구조에서 문맥을 검색하는 예시도이다.
도 3은 도 2에서 암호화된 문맥들을 바탕으로 하여 단일 트리를 구성한 그림 과 그 구성된 단일 트리를 바탕으로 제1 검색단계에서 명시한 가장 유사한 문맥을 찾는 과정 명시한다. 특히 상단에 위치한 4개의 단일트리는 2, 3, 4, 7번째 등호 조건에 상응하는 단일 트리들을 나타낸 그림이고 하단에 위치한 1개의 트리는 4개의 단일트리를 바탕으로 가장 유사한 문맥을 찾는 과정에서 각 트리를 규합하게 되는 과정을 묘사한 트리이다. 트리를 규합하는 과정은 상기 제1 검색단계에서 명시한 단계와 일치한다.
다음으로 도 4a 및 도 4b는 이분 그래프와 그 그래프 구조에서 문맥을 검색하는 예시도이며, 여기서 도 4a는 이분 그래프를 구성하고 정렬하는 것을 도시하고, 도 4b는 이분 그래프에서 문맥을 검색하는 것을 도시한다.
도 4a와 도 4b는 도 2의 문맥들을 바탕으로 이분 그래프를 구성하고 그 그래프의 이용하여 가장 유사한 문맥을 찾는 과정을 명시한다. 특히 도 4a는 모든 문맥과 등호 조건들에 대해서 제2 자료구조에서 명시한 것처럼 두 집합간의 에지를 형성하고 문맥들을 그 에지의 수에 따라 정렬하는 과정을 보여준다. 또한, 도 4b는 그런 이분 그래프를 바탕으로 가장 유사한 문맥을 찾는 과정과 정지 조건을 묘사한다. 이 과정은 제2 검색단계에서 명시한 구체적인 단계와 일치한다.
본 발명의 사용자의 문맥을 바탕으로 개인화된 순위화 검색 방법에 적용하는 개인화 질의는 웹(Web)과 같은 대용량 데이터 정보 환경에서 사용자에 기호에 맞는 정보만을 간추려 찾기에 매우 유용하다. 특히, 비즈니스에서 가장 합리적인 결정을 내릴 때 이를 도울 수 있는 애플리케이션으로 지원될 수 있다. 또한, 사용자의 선호도에 따라 원하는 상품을 찾아주는 웹 서비스(Web Service)시스템에서도 충분히 이용이 가능하다.
현재 본 발명에서 제공하는 개인화 질의는 상용화된 데이터베이스시스템(DBMS)에서 직접적으로 지원되지 않고 있으나, GOOGLE이나 YAHOO와 같은 대표적인 웹 검색 서비스 업체들에서 베타서비스를 제공하고 있는 등 개인화 질의 서비스에 대한 시작 단계에 있다. 차후에 사용자의 선호도에 기반한 개인화 질의는 점차적으로 확산 될 전망이다.
도 1은 본 발명에 적용되는 개인화된 상위 K개의 튜플을 찾는 순위화 질의 시스템의 대략적인 구성을 나타낸 예시도이다.
도 2는 수집된 문맥을 암호화한 예시도이다.
도 3은 단일 트리와 그 트리 구조에서 문맥을 검색하는 예시도이다.
도 4a 및 도 4b는 이분 그래프와 그 그래프 구조에서 문맥을 검색하는 예시도이며, 여기서 도 4a는 이분 그래프를 구성하고 정렬하는 것을 도시하고, 도 4b는 이분 그래프에서 문맥을 검색하는 것을 도시한다.

Claims (12)

  1. 사용자의 문맥을 바탕으로 개인화된 순위화 검색 방법에 있어서,
    사전에 여러 사용자들의 정성적 피드백을 통하여 문맥적 선호도를 수집하는 제1과정;
    상기 제1과정에서 수집된 선호도의 집합을 효과적으로 저장하기 위하여 두 가지 자료구조를 명시하는 제2과정;
    상기 제2과정에서 명시된 자료구조의 바탕 위에서 특정한 사용자에게 가장 적합한 문맥적 선호도의 집합을 검색하기 위한 제3과정;
    상기 제3과정에서 검색된 문맥적 선호도를 바탕으로 현재 사용자에게 가장 적합한 순위화 함수를 학습하는 제4과정; 및
    상기 제4과정에서 학습된 순위화 함수를 이용하여 상위 K개의 질의 결과를 산출하는 제5과정을 포함하는 사용자의 문맥을 바탕으로 개인화된 순위화 검색 방법.
  2. 제1항에 있어서, 상기 제1과정에서 명시된 정성적 피드백을 통하여 문맥적 선호도를 수집하는 과정을 명시하는 과정을 포함하는 검색방법.
  3. 제1항에 있어서, 상기 제2과정에서 명시된 상기 제1과정에서 수집된 선호도의 집합을 효과적으로 저장하기 위하여 복수개의 자료구조를 포함하는 검색방법.
  4. 제3항에 있어서, 상기 복수개의 자료구조는 2가지 자료구조를 포함하고, 정성적으로 표현된 사용자의 문맥적 선호도를 기반으로 하여 이 선호도를 효과적으로 저장하기 위한 제1 및 제2 자료 구조이고, 이와 같은 자료구조들을 기반으로 하여, 효율적으로 선호도를 찾는 제1 및 제2검색단계를 포함하는 검색방법.
  5. 제4항에 있어서, 상기 제2 자료구조를 기반으로 하여 상기 제2 검색단계를 확장하여 상기의 제1 및 제2 검색단계와는 다른 유사도 측정 지표(코사인 유사도)를 지원하기 위한 제3 검색단계를 포함하는 검색방법.
  6. 제1항에 있어서, 상기 제2과정에서 각 문맥에 따라 단일 트리를 구성하는 과정을 포함하는 검색방법.
  7. 제6항에 있어서, 상기 제2과정에 모든 문맥과 등호 조건을 이용하여 이분 그래프를 구성하고 문맥의 효율적인 검색을 위해 문맥들을 정렬하는 과정을 포함하는 검색방법.
  8. 제6항에 있어서, 상기 단일 트리를 규합하여 하나의 트리를 구성하면서 가장 유사한 문맥을 효율적으로 찾는 과정을 포함하는 검색방법.
  9. 제7항에 있어서, 상기 이분 그래프를 이용하여 가장 유사한 문맥을 효율적으로 찾는 과정을 포함하는 검색방법.
  10. 제7항에 있어서, 상기 이분 그래프를 바탕으로 코사인 유사도의 측정지표에서 가장 유사한 문맥을 찾도록 확장하는 과정을 포함하는 검색방법.
  11. 제4항에 있어서, 상기 정의된 제1 자료구조의 단일 트리를 바탕으로 한 제1 검색단계는 주어진 사용자의 문맥 X가 포함하는 등호조건에 상응하는 단일 트리를 수집하는 제1단계;
    수집된 단일 트리의 루트(root)노드의 LW()과 UW()을 모두 합하여 하나의 노드를 구성하고 우선순위 큐(priority queue) (여기서, 우선순위 큐는 UW()의 값이 큰 순서대로 큐 안의 노드들을 정렬하고, 또한, UW()의 값이 같을 경우 LW()값이 큰 값을 우선으로 배치한다.)에 그 노드를 삽입하는 제2단계;
    우선순위 큐의 제일 위에 있는 노드를 팝(pop)하여 그 자식노드 들의 LW()과 UW()을 계산하고 다시 큐에 그 노드들을 삽입하는 제3단계; 및
    상기 팝한 노드가 리프노드일 경우에 위의 과정을 중단하는 제4단계를 포함하는 검색방법.
  12. 제4항에 있어서, 상기 정의된 제2 자료구조의 이분 그래프를 바탕으로 한 제2 검색단계는 정렬된 C의 원소 순서대로 문맥을 내림차순으로 접근하며,
    주어진 사용자의 문맥 X와 현재 문맥과 공유하는 등호조건의 개수를 세며, X와 공유하는 등호조건의 개수는 내적지표 유사도 값과 일치하는 제1단계;
    상기 제1단계에서 세어진 X와 공유하는 등호조건의 개수가 현재까지 센 등호조건의 최대값보다 크다면 그 최대값을 업데이트 하는 제2단계; 및
    현재의 문맥의 등호조건의 총 개수가 최대값보다 작다면 위의 과정을 중단하는 제3단계를 포함하는 검색방법.
KR20090001293A 2009-01-07 2009-01-07 사용자의 문맥을 바탕으로 개인화된 순위화 검색 방법 KR100994725B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR20090001293A KR100994725B1 (ko) 2009-01-07 2009-01-07 사용자의 문맥을 바탕으로 개인화된 순위화 검색 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20090001293A KR100994725B1 (ko) 2009-01-07 2009-01-07 사용자의 문맥을 바탕으로 개인화된 순위화 검색 방법

Publications (2)

Publication Number Publication Date
KR20100081871A true KR20100081871A (ko) 2010-07-15
KR100994725B1 KR100994725B1 (ko) 2010-11-16

Family

ID=42642201

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20090001293A KR100994725B1 (ko) 2009-01-07 2009-01-07 사용자의 문맥을 바탕으로 개인화된 순위화 검색 방법

Country Status (1)

Country Link
KR (1) KR100994725B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015108964A1 (en) * 2014-01-14 2015-07-23 Yorn, Llc Context-based feedback system and method
WO2019177182A1 (ko) * 2018-03-12 2019-09-19 미디어젠 주식회사 속성 정보 분석을 통한 멀티미디어 컨텐츠 검색장치 및 검색방법
WO2020153795A1 (ko) * 2019-01-25 2020-07-30 삼성전자 주식회사 보이스 어시스턴트 서비스를 제공하는 시스템 및 방법

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015108964A1 (en) * 2014-01-14 2015-07-23 Yorn, Llc Context-based feedback system and method
US11574346B2 (en) 2014-01-14 2023-02-07 Clx Health Llc Context-based feedback system and method
WO2019177182A1 (ko) * 2018-03-12 2019-09-19 미디어젠 주식회사 속성 정보 분석을 통한 멀티미디어 컨텐츠 검색장치 및 검색방법
WO2020153795A1 (ko) * 2019-01-25 2020-07-30 삼성전자 주식회사 보이스 어시스턴트 서비스를 제공하는 시스템 및 방법
US11961512B2 (en) 2019-01-25 2024-04-16 Samsung Electronics Co., Ltd. System and method for providing voice assistance service

Also Published As

Publication number Publication date
KR100994725B1 (ko) 2010-11-16

Similar Documents

Publication Publication Date Title
Ben-Yitzhak et al. Beyond basic faceted search
EP1618496B1 (en) A system and method for generating refinement categories for a set of search results
Han et al. Intelligent query answering by knowledge discovery techniques
US5926812A (en) Document extraction and comparison method with applications to automatic personalized database searching
US7130844B2 (en) System and method for examining, calculating the age of an document collection as a measure of time since creation, visualizing, identifying selectively reference those document collections representing current activity
CN108446367A (zh) 一种基于知识图谱的包装行业数据搜索方法及设备
US20060155751A1 (en) System and method for document analysis, processing and information extraction
KR20120030389A (ko) 검색 결과 통합
CN1702654A (zh) 计算显示页面中块的重要度的方法和系统
EP1218831A1 (en) System and method for performing similarity searching
US20040088649A1 (en) System and method for finding the recency of an information aggregate
Loudcher et al. Combining OLAP and information networks for bibliographic data analysis: a survey
Wolfram The symbiotic relationship between information retrieval and informetrics
Stefanidis et al. A context‐aware preference database system
KR100994725B1 (ko) 사용자의 문맥을 바탕으로 개인화된 순위화 검색 방법
US8224858B2 (en) Methods and system for information storage enabling fast information retrieval
Liu et al. A semantic and intelligent focused crawler based on semantic vector space model and membrane computing optimization algorithm
You et al. Search structures and algorithms for personalized ranking
Fathy et al. A Personalized Approach for Re-ranking Search Results Using User Preferences.
Weninger et al. Winacs: Construction and analysis of web-based computer science information networks
Bokhari et al. Retrieval effectiveness of news search engines: a theoretical framework
Raschid et al. Learning to Rank in Entity Relationship Graphs
Kushwaha et al. A Comparative study of Algorithms in SEO & approach for Optimizing the search engine results using Hybrid of Query Recommendation and Document clustering, Genetic algorithm
Zhang et al. An integrated system for building enterprise taxonomies
Eichstädt Internet webcasting: generating and matching profiles

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee