KR20210067588A - 항목 분류 체계를 고려한 시퀀스 간 유사도를 판단하는 전자 장치 및 그 제어 방법 - Google Patents

항목 분류 체계를 고려한 시퀀스 간 유사도를 판단하는 전자 장치 및 그 제어 방법 Download PDF

Info

Publication number
KR20210067588A
KR20210067588A KR1020190157364A KR20190157364A KR20210067588A KR 20210067588 A KR20210067588 A KR 20210067588A KR 1020190157364 A KR1020190157364 A KR 1020190157364A KR 20190157364 A KR20190157364 A KR 20190157364A KR 20210067588 A KR20210067588 A KR 20210067588A
Authority
KR
South Korea
Prior art keywords
similarity
items
sequences
sequence
information
Prior art date
Application number
KR1020190157364A
Other languages
English (en)
Other versions
KR102279210B1 (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 KR1020190157364A priority Critical patent/KR102279210B1/ko
Priority to PCT/KR2020/012648 priority patent/WO2021107360A2/ko
Publication of KR20210067588A publication Critical patent/KR20210067588A/ko
Application granted granted Critical
Publication of KR102279210B1 publication Critical patent/KR102279210B1/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/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2474Sequence data queries, e.g. querying versioned data
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • 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/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2462Approximate or statistical queries

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Fuzzy Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명에 따른 일 실시예는, 순서를 가지는 제1 항목들로 구성된 제1 시퀀스를 획득하는 과정; 순서를 가지는 제2 항목들로 구성된 제2 시퀀스를 획득하는 과정; 및 제1 정보 및 제2 정보에 기초하여 상기 제1 및 제2 시퀀스의 유사 여부를 판단하는 과정을 포함하며, 상기 제1 정보는 상기 제1 항목들 중 하나를 상기 제2 항목들 중 하나로 변환하기 위한 연산의 횟수에 관한 정보를 포함하며, 상기 제2 정보는 상기 제1 항목들 중 하나와 상기 제2 항목들 중 하나 사이의 상기 항목 분류 트리 내의 최단 경로의 길이에 관한 정보를 포함하는, 항목 분류 체계를 고려한 시퀀스 간 유사도를 판단하는 제어 방법를 제공할 수 있다.

Description

항목 분류 체계를 고려한 시퀀스 간 유사도를 판단하는 전자 장치 및 그 제어 방법{Electronic device for determining similarity between sequences considering item classification scheme and control method thereof}
본 발명은 항목 분류 체계를 고려한 시퀀스 간 유사도를 판단하는 전자 장치 및 그 제어 방법에 관한 것으로, 구체적으로 항목 분류 체계 내의 항목들 간 최단 경로의 거리를 이용하여 항목들을 포함하는 시퀀스들 간 유사도를 판단하는 전자 장치 및 제어 방법에 관한 것이다.
최근 스마트폰의 보급과 소셜 네트워크 서비스의 발전으로 인해 다양한 데이터가 스마트폰 사용자들로부터 데이터스트림의 형태로 끊임없이 실시간으로 생성되는 빅데이터 환경이 도래하였다. 데이터스트림이란 시간의 흐름에 따라 순차적으로 무한하게 생성되는 데이터를 말한다.
유사 시퀀스 매칭이란 수많은 데이터 시퀀스(data sequence)들 중에서 사용자에 의해 주어지는 질의 시퀀스 (query sequence)와 유사한 데이터 시퀀스를 검색하는 문제이다. 시퀀스를 구성하는 데이터로 연속성을 가지는 수치 데이터를 사용하여 유사 시퀀스 매칭을 수행할 경우, 비슷한 형태를 가지는 유사한 데이터 시퀀스를 찾을 수 있다.
데이터 시퀀스의 일 예로, 구매 이력 데이터는 고객이 생성하는 대표적인 데이터 중 하나이다. 구매 이력 데이터에는 물건을 구매하는 사람의 특성과 이에 따라 소비되는 제품, 소비 패턴 등이 담겨있다. 다른 고객들의 구매 이력 데이터를 비교하여 유사 여부를 판단함으로써, 새로운 상품 추천 등의 서비스를 할 수 있다.
그러나, 종래의 구매이력 데이터 간 유사 판단 방법은 시퀀스 내의 상품들 간 연관성에 대한 정보를 반영하지 못하여 구매이력 데이터의 유사 판단에 대한 정확성이 떨어지는 문제가 있었다.
한국 등록특허공보 제10-1937989호 (집합 기반 유사 시퀀스 매칭 장치 및 방법)
본 발명의 일 실시예에 따른 항목 분류 체계를 고려한 시퀀스 간 유사도를 판단하는 전자 장치 및 그 제어 방법은 순서를 가지는 항목들로 구성된 시퀀스들의 유사도를 제공하는 것을 목적으로 한다.
본 발명의 일 실시예에 따른 항목 분류 체계를 고려한 시퀀스 간 유사도를 판단하는 전자 장치 및 그 제어 방법은 상품의 구매이력들의 유사도를 제공하는 것을 목적으로 한다.
본 발명의 일 실시예에 따른 항목 분류 체계를 고려한 시퀀스 간 유사도를 판단하는 전자 장치 및 그 제어 방법은 상품의 구매이력들의 유사도를 제공하기 위하여 상품 분류 트리를 이용하는 것을 목적으로 한다.
본 발명의 일 실시예에 따른 항목 분류 체계를 고려한 시퀀스 간 유사도를 판단하는 전자 장치 및 그 제어 방법은 상품의 구매이력들의 유사도를 판단하기 위한 시간을 단축하는 것을 목적으로 한다.
본 발명의 일 실시 예는, 순서를 가지는 제1 항목들로 구성된 제1 시퀀스를 획득하는 과정; 순서를 가지는 제2 항목들로 구성된 제2 시퀀스를 획득하는 과정; 및 제1 정보 및 제2 정보에 기초하여 상기 제1 및 제2 시퀀스의 유사 여부를 판단하는 과정을 포함하며, 상기 제1 정보는 상기 제1 항목들 중 하나를 상기 제2 항목들 중 하나로 변환하기 위한 연산의 횟수에 관한 정보를 포함하며, 상기 제2 정보는 상기 제1 항목들 중 하나와 상기 제2 항목들 중 하나 사이의 상기 항목 분류 트리 내의 최단 경로의 길이에 관한 정보를 포함하는, 항목 분류 체계를 고려한 시퀀스 간 유사도를 판단하는 제어 방법을 제공할 수 있다.
본 발명의 일 실시 예는, 상기 제1 및 제2 항목들은 동일한 항목 분류 트리의 단말 노드에 해당하는 것을 특징으로 하는, 항목 분류 체계를 고려한 시퀀스 간 유사도를 판단하는 제어 방법을 제공할 수 있다.
본 발명의 일 실시 예는, 상기 제2 정보는 상기 항목 분류 트리 내의 항목들의 최장 경로의 길이에 관한 정보를 더 포함하는 것을 특징으로 하는, 항목 분류 체계를 고려한 시퀀스 간 유사도를 판단하는 제어 방법을 제공할 수 있다.
본 발명의 일 실시 예는, 상기 제1 항목들 중 하나와 상기 제2 항목들 중 하나 사이의 상기 항목 분류 트리 내의 최단 경로의 길이는 기 저장된 상기 항목 분류 트리의 각 노드에 대한 깊이 정보에 기초하여 결정되는 것을 특징으로 하는, 항목 분류 체계를 고려한 시퀀스 간 유사도를 판단하는 제어 방법을 제공할 수 있다.
본 발명의 일 실시 예는, 항목 분류 트리에 대한 정보를 저장하는 메모리; 및 상기 메모리를 제어하는 프로세서를 포함하며, 상기 프로세서는, 순서를 가지는 제1 항목들로 구성된 제1 시퀀스를 획득하고, 순서를 가지는 제2 항목들로 구성된 제2 시퀀스를 획득하고, 제1 정보 및 제2 정보에 기초하여 상기 제1 및 제2 시퀀스의 유사 여부를 판단하도록 제어하며, 상기 제1 정보는 상기 제1 항목들 중 하나를 상기 제2 항목들 중 하나로 변환하기 위한 연산의 횟수에 관한 정보를 포함하며, 상기 제2 정보는 상기 제1 항목들 중 하나와 상기 제2 항목들 중 하나 사이의 상기 항목 분류 트리 내의 최단 경로의 길이에 관한 정보를 포함하는, 항목 분류 체계를 고려한 시퀀스 간 유사도를 판단하는 전자 장치를 제공할 수 있다.
본 발명의 일 실시 예는, 상기 제1 및 제2 항목들은 동일한 항목 분류 트리의 단말 노드에 해당하는 것을 특징으로 하는, 항목 분류 체계를 고려한 시퀀스 간 유사도를 판단하는 전자 장치를 제공할 수 있다.
본 발명의 일 실시 예는, 상기 제2 정보는 상기 항목 분류 트리 내의 항목들의 최장 경로의 길이에 관한 정보를 더 포함하는 것을 특징으로 하는, 항목 분류 체계를 고려한 시퀀스 간 유사도를 판단하는 전자 장치를 제공할 수 있다.
본 발명의 일 실시 예는, 상기 제1 항목들 중 하나와 상기 제2 항목들 중 하나 사이의 상기 항목 분류 트리 내의 최단 경로의 길이는 상기 메모리에 기 저장된 상기 항목 분류 트리의 각 노드에 대한 깊이 정보에 기초하여 결정되는 것을 특징으로 하는, 항목 분류 체계를 고려한 시퀀스 간 유사도를 판단하는 전자 장치를 제공할 수 있다.
본 발명의 일 실시 예는, 항목 분류 체계를 고려한 시퀀스 간 유사도를 판단하는 제어 방법을 제공함으로써, 시퀀스들 간 유사여부를 유사 및 비유사와 같이 불연속적인 결과를 제공하는 것이 아니라 정량적인 수치를 제공함으로서 유사도를 제공하는 효과를 가진다.
본 발명의 일 실시 예는, 동일한 항목 분류 체계를 가지는 시퀀스들의 유사 여부를 비교할 수 있는 효과를 가진다.
본 발명의 일 실시 예는, 기 저장된 상기 항목 분류 트리의 각 노드에 대한 깊이 정보에 기초하여 항목 분류 체계를 고려한 시퀀스 간 유사도를 판단하는 제어 방법을 제공함으로써, 시퀀스들의 유사 판단 시간을 단축할 수 있는 효과를 가진다.
본 발명의 일 실시 예는, 항목 분류 체계를 고려한 시퀀스 간 유사도를 판단하는 제어 방법을 제공함으로써, 상품 구매이력들의 유사도를 제공하는 효과를 가진다.
도 1은 유클리디안 거리와 DTW 거리의 비교를 도시한 것 이다.
도 2(a)는 본 발명에서 사용한 상품 분류 트리 중 일부를 도시한 것이다.
도 2(b)는 본 발명에서 사용한 상품 분류 트리의 longestPath 및 itemPath의 일 예를 도시한 것이다.
도 3은 제안 방법을 적용한 수행 시간 측정 결과 (Experimental results for proposed methods)이다
도 4는 구매 이력 길이에 따른 단순 기법과 세그먼트 트리를 적용한 제안 기법의 성능을 비교 그래프이다.
도 5는 상품 분류 체계 트리의 상품 개수에 따른 단순 기법과 제안 기법의 성능을 비교한 그래프 이다.
도 6은 본 발명의 일 실시 예에 따른 항목 분류 체계를 고려한 시퀀스 간 유사도를 판단하는 제어 방법의 흐름도를 도시한 것이다.
도 7 및 도 8은 일 실시예에 따른 전자장치(1000)의 블록도를 도시한 것이다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.
제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 벗어나지 않은 채, 제1구성 요소는 제2구성 요소로 명명될 수 있고 유사하게 제2구성 요소는 제1구성 요소로도 명명될 수 있다.
본 명세서에서 사용한 기술적 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로서, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 본 명세서에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 명세서에서 특별히 다른 의미로 정의되지 않는 한, 본 명세서에 개시된 기술이 속하는 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 나타낸다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않아야 한다.
이하에서 첨부된 도면을 참고하여, 본 발명의 일 실시예에 따른 항목 분류 체계를 고려한 시퀀스 간 유사도를 판단하는 전자 장치 및 그 제어 방법의 기계학습 모델(방법)에 대해서 설명한다.
트리 타입의 항목 분류 체계를 가지는 항목들에 대한 항목들의 시퀀스 데이터는 순서를 가지는 항목들의 집합을 의미한다. 이에 대한 구체적인 예로, 트리 타입의 상품 분류 체계를 가지는 상품들에 대하여 상품 구매 이력은 구매한 순서에 따른 상품들이 나열된 시퀀스 데이터이다. 이하의 상품의 구매이력에 대한 설명은 순서를 가지는 항목들에 대한 시퀀스 데이터에도 그대로 적용될 수 있다.
1. 서 론
빅데이터 시대에 도래함에 따라 고객들은 자체적으로 엄청난 양의 새로운 디지털 데이터를 생성한다. 이렇게 생성된 데이터는 고객의 특성 자체가 되며 더 나아가 고객을 데이터로 표현할 수 있다. 구매 이력 데이터는 고객이 생성하는 대표적인 데이터 중 하나이다. 구매 이력 데이터에는 물건을 구매하는 사람의 특성과 이에 따라 소비되는 제품, 소비 패턴 등이 담겨있다. 따라서 기업은 주어진 고객의 데이터를 분석하는 능력이 필요하며, 분석된 결과를 바탕으로 의사 결정시 반영할 수 있다.
본 발명에서는 시간에 따른 고객들의 구매 항목들로 구성된 구매이력 데이터에서 임의의 두 고객의 구매이력이 얼마나 유사한지 계산하는 새로운 유사도 방법을 제안한다. 본 발명에서 제안한 유사도 측정방법은 구매이력 데이터와 같이 항목간의 순서가 존재하는 데이터 간의 유사도를 측정하는 기존의 유사도 방식을 항목 간의 계층관계까지 반영하도록 확장하였다.
구매이력 데이터는 구매 항목들 간의 순서가 담긴 데이터로 대표적인 시퀀스(sequence) 데이터 중 하나이다. 시퀀스란 데이터들의 항목들 간에 순서가 존재하는 데이터를 의미하며, 2개의 시퀀스들이 동일한 구성들로 이뤄졌다고 해도 순서가 다르다면 2개의 시퀀스들은 서로 다른 시퀀스이다. 시퀀스의 예는 구매이력 데이터 뿐만 아니라 웹 로그, 단백질 시퀀스 등이 있을 수 있다.
본 발명에서 제안하는 유사도 측정 방법은 기존의 구매이력 데이터 분석 방법들과 달리 시퀀스 내 항목간의 순서를 고려하여 유사도를 계산할 뿐만 아니라, 상품 분류 체계를 활용하여 구매한 상품 간의 서로 다른 유사도를 고려한다.
현재 기존 방법들만을 활용하여 구매이력 시퀀스 간의 유사도 측정하는 경우 시퀀스를 구성하는 상품의 일치 유무만이 유사도 판단 기준이 된다. 시퀀스 1은 구매이력 시퀀스의 예이다.
[시퀀스 1]
Figure pat00001
이는 가령 구매이력 시퀀스가 시퀀스 1과 같은 경우, 기존의 유사도 측정 방법은 시퀀스
Figure pat00002
,
Figure pat00003
의 유사도와
Figure pat00004
,
Figure pat00005
의 유사도를 동일하게 계산한다. 시퀀스 1의 시퀀스들은 모두 두 번째 구매 상품이 동일하기 때문에 각 시퀀스의 첫 번째 구매 상품만이 시퀀스 간 유사도에 영향을 미친다.
기존 방법들은 오직 상품의 일치 유무만을 판단하기 때문에
Figure pat00006
의 'Coke'와
Figure pat00007
의 'Sprite'를 비교하는 경우와
Figure pat00008
의 'Coke'와
Figure pat00009
의 'Jeans'를 비교하는 경우 같은 유사도를 부여한다.
하지만 실제로 'Sprite'는 'Jeans' 보다 상대적으로 'Coke'와 음료라는 동일 범주에 속하며, 이를 고려하여 'Coke'와 'Sprite' 비교 시 'Jeans' 보다 더 높은 유사도를 부여할 필요가 있다. 따라서 본 발명에서는 구매이력 시퀀스 간의 유사도 계산 시 상품 분류 체계를 고려하도록 기존의 시퀀스 유사도 측정 방법을 확장하여 더 정확히 두 구매이력 간의 유사도를 계산한다.
또한 본 발명에서는 항목들의 순서를 고려하여 유사도를 계산하기 때문에 유사도 계산 성능에 영향을 미치는 시퀀스 간 유사도 측정 방법을 선택하기 위하여 대표적인 시퀀스 유사도 측정 방법인 레벤슈타인(Levenshtein) 거리, 동적 타임 워핑(DTW: Dynamic Time Warping) 거리, 니들만-브니쉬(Needleman-Wunsch) 유사도의 성능을 비교하였다.
가상의 시퀀스 데이터를 사용한 실험을 통해, 본 발명에서는 상품 분류 체계를 고려할 뿐만 아니라 서로 다른 길이를 가지는 두 시퀀스에 대해서도 정확히 유사도를 측정하는 동적 타임 워핑 거리가 가장 적합한 유사도 측정 방법임을 확인하였다.
본 발명의 명세서의 구성은 다음과 같다. 제2장에서는 본 발명에서 사용한 시퀀스 유사도 측정 방법들에 대하여 살펴본다. 제3장에서는 본 발명에서 제안한 유사도 측정 방법에 대하여 자세히 설명한다. 제4장에서는 제안 방법과 기존 방법과의 성능 평가 결과를 보이며, 제5장에서는 결론을 맺는다.
2. 관련 연구
2.1 구매이력 데이터 분석
고객의 소비활동이 담긴 대규모의 구매이력 데이터에는 고객의 소비패턴이 담겨 있다. 이렇게 고객의 구매내역에서 빈번하게 발생한 구매 패턴을 찾아 나가는 과정을 연관성 분석이라고 한다. 연관성 분석은 각 상품을 독립적인 개체로 판단하여 규칙을 생성하며, 여기서 장바구니 분석은 항목간의 계층 관계까지 고려하는 분석이다. 이와 다르게 순차 패턴 분석은 구매 내역의 선후관계까지 고려하여 규칙을 생성한다. 세 가지 분석 모두 지지도(support), 신뢰도(confidence), 향상도(lift)라는 평가 기준을 활용하여 항목 간의 규칙을 생성한다.
고객들의 구매이력 데이터를 활용한 대표적인 사례로는 미국의 월마트(Wal-Mart)가 있다. 월마트는 매출에 직접적인 영향을 미치는 고객의 장바구니에 관심을 가진 최초의 업체로 방대한 양의 데이터를 분석하여 맥주와 기저귀의 관계를 밝혀냈다. 매출을 늘리기 위해 다양한 마케팅 활동을 전개하는 기업의 입장에서는 이러한 데이터를 활용하여 실질적인 제품 간의 관계를 파악하여 마케팅 전략으로 활용할 수 있다.
2.2 시퀀스 유사도 측정 방법
시퀀스(sequence)란 두 개 이상의 항목들로 구성된 데이터로 이 항목들 간에 순서가 담긴 데이터를 말한다. 대표적인 시퀀스 데이터로는 웹 로그 데이터, 단백질 시퀀스 데이터가 있다. 시퀀스 데이터를 분석하여 웹 로그 파일에서 비슷한 사용자들을 그룹화하거나 비슷한 구조를 가지는 단백질 시퀀스들을 그룹화 하여 비슷한 기능을 갖는 단백질 시퀀스를 발견할 수 있다. 항목간의 선후 관계가 존재하는 시퀀스 데이터에서 순서를 고려하여 유사도를 정의하는 것이 중요하며, 유사도를 계산하는 방법에 따라 다음과 같이 나눌 수 있다.
1) 편집 기반(edit-based) 유사도 측정 방법
두 개의 문자열이 같아지기 위한 최소 수정 연산 횟수를 구하는 알고리즘이다. 수정 연산은 추가(add), 대체(substitute), 삭제(delete) 연산을 말하며 가장 대표적인 알고리즘은 레벤슈타인(Levenshtein) 거리 알고리즘이 있다. 수정 연산 횟수가 유사도 판단 척도로 사용되며 그 값이 작을수록 두 문자열이 유사하다고 판단한다.
2) 정렬(alignment) 유사도 측정 방법
주로 단백질 서열이나 핵산 서열 사이의 상관관계 분석 시 두 서열 간의 유사한 구역을 찾아낼 때 사용한다. 정렬 범위에 따라 국소(local) 정렬 방법과 전역(global) 정렬 방법이 있으며, 대표적인 국소 정렬 알고리즘으로는 스미스-워터맨(Smith-Waterman) 알고리즘이 있고 전역 정렬 알고리즘으로 니들만-브니쉬(Needleman-Wunsch) 알고리즘이 있다. 두 알고리즘은 정렬 범위에 따라 두 시퀀스가 가장 유사하도록 공백(gap)을 사용하여 정렬한다.
3) 집합 기반(set-based) 유사도 측정 방법
문자열을 문자의 집합 혹은 토큰(token)의 집합 형태로 바꾸어 계산한다. 집합 관계를 이용하여 연산하며 문자열을 토큰으로 나누는 경우에는 N-gram 개념을 사용하여 문자열을 길이가 N개의 기준 단위로 절단하여 사용한다. 대표적인 알고리즘으로는 자카드(Jaccard) 유사도가 있다. 자카드 유사도는 집합을 구성하는 원소들 간의 합집합과 교집합 간의 비율을 나타내며 0에서 1 사이의 값을 가진다.
2.3 구매이력 시퀀스 유사도 측정 방법
본 절에서는 본 발명에서 제안하는 시퀀스 유사도 측정 시 성능 비교를 위해 사용하는 레벤슈타인 거리, 동적 타임 워핑 유사도, 니들만-브니쉬 유사도에 대하여 상세히 설명한다.
1) 레벤슈타인(Levenshtein) 거리
편집 거리 알고리즘으로도 알려져 있는 레벤슈타인 거리는 하나의 문자열을 다른 문자열로 변환하기 위해 필요한 연산의 최소 횟수를 의미한다. 두 문자열 간의 수정 연산은 추가(insert), 대체(substitute), 삭제(delete) 연산을 말한다. 비교하고자 하는 두 문자열의 문자를 한자씩 비교하며 추가와 삭제 시 연산 비용은 1을 부여하고 대체 연산은 문자의 일치 유무에 따라 0 또는 1을 부여하여 유사도를 계산한다.
2) 동적 타임 워핑(DTW) 거리
속도가 다른 두 개의 시계열 패턴의 유사성을 측정하는 알고리즘으로 음성인식, 필기체 문자인식 등에 사용된다. 두 시계열 간의 거리를 최소화하는 방향으로 움직이면서 거리를 계산하기 때문에 유클리디안(Euclidean) 거리로 계산할 때와 달리 부분적으로 왜곡되거나 변형된 파형에 대해서도 계산할 수 있다.
도 1은 유클리디안 거리와 DTW 거리의 비교를 도시한 것 이다.
예를 들어, 두 개의 시계열 그래프 A와 B가 각각
Figure pat00010
벡터로 표현된다고 하자. 도 1은 두 시계열 그래프 A, B에 대하여 유클리디안(Euclidean) 유사도로 계산한 경우와 동적 타임 워핑 유사도로 계산한 경우이다. 동적 타임 워핑 유사도로 계산한 경우는 유클리디안 유사도와 다르게 시계열 그래프의 한 점에서 다른 시계열 그래프의 하나 혹은 그 이상의 점에 대응하여 계산 할 수 있다. 이러한 특성으로 인해 서로 다른 길이의 시퀀스에 대해서도 효과적으로 유사도를 계산할 수 있다.
3) 니들만-브니쉬(Needleman-Wunsch) 유사도
생물정보학(bioinformatics) 분야에서 단백질이나 뉴클레오타이드 (nucleotide)의 시퀀스 간의 서열 비교를 위한 알고리즘으로, 두 시퀀스가 가장 유사도가 높도록 공백(gap)을 사용하여 두 시퀀스를 정렬한다. 공백 패널티(gap penalty), 일치(match), 불일치(mismatch) 값은 사용자 지정 값으로 값에 따라 시퀀스 간의 정렬 결과가 달라진다. 레벤슈타인 거리와 같이 두 시퀀스에 대한 삽입, 삭제, 일치 연산 비용을 활용하여 두 시퀀스 간의 유사도를 계산한다.
본 발명에서는 상기 3개의 유사도 측정 방법을 사용하여 유사도를 측정하였다. 이들은 모두 두 시퀀스 간의 항목을 하나씩 비교 가능하며 시퀀스를 집합 원소로 나누는 등의 별도 연산은 필요하지 않다. 하지만 기존 방법만을 사용하여 구매이력 시퀀스를 비교하는 경우, 상품 일치 유무만을 판단하여 0 또는 1의 값만을 부여하여 유사도를 계산하기 때문에 본 발명에서는 상품간의 계층관계를 고려하도록 이를 확장하였다.
본 발명의 제안 방법은 상품 분류 트리를 활용하여 상품 간의 유사도를 0에서 1사이의 값으로 부여하여 유사도 계산 시 각 상품 간의 연관 정도를 보다 세분화한다. 따라서 본 발명에서는 구매이력 시퀀스 간의 유사도 계산 시 상품 분류 체계를 반영하기 위하여 이들의 수행 과정 중 일부분을 변형하여 사용하였으며, 제4.2절에서는 이들에 대한 성능 평가 결과를 보인다.
3. 상품 분류 체계를 고려한 시퀀스 유사도 측정
본 장에서는 본 발명에서 제안하는 상품 분류 체계를 활용하여 구매이력 데이터에서 두 시퀀스 간의 유사도를 계산하는 제안 방법에 대해 자세히 설명한다.
3.1 개요
본 발명에서 제안하는 시퀀스 간의 유사도 측정 방법은 구매이력 데이터에서 주어진 상품 분류 체계를 활용하여 두 시퀀스 간의 유사도를 측정한다. 구매이력 데이터에서 하나의 구매이력은 고객 한 명이 순차적으로 구매한 항목들이 나열된 시퀀스 데이터이다. 이러한 임의의 두 시퀀스 데이터가 주어졌을 때, 본 발명에서 제안한 유사도 측정방법은 항목간의 순서를 고려하여 유사도를 측정한다. 또한 주어진 상품 분류 체계를 활용하여 상품 간의 분류 체계도 고려하여 유사도를 계산한다는 점에서 기존의 시퀀스 유사도 측정 방법과는 차이가 있다.
본 발명에서 제안하는 구매이력 시퀀스 간의 유사도 측정 방법은 대표적인 시퀀스 유사도 측정 방법인 레벤슈타인 거리, 동적 타임 워핑 거리, 니들만-브니쉬 유사도를 사용하여 시퀀스 내 항목 간의 유사도를 계산한다. 유사도 계산 시 상품 분류 체계를 반영하기 위해 비교하고자 하는 두 항목의 간의 연관성을 세분화하도록 수행 과정 중 일부분을 변용하였다.
3.2 문제 정의
본 절에서는 본 발명에서 시퀀스 유사도 계산 시 사용하는 상품 분류 트리의 개념과 본 발명에서 정의한 유사한 구매이력에 대하여 설명한다.
1) 상품 분류 트리
도 2(a)는 본 발명에서 사용한 상품 분류 트리 중 일부를 도시한 것이다. 도 2(b)는 본 발명에서 사용한 상품 분류 트리의 longestPath 및 itemPath의 일 예를 도시한 것이다.
도 2(a)를 참조하면, 일반적으로 백화점, 마트와 같은 유통 업체는 모든 상품에 대하여 대분류/ 중분류/ 소분류와 같이 계층이 나누어진 상품 분류 체계를 가진다. 예를 들어 '바지'라는 상품은 먼저 소분류인 '하의'에 속하며, 여기서 하의는 다시 중분류인 '의류'에 속하게 된다. 이렇게 모든 상품은 상품 분류 체계의 가장 하위 부분을 차지한다. 본 발명에서는 이러한 상품 분류 체계를 트리(tree) 자료구조로 표현하였다.
본 발명에서 사용한 상품 분류 트리의 체계는 미국 전자 상업 회사인 아마존(Amazon)의 분류 체계를 참고하여 구성하였다. 트리의 각 노드(node)에는 실제 상품이나 상품의 상위 범주명이 저장된다.
도 2(a)의 상품 분류 트리에서 트리의 단말 노드(leaf node)는 상품에 해당하며(예. a, b, c, d, e, f, g, h, i, j, k), 내부 노드(internal node)는 각 상품에 대한 상위 범주이다(예. C1, C2, C3, C4, C5, C6, C7, C8). 또한, 상품 분류 트리에서 최상단 노드는 Root로 표현된다.
이 상품 분류 트리는 구매이력 시퀀스 간의 유사도 비교 시 사용된다. 상품 분류 트리를 사용하여 시퀀스 내 항목들은 알고리즘 수행 과정 중 상품 분류 트리 내에서 서로 다른 연관정도에 따라 수치화되어 계산 시 반영된다.
구매이력 데이터에서 시퀀스 내 모든 항목은 상품 분류 트리의 단말 노드(leaf node)에 해당하며, 단말 노드는 상품에 해당한다.
본 발명에서 제안한 구매이력 시퀀스 간의 유사도 측정 방법은 도2 와 같은 상품 분류 체계를 사용하여 항목 간의 유사한 정도를 계산한다. 따라서 두 상품이 일치하지 않더라도 상품 분류 트리 내에서 두 상품 간의 가까운 정도를 반영하여 계산하기 때문에 상품간의 유사한 정도를 세분화 하여 계산 할 수 있다.
2) 유사 구매이력 정의
본 발명에서 계산하는 구매이력 데이터는 각 고객들이 구매한 항목들이 순서대로 나열된 시퀀스 데이터이다. 구매이력 데이터에서 각 시퀀스는 고객 한명에 대한 구매이력을 나타내며,
Figure pat00011
개의 구매 항목으로 이루어진 시퀀스
Figure pat00012
Figure pat00013
라 하자.
Figure pat00014
는 시퀀스
Figure pat00015
Figure pat00016
번째 구매 항목을 나타내며, 이 시퀀스는 상품
Figure pat00017
부터
Figure pat00018
까지 순서대로 구매한 이력 데이터를 나타낸다. |S|는 시퀀스의 크기 또는 시퀀스 내 구매된 항목의 개수를 나타낸다.
본 발명에서 제안하는 시퀀스 간의 유사도 측정방법은 두 시퀀스의 세부 항목들이 다르더라도 항목들의 상위 범주가 같은 경우 유사하다고 판단한다.
시퀀스 2는 본 발명에서 정의한 유사한 구매이력 대한 예이다.
[시퀀스 2]
Figure pat00019
시퀀스 2에서 두 시퀀스
Figure pat00020
,
Figure pat00021
는 두 고객에 대한 구매이력 데이터로,
Figure pat00022
Figure pat00023
는 모두 서로 다른 구매항목으로 구성되어 있다. 하지만 두 시퀀스의 세부 항목들은 매우 연관성이 높으며, 유사한 구매 순서를 보인다. 시퀀스 내 각 항목을 상위 범주로 바꿀 경우, 두 시퀀스 모두 음료, 간식, 의류 범주에 속한 상품 순으로 구성된 구매 이력인 것을 볼 수 있다. 이처럼 두 상품이 완전히 동일하지 않더라도 동일한 상위 범주에 속한다면 그렇지 않은 경우보다 더 높은 유사도를 부여할 필요가 있다. 따라서 본 발명에서는 상품 분류 트리를 활용하여 두 항목들이 다르더라도 서로 동일한 상위 범주를 가진다면 더 높은 유사도를 부여하여 계산한다.
3.3 시퀀스 유사도 측정
본 절에서는 제2.3절에서 설명한 대표적인 시퀀스 간의 유사도 측정 방법인 레벤슈타인 거리, 동적 타임 워핑 거리, 니들만-브니쉬 유사도를 사용하여 상품 분류 체계를 활용한 구매이력 시퀀스 유사도 측정 방법에 대해 상세히 설명한다.
상품 분류 트리를 적용하기 위하여 알고리즘의 수행 과정 중 일부분을 변용하였으며, 아래 코드 1, 2, 3의 의사코드 중 네모 칸 부분은 제안 방법을 적용하기 위하여 새롭게 변형한 부분이다.
세 알고리즘 모두 유사도 계산을 위해 구매이력 시퀀스
Figure pat00024
Figure pat00025
에 대한 2차원 배열
Figure pat00026
을 생성한다. 각 알고리즘의 배열
Figure pat00027
의 값은 이전 원소(
Figure pat00028
,
Figure pat00029
,
Figure pat00030
)를 활용하여 구한다(
Figure pat00031
,
Figure pat00032
). 배열
Figure pat00033
의 마지막 원소가 각 알고리즘 별 유사도 값이 되며, 알고리즘 별로 다른 유사도 값의 범위를 가진다. 다음은 각 알고리즘 별 유사도 측정 방법에 대하여 상세히 설명한다.
1) 레벤슈타인(Levenshtein) 거리
레벤슈타인 거리는 두 문자열을 한자 씩 비교해 나가며, 계산 후 배열의 가장 마지막 원소의 값이 두 문자열의 최소 편집 거리가 된다. 레벤슈타인 거리 Levenshtein Dist(
Figure pat00034
,
Figure pat00035
)는 0에서
Figure pat00036
사이 값을 가진다.
두 시퀀스
Figure pat00037
,
Figure pat00038
에 대하여 문자열이 없는 경우도 포함하여 2차원 배열
Figure pat00039
을 행의 개수가
Figure pat00040
이고 열의 개수가
Figure pat00041
Figure pat00042
크기로 생성한다. 배열의 첫 번째 행과 열은 0에서부터 두 문자열의 길이만큼 증가시켜가며 초기화한다. 배열의 두 번째 행과 열부터는 이전까지 계산된 배열 값을 사용하여 채워나간다.
코드 1은 Pseudo-code of Levenshtein distance algorithm에 관한 것이다.
<코드 1>
Figure pat00043
Figure pat00044
에서 행에 해당하는
Figure pat00045
은 원본 문자열을 의미하며 열에 해당하는
Figure pat00046
는 바꾸고자 하는 목적 문자열을 의미한다.
Figure pat00047
는 추가(
Figure pat00048
), 대체(
Figure pat00049
cost), 삭제(
Figure pat00050
) 비용 중 가장 작은 값으로 채워진다. 삭제와 추가 연산은 이전 배열 값에 삭제, 추가 비용 1을 더한다. 대체 연산은 만일 현재 계산하는
Figure pat00051
번째 문자와
Figure pat00052
번째 문자가 일치한다면 대체 비용(cost)은 0을 더해주고, 다르다면 1을 더해준다. 코드 1은 레벤슈타인 거리 알고리즘을 활용하여 본 발명에서 제안하는 구매이력 시퀀스 유사도 계산 방법을 나타내는 의사코드이다. 코드 1의 의사코드 중 네모 칸은 새롭게 제안한 대체 연산 비용을 계산하는 함수로 코드 2의 의사코드가 수행된다. 만일 해당 부분이 문자 일치 유무에 따라 0 또는 1의 값을 가진다면 기존 레벤슈타인 거리 알고리즘이 수행된다.
예를 들면, 다른 문자열을 가지는 2개의 시퀀스 S1 = [a, e, m], S2 = [a, d, c]가 있다가 가정할 경우 S1의 문자열을 S2의 문자열로 변환하기 위해 필요한 연산의 최소 횟수를 구해 본다. dist(i, j)는 S1의 i번째까지의 문자열과 S2의 번째까지의 문자열의 편집거리를 나타낸다.
dist(i, j) = min [dist(i-1, j-1)+c(i, j), dist(i-1, j)+1, dist(i, j-1)+1] 및 c(i, j) = 0 (if xi=yj) or 1 (otherwise)로 정의된다. 시퀀스 S1 및 S2의 각 문자열의 편집거리는 아래의 표 1와 같다.
[표 1]
Figure pat00053
본 발명에서 제안하는 알고리즘은 기존의 레벤슈타인 거리 알고리즘의 대체 연산 중 더해지는 비용의 값을 상품 분류 트리를 이용하여 0에서 1사이로 세분화하여 보다 정확히 상품 간의 유사도를 계산한다. 따라서 본 발명에서 제안한 대체 연산 비용은 상품 분류 트리 내에서 가장 먼 두 항목인 경우에만 전혀 관련 없는 두 항목이라고 판단하여 최댓값 1을 부여하고, 그렇지 않은 경우에는 상품 분류 트리 내에서 서로 다른 두 상품 간의 최단 경로의 길이를 가지도록 대체 연산 비용의 값을 세분화 한다. 코드 2는 기존의 대체 연산 비용 계산 방법과 달리 상품 분류 트리를 활용하여 두 상품간의 연관정도를 세분화하여 계산하는 제안 방법에 대한 의사코드이다.
코드 2는 Pseudo-code of the proposed method에 관한 것이다.
<코드 2>
Figure pat00054
비교하고자 하는 시퀀스 내 두 상품이 다른 경우 상품 분류 트리를 탐색하여 두 상품간의 연관정도를 계산한다. 수학식 1은 본 발명에서 제안하는 상품 분류 트리를 활용하여 두 상품관의 연관성을 계산하는 식이다.
[수학식 1]
Figure pat00055
cost는 상품 분류 트리에서
Figure pat00056
번째 항목과
Figure pat00057
번째 항목과의 가까운 정도이다. cost 값은 상품 분류 트리 내에서 찾고자 하는 두 항목의 최단 경로의 길이가 가장 먼 두 항목의 길이에서 차지하는 비율을 나타낸다.
longestPath는 상품 분류 트리 내에서 가장 먼 두 노드의 경로의 길이이며, 다시 말해 상품 분류 트리 내에서 가장 연관성이 없는 두 항목의 엣지의 수를 의미한다.
itemPath는 상품 분류 트리 내에서
Figure pat00058
번째 항목과
Figure pat00059
번째 항목과의 최단 경로의 길이이다. 두 항목 사이의 최단 경로는 두 항목에서 가장 가까운 범주까지의 엣지(edge)의 수이다. 따라서 itemPath가 작을수록 두 항목은 높은 연관성을 가지며 가까운 범주에 분류되어 있는 상품임을 의미한다.
itemPath가 0인 경우 두 상품은 같은 노드이며 cost는 0이 된다. itemPath가 1인 경우 longestPath와 같은 값을 가지게 되며 트리 내 항목 중 가장 연관성이 낮은 두 항목을 의미하며, cost는 1이 된다.
레벤슈타인 거리 알고리즘의 경우 새롭게 계산된 비용은 대체 연산 시 더해지는 비용으로 추가, 대체, 삭제 비용 중 최솟값 선택 시 사용된다.
예를 들면, 앞서 설명한 c(i, j) = 0 (if xi=yj) or 1 (otherwise)를 대신하여 New c(i, j)으로 대체하며, New c(i, j)는 수학식 1의 cost로 표현될 수 있다.
도 2(b)를 참조하면, Candy 와 Polos는 서로 가장 연관성이 낮은 두 항목으로 lognestPath = 7인 경우이며, 동일한 노드(C5)인 Beverage 내의 Coke와 Sprite의 최단 경로는 itemPath = 2인 것을 알 수 있다.
2) 동적 타임 워핑(DTW) 거리
동적 타임 워핑 알고리즘은 두 시계열 간의 거리를 최소화하는 방향으로 움직이면서 매칭시켜 누적 거리를 활용하여 거리를 계산한다. 시퀀스
Figure pat00060
,
Figure pat00061
에 대하여
Figure pat00062
크기의 2차원 무한대 값을 가지는 배열
Figure pat00063
을 생성한다.
Figure pat00064
는 레벤슈타인 거리 알고리즘과 달리 비교하고자 하는 두 항목에 대한 비용(cost)을 먼저 계산한 후, 삭제(
Figure pat00065
), 일치(
Figure pat00066
), 삽입(
Figure pat00067
) 비용 중 최솟값에 더한다.
코드 3의 의사코드 중 네모 칸은 코드 2의 제안 방법을 적용한 동적 타임 워핑 유사도에 대한 의사 코드이며, 해당 부분이 두 값의 차이(
Figure pat00068
)인 경우 기존의 동적 타임 워핑 알고리즘이 수행된다. 본 발명에서는
Figure pat00069
의 한 지점에서
Figure pat00070
의 다른 지점으로 할당되는 매핑(mapping) 비용을 두 값의 차이가 아닌 제안 방법을 통하여 0에서 1 사이의 값을 가지도록 하였다.
코드 3은 Pseudo-code of DTW algorithm에 관한 것이다.
<코드 3>
Figure pat00071
3) 니들만-브니쉬(NW: Needleman-Wunsch) 유사도
니들만-브니쉬 알고리즘은 두 시퀀스 간의 변화(mutation)를 최소화 하면서 공백을 사용하여 두 시퀀스의 유사도가 가장 높도록 정렬한다. 시퀀스
Figure pat00072
,
Figure pat00073
에 대하여
Figure pat00074
크기의 2차원 배열
Figure pat00075
을 생성하여 0으로 초기화한다. 알고리즘 수행을 위해 공백 페널티(gap penalty), 일치 보상(match award), 불일치 페널티(mismatch penalty) 세 변수에 대한 사용자 정의 값을 지정한다. 사용자 정의 값에 따라서 계산된 유사도 값의 범위가 달라지며, 본 발명에서는 상품 분류 트리를 활용한 연산 비용은 0에서 1 사이의 값을 가지므로 일치 보상은 1, 불일치 페널티는 0, 공백 페널티는 -1로 주었다. 사용자 정의 값이 다음과 같은 경우 니들만-브니쉬 유사도 NW Sim(
Figure pat00076
,
Figure pat00077
)는
Figure pat00078
사이 값을 가진다.
코드 4는 Pseudo-code of Needleman-Wunsch algorithm에 관한 것이다.
<코드 4>
Figure pat00079
코드 4는 제안 방법을 적용한 니들만-브니쉬 알고리즘에 대한 의사 코드이며, 네모 칸은 상품 분류 트리 내에서 두 상품 간의 연관성을 계산하는 제안 방법에 대한 코드 2의 의사 코드이다. 만일 해당 부분이 비교 하고자 하는 두 항목(
Figure pat00080
,
Figure pat00081
)의 일치 유무에 따라서 일치 보상(match award) 혹은 불일치 페널티(mismatch penalty)가 부여된다면 기존의 니들만-브니쉬 거리가 계산된다.
4. 실험 결과
본 장에서는 본 발명에서 제안한 상품 분류 체계를 활용한 구매이력 시퀀스 간 유사도 측정 방법에 대한 성능 측정 결과를 보인다. 제2.3절에서 설명한 대표적인 유사도 측정 방법인 레벤슈타인 거리, 동적 타임 워핑 거리, 니들만-브니쉬 유사도에 대하여 기존 방법과 제안 방법과의 유사도 측정 비교 결과와 세 알고리즘에 대한 수행 시간 비교 결과를 보인다.
4.1 실험 환경 및 방법
본 발명에서 제안한 구매이력 데이터 시퀀스간의 유사도 측정 방법은 Python 3.7을 사용하여 동적 프로그래밍으로 구현하였으며, 상품 분류 트리는 anytree 라이브러리를 사용하여 구현하였다. 실험은 Intel i7-5820 3.3 GHz CPU, 8GB 메모리가 장착된 Windows 10 운영체제 환경의 PC에서 수행하였다.
실험에서 사용한 상품 분류 트리의 높이는 5이며, 총 37개의 노드를 가진다. 트리는 상품을 의미하는 26개의 단말 노드(leaf node)와 상품의 범주에 해당하는 11개의 노드로 구성된다. 실험에서는 시퀀스 내 항목의 개수가 3에서 10 사이를 가지는 가상의 시퀀스 데이터를 생성하여 사용하였다.
표 2은 Evaluation results for different similarity measures에 관한 것이다.
[표 2]
Figure pat00082
4.2 실험 결과
본 절에서는 다양한 시퀀스 간의 유사도 측정 방법에 따른 성능 측정 결과를 보인다.
1) 정확성 비교 실험
먼저 제안 방법이 기존의 시퀀스 유사도 측정 방법에 비하여 구매이력 데이터에서 시퀀스 간의 유사도를 더 정확히 계산할 수 있는지 평가하였다.
시퀀스 3는 정확성 측정 실험에 사용한 가상의 시퀀스 데이터이다. 시퀀스 3에서 예제 1과 예제 2는 제안 방법이 기존의 유사도 방법에 비하여 구매 이력 시퀀스 간의 유사도를 더 정확히 계산하는지 측정하기 위한 실험 데이터로 예제 1은 가상의 시퀀스 데이터이며, 예제 2는 실제 소비자의 아마존 구매이력에 대한 실험 데이터이다. 마지막으로 예제 3은 서로 다른 크기를 가지는 시퀀스에 대한 유사도 측정 가상의 시퀀스 데이터이다.
시퀀스 3은 Examples of sequence data 에 관한 것이다.
[시퀀스 3]
Figure pat00083
예제 1의
Figure pat00084
,
Figure pat00085
과 예제 2의
Figure pat00086
,
Figure pat00087
는 서로 유사하지 않은 구매이력 시퀀스이며 예제 1의
Figure pat00088
,
Figure pat00089
과 예제 2의
Figure pat00090
,
Figure pat00091
는 서로 매우 유사도가 높은 구매 상품으로 구성된 시퀀스이다. 이를 통하여 제안 방법과 기존 방법과의 정확도를 비교하였다. 예제 3의 경우
Figure pat00092
Figure pat00093
과 시퀀스의 크기가 다르지만 크게 보면 동일한 범주의 구매순서(간식, 전자 제품, 음료 순)를 가진다. 이를 통해 서로 다른 길이를 가지는 시퀀스에 대해서도 정확히 유사도를 계산하는지 측정하였다.
<표 2>은 시퀀스 3의 가상의 시퀀스 데이터를 사용하여 기존의 세 알고리즘에서의 유사도 측정 결과와 제안 방법을 적용한 유사도 측정 결과에 대한 결과표이다. 예제 1에 대한 실험 결과, 기존의 레벤슈타인 거리와 니들만-브니쉬 유사도의 경우 세 시퀀스를 구성한 구매 상품이 모두 다르기 때문에 동일한 수치를 계산한다. 하지만 동적 타임 워핑 거리의 경우 2차원 배열을 다른 두 유사도 측정 방법과 달리 두 값의 차이(
Figure pat00094
)를 사용하여 초기화하기 때문에
Figure pat00095
,
Figure pat00096
의 거리와
Figure pat00097
,
Figure pat00098
의 거리가 다르게 계산되지만 상품 간의 연관 정도는 고려하지 않고 계산한다. 반면 제안 방법을 적용한 세 알고리즘의 경우 모두 상품 간의 유사도가 낮은
Figure pat00099
,
Figure pat00100
에 비하여 상대적으로 시퀀스 내 상품 간의 연관성이 높은
Figure pat00101
,
Figure pat00102
에 대하여 더 정확히 계산하는 것을 볼 수 있다.
또한 실제 데이터를 사용한 예제 2의 경우에도 예제 1과 같이 상품간의 연관성이 더 높은 두 시퀀스가 그렇지 않은 경우보다 더 높은 유사도를 보임을 실험을 통해 확인하였다. 이를 통해 기존의 방법들은 서로 다른 상품에 대해서 단순히 1을 부여 하여 계산하지만 제안 방법을 적용한 경우 상품 분류 트리를 고려하여 계산하기 때문에 서로 다른 상품으로 구성된 시퀀스라도 더 정확하게 유사도를 계산하게 된다.
예제 3의 실험 결과, 레벤슈타인 거리와 니들만-브니쉬 유사도의 경우 두 시퀀스의 상품 하나하나에 대해서만 비교하기 때문에 비슷한 구매 순서를 보이더라도 제안 방법과 기존 방법 모두 동일한 유사도 값을 보인다. 하지만 제안 방법을 적용한 동적 타임 워핑 거리의 경우 길이가 다르더라도 기존 방법으로 측정한 거리(3)와 달리 더 낮은 수치(0.75)를 계산한다. 이는 동적 타임 워핑 거리의 경우 누적 거리를 활용하여 시퀀스 내 하나의 항목이 다른 시퀀스의 여러 항목과 대응되어 계산하기 때문에 있기 때문에
Figure pat00103
Figure pat00104
의 길이가 다르더라도 더 정확하게 유사도가 계산된 것이라고 판단된다.
구매이력 시퀀스에 대한 실험 결과 제안 방법을 적용한 세 알고리즘 모두 기존의 알고리즘에 비해 상품간의 관련성을 고려하여 계산하기 때문에 더 정확하게 유사도를 측정함을 확인하였다. 또한 동적 타임 워핑 알고리즘의 경우 서로 다른 길이의 시퀀스에 대한 유사도 측정에 대해서도 다른 두 유사도 측정 방법과 달리 정확히 측정함을 실험을 통해 확인하였다.
2) 수행 속도 비교 실험
다음으로는 제안하는 시퀀스 유사도 측정 기법의 수행 시간을 측정하여 수용가능한 수준인지 평가하였다. 실험은 기존 방법과 제안 방법을 적용한 레벤슈타인 거리, 동적 타임 워핑 거리, 니들만-브니쉬 유사도에 대해서 측정하였다. 두 시퀀스가 주어졌을 때, 시퀀스 간의 유사도 측정 횟수를 2000번에서 10000번까지 증가시켜가며 수행 시간을 측정하였다. 시퀀스 유사도 측정 시 매번 다른 임의의 상품 구성과 길이를 가지도록 가상의 시퀀스 데이터를 생성하였다.
도 3은 제안 방법을 적용한 수행 시간 측정 결과 (Experimental results for proposed methods)이다
<표 3>는 시퀀스 유사도 측정횟수가 10000번인 경우에 대한 기존 방법의 수행 시간을 나타낸 표이다. 도 3을 참조하면, 실험 결과 연산 속도는 세 유사도 비교 방법 모두 시퀀스 내 상품의 개수와 시퀀스 내 상품 구성에 따라 의존하는 경향을 보였으며, 기존 방법과 제안 방법의 수행 시간은 10번 측정 후 중앙값을 취하였다. 표 3는 Evaluation results for conventional methods에 관한 것이다.
[표 3]
Figure pat00105
측정 결과 비교 횟수가 증가할수록 수행 시간이 선형적으로 증가하는 모습을 보이며, 세 알고리즘은 모두 비슷한 수행 시간을 보인다. 이는 세 알고리즘 모두 알고리즘의 수행 과정이 두 시퀀스에 대한 2차원 배열을 활용하여 계산하기 때문에 비슷한 수행 시간을 보인 것으로 판단된다. 또한 <표 3>의 기존 방법의 수행 시간에 비하여 제안 방법의 수행 시간은 상품 분류 트리를 탐색 과정으로 인해 더 긴 수행시간을 보인다. 하지만 제안 방법을 적용한 세 가지 알고리즘 모두 수행시간은 최대 2분을 넘지 않으며, 이는 제안 방법의 수행 시간이 실제 사용 가능한 수준임을 나타낸다.
5. 결 론
본 발명에서는 기존의 시퀀스 유사도 측정방법을 확장하여 구매이력 데이터에서 상품 분류 체계를 고려하여 두 시퀀스 간의 유사도를 계산하는 새로운 방법을 제안하였다. 본 발명에서 계산하고자 하는 구매이력 시퀀스란 고객 한명이 구매한 항목들이 순서대로 나열된 데이터이다. 이러한 두 구매이력 시퀀스와 상품 분류 체계가 주어졌을 때, 기존의 유사도 측정 방법은 시퀀스를 구성한 구매 상품의 순서만을 고려하여 유사도를 계산한다. 이는 두 시퀀스가 구매 이력인 경우 비교하고자 하는 두 상품간의 연관성은 무시되게 된다. 따라서 본 발명에서는 시퀀스 내 구성 상품의 순서를 고려할 뿐만 상품 분류 체계를 활용하여 서로 다른 상품으로 구성된 시퀀스에 대해서도 보다 정확히 유사도를 계산한다.
본 발명에서는 구매이력 시퀀스에 적합한 유사도 측정 방법을 찾기 위해 다양한 시퀀스 유사도 측정방법들을 고려하였다. 이를 위해 현재 대표적인 시퀀스 유사도 측정 방법인 레벤슈타인 거리, 동적 타임 워핑 거리, 니들만-브니쉬 유사도를 사용했으며, 제안 방법을 적용하기 위해 이들의 수행 과정 중 일부분을 변형하였다. 기존의 세 알고리즘은 시퀀스 내 항목 간의 연산 비용 계산 시 상품 일치 유무에 따라 단순히 0 또는 1을 부여하였다면, 본 발명에서 제안한 방법은 상품 분류 트리를 사용하여 연산 비용을 0에서 1 사이의 값을 가지도록 세분화하였다. 새롭게 계산한 연산 비용은 비교하고자 하는 두 상품이 상품 분류 트리에서 가장 가까운 공통 범주까지의 경로를 의미하며, 가장 가까운 공통 범주가 루트 노드(root node)인 경우에만 1을 부여한다. 이를 통해 상품간의 서로 다른 중요도를 고려할 수 있으며 독립적인 개체로 계산 할 때 보다 의미 있는 결과가 도출됨을 실험을 통해 확인하였다. 세 알고리즘에 대한 정확성 측정 비교 실험 결과 동적 타임 워핑 유사도가 다른 두 유사도 측정 방법에 비하여 시퀀스 내 상품의 연관 정도를 고려할 뿐만 아니라 두 시퀀스의 길이가 다른 경우에도 좋은 성능을 보였기 때문에 구매이력 데이터에서 시퀀스 간의 유사도 비교 시 가장 적합한 측정 방법임을 확인하였다.
본 발명에서는 시퀀스 유사도 측정 과정 중 서로 다른 상품이더라도 두 상품 간의 연관 정도를 계산하기 위하여 주어진 상품 분류 트리를 탐색하는 과정을 거친다. 추후 연구에는 시퀀스 내 상품 구성 복잡도를 높여가며 다양한 시퀀스 길이를 가지는 두 시퀀스에 대한 상품 분류 트리 고속화 탐색 방법과 유사도 측정 성능 향상 방법에 대하여 연구할 계획이다.
이하에서 상술한 본 발명의 일 실시예에 따른 항목 분류 체계를 고려한 시퀀스 간 유사도를 판단하는 전자 장치 및 그 제어 방법의 기계학습 모델(방법)에서 개량된 부분에 대해 설명한다. 상술한 본 발명의 내용과 후술할 본 발명의 내용은 서로 하나의 기술적 사상을 가지고 있으며, 각 부분의 조합으로 본 발명을 구성할 수 있다.
1. 서 론
각 고객이 구매한 상품들은 시간의 흐름에 따라 해당 고객의 구매 이력을 형성한다. 여기서 항목들 간의 순서가 존재하는 데이터를 시퀀스(sequence)라 부른다. 기업은 고객들의 특성과 소비 패턴이 담긴 구매 이력 혹은 구매 시퀀스를 분석하여 매출 증대를 위한 마케팅 전략으로 활용할 수 있다. 한편 유통업에서 거래되는 대부분의 상품들은 소분류, 중분류, 대분류 등과 같은 분류 체계를 가진다. 이 경우 서로 다른 상품이더라도 세부 분류가 동일할수록 두 상품은 그렇지 않은 경우보다 유사성이 더 높다고 할 수 있다. 예를 들어, 만약 두 상품이 같은 소분류에 속한다면, 두 상품이 소분류는 다르지만 같은 중분류에 속하는 경우보다 유사성이 더 높다고 할 수 있다. 지금까지 시퀀스 간의 유사도 측정 방법에 대해서는 많은 연구가 이루어져왔다. 하지만 이들 연구는 모두 시퀀스를 구성하는 각 항목들이 단순히 같은지 다른지 만을 고려하며, 항목들에 분류 체계가 존재하는 경우 이를 고려하는 연구는 거의 없었다.
따라서 본 발명에서는 상품 구매 순서뿐만 아니라 상품들에 존재하는 분류 체계까지 고려하는 구매 이력 간 유사도 측정 방법을 제안한다. 본 발명에서 제안하는 구매 이력 간 유사도 측정 방법은 두 구매 이력의 상품이 다르더라도 상품들의 분류가 유사하면 두 구매 이력을 유사하다고 판단한다. 본 발명에서 제안하는 유사도 측정 방법은 기존의 대표적인 시퀀스 유사도 측정 방법인 동적 타임 워핑(dynamic time warping, DTW) 거리를 확장하여, 상품 분류 체계에 따른 상품들 간의 유사성을 거리 계산에 반영한다. 이와 함께 본 발명은 제안하는 유사도 측정 방법에 대한 효율적인 계산 기법을 제안한다. 제안 기법은 세그먼트 트리(segment tree)를 사용하여 상품 분류 체계 내에서 두 상품 간의 유사도를 매우 빠르게 계산한다. 이를 통해 제안 방법은 다수의 구매 이력들을 비교해야 할 때도 매우 효율적으로 사용될 수 있다.
본 발명의 명세서의 구성은 다음과 같다. 2장에서는 관련 연구를 간략히 살펴보고, 3장에서는 제안 방법에 대하여 상세히 설명한다. 4장에서는 제안 방법의 성능 평가 결과를 보이며, 5장에서는 결론을 맺는다.
2. 관련 연구
시퀀스 간의 유사도 측정 방법에 대해서는 이미 많은 연구가 이루어졌다. 그 중 동적 타임 워핑 유사도는 서로 속도가 다른 두 개의 시계열 패턴 간의 유사도를 측정하기 위해 제안된 방법으로서, 두 시계열 간의 거리를 최소화하는 방향으로 항목들을 이동시키면서 누적 거리를 활용하여 유사도를 계산하기 때문에 서로 다른 길이의 시퀀스에 대해서 매우 효율적으로 유사도를 계산하는 것으로 알려져있다.
본 발명은 상품 분류 체계를 고려하여 구매 이력 간의 유사도를 계산하기 위한 여러 선행 실험을 수행하였다. 본 발명은 시퀀스 간의 유사도를 측정하는 여러 방법들 중 동적 타임 워핑 유사도가 구매 이력 간 유사도 측정에 가장 효과적임을 보였으며, 따라서 이하에서 동적 타임 워핑 유사도를 기반으로 두 구매 이력 간의 유사도를 정확하고 빠르게 측정하는 방법을 제안한다.
한편 본 발명에서는 제안하는 구매 이력 간 유사도를 빠르게 계산하기 위해 세그먼트 트리를 사용한다. 세그먼트 트리는 각 노드가 그의 자식 노드들이 나타내는 구간들에 대한 정보(예: 합, 최솟값, 최댓값)를 가지고 있는 트리이다. 세그먼트 트리는 각 구간에 대한 정보들을 미리 구해 저장해 두기 때문에 특정 범위 내 최솟값을 찾는 문제 등에 효과적인 것으로 알려져 있다.
3. 제안 방법
본 장에서는 상품 분류 체계를 고려한 구매 이력 간 유사도 측정 방법 및 그에 대한 효율적인 계산 방법을 제안한다.
3.1 상품 분류 체계를 고려한 구매 이력 간 유사도 측정
본 발명에서는 기존의 대표적인 시퀀스 유사도 측정 방법인 동적 타임 워핑 유사도를 상품 분류 체계를 반영하도록 확장한다. 두 구매 이력 s 1 = <x 1, x 2, ..., x n >과 s 2 = <y 1, y 2, ..., y m >이 주어졌다고 하자. 여기서 x i y i 는 각 구매 이력에서 i번째로 구매된 항목을 나타낸다. 제안 방법은 두 구매 이력 s 1s 2이 주어졌을 때
Figure pat00106
크기의 2차원 배열 M 을 생성하고 모든 원소를 ∞로 초기화한다. 이후 M 의 각 원소 M [i][j]를 다음 수학식 2를 사용하여 업데이트한다.
[수학식 2]
M [i][j]=dist(x i , y j )+min(M [i - 1][j], M [i][j - 1], M [i - 1][j - 1])
위 수학식 2에서 dist(x i , y j )는 s 1i번째 항목인 x i s 2j번째 항목인 y j 의 상품 분류 체계를 고려한 거리를 나타낸다. 상품 분류 체계를 고려하지 않는 기존의 동적 타임 워핑 유사도는 x i = y j 인 경우 dist(x i , y j ) = 0이고 x i y j 인 경우 dist(x i , y j ) = 1로 하는 경우에 해당한다. 위 식에서 dist(x i , y j )에 M[i - 1][j], M[i][j - 1], M[i - 1][j - 1] 중 최솟값이 더해지는 것은 각각 s 1의 항목만 하나 전진하여 비교를 계속하는 경우, s 2의 항목만 하나 전진하여 비교를 계속하는 경우, s 1s 2의 항목 모두 하나씩 전진하여 비교를 계속하는 경우를 각각 나타낸다. 본 발명에서는 상품 분류 체계를 반영하여 dist(x i , y j )의 값이 0에서 1 사이의 값을 가질 수 있도록 하였다. dist(x i , y j )는 다음 수학식 3와 같이 정의된다.
[수학식 3]
Figure pat00107
위 수학식 3에서 T는 주어진 상품 분류 체계 트리를, shortestPathLen(x i , y j , T)는 T에서 상품 x i y j 를 나타내는 단말 노드 간 최단 경로의 길이를, longestPathLen(T)는 T 내에서 가장 거리가 먼 두 단말 노드 간의 경로의 길이를 나타낸다. dist(x i , y j )은 0과 1 사이의 값을 가지며, 두 상품이 상품 분류 트리 내에서 가까울수록, 즉 세부 분류가 동일할수록 작은 값을 가지고, 두 상품이 상품 분류 트리 내에서 멀수록, 즉, 서로 다른 분류에 속할수록 큰 값을 가진다. 위 식을 통해 모든 M[i][j]의 값을 구하고 나면 최종적으로 M[n][m]의 값이 s 1s 2 간의 거리가 된다.
3.2 효율적인 유사도 계산 기법
앞서 제안한 구매 이력 간 유사도 측정을 위해서는 s 1의 원소 x i s 2의 원소 y j 간의 거리를 나타내는 dist(x i , y j )를 모든 x i y j 에 대해 반복적으로 계산해야 한다. 따라서 s 1s 2의 길이가 길어질수록 계산 비용이 증가한다. dist(x i , y j )에서 longestPathLen(T)는 고정된 값이므로, shortestPathLen(x i , y j , T)를 효율적으로 구하는 것이 효율적인 유사도 계산에 매우 중요하다. 주어진 x i y j 에 대해 shortestPathLen(x i , y j , T)를 구하는 간단한 방법은 T의 루트 노드에서 x i 까지의 경로와 y j 까지의 경로를 각각 구한 후, 두 경로에 포함된 노드들을 하나씩 비교하여 서로 다른 노드들의 개수를 구하면 매우 간단히 계산할 수 있다. 하지만 이 방법은 T의 크기가 커질수록 계산 비용이 증가한다는 단점이 있다. 특히 s 1s 2의 길이가 길어질수록 이 연산을 반복해야 하므로 전체 유사도를 계산하는 비용이 크게 증가한다는 문제가 있다.
따라서 본 발명에서는 세그먼트 트리를 사용하여 shortestPathLen(x i , y j , T)를 매우 효율적으로 계산하는 기법을 제안한다. 제안하는 기법은 먼저 상품 분류 체계 트리를 한번 전위 순회하여 2개의 1차원 배열을 생성한다. 두 배열에는 순회하며 방문한 노드의 순서와 각 노드의 깊이가 각각 저장된다. 방문 노드 순서가 저장된 배열을 통해 생성된 세그먼트 트리를 활용하여 shortestPathLen(x i , y j , T)을 계산하기 위하는 새롭게 제안한 수학식 4는 다음과 같다.
[수학식 4]
shortestPathLen(x i , y j , T) = depth[x i ]+depth[y j ]-2
Figure pat00108
depth[LCA(x i , y j , T)]
위 식에서 LCA(x i , y j , T)는 세그먼트 트리로 계산된 두 상품의 가장 가까운 공통 분류이며, depth[]는 전위 순회 결과 저장된 각 노드의 깊이가 저장된 배열이다. x i 에서 LCA(x i , y j , T)까지 경로의 길이는 depth[x i ]-depth[LCA(x i , y j , T)]이며, LCA(x i , y j , T)에서 y j 까지 경로의 길이는 depth[y j ]-depth[LCA(x i , y j , T)]이므로 두 x i , y j 의 최단 경로의 길이는 위의 수학식 4가 된다.
이후 상품 분류 체계 트리 내에서 두 상품 간의 거리를 계산할 때는 이 세그먼트 트리를 사용하여 두 상품의 가장 가까운 공통 분류와 두 상품의 깊이 정보를 알아내고, 이를 활용하여 shortestPathLen(x i , y j , T)를 바로 계산한다. 따라서 shortestPathLen(x i , y j , T) 계산 시 T의 루트 노드에서 x i 까지의 경로와 y j 까지의 경로를 각각 구하고 두 경로를 비교하는 과정이 모두 제거되므로 총 계산 비용이 크게 감소된다.
4. 성능 평가
본 장에서는 제안하는 구매 이력 간 유사도 계산 방법에 대한 실험 결과를 보인다. 제안 방법은 Python을 사용하여 구현하였으며, 실험은 Intel i7-5820 3.3GHz CPU, 8GB 메모리가 장착된 Windows 10 운영체제 환경의 PC에서 수행하였다. 상품 분류 체계는 대표적 온라인 쇼핑몰인 미국의 아마존(Amazon)의 실제 분류 체계를 수집한 뒤 이를 트리 형태로 구축하여 사용하였다.
4.1 유사도 측정 방법 효과 평가
먼저 상품 분류 체계를 고려한 제안 유사도 측정 방법이 기존의 시퀀스 유사도 측정 방법에 비하여 구매 이력 간의 유사도를 더 효과적으로 계산하는지 평가하였다. 표 4은 간단한 가상 구매 이력 데이터에 대해 제안 방법을 적용한 결과(유사도 비교 실험 결과)이다.
주어진 세 개의 구매 이력 s 1, s 2, s 3은 그에 속한 상품들이 모두 다르지만 s 1s 2s 1s 3에 비해 상품들의 분류가 비슷하다 (예: Coke와 Sprite는 모두 음료에 속함) 이 경우 기존의 동적 타임 워핑 유사도는 s 1s 2간의 거리와 s 1s 3간의 거리를 모두 6으로 계산하지만, 제안 방법은 s 1s 2간의 거리와 s 1s 3간의 거리를 각각 1.5와 5.375로 계산한다. 따라서 제안 방법은 두 구매 이력이 서로 다른 상품들로 구성된 경우에도 상품 분류가 비슷한 상품들에는 더 가까운 거리를 부여함으로써 기존 방법과 비교하여 더 정확한 거리를 계산한다. 또한 동적 타임 워핑 유사도의 특성상 구매 이력의 길이가 서로 다르더라도 적용에 문제가 없음을 확인하였다.
[표 4]
Figure pat00109
4.2 유사도 계산 기법 성능 평가
다음으로는 세그먼트 트리를 사용하는 유사도 계산 기법이 세그먼트 트리를 사용하지 않는 단순 기법에 비해 계산 속도를 얼마나 더 향상시키는지 평가하였다. 이를 위해 유사도를 100번 계산하고, 이에 걸린 평균 시간을 측정하였다. 유사도 계산을 위해서 랜덤하게 생성된 가상의 구매 이력 데이터를 사용하였으며, 구매 이력의 길이와 상품 분류 트리의 크기를 변화시켜가며 실험을 수행하였다.
도 4는 구매 이력 길이에 따른 단순 기법과 세그먼트 트리를 적용한 제안 기법의 성능을 비교 그래프이다. 도 5는 상품 분류 체계 트리의 상품 개수에 따른 단순 기법과 제안 기법의 성능을 비교한 그래프 이다. 이하에서 도 4 및 도 5를 참조하여 본 발명에서 제안된 기법의 성능을 설명한다.
도 4는 상품 분류 체계 트리가 고정된 상태에서 구매 이력의 길이를 증가시켜가며 두 방법의 성능을 비교한 결과이다. 두 방법 모두 구매 이력의 길이가 증가할수록 계산 시간이 선형적으로 증가하지만, 제안 기법의 경우 사전에 구축된 세그먼트 트리를 사용하여 상품 분류 체계 트리에서 두 상품 간의 최단 거리를 빠르게 계산할 수 있으므로 전체 계산 성능이 크게 향상되었음을 알 수 있다.
도 5는 상품 분류 체계 트리의 상품 개수를 7,000 개에서 25,000 개까지 증가시켜가며 두 방법의 성능을 비교한 결과이다. 단순 방법의 경우 상품 분류 체계 트리가 커질수록 두 상품 간의 최단 거리를 탐색하는 시간이 증가하지만, 제안 방법은 사전에 구축된 세그먼트 트리를 사용하기 때문에 시간이 증가하지 않는 것을 볼 수 있다.
5. 결 론
본 발명에서는 상품 분류 체계를 고려하여 두 구매 이력 간의 유사도를 측정하는 효과적인 방법 및 그의 효율적인 계산 기법을 제안하였다. 이를 위해 기존의 대표적인 시퀀스 유사도 측정 방법인 동적 타임 워핑 유사도를 확장하여 상품 분류 체계 내에서 상품들의 거리를 반영하도록 하였다.
또한 제안하는 유사도 측정 방법을 효율적으로 계산할 수 있도록 세그먼트 트리를 사용하여 상품 분류 체계 내에서 상품들 간의 거리를 빠르게 계산하는 기법을 제안하였다. 실험 결과 제안 방법은 상품 분류 체계가 존재하는 경우 기존 방법에 비해 더 효과적으로 구매 이력 간의 유사도를 측정함을 보였으며, 세그먼트 트리를 사용하여 매우 빠르게 계산될 수 있음을 확인하였다.
도 6은 본 발명의 일 실시 예에 따른 항목 분류 체계를 고려한 시퀀스 간 유사도를 판단하는 제어 방법의 흐름도를 도시한 것이다.
도 6에 도시된 바와 같이, 본 발명의 일 실시 예에 따른 제어 방법은, 제1 시퀀스를 획득하는 과정(S210), 제2 시퀀스를 획득하는 과정(S230), 제1 및 제2 시퀀스들의 유사 여부를 판단하는 과정(S250)을 포함할 수 있다.
과정 S210 및 과정 S230에서, 제1 시퀀스는 순서를 가지는 제1 항목들로 구성되며, 제2 시퀀스는 순서를 가지는 제2 항목들로 구성될 수 있다. 예를 들어, 제1 시퀀스는 순서대로 제1-1 항목, 제1-2 항목, 제1-3 항목을 포함할 수 있으며, 제2 시퀀스는 순서대로 제2-1 항목, 제2-2 항목, 제2-3 항목을 포함할 수 있다. 시퀀스 내 항목들의 수는 2 이상의 값을 가질 수 있다.
일 예로, 제1 및 제2 시퀀스는 상품의 구매이력일 수 있으며, 제 1 구매이력은 Sprite, Candy, Jeans 순서를 가지고, 제2 구매이력은 Coke, Chocolate, Skirt 순서를 가질 수 있다.
과정 S250에서, 제1 정보 및 제2 정보에 기초하여 상기 제1 및 제2 시퀀스의 유사 여부를 판단할 수 있다.
상기 제1 및 제2 항목들은 동일한 항목 분류 트리의 단말 노드에 해당할 수 있다. 항목 분류 트리란 트리 구조를 가지는 항목 분류 체계로서, 최상단의 노드인 Root로부터 하위 계층으로 분지하여 복수개의 내부 노드(C1 내지 C8) 및 복수개의 내부 노드들 말단인 단말 노드에 항목들(a 내지 k)로 이뤄진다 (도 2(a) 참조).
시퀀스들의 유사여부를 판단하기 위하여 제1 시퀀스의 <제1-1 항목, 제1-2 항목, 제1-3 항목> 중 하나의 항목와 제2 시퀀스의 <제2-1 항목, 제2-2 항목, 제2-3 항목> 중 하나의 항목 간에 대비하여 시퀀스의 유사 여부를 판단할 수 있다.
구체적인 방법 중 하나로, 상기 제1 정보는 제1 시퀀스의 각 항목들 중 하나를 제2 시퀀스의 각 항목들 중 하나로 변환하기 위한 연산의 횟수에 관한 정보를 포함할 수 있다. 환언하면 상기 제1 정보는 제1-1 항목을 제2-1 항목, 제2-2 항목, 제2-3 항목으로 변환하기 위한 연산 횟수, 제1-2 항목을 제2-1 항목, 제2-2 항목, 제2-3 항목으로 변환하기 위한 연산 횟수, 제1-3 항목을 제2-1 항목, 제2-2 항목, 제2-3 항목으로 변환하기 위한 연산 횟수를 포함할 수 있다.
또한, 상기 제2 정보는 상기 제1 항목들 중 하나와 상기 제2 항목들 중 하나 사이의 상기 항목 분류 트리 내의 최단 경로의 길이에 관한 정보를 포함할 수 있다.
종래에는 시퀀스 간 유사 판단을 하기 위하여 항목과 항목 사이의 동일 여부에 대한 정보(0 또는 1)를 사용하였으나, 이는 항목들 간 동일성만 볼 뿐 노드의 연관성에 대한 정보를 포함하지 못하였다.
예를 들어, 종래의 방법에 따르면, 동일 노드 내에 속하고 동일하지 않은 2개의 항목들(Coke, Sprite)과 다른 노드의 2개 항목들(Candy, Polos)의 연관성 정보는 동일하게 비동일 항목을 의미하는 정보(0)를 갖는다. 그러나 (Candy, Polos)의 항목들 보다 (Coke, Sprite)의 항목들이 서로 더 연관된 항목임을 나타내지 못하였다(도 2(a) 참조).
본 발명에서 제안하는 방법은 시퀀스 간 유사 판단을 더 정밀하게 하기 위하여 항목들간 최단 경로의 길이를 이용한다. 항목들간 최단 경로의 길이가 짧을수록 항목들 간 연관성 정보는 더 높다고 판단할 수 있다. 예를 들어, (Candy, Polos)의 항목들의 경로는 7이고, (Coke, Sprite)의 항목들의 경로는 2를 갖는다(도 2(b) 참조). 그러므로 (Candy, Polos)의 항목들에 비하여 (Coke, Sprite)의 항목들의 연관성이 높은 것을 의미한다.
나아가, 상기 제2 정보는 상기 항목 분류 트리 내의 항목들의 최장 경로의 길이에 관한 정보를 더 포함할 수 있다. 본 발명에서 제안하는 방법은 항목들의 촤장 경로의 길이를 이용하여 항목들간 연관성 정보의 상대적인 수치를 이용하여 시퀀스들 간 유사도를 측정할 수 있다. 예를 들어, (Coke, Sprite)의 항목들의 상대적인 연관성 정보는 (Coke, Sprite)의 항목들의 경로 길이(2) 대비 항목 분류 트리 내의 항목들의 최장 경로 길이(7)으로 2/7의 값을 가질 수 있다.
또한, 본 발명에서 제안하는 방법은 항목들 간 연관성 정보를 빠르게 계산하기 위하여 항목 분류 트리의 각 노드에 대한 깊이 정보를 계산하여 미리 저장하고 있을 수 있다. 이후 2개의 항목들이 선택된 경우 항목들 간 최단 경로의 길이를 계산하기 위하여 모든 노드들(root, 내부노드, 단말노드)을 각각 대비하여 경로를 계산하는 것이 아니라 깊이 정보에 기초하여 항목들 간 최단 경로의 길이를 계산할 수 있다. 따라서 중복된 연산을 방지하고 빠르게 항목들 간 최단 경로의 길이를 제공할 수 있다.
도 2(a)와 같이 항목 분류 트리가 있는 경우 각 노드별로 순번을 매겨서 Root로부터 각 노드까지의 경로의 길이를 노드 깊이(node depth)로 정의할 수 있다. Root의 노드 깊이는 0를 가지며, C1, C2, C3의 노드 깊이는 1을 가지며, C4, C5, e, f, C6, C7의 노드 깊이는 2를 가지며, a, b, c, d, g, h, I, C8의 노드 깊이는 3을 가지며, j, k의 노드 깊이는 4를 가질 수 있다. 각 노드별 노드 깊이의 정보를 미래 계산하여 메모리(1100)에 저장해 둘 수 있다.
예를 들어, (Sandals, Jeans) 항목들 간 최단 경로의 길이를 구하고자 하는 경우 Sandals(g) 및 Jeans(i) 항목들의 마지막으로 공유하는 최하단 노드(Fashion, C3)를 결정하고, Sandals(g) 항목과 Fashion(C3) 내부노드 사이의 경로 길이와 Jeans(i) 항목과 Fashion(C3) 내부노드 사이의 경로 길이의 합을 통하여 (Sandals, Jeans) 항목들 간 최단 경로의 길이를 결정할 수 있다. 이 경우 미리 저장된 각 노드별 노드 깊이의 정보를 이용하여 [Sandals(g)의 깊이(3)+ Jeans(i)의 깊이(3) - 2*Fashion(C3)의 깊이(1) = 3 + 3 - 2*1 = 4]와 같이 (Sandals, Jeans) 항목들 간 최단 경로의 길이(4)를 결정할 수 있다.
도 7 및 도 8은 일 실시예에 따른 전자장치(1000)의 블록도를 도시한 것이다.
일 실시예에 따른 전자 장치(1000)는, 단말기, 디바이스, 전자기기, 서버, 스마트폰, 태블릿 PC, PC, 스마트 TV, 휴대폰, PDA(personal digital assistant), 랩톱, 미디어 플레이어, 마이크로 서버, GPS(global positioning system) 장치, 전자책 단말기, 디지털방송용 단말기, 네비게이션, 키오스크, MP3 플레이어, 디지털 카메라, 가전기기 및 기타 컴퓨팅 장치 중 하나일 수 있다. 또한, 전자 장치는 디스플레이 기능 및 데이터 프로세싱 기능을 구비한 시계, 안경, 헤어 밴드 및 반지 등의 웨어러블 디바이스일 수 있다. 그러나, 이에 한정되지 않으며, 전자 장치(1000)는 데이터를 처리하고, 처리된 데이터를 제공할 수 있는 모든 종류의 기기를 포함할 수 있다.
도 7에 도시된 바와 같이, 일 실시 예에 따른 전자 장치(1000)는 메모리(1100), 출력부(1200), 통신부(1500) 및 프로세서(1300)를 포함할 수 있다.
프로세서(1300)은 항목 분류 체계를 고려한 시퀀스 간 유사도를 판단하는 제어 방법을 수행하기 위하여 도 1 내지 도 6을 통해서 상술한 각 과정들을 프로세서 자체적으로 수행하거나 또는 전자 장치(1000)의 구성요소들을 제어하여 수행할 수 있다.
도 7에 도시된 구성 요소 모두가 전자 장치(1000)의 필수 구성 요소인 것은 아니며, 보다 많은 구성 요소에 의해 전자 장치(1000)가 구현될 수도 있고, 보다 적은 구성 요소에 의해 전자 장치(1000)가 구현될 수도 있다.
예를 들어, 도 8에 도시된 바와 같이, 일 실시 예에 따른 전자 장치(1000)는, 메모리(1100), 출력부(1200), 프로세서(1300), 센싱부(1400), 통신부(1500), A/V 입력부(1600) 및 사용자 입력부(1700)를 포함할 수도 있다.
*메모리(1100)
메모리(1100)는, 프로세서(1300)의 처리 및 제어를 위한 프로그램을 저장할 수 있고, 전자 장치(1000)로 입력되는 정보 또는 전자 장치(1000)로부터 출력되는 정보를 저장할 수도 있다.
메모리(1100)는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(RAM, Random Access Memory) SRAM(Static Random Access Memory), 롬(ROM, Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다.
메모리(1100)에 저장된 프로그램들은 그 기능에 따라 복수 개의 모듈들로 분류할 수 있는데, 예를 들어, UI 모듈(1110), 터치 스크린 모듈(1120), 알림 모듈(1130) 등으로 분류될 수 있다.
UI 모듈(1110)은, 애플리케이션 별로 전자 장치(1000)와 연동되는 특화된 UI, GUI 등을 제공할 수 있다.
터치 스크린 모듈(1120)은 사용자의 터치 스크린 상의 터치 제스처를 감지하고, 터치 제스처에 관한 정보를 프로세서(1300)로 전달할 수 있다. 일 실시예에 따른 터치 스크린 모듈(1120)은 터치 코드를 인식하고 분석할 수 있다. 터치 스크린 모듈(1120)은 컨트롤러를 포함하는 별도의 하드웨어로 구성될 수도 있다.
알림 모듈(1130)은 전자 장치(1000)의 이벤트 발생을 알리기 위한 신호를 발생할 수 있다. 전자 장치(1000)에서 발생되는 이벤트의 예로는 호 신호 수신, 메시지 수신, 키 신호 입력, 일정 알림 등이 있다. 알림 모듈(1130)은 디스플레이부(1210)를 통해 비디오 신호 형태로 알림 신호를 출력할 수도 있고, 음향 출력부(1220)를 통해 오디오 신호 형태로 알림 신호를 출력할 수도 있고, 진동 모터(1230)를 통해 진동 신호 형태로 알림 신호를 출력할 수도 있다. 예를 들어, 알림 모듈(1130)은 추정된 차선 정보에 기초하여 가이드 정보를 출력하기 위한 신호를 발생할 수 있다.
*출력부(1200)
출력부(1200)는, 오디오 신호 또는 비디오 신호 또는 진동 신호를 출력할 수 있으며, 출력부(1200)는 디스플레이부(1210), 음향 출력부(1220), 및 진동 모터(1230)를 포함할 수 있다.
디스플레이부(1210)는 전자 장치(1000)에서 처리되는 정보를 표시 출력한다. 구체적으로, 디스플레이부(1210)는 카메라(1610)에서 촬영된 이미지를 출력할 수 있다. 디스플레이부(1210)는, 사용자의 입력에 대한 응답으로, 응답에 관련된 동작을 실행하기 위한 사용자 인터페이스를 디스플레이할 수 있다.
음향 출력부(1220)는 통신부(1500)로부터 수신되거나 메모리(1100)에 저장된 오디오 데이터를 출력한다. 또한, 음향 출력부(1220)는 전자 장치(1000)에서 수행되는 기능(예를 들어, 호신호 수신음, 메시지 수신음, 알림음)과 관련된 음향 신호를 출력한다.
*프로세서(1300)
프로세서(1300)는, 통상적으로 전자 장치(1000)의 전반적인 동작을 제어한다. 예를 들어, 프로세서(1300)는, 메모리(1100)에 저장된 프로그램들을 실행함으로써, 사용자 입력부(1700), 출력부(1200), 센싱부(1400), 통신부(1500), A/V 입력부(1700) 등을 전반적으로 제어할 수 있다.
*센싱부(1400)
센싱부(1400)는, 전자 장치(1000)의 상태 또는 전자 장치(1000) 주변의 상태를 감지하고, 감지된 정보를 프로세서(1300)로 전달할 수 있다.
센싱부(1400)는, 지자기 센서(Magnetic sensor)(1410), 가속도 센서(Acceleration sensor)(1420), 온/습도 센서(1430), 적외선 센서(1440), 자이로스코프 센서(1450), 위치 센서(예컨대, GPS)(1460), 기압 센서(1470), 근접 센서(1480), 및 RGB 센서(RGB sensor)(1490) 중 적어도 하나를 포함할 수 있으나, 이에 한정되는 것은 아니다. 각 센서들의 기능은 그 명칭으로부터 당업자가 직관적으로 추론할 수 있으므로, 구체적인 설명은 생략하기로 한다.
*통신부(1500)
통신부(1500)는, 전자 장치(1000)가 다른 장치(미도시) 및 서버(미도시)와 통신을 하게 하는 하나 이상의 구성요소를 포함할 수 있다. 다른 장치(미도시)는 전자 장치(1000)와 같은 컴퓨팅 장치이거나, 센싱 장치일 수 있으나, 이에 한정되는 것은 아니다. 예를 들어, 통신부(1500)는, 근거리 통신부(1510), 이동 통신부(1520), 방송 수신부(1530)를 포함할 수 있다.
근거리 통신부(short-range wireless communication unit)(1510)는, 블루투스 통신부, BLE(Bluetooth Low Energy) 통신부, 근거리 무선 통신부(Near Field Communication unit), WLAN(와이파이) 통신부, 지그비(Zigbee) 통신부, 적외선(IrDA, infrared Data Association) 통신부, WFD(Wi-Fi Direct) 통신부, UWB(ultra wideband) 통신부, Ant+ 통신부 등을 포함할 수 있으나, 이에 한정되는 것은 아니다.
이동 통신부(1520)는, 이동 통신망 상에서 기지국, 외부의 단말, 서버 중 적어도 하나와 무선 신호를 송수신한다. 여기에서, 무선 신호는, 음성 호 신호, 화상 통화 호 신호 또는 문자/멀티미디어 메시지 송수신에 따른 다양한 형태의 데이터를 포함할 수 있다.
방송 수신부(1530)는, 방송 채널을 통하여 외부로부터 방송 신호 및/또는 방송 관련된 정보를 수신한다. 방송 채널은 위성 채널, 지상파 채널을 포함할 수 있다. 구현 예에 따라서 전자 장치(1000)가 방송 수신부(1530)를 포함하지 않을 수도 있다.
*A/V(Audio/Video) 입력부(1600)*
A/V(Audio/Video) 입력부(1600)는 오디오 신호 또는 비디오 신호 입력을 위한 것으로, 이에는 카메라(1610)와 마이크로폰(1620) 등이 포함될 수 있다.
카메라(1610)는 화상 통화모드 또는 촬영 모드에서 이미지 센서를 통해 정지영상 또는 동영상 등의 화상 프레임을 얻을 수 있다. 이미지 센서를 통해 캡처된 이미지는 프로세서(1300) 또는 별도의 이미지 처리부(미도시)를 통해 처리될 수 있다.
마이크로폰(1620)은, 외부의 음향 신호를 입력 받아 전기적인 음성 데이터로 처리한다. 예를 들어, 마이크로폰(1620)은 외부 디바이스 또는 사용자로부터 음향 신호를 수신할 수 있다. 마이크로폰(1620)은 사용자의 음성 입력을 수신할 수 있다. 마이크로폰(1620)은 외부의 음향 신호를 입력 받는 과정에서 발생 되는 잡음(noise)을 제거하기 위한 다양한 잡음 제거 알고리즘을 이용할 수 있다.
*사용자 입력부(1700)
사용자 입력부(1700)는, 사용자가 전자 장치(1000)를 제어하기 위한 데이터를 입력하는 수단을 의미한다. 예를 들어, 사용자 입력부(1700)에는 키 패드(key pad), 돔 스위치 (dome switch), 터치 패드(접촉식 정전 용량 방식, 압력식 저항막 방식, 적외선 감지 방식, 표면 초음파 전도 방식, 적분식 장력 측정 방식, 피에조 효과 방식 등), 조그 휠, 조그 스위치 등이 있을 수 있으나 이에 한정되는 것은 아니다.
본 발명은 도면에 도시된 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (8)

  1. 순서를 가지는 제1 항목들로 구성된 제1 시퀀스를 획득하는 과정;
    순서를 가지는 제2 항목들로 구성된 제2 시퀀스를 획득하는 과정; 및
    제1 정보 및 제2 정보에 기초하여 상기 제1 및 제2 시퀀스의 유사 여부를 판단하는 과정을 포함하며,
    상기 제1 정보는 상기 제1 항목들 중 하나를 상기 제2 항목들 중 하나로 변환하기 위한 연산의 횟수에 관한 정보를 포함하며,
    상기 제2 정보는 상기 제1 항목들 중 하나와 상기 제2 항목들 중 하나 사이의 상기 항목 분류 트리 내의 최단 경로의 길이에 관한 정보를 포함하는,
    항목 분류 체계를 고려한 시퀀스 간 유사도를 판단하는 제어 방법.
  2. 제1항에 있어서,
    상기 제1 및 제2 항목들은 동일한 항목 분류 트리의 단말 노드에 해당하는 것을 특징으로 하는,
    항목 분류 체계를 고려한 시퀀스 간 유사도를 판단하는 제어 방법.
  3. 제1항에 있어서,
    상기 제2 정보는 상기 항목 분류 트리 내의 항목들의 최장 경로의 길이에 관한 정보를 더 포함하는 것을 특징으로 하는,
    항목 분류 체계를 고려한 시퀀스 간 유사도를 판단하는 제어 방법.
  4. 제1항에 있어서,
    상기 제1 항목들 중 하나와 상기 제2 항목들 중 하나 사이의 상기 항목 분류 트리 내의 최단 경로의 길이는 기 저장된 상기 항목 분류 트리의 각 노드에 대한 깊이 정보에 기초하여 결정되는 것을 특징으로 하는,
    항목 분류 체계를 고려한 시퀀스 간 유사도를 판단하는 제어 방법.
  5. 항목 분류 트리에 대한 정보를 저장하는 메모리; 및
    상기 메모리를 제어하는 프로세서를 포함하며,
    상기 프로세서는, 순서를 가지는 제1 항목들로 구성된 제1 시퀀스를 획득하고, 순서를 가지는 제2 항목들로 구성된 제2 시퀀스를 획득하고, 제1 정보 및 제2 정보에 기초하여 상기 제1 및 제2 시퀀스의 유사 여부를 판단하도록 제어하며,
    상기 제1 정보는 상기 제1 항목들 중 하나를 상기 제2 항목들 중 하나로 변환하기 위한 연산의 횟수에 관한 정보를 포함하며,
    상기 제2 정보는 상기 제1 항목들 중 하나와 상기 제2 항목들 중 하나 사이의 상기 항목 분류 트리 내의 최단 경로의 길이에 관한 정보를 포함하는,
    항목 분류 체계를 고려한 시퀀스 간 유사도를 판단하는 전자 장치.
  6. 제5항에 있어서,
    상기 제1 및 제2 항목들은 동일한 항목 분류 트리의 단말 노드에 해당하는 것을 특징으로 하는,
    항목 분류 체계를 고려한 시퀀스 간 유사도를 판단하는 전자 장치.
  7. 제5항에 있어서,
    상기 제2 정보는 상기 항목 분류 트리 내의 항목들의 최장 경로의 길이에 관한 정보를 더 포함하는 것을 특징으로 하는,
    항목 분류 체계를 고려한 시퀀스 간 유사도를 판단하는 전자 장치.
  8. 제5항에 있어서,
    상기 제1 항목들 중 하나와 상기 제2 항목들 중 하나 사이의 상기 항목 분류 트리 내의 최단 경로의 길이는 상기 메모리에 기 저장된 상기 항목 분류 트리의 각 노드에 대한 깊이 정보에 기초하여 결정되는 것을 특징으로 하는,
    항목 분류 체계를 고려한 시퀀스 간 유사도를 판단하는 전자 장치.
KR1020190157364A 2019-11-29 2019-11-29 항목 분류 체계를 고려한 시퀀스 간 유사도를 판단하는 전자 장치 및 그 제어 방법 KR102279210B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020190157364A KR102279210B1 (ko) 2019-11-29 2019-11-29 항목 분류 체계를 고려한 시퀀스 간 유사도를 판단하는 전자 장치 및 그 제어 방법
PCT/KR2020/012648 WO2021107360A2 (ko) 2019-11-29 2020-09-18 유사도를 판단하는 전자 장치 및 그 제어 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190157364A KR102279210B1 (ko) 2019-11-29 2019-11-29 항목 분류 체계를 고려한 시퀀스 간 유사도를 판단하는 전자 장치 및 그 제어 방법

Publications (2)

Publication Number Publication Date
KR20210067588A true KR20210067588A (ko) 2021-06-08
KR102279210B1 KR102279210B1 (ko) 2021-07-19

Family

ID=76399538

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190157364A KR102279210B1 (ko) 2019-11-29 2019-11-29 항목 분류 체계를 고려한 시퀀스 간 유사도를 판단하는 전자 장치 및 그 제어 방법

Country Status (1)

Country Link
KR (1) KR102279210B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023012933A1 (ja) * 2021-08-04 2023-02-09 日本電信電話株式会社 特徴抽出装置および特徴抽出方法ならびに特徴抽出プログラム
CN115729981A (zh) * 2022-11-29 2023-03-03 中国长江电力股份有限公司 一种基于编辑距离的相似水情数据挖掘方法及其应用
KR20230059383A (ko) * 2021-10-26 2023-05-03 한양대학교 산학협력단 상품의 연관성 그래프 구조를 이용하는 물류 예측 기술
WO2023144967A1 (ja) * 2022-01-27 2023-08-03 日本電信電話株式会社 処理装置、処理方法およびプログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140103058A (ko) * 2013-02-15 2014-08-25 삼성전자주식회사 전자 장치, 전자 장치를 동작하는 방법 및 컴퓨터 판독 가능한 기록 매체
KR101937989B1 (ko) 2017-12-29 2019-01-11 연세대학교 원주산학협력단 집합 기반 유사 시퀀스 매칭 장치 및 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140103058A (ko) * 2013-02-15 2014-08-25 삼성전자주식회사 전자 장치, 전자 장치를 동작하는 방법 및 컴퓨터 판독 가능한 기록 매체
KR101937989B1 (ko) 2017-12-29 2019-01-11 연세대학교 원주산학협력단 집합 기반 유사 시퀀스 매칭 장치 및 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
김성환 외 2인. "A New String Search Tree with Multiple Alignment." 2012 IEEE 12th International Conference on Computer and Information Technology. (2012.10.29. 공개)* *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023012933A1 (ja) * 2021-08-04 2023-02-09 日本電信電話株式会社 特徴抽出装置および特徴抽出方法ならびに特徴抽出プログラム
KR20230059383A (ko) * 2021-10-26 2023-05-03 한양대학교 산학협력단 상품의 연관성 그래프 구조를 이용하는 물류 예측 기술
WO2023144967A1 (ja) * 2022-01-27 2023-08-03 日本電信電話株式会社 処理装置、処理方法およびプログラム
CN115729981A (zh) * 2022-11-29 2023-03-03 中国长江电力股份有限公司 一种基于编辑距离的相似水情数据挖掘方法及其应用
CN115729981B (zh) * 2022-11-29 2024-02-13 中国长江电力股份有限公司 一种基于编辑距离的相似水情数据挖掘方法及其应用

Also Published As

Publication number Publication date
KR102279210B1 (ko) 2021-07-19

Similar Documents

Publication Publication Date Title
KR102279210B1 (ko) 항목 분류 체계를 고려한 시퀀스 간 유사도를 판단하는 전자 장치 및 그 제어 방법
EP3779841B1 (en) Method, apparatus and system for sending information, and computer-readable storage medium
KR101778679B1 (ko) 딥러닝을 이용하여 텍스트 단어 및 기호 시퀀스를 값으로 하는 복수 개의 인자들로 표현된 데이터를 자동으로 분류하는 방법 및 시스템
US20190370695A1 (en) Enhanced pipeline for the generation, validation, and deployment of machine-based predictive models
US10628775B2 (en) Sankey diagram graphical user interface customization
US20170053208A1 (en) Behavioral Prediction for Targeted End Users
US20180342004A1 (en) Cumulative success-based recommendations for repeat users
CN108885624B (zh) 信息推荐系统及方法
JP2019537120A (ja) 画像解析および予測に基づく視覚検索
JP6703572B2 (ja) 情報処理装置、情報処理方法および情報処理プログラム
Dogan et al. Genders prediction from indoor customer paths by Levenshtein-based fuzzy kNN
US12002052B2 (en) Feature subspace isolation and disentanglement in merchant embeddings
CN111292168B (zh) 数据处理方法、装置及设备
CN104751354A (zh) 一种广告人群筛选方法
TWI525460B (zh) 電子計算裝置、其個人化資訊推薦方法及其電腦程式產品
JP2019125257A (ja) 情報処理装置、情報処理方法、及び情報処理プログラム
CN107092609A (zh) 一种信息推送方法及装置
US9342834B2 (en) System and method for setting goals and modifying segment criteria counts
CN115578163A (zh) 一种组合商品信息的个性化推送方法及系统
CN115423555A (zh) 一种商品推荐方法、装置、电子设备及存储介质
KR102376652B1 (ko) Ai를 활용한 상품 데이터 실시간 분석 및 상품 정보를 업데이트하기 위한 방법 및 시스템
CN115618126A (zh) 搜索处理方法、系统、计算机可读存储介质及计算机设备
CN112632275B (zh) 基于个人文本信息的人群聚类数据处理方法、装置及设备
CN113420214B (zh) 一种电子交易对象推荐方法和装置及设备
JP2019159965A (ja) 情報処理装置、情報処理方法、及び情報処理プログラム

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant