KR102652416B1 - A method for presenting information on a product based on high speed similarity calculation and an apparatus therefor - Google Patents
A method for presenting information on a product based on high speed similarity calculation and an apparatus therefor Download PDFInfo
- Publication number
- KR102652416B1 KR102652416B1 KR1020180064815A KR20180064815A KR102652416B1 KR 102652416 B1 KR102652416 B1 KR 102652416B1 KR 1020180064815 A KR1020180064815 A KR 1020180064815A KR 20180064815 A KR20180064815 A KR 20180064815A KR 102652416 B1 KR102652416 B1 KR 102652416B1
- Authority
- KR
- South Korea
- Prior art keywords
- product
- information
- products
- similarity
- server
- Prior art date
Links
- 238000004364 calculation method Methods 0.000 title claims abstract description 64
- 238000000034 method Methods 0.000 title claims abstract description 29
- 238000004458 analytical method Methods 0.000 claims abstract description 79
- 238000013480 data collection Methods 0.000 claims abstract description 31
- 238000004891 communication Methods 0.000 claims description 57
- 230000009471 action Effects 0.000 claims description 35
- 238000007781 pre-processing Methods 0.000 claims description 30
- 238000012217 deletion Methods 0.000 claims description 10
- 230000037430 deletion Effects 0.000 claims description 10
- 230000006870 function Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 10
- 238000010295 mobile communication Methods 0.000 description 5
- 230000008033 biological extinction Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000007423 decrease Effects 0.000 description 3
- 239000000835 fiber Substances 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 2
- 230000008030 elimination Effects 0.000 description 2
- 238000003379 elimination reaction Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 101150012579 ADSL gene Proteins 0.000 description 1
- 102100020775 Adenylosuccinate lyase Human genes 0.000 description 1
- 108700040193 Adenylosuccinate lyases Proteins 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003012 network analysis Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 238000010926 purge Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
- 238000010809 targeting technique Methods 0.000 description 1
- 239000010409 thin film Substances 0.000 description 1
Images
Classifications
-
- 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
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0241—Advertisements
- G06Q30/0251—Targeted advertisements
- G06Q30/0254—Targeted advertisements based on statistics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/18—Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
-
- 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
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0241—Advertisements
- G06Q30/0251—Targeted advertisements
- G06Q30/0269—Targeted advertisements based on user profile or attribute
- G06Q30/0271—Personalized advertisement
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Accounting & Taxation (AREA)
- Development Economics (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- Data Mining & Analysis (AREA)
- Game Theory and Decision Science (AREA)
- Economics (AREA)
- Marketing (AREA)
- General Business, Economics & Management (AREA)
- Mathematical Analysis (AREA)
- Probability & Statistics with Applications (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Entrepreneurship & Innovation (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Operations Research (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Algebra (AREA)
- Life Sciences & Earth Sciences (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
본 발명은 고속 유사도 연산 기반의 상품에 대한 정보를 제공하기 위한 방법 및 이를 위한 추천 서버에 관한 것으로, 이러한 본 발명은 데이터수집서버가 사용자단말기로부터 각각이 사용자식별자 및 상품을 포함하는 복수의 행동 로그를 수집하여 분석서버로 전송하는 단계와, 상기 분석서버가 복수의 행동 로그 중 일부를 소거하는 단계와, 상기 분석서버가 일부가 소거된 복수의 행동 로그에 대해 유사도 연산을 수행하여 유사도를 산출하는 단계와, 상기 분석서버가 상기 유사도 연산 결과에 따라 상품에 대한 정보를 생성하는 단계와, 상기 분석서버가 상기 상품에 대한 정보를 응용서버로 전송하는 단계를 포함하는 것을 특징으로 하는 상품에 대한 정보를 제공하기 위한 방법과, 이를 위한 추천 서버를 제공한다. The present invention relates to a method for providing information about products based on high-speed similarity calculation and a recommendation server for the same. The present invention relates to a method for providing information on products based on high-speed similarity calculation, and a recommendation server for the same. This invention relates to a data collection server collecting a plurality of behavior logs, each containing a user identifier and a product, from a user terminal. Collecting and transmitting to an analysis server, the analysis server deleting some of the plurality of behavior logs, and the analysis server performing a similarity calculation on the plurality of partially erased behavior logs to calculate the similarity. Information about the product comprising a step of the analysis server generating information about the product according to the similarity calculation result, and the step of the analysis server transmitting the information about the product to an application server. Provides a method for providing and a recommendation server for this.
Description
본 발명은 상품에 대한 정보를 제공하기 위한 기술에 관한 것으로, 더욱 상세하게는 행동 로그의 유사도 분석을 통해 상품에 대한 정보를 제공하되, 유사도 연산을 위한 데이터의 양을 감소시켜 고속의 유사도 연산을 통해 상품에 대한 정보를 도출하고, 도출된 정보를 제공하는 방법 및 이를 위한 장치에 관한 것이다.The present invention relates to a technology for providing information about a product. More specifically, the present invention relates to a technology for providing information about a product, and more specifically, provides information about the product through similarity analysis of behavior logs, while reducing the amount of data for similarity calculation to enable high-speed similarity calculation. It relates to a method and device for deriving information about a product and providing the derived information.
스마트폰, 태블릿 패드 등의 모바일 장치에서 실행되는 애플리케이션 시장이 급격히 확대됨에 따라 이와 관련된 광고 시장도 빠른 속도로 팽창하고 있다. As the application market running on mobile devices such as smartphones and tablet pads is rapidly expanding, the related advertising market is also expanding at a rapid pace.
이와 관련하여, 모바일 장치(이하, '사용자 단말기'라 칭함)에서는 광고매체인 애플리케이션의 실행 또는 서비스 페이지(예: 웹 페이지) 접속 시 추천 서버로부터 제공되는 광고를 수신하여 표시할 수 있으며, 표시된 광고를 선택하는 경우에는 광고에 링크된 광고주 페이지로 접속할 수 있게 된다.In this regard, mobile devices (hereinafter referred to as “user terminals”) may receive and display advertisements provided from a recommendation server when running an application that is an advertising medium or accessing a service page (e.g., a web page), and the displayed advertisements If you select , you can access the advertiser's page linked to the advertisement.
이때, 추천 서버에서는 광고 효과를 높이기 위해 광고주로부터 등록된 광고의 속성과 적합한 광고수신자그룹을 확인하여, 확인된 광고수신자그룹에 속한 각 사용자에게 해당 광고를 제공하는 일종의 타겟팅 기법을 채택하게 된다.At this time, in order to increase advertising effectiveness, the recommendation server verifies the properties of the advertisement registered by the advertiser and the appropriate advertisement recipient group, and adopts a type of targeting technique that provides the advertisement to each user belonging to the confirmed advertisement recipient group.
여기서, 광고수신자그룹은, 사용자마다의 광고에 대응하는 속성을 세그먼트로 정의하고, 동일한 세그먼트에 해당하는 사용자들을 하나의 광고수신자그룹으로 분류하는 분류(Segmentation) 기법에 의해 분류될 수 있다. 임의의 분류 기준에 따라서 특정 속성으로 정의하여 분류되는 하나의 광고수신자그룹을 세그먼트로 지칭할 수 있다.Here, the advertisement recipient group can be classified by a segmentation technique that defines the attributes corresponding to each user's advertisement as a segment and classifies users corresponding to the same segment into one advertisement recipient group. A group of advertisement recipients classified by defining specific attributes according to arbitrary classification criteria can be referred to as a segment.
기존의 타겟팅 광고에 있어서, 각 세그먼트는 사용자의 행동 로그 정보를 기반으로 추출되며, 행동 로그 정보의 유사도를 분석하여 세그먼트를 추출한다. 하지만, 이러한 행동 로그 정보는 그 양이 방대하여 유사도 분석을 위한 연산 시간은 시스템에 엄청난 부하를 가져온다. 따라서, 그 연산 시간을 감축할 수 있는 방법이 요구된다. In existing targeting advertisements, each segment is extracted based on the user's behavior log information, and the segment is extracted by analyzing the similarity of the behavior log information. However, the amount of behavior log information is so large that the computation time for similarity analysis places a huge load on the system. Therefore, a method that can reduce the calculation time is required.
따라서 본 발명의 목적은 방대한 량의 행동 로그 정보의 유사도 분석을 통해 상품에 대한 정보를 추출할 때, 유사도 연산을 위한 데이터의 양을 감소시켜 고속의 유사도 연산을 통해 상품에 대한 정보를 추출하고, 추출된 정보를 제공하는 방법 및 이를 위한 장치를 제공함에 있다. Therefore, the purpose of the present invention is to extract information about products through high-speed similarity calculation by reducing the amount of data for similarity calculation when extracting information about products through similarity analysis of a large amount of behavior log information. The aim is to provide a method for providing extracted information and a device for this.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 상품에 대한 정보를 제공하기 위한 방법은 데이터수집서버가 사용자단말기로부터 각각이 사용자식별자 및 상품을 포함하는 복수의 행동 로그를 수집하여 분석서버로 전송하는 단계와, 상기 분석서버가 복수의 행동 로그 중 일부를 소거하는 단계와, 상기 분석서버가 일부가 소거된 복수의 행동 로그에 대해 유사도 연산을 수행하여 유사도를 산출하는 단계와, 상기 분석서버가 상기 유사도 연산 결과에 따라 상품에 대한 정보를 생성하는 단계와, 상기 분석서버가 상기 상품에 대한 정보를 응용서버로 전송하는 단계를 포함한다. In order to achieve the above-described object, a method for providing information about products according to a preferred embodiment of the present invention involves the data collection server collecting a plurality of behavior logs, each containing a user identifier and product, from the user terminal. Transmitting to an analysis server, the analysis server deleting some of the plurality of behavior logs, and the analysis server performing a similarity calculation on the plurality of partially erased behavior logs to calculate similarity; It includes the step of the analysis server generating information about the product according to the similarity calculation result, and the step of the analysis server transmitting the information about the product to the application server.
상기 복수의 행동 로그 중 일부를 소거하는 단계는 제공하고자 하는 상품에 대한 정보의 양에 따라 전체 행동 로그에서 소거하는 행동 로그의 비율인 소거 비율을 결정하는 단계를 포함한다. The step of erasing some of the plurality of behavior logs includes determining an erasure ratio, which is the ratio of behavior logs to be erased from the entire behavior log, depending on the amount of information about the product to be provided.
상기 복수의 행동 로그 중 일부를 소거하는 단계는 상기 소거 비율을 결정하는 단계 후, 상기 결정된 소거 비율에 따라 소거하는 행동 로그의 구매 상품의 수를 결정하는 것을 특징으로 한다. The step of erasing some of the plurality of behavior logs is characterized in that, after the step of determining the erasing rate, the number of purchased products of the behavior logs to be erased is determined according to the determined erasing rate.
상기 유사도 연산을 수행하여 유사도를 산출하는 단계는 어느 하나의 상품과 다른 상품 중 적어도 하나를 포함하는 행동 로그인 합집합을 분모로 하고, 상기 어느 하나의 상품과 상기 다른 상품을 모두 포함하는 행동 로그인 교집합을 분자로 하여 상기 어느 하나의 상품과 상기 다른 상품의 유사도를 산출하는 것을 특징으로 한다. The step of calculating the similarity by performing the similarity calculation uses as the denominator the union of action logs that include at least one of one product and another product, and the intersection of action logs that includes both the one product and the other product. It is characterized by calculating the similarity between one product and the other product using the numerator.
상기 유사도 연산 결과에 따라 상품에 대한 정보를 생성하는 단계는 상기 산출된 유사도에 따라 상기 유사도가 높은 순으로 소정 수의 상품을 상품에 대한 정보로 도출하는 것을 특징으로 한다. The step of generating information about a product according to the similarity calculation result is characterized by deriving a predetermined number of products as information about the product in the order of the highest similarity according to the calculated similarity.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 상품에 대한 정보를 제공하기 위한 장치는 응용서버와의 통신을 위한 분석서버통신부와, 상기 분석서버통신부를 통해 상기 응용서버로부터 대상 상품 및 추천 상품의 수를 포함하는 추천 상품 요청 메시지를 수신하면, 사용자식별자와 상기 사용자 식별자에 대응하는 구매 상품을 포함하는 복수의 행동 로그 중 소거 대상을 특정하고, 복수의 행동 로그에서 상기 특정된 소거 대상을 소거하는 전처리모듈과, 상기 소거 대상이 소거된 복수의 행동 로그를 이용하여 상기 대상 상품과의 유사도를 산출하는 유사도산출모듈을 포함한다. In order to achieve the above-described object, a device for providing information about products according to a preferred embodiment of the present invention includes an analysis server communication unit for communication with an application server, and a target object from the application server through the analysis server communication unit. Upon receiving a recommended product request message containing the product and the number of recommended products, the deletion target is specified among a plurality of behavior logs including a user identifier and a purchased product corresponding to the user identifier, and the specified deletion target is selected from the plurality of behavior logs. It includes a preprocessing module that erases the object to be erased, and a similarity calculation module that calculates the degree of similarity with the target product using a plurality of behavior logs from which the object to be erased has been erased.
상기 전처리모듈은 상기 추천 상품의 수에 따라 소거할 수 있는 행동 로그의 비율인 소거 비율을 산출하고, 상기 산출된 소거 비율 및 행동 로그의 구매 상품의 수에 따라 소거 대상을 결정하는 것을 특징으로 한다. The preprocessing module calculates an erasure rate, which is the ratio of behavior logs that can be erased according to the number of recommended products, and determines an erasure target according to the calculated erasure rate and the number of purchased products in the behavior log. .
상기 유사도산출모듈은 대상 상품과 다른 상품 중 적어도 하나를 포함하는 행동 로그인 합집합을 분모로 하고, 상기 대상 상품과 상기 다른 상품을 모두 포함하는 행동 로그인 교집합을 분자로 하여 상기 대상 상품과 상기 다른 상품의 유사도를 산출하는 것을 특징으로 한다. The similarity calculation module uses as the denominator the union of action logs including at least one of the target product and the other product, and as the numerator the intersection of action logs including both the target product and the other product, and calculates the difference between the target product and the other product. It is characterized by calculating similarity.
상기 장치는 상기 다른 상품 중 상기 산출된 유사도에 따라 상기 유사도가 높은 순으로 상기 추천 상품의 수의 상품을 추천 상품으로 도출하고, 상기 도출된 추천 상품을 상기 분석서버통신부를 통해 상기 응용서버로 전송하는 정보제공모듈을 더 포함한다. The device derives the number of recommended products as recommended products in the order of the highest similarity among the other products according to the calculated similarity, and transmits the derived recommended products to the application server through the analysis server communication unit. It further includes an information provision module.
본 발명에 따르면 유사도 연산에 결과에 영향을 미치지 않는 복수의 행동 로그를 소거 대상으로 특정하고, 전처리 과정에서 소거함으로써 유사도 연산의 속도가 향상되며, 이를 통해 시스템의 부하를 감소시킬 수 있다. According to the present invention, the speed of similarity calculation is improved by specifying a plurality of behavior logs that do not affect the result of similarity calculation as objects of erasure and erasing them in the pre-processing process, thereby reducing the load on the system.
도 1은 본 발명의 실시예에 따른 정보 제공 시스템을 개략적으로 도시한 구성도이다.
도 2는 본 발명의 실시예에 따른 사용자 단말기의 주요 구성을 도시한 블록도이다.
도 3은 본 발명의 실시예에 따른 데이터수집서버의 주요 구성을 도시한 블록도이다.
도 4는 본 발명의 실시예에 따른 분석서버의 주요 구성을 도시한 블록도이다.
도 5는 본 발명의 실시예에 따른 응용서버의 주요 구성을 도시한 블록도이다.
도 6은 본 발명의 실시예에 따른 상품에 대한 정보를 제공하기 위한 방법을 설명하기 위한 흐름도이다.
도 7은 본 발명의 실시예에 따른 고속 유사도 연산 방법을 설명하기 위한 흐름도이다.
도 8은 본 발명의 다른 실시예에 따른 상품에 대한 정보를 제공하는 방법을 설명하기 위한 흐름도이다.
도 9는 본 발명의 다른 실시예에 따른 상품에 대한 정보를 제공하는 방법을 설명하기 위한 화면 예이다. 1 is a schematic configuration diagram of an information provision system according to an embodiment of the present invention.
Figure 2 is a block diagram showing the main configuration of a user terminal according to an embodiment of the present invention.
Figure 3 is a block diagram showing the main configuration of a data collection server according to an embodiment of the present invention.
Figure 4 is a block diagram showing the main configuration of an analysis server according to an embodiment of the present invention.
Figure 5 is a block diagram showing the main configuration of an application server according to an embodiment of the present invention.
Figure 6 is a flowchart illustrating a method for providing information about a product according to an embodiment of the present invention.
Figure 7 is a flowchart illustrating a high-speed similarity calculation method according to an embodiment of the present invention.
Figure 8 is a flowchart illustrating a method of providing information about a product according to another embodiment of the present invention.
Figure 9 is an example screen for explaining a method of providing information about a product according to another embodiment of the present invention.
본 발명의 과제 해결 수단의 특징 및 이점을 보다 명확히 하기 위하여, 첨부된 도면에 도시된 본 발명의 특정 실시 예를 참조하여 본 발명을 더 상세하게 설명한다. In order to make the characteristics and advantages of the problem-solving means of the present invention clearer, the present invention will be described in more detail with reference to specific embodiments of the present invention shown in the attached drawings.
다만, 하기의 설명 및 첨부된 도면에서 본 발명의 요지를 흐릴 수 있는 공지 기능 또는 구성에 대한 상세한 설명은 생략한다. 또한, 도면 전체에 걸쳐 동일한 구성 요소들은 가능한 한 동일한 도면 부호로 나타내고 있음에 유의하여야 한다.However, detailed descriptions of known functions or configurations that may obscure the gist of the present invention are omitted in the following description and attached drawings. Additionally, it should be noted that the same components throughout the drawings are indicated by the same reference numerals whenever possible.
이하의 설명 및 도면에서 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니 되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위한 용어의 개념으로 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. 따라서 본 명세서에 기재된 실시 예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시 예에 불과할 뿐이고, 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형 예들이 있을 수 있음을 이해하여야 한다.Terms or words used in the following description and drawings should not be construed as limited to their usual or dictionary meanings, and the inventor may appropriately define the concept of the term to explain his or her invention in the best way. It must be interpreted with meaning and concept consistent with the technical idea of the present invention based on the principle that it is. Therefore, the embodiments described in this specification and the configuration shown in the drawings are only one of the most preferred embodiments of the present invention, and do not represent the entire technical idea of the present invention, so at the time of filing the present application, various alternatives may be used to replace them. It should be understood that equivalents and variations may exist.
또한, 제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하기 위해 사용하는 것으로, 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용될 뿐, 상기 구성요소들을 한정하기 위해 사용되지 않는다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제2 구성요소는 제1 구성요소로 명명될 수 있고, 유사하게 제1 구성요소도 제2 구성요소로 명명될 수 있다.In addition, terms containing ordinal numbers, such as first, second, etc., are used to describe various components, and are used only for the purpose of distinguishing one component from other components and to limit the components. Not used. For example, the second component may be referred to as the first component without departing from the scope of the present invention, and similarly, the first component may also be referred to as the second component.
더하여, 어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급할 경우, 이는 논리적 또는 물리적으로 연결되거나, 접속될 수 있음을 의미한다. 다시 말해, 구성요소가 다른 구성요소에 직접적으로 연결되거나 접속되어 있을 수 있지만, 중간에 다른 구성요소가 존재할 수도 있으며, 간접적으로 연결되거나 접속될 수도 있다고 이해되어야 할 것이다.In addition, when a component is referred to as being “connected” or “connected” to another component, it means that it is or can be connected logically or physically. In other words, a component may be directly connected or connected to another component, but it should be understood that other components may exist in the middle and may be indirectly connected or connected.
또한, 본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 또한, 본 명세서에서 기술되는 "포함 한다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.Additionally, the terms used in this specification are only used to describe specific embodiments and are not intended to limit the present invention. Singular expressions include plural expressions unless the context clearly dictates otherwise. In addition, terms such as "comprise" or "have" used in the specification are intended to designate the presence of features, numbers, steps, operations, components, parts, or combinations thereof described in the specification, but are not intended to indicate the presence of one or more of the features, numbers, steps, operations, components, parts, or combinations thereof described in the specification. It should be understood that this does not exclude in advance the presence or addition of other features, numbers, steps, operations, components, parts, or combinations thereof.
또한, 명세서에 기재된 "??부", "??기", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다. In addition, terms such as "unit", "unit", and "module" used in the specification refer to a unit that processes at least one function or operation, which is implemented as hardware, software, or a combination of hardware and software. It can be.
또한, "일(a 또는 an)", "하나(one)", "그(the)" 및 유사어는 본 발명을 기술하는 문맥에 있어서(특히, 이하의 청구항의 문맥에서) 본 명세서에 달리 지시되거나 문맥에 의해 분명하게 반박되지 않는 한, 단수 및 복수 모두를 포함하는 의미로 사용될 수 있다.Additionally, the words “a or an,” “one,” “the,” and similar words may indicate otherwise herein in the context of describing the invention (particularly in the context of the claims below). It may be used to include both singular and plural terms, unless clearly contradicted by the context.
아울러, 본 발명의 범위 내의 실시 예들은 컴퓨터 실행가능 명령어 또는 컴퓨터 판독가능 매체에 저장된 데이터 구조를 가지거나 전달하는 컴퓨터 판독가능 매체를 포함한다. 이러한 컴퓨터 판독가능 매체는, 범용 또는 특수 목적의 컴퓨터 시스템에 의해 액세스 가능한 임의의 이용 가능한 매체일 수 있다. 예로서, 이러한 컴퓨터 판독가능 매체는 RAM, ROM, EPROM, CD-ROM 또는 기타 광 디스크 저장장치, 자기 디스크 저장장치 또는 기타 자기 저장장치, 또는 컴퓨터 실행가능 명령어, 컴퓨터 판독가능 명령어 또는 데이터 구조의 형태로 된 소정의 프로그램 코드 수단을 저장하거나 전달하는 데에 이용될 수 있고, 범용 또는 특수 목적 컴퓨터 시스템에 의해 액세스 될 수 있는 임의의 기타 매체와 같은 물리적 저장 매체를 포함할 수 있지만, 이에 한정되지 않는다.Additionally, embodiments within the scope of the present invention include computer-readable media having or transmitting computer-executable instructions or data structures stored on the computer-readable media. Such computer-readable media may be any available media that can be accessed by a general-purpose or special-purpose computer system. By way of example, such computer-readable media may include RAM, ROM, EPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage, or in the form of computer-executable instructions, computer-readable instructions or data structures. It may be used to store or transmit certain program code means, and may include, but is not limited to, a physical storage medium such as any other medium that can be accessed by a general purpose or special purpose computer system. .
이하의 설명 및 특허 청구 범위에서, "네트워크"는 컴퓨터 시스템들 및/또는 모듈들 간의 전자 데이터를 전송할 수 있게 하는 하나 이상의 데이터 링크로서 정의된다. 정보가 네트워크 또는 다른 (유선, 무선, 또는 유선 또는 무선의 조합인) 통신 접속을 통하여 컴퓨터 시스템에 전송되거나 제공될 때, 이 접속은 컴퓨터-판독가능매체로서 이해될 수 있다. 컴퓨터 판독가능 명령어는, 예를 들면, 범용 컴퓨터 시스템 또는 특수 목적 컴퓨터 시스템이 특정 기능 또는 기능의 그룹을 수행하도록 하는 명령어 및 데이터를 포함한다. 컴퓨터 실행가능 명령어는, 예를 들면, 어셈블리어, 또는 심지어는 소스코드와 같은 이진, 중간 포맷 명령어일 수 있다.In the following description and claims, “network” is defined as one or more data links that enable the transfer of electronic data between computer systems and/or modules. When information is transmitted or provided to a computer system over a network or other communication connection (wired, wireless, or a combination of wired and wireless), this connection may be understood as a computer-readable medium. Computer-readable instructions include, for example, instructions and data that cause a general-purpose or special-purpose computer system to perform a particular function or group of functions. Computer-executable instructions may be binary, intermediate format instructions, for example, assembly language, or even source code.
아울러, 본 발명은 퍼스널 컴퓨터, 랩탑 컴퓨터, 핸드헬드 장치, 멀티프로세서 시스템, 마이크로프로세서-기반 또는 프로그램 가능한 가전제품(programmable consumer electronics), 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, 모바일 전화, PDA, 페이저(pager) 등을 포함하는 다양한 유형의 컴퓨터 시스템 구성을 가지는 네트워크 컴퓨팅 환경에서, 상기 컴퓨터 시스템들을 대상으로 광고를 제공하는데 적용될 수 있다. 본 발명은 또한 네트워크를 통해 유선 데이터 링크, 무선 데이터 링크, 또는 유선 및 무선 데이터 링크의 조합으로 링크된 로컬 및 원격 컴퓨터 시스템 모두가 태스크를 수행하는 분산형 시스템 환경에서 실행될 수 있다. 분산형 시스템 환경에서, 프로그램 모듈은 로컬 및 원격 메모리 저장 장치에 위치될 수 있다.In addition, the present invention is applicable to personal computers, laptop computers, handheld devices, multiprocessor systems, microprocessor-based or programmable consumer electronics, network PCs, minicomputers, mainframe computers, mobile phones, PDAs, and pagers. In a network computing environment with various types of computer system configurations including pagers, etc., it can be applied to providing advertisements to the computer systems. The invention may also be practiced in distributed system environments where tasks are performed by both local and remote computer systems that are linked over a network via wired data links, wireless data links, or a combination of wired and wireless data links. In a distributed system environment, program modules may be located in local and remote memory storage devices.
먼저, 본 발명의 실시예에 따른 정보 제공 시스템에 대해서 설명하기로 한다. 도 1은 본 발명의 실시예에 따른 정보 제공 시스템을 개략적으로 도시한 구성도이다. First, an information provision system according to an embodiment of the present invention will be described. 1 is a schematic configuration diagram of an information provision system according to an embodiment of the present invention.
도 1을 참조하면, 본 발명의 실시예에 따른 정보 제공 시스템(100)은 복수의 사용자 단말기(10: 10-1, 10-2,??10-n), 데이터수집서버(20), 분석서버(30) 및 응용서버(40)를 포함한다. Referring to Figure 1, the information provision system 100 according to an embodiment of the present invention includes a plurality of user terminals (10: 10-1, 10-2,??10-n), a
복수의 사용자 단말기(10: 10-1, 10-2,??10-n), 데이터수집서버(20), 분석서버(30) 및 응용서버(40)는 통신망(NW)을 통해 상호간에 데이터를 송수신할 수 있다. A plurality of user terminals (10: 10-1, 10-2,??10-n),
예를 들면, 통신망(NW)은 WLAN(Wireless LAN), 와이파이(Wi-Fi), 와이브로(Wibro), 와이맥스(Wimax), HSDPA(High Speed Downlink Packet Access) 등의 무선 통신망을 포함할 수 있으며, 시스템 구현 방식에 따라 이더넷(Ethernet), xDSL(ADSL, VDSL), HFC(Hybrid Fiber Coaxial Cable), FTTC(Fiber to The Curb), FTTH(Fiber To The Home) 등의 유선 통신망을 포함할 수도 있다.For example, the communication network (NW) may include wireless communication networks such as Wireless LAN (WLAN), Wi-Fi, Wibro, Wimax, and High Speed Downlink Packet Access (HSDPA), Depending on how the system is implemented, it may include wired communication networks such as Ethernet, xDSL (ADSL, VDSL), HFC (Hybrid Fiber Coaxial Cable), FTTC (Fiber to The Curb), and FTTH (Fiber To The Home).
아울러, 본 발명의 통신망(NW)은 예컨대, 다수의 접속망(미도시) 및 이들을 연결하는 코어망(미도시)으로 이루어진 이동통신망을 포함할 수 있다. 여기서, 접속망은 단말과 직접 접속하여 무선 통신을 수행하는 망으로서, 예를 들어, BS(Base Station), BTS(Base Transceiver Station), NodeB, eNodeB 등과 같은 다수의 기지국과, BSC(Base Station Controller), RNC(Radio Network Controller)와 같은 기지국 제어기로 구현될 수 있다. 또한, 전술한 바와 같이, 상기 기지국에 일체로 구현되어 있던 디지털 신호 처리부와 무선 신호 처리부를 각각 디지털 유니트(Digital Unit, 이하 DU라 함과 무선 유니트(Radio Unit, 이하 RU라 함)으로 구분하여, 다수의 영역에 각각 다수의 RU(미도시)를 설치하고, 다수의 RU를 집중화된 DU와 연결하여 구성할 수도 있다. 또한, 접속망과 함께 모바일 망을 구성하는 코어망(미도시)은 접속망과 외부 망, 예컨대, 인터넷망과 같은 다른 통신망을 연결하는 역할을 수행한다.In addition, the communication network (NW) of the present invention may include, for example, a mobile communication network consisting of a plurality of access networks (not shown) and a core network (not shown) connecting them. Here, the access network is a network that performs wireless communication by directly connecting to the terminal, for example, a number of base stations such as BS (Base Station), BTS (Base Transceiver Station), NodeB, eNodeB, etc., and BSC (Base Station Controller) , can be implemented with a base station controller such as RNC (Radio Network Controller). In addition, as described above, the digital signal processing unit and the wireless signal processing unit integrated in the base station are divided into a digital unit (hereinafter referred to as DU) and a radio unit (hereinafter referred to as RU), respectively. It can also be configured by installing a number of RUs (not shown) in multiple areas and connecting the multiple RUs to a centralized DU. In addition, the core network (not shown) that forms the mobile network together with the access network is connected to the access network. It serves to connect other communication networks such as external networks, for example, the Internet network.
이러한 코어망은 앞서 설명한 바와 같이, 접속망 간의 이동성 제어 및 스위칭 등의 이동통신 서비스를 위한 주요 기능을 수행하는 네트워크 시스템으로서, 서킷 교환(circuit switching) 또는 패킷 교환(packet switching)을 수행하며, 모바일 망 내에서의 패킷 흐름을 관리 및 제어한다. 또한, 코어망은 주파수간 이동성을 관리하고, 접속망 및 코어망 내의 트래픽 및 다른 네트워크, 예컨대 인터넷망과의 연동을 위한 역할을 수행할 수도 있다. 이러한 코어망은 SGW(Serving GateWay), PGW(PDN GateWay), MSC(Mobile Switching Center), HLR(Home Location Register), MME(Mobile Mobility Entity)와 HSS(Home Subscriber Server) 등을 더 포함하여 구성될 수도 있다.As explained above, this core network is a network system that performs major functions for mobile communication services such as mobility control and switching between access networks, and performs circuit switching or packet switching, and is a mobile network system that performs circuit switching or packet switching. Manage and control packet flow within. In addition, the core network may manage inter-frequency mobility and play a role in interoperating with traffic within the access network and core network and with other networks, such as the Internet network. This core network will further include Serving GateWay (SGW), PDN GateWay (PGW), Mobile Switching Center (MSC), Home Location Register (HLR), Mobile Mobility Entity (MME), and Home Subscriber Server (HSS). It may be possible.
또한, 본 발명에 따른 통신망(NW)은 인터넷망을 포함할 수 있다. 인터넷망은 TCP/IP 프로토콜에 따라서 정보가 교환되는 통상의 공개된 통신망, 즉 공용망을 의미한다. Additionally, the communication network (NW) according to the present invention may include an Internet network. The Internet network refers to a normal open communication network, that is, a public network, in which information is exchanged according to the TCP/IP protocol.
이러한 통신망(NW)을 통해서 복수의 사용자 단말기(10: 10-1, 10-2,??10-n), 데이터수집서버(20), 분석서버(30) 및 응용서버(40)가 상호 연동하여 본 발명에 따른 상품 정보 제공을 위한 정보 제공 시스템(100)을 구성한다. Through this communication network (NW), multiple user terminals (10: 10-1, 10-2,??10-n),
복수의 사용자 단말기(10)는 각각 적어도 하나의 어플리케이션을 설치하여 실행할 수 있다. 특히, 사용자 단말기(10)는 데이터수집서버(20)와 연동하는 어플리케이션을 설치하고, 그 어플리케이션의 실행에 따라서, 행동 로그를 데이터수집서버(20)에 전송할 수 있다. 이때 복수의 사용자 단말기(10)는 설치된 SDK(Software Development Kit)를 통해 행동 로그를 데이터수집서버(20)에 전송할 수 있다. 하지만 이에 한정된 것은 아니고, 복수의 사용자 단말기(10)는 데이터수집서버(20)와 연동하여 별도의 어플리케이션 설치를 통해 데이터수집서버(20)에 행동 로그를 제공할 수 있다. Each of the plurality of
이때 복수의 사용자 단말기(10)는 설치된 SDK에 포함된 API(Application Programming Interface)를 통해 상품 구매 이력을 포함하는 행동 로그를 추출하고, 추출된 행동 로그를 데이터수집서버(20)에 제공할 수 있다. 여기서, 행동 로그는 사용자 단말기의 고유 코드인 사용자식별자(UID: User ID) 및 구매한 상품(item)을 포함한다. 여기서, 사용자식별자(UID)는 사용자 단말기(10) 각각을 구분하기 위하여, 모바일 단말기 별로 할당되는 식별 번호가 될 수 있다. At this time, the plurality of
여기서 복수의 사용자 단말기(10)는 이동통신단말기를 대표적인 예로서 설명하지만 단말기는 이동통신단말기에 한정된 것이 아니고, 모든 정보통신기기, 멀티미디어 단말기, 유선 단말기, 고정형 단말기 및 IP(Internet Protocol) 단말기 등의 다양한 단말기에 적용될 수 있다. 또한, 단말기는 휴대폰, PMP(Portable MultimediaPlayer), MID(Mobile Internet Device), 스마트폰(Smart Phone) 및 정보통신 기기 등과 같은 다양한 이동통신 사양을 갖는 모바일(Mobile) 단말기일 때 유리하게 활용될 수 있다. Here, the plurality of
데이터수집서버(20)는 복수의 사용자단말기(10)로부터 사용자식별자(UID) 및 사용자가 구매한 상품(item)을 포함하는 행동 로그를 수집하고, 수집된 행동 로그를 분석서버(30)로 전달할 수 있다. The
분석서버(30)는 전달받은 행동 로그를 사용자식별자(UID) 및 상품(item)에 따라 정렬할 수 있다. 예컨대, 분석서버(30)는 사용자식별자(UID)를 열로 하고, 상품(item)을 행으로 하는 테이블(Table)을 생성할 수 있다. 그리고 분석서버(30)는 데이터수집서버(20)로부터 수집된 행동 로그를 분석하여, 상품과 관련된 정보를 도출할 수 있다. 예컨대, 분석서버(30)는 행동 로그를 분석하여 '함께 구매한 상품'을 도출할 수 있다. 즉, 분석서버(30)는 유사도 연산을 통해 대상 상품(TG)과 '함께 구매한 상품(RG)'을 도출할 수 있다. 분석서버(30)는 도출된 상품에 대한 정보, 예컨대, '함께 구매한 상품(RG)'을 응용서버(40)로 제공한다. The
응용서버(40)는 이러한 상품에 대한 정보를 이용하여 상품 마켓팅을 위한 부가 서비스를 제공하기 위한 것이다. 따라서 응용서버(40)는 사용자단말기(10)의 요청이 있는 경우, 상품에 대한 정보를 제공할 수 있다. The
한편, 본 발명의 실시예에서 데이터수집서버(20), 분석서버(30) 및 응용서버(40)를 서로 독립된 장치로 설명하지만, 이에 한정되는 것은 아니며, 쇼핑 서버(40)와 추천 서버(50)는 하나의 장치로 구현될 수도 있다. Meanwhile, in the embodiment of the present invention, the
다음으로, 본 발명의 실시예에 따른 사용자 단말기(10)에 대하여 더욱 상세히 설명하도록 한다. 도 2는 본 발명의 실시예에 따른 사용자 단말기의 주요 구성을 도시한 블록도이다. Next, the
도 2를 참조하면, 본 발명의 실시예에 따른 사용자 단말기(10)는 통신부(11), 입력부(13), 표시부(15), 저장부(17) 및 제어부(19)를 포함하여 구성된다.Referring to FIG. 2, the
통신부(11)는 사용자 단말기(10)의 통신을 수행하는 기능을 한다. 즉, 통신부(11)는 통신망(NW)을 통해 데이터수집서버(20)와 데이터를 송수신한다. 특히, 본 발명의 실시예에 따른 통신부(11)는 데이터수집서버(20)로 행동 로그를 전송할 수 있다. The
입력부(13)는 숫자 및 문자 정보 등의 다양한 정보를 입력 받고, 각종 기능들의 설정 및 사용자 단말기(10)의 기능 제어와 관련하여 입력되는 신호를 제어부(19)로 전달한다. 또한 입력부(13)는 사용자의 터치 또는 조작에 따른 입력 신호를 발생하는 키패드와 터치패드 중 적어도 하나를 포함하여 구성될 수 있다. 이때 입력부(13)는 표시부(15)와 함께 하나의 터치패널(또는 터치스크린)의 형태로 구성되어 입력과 표시 기능을 동시에 수행할 수 있다. 특히, 입력부(13)는 사용자의 조작에 따라 통신을 위한 입력신호 및 애플리케이션 실행에 따른 데이터를 제어부(19)로 전달할 수 있다. 또한 입력부(13)는 사용자 단말기(10)가 터치스크린 형태로 구성되는 경우 화면에 터치되는 신호를 입력 받거나, 키보드 및 마우스 등의 입력을 받을 수 있다. The
표시부(15)는 사용자 단말기(10)의 기능 수행 중에 발생하는 일련의 동작상태 및 동작결과 등에 대한 정보를 표시한다. 또한, 표시부(15)는 사용자 단말기(10)의 메뉴 및 사용자가 입력한 사용자 데이터 등을 표시할 수 있다. 여기서, 표시부(15)는 LCD(Liquid Crystal Display), TFT-LCD(Thin Film Transistor LCD), OLED(Organic Light Emitting Diodes), 발광다이오드(LED), AMOLED(Active Matrix Organic LED), 플렉시블 디스플레이(Flexible display) 및 3차원 디스플레이(3 Dimension) 등으로 구성될 수 있다. 특히, 표시부(15)는 쇼핑몰 웹 사이트를 구성하는 복수의 웹 페이지 중 어느 하나가 수신되면, 수신된 웹 페이지를 화면에 표시한다. The
저장부(17)는 사용자 단말기(10)의 기능 동작에 필요한 응용 프로그램을 저장한다. 여기서 사용자 단말기(10)는 사용자의 요청에 상응하여 각 기능을 활성화하는 경우, 제어부(19)의 제어 하에 해당 응용 프로그램들을 실행하여 각 기능을 제공하게 된다. 또한 데이터 영역은 사용자 단말기(10)의 사용에 따라 발생하는 데이터가 저장되는 영역이다. The
제어부(19)는 사용자 단말기(10)의 각 구성을 초기화하고, 필요한 신호 제어를 수행할 수 있다. 특히, 본 발명의 실시예에 따른 제어부(19)는 통신부(11)를 통해 쇼핑몰 웹 서버에 접속하여 쇼핑몰 웹 사이트를 구성하는 웹 페이지를 수신하고, 수신된 웹 페이지를 표시부(15)를 통해 화면으로 표시한다. 이에 따라, 사용자는 웹 페이지를 보면서 해당 웹 페이지를 통해 소정의 상품을 구매할 수 있다. 특히, 제어부(19)는 사용자의 조작에 따라 입력부(13)를 통해 구매를 위해 특정 상품을 선택하는 신호를 감지하면, 해당 상품에 대한 구매 요청을 통신부(11)를 통해 쇼핑몰 웹 서버로 전송하여 해당 상품을 구매할 수 있다. 그러면, 제어부(19)는 상품을 구매한 구매 이력을 통해 행동 로그를 생성한다. 여기서, 행동 로그는 사용자식별자(UID) 및 구매한 상품(item)을 포함한다. 이어서, 제어부(19)는 통신부(11)를 통해 데이터수집서버(20)로 행동 로그를 전송할 수 있다. The
다음으로, 본 발명의 실시예에 따른 데이터수집서버(20)의 구성을 더욱 상세히 설명하도록 한다. 도 3은 본 발명의 실시예에 따른 데이터수집서버의 주요 구성을 도시한 블록도이다. Next, the configuration of the
도 3을 참조하면, 본 발명의 실시예에 따른 데이터수집서버(20)는 수집서버통신부(21), 수집서버저장부(23) 및 수집서버제어부(25)를 포함한다. Referring to FIG. 3, the
수집서버통신부(41)는 통신망(NW)을 통해 사용자 단말기(10) 및 분석서버(30) 및 응용서버(40)와 통신을 수행하기 위한 인터페이스를 가진다. 특히, 수집서버통신부(41)는 사용자 단말기(10)로부터 행동 로그를 수신할 수 있다. The collection
수집서버저장부(23)는 수집서버제어부(25)에 의해 실행되거나 처리되는 데이터 혹은 프로그램을 저장한다. 이러한 수집서버저장부(23)는 사용자단말기(10)로부터 수신한 사용자식별자(UID)와 구매한 상품이 매핑된 행동 로그를 일시 혹은 소정 기한 동안 저장할 수 있다. The collection
수집서버제어부(25)는 수집서버통신부(21) 및 수집서버저장부(23)를 포함하는 데이터수집서버(20)의 동작을 전반적으로 제어하는 역할을 하며, 이를 위한 프로세서를 포함할 수 있다. 이러한 수집서버제어부(25)는 사용자 단말기(10)로부터 수신된 행동 로그를 수집서버저장부(23)에 저장한다. 그리고 수집서버제어부(25)는 수집서버통신부(41)를 통해 수집서버저장부(23)에 저장된 행동 로그를 주기적으로 분석서버(30)로 전달할 수 있다. The collection
다음으로, 도면을 참조하여, 본 발명의 실시예에 따른 분석서버(30)의 구성을 더욱 상세히 설명하도록 한다. 도 4는 본 발명의 실시예에 따른 분석서버의 주요 구성을 도시한 블록도이다. 도 4를 참조하면, 본 발명의 실시예에 따른 분석서버(30)는 분석서버 통신부(31), 분석서버저장부(33) 및 분석서버제어부(35)를 포함한다. Next, with reference to the drawings, the configuration of the
분석서버통신부(31)는 통신망(NW)을 통해 데이터수집서버(20) 및 응용서버(30)와 통신을 수행하기 위한 인터페이스를 가진다. 특히, 분석서버통신부(31)는 데이터수집서버(20)로부터 행동 로그를 수신하면, 이를 분석서버제어부(35)로 전달한다. 또한, 분석서버통신부(31)는 분석서버제어부(35)로부터 상품에 대한 정보(예컨대, 함께 구매한 상품 리스트)를 전달 받고, 이를 응용서버(40)로 전송한다. The analysis
분석서버저장부(33)는 분석서버제어부(35)에 의해 실행되거나 처리되는 데이터 혹은 프로그램을 저장하기 위한 구성이다. 이러한 분석서버저장부(33)는 행동 로그로부터 유사도에 따라 추천 상품을 도출하는 프로그램 등을 저장할 수 있다. 또한, 분석서버저장부(33)는 데이터수집서버(20)로부터 수신된 행동 로그를 누적하여 저장할 수 있다. The analysis
분석서버제어부(35)는 분석서버통신부(31) 및 분석서버저장부(33)를 포함한 분석서버(30)의 동작을 전반적으로 제어하는 역할을 하며, 이를 위한 프로세서를 포함할 수 있다. The analysis
특히, 분석서버제어부(35)는 전처리모듈(35a), 유사도산출모듈(35b) 및 정보제공모듈(35c)을 포함하여 구성될 수 있다. In particular, the analysis
분석서버제어부(35)는 분석서버통신부(31)를 통해 행동 로그를 수신하면, 분석서버저장부(32)에 저장한다. 전처리모듈(35a)은 분석서버저장부(32)에 저장된 복수의 행동 로그를 불러와서, 행동 로그의 일부를 소거한다. 이때, 전처리 모듈(55a)은 복수의 행동 로그 중 일부를 소거한다. 유사도산출모듈(35b)은 복수의 행동 로그 중 일부가 소거된 행동 로그 간 유사도를 산출한다. 이러한 유사도는 자카드 유사도 산출 기법을 이용하여 산출될 수 있다. 정보제공모듈(55c)은 유사도 연산 결과를 통해 상품에 대한 정보, 예컨대, '함께 구매한 상품'과 같은 추천 상품으로 도출하고, 도출된 추천 상품을 분석서버통신부(51)를 통해 응용서버(40)로 전송할 수 있다. When the analysis
다음으로, 본 발명의 실시예에 따른 응용서버(40)의 구성을 더욱 상세히 설명하도록 한다. 도 5는 본 발명의 실시예에 따른 응용서버의 주요 구성을 도시한 블록도이다. Next, the configuration of the
도 5를 참조하면, 본 발명의 실시예에 따른 응용서버(40)는 응용서버통신부(41), 응용서버저장부(43) 및 응용서버제어부(45)를 포함한다. Referring to Figure 5, the
응용서버통신부(41)는 통신망(NW)을 통해 사용자 단말기(10) 및 데이터수집서버(20) 및 분석서버(30)와 통신을 수행하기 위한 인터페이스를 가진다. 특히, 응용서버통신부(41)는 분석서버(30)로부터 행동 로그를 분석한 결과에 따른 상품에 대한 정보(예컨대, 함께 구매한 상품 리스트)를 수신할 수 있다. The application
응용서버저장부(43)는 응용서버제어부(45)에 의해 실행되거나 처리되는 데이터 혹은 프로그램을 저장한다. 또한, 응용서버저장부(43)는 분석서버(30)로부터 수신한 상품에 대한 정보(예컨대, 함께 구매한 상품 리스트)를 일시 혹은 소정 기한 동안 저장할 수 있다. The application
응용서버제어부(45)는 응용서버통신부(41) 및 응용서버저장부(43)를 포함하는 응용서버(40)의 동작을 전반적으로 제어하는 역할을 하며, 이를 위한 프로세서를 포함할 수 있다. 이러한 응용서버제어부(45)는 응용서버(40)로부터 수신된 상품에 대한 정보(예컨대, 함께 구매한 상품 리스트)를 수집서버저장부(43)에 저장한다. 그리고 수집서버제어부(25)는 필요한 경우, 수집서버통신부(41)를 통해 상품에 대한 정보(예컨대, 함께 구매한 상품 리스트)를 사용자단말기(10)로 전송한다. The application
그러면, 본 발명의 실시예에 따른 상품에 대한 정보를 제공하기 위한 방법에 대해서 설명하기로 한다. 도 6은 본 발명의 실시예에 따른 상품에 대한 정보를 제공하기 위한 방법을 설명하기 위한 흐름도이다. Next, a method for providing information about a product according to an embodiment of the present invention will be described. Figure 6 is a flowchart illustrating a method for providing information about a product according to an embodiment of the present invention.
도 6을 참조하면, 데이터수집서버(20)는 S110 단계에서 복수의 사용자단말기(10)로부터 복수의 행동 로그를 수집할 수 있다. 여기서, 행동 로그는 사용자식별자(UID) 및 상품(item)을 포함한다. Referring to FIG. 6, the
다음으로, 데이터수집서버(20)는 S120 단계에서 수집된 복수의 행동 로그를 분석서버(30)로 전달한다. 그러면, 분석서버(30)는 S130 단계에서 수신된 복수의 행동 로그를 유사도 연산을 통해 분석하여 상품에 대한 정보를 생성한다. 이때, 데이터수집서버(20)는 유사도 연산 시, 복수의 행동 로그 중 일부를 소거하고, 나머지 행동 로그를 통해 유사도 연산을 수행한다. 이에 따라, 유사도 연산의 속도가 향상된다. Next, the
그러면, 보다 자세히 본 발명의 실시예에 따른 유사도 연산 방법에 대해서 설명하기로 한다. Now, the similarity calculation method according to an embodiment of the present invention will be described in more detail.
본 발명은 다음의 수학식 1과 같이 자카드 유사도(jacard similarity)를 이용하여 유사도를 산출한다. The present invention calculates similarity using Jaccard similarity as shown in
즉, 수학식 1과 같이, 아이템, 즉, 상품 A와 상품 B에 대한 행동 로그의 합집합을 분모로 그리고 상품 A와 상품 B에 대한 행동 로그의 교집합을 분모로 하여 그 값을 산출한다. 여기서, 상품 A와 상품 B에 대한 행동 로그의 합집합은 구매 상품이 적어도 상품 A와 상품 B 중 어느 하나를 포함하는 행동 로그이며, 상품 A와 상품 B에 대한 행동 로그의 교집합은 구매 상품이 상품 A와 상품 B를 모두 포함하는 행동 로그이다. 그리고 산출된 값이 클수록 유사도가 높은 것으로 판단한다. 상품 A와 상품 B의 유사도가 높은 것으로 판단한다. That is, as shown in
예를 들면, 6개의 행동 로그(L1~L6)를 포함하는 데이터가 다음의 표 1과 같다고 가정한다. For example, assume that data containing 6 action logs (L1 to L6) are as shown in Table 1 below.
표 1의 행동 로그 L1, L2, L3와 같이, 사용자 3명이 상품 A만을 구매했고, 행동 로그 L4, L5, L6과 같이, 사용자 3명이 상품 B만을 구매했다면, 상품 A 및 상품 B 간의 유사도는 수학식 1에 따라 (0/3+3-0) = 0이다. 이와 같이, 행동 로그 중 상품 1개만을 구매한 사용자의 행동 로그는 유사도 연산 결과에 영향이 없을 수 있다. 따라서 본 발명은 이와 같이, 유사도 연산 결과에 영향이 없는 행동 로그를 소거하여 연산 시, 해당 데이터(행동 로그)에 대한 불필요한 연산을 줄이고자 한다. As shown in the behavior logs L1, L2, and L3 in Table 1, if 3 users purchased only product A, and as shown in the behavior logs L4, L5, and L6, if 3 users purchased only product B, the similarity between product A and product B is mathematically According to
한편, 200,000개의 행동 로그(L1~L200,000)를 포함하는 데이터가 다음의 표 2와 같다고 가정한다. Meanwhile, assume that data including 200,000 behavior logs (L1 to L200,000) are as shown in Table 2 below.
표 2의 경우, 행동 로그 L1~L100,000와 같이, 사용자 100,000명이 상품 A를 구매했고, 행동 로그 L100,001~L199,999와 같이, 사용자 199,999명이 상품 B만을 구매했고, 행동 로그 L200,000과 같이, 사용자 1명이 상품 A 및 상품 B를 모두 구매했다고 가정한다. For Table 2, 100,000 users purchased product A, as shown in action logs L1 to L100,000, and 199,999 users only purchased product B, as shown in action logs L100,001 to L199,999, and action log L200,000 As shown, assume that one user purchased both product A and product B.
이러한 경우, 상품 A와 상품 B 간의 유사도는 수학식 1에 따라 1/(100,001+100,000-1) = 1/200,000 의 결과를 얻게 된다. In this case, the similarity between product A and product B results in 1/(100,001+100,000-1) = 1/200,000 according to
여기서, 만약, 하나의 사용자가 하나의 상품만을 구매한 행동 로그를 모두 소거한다면, 상품 A와 상품 B 간의 유사도는 수학식 1에 따라 1/(1+1-1)=1이된다. 이는 결과의 왜곡을 초래한다. Here, if one user deletes all action logs of purchasing only one product, the similarity between product A and product B becomes 1/(1+1-1)=1 according to
이와 같이, 복수의 행동 로그 중 하나의 사용자가 하나의 상품만을 구매한 행동 로그를 모두 삭제하는 경우, 유사도 연산의 결과를 왜곡시킬 수도 있다. In this way, if one of the plurality of behavior logs deletes all behavior logs in which one user purchased only one product, the results of the similarity calculation may be distorted.
표 1의 행동 로그 L1~L6와 같이, 상품 A 및 B 두가지만 고려하는 경우, 각 행동 로그의 사용자가 하나의 상품만을 구매하였다고 판단할 수 있다. 하지만, 어느 사용자가 상품 H, I 등을 구매했을 수도 있기 때문에 해당 사용자의 행동 로그를 지우면, 유사도 산출 결과가 왜곡될 수도 있다. As shown in action logs L1 to L6 in Table 1, if only two products A and B are considered, it can be determined that the user of each action log purchased only one product. However, since a user may have purchased products H, I, etc., if the user's behavior log is deleted, the similarity calculation results may be distorted.
따라서 본 발명은 유사도 연산의 결과를 왜곡시키지 않고, 연산량을 줄일 수 있도록 추천 상품(RG)의 수 및 행동 로그의 구매 상품의 수에 따라 소거하고자 하는 행동 로그, 즉, 소거 대상을 특정할 수 있다. Therefore, the present invention can specify the behavior log to be erased, that is, the object of erasure, according to the number of recommended products (RG) and the number of purchased products in the behavior log so as to reduce the amount of calculation without distorting the results of the similarity calculation. .
전술한 바와 같은 방법에 따라 분석서버(30)는 유사도 연산을 통해 상품에 대한 정보를 산출한다. According to the method described above, the
이어서, 분석서버(30)는 S140 단계에서 생성된 상품에 대한 정보를 응용서버(40)로 전송한다. 이러한 상품에 대한 정보는 예컨대, 함께 구매한 상품 리스트가 될 수 있다. 상품에 대한 정보를 수신한 응용서버(40)는 필요한 경우, 이러한 상품에 대한 정보를 사용자단말기(10)에 제공할 수 있다. Next, the
그러면, 보다 자세히, 전술한 S130 단계의 유사도 연산의 결과를 왜곡시키지 않고, 연산량을 줄일 수 있도록 소거 대상을 특정하여 유사도 연산을 수행하는 방법을 보다 상세하게 설명하기로 한다. 도 7은 본 발명의 실시예에 따른 고속 유사도 연산 방법을 설명하기 위한 흐름도이다. 이러한 도 7을 참조로 하는 실시예는 도 6의 S130 단계를 보다 자세히 설명하기 위한 것이다. Then, we will explain in more detail how to perform the similarity calculation by specifying an erase target so as to reduce the amount of calculation without distorting the result of the similarity calculation in step S130 described above. Figure 7 is a flowchart illustrating a high-speed similarity calculation method according to an embodiment of the present invention. The embodiment referring to FIG. 7 is for explaining step S130 of FIG. 6 in more detail.
도 7을 참조하면, 전처리모듈(35a)은 S131 단계에서 분석서버저장부(32)에 저장된 복수의 행동 로그를 리드하고, S132 단계에서 복수의 행동 로그를 사용자식별자(UID) 및 상품(item)에 따라 정렬할 수 있다. 예컨대, 전처리모듈(35a)은 사용자식별자(UID)를 열로 하고, 상품(item)을 행으로 하는 테이블(Table)을 생성할 수 있다. Referring to FIG. 7, the
이어서, 전처리모듈(35a)은 S133 단계에서 복수의 행동 로그 중 일부를 소거하는 전처리를 수행한다. 이때, 전처리모듈(35a)은 제공하고자 하는 상품에 대한 정보의 양에 따라 전체 행동 로그에서 소거하는 행동 로그의 비율인 소거 비율을 결정한다. 또한, 전처리모듈(35a)은 결정된 소거 비율에 따라 소거하는 행동 로그(행동 로그의 구매 상품의 수)를 결정한다. 예를 들면, 어느 하나의 사용자가 사용자단말기(10)를 통해 대상 상품(TG)을 조회하거나, 임시 저장(장바구니에 담기) 혹은 구매하고자 할 때, 추천 상품(RG), 즉, '함께 구매한 상품'을 상품에 대한 정보로 제공하고자 하는 상황을 가정한다. 이때, 제공하고자 하는 상품에 대한 정보의 양인 추천 상품(RG)의 수가 많을수록 소거하는 행동 로그의 비율인 소거 비율이 줄어든다. 추천 상품(RG)의 수가 적을수록 소거하는 행동 로그의 비율인 소거 비율이 늘어난다. 또한, 전처리모듈(35a)은 구매 상품의 수가 1개인 행동 로그가 전체 행동 로그에서 차지하는 비율이 소거 비율 미만이면, 구매 상품의 수가 1개인 행동 로그를 소거하고, 소거 비율 이상이면, 유사도 연산 결과에 영향을 미치기 때문에 구매 상품의 수가 1개인 행동 로그를 소거할 수 없다. 따라서 결정된 소거 비율에 따라 소거하는 행동 로그를 결정한다. 구체적으로, 전처리모듈(35a)은 하나의 상품을 구매한 것으로 나타나는 행동 로그의 수가 전체 행동 로그 대비 결정된 소거 비율 미만인 경우, 해당 행동 로그를 소거할 수 있다. Next, the
다음으로, 전처리모듈(35a)은 S134 단계에서 상품의 명칭에 따라 복수의 행동 로그를 정렬한다. 그리고 전처리모듈(35a)은 S135 단계에서 상품의 명칭에 따라 복수의 행동 로그를 그룹화한다. Next, the
이어서, 유사도산출모듈(35b)은 S136 단계에서 상품의 명칭에 따라 유사도 연산을 수행한다. 여기서, 유사도산출모듈(35b)은 어느 하나의 상품과 다른 상품 중 적어도 하나를 포함하는 행동 로그인 합집합을 분모로 하고, 어느 하나의 상품과 다른 상품을 모두 포함하는 행동 로그인 교집합을 분자로 하여 어느 하나의 상품과 다른 상품의 유사도를 산출한다. 이때, 미리 하나의 상품을 구매한 구매 이력에 따른 행동 로그가 소거되었기 때문에 연산을 속도가 향상된다. Next, the
다음으로, 정보제공모듈(35c)은 S137 단계에서 유사도산출모듈(35b)의 유사도 연산 결과에 따라 상품에 대한 정보를 생성한다. 여기서, 정보제공모듈(35c)은 유사도산출모듈(35b)이 산출한 유사도에 따라 유사도가 높은 순으로 소정 수의 상품을 상품에 대한 정보로 생성할 수 있다. Next, the
이러한 상품에 대한 정보는 예컨대, 함께 구매한 상품 리스트가 될 수 있다. 정보제공모듈(35c)은 생성된 상품에 대한 정보를 분석서버통신부(31)를 통해 응용서버(40)로 전송할 수 있다. Information about these products may be, for example, a list of products purchased together. The
한편, 본 발명의 보다 구체적인 실시예에 따른 고속 유사도 연산을 기초로 상품에 대한 정보를 제공하는 방법에 대해서 설명하기로 한다. 도 8은 본 발명의 다른 실시예에 따른 상품에 대한 정보를 제공하는 방법을 설명하기 위한 흐름도이다. 도 9는 본 발명의 다른 실시예에 따른 상품에 대한 정보를 제공하는 방법을 설명하기 위한 화면 예이다. 강조하면, 도 8 및 도 9를 참조로 하는 실시예는 도 6의 S130 단계 그리고 도 7의 보다 구체적인 실시예이다. Meanwhile, a method of providing information about products based on high-speed similarity calculation according to a more specific embodiment of the present invention will be described. Figure 8 is a flowchart illustrating a method of providing information about a product according to another embodiment of the present invention. Figure 9 is an example screen for explaining a method of providing information about a product according to another embodiment of the present invention. To emphasize, the embodiment referred to in FIGS. 8 and 9 is the step S130 of FIG. 6 and the more specific embodiment of FIG. 7 .
도 8 및 도 9를 참조하면, 분석서버제어부(35)는 S210 단계에서 분석서버통신부(31)를 통해 응용서버(40)로부터 상품 추천 요청 메시지를 수신하는 상황을 가정한다. 상품 추천 요청 메시지는 도 9에 도시된 바와 같이, 대상 상품(TG)에 대한 추천 상품(RG)을 요청하는 메시지이다. 이에 따라, 상품 추천 요청 메시지는 대상 상품(TG) 및 추천 상품(RG)의 수를 포함한다. 예컨대, 응용서버(40)가 웹 사이트를 통해 어느 하나의 사용자가 사용자단말기(10)를 통해 대상 상품(TG)을 조회하거나, 임시 저장(장바구니에 담기) 혹은 구매하고자 할 때, 추천 상품(RG), 즉, '함께 구매한 상품'을 6개 보여주고자 하는 상황을 가정하며, 이때, 추천 상품(RG)의 수는 6이된다. Referring to Figures 8 and 9, it is assumed that the analysis
상품 추천 요청 메시지를 수신하면, 전처리모듈(35a)은 S220 단계에서 분석서버저장부(32)에 저장된 복수의 행동 로그, 즉, 전체 행동 로그를 사용자 별로 정렬한다. 예를 들어, 다음의 표 3과 같이, 전처리모듈(35a)은 전체 행동 로그를 사용자의 사용자식별자(UID)를 열(row)로 하고, 구매한 상품(item)을 행으로 하는 테이블을 생성할 수 있다. Upon receiving the product recommendation request message, the
다음으로, 전처리모듈(35a)은 S230 단계에서 상품 추천 요청 메시지의 추천 상품(RG)의 수에 따라 전체 행동 로그에서 소거할 수 있는 행동 로그의 비율인 소거 비율을 결정한다. 여기서, 소거 비율은 추천 상품의 수가 많을수록 줄어든다. 직관적으로, 소거 비율은 추천 상품의 수에 반비례할 수 있다. 예컨대, 추천 상품(RG)의 수가 6일 때, 소거 비율이 10%라면, 추천 상품(RG)의 수가 30개라면, 소거 비율은 5%가 될 수 있다. 다음으로, 전처리모듈(35a)은 S240 단계에서 소거 비율 및 행동 로그의 구매 상품의 수에 따라 소거 대상을 결정한다. 일례로, 추천 상품(RG)의 수가 6이며, 이에 따른 소거 비율이 10%라고 가정한다. 전처리모듈(35a)은 전체 행동 로그 중 표 3의 L2, L3, L4, L5와 같이, 한 사용자의 구매 상품의 수가 2개 이하인 행동 로그가 차지하는 비율을 산출한다. 이때, 산출된 비율이 15%라면, 전처리모듈(35a)은 산출된 비율이 소거 비율 이상(10%<15%)이기 때문에 구매 상품의 수가 2개 이하인 행동 로그를 소거 대상에서 제외한다. 그리고 전처리모듈(35a)은 표 3의 L3, L5와 같이, 하나의 사용자의 구매 상품의 수가 1개인 행동 로그가 로그 데이터에서 차지하는 비율을 산출한다. 이때, 산출된 비율이 8%라면, 전처리모듈(35a)은 산출된 비율이 소거 비율 미만(10%>8%)이기 때문에 구매 상품의 수가 1개인 행동 로그를 소거 대상으로 결정한다. Next, the
이어서, 전처리모듈(35a)은 S250 단계에서 전체 행동 로그에서 앞서 결정된 소거 대상인 행동 로그를 소거한다. Subsequently, the
다음으로, 전처리모듈(35a)은 S260 단계에서 소거 대상이 제거된 전체 행동 로그를 상품명(item)에 따라 정렬하고, 상품명(item)에 따라 그룹화한 후, 대상 상품(TG)에 대한 그룹을 추출한다. 예를 들면, 대상 상품(TG)이 상품 A인 경우, 즉, 상품 A와 '함께 구매한 상품'을 추천하기 위해 구매 상품 A를 포함하는 모든 행동 로그를 추출한다. 즉, 소거 대상인 구매 상품의 수가 1개인 행동 로그인 경우, 데이터 L3는 소거되기 때문에 L1 및 L6가 상품 A에 대한 그룹이 될 수 있다. Next, the
다음으로, 유사도산출모듈(35b)은 S270 단계에서 수학식 1에 따라 대상 상품(TG)과 복수의 다른 상품과의 유사도를 산출한다. 즉, 유사도산출모듈(35b)은 대상 상품(TG)과 다른 상품 중 적어도 하나를 포함하는 행동 로그인 합집합을 분모로 하고, 대상 상품(TG)과 다른 상품을 모두 포함하는 행동 로그인 교집합을 분자로 하여 대상 상품(TG)과 다른 상품의 유사도를 산출한다. Next, the
예컨대, 대상 상품(TG)이 상품 A인 경우, 유사도산출모듈(35b)은 상품 A와 다른 상품(상품 B, C, D, E, ??) 각각과의 유사도를 산출한다. For example, when the target product (TG) is product A, the
유사도산출모듈(35b)은 수학식 1에 따라 대상 상품(TG), 예컨대, 상품 A와 다른 상품(상품 B, C, D, E, ??)에 대한 행동 로그의 합집합을 분모로 그리고 대상 상품(TG)과 다른 상품에 대한 행동 로그의 교집합을 분모로 하여 유사도를 산출할 수 있다. 여기서, 대상 상품(TG)과 다른 상품에 대한 행동 로그의 합집합은 구매 상품이 적어도 대상 상품(TG)과 다른 상품 중 어느 하나를 포함하는 행동 로그이며, 대상 상품(TG)과 다른 상품에 대한 행동 로그의 교집합은 구매 상품이 대상 상품(TG)과 다른 상품을 모두 포함하는 행동 로그이다.The
이어서, 정보제공모듈(35c)은 S280 단계에서 유사도산출모듈(55b)이 산출한 유사도에 따라 유사도가 높은 순으로 추천 상품(RG)의 수(예컨대, 6개)의 상품을 추천 상품으로 도출한다. 그러면, 정보제공모듈(35c)은 도출된 추천 상품을 상품에 대한 정보로 분석서버통신부(31)를 통해 응용서버(40)로 전송한다. 이에 따라, 응용서버(40)는 도 9에 도시된 바와 같은 웹 페이지 화면을 구성하여 사용자단말기(10)에 제공할 수 있다. Subsequently, the
전술한 바와 같은 본 발명에 따르면, 유사도 연산에 결과에 영향을 미치지 않는 복수의 행동 로그를 소거 대상으로 특정하고, 전처리 과정에서 소거함으로써 유사도 연산의 속도가 향상되며, 이를 통해 시스템의 부하를 감소시킬 수 있다. According to the present invention as described above, the speed of the similarity calculation is improved by specifying a plurality of behavior logs that do not affect the result of the similarity calculation as objects of deletion and erasing them in the pre-processing process, thereby reducing the load on the system. You can.
이상에서 설명한 바와 같이, 본 명세서는 다수의 특정한 구현물의 세부사항들을 포함하지만, 이들은 어떠한 발명이나 청구 가능한 것의 범위에 대해서도 제한적인 것으로서 이해되어서는 안되며, 오히려 특정한 발명의 특정한 실시형태에 특유할 수 있는 특징들에 대한 설명으로서 이해되어야 한다. 개별적인 실시형태의 문맥에서 본 명세서에 기술된 특정한 특징들은 단일 실시형태에서 조합하여 구현될 수도 있다. 반대로, 단일 실시형태의 문맥에서 기술한 다양한 특징들 역시 개별적으로 혹은 어떠한 적절한 하위 조합으로도 복수의 실시형태에서 구현 가능하다. 나아가, 특징들이 특정한 조합으로 동작하고 초기에 그와 같이 청구된 바와 같이 묘사될 수 있지만, 청구된 조합으로부터의 하나 이상의 특징들은 일부 경우에 그 조합으로부터 배제될 수 있으며, 그 청구된 조합은 하위 조합이나 하위 조합의 변형물로 변경될 수 있다.As described above, although this specification contains details of numerous specific implementations, these should not be construed as limitations on the scope of any invention or what may be claimed, but rather may be specific to particular embodiments of a particular invention. It should be understood as a description of features. Certain features described herein in the context of individual embodiments may also be implemented in combination in a single embodiment. Conversely, various features described in the context of a single embodiment can also be implemented in multiple embodiments individually or in any suitable sub-combination. Furthermore, although features may be described as operating in a particular combination and initially claimed as such, one or more features from a claimed combination may in some cases be excluded from that combination, and the claimed combination may be a sub-combination. It can be changed to a variant of a sub-combination.
마찬가지로, 특정한 순서로 도면에서 동작들을 묘사하고 있지만, 이는 바람직한 결과를 얻기 위하여 도시된 그 특정한 순서나 순차적인 순서대로 그러한 동작들을 수행하여야 한다거나 모든 도시된 동작들이 수행되어야 하는 것으로 이해되어서는 안 된다. 특정한 경우, 멀티태스킹과 병렬 프로세싱이 유리할 수 있다. 또한, 상술한 실시형태의 다양한 시스템 컴포넌트의 분리는 그러한 분리를 모든 실시형태에서 요구하는 것으로 이해되어서는 안되며, 설명한 프로그램 컴포넌트와 시스템들은 일반적으로 단일의 소프트웨어 제품으로 함께 통합되거나 다중 소프트웨어 제품에 패키징될 수 있다는 점을 이해하여야 한다.Likewise, although operations are depicted in the drawings in a particular order, this should not be construed as requiring that those operations be performed in the specific order or sequential order shown or that all of the depicted operations must be performed to obtain desirable results. In certain cases, multitasking and parallel processing may be advantageous. Additionally, the separation of various system components in the above-described embodiments should not be construed as requiring such separation in all embodiments, and the described program components and systems may generally be integrated together into a single software product or packaged into multiple software products. You must understand that it is possible.
본 명세서에서 설명한 주제의 특정한 실시형태를 설명하였다. 기타의 실시형태들은 이하의 청구항의 범위 내에 속한다. 예컨대, 청구항에서 인용된 동작들은 상이한 순서로 수행되면서도 여전히 바람직한 결과를 성취할 수 있다. 일 예로서, 첨부도면에 도시한 프로세스는 바람직한 결과를 얻기 위하여 반드시 그 특정한 도시된 순서나 순차적인 순서를 요구하지 않는다. 특정한 구현예에서, 멀티태스킹과 병렬 프로세싱이 유리할 수 있다.Specific embodiments of the subject matter described herein have been described. Other embodiments are within the scope of the following claims. For example, the operations recited in the claims can be performed in a different order and still achieve desirable results. As an example, the process depicted in the accompanying drawings does not necessarily require the specific depicted order or sequential order to achieve desirable results. In certain implementations, multitasking and parallel processing may be advantageous.
본 기술한 설명은 본 발명의 최상의 모드를 제시하고 있으며, 본 발명을 설명하기 위하여, 그리고 당업자가 본 발명을 제작 및 이용할 수 있도록 하기 위한 예를 제공하고 있다. 이렇게 작성된 명세서는 그 제시된 구체적인 용어에 본 발명을 제한하는 것이 아니다. 따라서, 상술한 예를 참조하여 본 발명을 상세하게 설명하였지만, 당업자라면 본 발명의 범위를 벗어나지 않으면서도 본 예들에 대한 개조, 변경 및 변형을 가할 수 있다.The present description sets forth the best mode of the invention and provides examples to illustrate the invention and to enable any person skilled in the art to make or use the invention. The specification prepared in this way does not limit the present invention to the specific terms presented. Accordingly, although the present invention has been described in detail with reference to the above-described examples, those skilled in the art may make modifications, changes, and variations to the examples without departing from the scope of the present invention.
따라서 본 발명의 범위는 설명된 실시 예에 의하여 정할 것이 아니고 특허청구범위에 의해 정하여져야 한다.Therefore, the scope of the present invention should not be determined by the described embodiments, but by the scope of the patent claims.
본 발명은 고속 유사도 연산 기반의 상품을 추천하기 위한 방법 및 이를 위한 추천 서버에 관한 것으로서, 본 발명을 이용하면 추천 상품을 도출하기 위해 사용되는 유사도 연산 시, 불요한 행동 로그를 소거함으로써 유사도 연산의 속도를 향상시킬 수 있다. 이에 따라, 시스템의 부하를 감소시킬 수 있으며 시스템의 속도를 향상시킬 수 있다. 이는 곧 서비스 산업의 발전에 이바지할 수 있으며, 더불어, 본 발명은 시판 또는 영업의 가능성이 충분할 뿐만 아니라 현실적으로 명백하게 실시할 수 있는 정도이므로 산업상 이용가능성이 있다.The present invention relates to a method for recommending products based on high-speed similarity calculation and a recommendation server for the same. Using the present invention, the similarity calculation is performed by erasing unnecessary action logs when calculating similarity used to derive recommended products. Speed can be improved. Accordingly, the system load can be reduced and the system speed can be improved. This can contribute to the development of the service industry, and in addition, the present invention has industrial applicability because it not only has sufficient potential for commercialization or sales, but also can be clearly implemented in reality.
10: 사용자단말기 11: 통신부
13: 입력부 15: 표시부
17: 저장부 19: 제어부
20: 데이터수집서버 21: 수집서버통신부
23: 수집서버저장부 25: 수집서버제어부
30: 분석서버 31: 분석서버통신부
33: 분석서버저장부 35: 분석서버제어부
35a: 전처리모듈 35b: 유사도산출모듈
35c: 정보제공모듈 40: 응용서버
41: 응용서버통신부 43: 응용서버저장부
45: 응용서버제어부 10: User terminal 11: Communication department
13: input unit 15: display unit
17: storage unit 19: control unit
20: Data collection server 21: Collection server communication department
23: collection server storage unit 25: collection server control unit
30: Analysis server 31: Analysis server communication department
33: Analysis server storage unit 35: Analysis server control unit
35a:
35c: Information provision module 40: Application server
41: Application server communication unit 43: Application server storage unit
45: Application server control unit
Claims (9)
상기 분석서버가 복수의 행동 로그 중 일부를 소거하는 단계;
상기 분석서버가 일부가 소거된 복수의 행동 로그에 대해 유사도 연산을 수행하여 유사도를 산출하는 단계;
상기 분석서버가 상기 유사도 연산 결과에 따라 상품에 대한 정보를 생성하는 단계; 및
상기 분석서버가 상기 상품에 대한 정보를 응용서버로 전송하는 단계;를 포함하고,
상기 복수의 행동 로그 중 일부를 소거하는 단계는
제공하고자 하는 상품에 대한 정보의 양에 따라 소거 비율을 결정하고, 상기 결정된 소거 비율 및 행동 로그의 구매 상품의 수에 따라 소거 대상을 결정하는 것을 특징으로 하는 상품에 대한 정보를 제공하기 위한 방법.A data collection server collecting a plurality of behavior logs, each including a user identifier and a product, from the user terminal and transmitting them to the analysis server;
The analysis server deleting some of the plurality of behavior logs;
Calculating similarity by the analysis server performing a similarity calculation on a plurality of partially erased behavior logs;
generating, by the analysis server, information about a product according to the similarity calculation result; and
Including a step of the analysis server transmitting information about the product to the application server,
The step of erasing some of the plurality of action logs is
A method for providing information about a product, comprising determining an erasure rate according to the amount of information about the product to be provided, and determining an erasure target according to the determined erasure rate and the number of purchased products in the behavior log.
상기 유사도 연산을 수행하여 유사도를 산출하는 단계는
어느 하나의 상품과 다른 상품 중 적어도 하나를 포함하는 행동 로그인 합집합을 분모로 하고,
상기 어느 하나의 상품과 상기 다른 상품을 모두 포함하는 행동 로그인 교집합을 분자로 하여
상기 어느 하나의 상품과 상기 다른 상품의 유사도를 산출하는 것을 특징으로 하는 상품에 대한 정보를 제공하기 위한 방법. According to paragraph 1,
The step of calculating the similarity by performing the similarity calculation is
The denominator is the union of action logs that includes one product and at least one of the other products,
With the intersection of the action log containing both one product and the other product as the numerator,
A method for providing information about a product, characterized in that calculating the similarity between one product and the other product.
상기 유사도 연산 결과에 따라 상품에 대한 정보를 생성하는 단계는
상기 산출된 유사도에 따라 상기 유사도가 높은 순으로 소정 수의 상품을 상품에 대한 정보로 도출하는 것을 특징으로 하는 상품에 대한 정보를 제공하기 위한 방법. According to paragraph 4,
The step of generating information about the product according to the similarity calculation results is
A method for providing information about a product, characterized in that, according to the calculated similarity, a predetermined number of products are derived as information about the product in the order of the highest similarity.
상기 분석서버통신부를 통해 상기 응용서버로부터 대상 상품 및 추천 상품의 수를 포함하는 추천 상품 요청 메시지를 수신하면, 사용자식별자와 상기 사용자 식별자에 대응하는 구매 상품을 포함하는 복수의 행동 로그 중 소거 대상을 특정하고, 복수의 행동 로그에서 상기 특정된 소거 대상을 소거하는 전처리모듈; 및
상기 소거 대상이 소거된 복수의 행동 로그를 이용하여 상기 대상 상품과의 유사도를 산출하는 유사도산출모듈;을 포함하고,
상기 전처리모듈은
상기 추천 상품의 수에 따라 소거 비율을 산출하고, 상기 산출된 소거 비율 및 행동 로그의 구매 상품의 수에 따라 소거 대상을 결정하는 것을 특징으로 하는 상품에 대한 정보를 제공하기 위한 장치.Analysis server communication unit for communication with the application server;
When a recommended product request message including the target product and the number of recommended products is received from the application server through the analysis server communication unit, a user identifier and a plurality of behavior logs including purchased products corresponding to the user identifier are selected for deletion. a preprocessing module that specifies and erases the specified erase target from a plurality of behavior logs; and
It includes a similarity calculation module that calculates the similarity with the target product using a plurality of behavior logs from which the deletion target has been erased,
The preprocessing module is
A device for providing information about products, wherein a deletion rate is calculated according to the number of recommended products, and a deletion target is determined according to the calculated deletion rate and the number of purchased products in the behavior log.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180064815A KR102652416B1 (en) | 2018-06-05 | 2018-06-05 | A method for presenting information on a product based on high speed similarity calculation and an apparatus therefor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180064815A KR102652416B1 (en) | 2018-06-05 | 2018-06-05 | A method for presenting information on a product based on high speed similarity calculation and an apparatus therefor |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190138412A KR20190138412A (en) | 2019-12-13 |
KR102652416B1 true KR102652416B1 (en) | 2024-03-29 |
Family
ID=68847472
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180064815A KR102652416B1 (en) | 2018-06-05 | 2018-06-05 | A method for presenting information on a product based on high speed similarity calculation and an apparatus therefor |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102652416B1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2744294C1 (en) * | 2020-09-22 | 2021-03-04 | Общество с ограниченной ответственностью "Сибирь Телематика" | System and method for parameters control of glass products production |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010224873A (en) * | 2009-03-24 | 2010-10-07 | Nomura Research Institute Ltd | Commodity retrieval server, commodity retrieval method, program, and recording medium |
WO2013030942A1 (en) * | 2011-08-30 | 2013-03-07 | トヨタ自動車 株式会社 | Behavior history management system, and behavior history management method |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101086996B1 (en) * | 2008-10-30 | 2011-11-29 | 주식회사 케이티 | Apparatus for generating ontology and method thereof |
KR101646312B1 (en) * | 2013-12-06 | 2016-08-08 | 조은영 | Personal Action-Based Interest and Preference Analysis Method and System |
KR101567217B1 (en) | 2014-05-29 | 2015-11-17 | 연세대학교 산학협력단 | Method and system for recommendation with collaborative filtering using social network analysis |
-
2018
- 2018-06-05 KR KR1020180064815A patent/KR102652416B1/en active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010224873A (en) * | 2009-03-24 | 2010-10-07 | Nomura Research Institute Ltd | Commodity retrieval server, commodity retrieval method, program, and recording medium |
WO2013030942A1 (en) * | 2011-08-30 | 2013-03-07 | トヨタ自動車 株式会社 | Behavior history management system, and behavior history management method |
Also Published As
Publication number | Publication date |
---|---|
KR20190138412A (en) | 2019-12-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108021929B (en) | Big data-based mobile terminal e-commerce user portrait establishing and analyzing method and system | |
US11574139B2 (en) | Information pushing method, storage medium and server | |
CN110458220B (en) | Crowd orientation method, device, server and storage medium | |
US9854450B2 (en) | Enhanced data collection, processing, and analysis facilities | |
CN108537578A (en) | Advertisement sending method based on big data and device | |
WO2019137485A1 (en) | Service score determination method and apparatus, and storage medium | |
CN106682686A (en) | User gender prediction method based on mobile phone Internet-surfing behavior | |
CN107077498B (en) | Representing entity relationships in online advertisements | |
US20150066948A1 (en) | Influence Scoring for Social Media Authors | |
US20150339686A1 (en) | Enhanced data collection, processing, and analysis | |
US20190287155A1 (en) | Landing page providing server and method of providing customized landing page | |
US9269112B1 (en) | Integrating location-based social media data with enterprise business intelligence applications | |
US11748452B2 (en) | Method for data processing by performing different non-linear combination processing | |
US20130172041A1 (en) | Online and distributed optimization framework for wireless analytics | |
US20140195303A1 (en) | Method of automated group identification based on social and behavioral information | |
CN104572775B (en) | Advertisement classification method, device and server | |
US11625757B1 (en) | Hybrid selection of target for advertisement campaign | |
US11256722B2 (en) | Techniques for modeling aggregation records | |
US20160110728A1 (en) | Enhanced data collection, processing, and analysis | |
KR102652416B1 (en) | A method for presenting information on a product based on high speed similarity calculation and an apparatus therefor | |
US10360600B1 (en) | Big tree method and system for verifying user reviews | |
US20190370827A1 (en) | Messaging system and method | |
KR102511634B1 (en) | System for providing context awareness based cross-domain recommendation service for retail kiosk | |
KR101956876B1 (en) | Application recommendation apparatus, application recommendation method and evaluation score calculation method of the same | |
CN109376315B (en) | Machine learning-based civil aviation passenger label analysis method and processing terminal |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |