KR20210062372A - Method and server for predicting user interaction for web applications - Google Patents

Method and server for predicting user interaction for web applications Download PDF

Info

Publication number
KR20210062372A
KR20210062372A KR1020190150517A KR20190150517A KR20210062372A KR 20210062372 A KR20210062372 A KR 20210062372A KR 1020190150517 A KR1020190150517 A KR 1020190150517A KR 20190150517 A KR20190150517 A KR 20190150517A KR 20210062372 A KR20210062372 A KR 20210062372A
Authority
KR
South Korea
Prior art keywords
event
user interaction
data
web
user
Prior art date
Application number
KR1020190150517A
Other languages
Korean (ko)
Other versions
KR102278814B1 (en
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 KR1020190150517A priority Critical patent/KR102278814B1/en
Publication of KR20210062372A publication Critical patent/KR20210062372A/en
Application granted granted Critical
Publication of KR102278814B1 publication Critical patent/KR102278814B1/en

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/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3438Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment monitoring of user actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Biomedical Technology (AREA)
  • Computer Hardware Design (AREA)
  • Computational Linguistics (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

The present invention provides a method of predicting user interaction for a web application, which uses an artificial neural network. According to one aspect of the present invention, a method of predicting user interaction for a web application includes the steps of: collecting event information including a navigation event and a click event for URL search generated when searching for a web application through a network from a user terminal; generating user behavior analysis data by applying a pre-processing process including data filtering and data vectorization for performance improvement to the collected event information; generating prediction result data including an event to occur after the new event by inputting new event occurrence information into a user interaction prediction model when a new event occurs according to a web application search in the user terminal; and adjusting a service state to be provided to the user terminal by the server based on the prediction result data. The user interaction prediction model is learned using a recurrent neural network (RNN) based on user behavior analysis data.

Description

웹 응용에 대한 사용자 상호작용 예측 방법 및 서버{METHOD AND SERVER FOR PREDICTING USER INTERACTION FOR WEB APPLICATIONS}How to predict user interactions for web applications and servers {METHOD AND SERVER FOR PREDICTING USER INTERACTION FOR WEB APPLICATIONS}

본 발명은 웹 응용에서 발생하는 사용자 상호작용 데이터를 수집하고 이에 기반해 다음 요청될 자원을 예측하는 기법에 관한 것으로, 보다 상세하게는 사용자가 웹 응용과 상호작용할 때 발생하는 이벤트 데이터를 수집하고 이를 토대로 예측 모델을 학습시켜 다음 이벤트를 예측하는 방법 및 서버에 관한 것이다.The present invention relates to a technique for collecting user interaction data generated in a web application and predicting the next requested resource based on this. More specifically, event data that occurs when a user interacts with a web application is collected and It relates to a method and a server for predicting the next event by training a prediction model based on it.

웹 응용에서의 사용자 상호작용을 이해하는 것은 웹 탐색(Web browsing) 시 사용자의 체감 품질(quality of experience, QoE)을 향상시키기 위해 매우 중요하다. 웹 탐색은 사용자로부터 유발되는 일련의 클릭과 이에 따라 다른 웹 응용으로 향하는 네비게이션으로 이루어지는데, 이와 같은 사용자 상호작용에 대한 사전 지식이 주어진다면 브라우저(browser)는 사용자가 다음으로 접근할 것으로 예상되는 콘텐츠를 미리 다운받아 임시로 저장해 두었다가 추후 사용자의 요청 시 즉시 활용이 가능하도록 할 수 있다. 이러한 프리페칭(prefetching) 기법은 여러 멀티미디어 자원이 수반되는 웹 응용에 대해 자원을 다운받는데 소요되는 긴 지연을 감소시켜 궁극적으로 웹 응용에 대한 체감 품질을 향상시킨다. 일례로 구글(Google)의 크롬(Chrome) 브라우저는 웹 페이지를 좀 더 빠르게 로드하기 위해 실제 사용자의 요청이 발생하기 전에 DNS(domain name service) 프리페칭, TCP 및 TLS 선연결 등의 작업을 선제적으로 동작시키는 예측 서비스를 제공하고 있다. 오늘날 브라우저는 웹 응용 개발자에 의해 소스 코드 내에 미리 명시되어 있는 단서를 활용하여 프리페칭을 수행하는데, 이는 문서 구조, 과거 네비게이션 내역, 기기 및 사용자 관련 메타데이터 등의 정적인 정보를 활용한 단순 규칙에 기반한다. 이에 비해 사용자 상호작용과 웹 응용 간의 관계에 기반한 네비게이션 예측은 개별 네비게이션의 반응 시간을 줄임으로써 프리페칭 성능 향상에 보다 가치 있는 단서로 활용될 수 있다.Understanding user interaction in web applications is very important to improve the quality of experience (QoE) of users when browsing the web. Web browsing consists of a series of clicks triggered by the user and navigation to other web applications accordingly. Given prior knowledge of such user interaction, the browser is the content that the user is expected to access next. It can be downloaded in advance and stored temporarily, so that it can be used immediately upon request of a user in the future. This prefetching technique ultimately improves the quality of experience for web applications by reducing the long delay required to download resources for web applications involving multiple multimedia resources. For example, Google's Chrome browser preemptively performs tasks such as prefetching domain name service (DNS) and prefetching TCP and TLS before a request from an actual user occurs in order to load web pages faster. It provides a predictive service that operates as a function. Today, browsers perform prefetching using clues specified in the source code by web application developers, which are based on simple rules using static information such as document structure, past navigation history, and metadata related to devices and users. Is based. On the other hand, navigation prediction based on the relationship between user interaction and web application can be used as a more valuable clue in improving prefetching performance by reducing the reaction time of individual navigation.

하지만 실제 환경에서 웹 응용에 대한 사용자 상호작용 예측은 데이터 수집 상의 제약과 기존 모델의 낮은 예측 정확도로 인해 제대로 활용되기 어렵다. 서버 단에서 수집된 사용자 상호작용 정보를 활용한 기존 기술은 여러 웹 응용을 탐색하며 상호작용하는 사용자의 행동을 제대로 반영하지 못하고 특정 웹 응용 서비스로 활용 범위가 제한되는 한계가 있다. 반면 클라이언트 단에서 클릭, 통화 및 어플리케이션 실행 내역 등 자세한 사용자 상호작용 데이터를 수집한 기존 기술은 브라우저나 어플리케이션의 소스 코드의 수정이 필요하거나 모바일 플랫폼으로 활용 범위가 제한된다. 이러한 측정 상의 한계는 데이터 수집 기법의 배포 및 활용 가능성을 저해하여 실생활에서 제대로 된 사용자 상호작용 데이터 수집을 어렵게 한다. 한편 웹 네비게이션 예측에 대한 기존 기술은 전형적인 웹 응용에 해당하는 웹 검색이나 온라인 광고에 치중되어 개발되어 왔다. 이러한 기술들은 전통적인 웹 응용을 대상으로는 활용이 가능하나 다양한 형태를 지원하는 오늘날의 웹 응용에 적용될 수 있는 범용적인 기술로는 적합하지 않다. 그 뿐만 아니라, 사용자의 행동 범위가 설치된 어플리케이션으로 한정되는 모바일 환경과 달리 어떤 어플리케이션이든 탐색이 가능한 웹 환경의 경우 네비게이션 예측 대상이 되는 어플리케이션의 다양성이 매우 크기 때문에 단순히 기존의 기계 학습을 적용하는 것으로는 낮은 예측 정확도를 보인다는 한계가 있다. 따라서 웹 응용에 대한 정확한 사용자 상호작용 예측을 위해서는 대상 어플리케이션이나 플랫폼의 제한없이 사용자 상호작용 데이터 수집하는 기법과 함께 웹 응용의 다양성을 고려하여 네비게이션 예측 성능을 향상시킬 수 있는 추가적인 기법이 필요하다.However, prediction of user interaction for web applications in real environments is difficult to properly utilize due to limitations in data collection and low prediction accuracy of existing models. Existing technologies that utilize user interaction information collected at the server level do not properly reflect the behavior of users interacting while browsing various web applications, and there is a limitation in the scope of application to specific web application services. On the other hand, the existing technology that collects detailed user interaction data such as clicks, calls, and application execution history at the client side requires modification of the source code of the browser or application, or its application range is limited to mobile platforms. This measurement limitation hinders the possibility of distribution and utilization of data collection techniques, making it difficult to properly collect user interaction data in real life. Meanwhile, the existing technology for web navigation prediction has been developed focusing on web search or online advertisement corresponding to typical web applications. These technologies can be used for traditional web applications, but they are not suitable as general-purpose technologies that can be applied to today's web applications that support various forms. In addition, in the case of a web environment in which the user's action range is limited to installed applications, in the case of a web environment in which any application can be explored, the variety of applications targeted for navigation prediction is very large, so simply applying the existing machine learning is There is a limitation in showing low prediction accuracy. Therefore, in order to accurately predict user interactions for web applications, a method of collecting user interaction data without limitation of the target application or platform, as well as an additional method that can improve the navigation prediction performance in consideration of the diversity of web applications is needed.

사용자 상호작용 예측 모델과 관련하여 순환 신경망(recurrent neural network)은 개별 뉴런(neuron)의 활성화가 단방향으로만 흐르는 순방향 신경망(feedforward neural network)과 달리 순방향과 역방향으로 향하는 연결을 모두 포함하여 구성된다. 이러한 역방향 연결은 순환 뉴런이 입력뿐만 아니라 이전 시간의 출력도 받아들일 수 있게 하여 일종의 메모리처럼 동작하게 하기 때문에 시계열 데이터(time series data) 처리에 적합한 구조를 만들어낸다. 초기 RNN의 문제점을 개선한 LSTM(long short-term memory)은 단기, 장기 상태를 모두 유지하여 초기 RNN 구조에 비해 학습 시 보다 빠른 수렴을 이끌어내고 데이터 상에 존재하는 장기적인 의존성을 보다 잘 탐지해낸다. 최근 LSTM의 복잡도를 낮추어 제안된 GRU는 LSTM과 거의 유사한 성능을 내면서도 학습 상의 복잡도를 낮춰 자연어 처리 등 시계열 데이터 학습에 널리 활용되고 있다. 이러한 GRU는 클릭, 네비게이션 등 시간에 따라 주어진 일련의 상호작용 이벤트를 입력 데이터로 활용하는 웹 응용에서의 사용자 상호작용 예측에서도 기반 예측 모델로 활용되기 적합하다. 하지만 GRU 기반의 예측 모델만으로는 실제 환경에 적용하기에는 적합하지 않은 낮은 예측 정확도를 보이기 때문에 기반 모델의 성능 향상을 위한 추가적인 데이터 처리 기법이 필요하다.In relation to the user interaction prediction model, a recurrent neural network is composed of both forward and backward connections, unlike a feedforward neural network in which activation of individual neurons flows only in one direction. This reverse connection makes it possible for cyclic neurons to accept not only inputs but also outputs from previous times, so that they behave like a kind of memory, creating a structure suitable for processing time series data. The long short-term memory (LSTM), which improved the problem of the initial RNN, maintains both short and long-term states, leading to faster convergence during training compared to the initial RNN structure, and better detecting long-term dependencies existing on the data. GRU, which was recently proposed by lowering the complexity of LSTM, is widely used for learning time series data such as natural language processing by lowering the complexity of learning while producing almost the same performance as LSTM. This GRU is suitable to be used as a base prediction model for user interaction prediction in web applications that use a series of interaction events given over time, such as clicks and navigation, as input data. However, since the GRU-based prediction model alone shows low prediction accuracy, which is not suitable for application to an actual environment, an additional data processing technique is required to improve the performance of the base model.

대한민국 공개특허공보 제 10-2015-0009811 호 (발명의 명칭: 공개웹 서버 및 웹 요구사항 예측을 이용한 웹 서버의 성능 향상 방법)Korean Patent Laid-Open Publication No. 10-2015-0009811 (Name of the invention: A method of improving web server performance using public web server and web requirement prediction)

본 발명은 전술한 종래 기술의 문제점을 해결하기 위한 것으로서 인공신경망을 이용하여 웹 응용에 대한 사용자 상호작용 예측 방법을 제공한다.The present invention provides a method for predicting user interaction for a web application using an artificial neural network as to solve the problems of the prior art described above.

대상 어플리케이션이나 플랫폼에 관계없이 웹 응용에 대한 사용자 상호작용 데이터를 수집하고 각 이벤트를 안정적으로 표현, 인식하고 정확도 향상을 위한 데이터 처리 기법이 적용된 GRU 기반의 예측 모델을 통해 학습함으로써, 일반적인 웹 응용에서의 사용자 네비게이션을 정확한 수준으로 예측하는 방법을 제공한다.Regardless of the target application or platform, by collecting user interaction data for web applications, stably expressing and recognizing each event, and learning through a GRU-based predictive model applied with data processing techniques to improve accuracy, Provides a method of predicting user navigation in an accurate level.

다만, 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.However, the technical problem to be achieved by the present embodiment is not limited to the technical problem as described above, and other technical problems may exist.

상술한 기술적 과제를 해결하기 위한 기술적 수단으로서, 본 개시의 제 1측면에 따른 웹 응용에 대한 사용자 상호작용 예측 방법은 네트워크를 통해 웹 응용을 탐색할 때 발생하는 URL 탐색을 위한 네비게이션 이벤트 및 클릭 이벤트를 포함하는 이벤트 정보를 사용자 단말로부터 수집하는 단계; 성능 향상을 위한 데이터 필터링 및 데이터 벡터화를 포함하는 전처리 프로세스를 수집된 이벤트 정보에 적용하여 사용자 행동분석 데이터를 생성하는 단계; 사용자 단말에서 웹 응용 탐색에 따른 신규 이벤트 발생시, 신규 이벤트 발생 정보를 사용자 상호작용 예측 모델에 입력하여 신규 이벤트 이후 발생할 이벤트를 포함하는 예측 결과 데이터를 생성하는 단계; 및 예측 결과 데이터에 기초하여 서버에서 사용자 단말에 제공할 서비스 상태를 조절하는 단계;를 포함한다. 사용자 상호작용 예측 모델은 사용자 행동분석 데이터를 기초로 순환 신경망(RNN: Recurrent Neural Network)를 이용하여 학습된 것이다.As a technical means for solving the above-described technical problem, the method for predicting user interaction for a web application according to the first aspect of the present disclosure includes a navigation event and a click event for URL search that occur when a web application is searched through a network. Collecting event information including a user terminal; Generating user behavior analysis data by applying a pre-processing process including data filtering and data vectorization for performance improvement to the collected event information; Generating prediction result data including an event to occur after the new event by inputting new event occurrence information into a user interaction prediction model when a new event occurs according to a web application search in the user terminal; And adjusting a service state to be provided to the user terminal by the server based on the prediction result data. The user interaction prediction model is learned using a recurrent neural network (RNN) based on user behavior analysis data.

상술한 기술적 과제를 해결하기 위한 기술적 수단으로서, 본 개시의 제 2 측면에 따른 웹 응용에 대한 사용자 상호작용 예측 서버는 웹 응용에 대한 사용자 상호작용 예측 프로그램이 저장된 메모리; 메모리에 저장된 프로그램을 실행하는 프로세서를 포함한다. 프로세서는 프로그램의 실행에 의해, 네트워크를 통해 웹 응용을 탐색할 때 발생하는 URL 탐색을 위한 네비게이션 이벤트 및 클릭 이벤트를 포함하는 이벤트 정보를 사용자 단말로부터 수집하고, 성능 향상을 위한 데이터 필터링 및 데이터 벡터화를 포함하는 전처리 프로세스를 수집된 이벤트 정보에 적용하여 사용자 행동분석 데이터를 생성하고, 사용자 단말에서 웹 응용 탐색에 따른 신규 이벤트 발생시, 신규 이벤트 발생 정보를 사용자 상호작용 예측 모델에 입력하여 신규 이벤트 이후 발생할 이벤트를 포함하는 예측 결과 데이터를 생성하고, 예측 결과 데이터에 기초하여 서버에서 사용자 단말에 제공할 서비스 상태를 조절한다. 사용자 상호작용 예측 모델은 사용자 행동분석 데이터를 기초로 순환 신경망(RNN: Recurrent Neural Network)를 이용하여 학습된 것이다.As a technical means for solving the above technical problem, the user interaction prediction server for a web application according to the second aspect of the present disclosure includes: a memory storing a user interaction prediction program for the web application; It includes a processor that executes a program stored in memory. The processor collects event information including a navigation event and a click event for URL search, which occurs when browsing a web application through a network by executing a program, from the user terminal, and performs data filtering and data vectorization to improve performance. The included pre-processing process is applied to the collected event information to generate user behavior analysis data, and when a new event occurs according to web application browsing in the user terminal, the event to occur after the new event by inputting the new event occurrence information into the user interaction prediction model Generates prediction result data including, and adjusts a service state to be provided to the user terminal in the server based on the prediction result data. The user interaction prediction model is learned using a recurrent neural network (RNN) based on user behavior analysis data.

상술한 기술적 과제를 해결하기 위한 기술적 수단으로서, 본 개시의 제 3 측면에 따른 사용자 단말에서의 웹 응용에 대한 사용자 상호작용 예측 방법은, 네트워크를 통해 웹 응용을 탐색할 때 발생하는 URL 탐색을 위한 네비게이션 이벤트 및 클릭 이벤트를 포함하는 이벤트 정보를 수집하는 단계; 성능 향상을 위한 데이터 필터링 및 데이터 벡터화를 포함하는 전처리 프로세스를 수집된 이벤트 정보에 적용하여 사용자 행동분석 데이터를 생성하는 단계; 사용자 단말에서 웹 응용 탐색에 따른 신규 이벤트 발생시, 신규 이벤트 발생 정보를 사용자 상호작용 예측 모델에 입력하여 신규 이벤트 이후 발생할 이벤트를 포함하는 예측 결과 데이터를 생성하는 단계; 및 예측 결과 데이터에 기초하여 외부 응용서비스 제공 서버에 대하여 사용자 단말에 제공할 서비스의 제공 상태를 조절하는 단계;를 포함한다. 사용자 상호작용 예측 모델은 사용자 행동분석 데이터를 기초로 순환 신경망(RNN: Recurrent Neural Network)를 이용하여 학습된 것이다.As a technical means for solving the above-described technical problem, the method for predicting user interaction for a web application in a user terminal according to the third aspect of the present disclosure is for searching a URL that occurs when searching for a web application through a network. Collecting event information including a navigation event and a click event; Generating user behavior analysis data by applying a pre-processing process including data filtering and data vectorization for performance improvement to the collected event information; Generating prediction result data including an event to occur after the new event by inputting new event occurrence information into a user interaction prediction model when a new event occurs according to a web application search in the user terminal; And adjusting a state of providing a service to be provided to the user terminal with respect to the external application service providing server based on the prediction result data. The user interaction prediction model is learned using a recurrent neural network (RNN) based on user behavior analysis data.

전술한 본원의 과제 해결 수단 중 어느 하나에 의하면, 정확도 향상을 위한 데이터 처리 기법이 적용된 GRU 기반의 예측 모델 활용함으로써 예측 모델의 성능이 더 향상될 수 있다.According to any one of the above-described problem solving means of the present application, performance of the prediction model may be further improved by utilizing a GRU-based prediction model to which a data processing technique for improving accuracy is applied.

대부분의 웹 응용을 구성하는 핵심 기술 중 하나인 자바스크립트(JavaScript)를 기반으로 설계되었기 때문에 일반적인 웹 응용에 대해 브라우저나 어플리케이션의 소스 코드 수정없이 클릭, 네비게이션 등 사용자 상호작용에 대한 이벤트를 수집할 수 있고, 문서 객체 모델(document object, model)을 토대로 클릭된 객체를 표현, 인식하여 서로 다른 기기나 클라이언트 소프트웨어에 대해서도 안정적인 객체 인식이 가능하다. Because it is designed based on JavaScript, one of the core technologies that compose most web applications, it is possible to collect events for user interaction such as clicks and navigation without modifying the browser or application source code for general web applications. In addition, by expressing and recognizing the clicked object based on the document object model (document object, model), stable object recognition is possible even for different devices or client software.

또한 GRU 기반의 예측 모델에 하나의 웹 페이지에 대한 변종 URL(uniform resource locator)을 하나로 묶어 처리하고 네비게이션, 클릭 이벤트를 동일한 벡터 공간에 표현하는 성능 향상 기법을 적용함으로써 네비게이션 예측 대상으로 다양한 웹 응용이 존재하는 환경에서도 높은 정확도로 네비게이션 이벤트를 예측할 수 있다. 이는 웹 프리페칭 기법에 대한 기반 기술로 적용되어 높은 사용자의 체감 품질을 갖는 양질의 서비스를 제공할 수 있게 한다.In addition, a variety of web applications are targeted for navigation prediction by applying a performance improvement technique that combines and processes a variant URL (uniform resource locator) for one web page in a GRU-based prediction model and expresses navigation and click events in the same vector space. Even in existing environments, navigation events can be predicted with high accuracy. This is applied as a base technology for the web prefetching technique to provide a high quality service with high user experience quality.

도 1은 본 발명의 일 실시예에 따른 웹 응용에 대한 사용자 상호작용 예측 서버의 구성을 도시한 블록도이다.
도 2는 본 발명의 일 실시예에 따른 웹 응용에 대한 사용자 상호작용 예측 시스템의 구성을 도시한 블록도이다.
도 3은 본 발명의 일 실시예에 따른 웹 응용에 대한 사용자 상호작용 예측 방법의 진행 단계를 나타낸 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 웹 응용에 대한 사용자 상호작용 예측 방법의 전체 구성을 나타낸 도면이다.
도 5는 본 발명의 일 실시예에 따른 웹 응용에 대한 사용자 상호작용 예측 방법에서 전처리 과정을 거친 경우 성능 차이를 설명하는 도면이다.
도 6은 본 발명의 일 실시예에 따른 웹 응용에 대한 사용자 상호작용 예측 방법에서 전처리 과정을 거친 경우 성능 차이를 설명하는 도면이다.
1 is a block diagram showing the configuration of a user interaction prediction server for a web application according to an embodiment of the present invention.
2 is a block diagram showing the configuration of a user interaction prediction system for a web application according to an embodiment of the present invention.
3 is a flow chart showing a process step of a method for predicting user interaction for a web application according to an embodiment of the present invention.
4 is a diagram showing the overall configuration of a method for predicting user interaction for a web application according to an embodiment of the present invention.
5 is a diagram illustrating a difference in performance when a preprocessing process is performed in a method for predicting user interaction for a web application according to an embodiment of the present invention.
6 is a diagram illustrating a difference in performance when a preprocessing process is performed in a method for predicting user interaction for a web application according to an embodiment of the present invention.

아래에서는 첨부한 도면을 참조하여 본원이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본원의 실시예를 상세히 설명한다. 그러나 본원은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본원을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.Hereinafter, embodiments of the present application will be described in detail with reference to the accompanying drawings so that those of ordinary skill in the art may easily implement the present application. However, the present application may be implemented in various different forms and is not limited to the embodiments described herein. In addition, in the drawings, parts irrelevant to the description are omitted in order to clearly describe the present application, and similar reference numerals are attached to similar parts throughout the specification.

본원 명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. Throughout this specification, when a part is said to be "connected" with another part, this includes not only the case that it is "directly connected", but also the case that it is "electrically connected" with another element interposed therebetween. do.

본원 명세서 전체에서, 어떤 부재가 다른 부재 “상에” 위치하고 있다고 할 때, 이는 어떤 부재가 다른 부재에 접해 있는 경우뿐 아니라 두 부재 사이에 또 다른 부재가 존재하는 경우도 포함한다.Throughout this specification, when a member is positioned “on” another member, this includes not only the case where a member is in contact with the other member, but also the case where another member exists between the two members.

이하 첨부된 도면을 참고하여 본 발명의 일 실시예를 상세히 설명하기로 한다.Hereinafter, an embodiment of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 일 실시예에 따른 웹 응용에 대한 사용자 상호작용 예측 서버의 구성을 도시한 블록도이다. 1 is a block diagram showing the configuration of a user interaction prediction server for a web application according to an embodiment of the present invention.

도시된 바와 같이 웹 응용에 대한 사용자 상호작용 예측 서버(100)는 통신 모듈(110), 메모리(120), 프로세서(130), 데이터베이스(140) 및 입력모듈(150)을 포함할 수 있다.As illustrated, the user interaction prediction server 100 for a web application may include a communication module 110, a memory 120, a processor 130, a database 140, and an input module 150.

통신모듈(110)은 접속된 사용자 단말(100) 및 연동된 서버(200)와 각각 데이터를 통신한다. 통신모듈(110)은 다른 네트워크 장치와 유무선 연결을 통해 제어 신호 또는 데이터 신호와 같은 신호를 송수신하기 위해 필요한 하드웨어 및 소프트웨어를 포함하는 장치일 수 있다.The communication module 110 communicates data with the connected user terminal 100 and the linked server 200, respectively. The communication module 110 may be a device including hardware and software necessary for transmitting and receiving a signal such as a control signal or a data signal through a wired or wireless connection with another network device.

메모리(120)에는 웹 응용에 대한 사용자 상호작용 예측 프로그램이 저장된다. 웹 응용에 대한 사용자 상호작용 예측 프로그램은 네트워크를 통해 웹 응용을 탐색할 때 발생하는 URL 탐색을 위한 네비게이션 이벤트 및 클릭 이벤트를 포함하는 이벤트 정보를 사용자 단말로부터 수집하고, 성능 향상을 위한 데이터 필터링 및 데이터 벡터화를 포함하는 전처리 프로세스를 수집된 이벤트 정보에 적용하여 사용자 행동분석 데이터를 생성하고, 사용자 단말에서 웹 응용 탐색에 따른 신규 이벤트 발생시, 신규 이벤트 발생 정보를 사용자 상호작용 예측 모델에 입력하여 신규 이벤트 이후 발생할 이벤트를 포함하는 예측 결과 데이터를 생성하고, 예측 결과 데이터에 기초하여 서버에서 사용자 단말에 제공할 서비스 상태를 조절한다.The memory 120 stores a user interaction prediction program for a web application. The user interaction prediction program for web applications collects event information from the user terminal, including navigation events and click events for URL search, which occurs when browsing web applications through the network, and data filtering and data to improve performance. User behavior analysis data is generated by applying a pre-processing process including vectorization to the collected event information, and when a new event occurs according to web application search in the user terminal, the new event occurrence information is input into the user interaction prediction model, after the new event. Prediction result data including an event to occur is generated, and the server adjusts a service state to be provided to the user terminal based on the predicted result data.

이러한 메모리(120)에는 웹 응용에 대한 사용자 상호작용 예측 서버(100)의 구동을 위한 운영 체제나 웹 응용에 대한 사용자 상호작용 예측 프로그램의 실행 과정에서 발생되는 여러 종류가 데이터가 저장된다. The memory 120 stores various types of data generated during execution of an operating system for driving the user interaction prediction server 100 for a web application or a user interaction prediction program for a web application.

이때, 메모리(120)는 전원이 공급되지 않아도 저장된 정보를 계속 유지하는 비휘발성 저장장치 및 저장된 정보를 유지하기 위하여 전력이 필요한 휘발성 저장장치를 통칭하는 것이다. In this case, the memory 120 collectively refers to a nonvolatile storage device that continuously maintains stored information even when power is not supplied, and a volatile storage device that requires power to maintain the stored information.

또한, 메모리(120)는 프로세서(130)가 처리하는 데이터를 일시적 또는 영구적으로 저장하는 기능을 수행할 수 있다. 여기서, 메모리(120)는 저장된 정보를 유지하기 위하여 전력이 필요한 휘발성 저장장치 외에 자기 저장 매체(magnetic storage media) 또는 플래시 저장 매체(flash storage media)를 포함할 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다.In addition, the memory 120 may perform a function of temporarily or permanently storing data processed by the processor 130. Here, the memory 120 may include a magnetic storage media or a flash storage media in addition to a volatile storage device requiring power to maintain stored information, but the scope of the present invention is limited thereto. It does not become.

프로세서(130)는 메모리(140)에 저장된 프로그램을 실행하되, 웹 응용에 대한 사용자 상호작용 예측프로그램의 실행에 따르는 전체 과정을 제어한다. 프로세서(130)가 수행하는 각각의 동작에 대해서는 추후 보다 상세히 살펴보기로 한다.The processor 130 executes the program stored in the memory 140, but controls the entire process according to the execution of the user interaction prediction program for the web application. Each operation performed by the processor 130 will be described in more detail later.

이러한 프로세서(130)는 데이터를 처리할 수 있는 모든 종류의 장치를 포함할 수 있다. 예를 들어 프로그램 내에 포함된 코드 또는 명령으로 표현된 기능을 수행하기 위해 물리적으로 구조화된 회로를 갖는, 하드웨어에 내장된 데이터 처리 장치를 의미할 수 있다. 이와 같이 하드웨어에 내장된 데이터 처리 장치의 일 예로써, 마이 크로프로세서(microprocessor), 중앙처리장치(central processing unit: CPU), 프로세서 코어(processor core), 멀티프로세서(multiprocessor), ASIC(application-specific integrated circuit), FPGA(field programmable gate array) 등의 처리 장치를 망라할 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다.The processor 130 may include all types of devices capable of processing data. For example, it may refer to a data processing device embedded in hardware having a circuit that is physically structured to perform a function represented by a code or command included in a program. As an example of a data processing device built into the hardware as described above, a microprocessor, a central processing unit (CPU), a processor core, a multiprocessor, and an application-specific application-specific device (ASIC) Integrated circuit) and processing devices such as a field programmable gate array (FPGA) may be covered, but the scope of the present invention is not limited thereto.

데이터베이스(140)는 프로세서(130)의 제어에 따라, 웹 응용에 대한 사용자 상호작용 예측시스템에 필요한 데이터를 저장 또는 제공한다. 이러한 데이터베이스(140)는 메모리(140)와는 별도의 구성 요소로서 포함되거나, 또는 메모리(140)의 일부 영역에 구축될 수도 있다.The database 140 stores or provides data necessary for a user interaction prediction system for a web application under the control of the processor 130. The database 140 may be included as a separate component from the memory 140 or may be built in a partial area of the memory 140.

도 2는 본 발명의 일 실시예에 따른 웹 응용에 대한 사용자 상호작용 예측 시스템의 구성을 도시한 블록도이다.2 is a block diagram showing the configuration of a system for predicting user interaction for a web application according to an embodiment of the present invention.

웹 응용에 대한 사용자 상호작용 예측 방법은 서버(100) 또는 사용자 단말(200)에서 실시될 수 있다. 웹 응용에 대한 사용자 상호작용 예측 방법에서 네비게이션 또는 클릭과 같은 이벤트 정보 수집은 사용자 단말(200)에서 이루어진다. 수집된 이벤트 정보에 기초한 데이터 분석은 서버(100)에서 이루어지고, 예측 결과 데이터가 사용자 단말(200)에 제공 될 수 있다. 사용자 단말(200)에서 사용자 상호작용 예측 모델을 통해 직접 이벤트를 예측하고, 사용자 단말에 제공할 서비스의 제공 상태를 조절하는 것도 가능하다.The method for predicting user interaction for a web application may be implemented in the server 100 or the user terminal 200. In the method for predicting user interaction for a web application, event information such as navigation or click is collected in the user terminal 200. Data analysis based on the collected event information may be performed in the server 100, and prediction result data may be provided to the user terminal 200. The user terminal 200 may directly predict an event through the user interaction prediction model and adjust the provision state of a service to be provided to the user terminal.

도 3은 본 발명의 일 실시예에 따른 웹 응용에 대한 사용자 상호작용 예측 방법의 진행 단계를 나타낸 흐름도이다. 3 is a flow chart showing a process step of a method for predicting user interaction for a web application according to an embodiment of the present invention.

프로세서(130)는 네트워크를 통해 웹 응용을 탐색할 때 발생하는 URL 탐색을 위한 네비게이션 이벤트 및 클릭 이벤트를 포함하는 이벤트 정보를 사용자 단말로부터 수집한다(S110). 이때 수집하는 이벤트 정보는 사용자 식별자 정보, 이벤트 종류 정보, 탐색된 URL정보, 클릭된 객체 정보 또는 이벤트 발생시간을 나타내는 타임스탬프 중 적어도 하나를 포함할 수 있다.The processor 130 collects event information including a navigation event and a click event for URL search, which occurs when browsing a web application through a network, from the user terminal (S110). The event information collected at this time may include at least one of user identifier information, event type information, searched URL information, clicked object information, or a timestamp indicating an event occurrence time.

프로세서(130)는 사용자 단말(200)의 클라이언트 브라우저에서 이벤트 수집 툴을 통해 사용자가 일반적인 웹 응용을 탐색함에 따라 발생하는 네비게이션 및 클릭 이벤트를 수집하고 이를 서버(100)로 전송할 수 있다. 이때 각각의 클릭된 객체는 문서 객체 모델 트리 상의 위치 및 특성을 토대로 표현되어 측정에 사용된 기기나 브라우저에 관계없이 일괄적으로 인식된다. The processor 130 may collect navigation and click events that occur as a user searches for a general web application through an event collection tool in a client browser of the user terminal 200 and transmits them to the server 100. At this time, each clicked object is expressed based on the location and characteristics on the document object model tree, and is recognized collectively regardless of the device or browser used for measurement.

이때, 문서 객체 모델(Document Object Model)은 프로그램이나 스크립트가 웹 페이지 내의 구성 요소들에 접근하여 내용이나 스타일 등을 변경할 수 있게 해 주는 인터페이스로, 특정 플랫폼이나 언어에 종속되지 않는 인터페이스이다.In this case, the document object model is an interface that allows a program or script to access components in a web page and change content or style, and is an interface that is not dependent on a specific platform or language.

서버(100)는 사용자 단말(200)로부터 수집한 이벤트 정보(사용자 상호작용 데이터)를 데이터베이스에 저장해 두었다가 사용자 상호작용 예측 모델의 학습에 활용한다. The server 100 stores event information (user interaction data) collected from the user terminal 200 in a database and uses it for learning a user interaction prediction model.

프로세서(130)는 성능 향상을 위한 데이터 필터링 및 데이터 벡터화를 포함하는 전처리 프로세스를 수집된 이벤트 정보에 적용하여 사용자 행동분석 데이터를 생성한다(S120).The processor 130 generates user behavior analysis data by applying a preprocessing process including data filtering and data vectorization for performance improvement to the collected event information (S120).

전처리 프로세스는 기설정된 조건을 만족하는 URL들을 하나의 통합된 그룹으로 인식하는URL 그룹핑 프로세스를 포함할 수 있다. URL 그룹핑 프로세스는 네비게이션 이벤트에 대해 기설정된 URL의 쿼리 스트링 부분을 제거하고, 클릭 이벤트에 대해 쿼리 스트링이 제거된 URL과 클릭된 HTML 요소까지의 경로를 나타내는 문자열을 결합한 후, 페이지 로드 타임에 기설정된 비중 이상을 차지하는 동일한 멀티미디어 자원들을 요청하는 URL들을 하나의 통합된 그룹으로 인식하는 것일 수 있다.The pre-processing process may include a URL grouping process in which URLs satisfying a preset condition are recognized as one integrated group. The URL grouping process removes the query string part of the URL preset for the navigation event, combines the URL from which the query string was removed for the click event and the string indicating the path to the clicked HTML element, and then sets a preset at page load time. URLs requesting the same multimedia resources occupying more than a proportion may be recognized as one unified group.

또한, 전처리 프로세스는 상기 이벤트 정보를 동일한 대상 공간에서 정렬한 뒤 저차원으로 벡터화하는 웹 임베딩 프로세스를 포함할 수 있다. 웹 임베딩 프로세스는 워드투벡터(word2Vec)의 스킵-그람(Skip-gram)을 사용하여 상기 이벤트 정보에 포함된 네비게이션 이벤트와 클릭 이벤트를 각각 배열형태의 입력으로 받아, 상기 입력 간의 문맥을 재설계하고, 확률 그라디언트 하강(Stochastic Gradient Descent)기법을 활용하여 반복적으로 벡터 표현의 오차를 줄여나가는 방향으로 목적함수를 최적화하고, 최종적으로 찾은 임베딩은 사전의 형태로 저장하는 것일 수 있다.In addition, the pre-processing process may include a web embedding process in which the event information is arranged in the same target space and then vectorized in a low dimension. The web embedding process uses a word-to-vector (word2Vec) skip-gram to receive a navigation event and a click event included in the event information as inputs in an array form, and redesign the context between the inputs. , Using a stochastic gradient descent technique, the objective function is repeatedly optimized in a direction to reduce the error of vector expression, and the finally found embedding may be stored in the form of a dictionary.

프로세서(130)는 전처리 과정을 통해 불필요한 데이터를 걸러내고 예측 모델 학습에 용이한 형태로 변형시킬 수 있다. 전처리 프로세스는 예측 정확도 향상을 위해 하나의 웹 페이지에 대한 변종 URL은 하나의 그룹으로 통합하고, 네비게이션, 클릭 이벤트는 데이터 희소성(data sparsity)을 줄이기 위해 이벤트 간의 인접한 정도를 고려하여 동일한 벡터 공간에 밀접되어 대응되도록 표현한다. 모든 처리가 완료된 데이터(사용자 행동분석 데이터)를 토대로 GRU 기반의 사용자 상호작용 예측 모델이 학습되고, 이렇게 학습된 예측 모델은 새로운 이벤트인 사용자 상호작용 데이터 배열이 입력으로 주어졌을 때 다음으로 탐색될 응용을 예측하는데 활용될 수 있다.The processor 130 may filter out unnecessary data through a pre-processing process and transform it into a form that is easy for predictive model learning. In the preprocessing process, variant URLs for one web page are integrated into one group to improve prediction accuracy, and navigation and click events are closely related to the same vector space by considering the degree of proximity between events to reduce data sparsity. And express it so that it can be matched. Based on all processed data (user behavior analysis data), a GRU-based user interaction prediction model is trained, and the learned prediction model is an application to be explored next when a new event, user interaction data array, is given as input. Can be used to predict

프로세서(130)는 사용자 단말에서 웹 응용 탐색에 따른 신규 이벤트 발생시, 신규 이벤트 발생 정보를 사용자 상호작용 예측 모델에 입력하여 신규 이벤트 이후 발생할 이벤트를 포함하는 예측 결과 데이터를 생성한다(S130).When a new event occurs according to web application search in the user terminal, the processor 130 inputs new event occurrence information into the user interaction prediction model to generate prediction result data including an event that will occur after the new event (S130).

상기 사용자 상호작용 예측 모델은 순환 신경망 중 GRU(Gated Recurrent Unit) 를 사용하여, 클릭 및 네비게이션과 같이 시간 순서에 따라 주어진 일련의 이벤트를 입력 데이터로 하여 다음에 발생하는 이벤트와의 관계를 학습하고, 미래에 발생할 사용자 이벤트를 예측하는 것일 수 있다.The user interaction prediction model uses a GRU (Gated Recurrent Unit) of a recurrent neural network, and learns a relationship with an event that occurs next by using as input data a series of events given in chronological order, such as clicks and navigation, It may be predicting user events that will occur in the future.

상기 사용자 상호작용 예측 모델은 문맥에 따라 가변 길이의 입력을 수용할 수 있는 입력 레이어, 다중 GRU 셀로 구성된 여러 겹의 히든 레이어로 구성된 중심부, 예측 대상별 예측 확률을 출력하기 위한 완전 연결(fully-connected) 레이어 및 각 예측 대상별 확률값을 도출하는 소프트맥스 레이어 를 포함하는 것일 수 있다.The user interaction prediction model is an input layer capable of accepting an input of variable length according to context, a center composed of multiple layers of hidden layers composed of multiple GRU cells, and fully-connected to output prediction probability for each prediction target. It may include a layer and a softmax layer for deriving a probability value for each prediction target.

GRU 기반 사용자 상호작용 예측 모델은 특정 시점을 기준으로 최근에 발생한 네비게이션, 클릭 등 사용자 상호작용 이벤트 배열이 시간 순에 따라 입력으로 받아 다음으로 탐색될 응용을 출력으로 하여 이들 간의 관계를 학습한다. 프로세서(130)는 예측 모델 학습에 앞서 이루어지는 전처리 과정에서 수집된 네비게이션, 클릭 이벤트 데이터에 대해 브라우저 설정 페이지와 같이 유효하지 않은 URL들을 필터링하고, 각 사용자의 식별자 별로 분류된 데이터 중 시간 상으로 인접한 이벤트들을 개별 그룹으로 군집화한다. 프로세서(130)는 전처리 과정에서 데이터셋 내에서 출현 빈도수가 매우 낮은 사용자 식별자나 웹 응용, 클릭 객체에 대한 데이터를 제외한다. 프로세서(130)는 이렇게 정리된 데이터셋에 대해 관찰되는 모든 URL과 클릭 객체들을 대상으로 고유의 정수를 할당하여 사전(dictionary)을 생성함으로써 텍스트로 표현되어 있는 데이터를 예측 모델에서 해석할 수 있는 숫자 형태로 변환한다. The GRU-based user interaction prediction model receives an array of user interaction events, such as navigation and clicks that occurred recently based on a specific point in time, as an input in chronological order, and learns the relationship between them by outputting the next application to be searched. The processor 130 filters invalid URLs such as a browser setting page for navigation and click event data collected in a preprocessing process performed prior to predictive model training, and events adjacent to each other in time among the data classified by each user's identifier. Clusters into individual groups. The processor 130 excludes data on user identifiers, web applications, and click objects that have a very low frequency of appearance in the data set during preprocessing. The processor 130 creates a dictionary by assigning a unique integer to all the URLs and click objects observed for the organized data set, so that the data expressed in text can be interpreted in the predictive model. Convert to form.

전처리가 완료된 데이터는 GRU 기반 사용자 상호작용 예측 모델의 입력으로 사용되는데, GRU 기반 사용자 상호작용 예측 모델의 입력층은 문맥에 따라 가변 길이의 입력을 수용할 수 있도록 입력 데이터와 함께 입력의 길이도 함께 처리한다. 입력층 뒤에는 다중 GRU 셀로 구성된 은닉 계층을 여러 겹 쌓아 예측 모델의 중심부를 구성하고, 예측 대상별 예측 확률을 출력하기 위해 완전 연결(fully-connected) 계층을 추가하고, 최종적으로 softmax 계층을 추가하여 각 예측 대상별 출력값을 도출한다. 사용자 상호작용 예측 모델은 기존 자연어 처리 분야에서 널리 사용되었던 GRU 셀 구조를 활용하여 웹 네비게이션 예측에 적합한 심층 신경망 구조로 설계된 것이다.The preprocessed data is used as the input of the GRU-based user interaction prediction model, and the input layer of the GRU-based user interaction prediction model includes both the input data and the length of the input in order to accommodate the input of variable length depending on the context. Handle it. After the input layer, a hidden layer composed of multiple GRU cells is stacked to form the center of the prediction model, a fully-connected layer is added to output the prediction probability for each prediction target, and a softmax layer is finally added to predict each prediction. Derive the output value for each object. The user interaction prediction model is designed as a deep neural network structure suitable for web navigation prediction by utilizing the GRU cell structure widely used in the existing natural language processing field.

프로세서(130)는 예측 결과 데이터를 사용자 단말에 제공한다(S140). 프로세서(130)는 예측 결과 데이터에 기초하여 서버에서 사용자 단말에 제공할 서비스 상태를 조절한다. 이 단계에서 예측 결과 데이터에 따른 컨텐츠를 상기 사용자 단말로 미리 가져오는 웹 프리페칭(Web prefetching)단계를 포함할 수 있다. 또한 프로세서(130)는 예측 결과 데이터에 기초하여 이를 미리 캐싱(caching)하거나 서버에서 사용자의 체감 품질 향상에 용이한 콘텐츠를 미리 판단하여 전송하는 서버 푸쉬(server push)하는 등 웹 플랫폼에 기반한 일반적인 응용 서비스 전반에 활용하는 것도 가능하다. The processor 130 provides the prediction result data to the user terminal (S140). The processor 130 adjusts a service state to be provided from the server to the user terminal based on the prediction result data. In this step, a web prefetching step of prefetching content according to the prediction result data to the user terminal may be included. In addition, the processor 130 caches it in advance based on the predicted result data, or performs a server push that determines and transmits content that is easy to improve the quality of the user's experience in the server. It is also possible to use it throughout the service.

도 4는 본 발명의 일 실시예에 따른 웹 응용에 대한 사용자 상호작용 예측 방법의 전체 구성을 나타낸 도면이다.4 is a diagram showing the overall configuration of a method for predicting user interaction for a web application according to an embodiment of the present invention.

사용자 단말(200)의 클라이언트 브라우저에서는 이벤트 수집 툴이 사용자가 일반적인 웹 응용을 탐색함에 따라 발생하는 네비게이션 및 클릭 이벤트를 수집하고 이를 서버(100)로 전송한다. 이때 각각의 클릭된 객체는 문서 객체 모델 트리 상의 위치 및 특성을 토대로 표현되어 측정에 사용된 기기나 브라우저에 관계없이 일괄적으로 인식된다. In the client browser of the user terminal 200, the event collection tool collects navigation and click events that occur as the user searches for a general web application and transmits them to the server 100. At this time, each clicked object is expressed based on the location and characteristics on the document object model tree, and is recognized collectively regardless of the device or browser used for measurement.

서버(100)는 수집된 이벤트 정보(사용자 상호작용 데이터)를 데이터베이스에 저장해 두었다가 사용자 상호작용 예측 모델의 학습에 활용한다. 데이터는 전처리 과정을 통해 불필요한 데이터가 걸러지고 예측 모델 학습에 용이한 형태로 변형된다. 예측 정확도 향상을 위해 하나의 웹 페이지에 대한 변종 URL은 하나의 그룹으로 통합되고, 네비게이션, 클릭 이벤트는 데이터 희소성(data sparsity)을 줄이기 위해 이벤트 간의 인접한 정도를 고려하여 동일한 벡터 공간에 밀접되어 대응되도록 표현된다. 모든 처리가 완료된 데이터(사용자 행동분석 데이터)를 토대로 GRU 기반의 사용자 상호작용 예측 모델이 학습되고, 이렇게 학습된 예측 모델은 새로운 이벤트인 사용자 상호작용 데이터 배열이 입력으로 주어졌을 때 다음으로 탐색될 응용을 예측하는데 활용될 수 있다.The server 100 stores the collected event information (user interaction data) in a database and uses it for learning a user interaction prediction model. Data is transformed into a form that is easy for predictive model training by filtering out unnecessary data through a pre-processing process. To improve prediction accuracy, variant URLs for one web page are integrated into one group, and navigation and click events are closely matched to the same vector space by considering the degree of proximity between events to reduce data sparsity. Is expressed. Based on all processed data (user behavior analysis data), a GRU-based user interaction prediction model is trained, and the learned prediction model is an application to be explored next when a new event, user interaction data array, is given as input. Can be used to predict

본 발명에서는 웹 응용을 구성하는 핵심 기술 중 하나인 자바스크립트에 기반한 이벤트 핸들러를 활용하여 사용자 상호작용 이벤트 수집 툴을 설계함으로써 대상 응용이나 플랫폼의 제약을 완화시켜 데이터 수집 기법의 확정성을 높인다. 다음은 이벤트 수집 툴의 구체적인 동작 과정을 나타낸다.In the present invention, by designing a user interaction event collection tool using an event handler based on JavaScript, which is one of the core technologies constituting a web application, the constraints of the target application or platform are relaxed to increase the determinism of the data collection technique. The following shows the specific operation process of the event collection tool.

새로운 웹 페이지가 로드될 때 자바스크립트로 작성되어 있는 이벤트 수집 코드가 해당 HTML(hypertext markup language) 문서의 스크립트 코드로 삽입된다. 이러한 삽입 과정은 웹 응용의 소스 코드 수정을 요구하지 않고, 브라우저 내부 엔진에 의해 제어되거나 브라우저 확장 프로그램의 형태로 구현이 가능하다. 본 발명의 실시예에서는 구글 크롬 브라우저 확장 프로그램으로 구현된 결과물을 활용하였다.When a new web page is loaded, the event collection code written in JavaScript is inserted into the script code of the HTML (hypertext markup language) document. This insertion process does not require modification of the source code of the web application, and can be controlled by the internal engine of the browser or implemented in the form of a browser extension program. In an embodiment of the present invention, the result implemented as a Google Chrome browser extension program was used.

이벤트 수집 코드는 네비게이션과 클릭의 두 가지 자바스크립트 이벤트에 대해 핸들러를 정의한다. 이때 네비게이션 이벤트에 대해서는 해당 이벤트를 유발한 사용자의 식별자, 이벤트의 종류, 탐색되는 URL, 이벤트 발생 시간을 나타내는 타임스탬프(timestamp)에 대한 정보가 수집된다. 클릭 이벤트에 대해서는 네비게이션 이벤트를 위해 수집되는 정보와 동일한 데이터(단, 타임스탬프는 해당 웹 페이지의 네비게이션 후의 상대적인 시간으로 표현)를 포함하고 여기에 클릭된 객체를 인지할 수 있는 정보가 추가적으로 수집된다. 이 과정에서 각 사용자의 프라이버시를 보호하기 위해 사용자의 식별자는 각 브라우저 계정별로 임의로 생성, 할당된 32자리 16진수 값을 사용한다. 이렇게 정의된 이벤트 핸들러들은 로드되는 문서의 <body> 요소에 추가되어 이벤트를 수집하게 된다. 하기 표1은 이벤트 수집 툴을 통해 수집되 데이터의 예시를 나타낸다.The event collection code defines handlers for two JavaScript events: navigation and click. In this case, information on the identification of the user who triggered the event, the type of the event, the URL to be searched, and a timestamp indicating the occurrence time of the event are collected for the navigation event. For the click event, the same data as the information collected for the navigation event (however, the timestamp is expressed as the relative time after the navigation of the web page), and additional information to recognize the clicked object is additionally collected. In this process, in order to protect the privacy of each user, the user's identifier uses a 32-digit hexadecimal value randomly generated and assigned for each browser account. Event handlers defined in this way are added to the <body> element of the loaded document to collect events. Table 1 below shows examples of data collected through an event collection tool.

[표1][Table 1]

Figure pat00001
Figure pat00001

클릭 이벤트에 대해서는 문서 객체 모델 트리 상에서 클릭된 HTML 요소에 대한 경로가 추가적으로 수집된다. 사용자 상호작용으로 인해 클릭된 객체는 문서 객체 모델 트리 상에 위치한 특정 노드로 인식되는데, 하나의 문서에 대응되는 문서 객체 모델 트리 내에서 <body> 요소로부터 클릭된 HTML 요소까지의 경로에 존재하는 모든 노드들을 토대로 통합된 문자열을 생성하여 클릭된 객체를 인식한다. 이때 동일한 태그 이름을 갖는 객체들을 구분하기 위해 클릭된 HTML 요소의 위치 이외에도 해당 요소의 ID, CLASS 정보를 문자열에 포함한다.For the click event, the path to the clicked HTML element on the document object model tree is additionally collected. The object clicked due to user interaction is recognized as a specific node located on the document object model tree, and all existing in the path from the <body> element to the clicked HTML element in the document object model tree corresponding to one document. An integrated string is created based on the nodes to recognize the clicked object. In addition to the location of the clicked HTML element to distinguish objects with the same tag name, the ID and class information of the element are included in the string.

클릭된 HTML 요소까지의 경로에 존재하는 HTML 요소들은 ‘@’라는 특수 문자열로 구분된다. HTML elements that exist in the path to the clicked HTML element are separated by a special string called'@'.

(예: @BODY@DIV@SPAN...)(Example: @BODY@DIV@SPAN...)

이때 같은 태그명을 갖는 요소들을 구분하기 위해 CLASS 정보는 ‘.’으로, ID 정보는 ‘#’으로 표기한다. At this time, to classify elements with the same tag name, CLASS information is indicated as'.' and ID information is indicated as'#'.

(예: @BODY@DIV#LayoutWrapper...@SPAN.Carousel)(Example: @BODY@DIV#LayoutWrapper...@SPAN.Carousel)

각각의 통합된 문자열 앞에는 어떤 웹 응용인지를 나타내기 위해 탐색된 웹 페이지의 URL이 추가된다. 이때, 클릭된 객체가 <frame>이나 <iframe> 태그의 자손 노드일 경우 해당 프레임의 URL이 대신 추가된다.In front of each unified string, the URL of the searched web page is added to indicate which web application it is. At this time, if the clicked object is a child node of the <frame> or <iframe> tag, the URL of the frame is added instead.

(예: https://www.example.com/@BODY@DIV#LayoutWrapper...@SPAN.Carousel)(Example: https://www.example.com/@BODY@DIV#LayoutWrapper...@SPAN.Carousel)

수집된 이벤트들에 대한 데이터는 브라우저 임시 저장 공간에 누적하여 저장되었다가, 새로운 웹 응용으로 이동할 때 해당 시점까지 저장된 데이터를 JSON 형태로 인코딩하여 서버로 전송된다. 서버에서는 수집된 사용자 상호작용 데이터를 데이터베이스에 저장해 두었다가 예측 모델 학습에 활용한다.The collected event data is accumulated and stored in the browser temporary storage space, and when moving to a new web application, the data stored up to that point is encoded in JSON format and transmitted to the server. The server stores the collected user interaction data in a database and uses it for predictive model training.

본 발명에서는 GRU를 기반으로 사용자 상호작용 예측 모델을 설계한다. GRU 기반 모델은 특정 시점을 기준으로 최근에 발생한 네비게이션, 클릭 등 사용자 상호작용 이벤트 배열이 시간 순에 따라 입력으로 받아 다음으로 탐색될 응용을 출력으로 하여 이들 간의 관계를 학습한다. 예측 모델 학습에 앞서 이루어지는 전처리 과정에서는 수집된 네비게이션, 클릭 이벤트 데이터에 대해 브라우저 설정 페이지와 같이 유효하지 않은 URL들이 필터링되고, 각 사용자의 식별자별로 분류된 데이터는 시간 상으로 인접한 이벤트들을 개별 그룹으로 군집화되고, 데이터셋 내에서 출현 빈도수가 매우 낮은 사용자 식별자나 웹 응용, 클릭 객체에 대한 데이터를 제외된다. 이렇게 정리된 데이터셋에 대해 관찰되는 모든 URL과 클릭 객체들을 대상으로 고유의 정수를 할당하여 사전(dictionary)을 생성함으로써 텍스트로 표현되어 있는 데이터를 예측 모델에서 해석할 수 있는 숫자 형태로 변환한다. 전처리가 완료된 데이터는 GRU 기반 예측 모델의 입력으로 사용되는데, GRU 기반 예측 모델의 입력층은 문맥에 따라 가변 길이의 입력을 수용할 수 있도록 입력 데이터와 함께 입력의 길이도 함께 처리한다. 입력층 뒤에는 다중 GRU 셀로 구성된 은닉 계층을 여러 겹 쌓아 예측 모델의 중심부를 구성하고, 예측 대상별 예측 확률을 출력하기 위해 완전 연결(fully-connected) 계층을 추가하고, 최종적으로 softmax 계층을 추가하여 각 예측 대상별 출력값을 도출한다. 이처럼 기존에 자연어 처리 분야에서 널리 사용되었던 GRU 셀 구조를 활용하여 웹 네비게이션 예측에 적합한 심층 신경망 구조를 설계하였다.In the present invention, a user interaction prediction model is designed based on the GRU. The GRU-based model receives an array of user interaction events, such as navigation and clicks that occurred recently based on a specific point in time, as an input in chronological order, and learns the relationship between them by outputting the next application to be searched. In the preprocessing process prior to predictive model training, invalid URLs such as browser setting pages are filtered for the collected navigation and click event data, and the data classified by each user's identifier clusters adjacent events in time into individual groups. In addition, data on user identifiers, web applications, and click objects with a very low frequency of appearance in the dataset are excluded. By creating a dictionary by assigning a unique integer to all the URLs and click objects observed in the data set organized in this way, the data expressed in text is converted into a numeric form that can be interpreted by the predictive model. The preprocessed data is used as an input of the GRU-based prediction model, and the input layer of the GRU-based prediction model processes both the input data and the length of the input to accommodate the input of variable length according to the context. After the input layer, a hidden layer composed of multiple GRU cells is stacked to form the center of the prediction model, a fully-connected layer is added to output the prediction probability for each prediction target, and a softmax layer is finally added to predict each prediction. Derive output values for each object. As such, a deep neural network structure suitable for web navigation prediction was designed using the GRU cell structure, which was widely used in the field of natural language processing.

본 발명에서는 GRU 기반 예측 모델의 정확도 향상을 위해 URL 그룹핑(URL grouping), 웹 임베딩(Web embedding)이라는 두 가지 성능 향상 기법이 적용된다. 다음은 각 예측 성능 향상 기법의 구체적인 동작 과정을 나타낸다.In the present invention, in order to improve the accuracy of the GRU-based prediction model, two performance enhancement techniques, called URL grouping and web embedding, are applied. The following shows a detailed operation process of each prediction performance improvement technique.

네비게이션 이벤트에 대해 특정 URL의 쿼리 스트링(query string) 부분이 제거하고, 클릭 이벤트에 대해 쿼리 스트링이 제거된 URL과 클릭된 HTML 요소까지의 경로를 나타내는 문자열을 결합하고, 이를 통해 생성된 문자열을 각각의 이벤트에 대한 식별자로 활용한다.For the navigation event, the query string part of the specific URL is removed, the URL from which the query string is removed for the click event and the string representing the path to the clicked HTML element are combined, and the generated strings are each It is used as an identifier for the event of

예를 들어 아래 세 가지 URL이 존재하는 상황에서 쿼리 스트링은 이전 페이지의 종류(where), 현재 페이지의 검색어(query), 이전 페이지의 검색어(oquery)로 구성된다. 이러한 요소들은 검색 엔진에서 웹 페이지 간의 관련성을 분석하기 위해 일반적으로 활용되는 특성에 해당한다.For example, in a situation where the following three URLs exist, the query string consists of the type (where) of the previous page, the query of the current page, and the oquery of the previous page. These factors correspond to characteristics commonly used in search engines to analyze the relationship between web pages.

(URL 1) https://www.search.com/result.html?where=blogpost&query=machinelearning(URL 1) https://www.search.com/result.html?where=blogpost&query=machinelearning

(URL 2) https://www.search.com/result.html?where=searchbar&query=deeplearning&oquery=machinelearning(URL 2) https://www.search.com/result.html?where=searchbar&query=deeplearning&oquery=machinelearning

(URL 3) https://www.search.com/result.html?where=searchbar&query=gru&oquery=deeplearning(URL 3) https://www.search.com/result.html?where=searchbar&query=gru&oquery=deeplearning

상기 예시에서 페이지들은 서로 다른 URL을 가지고 있지만 페이지 로드 타임에 주된 부분을 차지하는 멀티미디어 자원들은 모두 동일하게 서버로 요청되고 다운받아져야 한다. URL 그룹핑을 활용하면 이러한 URL들은 하나의 통합된 그룹(즉, https://www.search.com/result.html)으로 인식되어 예측되기 때문에 예측된 자원의 공유가 가능해진다.In the above example, the pages have different URLs, but all multimedia resources that occupy a major part of the page load time must be requested and downloaded to the server in the same manner. When URL grouping is used, these URLs are recognized and predicted as one unified group (ie, https://www.search.com/result.html), so predicted resource sharing becomes possible.

웹 임베딩에서는 사용자 상호작용 이벤트들이 저차원 벡터 공간으로 매핑되어 표현된다. 웹 임베딩은 데이터셋에 존재하는 전체 이벤트 배열을 입력으로 받아 각 이벤트 식별자에 대해 64차원의 밀접된 벡터를 할당한다. 이때 같은 종류의 단어나 절에 대해서만 처리가 가능했던 기존의 워드 임베딩(word embedding)과 달리, 웹 임베딩에서는 네비게이션과 클릭이라는 두 가지 상이한 대상이 동일한 대상 공간에서 정렬된 뒤 저차원으로 벡터화되는 과정이 진행된다. 본 발명에서는 웹 임베딩의 구현을 위해 Word2vec의 skip-gram 모델을 활용하여 입력 심볼(symbol) 간의 문맥을 재설계할 수 있도록 스킵(skip)의 개수는 2, 스킵 윈도우(skip window)의 크기는 1인 2계층 신경망을 학습시킨다.In web embedding, user interaction events are mapped and expressed in a low-dimensional vector space. Web embedding takes the entire array of events in the dataset as input and allocates a close vector of 64 dimensions for each event identifier. At this time, unlike the existing word embedding, which could only process words or phrases of the same type, in web embedding, two different objects, such as navigation and click, are aligned in the same target space and then vectorized in a lower dimension. It goes on. In the present invention, the number of skips is 2 and the size of the skip window is 1 so that the context between input symbols can be redesigned using the skip-gram model of Word2vec to implement web embedding. Train a two-layer neural network.

예를 들어 웹 임베딩을 위한 데이터셋으로 다음과 같은 네비게이션, 클릭 이벤트의 배열을 고려할 수 있다. 즉, 사용자는 URL_a를 가진 웹 응용으로 탐색한 뒤 Object_x, Object_y, Object_z 세 객체들을 클릭한 뒤 URL_b를 가진 웹 응용으로 탐색한 뒤 다시 URL_c를 가진 웹 응용으로 탐색한다.{(Navigation to URL_a), (Click to Object_x), (Click to Object_y), (Click to Object_z), (Navigation to URL_b), (Navigation to URL_c), ...}For example, as a dataset for web embedding, the following arrangement of navigation and click events can be considered. In other words, the user navigates to a web application with URL_a, clicks on three objects Object_x, Object_y, and Object_z, then navigates to a web application with URL_b, and then navigates to a web application with URL_c again ((Navigation to URL_a), (Click to Object_x), (Click to Object_y), (Click to Object_z), (Navigation to URL_b), (Navigation to URL_c), ...}

위의 예시에서 첫 번째 과정으로 서로 인접한 이벤트들에 대한 (문맥, 대상) 쌍을 다음과 같이 생성한다. 이는 스킵 윈도우의 크기가 1이기 때문에 특정 대상을 기준으로 좌우 대상들이 문맥으로 정의되기 때문이다.{([Navigation to URL_a, Click to Object_y], Click to Object_x), ([Click to Object_x, Click to Object_z], Click to Object_y), ([Click to Object_y, Navigation to URL_b], C to Object_z), ...}As the first process in the above example, (context, target) pairs for adjacent events are created as follows. This is because the size of the skip window is 1, so the left and right objects are defined as context based on a specific object. {([Navigation to URL_a, Click to Object_y], Click to Object_x), ([Click to Object_x, Click to Object_z) ], Click to Object_y), ([Click to Object_y, Navigation to URL_b], C to Object_z), ...}

이때 skip-gram 모델은 대상 심볼로부터 문맥 심볼을 예측하기 때문에 데이터셋은 아래와 같은 (입력, 출력) 쌍으로 변환된다.{(Click to Object_x, Navigation to URL_a), (Click to Object_x, Click to Object_y), (Click to Object_y, Click to Object_x), (Click to Object_y, C to Object_z), ...}At this time, since the skip-gram model predicts the context symbol from the target symbol, the dataset is converted into the following (input, output) pairs: ((Click to Object_x, Navigation to URL_a), (Click to Object_x, Click to Object_y) , (Click to Object_y, Click to Object_x), (Click to Object_y, C to Object_z), ...}

이후 stochastic gradient descent(SGD) 기법을 활용하여 반복적으로 벡터 표현의 오차를 줄여나가는 방향으로 목적 함수(objective function)가 최적화되고 최종적으로 찾은 임베딩은 사전의 형태로 저장된다. 실제 학습 단계에서는 저장된 사전을 탐색하여 입력으로 주어진 각 이벤트를 해당되는 벡터 표현으로 변환한 뒤 GRU 기반 예측 모델을 입력으로 사용한다.After that, the objective function is optimized in the direction of repeatedly reducing the error of vector expression by using stochastic gradient descent (SGD) technique, and the finally found embedding is stored in the form of a dictionary. In the actual learning step, each event given as an input is converted into a corresponding vector representation by searching the stored dictionary, and then a GRU-based prediction model is used as an input.

도 5는 본 발명의 일 실시예에 따른 웹 응용에 대한 사용자 상호작용 예측 방법에서 전처리 과정을 거친 경우 성능 차이를 설명하는 도면이다.5 is a diagram illustrating a difference in performance when a preprocessing process is performed in a method for predicting user interaction for a web application according to an embodiment of the present invention.

본 실시예에서는 실제 사용자들에게 이벤트 수집 툴을 배포하고 이를 통해 수집된 상호작용 데이터를 통해 사용자 상호작용 예측 모델을 학습시켜 본 발명의 효과를 검증하였다. GRU 기반의 예측 모델은 4계층, 128개의 유닛으로 구성되어 He 초기화 기법을 사용하고 매 반복마다 10개의 타임 스탭을 활용하고 활성화 함수는 ReLU, 최적화 알고리즘은 Momentum, 학습 속도(learning rate)는 0.01, 배치 크기(batch size)는 25를 사용하였다. 사용자 상호작용 예측 모델의 성능은 F-measure를 통해 평가되었다.In this embodiment, the effect of the present invention was verified by distributing an event collection tool to real users and learning a user interaction prediction model through the interaction data collected through it. The GRU-based prediction model consists of 4 layers, 128 units, uses the He initialization technique, uses 10 time steps per iteration, the activation function is ReLU, the optimization algorithm is Momentum, and the learning rate is 0.01, A batch size of 25 was used. The performance of the user interaction prediction model was evaluated through F-measure.

도 5는 클릭 이벤트를 예측에 활용하였을 때 전체 성능 향상에 미치는 영향을 나타낸 것으로, 사용된 예측 모델 구성에 따라 9.2 ~ 19.8%, 평균적으로 13.7%의 성능 향상을 이끌어냄을 알 수 있다. 기존의 예측 기법들이 대부분 웹 페이지 간의 네비게이션 이벤트만을 활용한 것에 비해, 본 발명은 하나의 응용 내에서 발생하는 클릭 데이터를 함께 예측에 활용하여 예측 성능을 한층 더 향상시켰다.FIG. 5 shows the effect of the click event on the overall performance improvement when the click event is used for prediction, and it can be seen that the performance improvement of 9.2 to 19.8% on average, and 13.7% on average, depending on the used prediction model configuration. Whereas most of the existing prediction techniques utilize only navigation events between web pages, the present invention further improves prediction performance by utilizing click data generated in one application together for prediction.

도 6은 본 발명의 일 실시예에 따른 웹 응용에 대한 사용자 상호작용 예측 방법에서 예측 후보군의 개수의 따라 본 발명에서 개발된 URL 그룹핑, 웹 임베딩 기법이 성능 향상에 미친 영향을 나타낸 도면이다. 단순히 GRU를 활용하여 예측 모델을 학습시킨 것에 비해 URL 그룹핑을 적용했을 때에는 F-measure가 평균 39.%, 후보군의 수가 적을 때에는 최대 85.6%까지 향상된 것을 알 수 있다. 여기에 웹 임베딩까지 추가로 적용될 경우 추가적으로 평균 10.6%의 성능 향상을 보였다. 즉, 두 가지 기법을 종합하여 적용할 경우 기본 GRU 모델 대비 평균 56.6% 성능 향상을 보였고, 현실적인 후보군 수에 해당하는 3개의 후보군에 대해서는 52.4%의 성능 향상을 통해 F-measure 0.798의 예측 성능을 달성하였다. 이러한 결과는 본 발명의 실용성이나 정확도 수준을 고려하였을 때 실제 환경에서의 웹 응용을 위한 사용자 상호작용 예측을 위해 활용되기에 적합하다는 것을 나타낸다.6 is a diagram showing the effect of the URL grouping and web embedding techniques developed in the present invention on performance improvement according to the number of prediction candidate groups in the method for predicting user interaction for a web application according to an embodiment of the present invention. It can be seen that the F-measure is improved by an average of 39.% when the URL grouping is applied, and up to 85.6% when the number of candidate groups is small, compared to the simple training of the prediction model using GRU. In addition, when web embedding is additionally applied, it shows an additional average of 10.6% performance improvement. In other words, when the two techniques are combined and applied, the average performance improved by 56.6% compared to the basic GRU model, and the predictive performance of F-measure 0.798 was achieved through 52.4% performance improvement for the 3 candidate groups corresponding to the realistic number of candidate groups. I did. These results indicate that the present invention is suitable for use in predicting user interactions for web applications in an actual environment in consideration of the practicality and accuracy level of the present invention.

본 발명의 일 실시예는 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체를 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다. An embodiment of the present invention may also be implemented in the form of a recording medium including instructions executable by a computer, such as a program module executed by a computer. Computer-readable media can be any available media that can be accessed by a computer, and includes both volatile and nonvolatile media, removable and non-removable media. Further, the computer-readable medium may include a computer storage medium. Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data.

본 발명의 방법 및 시스템은 특정 실시예와 관련하여 설명되었지만, 그것들의 구성 요소 또는 동작의 일부 또는 전부는 범용 하드웨어 아키텍쳐를 갖는 컴퓨터 시스템을 사용하여 구현될 수 있다.Although the methods and systems of the present invention have been described in connection with specific embodiments, some or all of their components or operations may be implemented using a computer system having a general-purpose hardware architecture.

전술한 본원의 설명은 예시를 위한 것이며, 본원이 속하는 기술분야의 통상의 지식을 가진 자는 본원의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.The foregoing description of the present application is for illustrative purposes only, and those of ordinary skill in the art to which the present application pertains will be able to understand that it can be easily modified into other specific forms without changing the technical spirit or essential features of the present application. Therefore, it should be understood that the embodiments described above are illustrative and non-limiting in all respects. For example, each component described as a single type may be implemented in a distributed manner, and similarly, components described as being distributed may also be implemented in a combined form.

본원의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본원의 범위에 포함되는 것으로 해석되어야 한다.The scope of the present application is indicated by the claims to be described later rather than the detailed description, and all changes or modified forms derived from the meaning and scope of the claims and their equivalent concepts should be construed as being included in the scope of the present application.

100: 서버
110: 통신 모듈
120: 메모리
130: 프로세서
140: 데이터베이스
150: 입력모듈
200: 사용자 단말
100: server
110: communication module
120: memory
130: processor
140: database
150: input module
200: user terminal

Claims (14)

서버에 의해 수행되는 웹 응용에 대한 사용자 상호작용 예측 방법에 있어서,
(a) 네트워크를 통해 웹 응용을 탐색할 때 발생하는 URL 탐색을 위한 네비게이션 이벤트 및 클릭 이벤트를 포함하는 이벤트 정보를 사용자 단말로부터 수집하는 단계;
(b) 성능 향상을 위한 데이터 필터링 및 데이터 벡터화를 포함하는 전처리 프로세스를 상기 수집된 이벤트 정보에 적용하여 사용자 행동분석 데이터를 생성하는 단계;
(c) 사용자 단말에서 웹 응용 탐색에 따른 신규 이벤트 발생시, 상기 신규 이벤트 발생 정보를 사용자 상호작용 예측 모델에 입력하여 상기 신규 이벤트 이후 발생할 이벤트를 포함하는 예측 결과 데이터를 생성하는 단계; 및
(d) 상기 예측 결과 데이터에 기초하여 서버에서 상기 사용자 단말에 제공할 서비스 상태를 조절하는 단계;를 포함하되,
상기 사용자 상호작용 예측 모델은 상기 사용자 행동분석 데이터를 기초로 순환 신경망(RNN: Recurrent Neural Network)를 이용하여 학습된 것인,
웹 응용에 대한 사용자 상호작용 예측 방법.
In the method for predicting user interaction for a web application performed by a server,
(a) collecting event information from a user terminal including a navigation event and a click event for URL search, which occurs when a web application is searched through a network;
(b) generating user behavior analysis data by applying a pre-processing process including data filtering and data vectorization for performance improvement to the collected event information;
(c) generating prediction result data including an event to occur after the new event by inputting the new event occurrence information into a user interaction prediction model when a new event occurs according to a web application search in the user terminal; And
(d) adjusting a service state to be provided to the user terminal in the server based on the prediction result data; including,
The user interaction prediction model is learned using a recurrent neural network (RNN) based on the user behavior analysis data,
How to predict user interaction for web applications.
제 1 항에 있어서,
상기 (a)단계에서 수집하는 이벤트 정보는 사용자 식별자 정보, 이벤트 종류 정보, 탐색된 URL정보, 클릭된 객체 정보 또는 이벤트 발생시간을 나타내는 타임스탬프 중 적어도 하나를 포함하는 것을 특징으로 하는,
웹 응용에 대한 사용자 상호작용 예측 방법.
The method of claim 1,
The event information collected in step (a) comprises at least one of user identifier information, event type information, searched URL information, clicked object information, or a timestamp indicating an event occurrence time,
How to predict user interaction for web applications.
제 1 항에 있어서,
상기 (b)단계에서 적용되는 상기 전처리 프로세스는 기설정된 조건을 만족하는 URL들을 하나의 통합된 그룹으로 인식하는URL 그룹핑 프로세스를 포함하는 것이고,
상기 URL 그룹핑 프로세스는 네비게이션 이벤트에 대해 기설정된 URL의 쿼리 스트링 부분을 제거하고, 클릭 이벤트에 대해 쿼리 스트링이 제거된 URL과 클릭된 HTML 요소까지의 경로를 나타내는 문자열을 결합한 후, 페이지 로드 타임에 기설정된 비중 이상을 차지하는 동일한 멀티미디어 자원들을 요청하는 URL들을 하나의 통합된 그룹으로 인식하는 것인,
웹 응용에 대한 사용자 상호작용 예측 방법.
The method of claim 1,
The pre-processing process applied in step (b) includes a URL grouping process for recognizing URLs that satisfy a preset condition as one integrated group,
The URL grouping process removes the query string part of the URL preset for the navigation event, combines the URL from which the query string is removed for the click event and the string indicating the path to the clicked HTML element, and then writes it at page load time. Recognizing URLs requesting the same multimedia resources occupying more than a set proportion as one integrated group,
How to predict user interaction for web applications.
제 1 항에 있어서,
상기 (b)단계에서 적용되는 상기 전처리 프로세스는 상기 이벤트 정보를 동일한 대상 공간에서 정렬한 뒤 저차원으로 벡터화하는 웹 임베딩 프로세스를 포함하는 것이고,
상기 웹 임베딩 프로세스는 워드투벡터(word2Vec)의 스킵-그람(Skip-gram)을 사용하여 상기 이벤트 정보에 포함된 네비게이션 이벤트와 클릭 이벤트를 각각 배열형태의 입력으로 받아, 상기 입력 간의 문맥을 재설계하고, 확률 그라디언트 하강(Stochastic Gradient Descent)기법을 활용하여 반복적으로 벡터 표현의 오차를 줄여나가는 방향으로 목적함수를 최적화하고, 최종적으로 찾은 임베딩은 사전의 형태로 저장하는 것인,
웹 응용에 대한 사용자 상호작용 예측 방법.
The method of claim 1,
The pre-processing process applied in step (b) includes a web embedding process in which the event information is arranged in the same target space and then vectorized in a low dimension,
The web embedding process uses a word-to-vector (word2Vec) skip-gram to receive navigation events and click events included in the event information as inputs in an array form, and redesign the context between the inputs. And, by using a stochastic gradient descent technique, the objective function is repeatedly optimized in the direction of reducing the error of the vector expression, and the finally found embedding is stored in the form of a dictionary.
How to predict user interaction for web applications.
제 1 항에 있어서,
상기 (d)단계는 상기 예측 결과 데이터에 해당하는 컨텐츠를 상기 사용자 단말로 미리 가져오는 프리페칭(prefetching)단계를 포함하는,
웹 응용에 대한 사용자 상호작용 예측 방법.
The method of claim 1,
The step (d) includes a prefetching step of prefetching content corresponding to the prediction result data to the user terminal,
How to predict user interaction for web applications.
제 1 항에 있어서,
상기 사용자 상호작용 예측 모델은 순환 신경망 중 GRU(Gated Recurrent Unit) 를 사용하여, 시간 순서로 발생하는 클릭 이벤트 및 네비게이션 이벤트를 입력 데이터로 하여 다음에 발생하는 이벤트와의 관계를 학습하고, 미래에 발생할 사용자 이벤트를 예측하는 것인,
웹 응용에 대한 사용자 상호작용 예측 방법.
The method of claim 1,
The user interaction prediction model uses a GRU (Gated Recurrent Unit) of a recurrent neural network, and learns the relationship with the next event by using as input data a click event and a navigation event occurring in a chronological order. Predicting user events,
How to predict user interaction for web applications.
제 6 항에 있어서,
상기 사용자 상호작용 예측 모델은 문맥에 따라 가변 길이의 입력을 수용할 수 있는 입력 레이어, 다중 GRU 셀로 구성된 여러 겹의 히든 레이어로 구성된 중심부, 예측 대상별 예측 확률을 출력하기 위한 완전 연결(fully-connected) 레이어 및 각 예측 대상별 확률값을 도출하는 소프트맥스 레이어 를 포함하는 것인,
웹 응용에 대한 사용자 상호작용 예측 방법.
The method of claim 6,
The user interaction prediction model is an input layer capable of accepting an input of variable length depending on the context, a center composed of multiple layers of hidden layers composed of multiple GRU cells, and fully-connected to output prediction probabilities for each prediction target. Including a layer and a softmax layer for deriving a probability value for each prediction target,
How to predict user interaction for web applications.
웹 응용에 대한 사용자 상호작용 예측 서버에 있어서,
웹 응용에 대한 사용자 상호작용 예측 프로그램이 저장된 메모리;
상기 메모리에 저장된 프로그램을 실행하는 프로세서를 포함하며, 상기 프로세서는 상기 프로그램의 실행에 의해,
네트워크를 통해 웹 응용을 탐색할 때 발생하는 URL 탐색을 위한 네비게이션 이벤트 및 클릭 이벤트를 포함하는 이벤트 정보를 사용자 단말로부터 수집하고,
성능 향상을 위한 데이터 필터링 및 데이터 벡터화를 포함하는 전처리 프로세스를 상기 수집된 이벤트 정보에 적용하여 사용자 행동분석 데이터를 생성하고,
사용자 단말에서 웹 응용 탐색에 따른 신규 이벤트 발생시, 상기 신규 이벤트 발생 정보를 사용자 상호작용 예측 모델에 입력하여 상기 신규 이벤트 이후 발생할 이벤트를 포함하는 예측 결과 데이터를 생성하고,
상기 예측 결과 데이터에 기초하여 서버에서 상기 사용자 단말에 제공할 서비스 상태를 조절하되,
상기 사용자 상호작용 예측 모델은 상기 사용자 행동분석 데이터를 기초로 순환 신경망(RNN: Recurrent Neural Network)를 이용하여 학습된 것인,
웹 응용에 대한 사용자 상호작용 예측 서버.
In the user interaction prediction server for a web application,
A memory in which a program for predicting user interaction for a web application is stored;
And a processor that executes a program stored in the memory, the processor by execution of the program,
Collecting event information including a navigation event and a click event for URL search that occurs when browsing a web application through a network from a user terminal,
Generating user behavior analysis data by applying a pre-processing process including data filtering and data vectorization for performance improvement to the collected event information,
When a new event occurs according to a web application search in the user terminal, the new event occurrence information is input into a user interaction prediction model to generate prediction result data including an event to occur after the new event,
Based on the prediction result data, the server adjusts the service state to be provided to the user terminal,
The user interaction prediction model is learned using a recurrent neural network (RNN) based on the user behavior analysis data,
User interaction prediction server for web applications.
제 8 항에 있어서,
상기 전처리 프로세스는 기설정된 조건을 만족하는 URL들을 하나의 통합된 그룹으로 인식하는URL 그룹핑 프로세스를 포함하는 것인,
웹 응용에 대한 사용자 상호작용 예측 서버.
The method of claim 8,
The pre-processing process includes a URL grouping process for recognizing URLs satisfying a preset condition as one integrated group,
User interaction prediction server for web applications.
제 8 항에 있어서,
상기 전처리 프로세스는 상기 이벤트 정보를 동일한 대상 공간에서 정렬한 뒤 저차원으로 벡터화하는 웹 임베딩 프로세스를 포함하는 것이고,
웹 응용에 대한 사용자 상호작용 예측 서버.
The method of claim 8,
The pre-processing process includes a web embedding process in which the event information is arranged in the same target space and then vectorized in a low dimension,
User interaction prediction server for web applications.
사용자 단말에서의 웹 응용에 대한 사용자 상호작용 예측 방법에 있어서,
(a) 네트워크를 통해 웹 응용을 탐색할 때 발생하는 URL 탐색을 위한 네비게이션 이벤트 및 클릭 이벤트를 포함하는 이벤트 정보를 수집하는 단계;
(b) 성능 향상을 위한 데이터 필터링 및 데이터 벡터화를 포함하는 전처리 프로세스를 상기 수집된 이벤트 정보에 적용하여 사용자 행동분석 데이터를 생성하는 단계;
(c) 사용자 단말에서 웹 응용 탐색에 따른 신규 이벤트 발생시, 상기 신규 이벤트 발생 정보를 사용자 상호작용 예측 모델에 입력하여 상기 신규 이벤트 이후 발생할 이벤트를 포함하는 예측 결과 데이터를 생성하는 단계; 및
(d) 상기 예측 결과 데이터에 기초하여 외부 응용서비스 제공 서버에 대하여 상기 사용자 단말에 제공할 서비스의 제공 상태를 조절하는 단계;를 포함하되,
상기 사용자 상호작용 예측 모델은 상기 사용자 행동분석 데이터를 기초로 순환 신경망(RNN: Recurrent Neural Network)를 이용하여 학습된 것인,
웹 응용에 대한 사용자 상호작용 예측 방법.
In a method for predicting user interaction for a web application in a user terminal,
(a) collecting event information including a navigation event and a click event for URL search that occurs when browsing a web application through a network;
(b) generating user behavior analysis data by applying a preprocessing process including data filtering and data vectorization for performance improvement to the collected event information;
(c) generating prediction result data including an event to occur after the new event by inputting the new event occurrence information into a user interaction prediction model when a new event occurs according to a web application search in the user terminal; And
(d) adjusting a provision state of a service to be provided to the user terminal with respect to an external application service providing server based on the prediction result data; including,
The user interaction prediction model is learned using a recurrent neural network (RNN) based on the user behavior analysis data,
How to predict user interaction for web applications.
제 11 항에 있어서,
상기 전처리 프로세스는 기설정된 조건을 만족하는 URL들을 하나의 통합된 그룹으로 인식하는URL 그룹핑 프로세스를 포함하는 것인,
웹 응용에 대한 사용자 상호작용 예측 방법.
The method of claim 11,
The pre-processing process includes a URL grouping process for recognizing URLs satisfying a preset condition as one integrated group,
How to predict user interaction for web applications.
제 11 항에 있어서,
상기 전처리 프로세스는 상기 이벤트 정보를 동일한 대상 공간에서 정렬한 뒤 저차원으로 벡터화하는 웹 임베딩 프로세스를 포함하는 것이고,
웹 응용에 대한 사용자 상호작용 예측 방법.
The method of claim 11,
The pre-processing process includes a web embedding process in which the event information is arranged in the same target space and then vectorized in a low dimension,
How to predict user interaction for web applications.
제 1 항에 따르는 방법을 수행하기 위한 컴퓨터 프로그램이 기록된 비일시적 컴퓨터 판독가능 기록매체.A non-transitory computer-readable recording medium on which a computer program for performing the method according to claim 1 is recorded.
KR1020190150517A 2019-11-21 2019-11-21 Method and server for predicting user interaction for web applications KR102278814B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190150517A KR102278814B1 (en) 2019-11-21 2019-11-21 Method and server for predicting user interaction for web applications

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190150517A KR102278814B1 (en) 2019-11-21 2019-11-21 Method and server for predicting user interaction for web applications

Publications (2)

Publication Number Publication Date
KR20210062372A true KR20210062372A (en) 2021-05-31
KR102278814B1 KR102278814B1 (en) 2021-07-19

Family

ID=76150169

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190150517A KR102278814B1 (en) 2019-11-21 2019-11-21 Method and server for predicting user interaction for web applications

Country Status (1)

Country Link
KR (1) KR102278814B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102352356B1 (en) * 2021-07-09 2022-01-18 주식회사 넥스인테크놀로지 Method, apparatus and computer program for preprocessing personal information using pre-trained artificial intelligence model
CN114580876A (en) * 2022-02-24 2022-06-03 山西省交通新技术发展有限公司 Energy data acquisition, analysis, management and control system and method based on energy conservation and environmental protection

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230134724A (en) 2022-03-15 2023-09-22 성균관대학교산학협력단 Method for predicting time-variable data for weg page, apparatus, web management system using thereof, computer-readable storage medium and computer program

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090125108A (en) * 2007-02-20 2009-12-03 야후! 인크. System and method for preloading content on the basis of user context
US20120246257A1 (en) * 2011-03-22 2012-09-27 Research In Motion Limited Pre-Caching Web Content For A Mobile Device
KR20150009811A (en) 2013-07-17 2015-01-27 한국전자통신연구원 Method for accelerating the web server by predicting http requests and the web server enabling the method
US9098813B1 (en) * 1999-12-28 2015-08-04 Personalized User Model Methods and systems for conducting a personalized web browser search by probability estimation that is unseen document is of interest to the user
KR20190090738A (en) * 2019-07-01 2019-08-02 엘지전자 주식회사 Method and apparatus for predicting user behavior

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9098813B1 (en) * 1999-12-28 2015-08-04 Personalized User Model Methods and systems for conducting a personalized web browser search by probability estimation that is unseen document is of interest to the user
KR20090125108A (en) * 2007-02-20 2009-12-03 야후! 인크. System and method for preloading content on the basis of user context
US20120246257A1 (en) * 2011-03-22 2012-09-27 Research In Motion Limited Pre-Caching Web Content For A Mobile Device
KR20150009811A (en) 2013-07-17 2015-01-27 한국전자통신연구원 Method for accelerating the web server by predicting http requests and the web server enabling the method
KR20190090738A (en) * 2019-07-01 2019-08-02 엘지전자 주식회사 Method and apparatus for predicting user behavior

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102352356B1 (en) * 2021-07-09 2022-01-18 주식회사 넥스인테크놀로지 Method, apparatus and computer program for preprocessing personal information using pre-trained artificial intelligence model
CN114580876A (en) * 2022-02-24 2022-06-03 山西省交通新技术发展有限公司 Energy data acquisition, analysis, management and control system and method based on energy conservation and environmental protection
CN114580876B (en) * 2022-02-24 2023-02-10 山西省交通新技术发展有限公司 Energy data acquisition, analysis, management and control system and method based on energy conservation and environmental protection

Also Published As

Publication number Publication date
KR102278814B1 (en) 2021-07-19

Similar Documents

Publication Publication Date Title
Lokman et al. Modern chatbot systems: A technical review
CN102597993B (en) Managing application state information by means of uniform resource identifier (URI)
US20200304550A1 (en) Generic Event Stream Processing for Machine Learning
US20200342055A1 (en) Named entity disambiguation using entity distance in a knowledge graph
KR102278814B1 (en) Method and server for predicting user interaction for web applications
JP2010501096A (en) Cooperative optimization of wrapper generation and template detection
CN103443786A (en) Machine learning method to identify independent tasks for parallel layout in web browsers
Olmezogullari et al. Representation of click-stream datasequences for learning user navigational behavior by using embeddings
CN111625715B (en) Information extraction method and device, electronic equipment and storage medium
CN110147476A (en) Data crawling method, terminal device and computer readable storage medium based on Scrapy
Said et al. AI-based solar energy forecasting for smart grid integration
Sharma et al. A novel architecture for deep web crawler
Oguz et al. Extracting information from large scale graph data: Case study on automated ui testing
Requeno et al. Quantitative analysis of apache storm applications: the newsasset case study
US20220383036A1 (en) Clustering data using neural networks based on normalized cuts
WO2019012287A1 (en) Method for automatically generating a wrapper for extracting web data, and a computer system
Santos et al. A genetic programming framework to schedule webpage updates
Kumar et al. Web page access prediction using hierarchical clustering based on modified Levenshtein distance and higher order Markov model
CN116894495A (en) Method, computer readable medium and system for enhancing machine learning pipeline with annotations
Li et al. Automatic content extraction and time-aware topic clustering for large-scale social network on cloud platform
KR20230170752A (en) Hardware-aware incremental training of machine learning models
US20140279743A1 (en) Jabba-type override for correcting or improving output of a model
CN114580533A (en) Method, apparatus, device, medium, and program product for training feature extraction model
Theodorou et al. Synthesize extremely high-dimensional longitudinal electronic health records via hierarchical autoregressive language model
Pavithra et al. Web page recommendation using genetic and feed forward association rule on web-log features

Legal Events

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