WO2020060298A1 - 실시간 모델링을 위한 머신 러닝 프레임워크의 운용 방법, 장치 및 컴퓨터 프로그램 - Google Patents
실시간 모델링을 위한 머신 러닝 프레임워크의 운용 방법, 장치 및 컴퓨터 프로그램 Download PDFInfo
- Publication number
- WO2020060298A1 WO2020060298A1 PCT/KR2019/012255 KR2019012255W WO2020060298A1 WO 2020060298 A1 WO2020060298 A1 WO 2020060298A1 KR 2019012255 W KR2019012255 W KR 2019012255W WO 2020060298 A1 WO2020060298 A1 WO 2020060298A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- layer
- message
- event
- user
- application
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 20
- 238000010801 machine learning Methods 0.000 title description 8
- 238000004590 computer program Methods 0.000 title 1
- 230000006870 function Effects 0.000 claims abstract description 26
- 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
- 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
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 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
Definitions
- the present invention relates to the architecture of a data analysis framework. More specifically, the present invention relates to an architecture design and operation method for providing a variety of user-customized services without delay while learning a large amount of data in real time in a machine learning framework.
- Educational content has been generally provided in packages. For example, a collection of problems written on paper contains at least 700 questions per volume, and online or offline lectures are also sold at a time in groups of at least one month to study for at least one month.
- An object of the present invention is to provide a method for efficiently operating an educational content providing system to which machine learning is applied. More specifically, the present invention relates to a method of virtualizing each functional block constituting the system based on a cloud, and configuring each functional block to operate independently and in parallel, and to interact simultaneously.
- a system for providing learning content implemented in a virtualized distributed computing environment according to an embodiment of the present invention, includes: a first layer for receiving data from a user device; A second layer that receives a notifies message about the occurrence of an event when an event occurs in another layer, and supports to subscribe the message in another layer that has specified and registered the event; A third layer including a plurality of applications performing each function, the applications operating independently, and subscribing from the second layer, a Notis message for a specific event required for the operation of the application; And a fourth layer including at least one or more databases, providing access to the database to other layers, and generating a notification message for any event, including the first layer, the second layer, and the second layer.
- the third layer and the fourth layer are characterized in that the operation of one layer does not affect the operation of the other layer at any point in time, and the data generated in the other layer is shared through message subscription for an arbitrary event. do.
- each functional block of the machine learning framework operates independently, in parallel, and hierarchically, reducing latency for real-time modeling, ensuring scalability for service provision, and efficiently computing resources. There is an effect used.
- FIG. 1 is a block diagram for explaining the structure of a learning content providing system according to an embodiment of the present invention
- Figure 2 is a flow chart for explaining the operation of the learning content providing system according to an embodiment of the present invention
- Real-time modeling is a method that collects user data and reflects the data in the user model at the same time. Through this, more precise analysis of the user is possible, and education contents optimized for the user at the time can be recommended.
- a conventional machine learning solution is in the form of software provided integrally with a physical hardware server, and operates in one unit without separating each function constituting an arbitrary service.
- the conventional machine learning solution operates by allocating resources of a physical hardware server to any service function. For example, in order to provide a problem recommendation service for a specific user with improved skills, if a large amount of training data is collected for all users, the collected data is applied to update the entire user model, and when the entire user model is updated , Among the updated entire user model, a series of cycles in which the learning content is recommended by applying the corresponding user model is performed, and computing resources are integrally allocated to the cycle. Supporting real-time modeling in such a structure would require enormous computing resources. This is because the entire cycle must run within a very short time to update the model once.
- the present invention is intended to solve this problem. More specifically, the content providing system according to an embodiment of the present invention is implemented in a virtualized environment, and each functional block constituting the entire service can be operated independently, in parallel, and hierarchically. Further, according to an embodiment of the present invention, since each functional block operates independently, parallel, and hierarchically in a distributed computing environment, real-time modeling without delay is possible, scalability is guaranteed for additional service provision, and computing resources This has the effect of being used efficiently.
- FIG. 1 is a block diagram illustrating the structure of a learning content providing system 100 according to an embodiment of the present invention.
- a learning content providing system includes a service layer 10, a reactive layer 20, an application layer 30 including at least one application, and at least one database as shown in FIG. 1. It may be configured to include a data layer 40 to include. Meanwhile, the reactive layer 20 may include a message queue for any event subscribed by another layer.
- Each layer illustrated in FIG. 1 may be understood as a functional block that separates components constituting a learning content providing system into respective functional units.
- the learning content providing system 100 since the learning content providing system 100 is implemented in a virtualized distributed computing environment in this specification, it may be executed in a virtual machine (VM) server, hardware equipped with a general purpose processor, and a cloud computer.
- VM virtual machine
- the service layer 10 of FIG. 1 may perform a function of transmitting and receiving data to and from a user device.
- the service layer 10 may provide a user diagnostic problem to a user device, a user pool may receive result data, and a user recommendation problem.
- the service layer 10 may access the data layer 40 to reflect data collected from the user device in the database or provide content stored in the database to the user device.
- the reactive layer 20 may perform a function of holding a message notifying the occurrence of an event, which is transmitted from another layer, to a queue when an event occurs in another layer, and supporting a preset application to subscribe to the message.
- the reactive layer 20 may subscribe to the database update event of the data layer 40 and hold an event occurrence notification message in a queue to support the application layer 30 to subscribe to the event.
- the application layer 30 includes a plurality of applications that perform each function, and may perform a function for scheduling the corresponding applications to operate independently.
- the application layer according to an embodiment of the present invention may include a problem modeling application, a user modeling application, a problem recommendation application, a lecture recommendation application, a problem extraction application for new user diagnosis, and an external test score prediction application.
- the data layer 40 is a storage, and can generate various databases for operating the content providing system 100 and perform a function of providing access to other layers.
- the service layer 10, the reactive layer 20, the application layer 30, and the data layer 40 are allocated and independent of resources for each layer. Since it operates in parallel, there is a feature that the operation of one layer does not affect the operation of another layer at any time.
- a process of collecting result data of a user's problem solving in a service layer and a process of extracting a recommendation problem for an arbitrary user in an application layer may be simultaneously performed. Furthermore, even if an error occurs in the service layer, the operation of the application layer may continue. According to this, system fault tolerance is improved because failures occurring in any function block or layer do not affect other function blocks or layers.
- the application layer may include at least one application that performs each function, and the applications are also designed as independent function blocks, such that the operation of any application is the operation of another application. It has the characteristic of operating independently without affecting it.
- the process of updating the problem model in any application of the application layer and the process of extracting the problem for diagnosing new users in other applications may be performed simultaneously.
- each layer or functional block constituting the content providing system operates independently as shown in FIG. 1, but simultaneously forms a hierarchical structure and interacts.
- the database is updated to reflect the data in the data layer, and a new user model is generated using the database in a specific application in the application layer.
- a series of procedures in which a recommendation problem for a corresponding user is extracted using the model may be performed.
- the content providing system is designed to subscribe to events generated in different layers through the reactive layer 20, and the event results are reflected in the data layer 40 to be accessed in other layers. have. Due to this structure, each layer operates independently, but can interact and function simultaneously.
- the service layer 10 the reactive layer 20, the application layer 30 including at least one application, and the data layer 40 as shown in FIG. It is designed in a phosphorous structure, and each functional module can be combined as needed, creating a variety of services.
- the event notification message subscription required for the operation of the new application is previously enclosed in the reactive layer 20, and the database required for the operation of the new application
- the existing system can be easily extended by registering the access permission for the data layer 40 in advance.
- the application layer registers a user model update event and lecture update event notification message subscription to the reactive layer, and the event notification message Once subscribed, you will be able to access the user model database and the lecture database to perform the function of recommending customized lectures. That is, according to an embodiment of the present invention, an application is added to an application layer, and an event notification message subscription and database access permission required for the operation of the added application are easily registered and registered in the reactive layer and data layer. It is extensible.
- 2 is a flow chart for explaining the operation of the learning content providing system according to an embodiment of the present invention.
- 2 is a flowchart illustrating an internal operation of a content providing system according to an embodiment of the present invention in a series of processes for providing a real-time modeling service.
- Content providing system 100 may be configured to include a service layer 10, a reactive layer 20, an application layer 30 and a data layer 40, the example of FIG.
- the application layer 30 may include a first application for creating and updating a problem model, a second application for creating and updating a user model, and a third application for extracting a user-specific problem.
- the data layer 40 may include a content database including content such as problems and / or lectures and a user database including user identification information. Furthermore, the result data for solving user problems, the result data for consumption of user lectures, etc. may be managed as a separate database or included in the user database and managed. (Step 222) Furthermore, the data layer may include a problem model at any point (step 224) and a user model (step 226), and further update information of the problem model and the user model.
- the problem model and the user model are generated according to the operation of the first application and the second application and stored in the data layer 40. More specifically, when the result data of the user's problem solving is collected in the service layer, the first application and the second application constitute a multidimensional space composed of each problem and / or each user, and the user answers incorrectly for each problem Problems and user models may be generated by assigning values to the multi-dimensional space based on data or view-specific selection data of problems, and calculating a vector for each problem and user.
- the user model can be interpreted as expressing the characteristics of all the problems of the individual users as vector values, and the problem model is expressing the characteristics of all users of the individual problems as vector values.
- the method for calculating the problem model and / or the user model is not limited, and may be in accordance with the prior art applied to the big data analysis framework used to calculate it.
- the problem model and the user model it is not possible to interpret the problem model and the user model by limiting which attributes or features are included.
- the user model may be expressed to express characteristics of individual users among all users
- the problem model may be expressed to express characteristics of individual problems among all problems.
- the user model may include a degree to which the user understands a certain concept, that is, a degree of understanding of the concept.
- the problem model may include what concepts the problem is composed of, that is, a conceptual diagram.
- a probability of a correct answer for a specific problem of a specific user may be estimated, and the user model may view a probability of a user's correct answer or a random problem for a certain problem It may be expressed to mean the user's selection probability for.
- the application layer 30 may pre-register the event notification message subscription required for the operation of each application to the reactive layer 20.
- the first application may subscribe to a problem database update event notification message such as a solution result data addition event or a new problem addition
- the second application may update a user database such as a solution result data addition event, new user inflow, etc. You can subscribe to event notification messages.
- the third application may subscribe to the problem model update event and the user model update event notification message.
- the reactive layer 20 may register a message subscription for an event subscribed to by the application to the data layer 40.
- the reactive layer 20 subscribes to events only for the data layer 40, and the application layer 30 subscribes events only for the reactive layer 20. It can be designed to. That is, the application layer 30 has a feature of not subscribing to the event notification message directly from the data layer, but subscribing through the reactive layer.
- the service layer 10 may perform a function of transmitting and receiving data to and from other devices, for example, a user device.
- a user device For example, when the result data of the user's problem solving is received at the service layer, (Step 230), the corresponding result data is provided to the data layer, and (Step 232), the data layer 40 records the received result data.
- the result database can be updated. (Step 234)
- the service layer 10 does not directly interact with the reactive layer 20 or the application layer 30, and indirectly interacts only through the data layer 40.
- the service layer 10 may be designed such that when information is collected from the user device, the data layer is accessed to reflect the information in the DB, and the event is notified to the reactive layer or the application layer cannot be directly accessed. In this case, data collected in the service layer will be reflected in other layers only through the data layer 40.
- the data layer 40 may provide a notification message for a solution result database update event to the reactive layer.
- Step 238 On the other hand, although not separately shown in FIG. 2, according to another embodiment of the present invention, the service layer 10 is implemented to provide a notification message for the result data receiving event to the reactive layer 20 It may be.
- the reactive layer 20 may store the message in a message in a queue, and the first application and the second application may subscribe to the message from the reactive layer 20. (Step 240)
- the application layer 30 may trigger a message subscribed from the reactive layer 20 to trigger an application related to the event. For example, when the message is subscribed to the first application, the first application will start performing the function of updating the problem model. More specifically, the first application accesses the data layer 40 to obtain the added pool result data from the updated pool result database, obtains the problem model at the time from the problem model database, and adds the pooled result data. Can be used to update the problem model. (Steps 250, 252, 254)
- the second application accesses the data layer 40 to obtain the added result data from the updated pool result database, obtains the user model at the time from the user model database, and adds the added pool result data. Can be used to update the user model. (Steps 262, 264, 266)
- steps 250, 252, 254 and steps 262, 264, 266 may be performed independently at the same time, steps 250, 252, 254 and steps 262, 264, 266 of the application layer 30
- the performance is characterized by not affecting the operation of other layers.
- the service layer 10 may collect result data from other pools (step 232), and the third application uses the problem model and the user model at the time. By doing so, it is possible to perform a function of extracting a problem to be recommended to each user.
- the problem model update data is provided to the data layer 40 (step 256) and the problem model DB will be updated.
- the data layer will provide a notification message for the problem model update event to the reactive layer.
- the user model update data is provided to the data layer 40 (Step 268), and the data layer reflects the user model update data to the user We will update the model.
- the data layer may provide a notification message for the user model update event to the reactive layer.
- the third application since the third application has registered to subscribe to the problem model update event and the user model update event, the third application can subscribe to the notified message for the event in the message queue of the reactive layer 20, respectively. (Step 274)
- the third application triggering the subscription to the event message, will start performing the corresponding function. More specifically, the third application accesses the database of the data layer 40 (step 276) to obtain a user model reflecting the added solution result data, accesses the problem database (step 278) to the updated user model Recommendation problems can be extracted. (Step 280)
- the third application may create a list of recommendation questions for the user by arranging the remaining questions in the order in which the probability of the correct answer of a specific user is low, except for problems already solved by the user in the problem database.
- the third application may extract the problem as a recommendation problem when the probability of the user's correct answer to the problem is less than or equal to a threshold, even if the user has already solved the problem by applying the updated user model.
- steps 276, 278, and 280 are characterized by not affecting the operation of other layers.
- the service layer 10 may collect result data from other pools (step 232).
- a function of updating the problem model may be performed (steps 240, 250, 252, and 254), and the second application may also perform a series of processes of updating the user model when the event is subscribed. (Steps 240, 262, 264, 266)
- the data layer 40 is accessed to reflect the recommendation problem information in the problem database and / or the user database. Then, at the service layer, upon receiving a user request for a recommendation problem, the service layer 10 may access the data layer to obtain recommendation problem information and provide it to the user. (Step 286)
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Tourism & Hospitality (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Educational Technology (AREA)
- Strategic Management (AREA)
- Marketing (AREA)
- General Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Economics (AREA)
- Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Primary Health Care (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Educational Administration (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
본 발명은, 가상화된 분산 컴퓨팅 환경에서 구현되는, 학습 컨텐츠를 제공하는 시스템에 대한 것으로, 사용자 디바이스로부터 데이터를 수신하는 제 1 레이어;다른 레이어에 이벤트가 발생하면, 이벤트 발생에 대한 노티스 메시지를 수신하고, 상기 이벤트를 특정하여 등록한 다른 레이어에서 상기 메시지를 구독할 수 있도록 지원하는 제 2 레이어; 각각의 기능을 수행하는 복수의 어플리케이션을 포함하며, 상기 어플리케이션이 독립적으로 동작하며, 상기 제 2 레이어로부터 상기 어플리케이션의 동작에 필요한 특정 이벤트에 대한 노티스 메시지를 구독하는 제 3 레이어; 및 적어도 하나 이상의 데이터베이스를 포함하고, 다른 레이어에 상기 데이터베이스에 대한 엑세스를 제공하고, 임의의 이벤트에 대한 노티스 메시지를 생성하는 제 4 레이어를 포함하며, 상기 제 1 레이어, 상기 제 2 레이어, 상기 제 3 레이어 및 상기 제 4 레이어는, 임의의 시점에 하나의 레이어의 동작이 다른 레이어의 동작에 영향을 미치지 않으며, 임의의 이벤트에 대한 메시지 구독을 통해 다른 레이어에서 생성된 데이터를 공유하는 것을 특징으로 한다.
Description
본 발명은 데이터 분석 프레임워크의 아키텍처에 대한 것이다. 보다 구체적으로 본 발명은 머신러닝 프레임워크에서 대량의 데이터를 실시간으로 학습하면서 동시에 다양한 사용자 맞춤형 서비스를 지연 시간 없이 제공하기 위한 아키텍처 설계 및 운용 방법에 대한 것이다.
지금까지 교육 컨텐츠는 일반적으로 패키지로 제공되어 왔다. 예를 들어 종이에 기록되는 문제집은 권당 최소 700문제가 수록되어 있으며, 온라인 또는 오프라인 강의 역시 1-2 시간 단위로 최소 한달간 공부할 양을 묶어서 한번에 판매된다.
그러나 교육을 받는 학생들 입장에서는 개별적으로 취약한 단원과 취약한 문제 유형이 모두 상이하기 때문에 패키지 형태보다는 개인 맞춤형 컨텐츠에 대한 니즈가 존재한다. 자신이 취약한 단원의 취약한 문제 유형만을 골라서 학습하는 것이 문제집의 7백 문제 전체를 푸는 것보다 훨씬 효율적이기 때문이다.
그러나 피교육자인 학생들 스스로 자신의 취약점을 파악하는 것은 매우 어렵다. 나아가 학원, 출판사 등 종래의 교육 업계에서도 주관적 경험과 직관에 의존하여 학생 및 문제들을 분석하기 때문에 개별 학생들에게 최적화된 문제를 제공하는 것이 쉽지 않다.
이와 같이 종래의 교육 환경에서는 피교육자가 가장 효율적으로 학습 결과를 낼 수 있는 개인 맞춤형 컨텐츠를 제공하는 것이 쉽지 않으며, 학생들은 패키지 형태의 교육 컨텐츠에 대해 성취감과 흥미를 금방 잃게 되는 문제가 발생한다.
본 발명은 머신러닝이 적용된 교육 컨텐츠 제공 시스템을 효율적으로 운용하는 방법을 제공하는 것을 목적으로 한다. 보다 구체적으로 본 발명은 상기 시스템을 구성하는 각 기능 블록들을 클라우드 기반으로 가상화하고, 각 기능 블록들이 독립적, 병렬적으로 동작하며, 동시에 상호 작용하도록 구조화하는 방법에 대한 것이다.
본 발명의 실시예를 따르는 가상화된 분산 컴퓨팅 환경에서 구현되는, 학습 컨텐츠를 제공하는 시스템은, 사용자 디바이스로부터 데이터를 수신하는 제 1 레이어; 다른 레이어에 이벤트가 발생하면, 이벤트 발생에 대한 노티스 메시지를 수신하고, 상기 이벤트를 특정하여 등록한 다른 레이어에서 상기 메시지를 구독할 수 있도록 지원하는 제 2 레이어; 각각의 기능을 수행하는 복수의 어플리케이션을 포함하며, 상기 어플리케이션이 독립적으로 동작하며, 상기 제 2 레이어로부터 상기 어플리케이션의 동작에 필요한 특정 이벤트에 대한 노티스 메시지를 구독하는 제 3 레이어; 및 적어도 하나 이상의 데이터베이스를 포함하고, 다른 레이어에 상기 데이터베이스에 대한 엑세스를 제공하고, 임의의 이벤트에 대한 노티스 메시지를 생성하는 제 4 레이어를 포함하며, 상기 제 1 레이어, 상기 제 2 레이어, 상기 제 3 레이어 및 상기 제 4 레이어는, 임의의 시점에 하나의 레이어의 동작이 다른 레이어의 동작에 영향을 미치지 않으며, 임의의 이벤트에 대한 메시지 구독을 통해 다른 레이어에서 생성된 데이터를 공유하는 것을 특징으로 한다.
본 발명에 따르면, 머신러닝 프레임워크의 각 기능 블록들이 독립적, 병렬적, 계층적으로 동작하여 실시간 모델링을 위한 지연(latency)이 줄어들고, 서비스 제공을 위한 확장성이 보장되며, 컴퓨팅 자원이 효율적으로 사용되는 효과가 있다.
도 1은 본 발명의 실시예를 따르는 학습 컨텐츠 제공 시스템의 구조를 설명하기 위한 블록도
도 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 레이어에서, 업데이트된 사용자 모델 데이터를 획득하고, 상기 사용자 모델을 이용하여 사용자 맞춤형 문제를 추출하는 단계를 포함하는 것을 특징으로 하는 사용자 모델 업데이트 방법.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180112571A KR20200036087A (ko) | 2018-09-20 | 2018-09-20 | 실시간 모델링을 위한 머신 러닝 프레임워크의 운용 방법, 장치 및 컴퓨터 프로그램 |
KR10-2018-0112571 | 2018-09-20 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2020060298A1 true WO2020060298A1 (ko) | 2020-03-26 |
Family
ID=69887726
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2019/012255 WO2020060298A1 (ko) | 2018-09-20 | 2019-09-20 | 실시간 모델링을 위한 머신 러닝 프레임워크의 운용 방법, 장치 및 컴퓨터 프로그램 |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR20200036087A (ko) |
WO (1) | WO2020060298A1 (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114193459A (zh) * | 2022-01-27 | 2022-03-18 | 中国第一汽车股份有限公司 | 一种机械手臂的控制系统及其测试方法 |
CN116736986A (zh) * | 2023-08-09 | 2023-09-12 | 北京君合创想科技发展有限公司 | 基于原理学习数据交互优化的方法、系统及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20080053132A (ko) * | 2006-12-08 | 2008-06-12 | 한국전자통신연구원 | 개방형 홈네트워크 프레임워크 구성 방법 및 그 운용 방법 |
KR20100108898A (ko) * | 2009-03-31 | 2010-10-08 | 한양대학교 산학협력단 | 이기종 센서 네트워크의 데이터 통합 센서 네트워크 미들웨어 시스템 |
KR20160131684A (ko) * | 2015-05-08 | 2016-11-16 | (주)뤼이드 | 개인 맞춤형 교육 컨텐츠를 제공하는 방법, 장치 및 컴퓨터 프로그램 |
KR101853091B1 (ko) * | 2017-05-19 | 2018-04-27 | (주)뤼이드 | 기계학습이 적용된 사용자 답변 예측 프레임워크를 통한 개인 맞춤형 교육 컨텐츠 제공 방법, 장치 및 컴퓨터 프로그램 |
JP2018133084A (ja) * | 2017-02-15 | 2018-08-23 | ブルー プリズム リミテッド | 自動化プロセスの処理の分散を最適化するシステム |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101836206B1 (ko) | 2016-10-26 | 2018-04-19 | (주)뤼이드 | 개인 맞춤형 교육 컨텐츠를 제공하는 방법, 장치 및 컴퓨터 프로그램 |
-
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 (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20080053132A (ko) * | 2006-12-08 | 2008-06-12 | 한국전자통신연구원 | 개방형 홈네트워크 프레임워크 구성 방법 및 그 운용 방법 |
KR20100108898A (ko) * | 2009-03-31 | 2010-10-08 | 한양대학교 산학협력단 | 이기종 센서 네트워크의 데이터 통합 센서 네트워크 미들웨어 시스템 |
KR20160131684A (ko) * | 2015-05-08 | 2016-11-16 | (주)뤼이드 | 개인 맞춤형 교육 컨텐츠를 제공하는 방법, 장치 및 컴퓨터 프로그램 |
JP2018133084A (ja) * | 2017-02-15 | 2018-08-23 | ブルー プリズム リミテッド | 自動化プロセスの処理の分散を最適化するシステム |
KR101853091B1 (ko) * | 2017-05-19 | 2018-04-27 | (주)뤼이드 | 기계학습이 적용된 사용자 답변 예측 프레임워크를 통한 개인 맞춤형 교육 컨텐츠 제공 방법, 장치 및 컴퓨터 프로그램 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114193459A (zh) * | 2022-01-27 | 2022-03-18 | 中国第一汽车股份有限公司 | 一种机械手臂的控制系统及其测试方法 |
CN114193459B (zh) * | 2022-01-27 | 2023-08-11 | 中国第一汽车股份有限公司 | 一种机械手臂的控制系统及其测试方法 |
CN116736986A (zh) * | 2023-08-09 | 2023-09-12 | 北京君合创想科技发展有限公司 | 基于原理学习数据交互优化的方法、系统及装置 |
CN116736986B (zh) * | 2023-08-09 | 2023-11-10 | 北京君合创想科技发展有限公司 | 基于原理学习数据交互优化的方法、系统及装置 |
Also Published As
Publication number | Publication date |
---|---|
KR20200036087A (ko) | 2020-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Netto et al. | State machine replication in containers managed by Kubernetes | |
Snowdon et al. | Aviary: Design issues for future large-scale virtual environments | |
CN108170612B (zh) | 一种自动化测试方法、装置及服务器 | |
CN110688202B (zh) | 服务进程调度方法、装置、设备及存储介质 | |
CN105556475B (zh) | 请求处理技术 | |
CN106575243A (zh) | 管理程序托管的虚拟机取证 | |
WO2018212394A1 (ko) | 기계 학습 프레임워크를 운용하는 방법, 장치 및 컴퓨터 프로그램 | |
CN106970821A (zh) | 一种kvm虚拟化下处理i/o请求的方法和装置 | |
WO2020060298A1 (ko) | 실시간 모델링을 위한 머신 러닝 프레임워크의 운용 방법, 장치 및 컴퓨터 프로그램 | |
CN107491340B (zh) | 跨物理机的巨型虚拟机实现方法 | |
CN110413595A (zh) | 一种应用于分布式数据库的数据迁移方法和相关装置 | |
CN109344322A (zh) | 复杂网络的关系图谱挖掘分析平台、方法及存储介质 | |
Bertolotti et al. | Real-time embedded systems: open-source operating systems perspective | |
Fabisiak et al. | Browser-based harnessing of voluntary computational power | |
CN105824682B (zh) | 一种虚拟机的监控方法、装置和系统 | |
Otterness | Developing real-time GPU-sharing platforms for artificial-intelligence applications | |
CN115562777A (zh) | 目标活动的展示方法、装置、电子设备及存储介质 | |
KR20220133837A (ko) | 실시간 모델링을 위한 머신 러닝 프레임워크의 운용 방법, 장치 및 컴퓨터 프로그램 | |
CN110383255A (zh) | 管理对物理设备的客户分区访问 | |
Bhat et al. | Virtualization and visualization of virtual memory system for effective teaching–learning | |
Iorio et al. | CrownLabs—a collaborative environment to deliver remote computing laboratories | |
Lakshmi | System Virtualization in the Multi-core Era-a QoS Perspective | |
WO2014204705A1 (en) | Pedagogical elements in virtual labs | |
CN117932624B (zh) | 一种虚拟网络安全功能链的构建系统和方法 | |
CN113220423B (zh) | 一种基于容器的多芯片管理方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 19862217 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 19862217 Country of ref document: EP Kind code of ref document: A1 |