KR20210134566A - 메모리 네트워크 장치 및 이를 이용한 추론 방법 - Google Patents

메모리 네트워크 장치 및 이를 이용한 추론 방법 Download PDF

Info

Publication number
KR20210134566A
KR20210134566A KR1020210148527A KR20210148527A KR20210134566A KR 20210134566 A KR20210134566 A KR 20210134566A KR 1020210148527 A KR1020210148527 A KR 1020210148527A KR 20210148527 A KR20210148527 A KR 20210148527A KR 20210134566 A KR20210134566 A KR 20210134566A
Authority
KR
South Korea
Prior art keywords
embedding
memory
context information
inference
unit
Prior art date
Application number
KR1020210148527A
Other languages
English (en)
Other versions
KR102346535B1 (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 KR1020210148527A priority Critical patent/KR102346535B1/ko
Publication of KR20210134566A publication Critical patent/KR20210134566A/ko
Application granted granted Critical
Publication of KR102346535B1 publication Critical patent/KR102346535B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/216Parsing using statistical methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • General Physics & Mathematics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Probability & Statistics with Applications (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Machine Translation (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

일 실시예에 따른 메모리 네트워크 장치는 임베딩 행렬을 저장하는 임베딩용 메모리부와, 소정의 기준에 따라 선별된 문맥 정보에 대한 내부 표현을 저장하는 임베딩용 캐시부와, 상기 저장된 내부 표현에 소정의 문맥 정보에 대한 내부 표현이 포함되어 있으면 상기 포함되어 있는 내부 표현을 추론용 표현으로 변환하고, 포함되어 있지 않으면 상기 임베딩 행렬로부터 상기 소정의 문맥 정보에 대한 내부 표현을 도출한 뒤 상기 도출된 내부 표현을 추론용 표현으로 변환하는 임베딩용 연산부를 포함한다.

Description

메모리 네트워크 장치 및 이를 이용한 추론 방법 {MEMORY NETWORK APPARATUS AND DEDUCING METHOD USING THE SAME}
본 발명은 메모리 네트워크 장치 및 이를 이용한 추론 방법에 관한 것이다.
인공 신경망이란 데이터를 통해 문제를 푸는 방법을 스스로 학습하는 머신 러닝 기술을 가리킨다. 인공 신경망은 이미지 인식이나 사물 추적 등과 같은 영상 분석 등에서 사람과 비견할 만한 정확성을 보여주고 있다.
이러한 인공 신경망 중 하나인 메모리 네트워크는 문맥을 파악하여 결과를 도출할 수 있는, 즉 추론 능력을 갖는 기술을 지칭한다. 메모리 네트워크는 추천 시스템이나 인공지능 비서 등 다양한 인공지능 기반 시스템의 중추 역할을 할 것으로 기대받고 있다.
이러한 메모리 네트워크는 기존의 인공 신경망과는 달리, 이전에 처리한 연산에 대한 경험을 누적시켜서 활용할 수 있다. 즉, 기존의 인공 신경망은 현재 학습된 지식을 기반으로 작업을 수행할 뿐 과거에 스스로가 처리한 경험들을 작업에 활용하지 않는다. 반면, 메모리 네트워크는 과거에 처리한 경험을 사용하여서 작업을 수행할 수 있다. 따라서, 메모리 네트워크는 예컨대 영화나 책을 분석하여 주어진 질문에 대해 답을 할 수 있으며 또한 사용자와 질의응답을 주고 받을 수도 있다.
한국등록특허공보, 10-1334196호 (2013.11.22. 등록)
기존의 메모리 네트워크에서는 임베딩 과정과 추론 과정이 동일한 메모리 시스템을 동시에 사용하면서 수행될 수 있는데, 이 경우 간섭이 발생할 수 있다. 이에, 이러한 간섭을 개선 내지 해결하는 것이 본 발명의 해결하고자 하는 과제에 포함될 수 있다.
또한, 임베딩 과정에서는 임베딩 행렬에 접근하는 동작이 수행될 수 있고 이러한 동작이 수행되는 과정에서 지연 현상이 발생할 수 있는데, 이러한 지연 현상을 개선 내지 해결하는 것이 본 발명의 해결하고자 하는 과제에 포함될 수 있다.
다만, 본 발명의 해결하고자 하는 과제는 이상에서 언급한 것으로 제한되지 않으며, 언급되지 않은 또 다른 해결하고자 하는 과제는 아래의 기재로부터 본 발명이 속하는 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
일 실시예에 따른 메모리 네트워크 장치는 임베딩 행렬을 저장하는 임베딩용 메모리부와, 소정의 기준에 따라 선별된 문맥 정보에 대한 내부 표현을 저장하는 임베딩용 캐시부와, 상기 저장된 내부 표현에 소정의 문맥 정보에 대한 내부 표현이 포함되어 있으면 상기 포함되어 있는 내부 표현을 추론용 표현으로 변환하고, 포함되어 있지 않으면 상기 임베딩 행렬로부터 상기 소정의 문맥 정보에 대한 내부 표현을 도출한 뒤 상기 도출된 내부 표현을 추론용 표현으로 변환하는 임베딩용 연산부를 포함한다.
일 실시예에 따른 메모리 네트워크 장치가 수행하는 방법은 상기 메모리 네트워크 장치의 임베딩용 캐시부에 소정의 문맥 정보에 대한 내부 표현이 포함되어 있는지를 판단하는 단계와, 포함되어 있으면 상기 포함되어 있는 내부 표현을 추론용 표현으로 변환하고, 포함되어 있지 않으면 상기 메모리 네트워크 장치의 임베딩용 메모리부에 저장된 임베딩 행렬로부터 상기 소정의 문맥 정보에 대한 내부 표현을 도출한 뒤 상기 도출된 내부 표현을 추론용 표현으로 변환하는 단계를 포함하여 수행된다.
일 실시예에 따르면, 임베딩 연산에는 임베딩용 메모리부가 제공하는 메모리가 이용되는 반면, 추론 연산에는 추론용 메모리부가 제공하는 메모리가 이용된다. 따라서 여러 사용자가 일 실시예에 따른 메모리 네트워크 장치를 동시에 이용할 경우 임베딩 연산과 추론 연산이 동시에 수행될 수 있는데, 이러한 경우에도 임베딩 연산에 제공되는 메모리와 추론 연산에 제공되는 메모리가 서로 분리되어 있으므로, 이들 각각의 연산의 수행 과정에서 메모리 충돌이 발생하지 않을 수 있다.
또한, 모든 문맥 정보가 아닌 소정의 기준에 따라 선별된 문맥 정보에 대한 내부 표현은 임베딩용 메모리부에 저장된 임베딩 행렬을 이용하지 않고 임베딩용 캐시부로부터 획득될 수 있다. 임베딩 연산부가 임베딩용 캐시부에 접근하는 것이 임베딩용 메모리부에 접근하는 것보다 빠르기 때문에, 이러한 일 실시예에 따르면 임베딩 연산이 보다 신속하면서도 효율적으로 수행될 수 있다.
도 1은 일 실시예에 따른 메모리 네트워크 장치에 대한 개략적인 구성도이다.
도 2는 일 실시예에 따른 메모리 네트워크 장치에서 수행 가능한 임베딩 연산과 추론 연산에 대한 예시적인 개념도이다.
도 3은 일 실시예에서 따른 메모리 네트워크 장치에서 수행 가능한 임베딩 과정에 대한 예시적인 개념도이다.
도 4는 일 실시예에 따른 메모리 네트워크 장치에서 수행 가능한 임베딩 과정의 일부에 대한 예시적인 순서도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
본 발명의 실시예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명의 실시예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 1은 일 실시예에 따른 메모리 네트워크 장치(1000)에 대한 개략적인 구성도이다. 도 1을 참조하면, 메모리 네트워크 장치(1000)는 문맥 정보 데이터베이스(900), 임베딩 연산부(100), 임베딩용 캐시부(200), 변환 횟수 집계부(250), 임베딩용 메모리부(300), 입력 메모리부(400), 출력 메모리부(500), 추론 연산부(600), 추론용 캐시부(700) 및 추론용 메모리부(800)를 포함한다. 다만, 도 1에 도시된 구성도는 예시적인 것에 불과하므로, 메모리 네트워크 장치(1000)는 도 1에 도시된 구성 중 적어도 하나를 포함하지 않거나 또는 도 1에 도시되지 않은 구성을 추가로 포함할 수 있다.
먼저, 메모리 네트워크 장치(1000) 및 이러한 메모리 네트워크 장치(1000)에 포함되어 있는 전술한 구성들 각각은 프로세서에 의해 실행되는 소프트웨어 모듈이나 하드웨어 모듈 형태로 구현되거나 또는 소프트웨어 모듈과 하드웨어 모듈이 조합된 형태로 구현될 수 있다.
문맥 정보 데이터베이스(900)는 문맥 정보를 저장하는 데이터베이스이다. 여기서, 문맥 정보란 문장이나 텍스트 등의 문맥이나 의미 파악에 이용되는 데이터를 가리킨다. 예컨대 책이나 영화의 내용, 사람 간의 대화 또는 신문 기사 등이 문맥 정보에 해당될 수 있다. 이러한 문맥 정보에는 복수 개의 문장 및 이러한 복수 개의 문장 각각의 배열 순서에 대한 정보가 포함될 수 있다. 뿐만 아니라 이러한 문맥 정보에는 복수 개의 단어 및 복수 개의 단어 각각의 배열 순서에 대한 정보가 포함될 수 있다.
문맥 정보 데이터베이스(900)에 저장된 문맥 정보는 갱신될 수 있다. 갱신 방법에는 메모리 네트워크 장치(1000)가 인터넷과 같은 공개된 정보망에 접속을 해서 새로운 문맥 정보를 다운로드 받는 방법 또는 이미 가공되어 있는 새로운 문맥 정보를 메모리 네트워크 장치(1000)가 자신에게 별도로 마련된 포트를 통해 받아들이는 방법 등이 포함될 수 있으며, 다만 이에 한정되는 것은 아니다.
임베딩용 메모리부(300)는 임베딩 연산부(100)에게 임베딩 과정에 필요한 메모리를 제공한다. 임베딩 과정 및 이에 대한 예시에 대해서는 후술하기로 한다.
임베딩용 메모리부(300)에는 임베딩 행렬이 저장되어 있다. 임베딩 행렬은 복수 개의 문맥 정보 각각에 대한 내부 표현을 저장하는 행렬이다. 따라서, 임베딩용 메모리부(300)의 임베딩 행렬을 이용하면, 소정의 문맥 정보에 대한 내부 표현이 획득될 수 있다.
여기서, 내부 표현이란 메모리 네트워크 장치(1000)의 내부에서 사용되기 위한 형태 내지 표현을 지칭한다. 임베딩 행렬과 내부 표현에 대한 자세한 설명 및 예시에 대해서는 도 3에서 설명하기로 한다.
임베딩용 캐시부(200)에는 소정의 기준에 따라 선별된 문맥 정보에 대한 내부 표현이 저장되어 있다. 즉, 임베딩용 캐시부(200)에는 모든 문맥 정보에 대한 내부 표현이 저장되어 있는 것이 아니라, 소정의 기준에 따라 선별된 문맥 정보에 대한 내부 표현이 저장되어 있다. 따라서 임베딩용 캐시부(200)를 이용하면, 이러한 소정의 문맥 정보에 대한 내부 표현이 획득될 수 있다.
여기서 소정의 기준에 따라 선별된 문맥 정보란, 예컨대 자주 사용되는 것으로 선별된 문맥 정보를 지칭할 수 있다. 이 때 자주 사용되는 문맥 정보인지 여부는 다양한 방식을 통해 판단 가능한데, 이러한 방식에는 예컨대 이미 만들어져 있는 빈출 단어나 빈출 문장에 대한 데이터를 기초로 판단하는 방식이 포함될 수 있다. 또한 이러한 방식에는 문맥 정보의 종류마다 각각 임베딩용 연산부(100)가 후술할 변환을 수행한 횟수를 집계한 자료를 기초로 판단하는 방식 등이 포함될 수 있는데, 이를 위해 전술한 집계를 수행하는 변환 횟수 집계부(250)가 메모리 네트워크 장치(1000)에 포함될 수 있다.
또한, 소정의 기준에 따라 선별된 문맥 정보란, 예컨대 어느 하나의 단어 이후에 출현 가능성이 일정 수준 이상이라고 판별된 단어에 대한 문맥 정보 또는 어느 하나의 문장 이후에 출현 가능성이 일정 수준 이상이라고 판별된 문장에 대한 문맥 정보를 포함할 수 있다. 여기서, 어느 하나의 단어 이후에 출현 가능성이 일정 수준 이상이라고 판별된 단어 또는 상기 어느 하나의 문장 이후에 출현 가능성이 일정 수준 이상이라고 판별된 문장은 임베딩용 연산부(100)에 의해 수행된 변환의 과정에서 획득된 것이거나 또는 소정의 문서로부터 획득된 것일 수 있으며 다만 이에 한정되는 것은 아니다.
임베딩 연산부(100)는 어떠한 질문이 주어졌을 때 해당 질문을 추론용 표현으로 변환한다. 여기서 추론용 표현이란 해당 질문에 대한 답변 추론이 가능한 형태를 지칭한다. 변환 과정 자체에 대해서는 도 3에서 후술하기로 한다. 해당 질문에 대한 추론용 표현은 추론 연산부(600)에 제공되어서 답변 추론에 이용된다.
임베딩 연산부(100)는 주어진 질문의 문맥이나 의미 파악에 사용될 데이터(이하 '입력 데이터'라고 지칭하기로 함)를 생성한다. 생성 과정 자체에 대해서는 도 3에서 후술하기로 한다. 이러한 입력 데이터는 입력 메모리부(400)에 저장된다.
임베딩 연산부(100)는 주어진 질문의 답변 추론에 사용될 데이터(이하 '출력 데이터'라고 지칭하기로 함)를 생성한다. 생성 과정 자체에 대해서는 도 3에서 후술하기로 한다. 이러한 출력 데이터는 출력 메모리부(500)에 저장된다.
입력 메모리부(400)는 임베딩 연산부(100)가 생성한 입력 데이터를 저장하는 구성이다. 실시예에 따라 입력 메모리부(400)는 복수 개의 입력 데이터가 그루핑 되어있는 것 자체를 지칭할 수도 있다.
출력 메모리부(500)는 임베딩 연산부(100)가 생성한 출력 데이터를 저장하는 구성이다. 실시예에 따라 출력 메모리부(500)는 복수 개의 출력 데이터가 그루핑 되어있는 것 자체를 지칭할 수도 있다.
추론 연산부(600)는, 추론용 메모리부(800)가 제공하는 메모리 또는 추론용 캐시부(700)가 제공하는 캐시를 이용해서 질문의 문맥이나 의미를 파악하고 이러한 질문에 대한 답변을 추론한다.
여기서, 추론 과정이란 주어진 질문의 문맥이나 의미를 파악하고 이러한 질문에 대한 답변을 추론하는 과정을 포함할 수 있다. 추론 과정 및 이에 대한 예시에 대해서는 도 2에서 후술하기로 한다.
추론용 캐시부(700)는 추론 연산부(600)에게 추론 과정에 필요한 소정의 임시 기억 공간, 즉 캐시를 제공한다.
추론용 메모리부(800)는 추론 연산부(600)에게 추론 과정에 필요한 메모리를 제공한다.
여기서 도 1에 도시되어 있는 바와 같이 임베딩용 메모리부(300)와 추론용 메모리부(800)는 서로 분리되어 있다. 따라서, 임베딩 연산부(100)는 임베딩 연산 시 임베딩용 메모리부(300)로부터 제공받은 메모리를 이용하게 되고, 추론 연산부(600)는 추론 연산 시 추론용 메모리부(800)로부터 제공받은 메모리를 이용하게 된다. 따라서 여러 사용자가 일 실시예에 따른 메모리 네트워크 장치(1000)를 동시에 이용할 경우 임베딩 연산과 추론 연산이 동시에 수행될 수 있는데, 이러한 경우에도 임베딩 연산에 제공되는 메모리와 추론 연산에 제공되는 메모리가 서로 분리되어 있으므로 이들 각각의 연산의 수행에서 메모리 충돌이 발생하지 않을 수 있다.
도 2는 일 실시예에 따른 메모리 네트워크 장치(1000)에서 수행 가능한 임베딩 연산과 추론 연산에 대한 예시적인 개념도이다. 다만 도 2는 예시적인 것에 불과하므로 본 발명의 사상이 도 2에 도시된 것으로 한정 해석되는 것은 아니다.
도 2를 도 1과 함께 참조하면, 문맥 정보 데이터베이스(900)에서 임베딩 연산부(100)에게 문맥 정보가 제공된다(S100).
임베딩 연산부(100)는 S100에서 제공받은 문맥 정보를 추론용 표현으로 변환해서 입력 데이터를 생성한다(S110). 이러한 S110에서는 임베딩용 메모리부(300)가 제공하는 메모리가 이용될 수 있으며, 또한 추론용 표현으로 변환하는 과정에서 임베딩용 캐시부(200)에 저장된 내부 표현 또는 임베딩용 메모리부(300)에 저장된 임베딩 행렬이 이용될 수 있다.
S110에서 생성된 입력 데이터는 입력 메모리부(400)에 저장된다(S120). 아울러, 입력 메모리부(400)에 저장된 입력 데이터 중 적어도 일부(410)는 추론을 위해 추론용 메모리부(800)가 제공하는 메모리에 로딩된다(S130).
한편, 소정의 질문(5)이 주어진다(S140). 그러면 임베딩 연산부(100)는 이러한 질문(5)을 추론용 표현으로 변환한다(S150). 이러한 S150에서는 임베딩용 메모리부(300)가 제공하는 메모리가 이용될 수 있으며, 또한 추론용 표현으로 변환하는 과정에서 임베딩용 캐시부(200)에 저장된 내부 표현 또는 임베딩용 메모리부(300)에 저장된 임베딩 행렬이 이용될 수 있다.
S150에서 추론용 표현으로 변환된 질문(6)은 추론 연산부(600)에 제공된다(S160). 그러면, 추론 연산부(600)는 추론용 메모리부(800)의 메모리를 이용해서 추론 과정 중 일부인 내적 연산(S170)과 소프트맥스 연산(S180)을 수행한다. 이 중 내적 연산(S170)에서는 전술한 입력 데이터(410)를 구성하는 각각의 데이터와 변환된 질문(6) 간의 내적 연산이 수행된다. 아울러, 소프트맥스 연산(S180)에서는 S170에서 수행된 결과에 대한 소프트맥스 연산이 수행된다. 여기서 소프트맥스 연산 자체는 공지된 기술이므로 이에 대한 설명은 생략하기로 한다.
한편, 임베딩 연산부(100)는 S100에서 제공받은 문맥 정보를 추론용 표현으로 변환해서 출력 데이터를 생성하는데, 이 경우에도 임베딩용 메모리부(300)가 제공하는 메모리가 이용될 수 있으며, 또한 이와 같이 추론용 표현으로 변환하는 과정에서 임베딩용 캐시부(200)에 저장된 내부 표현 또는 임베딩용 메모리부(300)에 저장된 임베딩 행렬이 이용될 수 있다. 아울러, 이렇게 생성된 출력 데이터는 출력 메모리부(500)에 저장되고, 출력 메모리부(500)에 저장된 입력 데이터 중 적어도 일부(510)는 추론을 위해 추론용 메모리부(800)가 제공하는 메모리에 로딩된다(S190).
여기서 출력 데이터를 생성하고 출력 데이터가 추론용 메모리부(800)가 제공하는 메모리에 로딩되는 과정(S190)은 전술한 단계 S110 내지 S180이 수행된 이후에 또는 병렬적으로 수행될 수 있다.
S180과 S190이 수행되고 나면, 추론 연산부(600)는 출력 데이터(510)를 구성하는 각각의 데이터에 S180의 수행 결과 중 어느 하나를 가중치로 하는 곱셈 연산을 수행한 뒤, 수행된 결과를 합산하는 가중치합 연산을 수행한다(S200). S200의 결과 1차 결과(o)가 도출된다. 이 때 추론용 메모리부(800)가 제공하는 메모리가 S200의 가중치합 연산에 이용될 수 있다.
이 후 추론 연산부(600)는 추론용 메모리부(800)가 제공하는 메모리를 이용해서 1차 결과(o)에 변환된 질문(6)을 합산하는 연산을 수행한다(S210). S210의 수행 결과 2차 결과(p)가 도출된다.
이 후 추론 연산부(600)는 추론용 메모리부(800)가 제공하는 메모리를 이용해서 2차 결과(p)를 컨버팅 행렬 W를 이용해서 변환하는 연산을 수행한다(S220). S220의 수행 결과 3차 결과(q)가 도출된다. 여기서 컨버팅 행렬 W는 입력을 사람이 인식할 수 있는 형태로 컨버팅하는 행렬을 지칭한다.
이 후 추론 연산부(600)는 추론용 메모리부(800)가 제공하는 메모리를 이용해서 3차 결과(q)에 소프트맥스 연산을 수행해서 정규화된 추론 결과(615)를 도출한다.
이상에서 살펴본 바와 같이, 임베딩 연산(S110, S150)에는 임베딩용 메모리부(300)가 제공하는 메모리가 이용되는 반면, 추론 연산(S170, S180, S200, S210, S220, S230)에는 추론용 메모리부(800)가 제공하는 메모리가 이용된다. 따라서 여러 사용자가 일 실시예에 따른 메모리 네트워크 장치(1000)를 동시에 이용할 경우 임베딩 연산(S110, S150)과 추론 연산(S170, S180, S200, S210, S220, S230)이 동시에 수행될 수 있는데, 이러한 경우에도 임베딩 연산(S110, S150)에 제공되는 메모리와 추론 연산(S170, S180, S200, S210, S220, S230)에 제공되는 메모리가 서로 분리되어 있으므로, 이들 각각의 연산의 수행 과정에서 메모리 충돌이 발생하지 않을 수 있다.
이하에서는 전술한 임베딩 연산에 대해 도 3과 4를 참조하여 보다 자세하게 예를 들어 설명하기로 한다.
도 3을 참조하면, 임베딩 연산에는 문장(910)과 같은 문맥 정보를 입력 벡터(920)로 변환시키는 제1 연산, 입력 벡터(920)를 임베딩 행렬에서 선택된 열(930)을 이용하여 내부 표현으로 변환시키는 제2 연산 및 내부 표현을 출력 벡터(940)로 변환시키는 제3 연산이 포함될 수 있다.
이 중 제1 연산에 대해 먼저 살펴보기로 한다. 제1 연산은 문맥 정보를 입력 벡터로 변환시킨다. 변환시킬 때에는 bag-of-words와 같은 알고리즘이 이용될 수 있다. 도 3에는 예시 문장인 'Mary went to the room'(911), 단어를 인덱스로 변환시키는 테이블(950) 및 해당 테이블(950)을 활용하여 예시 문장 (911)에 bag-of-words 알고리즘을 적용시켜서 변환시킨 입력 벡터(921)가 도시되어 있다.
제2 연산은 입력 벡터(920)를 임베딩 행렬에서 선택된 열(930)을 이용하여 내부 표현으로 변환시킨다. '열의 선택'은 입력 벡터(920)에 포함된 것과 동일한 인덱스를 갖는 열이 선택될 수 있다. 도 3에는 임베딩 행렬(960)이 예시적으로 도시되어 있는데, 이러한 임베딩 행렬(960)에는 10개의 단어에 대한 8개의 디멘션을 갖는 내부 표현이 포함되어 있다. 예시 문장(911)에 대한 입력 벡터(921)가 '1','4','7','8' 및 '10'을 포함하고 있으므로, 임베딩 행렬(960)로부터 '1','4','7','8' 및 '10' 각각에 대한 내부 표현(931)이 도 3에 도시된 것과 같이 도출된다.
여기서, 임베딩 행렬로부터 내부 표현을 도출하는 과정, 즉 임베딩 행렬에서 특정한 열을 선택하고 이렇게 선택된 열을 이용하여 내부 표현으로 변환시키는 과정에서는, 입력 벡터(문맥 정보)에 포함된 단어들의 종류 또는 단어들의 상대적인 위치가 고려될 수 있다.
제3 연산은 내부 표현을 출력 벡터(940)로 변환시킨다. 도 3에는 내부 표현(930)에서 같은 행에 있는 엘리먼트끼리 더해서 생성된 출력 벡터(941)가 예시적으로 도시되어 있다.
여기서, 제3 연산에 따른 변환 과정에서는, 입력 벡터(문맥 정보)에 포함된 단어들의 종류 또는 단어들의 상대적인 위치를 기초로 제2 연산에 의해 도출된 내부 표현에 대한 가중치를 도출하는 연산과, 이렇게 도출된 가중치와 제2 연산에 의해 도출된 내부 표현을 곱하는 연산이 포함될 수 있다. 예컨대, 출력 벡터의 생성에 이용되는 내부 표현이 동일한 정도로 더해지기 보다는, 입력 벡터(문맥 정보)에 포함된 단어들의 종류나 그 상대적인 위치에 따라 서로 상이한 비중을 갖고 더해질 수 있다는 것이다.
전술한 제2 연산에서는 임베딩 행렬이 이용된다. 그런데 임베딩 행렬은 전술한 바와 같이 임베딩용 메모리부(300)에 저장된다. 아울러, 이러한 임베딩 행렬은 입력 벡터에 포함된 단어들의 종류나 상대적인 위치에 따라 임베딩 연산부(100)에 의해 무작위로 접근된다. 따라서 경우에 따라서는 이러한 임베딩 행렬에 대한 접근 과정에서 지연 현상이 발생할 수 있는데, 이하에서는 이러한 지연 현상을 개선시키는 본 발명의 구성에 대해 살펴보기로 한다.
전술한 바와 같이 임베딩용 캐시부(200)에는 소정의 기준에 따라 선별된 문맥 정보에 대한 내부 표현이 저장되어 있다. 즉, 임베딩용 캐시부(200)에는 모든 문맥 정보에 대한 내부 표현이 저장되어 있는 것이 아니라, 소정의 기준에 따라 선별된 문맥 정보에 대한 내부 표현이 저장되어 있다. 임베딩 연산부(100)는 제2 연산의 수행 과정에서, 입력 벡터에 대한 내부 표현을 임베딩용 메모리부(300)에 저장된 임베딩 행렬로부터 획득할 수도 있지만 이러한 임베딩용 캐시부(200)로부터 획득할 수도 있다. 이하에서는 이러한 임베딩 연산부(100)에서 수행될 수 있는 동작에 대해 살펴보기로 한다.
도 4는 임베딩 연산부(100)에서 수행 가능한 임베딩 과정 중 일부에 대한 예시적인 순서도이다. 다만 도 4는 예시적인 것에 불과하다.
도 4를 참조하면, 임베딩 연산부(100)는 소정의 문맥 정보의 입력 벡터에 대한 내부 표현이 임베딩용 캐시부(200)에 저장되어 있는지를 판단한다(S111).
만약 저장되어 있다면 저장되어 있는 내부 표현을 추론용 표현, 즉 출력 벡터로서 변환시킨다(S113).
그러나 저장되어 있지 않다면, 임베딩 연산부(100)는 임베딩용 메모리부(300)에 저장되어 있는 임베딩 행렬로부터, 이러한 소정의 문맥 정보의 입력 벡터에 대한 내부 표현을 도출한 뒤(S112), 이렇게 도출된 내부 표현을 추론용 표현, 즉 출력 벡터로서 변환시킨다(S113).
즉, 일 실시예에 따르면 모든 문맥 정보가 아닌 소정의 기준에 따라 선별된 문맥 정보에 대한 내부 표현은 임베딩용 메모리부(300)에 저장된 임베딩 행렬을 이용하지 않고도 임베딩용 캐시부(200)로부터 획득될 수 있다. 임베딩 연산부(100)가 임베딩용 캐시부(200)에 접근하는 것이 임베딩용 메모리부(300)에 접근하는 것보다 빠르기 때문에, 이러한 일 실시예에 따르면 임베딩 연산이 보다 신속하면서도 효율적으로 수행될 수 있다.
한편, 일 실시예에 따른 추론 방법은 메모리 네트워크 장치(1000)에 의해 수행될 수 있다. 이러한 추론 방법에 따르면, 임베딩용 캐시부(200)에 소정의 문맥 정보에 대한 내부 표현이 포함되어 있는지를 판단하는 단계와, 포함되어 있으면 상기 포함되어 있는 내부 표현을 추론용 표현으로 변환하고, 포함되어 있지 않으면 상기 메모리 네트워크 장치(1000)의 임베딩용 메모리부(300)에 저장된 임베딩 행렬로부터 상기 소정의 문맥 정보에 대한 내부 표현을 도출한 뒤 상기 도출된 내부 표현을 추론용 표현으로 변환하는 단계가 포함되어 수행될 수 있다.
한편, 일 실시예에 따른 추론 방법은 이러한 방법의 각 단계를 수행하도록 프로그램된 컴퓨터 판독가능한 기록매체에 저장된 컴퓨터 프로그램의 형태 또는 이러한 방법의 각 단계를 수행하도록 프로그램된 컴퓨터 프로그램을 저장하는 컴퓨터 판독가능한 기록매체의 형태로 구현 가능하다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 품질에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 균등한 범위 내에 있는 모든 기술사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
일 실시예에 따르면 메모리 네트워크의 성능을 향상시키는 기술이 제공될 수 있다.
1000 : 메모리 네트워크 장치

Claims (6)

  1. 임베딩 행렬을 저장하는 임베딩용 메모리부와,
    소정의 기준에 따라 선별된 문맥 정보에 대한 내부 표현을 저장하는 임베딩용 캐시부와,
    상기 저장된 내부 표현에 질문을 포함하는 소정의 문맥 정보에 대한 내부 표현이 포함되어 있으면 상기 포함되어 있는 내부 표현을 추론용 표현으로 변환하고, 상기 저장된 내부 표현에 질문을 포함하는 소정의 문맥 정보에 대한 내부 표현이 포함되어 있지 않으면 상기 임베딩 행렬로부터 상기 소정의 문맥 정보에 대한 내부 표현을 도출한 뒤 상기 도출된 내부 표현을 추론용 표현으로 변환하는 임베딩용 연산부;
    상기 임베딩용 연산부가 도출한 상기 질문에 대한 추론용 표현을 기초로 상기 질문에 대한 답변을 추론하는 추론 연산부; 및
    상기 추론에 필요한 메모리를 상기 추론 연산부에게 제공하는 추론 메모리부를 포함하되,
    상기 임베딩용 메모리부가 상기 임베딩용 연산부에게 제공하는 메모리와 상기 추론 메모리부가 상기 추론 연산부에 제공하는 메모리는 서로 물리적으로 분리되어 있는
    메모리 네트워크 장치.
  2. 제 1 항에 있어서,
    상기 소정의 기준은,
    상기 임베딩용 연산부에 의해 수행된 상기 변환의 횟수가 상기 소정의 문맥 정보의 종류별로 집계된 것에 기초한 것이거나, 상기 소정의 문맥 정보에서의 단어별 등장 횟수 또는 문장별 등장 횟수에 기초한 것이거나 또는 소정의 문서로부터 획득된 단어별 등장 횟수 또는 문장별 등장 횟수에 기초하여 선별된 것인
    메모리 네트워크 장치.
  3. 제 1 항에 있어서,
    상기 소정의 기준에 따라 선별된 문맥 정보는,
    어느 하나의 단어 이후에 출현 가능성이 일정 수준 이상이라고 판별된 단어에 대한 문맥 정보 또는 어느 하나의 문장 이후에 출현 가능성이 일정 수준 이상이라고 판별된 문장에 대한 문맥 정보를 포함하는
    메모리 네트워크 장치.
  4. 제 1 항에 있어서,
    상기 도출된 내부 표현은,
    상기 소정의 문맥 정보에 포함된 단어들의 종류 또는 상기 단어들의 상대적인 위치를 기초로 상기 임베딩 행렬로부터 도출된 것인
    메모리 네트워크 장치.
  5. 제 1 항에 있어서,
    상기 변환은,
    상기 소정의 문맥 정보에 포함된 단어들의 종류 또는 상기 단어들의 상대적인 위치를 기초로 상기 도출된 내부 표현에 대한 가중치를 도출하는 연산과, 상기 도출된 가중치와 상기 도출된 내부 표현을 곱하는 연산을 포함하는
    메모리 네트워크 장치.
  6. 메모리 네트워크 장치가 수행하는 방법으로서,
    상기 메모리 네트워크 장치의 임베딩용 캐시부에 질문을 포함하는 소정의 문맥 정보에 대한 내부 표현이 포함되어 있는지를 판단하는 단계;
    상기 임베딩용 캐시부에 저장된 내부 표현에 질문을 포함하는 소정의 문맥 정보에 대한 내부 표현이 포함되어 있으면 상기 포함되어 있는 내부 표현을 추론용 표현으로 변환하고, 상기 저장된 내부 표현에 질문을 포함하는 소정의 문맥 정보에 대한 내부 표현이 포함되어 있지 않으면 상기 메모리 네트워크 장치의 임베딩용 메모리부에 저장된 임베딩 행렬로부터 상기 소정의 문맥 정보에 대한 내부 표현을 도출한 뒤 상기 도출된 내부 표현을 추론용 표현으로 변환하는 단계; 및
    상기 도출한 상기 질문에 대한 추론용 표현을 기초로 상기 질문에 대한 답변을 상기 메모리 네트워크 장치의 추론 메모리부로부터 메모리를 제공받아 추론하는 단계를 포함하되,
    상기 임베딩용 메모리부의 메모리와 상기 추론 메모리부의 메모리는 서로 물리적으로 분리되어 있는
    추론 방법.
KR1020210148527A 2019-05-20 2021-11-02 메모리 네트워크 장치 및 이를 이용한 추론 방법 KR102346535B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210148527A KR102346535B1 (ko) 2019-05-20 2021-11-02 메모리 네트워크 장치 및 이를 이용한 추론 방법

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020190059081A KR102331242B1 (ko) 2019-05-20 2019-05-20 메모리 네트워크 장치 및 이를 이용한 추론 방법
KR1020210148527A KR102346535B1 (ko) 2019-05-20 2021-11-02 메모리 네트워크 장치 및 이를 이용한 추론 방법

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020190059081A Division KR102331242B1 (ko) 2019-05-20 2019-05-20 메모리 네트워크 장치 및 이를 이용한 추론 방법

Publications (2)

Publication Number Publication Date
KR20210134566A true KR20210134566A (ko) 2021-11-10
KR102346535B1 KR102346535B1 (ko) 2022-01-03

Family

ID=73641892

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020190059081A KR102331242B1 (ko) 2019-05-20 2019-05-20 메모리 네트워크 장치 및 이를 이용한 추론 방법
KR1020210148527A KR102346535B1 (ko) 2019-05-20 2021-11-02 메모리 네트워크 장치 및 이를 이용한 추론 방법

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020190059081A KR102331242B1 (ko) 2019-05-20 2019-05-20 메모리 네트워크 장치 및 이를 이용한 추론 방법

Country Status (1)

Country Link
KR (2) KR102331242B1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000035798A (ja) * 1998-07-17 2000-02-02 Atr Interpreting Telecommunications Res Lab 対話システム
KR101334196B1 (ko) 2010-10-28 2013-11-28 (주)아크릴 지능형 감성 추론장치 및 그 추론방법
KR20180103671A (ko) * 2017-03-09 2018-09-19 삼성전자주식회사 언어 모델을 압축하기 위한 전자 장치, 추천 워드를 제공하기 위한 전자 장치 및 그 동작 방법들

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000035798A (ja) * 1998-07-17 2000-02-02 Atr Interpreting Telecommunications Res Lab 対話システム
KR101334196B1 (ko) 2010-10-28 2013-11-28 (주)아크릴 지능형 감성 추론장치 및 그 추론방법
KR20180103671A (ko) * 2017-03-09 2018-09-19 삼성전자주식회사 언어 모델을 압축하기 위한 전자 장치, 추천 워드를 제공하기 위한 전자 장치 및 그 동작 방법들

Also Published As

Publication number Publication date
KR20200133609A (ko) 2020-11-30
KR102346535B1 (ko) 2022-01-03
KR102331242B1 (ko) 2021-11-25

Similar Documents

Publication Publication Date Title
CN108920654B (zh) 一种问答文本语义匹配的方法和装置
US20200294063A1 (en) Method and apparatus for transferring from robot customer service to human customer service
Sun et al. Learning word representations by jointly modeling syntagmatic and paradigmatic relations
US20170103324A1 (en) Generating responses using memory networks
CN110168578A (zh) 具有任务特定路径的多任务神经网络
CN110945500A (zh) 键值记忆网络
US8155949B1 (en) Geodesic search and retrieval system and method of semi-structured databases
JP7511081B2 (ja) ソフトウェアの脆弱性のトリアージのためのシステムおよび方法
AU2019204953B2 (en) Resolving Abstract Anaphoric References in Conversational Systems Using Hierarchically Stacked Neural Networks
Wang et al. Tabi: An efficient multi-level inference system for large language models
KR102347020B1 (ko) 인공지능 기반 특성분석을 통한 맞춤형 고객센터 솔루션 제공방법
US11875125B2 (en) System and method for designing artificial intelligence (AI) based hierarchical multi-conversation system
KR20210070904A (ko) 다중 문서 질의 응답을 위한 방법 및 장치
CN112101042A (zh) 文本情绪识别方法、装置、终端设备和存储介质
Zoupanos et al. Efficient comparison of sentence embeddings
US11538467B1 (en) Calibrated noise for text modification
KR102346535B1 (ko) 메모리 네트워크 장치 및 이를 이용한 추론 방법
CN117808481A (zh) 一种云边协同的大语言模型智能客服部署优化方法
US11257486B2 (en) Machine learning to propose actions in response to natural language questions
CN117453885A (zh) 提问信息处理方法、装置、设备、存储介质及产品
Sugiura et al. Grounded language understanding for manipulation instructions using GAN-based classification
US11989528B2 (en) Method and server for training a machine learning algorithm for executing translation
Li et al. Accelerating rule-matching systems with learned rankers
CN111737425B (zh) 一种应答方法、装置、服务器及存储介质
WO2021159046A1 (en) Machine learning algorithm search

Legal Events

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