KR20200036087A - 실시간 모델링을 위한 머신 러닝 프레임워크의 운용 방법, 장치 및 컴퓨터 프로그램 - Google Patents
실시간 모델링을 위한 머신 러닝 프레임워크의 운용 방법, 장치 및 컴퓨터 프로그램 Download PDFInfo
- Publication number
- KR20200036087A KR20200036087A KR1020180112571A KR20180112571A KR20200036087A KR 20200036087 A KR20200036087 A KR 20200036087A KR 1020180112571 A KR1020180112571 A KR 1020180112571A KR 20180112571 A KR20180112571 A KR 20180112571A KR 20200036087 A KR20200036087 A KR 20200036087A
- Authority
- KR
- South Korea
- Prior art keywords
- layer
- message
- event
- user
- application
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 21
- 238000010801 machine learning Methods 0.000 title abstract description 9
- 238000004590 computer program Methods 0.000 title 1
- 230000006870 function Effects 0.000 claims abstract description 25
- 238000004458 analytical method Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000007405 data analysis Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000013480 data collection Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- BHEPBYXIRTUNPN-UHFFFAOYSA-N hydridophosphorus(.) (triplet) Chemical group [PH] BHEPBYXIRTUNPN-UHFFFAOYSA-N 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
- G06Q50/20—Education
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Tourism & Hospitality (AREA)
- General Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Educational Administration (AREA)
- Educational Technology (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Economics (AREA)
- General Health & Medical Sciences (AREA)
- Human Resources & Organizations (AREA)
- Marketing (AREA)
- Primary Health Care (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
본 발명은, 가상화된 분산 컴퓨팅 환경에서 구현되는, 학습 컨텐츠를 제공하는 시스템에 대한 것으로, 사용자 디바이스로부터 데이터를 수신하는 제 1 레이어;다른 레이어에 이벤트가 발생하면, 이벤트 발생에 대한 노티스 메시지를 수신하고, 상기 이벤트를 특정하여 등록한 다른 레이어에서 상기 메시지를 구독할 수 있도록 지원하는 제 2 레이어; 각각의 기능을 수행하는 복수의 어플리케이션을 포함하며, 상기 어플리케이션이 독립적으로 동작하며, 상기 제 2 레이어로부터 상기 어플리케이션의 동작에 필요한 특정 이벤트에 대한 노티스 메시지를 구독하는 제 3 레이어; 및 적어도 하나 이상의 데이터베이스를 포함하고, 다른 레이어에 상기 데이터베이스에 대한 엑세스를 제공하고, 임의의 이벤트에 대한 노티스 메시지를 생성하는 제 4 레이어를 포함하며, 상기 제 1 레이어, 상기 제 2 레이어, 상기 제 3 레이어 및 상기 제 4 레이어는, 임의의 시점에 하나의 레이어의 동작이 다른 레이어의 동작에 영향을 미치지 않으며, 임의의 이벤트에 대한 메시지 구독을 통해 다른 레이어에서 생성된 데이터를 공유하는 것을 특징으로 한다.
Description
본 발명은 데이터 분석 프레임워크의 아키텍처에 대한 것이다. 보다 구체적으로 본 발명은 머신러닝 프레임워크에서 대량의 데이터를 실시간으로 학습하면서 동시에 다양한 사용자 맞춤형 서비스를 지연 시간 없이 제공하기 위한 아키텍처 설계 및 운용 방법에 대한 것이다.
지금까지 교육 컨텐츠는 일반적으로 패키지로 제공되어 왔다. 예를 들어 종이에 기록되는 문제집은 권당 최소 700문제가 수록되어 있으며, 온라인 또는 오프라인 강의 역시 1-2 시간 단위로 최소 한달간 공부할 양을 묶어서 한번에 판매된다.
그러나 교육을 받는 학생들 입장에서는 개별적으로 취약한 단원과 취약한 문제 유형이 모두 상이하기 때문에 패키지 형태보다는 개인 맞춤형 컨텐츠에 대한 니즈가 존재한다. 자신이 취약한 단원의 취약한 문제 유형만을 골라서 학습하는 것이 문제집의 7백 문제 전체를 푸는 것보다 훨씬 효율적이기 때문이다.
그러나 피교육자인 학생들 스스로 자신의 취약점을 파악하는 것은 매우 어렵다. 나아가 학원, 출판사 등 종래의 교육 업계에서도 주관적 경험과 직관에 의존하여 학생 및 문제들을 분석하기 때문에 개별 학생들에게 최적화된 문제를 제공하는 것이 쉽지 않다.
이와 같이 종래의 교육 환경에서는 피교육자가 가장 효율적으로 학습 결과를 낼 수 있는 개인 맞춤형 컨텐츠를 제공하는 것이 쉽지 않으며, 학생들은 패키지 형태의 교육 컨텐츠에 대해 성취감과 흥미를 금방 잃게 되는 문제가 발생한다.
본 발명은 머신러닝이 적용된 교육 컨텐츠 제공 시스템을 효율적으로 운용하는 방법을 제공하는 것을 목적으로 한다. 보다 구체적으로 본 발명은 상기 시스템을 구성하는 각 기능 블록들을 클라우드 기반으로 가상화하고, 각 기능 블록들이 독립적, 병렬적으로 동작하며, 동시에 상호 작용하도록 구조화하는 방법에 대한 것이다.
본 발명의 실시예를 따르는
본 발명에 따르면, 머신러닝 프레임워크의 각 기능 블록들이 독립적, 병렬적, 계층적으로 동작하여 실시간 모델링을 위한 지연(latency)이 줄어들고, 서비스 제공을 위한 확장성이 보장되며, 컴퓨팅 자원이 효율적으로 사용되는 효과가 있다.
도 1은 본 발명의 실시예를 따르는 학습 컨텐츠 제공 시스템의 구조를 설명하기 위한 블록도
도 2는 본 발명의 실시예를 따르는 학습 컨텐츠 제공 시스템의 동작을 설명하기 위한 순서도
도 2는 본 발명의 실시예를 따르는 학습 컨텐츠 제공 시스템의 동작을 설명하기 위한 순서도
본 발명은 이하에 기재되는 실시예들의 설명 내용에 한정되는 것은 아니며, 본 발명의 기술적 요지를 벗어나지 않는 범위 내에서 다양한 변형이 가해질 수 있음은 자명하다. 그리고 실시예를 설명함에 있어서 본 발명이 속하는 기술 분야에 널리 알려져 있고 본 발명의 기술적 요지와 직접적으로 관련이 없는 기술 내용에 대해서는 설명을 생략한다.
한편, 첨부된 도면에서 동일한 구성요소는 동일한 부호로 표현된다. 그리고 첨부 도면에 있어서 일부 구성요소는 과장되거나 생략되거나 개략적으로 도시될 수도 있다. 이는 본 발명의 요지와 관련이 없는 불필요한 설명을 생략함으로써 본 발명의 요지를 명확히 설명하기 위함이다.
최근 IT 디바이스의 보급이 확대되면서, 사용자 분석을 위한 데이터 수집이 용이해지고 있다. 각각의 사용자에게 가장 적합한 형태의 컨텐츠를 제공하기 위해서는 정밀한 사용자 분석이 필수적이며, 이를 위해서는 사용자 데이터의 수집이 중요할 것이다.
이러한 흐름과 함께 특히 교육 업계에서 사용자 맞춤형 교육 컨텐츠 제공에 대한 니즈가 높다. 그런데 이와 같이 사용자 맞춤형 교육 컨텐츠를 제공하기 위해서는 각각의 컨텐츠 및 사용자 개개인에 대한 정밀한 분석이 필요하다. 이를 위해 최근 머신러닝의 기법을 적용하여 교육 컨텐츠 및 사용자를 모델링하는 기술이 본격적으로 상용화되고 있다.
그러나 현재 상용화된 머신러닝 솔루션은 진정한 의미의 실시간 모델링을 지원하지 않는다. 실시간 모델링은 사용자 데이터 수집과 동시에 사용자 모델에 해당 데이터를 반영하는 방식으로, 이를 통하면 보다 사용자에 대한 정밀한 분석이 가능하며, 해당 시점의 사용자에게 최적화된 교육 컨텐츠를 추천할 수 있다.
이는 종래의 머신러닝 솔루션이 물리적인 하드웨어 서버와 일체로 제공되는 소프트웨어의 형태로서, 임의의 서비스를 구성하는 각각의 기능들을 분리하지 않고, 하나의 단위로 운용하기 때문이다.
보다 구체적으로, 종래의 머신러닝 솔루션은 임의의 서비스 기능에 물리적인 하드웨어 서버의 리소스를 일체로 할당하는 방식으로 동작한다. 예를 들면, 실력이 향상된 특정 사용자를 위한 문제 추천 서비스를 제공하기 위해, 전체 사용자에 대한 학습 데이터가 대량으로 수집되면, 수집된 데이터를 적용하여 전체 사용자 모델을 업데이트하고, 전체 사용자 모델이 업데이트되면, 업데이트된 전체 사용자 모델 중, 해당 사용자 모델을 적용하여 학습 컨텐츠를 추천하는 일련의 사이클이 진행되며, 이와 같은 사이클에 컴퓨팅 리소스가 일체로 할당된다. 이와 같은 구조에서 실시간 모델링을 지원하게 되면 막대한 컴퓨팅 리소스가 필요할 것이다. 모델을 한번 업데이트 하기 위해서는 매우 짧은 시간 내에 전체 사이클이 동작해야 하기 때문이다.
이와 같은 문제를 해결하기 위해 종래에는, 일주일, 한달 등 임의의 주기로 데이터를 학습하거나, 다른 사용자들의 실력은 고정되어 있다고 가정하고 해당 사용자의 데이터만 반영하여 모델링하는 방법을 취해왔다. 그러나 이와 같은 방법은 시간의 흐름에 따르라 변경되는 사용자의 상태를 충분히 반영하지 못하며, 나아가 전체 사이클 단위로 프레임워크가 운용되기 때문에 서비스 확장이 용이하지 않은 문제가 여전히 존재한다.
본 발명은 이러한 문제를 해결하기 위한 것이다. 보다 구체적으로 본 발명의 실시예를 따르는 컨텐츠 제공 시스템은 가상화 환경에서 구현되며, 전체 서비스를 구성하는 각각의 기능 블록들이 독립적, 병렬적, 계층적으로 운용될 수 있다. 나아가 본 발명의 실시예를 따르면, 각각의 기능 블록들은 분산 컴퓨팅 환경에서 독립적, 병렬적, 계층적으로 동작하기 때문에 지연 없는 실시간 모델링이 가능하고, 추가적인 서비스 제공을 위한 확장성이 보장되며, 컴퓨팅 자원이 효율적으로 사용되는 효과가 있다.
도 1은 본 발명의 실시예를 따르는 학습 컨텐츠 제공 시스템 (100)의 구조를 설명하기 위한 블록도이다.
본 발명의 실시예를 따르는 학습 컨텐츠 제공 시스템은 도 1에 도시된 바와 같이 서비스 레이어 (10), 리액티브 레이어 (20), 적어도 하나 이상의 어플리케이션을 포함하는 어플리케이션 레이어 (30) 및 적어도 하나 이상의 데이터베이스를 포함하는 데이터 레이어 (40)를 포함하여 구성될 수 있다. 한편, 리액티브 레이어(20)는 다른 레이어에서 구독하는 임의의 이벤트에 대한 메시지 큐(Queue)를 포함할 수 있다.
도 1에 도시된 각각의 레이어는 학습 컨텐츠 제공 시스템을 구성하는 컴포넌트를 각각의 기능 단위로 분리한 기능 블록으로 이해될 수 있다. 특히 본 명세서에서 학습 컨텐츠 제공 시스템 (100)은 가상화된 분산 컴퓨팅 환경에서 구현되기 때문에 VM(Virtual Machine) 서버, 범용 프로세서를 탑재한 하드웨어, 클라우딩 컴퓨터에서 실행될 수 있다.
도 1의 서비스 레이어 (10)는 사용자 디바이스와 데이터를 송수신하는 기능을 수행할 수 있다. 예를 들어 서비스 레이어 (10)는 사용자 디바이스에 사용자 진단용 문제를 제공하고, 사용자 풀이 결과 데이터를 수신하고, 사용자 추천 문제를 제공하는 기능을 수행할 수 있다. 나아가 서비스 레이어 (10)는 데이터 레이어 (40)에 접근하여 사용자 디바이스에서 수집된 데이터를 데이터베이스에 반영하며 또는 데이터베이스에 저장된 컨텐츠를 사용자 디바이스에 제공할 수 있다.
나아가 리액티브 레이어 (20)는 다른 레이어에 이벤트가 발생하면 다른 레이어로부터 전달된, 이벤트 발생을 노티스하는 메시지를 큐에 홀딩하고 미리 설정된 어플리케이션이 해당 메시지를 구독하도록 지원하는 기능을 수행할 수 있다. 예를 들어 리액티브 레이어 (20)는 데이터 레이어(40)의 데이터베이스 업데이트 이벤트를 구독하고 이벤트 발생 노티스 메시지를 큐에 홀딩하여 어플리케이션 레이어(30)에서 상기 이벤트를 구독하도록 지원할 수 있다.
한편, 어플리케이션 레이어 (30)는 각각의 기능을 수행하는 복수의 어플리케이션을 포함하여, 해당 어플리케이션이 독립적으로 동작하기 위해 스케줄링하는 기능을 수행할 수 있다. 예를 들어 본 발명의 실시예를 따르는 어플리케이션 레이어는, 문제 모델링 어플리케이션, 사용자 모델링 어플리케이션, 문제 추천 어플리케이션, 강의 추천 어플리케이션, 신규 사용자 진단용 문제 추출 어플리케이션, 외부 시험 점수 예측 어플리케이션 등을 포함할 수 있다.
마지막으로, 데이터 레이어 (40)는 저장소이며, 컨텐츠 제공 시스템 (100)을 운영하기 위한 각종 데이터베이스를 생성하고, 다른 레이어에 엑세스를 제공하는 기능을 수행할 수 있다.
특히 본 발명의 실시예를 따르면, 도 1에 도시된 바와 같이 서비스 레이어 (10), 리액티브 레이어 (20), 어플리케이션 레이어 (30) 및 데이터 레이어 (40)는 각각의 레이어별로 자원이 할당되고 독립적, 병렬적으로 동작하기 때문에 임의의 시점에 하나의 레이어의 동작이 다른 레이어의 동작에 영향을 미치지 않는 특징이 있다.
예를 들어 본 발명의 실시예를 따르면, 서비스 레이어에서 사용자의 문제 풀이 결과 데이터를 수집하는 프로세스와, 어플리케이션 레이어에서 임의의 사용자에 대한 추천 문제 추출 프로세스는 동시에 수행될 수 있다. 나아가 서비스 레이어에서 오류가 발생해도 어플리케이션 레이어의 동작은 계속될 수 있다. 이를 따르면 임의의 기능 블록 또는 레이어에서 발생한 실패가 다른 기능 블록 또는 레이어에 영향을 미치지 않기 때문에 시스템 내결함성이 향상되는 효과가 있다.
나아가 본 발명의 실시예를 따르면, 어플리케이션 레이어는 각각의 기능을 수행하는 어플리케이션을 적어도 하나 이상 포함할 수 있으며, 상기 어플리케이션들 역시 독립적인 기능 블록으로 설계되어, 임의의 어플리케이션의 동작이 다른 어플리케이션의 동작에 영향을 미치지 않고, 독립적으로 동작하는 특징이 있다. 예를 들어 본 발명의 실시예를 따르면 어플리케이션 레이어의 임의의 어플리케이션에서 문제 모델을 업데이트하는 프로세스와 다른 어플리케이션에서 신규 사용자 진단용 문제를 추출하는 프로세스는 동시에 수행될 수 있다.
한편, 본 발명의 실시예를 따르는 콘텐츠 제공 시스템을 구성하는 각각의 레이어 또는 기능 블록들은 도 1에 도시된 바와 같이 독립적으로 동작하지만 동시에 계층적 구조를 이루며, 상호작용하는 특징이 있다. 예를 들어 서비스 레이어의 프로세스에 따라 신규 사용자의 문제풀이 결과 데이터가 수집되면, 데이터 레이어에서 상기 데이터를 반영하여 데이터베이스가 업데이트되고, 어플리케이션 레이어의 특정 어플리케이션에서 상기 데이터베이스를 이용하여 신규 사용자 모델이 생성되고,다른 어플리케이션에서 상기 모델을 이용하여 해당 사용자에 대한 추천 문제가 추출되는 일련의 절차가 진행될 수 있다.
본 발명의 실시예를 따르는 컨텐츠 제공 시스템은 다른 레이어에서 발생한 이벤트를 리액티브 레이어 (20)를 통해 구독할 수 있고, 이벤트 결과가 데이터 레이어 (40)에 반영되어 다른 레이어에서 접근할 수 있도록 설계되어 있다. 이와 같은 구조로 인하여 각 레이어들은 독립적으로 동작하지만 동시에 상호작용하여 기능할 수 있는 것이다.
나아가 본 발명의 실시예를 따르는 같이 서비스 레이어 (10), 리액티브 레이어 (20), 적어도 하나 이상의 어플리케이션을 포함하는 어플리케이션 레이어 (30) 및 데이터 레이어 (40)는 도 1에 도시된 바와 같이, 독립적인 구조로 설계되어 각각의 기능 모듈을 필요에 따라 조합할 수 있어 다양한 서비스를 생성할 수 있는 특징이 있다.
예를 들어, 어플리케이션 레이어 (30)에 새로운 서비스 제공을 위한 신규 어플리케이션이 추가되면, 신규 어플리케이션의 동작에 필요한 이벤트 알림 메시지 구독을 리액티브 레이어 (20)에 미리 둥록하고, 신규 어플리케이션의 동작에 필요한 데이터베이스에 대한 접근 허가를 데이터 레이어 (40)에 미리 등록하는 방식으로 기존의 시스템을 용이하게 확장할 수 있다.
예를 들어 사용자 맞춤형 강의를 추출하는 기능을 수행하는 신규 어플리케이션을 어플리케이션 레이어에 배치한 경우, 어플리케이션 레이어는 사용자 모델 업데이트 이벤트, 강의 업데이트 이벤트 알림 메시지 구독을 리액티브 레이어에 등록하고, 상기 이벤트 알림 메시지가 구독되면, 사용자 모델 데이터 베이스 및 강의 데이터베이스에 접근하여 사용자 맞춤형 강의를 추천하는 기능을 수행할 수 있을 것이다. 즉, 본 발명의 실시예를 따르면, 어플리케이션 레이어에 임의의 어플리케이션을 추가하고, 추가된 어플리케이션의 동작에 필요한 이벤트 알림 메시지 구독 및 데이터베이스 접근 허가를 리액티브 레이어와 데이터 레이어에 등록하는 방식으로 용이하게 서비스 확장이 가능하다.
도 2는 본 발명의 실시예를 따르는 학습 컨텐츠 제공 시스템의 동작을 설명하기 위한 순서도이다. 도 2는 리얼타임 모델링 서비스를 제공하는 일련의 과정에서, 본 발명의 실시예를 따르는 컨텐츠 제공 시스템의 내부 동작을 예시하는 순서도이다.
본 발명의 실시예를 따르는 컨텐츠 제공 시스템 (100)은 서비스 레이어 (10), 리액티브 레이어 (20), 어플리케이션 레이어 (30) 및 데이터 레이어 (40)를 포함하여 구성될 수 있으며, 도 2의 예에서 어플리케이션 레이어 (30)는 문제 모델을 생성하고 업데이트하는 제 1 어플리케이션, 사용자 모델을 생성하고 업데이트하는 제 2 어플리케이션, 사용자 맞춤형 문제를 추출하는 제 3 어플리케이션을 포함할 수 있다.
나아가 도 2의 예에서 데이터 레이어 (40)는 문제 및/또는 강의 등 컨텐츠를 포함하는 컨텐츠 데이터베이스 및 사용자 식별 정보를 포함하는 사용자 데이터베이스를 포함할 수 있다. 나아가 사용자 문제 풀이 결과 데이터, 사용자 강의 소비 결과 데이터 등은 별도의 데이터베이스로 관리되거나 또는 사용자 데이터베이스에 포함되어 관리될 수 있다. (단계 222) 나아가 데이터 레이어는 임의의 시점의 문제 모델 (단계 224) 및 사용자 모델 (단계 226), 나아가 문제 모델과 사용자 모델의 업데이트 정보를 포함할 수 있다.
상기 문제 모델 및 사용자 모델은 상기 제 1 어플리케이션 및 상기 제 2 어플리케이션의 동작에 따라 생성되고 데이터 레이어 (40)에 저장된 것이다. 보다 구체적으로, 서비스 레이어에서 사용자의 문제 풀이 결과 데이터가 수집되면, 상기 제 1 어플리케이션 및 상기 제 2 어플리케이션에서 각각의 문제 및/또는 각각의 사용자로 구성된 다차원 공간을 구성하고, 사용자의 문제별 정오답 데이터 또는 문제의 보기별 선택 데이터 등을 기준으로 상기 다차원 공간에 값을 부여하여, 각각의 문제 및 사용자에 대한 벡터를 계산하는 방식으로 문제 및 사용자 모델이 생성될 수 있다.
이 경우 사용자 모델은 개별 사용자의 전체 문제들에 대한 특성을 벡터 값으로 표현한 것이며, 문제 모델은 개별 문제의 전체 사용자들에 대한 특성을 벡터 값으로 표현한 것으로 해석될 수 있다. 본 발명의 실시예에서 상기 문제 모델 및/또는 사용자 모델을 계산하는 방법은 제한되지 않으며, 이를 계산하기 위해 사용되는 빅데이터 분석 프레임워크에 적용된 종래 기술에 따를 수 있다.
나아가 본 발명에서 상기 문제 모델 및 상기 사용자 모델이 어떤 속성, 또는 피처를 포함하고 있는지는 제한하여 해석될 수 없음을 유의해야 한다. 예를 들어, 사용자 모델은 전체 사용자 중 개별 사용자의 특성을 표현하도록, 문제 모델은 전체 문제 중 개별 문제의 특성을 표현하도록 표현될 수 있다.
또한 본 발명의 실시예를 따르면, 상기 사용자 모델은 상기 사용자가 임의의 개념에 대해 이해하고 있는 정도, 즉 개념의 이해도를 포함할 수 있다. 나아가 상기 문제 모델은 상기 문제가 어떤 개념들로 구성되어 있는지, 즉 개념 구성도를 포함할 수 있다. 나아가 본 발명의 실시예를 따르면 사용자 모델 및 문제 모델을 이용하면, 특정 사용자의 특정 문제에 대한 정답 확률이 추정될 수 있으며, 사용자 모델은 임의의 문제에 대한 해당 사용자의 정답 확률 또는 임의의 문제 보기에 대한 해당 사용자의 선택 확률을 의미하도록 표현될 수 있다.
한편, 어플리케이션 레이어 (30)는 각 어플리케이션의 동작에 필요한 이벤트 알림 메시지 구독을 리액티브 레이어 (20)에 미리 등록할 수 있다. (단계 211) 예를 들어 제 1 어플리케이션은 풀이 결과 데이터 추가 이벤트, 신규 문제 추가 등 문제 데이터베이스 업데이트 이벤트 알림 메시지를 구독할 수 있으며, 제 2 어플리케이션은 풀이 결과 데이터 추가 이벤트, 신규 사용자 유입 등 사용자 데이터베이스 업데이트 이벤트 알림 메시지를 구독할 수 있다. 나아가 제 3 어플리케이션은 문제 모델 업데이트 이벤트, 사용자 모델 업데이트 이벤트 알림 메시지를 구독할 수 있을 것이다.
한편, 리액티브 레이어 (20)는 상기 어플리케이션이 구독한 이벤트에 대한 메시지 구독을 데이터 레이어 (40)에 등록할 수 있다. (단계 214) 본 발명의 선호되는 실시예를 따르면, 리액티브 레이어 (20)는 데이터 레이어 (40)에 대해서만 이벤트를 구독하고, 어플리케이션 레이어 (30)는 리액티브 레이어 (20)에 대해서만 이벤트를 구독하도록 설계될 수 있다. 즉, 어플리케이션 레이어 (30)는 해당 이벤트 알림 메시지를 데이터레이어에서 직접 구독하지 않고, 리액티브 레이어를 통해 구독하는 특징이 있다.
한편, 서비스 레이어 (10)는 다른 장치, 예를 들어 사용자 디바이스와 데이터를 송수신하는 기능을 수행할 수 있다. 예를 들어, 서비스 레이어에서 사용자의 문제 풀이 결과 데이터가 수신된 경우, (단계 230) 해당 풀이 결과 데이터는 데이터 레이어에 제공되고, (단계 232) 데이터 레이어 (40)는 수신된 풀이 결과 데이터를 데이터베이스에 적용하여, 사용자 데이터베이스 또는 풀이 결과 데이터베이스를 업데이트할 수 있다. (단계 234)
특히 본 발명의 선호되는 실시예를 따르면, 서비스 레이어(10)는 리액티브 레이어 (20) 또는 어플리케이션 레이어 (30)와 직접 상호 작용하지 않고, 오직 데이터 레이어 (40)를 통해서만 간접적으로 상호 작용하는 특징이 있다. 즉, 서비스 레이어 (10)는 사용자 디바이스로부터 정보가 수집되면 데이터 레이어에 접근하여 해당 정보를 DB에 반영하며, 리액티브 레이어에 해당 이벤트를 알리거나 어플리케이션 레이어에 직접 접근할 수 없도록 설계될 수 있다. 이 경우, 서비스 레이어에서 수집된 데이터는 데이터 레이어 (40)를 통해서만 다른 레이어에 반영될 것이다.
본 발명의 실시예를 따르는 데이터 레이어 (40)는 풀이 결과 데이터베이스 업데이트 이벤트에 대한 알림 메시지를 리액티브 레이어에 제공할 수 있다. (단계 238) 한편, 도 2에 별도로 도시된 것은 아니지만, 본 발명의 다른 실시예를 따르면, 서비스 레이어 (10)는 풀이 결과 데이터 수신 이벤트에 대한 알림 메시지를 리액티브 레이어 (20)에 제공하도록 구현될 수도 있다.
이후, 리액티브 레이어 (20)는 해당 메시지를 메시지에 큐에 저장하고, 제 1 어플리케이션 및 제 2 어플리케이션이 리액티브 레이어 (20)로부터 해당 메시지를 구독할 수 있다. (단계 240)
어플리케이션 레이어(30)는 리액티브 레이어 (20)로부터 구독한 메시지를 트리거로, 해당 이벤트에 관련된 어플리케이션을 실행시킬 수 있다. 예를 들어, 제 1 어플리케이션에 상기 메시지가 구독되면, 상기 제 1 어플리케이션은 문제 모델을 업데이트하는 기능을 수행하기 시작할 것이다. 보다 구체적으로, 제 1 어플리케이션은 데이터 레이어 (40)에 접근하여 업데이트된 풀이 결과 데이터베이스로부터 추가된 풀이 결과 데이터를 획득하고, 문제 모델 데이터베이스로부터 해당 시점의 문제 모델을 회득하고, 추가된 풀이 결과 데이터를 이용하여 문제 모델을 업데이트할 수 있다. (단계 250, 252, 254)
한편, 제 2 어플리케이션 역시 상기 메시지가 구독되면, 이를 트리거로 해당 기능을 수행하기 시작할 것이다. 보다 구체적으로, 제 2 어플리케이션은 데이터 레이어 (40)에 접근하여 업데이트된 풀이 결과 데이터베이스로부터 추가된 풀이 결과 데이터를 획득하고, 사용자 모델 데이터베이스로부터 해당 시점의 사용자 모델을 회득하고, 추가된 풀이 결과 데이터를 이용하여 사용자 모델을 업데이트할 수 있다. (단계 262, 264, 266)
이때, 본 발명의 실시예를 따르면, 단계 250, 252, 254 및 단계 262, 264, 266은 동시에 독립적으로 진행될 수 있으며, 어플리케이션 레이어 (30)의 단계 250, 252, 254 및 단계 262, 264, 266의 수행은, 다른 레이어의 동작에 영향을 미치지 않는 특징이 있다. 예를 들어, 어플리케이션 레이어 (30)에서 해당 과정이 수행되는 동안, 서비스 레이어 (10) 다른 풀이 결과 데이터를 수집할 수 있으며, (단계 232) 제 3 어플리케이션은 해당 시점의 문제 모델 및 사용자 모델을 이용하여 각각의 사용자에게 추천할 문제를 추출하는 기능을 수행할 수 있다.
한편, 제 1 어플리케이션의 동작에 따라 문제 모델이 업데이트되면 (단계 254), 문제 모델 업데이트 데이터는 데이터 레이어 (40)에 제공되어 (단계 256) 문제 모델 DB가 업데이트될 것이다. (단계 260) 나아가 데이터 레이어는 문제 모델 업데이트 이벤트에 대한 알림 메시지를 리액티브 레이어에 제공할 것이다. (단계 260) 나아가 제 2 어플리케이션의 동작에 따라 사용자 모델이 업데이트되면 (단계 266), 사용자 모델 업데이트 데이터는 데이터 레이어 (40)에 제공되고 (단계 268) 데이터 레이어는 사용자 모델 업데이트 데이터를 반영하여 사용자 모델을 업데이트할 것이다. (단계 270) 나아가, 데이터 레이어는 사용자 모델 업데이트 이벤트에 대한 알림 메시지를 리액티브 레이어에 제공할 수 있다. (단계 272)
한편, 상기 제 3 어플리케이션은 문제 모델 업데이트 이벤트, 사용자 모델 업데이트 이벤트 구독을 등록하였기 때문에, 제 3 어플리케이션은 리액티브 레이어 (20)의 메시지 큐에서 해당 이벤트에 대한 노티스 메시지를 각각 구독할 수 있다. (단계 274)
제 3 어플리케이션은, 상기 이벤트 메시지 구독을 트리거로, 해당 기능을 수행하기 시작할 것이다. 보다 구체적으로, 제 3 어플리케이션은, 데이터 레이어 (40)의 데이터베이스에 접근하여 (단계 276) 추가된 풀이 결과 데이터가 반영된 사용자 모델을 획득하고, 문제 데이터베이스에 접근하여 (단계 278) 업데이트된 사용자 모델에 대한 추천 문제를 추출할 수 있다. (단계 280)
예를 들어, 제 3 어플리케이션은, 문제 데이터베이스 중 사용자가 이미 풀어본 문제를 제외하고, 나머지 문제들을 특정 사용자의 정답 확률이 낮은 순서대로 정렬하여 해당 사용자에 대한 추천 문제 리스트를 작성할 수 있다. 또 다른 예로 제 3 어플리케이션은 업데이트된 사용자 모델을 적용하여 사용자가 이미 풀어본 문제라도 해당 문제에 대한 해당 사용자의 정답 확률이 임계값 이하인 경우, 상기 문제를 추천 문제로 추출할 수도 있다.
이때, 본 발명의 실시예를 따르면, 단계 276, 278, 280의 수행은 다른 레이어의 동작에 영향을 미치지 않는 특징이 있다. 예를 들어 어플리케이션 레이어 (30)에서 단계 276, 278, 280 이 수행되는 동안, 서비스 레이어 (10)는 다른 풀이 결과 데이터를 수집할 수 있으며, (단계 232) 제 1 어플리케이션은 상기 이벤트가 구독되면, 문제 모델을 업데이트하는 기능을 수행할 수 있으며, (단계 240, 250, 252, 254) 제 2 어플리케이션 역시 상기 이벤트가 구독되면, 사용자 모델을 업데이트하는 일련의 과정을 수행할 수 있다. (단계 240, 262, 264, 266)
한편, 제 3 어플리케이션에서 업데이트된 사용자 모델을 적용한 추천 문제 추출이 완료되면 (단계 280), 데이터 레이어 (40)에 접근하여 추천 문제 정보를 문제 데이터베이스 및/또는 사용자 데이터베이스에 반영할 것이다. 이후, 서비스 레이어에서, 추천 문제에 대한 사용자 요청을 수신하면, 서비스 레이어(10)는 데이터 레이어에 접근하여 추천 문제 정보를 획득하고, 이를 해당 사용자에게 제공할 수 있다. (단계 286)
본 명세서와 도면에 게시된 본 발명의 실시 예들은 본 발명의 기술 내용을 쉽게 설명하고 본 발명의 이해를 돕기 위해 특정 예를 제시한 것뿐이며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 게시된 실시 예들 이외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다.
Claims (6)
- 가상화된 분산 컴퓨팅 환경에서 구현되는, 학습 컨텐츠를 제공하는 시스템에 있어서,
사용자 디바이스로부터 데이터를 수신하는 제 1 레이어;
다른 레이어에 이벤트가 발생하면, 이벤트 발생에 대한 노티스 메시지를 수신하고, 상기 이벤트를 특정하여 등록한 다른 레이어에서 상기 메시지를 구독할 수 있도록 지원하는 제 2 레이어;
각각의 기능을 수행하는 복수의 어플리케이션을 포함하며, 상기 어플리케이션이 독립적으로 동작하며, 상기 제 2 레이어로부터 상기 어플리케이션의 동작에 필요한 특정 이벤트에 대한 노티스 메시지를 구독하는 제 3 레이어; 및
적어도 하나 이상의 데이터베이스를 포함하고, 다른 레이어에 상기 데이터베이스에 대한 엑세스를 제공하고, 임의의 이벤트에 대한 노티스 메시지를 생성하는 제 4 레이어를 포함하며,
상기 제 1 레이어, 상기 제 2 레이어, 상기 제 3 레이어 및 상기 제 4 레이어는, 임의의 시점에 하나의 레이어의 동작이 다른 레이어의 동작에 영향을 미치지 않으며, 임의의 이벤트에 대한 메시지 구독을 통해 다른 레이어에서 생성된 데이터를 공유하는 것을 특징으로 하는 학습 컨텐츠 제공 시스템. - 제 1 항에 있어서,
상기 제 1 레이어는, 상기 제 2 레이어 및 상기 제 3 레이어와 상호작용하지 않고, 상기 제 4 레이어에 접근할 수 있으며, 상기 사용자 디바이스로부터 수신된 데이터를 상기 제 4 레이어에 제공하고, 상기 사용자 디바이스로부터 요청받은 데이터를 상기 제 4 레이어에 요청하는 기능을 수행하는 것을 특징으로 하는 학습 컨텐츠 제공 시스템. - 제 1항에 있어서,
상기 제 2 레이어는, 상기 제 4 레이어로부터 이벤트에 대한 노티스 메시지를 수신하며, 상기 이벤트를 특정하여 등록한 어플리케이션이 상기 메시지를 구독할 수 있도록 지원하는 기능을 수행하는 것을 특징으로 하는 학습 컨텐츠 제공 시스템. - 제 1 항에 있어서,
상기 제 3 레이어는, 상기 제 2 레이어로부터 구독한 메시지를 트리거로, 해당 이벤트에 관련된 어플리케이션을 실행시키는 것을 특징으로 하는 학습 컨텐츠 제공 시스템. - 가상화된 분산 컴퓨팅 환경에서 복수의 레이어를 포함하여 구현되는 학습 컨텐츠 제공 시스템에서, 실시간 사용자 모델을 업데이트하는 방법에 있어서,
제 1 레이어에서 사용자 디바이스로부터 문제에 대한 사용자의 풀이 결과 데이터를 수신하며, 상기 풀이 결과 데이터를 복수의 데이터베이스를 포함하는제 4 레이어에 제공하는 단계;
제 2 레이어에서, 상기 제 4 레이어로부터, 상기 사용자 풀이 결과 데이터를 반영한 데이터베이스 업데이트 이벤트를 노티스하는 제 1 메시지가 구독되면, 상기 제 1 메시지를 메시지 큐에 저장하는 단계;
각각의 기능을 독립적으로 수행하는 복수의 어플리케이션을 포함하는 제 3 레이어에서, 사용자 모델을 생성하는 제 1 어플리케이션이 상기 제 2 레이어로부터 상기 이벤트에 대한 제 1 메시지를 구독하는 단계;
상기 제 1 어플리케이션이, 상기 제 1 메시지를 트리거로, 상기 제 4 레이어로부터 상기 풀이 결과 데이터 및 해당 시점의 사용자 모델 데이터를 획득하고, 상기 풀이 결과 데이터를 상기 사용자 모델에 적용하여 상기 사용자 모델을 업데이트하는 단계; 및
상기 제 2 레이어에서, 상기 제 4 레이어로부터, 업데이트된 사용자 모델을 반영한 데이터베이스 업데이트 이벤트를 노티스하는 제 2 메시지가 구독되면, 상기 제 2 메시지를 상기 메시지 큐에 저장하는 단계를 포함하는 것을 특징으로 하는 사용자 모델 업데이트 방법. - 제 5 항에 있어서,
상기 제 3 레이어에서, 상기 제 2 레이어로부터 상기 제 2 메시지가 구독되면, 추천 문제를 추출하는 제 2 어플리케이션이 상기 제 2 메시지를 트리거로, 상기 제 4 레이어에서, 업데이트된 사용자 모델 데이터를 획득하고, 상기 사용자 모델을 이용하여 사용자 맞춤형 문제를 추출하는 단계를 포함하는 것을 특징으로 하는 사용자 모델 업데이트 방법.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180112571A KR20200036087A (ko) | 2018-09-20 | 2018-09-20 | 실시간 모델링을 위한 머신 러닝 프레임워크의 운용 방법, 장치 및 컴퓨터 프로그램 |
PCT/KR2019/012255 WO2020060298A1 (ko) | 2018-09-20 | 2019-09-20 | 실시간 모델링을 위한 머신 러닝 프레임워크의 운용 방법, 장치 및 컴퓨터 프로그램 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180112571A KR20200036087A (ko) | 2018-09-20 | 2018-09-20 | 실시간 모델링을 위한 머신 러닝 프레임워크의 운용 방법, 장치 및 컴퓨터 프로그램 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200128189A Division KR20200131187A (ko) | 2020-10-05 | 2020-10-05 | 실시간 모델링을 위한 머신 러닝 프레임워크의 운용 방법, 장치 및 컴퓨터 프로그램 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20200036087A true KR20200036087A (ko) | 2020-04-07 |
Family
ID=69887726
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180112571A KR20200036087A (ko) | 2018-09-20 | 2018-09-20 | 실시간 모델링을 위한 머신 러닝 프레임워크의 운용 방법, 장치 및 컴퓨터 프로그램 |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR20200036087A (ko) |
WO (1) | WO2020060298A1 (ko) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114193459B (zh) * | 2022-01-27 | 2023-08-11 | 中国第一汽车股份有限公司 | 一种机械手臂的控制***及其测试方法 |
CN116736986B (zh) * | 2023-08-09 | 2023-11-10 | 北京君合创想科技发展有限公司 | 基于原理学习数据交互优化的方法、***及装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101836206B1 (ko) | 2016-10-26 | 2018-04-19 | (주)뤼이드 | 개인 맞춤형 교육 컨텐츠를 제공하는 방법, 장치 및 컴퓨터 프로그램 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100837705B1 (ko) * | 2006-12-08 | 2008-06-13 | 한국전자통신연구원 | 개방형 홈네트워크 프레임워크 구성 방법 및 그 운용 방법 |
KR101055552B1 (ko) * | 2009-03-31 | 2011-08-08 | 한양대학교 산학협력단 | 이기종 센서 네트워크의 데이터 통합 센서 네트워크 미들웨어 시스템 |
KR101773065B1 (ko) * | 2015-05-08 | 2017-08-30 | (주)뤼이드 | 개인 맞춤형 교육 컨텐츠를 제공하는 방법, 장치 및 컴퓨터 프로그램 |
GB201702450D0 (en) * | 2017-02-15 | 2017-03-29 | Blue Prism Ltd | System for optimising distribution of processing an automated process |
KR101853091B1 (ko) * | 2017-05-19 | 2018-04-27 | (주)뤼이드 | 기계학습이 적용된 사용자 답변 예측 프레임워크를 통한 개인 맞춤형 교육 컨텐츠 제공 방법, 장치 및 컴퓨터 프로그램 |
-
2018
- 2018-09-20 KR KR1020180112571A patent/KR20200036087A/ko not_active IP Right Cessation
-
2019
- 2019-09-20 WO PCT/KR2019/012255 patent/WO2020060298A1/ko active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101836206B1 (ko) | 2016-10-26 | 2018-04-19 | (주)뤼이드 | 개인 맞춤형 교육 컨텐츠를 제공하는 방법, 장치 및 컴퓨터 프로그램 |
Also Published As
Publication number | Publication date |
---|---|
WO2020060298A1 (ko) | 2020-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10768988B2 (en) | Real-time partitioned processing streaming | |
Snowdon et al. | Aviary: Design issues for future large-scale virtual environments | |
US20200089515A1 (en) | Dynamic application migration between cloud providers | |
US11782821B2 (en) | Page simulation system | |
US20190079916A1 (en) | Using syntactic analysis for inferring mental health and mental states | |
US20230095180A1 (en) | Question answering information completion using machine reading comprehension-based process | |
CN111400473A (zh) | 意图识别模型的训练方法及装置、存储介质及电子设备 | |
US10282411B2 (en) | System, method, and recording medium for natural language learning | |
KR20200036087A (ko) | 실시간 모델링을 위한 머신 러닝 프레임워크의 운용 방법, 장치 및 컴퓨터 프로그램 | |
Zschörnig et al. | A cloud-based Analytics-Platform for user-centric Internet of Things domains–Prototype and Performance Evaluation | |
Meurisch et al. | An extensible pervasive platform for large-scale anticipatory mobile computing | |
Anjos et al. | BIGhybrid: a simulator for MapReduce applications in hybrid distributed infrastructures validated with the Grid5000 experimental platform | |
CN111813816B (zh) | 数据处理方法、装置、计算机可读存储介质和计算机设备 | |
US20210073664A1 (en) | Smart proficiency analysis for adaptive learning platforms | |
Huang et al. | Performance and replica consistency simulation for quorum-based NoSQL system cassandra | |
US20200327364A1 (en) | Clustering simulation failures for triage and debugging | |
US20160321259A1 (en) | Network insights | |
KR20200131187A (ko) | 실시간 모델링을 위한 머신 러닝 프레임워크의 운용 방법, 장치 및 컴퓨터 프로그램 | |
US20200134414A1 (en) | Determining rationale of cognitive system output | |
US11810022B2 (en) | Contact center call volume prediction | |
CN108762957B (zh) | 一种云平台演示***的生成方法和装置 | |
Bhat et al. | Virtualization and visualization of virtual memory system for effective teaching–learning | |
Di Rocco et al. | Using software visualization to support the teaching of distributed programming | |
US20200261018A1 (en) | Secure Platform for Point-to-Point Brain Sensing | |
US20190286732A1 (en) | Augmenting structured data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AMND | Amendment | ||
E601 | Decision to refuse application | ||
AMND | Amendment | ||
X601 | Decision of rejection after re-examination |