KR102337678B1 - 그래프 유사 여부를 분석하기 위하여 기계학습을 이용한 전자 장치 및 그 제어 방법 - Google Patents

그래프 유사 여부를 분석하기 위하여 기계학습을 이용한 전자 장치 및 그 제어 방법 Download PDF

Info

Publication number
KR102337678B1
KR102337678B1 KR1020190157373A KR20190157373A KR102337678B1 KR 102337678 B1 KR102337678 B1 KR 102337678B1 KR 1020190157373 A KR1020190157373 A KR 1020190157373A KR 20190157373 A KR20190157373 A KR 20190157373A KR 102337678 B1 KR102337678 B1 KR 102337678B1
Authority
KR
South Korea
Prior art keywords
weight
node
graph
graphs
embedding
Prior art date
Application number
KR1020190157373A
Other languages
English (en)
Other versions
KR20210067592A (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 KR1020190157373A priority Critical patent/KR102337678B1/ko
Priority to PCT/KR2020/012648 priority patent/WO2021107360A2/ko
Publication of KR20210067592A publication Critical patent/KR20210067592A/ko
Application granted granted Critical
Publication of KR102337678B1 publication Critical patent/KR102337678B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명에 따른 일 실시예는, 가중치 그래프들로부터 각각의 가중치 그래프의 각각의 노드에 대한 노드-가중치 시퀀스들을 획득하는 과정; 상기 각각의 노드에 대한 노드-가중치 시퀀스들을 학습된 오토인코더 모델의 입력으로 하여 상기 각각의 노드에 대한 임베딩 벡터들을 획득하는 과정; 상기 각각의 노드에 대한 임베딩 벡터들을 이용하여 상기 각각의 가중치 그래프의 최종 임베딩 벡터들을 획득하는 과정; 및 상기 각각의 가중치 그래프를 분류함으로서 상기 가중치 그래프들의 유사 여부를 판단하는 과정을 포함하는, 그래프 유사 여부를 분석하기 위하여 기계학습을 이용한 제어 방법을 제공할 수 있다.

Description

그래프 유사 여부를 분석하기 위하여 기계학습을 이용한 전자 장치 및 그 제어 방법{Electronic device using machine learning to analyze similarity of graph and control method thereof}
본 발명은 그래프 유사 여부를 분석하기 위하여 기계학습을 이용한 전자 장치 및 그 제어 방법에 관한 것으로, 구체적으로 가중치 정보를 가지고 있는 그래프의 유사 여부를 분석하기 위하여 기계학습을 이용하는 전자 장치 및 제어 방법에 관한 것이다.
인공지능(Artificial Intelligence, AI) 시스템은 인간 수준의 지능을 구현하는 컴퓨터 시스템이며, 기존 Rule 기반 스마트 시스템과 달리 기계가 스스로 학습하고 판단하며 똑똑해지는 시스템이다. 인공지능 시스템은 사용할수록 인식률이 향상되고 사용자 취향을 보다 정확하게 이해할 수 있게 되어, 기존 Rule 기반 스마트 시스템은 점차 기계학습 기반 인공지능 시스템으로 대체되고 있다.
인공지능 기술은 기계학습(딥러닝) 및 기계학습을 활용한 요소 기술들로 구성된다. 기계학습은 입력 데이터들의 특징을 스스로 분류/학습하는 알고리즘 기술이며, 요소기술은 딥러닝 등의 기계학습 알고리즘을 활용하여 인간 두뇌의 인지, 판단 등의 기능을 모사하는 기술로서, 언어적 이해, 시각적 이해, 추론/예측, 지식 표현, 동작 제어 등의 기술 분야로 구성된다.
인공지능 기술이 응용되는 다양한 분야는 다음과 같다. 언어적 이해는 인간의 언어/문자를 인식하고 응용/처리하는 기술로서, 자연어 처리, 기계 번역, 대화시스템, 질의 응답, 음성 인식/합성 등을 포함한다. 시각적 이해는 사물을 인간의 시각처럼 인식하여 처리하는 기술로서, 객체 인식, 객체 추적, 영상 검색, 사람 인식, 장면 이해, 공간 이해, 영상 개선 등을 포함한다. 추론 예측은 정보를 판단하여 논리적으로 추론하고 예측하는 기술로서, 지식/확률 기반 추론, 최적화 예측, 선호 기반 계획, 추천 등을 포함한다. 지식 표현은 인간의 경험정보를 지식데이터로 자동화 처리하는 기술로서, 지식 구축(데이터 생성/분류), 지식 관리(데이터 활용) 등을 포함한다. 동작 제어는 차량의 자율 주행, 로봇의 움직임을 제어하는 기술로서, 움직임 제어(항법, 충돌, 주행), 조작 제어(행동 제어) 등을 포함한다.
최근들어 딥러닝 기술을 사용하여 그래프를 임베딩하는 연구가 진행되고 있다. 이들 연구는 다양한 딥러닝모델을 사용하여 그래프들의 특징을 추출하고, 이 추출된 특징을 사용하여 각 그래프를 임베딩한다.
그러나 종래의 딥러닝에 기반한 그래프 임베딩 기법들은 그래프의 구조만을 고려하였으며, 구조를 이루는 노드들 사이의 간선에 부여된 가중치를 고려한 그래프 임베딩 기법은 아직까지 연구가 이뤄지지 않았다. 그로 인해 간선의 가중치가 다른 그래프들 사이의 유사성을 판별하는데 문제가 있었다.
한국 등록특허공보 제10-1218795호 (그래프 분류를 위한 유사한 그래프 구조를 이용한 특징 선택 방법 및 장치)
본 발명의 일 실시 예에 따른 그래프 유사 여부를 분석하기 위하여 기계학습을 이용한 전자 장치 및 그 제어 방법은 아래와 같은 목적을 가진다.
본 발명은 가중치 그래프를 위한 새로운 임베딩 기법을 이용하는 전자 장치 및 그 제어 방법을 제안한다.
본 발명은 가중치 그래프들이 주어졌을 때, 각 가중치 그래프로부터 노드-가중치 시퀀스(node-weight sequence)들을 추출하고, 추출된 노드-가중치 시퀀스들을 훈련 데이터로 사용하여 LSTM 오토인코더(autoencoder)를 학습시키는 전자 장치 및 그 제어 방법을 제안한다.
본 발명은 학습된 LSTM 오토인코더를 사용하여 각 노드-가중치 시퀀스들을 임베딩하고, 특징들을 모아 각 가중치 그래프의 최종 임베딩 결과를 얻는 전자 장치 및 그 제어 방법을 제안한다.
본 발명의 일 실시 예는, 가중치 그래프들로부터 각각의 가중치 그래프의 각각의 노드에 대한 노드-가중치 시퀀스들을 획득하는 과정; 상기 각각의 노드에 대한 노드-가중치 시퀀스들을 학습된 오토인코더 모델의 입력으로 하여 상기 각각의 노드에 대한 임베딩 벡터들을 획득하는 과정; 상기 각각의 노드에 대한 임베딩 벡터들을 이용하여 상기 각각의 가중치 그래프의 최종 임베딩 벡터들을 획득하는 과정; 및 상기 각각의 가중치 그래프를 분류함으로서 상기 가중치 그래프들의 유사 여부를 판단하는 과정을 포함하는, 그래프 유사 여부를 분석하기 위하여 기계학습을 이용한 제어 방법을 제공할 수 있다.
본 발명의 일 실시 예는, 가중치 그래프들로부터 각각의 가중치 그래프의 각각의 노드에 대한 노드-가중치 시퀀스들을 획득하는 과정; 및 상기 각각의 노드에 대한 노드-가중치 시퀀스들을 이용하여 오토인코더 모델을 학습시키는 과정을 포함하는, 그래프 유사 여부를 분석하기 위하여 기계학습을 이용한 제어 방법을 제공할 수 있다.
본 발명의 일 실시 예는, 상기 각각의 가중치 그래프는 복수개의 노드들과 노드들 사이를 연결하는 간선에 부여된 가중치 정보를 포함하며, 상기 노드-가중치 시퀀스는 간선으로 연결된 2개의 노드들의 정보 및 간선에 부여된 가중치에 대한 정보로 이뤄진 구성요소들을 포함하는, 그래프 유사 여부를 분석하기 위하여 기계학습을 이용한 제어 방법을 제공할 수 있다.
본 발명의 일 실시 예는, 상기 오토인코더 모델은 LSTM 오토인코더인 것을 특징으로 하는, 그래프 유사 여부를 분석하기 위하여 기계학습을 이용한 제어 방법을 제공할 수 있다.
본 발명의 일 실시 예는, 가중치 그래프들에 대한 정보 및 학습된 오토인코더 모델에 대한 정보를 저장한 메모리; 상기 메모리를 제어하는 제어부를 포함하며, 상기 제어부는, 상기 가중치 그래프들로부터 각각의 가중치 그래프의 각각의 노드에 대한 노드-가중치 시퀀스들을 획득하고, 상기 각각의 노드에 대한 노드-가중치 시퀀스들을 상기 학습된 오토인코더 모델의 입력으로 하여 상기 각각의 노드에 대한 임베딩 벡터들을 획득하고, 상기 각각의 노드에 대한 임베딩 벡터들을 이용하여 상기 각각의 가중치 그래프의 최종 임베딩 벡터들을 획득하고, 상기 각각의 가중치 그래프를 분류함으로서 상기 가중치 그래프들의 유사 여부를 판단하도록 제어하는, 그래프 유사 여부를 분석하기 위하여 기계학습을 이용한 전자 장치를 제공할 수 있다.
본 발명의 일 실시 예는, 가중치 그래프들에 대한 정보를 저장한 메모리; 상기 메모리를 제어하는 제어부를 포함하며, 상기 제어부는, 상기 가중치 그래프들로부터 각각의 가중치 그래프의 각각의 노드에 대한 노드-가중치 시퀀스들을 획득하고, 상기 각각의 노드에 대한 노드-가중치 시퀀스들을 이용하여 오토인코더 모델을 학습시키도록 제어하는, 그래프 유사 여부를 분석하기 위하여 기계학습을 이용한 전자 장치를 제공할 수 있다.
본 발명의 일 실시 예는, 상기 각각의 가중치 그래프는 복수개의 노드들과 노드들 사이를 연결하는 간선에 부여된 가중치 정보를 포함하며, 상기 노드-가중치 시퀀스는 간선으로 연결된 2개의 노드들의 정보 및 간선에 부여된 가중치에 대한 정보로 이뤄진 구성요소들을 포함하는, 그래프 유사 여부를 분석하기 위하여 기계학습을 이용한 전자 장치를 제공할 수 있다.
본 발명의 일 실시 예는, 상기 오토인코더 모델은 LSTM 오토인코더인 것을 특징으로 하는, 그래프 유사 여부를 분석하기 위하여 기계학습을 이용한 전자 장치를 제공할 수 있다.
본 발명은 각 가중치 그래프의 임베딩 결과를 이용하여 가중치 그래프 간 유사도를 측정하거나 유사 가중치 그래프를 탐색하는 전자 장치 및 그 제어 방법을 제공하는 효과를 가진다.
본 발명은 실제 서로 다른 구조와 가중치를 가진 그래프 데이터에 대한 실험을 통해, 유사한 가중치 그래프를 탐색하는데 매우 효과적인 전자 장치 및 그 제어 방법을 제공하는 효과를 가진다.
본 발명은 그래프 분류, 그래프 탐색, 그래프 유사도 판별, 추천 시스템(유사 성향의 사람 찾기, 유사한 곡 추천 등), 화합물 비교를 구현할 수 있는 전자 장치 및 그 제어 방법을 제공하는 효과를 가진다.
본 발명은 새로운 화합물을 발견하거나 만들어 낼 경우 기존 화합물과 대비하여 그래프의 유사성을 이용하여 새로운 화합물의 특성 내지 성질을 예측할 수 있는 전자 장치 및 그 제어 방법을 제공하는 효과를 가진다.
도 1은 일반화 시킨 가중치 그래프를 도시한 도면이다.
도 2(a)는 화합물의 가중치 그래프를 도시한 도면이다. 도 2(b)는 소셜 관계의 가중치 그래프를 도시한 도면이다.
도 3(a) 및 도 3(b)는 화합물들의 가중치 그래프로 나타내고, 화합물들의 유사 여부를 판단하는 실 예를 도시한 도면이다.
도 4(a)는 그래프를 n차원 임베딩 벡터로 표현한 예를 도시한 것이다.
도 4(b)는 그래프의 각 노드를 임베딩 벡터로 표현한 예를 도시한 것이다.
도 4(c)는 전체 그래프를 임베딩 벡터로 표현한 예를 도시한 것이다.
도 5는 오토인코더의 아키텍처를 도시한 도면이다.
도 6은 LSTM(Long Short-Term Memory) 오토인코더의 아키텍처를 도시한 것이다.
도 7은 그래프의 구조가 다른 3개의 그래프를 도시한 도면이다.
도 8은 t-SNE를 이용한 제안 임베딩 벡터를 시각화한 그래프이다.
도 9(a)는 문자 인코딩을 적용하고, 노드-가중치 시퀀스로부터 훈련데이터를 생성하기 위하여 MSE, MSE 및 KLD 조합, MSE 및 CCE의 조합 중 하나를 사용한 경우 최종 임베딩 벡터를 결정하기 위해 평균, 절삭 평균, 최빈값을 사용한 precision at k에 대한 그래프를 도시한 것이다.
도 9(b)는 원-핫 인코딩을 적용하고, 노드-가중치 시퀀스로부터 훈련데이터를 생성하기 위하여 MSE, MSE 및 KLD 조합 중 하나를 사용한 경우 최종 임베딩 벡터를 결정하기 위해 평균, 절삭 평균, 최빈값을 사용한 precision at k에 대한 그래프를 도시한 것이다.
도 10(a)는 MSE 및 KLD 조합의 경우 '문자 인코딩과 원-핫 인코딩', '평균 및 절삭 평균'의 조합에 따른 precision at k에 대한 그래프를 도시한 것이다.
도 10(b)는 원-핫 인코딩으로 그래프의 노드-가중치 시퀀스를 결정하고, MSE 및 KLD 의 조합을 사용하여 노드-가중치 시퀀스로부터 훈련데이터를 결정한 경우에 평균, 절삭 평균, 최빈값 중 하나에 따른 precision at k과 기존에 연구된 graph2vec을 통한 precision at k에 대한 그래프를 도시한 것이다.
도 11(a) 및 도 11(b)는 본 발명에서 제안된 임베딩 방법으로 생성한 임베딩 벡터들을 시각화한 그래프이다.
도 12는 본 발명의 일 실시 예에 따른 그래프 유사 여부를 분석하기 위하여 기계학습을 이용한 전자 장치의 제어 방법의 흐름도를 도시한 것이다.
도 13(a) 및 도 13(b)는 일 실시 예에 따른 기계학습 모델을 훈련하는 방법의 흐름도를 도시한 것이다.
도 14(a) 및 도 14(b)는 일 실시 예에 따른 훈련된 기계학습 모델을 이용하는 방법의 흐름도를 도시한 것이다.
도 15(a)는 일부 실시예에 따른 데이터 학습부(1310)의 블록도이다.
도 15(b)는 일부 실시예에 따른 데이터 인식부(1320)의 블록도이다.
도 16는 일부 실시예에 따른 하나의 전자 장치에서 학습 및 인식하는 예를 나타낸 도면이다.
도 17은 일부 실시예에 따른 2개의 전자 장치에서 학습 및 인식하는 예를 나타낸 도면이다.
도 18 및 도 19는 일 실시예에 따른 전자장치(1000)의 블록도를 도시한 것이다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.
제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 벗어나지 않은 채, 제1구성 요소는 제2구성 요소로 명명될 수 있고 유사하게 제2구성 요소는 제1구성 요소로도 명명될 수 있다.
본 명세서에서 사용한 기술적 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로서, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 본 명세서에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 명세서에서 특별히 다른 의미로 정의되지 않는 한, 본 명세서에 개시된 기술이 속하는 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 나타낸다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않아야 한다.
이하에서 첨부된 도면을 참고하여, 본 발명은 그래프 유사 여부를 분석하기 위하여 기계학습을 이용한 전자 장치 및 그 제어 방법의 기계학습 모델(방법)에 대해서 설명한다.
1. 서 론
그래프는 여러 노드(node)들과 노드들 간의 간선으로 구성된 데이터이다. 최근 들어 그래프 데이터는 화학, 생물학, SNS 등 다양한 분야에서 활발히 사용되고 있다. 여러 노드들과 노드들 사이의 간선으로 구성된 그래프 중에서 노드들 사이의 간선에 가중치가 주어진 그래프를 가중치 그래프라 한다.
도 1은 일반화 시킨 가중치 그래프를 도시한 도면이다.
도 1를 참조하면, 가중치 그래프의 노드들은 A, B, C, D, E, F, G, H와 같이 표현될 수 있으며, A와 B 사이의 간선의 가중치는 3.12, A와 C 사이의 간선의 가중치는 4.96 등과 같이 표현될 수 있다.
도 2(a)는 화합물의 가중치 그래프를 도시한 도면이다. 도 2(b)는 소셜 관계의 가중치 그래프를 도시한 도면이다.
도 2(a)를 참조하면, 화합물의 가중치 그래프는 화합물을 구성하고 있는 원소 또는 분자 구조를 노드로 표현하고, 원소 또는 분자 구조 간 결합력을 가중치로 표현할 수 있다. 도 2(b)를 참조하면, 소셜 관계의 가중치 그래프는 구성원 또는 관심 대상을 노드로 표현하고 구성원 또는 관심 대상 간 관심도를 가중치로 표현할 수 있다.
특히, 화학정보학에서 유사한 화합물을 찾는 것은 매우 중요한 것으로 가중치 그래프를 이용하여 화합물의 유사성을 찾고자 하는 연구가 활발하게 진행 중에 있다.
도 3(a) 및 도 3(b)는 화합물들의 가중치 그래프로 나타내고, 화합물들의 유사 여부를 판단하는 실 예를 도시한 도면이다.
도 3(a)에 도시된 바와 같이, 2개의 화합물은 각각의 가중치 그래프의 A 부분과 B 부분의 유사성을 기반으로 2개의 화합물이 서로 유사한 것으로 판단할 수 있다. 도 3(b)에 도시된 바와 같이, 2개의 화합물은 각각의 가중치 그래프 상에서 A 부분과 C 부분과 같이 유사한 부분이 없기 때문에 2개의 화합물은 서로 유사하지 않은 것으로 판단할 수 있다.
그래프 임베딩(graph embedding)이란 주어진 그래프를 저차원 공간상의 벡터로 표현하는 것을 말한다. 즉, 그래프 임베딩이란 그래프가 가진 특징을 저차원 공간의 벡터로 표현하는 방법을 의미한다. 해당 벡터가 원 그래프의 특징을 잘 나타낼수록 좋은 임베딩이라 부른다. 그래프들이 벡터로 임베딩되고 나면 이들 벡터 간의 거리 등을 계산함으로써 유사한 그래프들을 탐색할 수 있다.
최근 들어 딥러닝 기술을 사용하여 그래프를 임베딩하는 연구가 진행되고 있다. 이들 연구는 다양한 딥러닝 모델을 사용하여 그래프들의 특징을 추출하고, 이 추출된 특징을 사용하여 각 그래프를 임베딩한다. 하지만 지금까지 딥러닝에 기반한 대부분의 그래프 임베딩 기법들은 그래프의 구조만을 고려하였으며, 각 간선에 가중치가 부여된 가중치 그래프(weighted graph)에 대한 임베딩 기법은 아직 많은 연구가 이루어지지 않았다. 즉, 기존 그래프 임베딩 기법은 노드와 노드 사이의 간선에 존재하는 가중치 정보를 고려하지 않는다.
본 발명에서 제안하는 그래프 임베딩 기법은 노드 간 간선에 존재하는 가중치 정보 정보를 포함하여 가중 임베딩 벡터를 생성한다.
가중치 그래프는 원소 간의 거리 또는 결합력이 주어진 화합물을 표현하거나, 사람 간의 친밀도가 주어진 소셜 네트워크 등을 표현할 때 사용된다. 하지만 지금까지 제안된 대부분의 그래프 임베딩 기법들은 간선에 주어진 가중치를 고려하지 않기 때문에 이들을 사용할 경우 가중치에 대한 정보가 모두 사라진다는 문제가 있다. 따라서 본 발명은 딥러닝 기술을 사용하여 가중치 그래프를 임베딩하는 새로운 기법을 제안한다.
본 발명에서 제안하는 임베딩 기법은 가중치 그래프들이 주어졌을 때, 각 가중치 그래프로부터 그 내부에 존재하는 노드-가중치 시퀀스(node-weight sequence)들을 추출한다. 이후 가중치 그래프들로부터 추출된 노드-가중치 시퀀스들을 모두 모아 이들을 훈련 데이터로 사용하여 LSTM 오토인코더(autoencoder)를 학습시킨다.
LSTM 오토인코더는 각 노드-가중치 시퀀스의 특징을 추출하는 역할을 한다. 학습이 끝나면 추출된 노드-가중치 시퀀스들 각각을 LSTM 오토인코더를 사용하여 고정된 차원의 벡터로 임베딩한다.
마지막으로 각 가중치 그래프에 대해 그로부터 추출된 노드-가중치 시퀀스들에 대한 임베딩 벡터들을 모두 모아 해당 가중치 그래프에 대한 최종 임베딩 벡터를 생성한다.
따라서 제안 기법으로 생성된 임베딩 벡터는 가중치에 대한 정보를 포함하고 있으며, 가중치 그래프 간 유사도 측정이나 유사 가중치 그래프 탐색 등에 활용될 수 있다.
실제 서로 다른 구조와 가중치를 가지는 그래프 데이터에 대한 실험을 통해, 제안 임베딩 기법이 실제 유사한 가중치 그래프를 탐색하는데 매우 효과적임을 확인하였다.
이하에서 2장에서는 기존 그래프 임베딩 연구들을 살펴보고, 3장에서는 본 발명에서 제안하는 가중치 그래프에 대한 임베딩 기법을 설명한다. 4장에서는 제안 임베딩 기법을 평가한 실험 결과를 보이며, 5장에서는 결론을 맺는다.
2. 관련 연구
그래프 임베딩에 대한 연구는 크게 그래프 커널(graph kernel) 기반 연구, 랜덤-워크(random-walk) 기반 연구, 딥러닝 기반 연구로 나눌 수 있다.
그래프 커널 기반 연구는 주어진 두 그래프 간의 유사도를 직접적으로 측정할 수 있는 측정 방법을 찾는 연구이며, 랜덤 워크 기반 연구는 그래프를 무작위로 돌아다니며 같은 노드에 도착할 확률을 기반으로 그래프 간의 유사도를 측정하는 방법에 대한 연구이다. 하지만 최근 들어 딥러닝 기술이 비약적으로 발전하면서 딥러닝 기반 연구가 크게 늘고 있다.
딥러닝 기술을 사용한 그래프 임베딩 연구는 크게 노드 임베딩(node embedding)과 전체 그래프 임베딩 (whole-graph embedding)으로 나뉜다.
노드 임베딩은 주어진 그래프 내의 각 노드를 임베딩하는 것이며, 전체 그래프 임베딩은 주어진 그래프 전체를 임베딩하는 것이다. 전자는 그래프 내에서 유사한 노드를 탐색하는 데 사용되며, 후자는 유사한 그래프를 탐색하는 데 사용된다. 본 발명에서는 이 중 전체 그래프 임베딩을 다룬다.
도 4(a)는 그래프를 n차원 임베딩 벡터로 표현한 예를 도시한 것이다. 도 4(b)는 그래프의 각 노드를 임베딩 벡터로 표현한 예를 도시한 것이다. 도 4(c)는 전체 그래프를 임베딩 벡터로 표현한 예를 도시한 것이다.
도 4(a)에 도시된 바와 같이, 그래프는 n차원의 임베딩 벡터로 표현될 수 있다. n차원의 임베딩 벡터는 숫자로 이뤄진 원소를 가지는 1차원의 행렬로 표현될 수 있다.
도 4(b)에 도시된 바와 같이, 노드 임베딩은 그래프의 노드들의 표현을 학습하는 것으로, 각 노드들의 특성을 추출하여 노드 별 n차원의 벡터로 표현할 수 있다. 이는 링크 예측(link prediction), 유사 노드 판별 등에 활용될 수 있다. 노드 별 임베딩 벡터로 나타낼 때 node2vec, struc2vex 등의 기법이 사용될 수 있다.
도 4(c)에 도시된 바와 같이, 전체 그래프 임베딩은 전체 그래프의 특성을 추출하여 하나의 n차원의 벡터로 표현할 수 있다. 이는 그래프(화합물) 탐색, 그래프 분류 등에 활용될 수 있다. 전체 그래프 임베딩 벡터로 나타낼 때 graph2vec, Taheri, A. (KDD, 2019) 등의 기법이 사용될 수 있다.
현재까지 딥러닝 기술을 사용하여 전체 그래프를 임베딩하는 연구에는 대표적으로 [1] graph2vec과 [2] Taheri가 있다.
[1]은 대표적 단어 임베딩 모델인 word2vec을 문서 임베딩에 적용한 doc2vec을 그래프에 적용한 것이다. 문서에서 여러 단어가 모여 구성되듯이, 그래프는 여러 서브 그래프를 모아 구성되는 것으로 볼 수 있다.
따라서 [1]은 우선 그래프들을 여러 서브 그래프들로 분리한다. 그 후 각 서브 그래프를 원-핫(one-hot) 벡터로 표현하고, 이를 훈련 데이터로 사용하여 스킵-그램(skip-gram) 아키텍처를 가진 모델을 훈련시킨다.
이 때 모델은 입력된 서브 그래프와 동일한 그래프에서 같이 나타나는 서브 그래프들의 발생 확률을 최대화하는 것을 목표로 훈련된다. 학습이 완료되면 각 그래프의 최종 임베딩 벡터는 훈련된 모델의 은닉층(hidden layer)의 값을 사용한다.
[2]는 그래프로부터 그 내부에 존재하는 노드 시퀀스들을 추출하고, 이들을 사용하여 순환신경망(recurrent neural network, RNN) 기반 오토인코더를 훈련시킨다. 각 그래프로부터 노드 시퀀스들을 추출할 때는 랜덤-워크, 모든 노드 간 최단 경로 알고리즘 등 여러 알고리즘을 사용할 수 있다.
오토인코더의 훈련이 끝나면 각 노드 시퀀스는 학습된 RNN 기반 오토인코더 모델의 은닉층의 값으로 임베딩된다. 각 그래프는 최종적으로 그에 포함된 노드 시퀀스들에 대한 임베딩 벡터들의 평균 벡터로 임베딩된다. 하지만 [2]는 그래프 내부에 존재하는 노드들의 시퀀스만을 고려하며, 따라서 간선에 존재하는 가중치 정보는 임베딩되지 않는다.
정리하면, 딥러닝 기반한 기존의 그래프 임베딩 연구는 대부분 그래프의 노드들 간의 연결 관계만을 추출하거나, 그래프에 존재하는 경로를 이용해 임베딩 벡터를 추출하는 등 그래프의 구조적 유사성을 연구하는데 그칠 뿐 가중치 그래프의 가중치 정보를 추출하여 연구하지 못하고 있다.
또한, 딥러닝을 사용하지 않는 연구는 추출할 대상에 대한 모든 것을 정의해 주어야 하며, 아직까지 가중치 그래프의 가중치 정보를 추출하여 연구를 진행하고 있지 못하다.
3. 제안하는 가중치 그래프 임베딩 기법
본 발명에서 제안하는 그래프 임베딩 기법은 가중치 그래프로부터 노드 간 간선에 존재하는 가중치 정보 및 가중치 그래프를 표현하는 임베딩 벡터를 생성한다.
대략적으로 본 발명에서 제안하는 임베딩 기법은 그래프 데이터로부터 노드-가중치 시퀀스를 추출하고, 모델을 학습하고 노드-가중치 시퀀스를 이용하여 임베딩 벡터를 결정하고, 최종 임베딩 벡터를 생성하는 과정을 포함한다.
이하에서 본 발명에서 제안하는 가중치 그래프에 대한 임베딩 기법을 단계적으로 설명한다.
3.1 노드-가중치 시퀀스 추출
주어진 가중치 그래프들을 G1, G2, ..., Gn이라 하자. 본 발명에서는 각 가중치 그래프 Gi에 대해 그의 임베딩 벡터 Vi를 출력하는 것을 목표로 한다. (i = 1, 2, ..., n)
먼저 본 발명에서 제안하는 방법은 각 가중치 그래프 Gi에 대해 그 내부에 존재하는 노드-가중치 시퀀스들을 추출한다. 특히 기존 연구와 달리 각 간선에 존재하는 가중치를 포함하는 시퀀스를 추출한다. 추출된 노드-가중치 시퀀스는 그래프의 내부 구조에 대한 노드 정보 및 가중치 정보를 포함할 수 있다.
이를 위해 본 발명에서는 너비 우선 탐색(breadth-first search, BFS) 알고리즘을 사용하여 노드-가중치 시퀀스를 추출한다.
Gi에 속한 노드들의 집합을 Ni 라 하자. 제안 방법은 모든 n(1) ∈ Ni에 대해 n(1)에서 시작하여 BFS 알고리즘으로 탐색된 노드-가중치 시퀀스를 추출한다.
다음은 이렇게 얻어진 한 노드-가중치 시퀀스의 형태이다.
<[n(1), n(2), w(1)], [n(2), n(3), w(2)], ..., [n(k-1), n(k), w(k-1)]>
여기서 n(1), n(2), ..., n(k)는 n(1)에서 시작하여 BFS 알고리즘을 통해 탐색된 노드들을 순서대로 나타내며, w(i)는 n(i) 과 n(i+1) 사이에 존재하는 간선의 가중치를 나타낸다.
도 1을 참조하여 노드-가중치 시퀀스 추출의 예를 설명한다.
A 노드를 기준으로 하는 노드-가중치 시퀀스는 [[A, B, 3.12], [A, C, 4.96], [A, D, 2.78], …, [D, H, 0.92]]으로 표현할 수 있다. B 노드를 기준으로 하는 노드-가중치 시퀀스는 [[B, A, 3.12], [B, C, 1.76], [B, D, 2.15], …, [D, H, 0.92]]으로 표현할 수 있다.
추출된 노드-가중치 시퀀스는 LSTM 학습 데이터로 변환하기 위하여 여러 방법을 사용할 수 있다. 예를 들어, 문자 인코딩(Character encoding), 원-핫 인코딩(One-hot encoding) 등의 방법이 사용될 수 있다.
문자 인코딩은 노드-가중치 시퀀스 내의 노드 'A'를 1로, 'B'를 2로, …, 'Z'를 26으로 인코딩 하는 방법이다. 예를 들어, ['A', 'E', 3.14]는 [1, 5, 3.14]로 표현될 수 있다.
원-핫 인코딩은 노드-가중치 시퀀스 내의 노드 'A'를 0번째 원소만 1이고 나머지는 0으로 이뤄지는 벡터이며, 'B'를 1번째 원소만 1이고 나머지는 0으로 이뤄지는 벡터이며, …, 'Z'를 25번째 원소만 1이고 나머지는 0으로 이뤄지는 벡터로 인코딩하는 방법이다. 예를 들어, ['A', 'C', 3.14]는 [[1, 0, 0, …, 0], [0, 0, 1, …, 0], [3.14]]으로 표현될 수 있다.
3.2 오토인코더 훈련 및 노드-가중치 시퀀스 임베딩
도 5는 오토인코더의 아키텍처를 도시한 도면이다.
도 5에 도시된 바와 같이, 오토인코더(Autoencoder)란 데이터의 숨겨진 구조를 학습하는 비지도 학습 모델로, 출력층(y1, y2, ?)과 입력층(x1, x2, ?)의 노드 개수가 동일하다. 오토인코더는 인코더와 디코더를 모두 포함하고 있으며 인코더의 입력층으로 입력된 값이 디코더의 출력층으로 출력된 값과 동일하도록 학습되며, 디코더의 입력 값인 인코더의 출력 값을 잠재변수 혹은 특징 값이라고 하며, 잠재변수 혹은 특징 값은 인코더에 입력된 값의 특질을 가지고 있다.
도 6은 LSTM(Long Short-Term Memory) 오토인코더의 아키텍처를 도시한 것이다.
도 6에 도시된 바와 같이, 추출된 노드-가중치 시퀀스 각각을 LSTM 오토인코더로 임베딩한다. 앞 단계에서 각 G1, G2, ..., Gn로부터 노드-가중치 시퀀스들이 얻어지면 이들 모두를 사용하여 도 6과 같은 아키텍처를 가진 LSTM 오토인코더를 훈련시킨다. 다만, 본 발명의 LSTM 오토인코더의 아키텍처는 도 6의 아키텍처에 한정될 것은 아니며, 다른 아키텍처의 오토인코더를 사용할 수 있다.
LSTM 오토인코더는 입력으로 하나의 시퀀스가 들어오면 이를 압축한 뒤 다시 원 시퀀스로 복원하는 구조를 가진 모델로서, 임의의 길이를 가진 시퀀스의 특징을 추출하는데 적합한 모델이다.
도 6에 도시된 바와 같이, 본 발명에서 사용한 LSTM 오토인코더는 각 원소가 [n(i), n(i+1), w(i)]의 3차원 형태인 임의의 길이의 시퀀스를 입력으로 받아 (최상단층, input_1) 이를 128차원 데이터로 만든 뒤(lstm_1) 다시 64차원 데이터로 압축한다(lstm_2). 이후 이를 다시 128차원 데이터로 만든 뒤(lstm_4) 원 시퀀스로 복원(최하단층, time_distributed_1)하는 구조를 가진다.
모든 노드-가중치 시퀀스들을 훈련 데이터로 사용하여 LSTM 오토인코더를 학습시키고 나면, 각 노드-가중치 시퀀스를 학습된 LSTM 오토인코더에 넣어 중간 은닉층에서 생성되는 64차원의 벡터로 해당 노드-가중치 시퀀스를 임베딩한다.
학습된 LSTM 오토인코더에 각 노드-가중치 시퀀스를 입력하여 LSTM 오코인코더의 중간 은닉층에서 생성되는 64차원 벡터로 표현되는 각 노드-가중치 시퀀스의 임베딩 벡터를 결정한다.
LSTM 오토인코더의 학습에 사용된 손실 함수는 평균 제곱 오차(mean squared error, MSE), 평균 제곱 오차와 KL Divergence (KLD)의 조합, 평균 제곱 오차와 범주형 교차 엔트로피(categorical cross entropy, CCE)의 조합 중 하나일 수 있다. KLD와 CCE는 참값과 예측값의 분포까지 고려하여 모델의 웨이트를 조절하는 방법이다.
MSE는 노드-가중치 시퀀스와 모델을 통해 예측한 노드-가중치 시퀀스의 오차의 제곱으로 아래의 수식 1과 같이 표현될 수 있다.
[수식 1]
Figure 112019123735577-pat00001
MSE와 KLD의 조합에서 KLD는 아래와의 수식 2와 같이 표현될 수 있다.
[수식 2]
Figure 112019123735577-pat00002
MSE와 CCE의 조합에서 CCE는 아래와의 수식 3와 같이 표현될 수 있다.
[수식 3]
Figure 112019123735577-pat00003
3.3 최종 임베딩 벡터 생성
LSTM 오토인코더를 통해 모든 노드-가중치 시퀀스들이 고정된 크기의 벡터로 임베딩되고 나면, 이들을 사용하여 각 그래프의 최종 임베딩 벡터를 생성한다.
어떤 가중치 그래프 Gi로부터 추출된 노드-가중치 시퀀스들을 s1, s2, ..., sk라 하고, 이들을 LSTM 오토인코더에 넣어 얻은 임베딩 벡터를 각각 v1, v2, ..., vk라 하자.
마지막 단계는 v1, v2, ..., vk를 사용하여 Gi의 최종 임베딩 벡터를 얻는 단계이다. v1, v2, ..., vk는 Gi의 특징을 나타내는 특징 값들로 볼 수 있으며, 이들을 결합하여 Gi의 최종 임베딩 벡터를 얻는 방법에는 여러 가지가 있을 수 있다.
예를 들어, 최종 임베딩 벡터를 생성하는 방법은 평균(average)을 이용한 최종 임베딩 벡터를 생성하는 방법, 최빈값(mode)을 이용한 최종 임베딩 벡터를 생성하는 방법, 절삭 평균(trimmed mean)을 이용한 최종 임베딩 벡터를 생성하는 방법을 포함할 수 있다.
이하에서 한 그래프에 대한 노드-가중치 시퀀스 임베딩 벡터들이 [1.64, 4.12, 3.1], [1.74, 4.12, 3.45], [1.84, 4.4, 3.65], [1.84, 4.31, 8.42]인 경우 각각의 방법에 따른 최종 임베딩 벡터를 생성하는 구체적인 예를 설명한다.
평균을 이용하는 경우 최종 임베딩 벡터는 1st = (1.64+1.74+1.84+1.84) / 4 = 1.765, 2nd = (4.12+4.12+4.4+4.31) / 4 = 4.2375, 3rd = (3.1+3.45+3.65+8.42) / 4 = 4.655와 같이 계산됨으로써 [1.765, 4.2375, 4.655] 일 수 있다.
최빈값을 이용하는 경우 최종 임베딩 벡터는 1st = 1.84, 2nd = 4.12, 3rd = 4.655와 같이 계산됨으로써 [1.84, 4.12, 4.655] 일 수 있다. 다만, 임베딩 벡터들의 최빈값이 없는 경우에는 임베딩 벡터들의 평균값을 최종 임베딩 벡터로 사용할 수 있다(예. 3rd = 4.655).
절삭 평균을 이용한 경우 최종 임베딩 벡터는 1st = (1.74+1.84) / 2 = 1.79, 2nd = (4.12+4.31) / 2 = 4.215, 3rd = (3.45+3.65) / 2 = 3.55와 같이 계산됨으로써 [1.79, 4.215, 3.55]일 수 있다.
바람직하게는 본 발명에서는 v1, v2, ..., vk의 값을 모두 가장 잘 표현하면서 이들을 가장 잘 대표할 수 있는 방법으로 v1, v2, ..., vk의 평균 벡터를 Gi의 최종 임베딩 벡터로 취한다. 즉, Gi의 임베딩 벡터 Vi는
Figure 112019123735577-pat00004
로 정의된다. 이 식을 통해 G1, G2, ..., Gn 각각에 대한 최종 임베딩 벡터 V1, V2, ..., Vn을 모두 구하면 모든 과정이 종료된다.
제안 그래프 임베딩 기법 과정을 정리하면, 1) 모든 그래프로부터 노드-가중치 시퀀스를 추출하고, 2) 추출된 노드-가중치 시퀀스를 훈련 데이터로 사용하여 LSTM 오토인코더를 학습하고, 3) 학습된 LSTM 오토인코더로 각 노드-가중치 시퀀스를 임베딩하고, 4) 각 그래프에 대해 각 그래프에서 추출된 노드-가중치 시퀀스의 임베딩 벡터를 사용하여 최종 임베딩 벡터를 생성한다.
4. 실험 결과
실험예 1
도 7은 그래프의 구조가 다른 3개의 그래프를 도시한 도면이다.
도 7을 참조하여 본 발명에서 제안하는 임베딩 기법의 성능을 실험을 통해 알아본다.
표 1와 같이, 제안 기법이 가중치 그래프가 유사할수록 더 유사한 임베딩 벡터를 생성하는지 알아보기 위해 서로 다른 3개의 대표 그래프 A, B, C를 정의하고 다음 6개의 유사 그래프 그룹을 직접 생성하였다.
[표 1]
Figure 112019123735577-pat00005
각 그룹은 100개의 서로 유사한 그래프로 이루어져 있으며, 그룹 내 각 그래프는 대표 그래프 A, B, C에 노드 삽입, 노드 삭제, 노드 수정, 가중치 수정을 임의로 가하여 생성되었다.
임베딩 기법의 성능은 6개의 그룹으로부터 각각 10개의 그래프를 임의로 추출하고, 나머지 전체 그래프들 중 해당 그래프와 임베딩 벡터 간 거리가 가장 가까운 k개의 그래프를 뽑아 그 중 실제 같은 그룹에 속한 그래프가 몇 %나 되는지를 나타내는 precision at k를 사용하였다. 여기서 임베딩 벡터 간 거리는 코사인(cosine) 거리를 사용하였다.
[표 2]
Figure 112019123735577-pat00006
표 2는 k를 10에서 50까지 증가시켜가며 실험한 결과를 나타낸다. 각 그룹에 대해서는 10개 그래프의 precision at k의 평균값을 취하였다.
도 8은 t-SNE를 이용한 제안 임베딩 벡터를 시각화한 그래프이다.
도 8을 참조하면, 6개 그룹 총 600개의 그래프를 제안 방법을 통해 모두 64차원의 벡터로 임베딩한 뒤, 이들을 t-SNE를 통해 2차원으로 차원 축소하여 2차원 공간에서 시각화한 결과이다. 시각화 결과를 살펴보면 6개 그룹으로 이루어진 원 그래프 데이터와 동일하게 임베딩 벡터 역시 6개의 그룹을 명확히 형성하고 있는 것을 확인할 수 있다.
실험예 2
도 7을 참조하여, 본 발명에서 제안하는 임베딩 기법의 성능을 실험을 통해 알아본다.
표 3과 같이, 본 발명의 제안 기법이 가중치 그래프가 유사할수록 더 유사한 임베딩 벡터를 생성하는지 알아보기 위해 서로 다른 3개의 대표 그래프 A, B, C를 정의하고 다음 6개의 유사 그래프 그룹을 직접 생성하였다. 표 3은 표1과 달리 가중치 범위가 매우 다른 그래프들의 가중치 범위가 50-150으로 표 1과 차이점을 가진다.
[표 3]
Figure 112019123735577-pat00007
6개의 그룹으로부터 각각 10개의 그래프를 임의로 추출하고, 나머지 전체 그래프들 중 해당 그래프와 임베딩 벡터 간 코사인 거리를 측정하였다. 그리고, precision at k를 이용하여 상위 k개의 그래프에 대해 해당 그래프와 같은 그룹에 속한 그래프가 몇개인지 확인한다. Precision이 높다는 것은 모델이 예측 성능이 좋음을 의미한다. Precision = TP / (TP + FP)으로 표현될 수 있다.
도 9(a)는 문자 인코딩을 적용하고, 노드-가중치 시퀀스로부터 훈련데이터를 생성하기 위하여 MSE, MSE 및 KLD 조합, MSE 및 CCE의 조합 중 하나를 사용한 경우 최종 임베딩 벡터를 결정하기 위해 평균, 절삭 평균, 최빈값을 사용한 precision at k에 대한 그래프를 도시한 것이다. 도 9(b)는 원-핫 인코딩을 적용하고, 노드-가중치 시퀀스로부터 훈련데이터를 생성하기 위하여 MSE, MSE 및 KLD 조합 중 하나를 사용한 경우 최종 임베딩 벡터를 결정하기 위해 평균, 절삭 평균, 최빈값을 사용한 precision at k에 대한 그래프를 도시한 것이다.
도 9(a)에 도시된 바와 같이, 문자 인코딩을 이용하면서 MSE, MSE+KLD, MSE+CCE를 이용하는 모든 경우에 대해 96% 이상의 precision at 값을 보이며, 특히 평균 및 절삭 평균의 경우 98% 이상의 precision at 값을 보인다.
도 9(b)에 도시된 바와 같이, 원-핫 인코딩을 이용하면서 MSE, MSE+KLD를 이용하는 모든 경우에 95% 이상의 precision at 값을 보이며, 특히 평균 및 절삭 평균의 경우 98% 이상의 precision at 값을 보인다.
도 10(a)는 MSE 및 KLD 조합의 경우 '문자 인코딩과 원-핫 인코딩', '평균 및 절삭 평균'의 조합에 따른 precision at k에 대한 그래프를 도시한 것이다. 도 10(b)는 원-핫 인코딩으로 그래프의 노드-가중치 시퀀스를 결정하고, MSE 및 KLD의 조합을 사용하여 노드-가중치 시퀀스로부터 훈련데이터를 결정한 경우에 평균, 절삭 평균, 최빈값 중 하나에 따른 precision at k과 기존에 연구된 graph2vec을 통한 precision at k에 대한 그래프를 도시한 것이다.
도 10(a)에 도시된 바와 같이, MSE 및 KLD를 이용한 손실 함수를 사용하는 경우 인코딩 방법 및 최종 임베딩의 방법에 따른 비교 그래프를 볼 수 있다.
도 10(b)에 도시된 바와 같이, 원-핫 인코딩, MSE 및 KLD의 손실함수에 따른 그래프 임베딩 방식과 graph2vec를 이용한 그래프 임베딩 방식의 precision at k 값을 비교한 그래프를 볼 수 있다.
도 11(a) 및 도 11(b)는 본 발명에서 제안된 임베딩 방법으로 생성한 임베딩 벡터들을 시각화한 그래프이다.
도 11(a)는 추출된 시퀀스를 학습데이터로 생성하는 과정에서 문자 인코딩을 이용하여 생성한 노드-가중치 시퀀스를 데이터로 이용하고, KLD 및 MSE의 조합에 기초한 손실 함수를 이용하여 학습한 모델로 임베딩 벡터를 시각화한 그래프이다.
도 11(b)는 추출된 시퀀스를 학습데이터로 생성하는 과정에서 원-핫 인코딩을 이용하여 생성한 노드-가중치 시퀀스를 데이터로 이용하고, KLD 및 MSE의 조합에 기초한 손실 함수를 이용하여 학습한 모델로 임베딩 벡터를 시각화한 그래프이다.
도 11(a) 및 도 11(b)에 도시된 바와 같이, 각 그래프에 대해 생성된 64차원 임베딩 벡터를 2차원 벡터로 차원 축소(t-SNE)함으로써 6개의 그룹이 분류된 것이 시각적으로 나타나며, 원 그래프 데이터가 6개의 그룹으로 나눠져 있는 것과 동일하게 t-SNE의 그래프에서도 각 그룹의 그래프들이 6개의 지점으로 그룹핑되어 나타나는 것을 볼 수 있다.
5. 결론
본 발명에서는 가중치 그래프를 LSTM 오토인코더를 사용하여 임베딩하는 새로운 기법을 제안하였다. 간선에 존재하는 가중치를 고려하지 않는 기존 연구와 달리 제안 방법은 그래프의 구조뿐만 아니라 가중치까지 고려하여 전체 그래프를 임베딩한다. 이를 위해 제안 방법은 각 그래프 내부에 존재하는 노드-가중치 시퀀스들을 추출하고, 이들을 LSTM 오토인코더를 사용하여 임베딩한 뒤, 이들을 결합하여 각 그래프의 최종 임베딩 벡터를 생성한다. 실험 결과를 통해 제안 방법이 실제로 유사한 가중치 그래프에 대해 더 유사한 임베딩 벡터를 생성함을 확인하였다.
도 12는 본 발명의 일 실시 예에 따른 그래프 유사 여부를 분석하기 위하여 기계학습을 이용한 전자 장치의 제어 방법의 흐름도를 도시한 것이다. 도 13(a) 및 도 13(b)는 일 실시 예에 따른 기계학습 모델을 훈련하는 방법의 흐름도를 도시한 것이다. 도 14(a) 및 도 14(b)는 일 실시 예에 따른 훈련된 기계학습 모델을 이용하는 방법의 흐름도를 도시한 것이다.
이하 설명의 편의를 위하여 '일 실시 예에 따른 그래프 유사 여부를 분석하기 위하여 기계학습을 이용한 전자 장치의 제어 방법'을 '일 실시 예에 따른 제어 방법'이라 줄여 지칭한다.
도 12에 도시된 바와 같이, 본 발명의 일 실시 예에 따른 제어 방법은, 기계학습 모델을 훈련하는 과정(S200), 학습된 기계학습 모델을 이용하여 그래프를 인식하는 과정(S400) 중 적어도 하나를 포함할 수 있다.
기계학습 모델을 훈련시키는 행위는 기계학습 모델을 학습시킨다고도 하며, 이하에서 훈련과 학습의 용어는 서로 병용하여 사용될 수 있다.
이하에서 도 13(a)을 참조하여, 본 발명의 일 실시 예에 따른 기계학습 모델을 훈련하는 방법을 설명한다.
도 13(a)에 도시된 바와 같이, 과정 S200은 데이터를 획득하는 과정(S210), 데이터를 전처리하는 과정(S230), 학습데이터를 선택하는 과정(S250), 모델을 학습하는 과정(S270), 모델을 평가하는 과정(S290) 중 적어도 하나를 포함할 수 있다.
과정 S210은 모델을 학습하기 위한 데이터를 획득하는 과정이다. 데이터는 그래프 데이터를 포함할 수 있으며, 그래프 데이터는 복수의 노드와 복수의 노드들을 서로 연결하는 간선과 간선에 부여된 가중치를 포함하는 가중치 그래프일 수 있다. 가중치 그래프의 예는 도 1 내지 도 2(b)에 도시되어 있다.
과정 S230은 데이터를 모델에 학습시킬 수 있는 형태로 가공하는 전처리 과정이다. 가중치 그래프는 복수의 노드들과 노드들 사이의 간선에 부여된 가중치를 포함할 수 있다. 가중치 그래프 데이터는 복수의 노드들의 값과 노드들 사이의 간선에 부여된 가중치 값을 포함할 수 있다.
하나의 가중치 그래프 데이터로부터 노드 및 노드들 사이의 가중치를 포함하는 노드-가중치 시퀀스를 추출할 수 있다. 노드-가중치 시퀀스는 특정한 하나의 노드를 기준으로 노드-시퀀스 정보를 포함할 수 있다.
도 1를 참조하면, 하나의 가중치 그래프에서 A 노드를 기준으로 노드-시퀀스 정보를 추출할 수 있으며, B 노드를 기준으로 노드-가중치 시퀀스 정보를 추출할 수 있으며, C 노드부터 H 노드까지 반복하여 각 노드의 노드-가중치 시퀀스 정보를 추출할 수 있다. 일 예로, A 노드를 기준으로 하는 노드-가중치 시퀀스는 [[A, B, 3.12], [A, C, 4.96], [A, D, 2.78], …, [D, H, 0.92]]으로 표현될 수 있다.
노드-가중치 시퀀스는 문자 인코딩 혹은 원-핫 인코딩 등의 인코딩 방식을 적용하여 노드의 문자 정보를 컴퓨터가 이해할 수 있는 정보로 변환할 수 있다.
위의 과정을 통해서 하나의 가중치 그래프로부터 각 노드를 기준으로 추출된 복수개의 노드-가중치 시퀀스들이 생성되며, 복수개의 가중치 그래프들로부터 노드-가중치 시퀀스들이 생성된다.
예를 들어, 도 13(b)에 도시된 바와 같이, 제1 가중치 그래프로부터 제1 가중치 그래프를 구성하는 각 노드에 대한 노드-가중치 시퀀스들을 획득하고(S310), 제2 가중치 그래프로부터 제2 가중치 그래프를 구성하는 각 노드에 대한 노드-가중치 시퀀스들을 획득할 수 있다(S330). 이후 다른 가중치 그래프들의 각 노드에 대한 노드-가중치 시퀀스를 획득할 수 있다.
과정 S250은 모델에 학습시킬 학습 데이터를 선택하는 과정이다. 복수개의 가중치 그래프들은 모두 학습 데이터로 사용되지 않고, 대략 70% 정도의 복수개의 가중치 그래프들만이 학습 데이터로 사용된다.
과정 S270은 모델을 학습시키는 과정이다. 도 5 및 도 6을 참조하면, 가중치 그래프의 각 노드에 대한 노드-가중치 시퀀스들을 사용하여 오토인코더를 훈련시킨다. 학습 데이터로 선정된 복수의 가중치 그래프들을 모두 오토인코더에 훈련시킨다.
오토인코더란 인코더의 입력 값과 동일한 값이 디코더를 통해서 출력되도록 학습시키는 비지도 학습 모델의 하나로, 학습된 오토인코더에 노드-가중치 시퀀스를 입력하면 인코더를 통해서 출력된 잠재 변수는 입력된 노드-가중치 시퀀스의 특징을 반영한 값이 된다. 인코더를 통해서 출력된 잠재 변수는 각 노드-가중치 시퀀스의 임베딩 벡터라고 정의한다.
오토인코더 모델을 학습시키기 위하여 사용되는 손실함수는 MSE, KLD, CCE 중 하나 또는 적어도 2개의 조합일 수 있다. 본 발명의 오토인코더는 LSTM 오토인코더의 아키텍처를 가질 수 있으나, 본 발명의 오토인코더는 다른 아키텍처를 가질 수도 있다.
예를 들면, 도 13(b)에 도시된 바와 같이, 제1 가중치 그래프를 구성하는 각 노드에 대한 노드-가중치 시퀀스들을 오토인코더 모델에 학습시키고, 제2 가중치 그래프를 구성하는 각 노드에 대한 노드-가중치 시퀀스들을 오토인코더 모델에 학습시킬 수 있다(S350). 이후 다른 가중치 그래프에 대한 각 노드의 노드-가중치 시퀀스들을 오토인코더 모델에 학습시킬 수 있다. 오코인코더 모델에 학습시키는 노드-가중치 시퀀스들의 수가 크면 클수록 모델은 가중치 그래프들의 유사 여부를 잘 판단할 수 있다.
과정 S290은 모델을 평가하는 과정이다. 훈련된 LSTM 오토인코더 모델이 잘 작동하는지 확인하기 위한 과정이다.
표 1과 같이 유사한 모양의 그래프를 가지고, 가중치 범위가 작은 그룹과 가중치 범위가 큰 그룹으로 나뉜 평가 데이터를 생성할 수 있다. 위와 같은 그룹들을 통하여 그래프의 모양이 다른 경우 훈련된 LSTM 오토인코더 모델이 잘 작동하는지 확인할 수 있다. 나아가, 그래프의 모양이 같더라도 가중치의 범위가 다른 경우 훈련된 LSTM 오토인코더 모델이 잘 작동하는지 확인할 수 있다.
LSTM 오토인코더 모델이 잘 작동한다면, 동일 그룹에 속하는 가중치 그래프의 최종 임베딩 벡터들 간의 거리는 해당 그룹 및 다른 그룹에 속하는 가중치 그래프의 최종 임베딩 벡터들 간이 거리 보다 짧게 나올 것이다. 도 8 내지 도 11(b)에 도시된 바와 같이, LSTM 오토인코더 모델이 잘 작동함을 확인할 수 있다.
이하에서 도 14(a)를 참조하여, 본 발명의 일 실시 예에 따른 기계학습 모델을 사용하는 방법을 설명한다.
기계학습 모델을 사용하는 방법이란 학습된 모델을 사용하여 모델에 입력된 데이터를 분석, 분류 등을 수행하여, 입력된 데이터들 사이의 유사 여부 등을 인식하여 사용자에게 제공하는 것을 의미한다.
도 14(a)에 도시된 바와 같이, 과정 S400은 데이터를 획득하는 과정(410), 데이터를 전처리하는 과정(S430), 인식 데이터를 선택하는 과정(S450), 인식 결과를 제공하는 과정(S470), 모델을 갱신하는 과정(S490) 중 적어도 하나를 포함할 수 있다.
과정 S410 및 과정 S430은 각각 과정 S210 및 S430과 동일하므로 자세한 설명은 생략한다. 도 14(b)에 도시된 바와 같이, 제1 가중치 그래프로부터 제1 가중치 그래프를 구성하는 각 노드에 대한 노드-가중치 시퀀스들을 획득하고(S510), 제2 가중치 그래프로부터 제2 가중치 그래프를 구성하는 각 노드에 대한 노드-가중치 시퀀스들을 획득할 수 있다(S530). 이후 다른 가중치 그래프들의 각 노드에 대한 노드-가중치 시퀀스를 획득할 수 있다.
과정 S450은 인식 데이터를 선택하는 과정이다. 복수개의 가중치 그래프들은 모두 인식 데이터로 사용될 수 있으며, 또는 학습 데이터에 사용되지 않은 복수개의 가중치 그래프들만이 인식 데이터로 사용될 수 있다.
과정 S470은 인식 결과를 제공하는 과정이다. 훈련된 모델을 이용하여 적어도 2개의 가중치 그래프들의 유사 여부에 대한 인식 결과를 제공할 수 있다.
훈련된 모델에 인식 데이터를 입력하여 인식 데이터의 특징을 추출할 수 있다. 구체적으로 가중치 그래프들을 분류하거나 가중치 그래프들의 유사 여부를 판단하기 위하여 각각의 가중치 그래프들 훈련된 LSTM 오토인코더 모델에 입력한다.
하나의 가중치 그래프에 대한 각각의 노드의 노드-가중치 시퀀스를 훈련된 LSTM 오토인코더 모델에 입력하여 각각의 노드에 대한 임베딩 벡터를 추출한다. 이를 통해서, 하나의 가중치 그래프에 대한 각각의 노드에 대한 임베딩 벡터를 추출한다.
이후 하나의 가중치 그래프에 대한 각각의 노드에 대한 임베딩 벡터들에 기초하여 최종 임베딩 벡터를 결정한다. 하나의 가중치 그래프에 대한 최종 임베딩 벡터를 결정하는 방법은 각 노들에 대한 임베딩 벡터들에 대해 평균, 최빈값, 절삭 평균 중 하나를 이용할 수 있다.
이후 동일한 과정을 반복하여 다른 가중치 그래프들에 대한 각각의 최종 임베딩 벡터를 결정한다.
예를 들어, 도 14(b)에 도시된 바와 같이, 제1 가중치 그래프로부터 각 노드에 대한 임베딩 벡터 및 제1 가중치 그래프의 최종 임베딩 벡터를 획득하고(S550), 제2 가중치 그래프로부터 각 노드에 대한 임베딩 벡터 및 제2 가중치 그래프의 최종 임베딩 벡터를 획득한다(S570). 다른 가중치 그래프에 대해서도 각 노드에 대한 임베딩 벡터 및 최종 임베딩 벡터를 획득할 수 있다.
가중치 그래프에 대한 최종 임베딩 벡터들 사이 거리를 이용하여 가중치 그래프들 간 유사 여부를 결정한다. 예를 들어 제1 및 제2 가중치 그래프의 최종 임베딩 벡터들 사이의 거리가 제1 및 제3 가중치 그래프의 최종 임베딩 벡터들 사이의 거리보다 가깝다면, 제3 가중치 그래프 보다 제2 가중치 그래프가 제1 가중치 그래프에 더 유사한 것으로 판단할 수 있다.
예를 들어, 도 14(b)에 도시된 바와 같이, 제1 및 제2 가중치 그래프의 최종 임베딩 벡터들을 이용하여 제1 및 제2 가중치 그래프들의 유사 여부를 판단할 수 있다. 최종 임베딩 벡터는 노드들의 정보 뿐만 아니라 노드 사이의 가중치 정보를 포함하고 있으므로, 가중치 그래프들의 유사 여부에 대한 판단을 할 수 있다.
과정 S490은 모델을 갱신하는 과정이다. 인식 데이터로 사용된 가중치 그래프들을 이용하여 학습된 LSTM 오토인코더를 재 학습시켜서 LSTM 오토인코더를 갱신할 수 있다.
도 15(a)는 일부 실시예에 따른 데이터 학습부(1310)의 블록도이다. 도 15(b)는 일부 실시예에 따른 데이터 인식부(1320)의 블록도이다.
도 15(a)를 참조하면, 일부 실시예에 따른 데이터 학습부(1310)는 데이터 획득부(1310-1), 전처리부(1310-2), 학습 데이터 선택부(1310-3), 모델 학습부(1310-4) 및 모델 평가부(1310-5) 중 적어도 하나를 포함할 수 있다. 데이터 획득부(1310-1), 전처리부(1310-2), 학습 데이터 선택부(1310-3), 모델 학습부(1310-4) 및 모델 평가부(1310-5)은 도 13(a)의 과정 S210, S230, S250, S270, S290을 각각 수행할 수 있다.
도 15(b)를 참조하면, 일부 실시예에 따른 데이터 인식부(1320)는 데이터 획득부(1320-1), 전처리부(1320-2), 인식 데이터 선택부(1320-3), 인식 결과 제공부(1320-4) 및 모델 갱신부(1320-5) 중 적어도 하나를 포함할 수 있다. 데이터 획득부(1320-1), 전처리부(1320-2), 인식 데이터 선택부(1320-3), 인식 결과 제공부(1320-4) 및 모델 갱신부(1320-5)는 도 14의 과정 S410, S430, S450, S470, S490을 각각 수행할 수 있다.
데이터 학습부(1310) 및 데이터 인식부(1320) 중 적어도 하나는, 적어도 하나의 하드웨어 칩 형태로 제작되어 전자 장치에 탑재될 수 있다. 예를 들어, 데이터 학습부(1310) 및 데이터 인식부(1320) 중 적어도 하나는 인공 지능(AI; artificial intelligence)을 위한 전용 하드웨어 칩 형태로 제작될 수도 있고, 또는 기존의 범용 프로세서(예: CPU 또는 application processor) 또는 그래픽 전용 프로세서(예: GPU)의 일부로 제작되어 전술한 각종 전자 장치에 탑재될 수도 있다.
한편, 데이터 학습부(1310) 및 데이터 인식부(1320) 중 적어도 하나는 소프트웨어 모듈로 구현될 수 있다. 데이터 학습부(1310) 및 데이터 인식부(1320) 중 적어도 하나가 소프트웨어 모듈(또는, 인스터력션(instruction) 포함하는 프로그램 모듈)로 구현되는 경우, 소프트웨어 모듈은 컴퓨터로 읽을 수 있는 판독 가능한 비일시적 판독 가능 기록매체(non-transitory computer readable media)에 저장될 수 있다. 또한, 이 경우, 적어도 하나의 소프트웨어 모듈은 OS(Operating System)에 의해 제공되거나, 소정의 애플리케이션에 의해 제공될 수 있다. 또는, 적어도 하나의 소프트웨어 모듈 중 일부는 OS(Operating System)에 의해 제공되고, 나머지 일부는 소정의 애플리케이션에 의해 제공될 수 있다.
도 16는 일부 실시예에 따른 하나의 전자 장치에서 학습 및 인식하는 예를 나타낸 도면이다.
도 16을 참조하면, 데이터 학습부(1310) 및 데이터 인식부(1320)는 하나의 전자 장치에 탑재될 수도 있다. 일부 실시예에 따른 프로세서(1300)는 데이터 학습부(1310) 및 데이터 인식부(1320)를 포함할 수 있다.
도 17은 일부 실시예에 따른 2개의 전자 장치에서 학습 및 인식하는 예를 나타낸 도면이다.
데이터 학습부(1310) 및 데이터 인식부(1320)는 별개의 전자 장치들에 각각 탑재될 수도 있다. 예를 들어, 데이터 학습부(1310) 및 데이터 인식부(1320) 중 하나는 디바이스(2000)의 프로세서에 의해서 수행되고, 나머지 하나는 서버(3000)의 프로세서에 의해서 수행될 수 있다.
또한, 데이터 학습부(1310) 및 데이터 인식부(1320)는 유선 또는 무선으로 통하여, 데이터 학습부(1310)가 구축한 모델 정보를 데이터 인식부(1320)로 제공할 수도 있고, 데이터 인식부(1320)로 입력된 데이터가 추가 학습 데이터로서 데이터 학습부(1310)로 제공될 수도 있다.
이 경우, 서버(3000)의 데이터 학습부(3310)는 전술한 데이터 학습부(1310)의 기능을 수행할 수 있다. 서버(3000)의 데이터 학습부(3310)의 각 구성요소들은 전술한 데이터 학습부(1310)의 각 구성요소들의 기능을 수행할 수 있다. 또한, 디바이스(2000)의 데이터 인식부(2320)는 전술한 데이터 인식부(1320)의 기능을 수행할 수 있다. 디바이스(2000)의 데이터 인식부(2320)의 각 구성요소들은 전술한 데이터 인식부(1320)의 각 구성요소들의 기능을 수행할 수 있다.
도 18 및 도 19는 일 실시예에 따른 전자장치(1000)의 블록도를 도시한 것이다.
상술한 디바이스(2000) 및 서버(3000)는 후술할 전자장치(1000)의 일 예로서 전자장치(1000)의 구성요소 중 적어도 일부를 포함할 수 있다.
일 실시예에 따른 전자 장치(1000)는, 단말기, 디바이스, 전자기기, 서버, 스마트폰, 태블릿 PC, PC, 스마트 TV, 휴대폰, PDA(personal digital assistant), 랩톱, 미디어 플레이어, 마이크로 서버, GPS(global positioning system) 장치, 전자책 단말기, 디지털방송용 단말기, 네비게이션, 키오스크, MP3 플레이어, 디지털 카메라, 가전기기 및 기타 컴퓨팅 장치 중 하나일 수 있다. 또한, 전자 장치는 디스플레이 기능 및 데이터 프로세싱 기능을 구비한 시계, 안경, 헤어 밴드 및 반지 등의 웨어러블 디바이스일 수 있다. 그러나, 이에 한정되지 않으며, 전자 장치(1000)는 데이터를 처리하고, 처리된 데이터를 제공할 수 있는 모든 종류의 기기를 포함할 수 있다.
도 18에 도시된 바와 같이, 일 실시 예에 따른 전자 장치(1000)는 메모리(1100), 출력부(1200), 통신부(1500) 및 프로세서(1300)를 포함할 수 있다. 그러나, 도시된 구성 요소 모두가 전자 장치(1000)의 필수 구성 요소인 것은 아니며, 보다 많은 구성 요소에 의해 전자 장치(1000)가 구현될 수도 있고, 보다 적은 구성 요소에 의해 전자 장치(1000)가 구현될 수도 있다.
예를 들어, 도 19에 도시된 바와 같이, 일 실시 예에 따른 전자 장치(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. 가중치 그래프들로부터 각각의 가중치 그래프의 각각의 노드에 대한 노드-가중치 시퀀스들을 획득하는 과정;
    상기 각각의 노드에 대한 노드-가중치 시퀀스들을 학습된 오토인코더 모델의 입력으로 하여 상기 각각의 노드에 대한 임베딩 벡터들을 획득하는 과정;
    상기 각각의 노드에 대한 임베딩 벡터들을 이용하여 상기 각각의 가중치 그래프의 최종 임베딩 벡터들을 획득하는 과정; 및
    상기 각각의 가중치 그래프를 분류함으로서 상기 가중치 그래프들의 유사 여부를 판단하는 과정을 포함하며,
    상기 각각의 가중치 그래프는 복수개의 노드들과 노드들 사이를 연결하는 간선에 부여된 가중치 정보를 포함하는,
    그래프 유사 여부를 분석하기 위하여 기계학습을 이용한 제어 방법.
  2. 가중치 그래프들로부터 각각의 가중치 그래프의 각각의 노드에 대한 노드-가중치 시퀀스들을 획득하는 과정; 및
    상기 각각의 노드에 대한 노드-가중치 시퀀스들을 이용하여 오토인코더 모델을 학습시키는 과정을 포함하며,
    상기 각각의 가중치 그래프는 복수개의 노드들과 노드들 사이를 연결하는 간선에 부여된 가중치 정보를 포함하는,
    그래프 유사 여부를 분석하기 위하여 기계학습을 이용한 제어 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 노드-가중치 시퀀스는 간선으로 연결된 2개의 노드들의 정보 및 간선에 부여된 가중치에 대한 정보로 이뤄진 구성요소들을 포함하는,
    그래프 유사 여부를 분석하기 위하여 기계학습을 이용한 제어 방법.
  4. 제1항 또는 제2항에 있어서,
    상기 오토인코더 모델은 LSTM 오토인코더인 것을 특징으로 하는,
    그래프 유사 여부를 분석하기 위하여 기계학습을 이용한 제어 방법.
  5. 가중치 그래프들에 대한 정보 및 학습된 오토인코더 모델에 대한 정보를 저장한 메모리;
    상기 메모리를 제어하는 제어부를 포함하며, 상기 제어부는,
    상기 가중치 그래프들로부터 각각의 가중치 그래프의 각각의 노드에 대한 노드-가중치 시퀀스들을 획득하고,
    상기 각각의 노드에 대한 노드-가중치 시퀀스들을 상기 학습된 오토인코더 모델의 입력으로 하여 상기 각각의 노드에 대한 임베딩 벡터들을 획득하고,
    상기 각각의 노드에 대한 임베딩 벡터들을 이용하여 상기 각각의 가중치 그래프의 최종 임베딩 벡터들을 획득하고,
    상기 각각의 가중치 그래프를 분류함으로서 상기 가중치 그래프들의 유사 여부를 판단하도록 제어하며,
    상기 각각의 가중치 그래프는 복수개의 노드들과 노드들 사이를 연결하는 간선에 부여된 가중치 정보를 포함하는,
    그래프 유사 여부를 분석하기 위하여 기계학습을 이용한 전자 장치.
  6. 가중치 그래프들에 대한 정보를 저장한 메모리;
    상기 메모리를 제어하는 제어부를 포함하며, 상기 제어부는,
    상기 가중치 그래프들로부터 각각의 가중치 그래프의 각각의 노드에 대한 노드-가중치 시퀀스들을 획득하고,
    상기 각각의 노드에 대한 노드-가중치 시퀀스들을 이용하여 오토인코더 모델을 학습시키도록 제어하며,
    상기 각각의 가중치 그래프는 복수개의 노드들과 노드들 사이를 연결하는 간선에 부여된 가중치 정보를 포함하는,
    그래프 유사 여부를 분석하기 위하여 기계학습을 이용한 전자 장치.
  7. 제5항 또는 제6항에 있어서,
    상기 노드-가중치 시퀀스는 간선으로 연결된 2개의 노드들의 정보 및 간선에 부여된 가중치에 대한 정보로 이뤄진 구성요소들을 포함하는,
    그래프 유사 여부를 분석하기 위하여 기계학습을 이용한 전자 장치.
  8. 제5항 또는 제6항에 있어서,
    상기 오토인코더 모델은 LSTM 오토인코더인 것을 특징으로 하는,
    그래프 유사 여부를 분석하기 위하여 기계학습을 이용한 전자 장치.
KR1020190157373A 2019-11-29 2019-11-29 그래프 유사 여부를 분석하기 위하여 기계학습을 이용한 전자 장치 및 그 제어 방법 KR102337678B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020190157373A KR102337678B1 (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
KR1020190157373A KR102337678B1 (ko) 2019-11-29 2019-11-29 그래프 유사 여부를 분석하기 위하여 기계학습을 이용한 전자 장치 및 그 제어 방법

Publications (2)

Publication Number Publication Date
KR20210067592A KR20210067592A (ko) 2021-06-08
KR102337678B1 true KR102337678B1 (ko) 2021-12-08

Family

ID=76399364

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190157373A KR102337678B1 (ko) 2019-11-29 2019-11-29 그래프 유사 여부를 분석하기 위하여 기계학습을 이용한 전자 장치 및 그 제어 방법

Country Status (1)

Country Link
KR (1) KR102337678B1 (ko)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101218795B1 (ko) 2011-02-21 2013-01-09 경희대학교 산학협력단 그래프 분류를 위한 유사한 그래프 구조를 이용한 특징 선택 방법 및 장치
KR102198265B1 (ko) * 2018-03-09 2021-01-04 강원대학교 산학협력단 신경망을 이용한 사용자 의도분석 시스템 및 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Shima Khoshraftar etc. et al., Dynamic Graph Embedding via LSTM History Tracking (2019.11.05.)*

Also Published As

Publication number Publication date
KR20210067592A (ko) 2021-06-08

Similar Documents

Publication Publication Date Title
KR102428920B1 (ko) 전자 장치 및 그 동작 방법
KR102252081B1 (ko) 이미지 특성의 획득
US11810435B2 (en) System and method for audio event detection in surveillance systems
KR102473447B1 (ko) 인공지능 모델을 이용하여 사용자 음성을 변조하기 위한 전자 장치 및 이의 제어 방법
KR102281590B1 (ko) 음성인식 성능 향상을 위한 비 지도 가중치 적용 학습 시스템 및 방법, 그리고 기록 매체
WO2018079020A1 (ja) 情報処理装置および情報処理方法
US11954150B2 (en) Electronic device and method for controlling the electronic device thereof
KR102548732B1 (ko) 신경망 학습 방법 및 이를 적용한 장치
JP5214760B2 (ja) 学習装置、方法及びプログラム
KR20180055708A (ko) 이미지를 처리하는 전자 장치 및 방법
KR20190034021A (ko) 객체를 인식하는 방법 및 장치
WO2018203555A1 (ja) 信号検索装置、方法、及びプログラム
US11423884B2 (en) Device with convolutional neural network for acquiring multiple intent words, and method thereof
US11825278B2 (en) Device and method for auto audio and video focusing
KR102628042B1 (ko) 연락처 정보를 추천하는 방법 및 디바이스
KR20190056940A (ko) 멀티모달 데이터 학습 방법 및 장치
US10916240B2 (en) Mobile terminal and method of operating the same
KR20190053481A (ko) 사용자 관심 정보 생성 장치 및 그 방법
CN112052816A (zh) 基于自适应图卷积对抗网络的人体行为预测方法及系统
Ntalampiras et al. An incremental learning mechanism for human activity recognition
US10917721B1 (en) Device and method of performing automatic audio focusing on multiple objects
Devi et al. Dive in Deep Learning: Computer Vision, Natural Language Processing, and Signal Processing
KR20190031786A (ko) 전자 장치 및 이의 피드백 정보 획득 방법
KR102337678B1 (ko) 그래프 유사 여부를 분석하기 위하여 기계학습을 이용한 전자 장치 및 그 제어 방법
CN111797849A (zh) 用户活动识别方法、装置、存储介质及电子设备

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant