KR20210097432A - Apparatus and method for recommending contents - Google Patents

Apparatus and method for recommending contents Download PDF

Info

Publication number
KR20210097432A
KR20210097432A KR1020200011120A KR20200011120A KR20210097432A KR 20210097432 A KR20210097432 A KR 20210097432A KR 1020200011120 A KR1020200011120 A KR 1020200011120A KR 20200011120 A KR20200011120 A KR 20200011120A KR 20210097432 A KR20210097432 A KR 20210097432A
Authority
KR
South Korea
Prior art keywords
content
user
recommendation model
offset
recommendation
Prior art date
Application number
KR1020200011120A
Other languages
Korean (ko)
Inventor
김은주
임지희
Original Assignee
주식회사 케이티
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 케이티 filed Critical 주식회사 케이티
Priority to KR1020200011120A priority Critical patent/KR20210097432A/en
Publication of KR20210097432A publication Critical patent/KR20210097432A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • 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

Abstract

Disclosed are a device and a method for recommending a content, which uniquely recommends the content for each user by reflecting the characteristics of each user at a low cost and fast time. According to an embodiment of the present invention, a user terminal for recommending the content to the user includes: a communication unit communicating with a content service server and receiving a user's offset recommendation model derived from an integrated recommendation model learned from a content service server; an input unit for receiving an input for using content from the user; a service unit for requesting, receiving, and outputting the content to the content service server through the communication unit based on the input; and a recommendation unit which updates the offset recommendation model based on a user's content use history and recommends the content to the user through the updated offset recommendation model.

Description

콘텐츠를 추천하기 위한 장치 및 방법{Apparatus and method for recommending contents}Apparatus and method for recommending contents

본 발명은 콘텐츠를 추천하기 위한 장치 및 방법에 관한 것으로, 보다 구체적으로, 다양한 사용자 단말 환경에서 빠르게 콘텐츠를 추천하기 위한 장치 및 방법에 관한 것이다. The present invention relates to an apparatus and method for recommending content, and more particularly, to an apparatus and method for quickly recommending content in various user terminal environments.

일반적으로 콘텐츠를 소비하는 사용자들은 검색을 통해 본인이 원하는 콘텐츠를 찾아 이용한다. 이 방식은 콘텐츠의 수가 기하급수적으로 늘어나는 환경에서 사용자가 원하는 콘텐츠를 효율적으로 정확하게 검색하는데 한계가 있다. 이에 대한 대안으로 사용자의 개인 정보나 콘텐츠 이용 이력을 고려하여 자동으로 사용자가 관심있어할 만한 콘텐츠를 추천하는 기술이 제안되고 있다. 일종의 타겟 마케팅 전략이다.In general, users who consume content find and use the content they want through a search. This method has a limitation in efficiently and accurately searching for a content desired by a user in an environment in which the number of content increases exponentially. As an alternative to this, a technology for automatically recommending content that may be of interest to a user has been proposed in consideration of the user's personal information or content use history. It is a kind of target marketing strategy.

그러나 종래의 콘텐츠 추천 기술은 사용자의 수가 많아질 경우 사용자의 콘텐츠 이용 이력을 분석하는데 많은 시간과 컴퓨팅 자원이 필요로 한다. 사용자 관점에서는 편리하지만 콘텐츠 서비스 제공자 입장에서는 많은 비용과 시간이 소요되는 문제점이 있다. 또한 종래의 콘텐츠 추천 기술은 전체 사용자의 콘텐츠 이용 이력을 기초로 콘텐츠를 추천하기 때문에 사용자 개개인의 특성을 반영하지 못하는 경우가 많다. However, the conventional content recommendation technology requires a lot of time and computing resources to analyze the user's content use history when the number of users increases. It is convenient from the user's point of view, but there is a problem in that it takes a lot of time and money from the point of view of a content service provider. In addition, since the conventional content recommendation technology recommends content based on the content usage history of all users, it is often not possible to reflect the characteristics of each user.

일부에서는 딥러닝 등 신경망 기반의 콘텐츠 추천 모델을 이용하여 콘텐츠를 추천하기도 한다. 그런데 전체 사용자에 대해 콘텐츠 추천 모델을 학습하고 모델링하는데 많은 시간이 걸려 일부 제한적인 학습만을 수행한다. 일부 사용자들을 그룹핑하고 각 사용자 그룹마다 추천을 제공하는 경우도 있지만, 이 역시 사용자 개개인의 특성을 반영하지 못할 수 있다. 따라서 사용자 개개인의 특성을 반영하여 콘텐츠를 하는데 있어서 시간과 비용을 줄일 수 있는 방안이 필요하다. 특히 광대역 인터넷과 이동통신기술의 발전, 특히 5G 서비스가 도입되면서 PC, 스마트폰 등의 다양한 사용자 단말로 방송 프로그램, 영화 등의 미디어 콘텐츠를 이용할 수 있는 OTT(Over The Top) 서비스가 확대되고 있는 상황에서는 그 필요성이 더욱 증가하고 있다. Some recommend content using a neural network-based content recommendation model such as deep learning. However, it takes a lot of time to learn and model the content recommendation model for all users, so only limited learning is performed. Although some users are grouped and recommendations are provided for each user group, this may not reflect the characteristics of each user. Therefore, there is a need for a method that can reduce time and cost in content creation by reflecting the characteristics of each user. In particular, with the development of broadband Internet and mobile communication technology, especially with the introduction of 5G services, OTT (Over The Top) services that allow users to use media contents such as broadcast programs and movies through various user terminals such as PCs and smartphones are expanding. The need for it is growing even more.

본 발명은 상술한 문제점을 해결하기 위해 제안된 것으로, 적은 비용과 빠른 시간으로 사용자 개개인의 특성을 반영하여 사용자별로 고유하게 콘텐츠를 추천할 수 있는 장치 및 방법을 제공하는데 그 목적이 있다.The present invention has been proposed to solve the above problems, and it is an object of the present invention to provide an apparatus and method capable of uniquely recommending content for each user by reflecting the characteristics of each user at a low cost and fast time.

일 실시예에 따른 사용자에게 콘텐츠를 추천하기 위한 사용자 단말은, 콘텐츠 서비스 서버와 통신하고, 상기 콘텐츠 서비스 서버에서 학습된 통합 추천 모델로부터 파생된 상기 사용자의 오프셋 추천 모델을 수신하는 통신부; 상기 사용자로부터 콘텐츠 이용을 위한 입력을 수신하는 입력부; 상기 입력에 기초하여 상기 통신부를 통해 상기 콘텐츠 서비스 서버로 콘텐츠를 요청하고 수신하여 출력하는 서비스부; 및 상기 사용자의 콘텐츠 이용 이력에 기초하여 상기 오프셋 추천 모델을 갱신하고 갱신된 상기 오프셋 추천 모델을 통해 상기 사용자에게 콘텐츠를 추천하는 추천부를 포함한다.A user terminal for recommending content to a user according to an embodiment includes: a communication unit communicating with a content service server and receiving an offset recommendation model of the user derived from an integrated recommendation model learned from the content service server; an input unit for receiving an input for using content from the user; a service unit for requesting, receiving, and outputting contents to the contents service server through the communication unit based on the input; and a recommendation unit that updates the offset recommendation model based on the user's content use history and recommends content to the user through the updated offset recommendation model.

상기 통신부는, 상기 콘텐츠 서비스 서버로부터 상기 통합 추천 모델에서 추천한 콘텐츠 추천 리스트를 수신하고, 상기 추천부는, 상기 오프셋 추천 모델을 이용하여 상기 콘텐츠 추천 리스트에 기초하여 상기 사용자에 고유한 콘텐츠 추천 리스트를 생성할 수 있다.The communication unit receives a content recommendation list recommended by the integrated recommendation model from the content service server, and the recommendation unit generates a content recommendation list unique to the user based on the content recommendation list using the offset recommendation model. can create

상기 추천부는, 상기 수신된 콘텐츠 추천 리스트를 상기 오프셋 추천 모델을 이용하여 재정렬하여 상기 사용자에게 고유한 콘텐츠 추천 리스트를 생성할 수 있다.The recommendation unit may generate a content recommendation list unique to the user by rearranging the received content recommendation list using the offset recommendation model.

상기 통신부에서 수신하는 오프셋 추천 모델은, 상기 콘텐츠 서비스 서버가 상기 통합 추천 모델의 콘텐츠 추천 결과와 상기 사용자의 콘텐츠 이용 이력의 차이에 기초하여 상기 통합 추천 모델로부터 파생하여 생성할 수 있다.The offset recommendation model received by the communication unit may be generated by the content service server derived from the integrated recommendation model based on a difference between a content recommendation result of the integrated recommendation model and a content use history of the user.

상기 콘텐츠 이용 이력은, 사용자의 발화, 시청, 구매 또는 별점 이력 중 적어도 하나 이상을 포함할 수 있다.The content use history may include at least one of a user's speech, viewing, purchase, or star rating history.

사용자의 시청 이력으로서, 각 콘텐츠에 대한 벡터 값이 하기 수학식1 또는 하기 수학식2에 의해 산출되어 학습에 이용될 수 있다.As the user's viewing history, a vector value for each content may be calculated by Equation 1 or Equation 2 below and used for learning.

(수학식1)(Equation 1)

각 콘텐츠에 대한 시청 이력 벡터 값 = 1+log(총 시청 시간/해당 콘텐츠의 러닝 타임)Viewing history vector value for each content = 1+log (total watch time/running time of that content)

(수학식2)(Equation 2)

각 콘텐츠에 대한 시청 이력 벡터 값 = 1+log(총 시청 시간/해당 콘텐츠의 러닝 타임)+log(α/시청 횟수). 여기서 α=1이거나 콘텐츠의 러닝 타임에 비례하여 결정됨.Viewing history vector value for each content = 1+log(total watch time/running time of that content)+log(α/number of views). where α=1 or determined proportional to the running time of the content.

사용자의 구매 이력으로서, 각 콘텐츠에 대한 사용자의 구매 금액과, 각 콘텐츠를 구매한 전체 사용자의 평균 금액 및 분산을 이용하여 표준화된 벡터 값이 산출되어 학습에 이용될 수 있다.As the user's purchase history, a standardized vector value may be calculated and used for learning by using the user's purchase amount for each content and the average amount and variance of all users who purchased each content.

사용자의 별점 이력으로서, 각 콘텐츠에 대해 사용자가 부여한 별점과, 각 콘텐츠에 대해 전체 사용자가 부여한 별점의 평균 및 분산을 이용하여 표준화된 벡터 값이 산출되어 학습에 이용될 수 있다.As the user's star point history, a standardized vector value may be calculated and used for learning by using the star point given by the user for each content and the average and variance of the star point given by all users for each content.

상기 사용자 단말은, 상기 갱신된 오프셋 추천 모델을 다른 사용자 단말로 전송하여 공유하는 공유부를 더 포함할 수 있다.The user terminal may further include a sharing unit that transmits and shares the updated offset recommendation model to another user terminal.

상기 공유부는, 사용자 단말의 컴퓨팅 환경에 기초하여 사용자의 콘텐츠 이용 이력을 상기 다른 사용자 단말로 전송하여 공유할 수 있다.The sharing unit may transmit and share the content usage history of the user to the other user terminal based on the computing environment of the user terminal.

상기 공유부는, 상기 오프셋 추천 모델을 갱신하기 전에, 상기 다른 사용자 단말로 갱신 예정임을 통보하여 상기 다른 사용자 단말의 오프셋 추천 모델의 갱신을 중지시킬 수 있다.The sharing unit may stop updating the offset recommendation model of the other user terminal by notifying the other user terminal that the update is scheduled before updating the offset recommendation model.

일 실시예에 따른 사용자 단말에서 사용자에게 콘텐츠를 추천하는 방법은, 콘텐츠 서비스 서버에서 학습된 통합 추천 모델로부터 파생된 상기 사용자의 오프셋 추천 모델을 상기 콘텐츠 서비스 서버로부터 수신하는 단계; 상기 사용자로부터 콘텐츠 이용을 위한 입력을 수신하는 단계; 상기 입력에 기초하여 상기 콘텐츠 서비스 서버로 콘텐츠를 요청하고 수신하여 출력하는 단계; 및 상기 사용자의 콘텐츠 이용 이력에 기초하여 상기 오프셋 추천 모델을 갱신하고 갱신된 상기 오프셋 추천 모델을 통해 상기 사용자에게 콘텐츠를 추천하는 단계를 포함한다.According to an embodiment, a method for recommending content to a user in a user terminal includes: receiving an offset recommendation model of the user derived from an integrated recommendation model learned from a content service server from the content service server; receiving an input for using content from the user; requesting, receiving, and outputting content from the content service server based on the input; and updating the offset recommendation model based on the content usage history of the user and recommending content to the user through the updated offset recommendation model.

상기 방법은, 상기 콘텐츠 서비스 서버로부터 상기 통합 추천 모델에서 추천한 콘텐츠 추천 리스트를 수신하는 단계를 더 포함하고, 상기 추천하는 단계는, 상기 오프셋 추천 모델을 이용하여 상기 콘텐츠 추천 리스트에 기초하여 상기 사용자에 고유한 콘텐츠 추천 리스트를 생성할 수 있다.The method further includes receiving, from the content service server, a content recommendation list recommended by the integrated recommendation model, wherein the recommending includes: the user based on the content recommendation list using the offset recommendation model You can create your own content recommendation list.

상기 추천하는 단계는, 상기 수신된 콘텐츠 추천 리스트를 상기 오프셋 추천 모델을 이용하여 재정렬하여 상기 사용자에게 고유한 콘텐츠 추천 리스트를 생성할 수 있다.The recommending may include rearranging the received content recommendation list using the offset recommendation model to generate a content recommendation list unique to the user.

상기 수신하는 단계에서 수신되는 오프셋 추천 모델은, 상기 콘텐츠 서비스 서버가 상기 통합 추천 모델의 콘텐츠 추천 결과와 상기 사용자의 콘텐츠 이용 이력의 차이에 기초하여 상기 통합 추천 모델로부터 파생하여 생성한 것일 수 있다.The offset recommendation model received in the receiving step may be generated by the content service server derived from the integrated recommendation model based on a difference between the content recommendation result of the integrated recommendation model and the user's content use history.

상기 콘텐츠 이용 이력은, 사용자의 발화, 시청, 구매 또는 별점 이력 중 적어도 하나 이상을 포함할 수 있다.The content use history may include at least one of a user's speech, viewing, purchase, or star rating history.

사용자의 시청 이력으로서, 각 콘텐츠에 대한 벡터 값이 하기 수학식3 또는 하기 수학식4에 의해 산출되어 학습에 이용될 수 있다.As a user's viewing history, a vector value for each content may be calculated by Equation 3 or Equation 4 below and used for learning.

(수학식3)(Equation 3)

각 콘텐츠에 대한 시청 이력 벡터 값 = 1+log(총 시청 시간/해당 콘텐츠의 러닝 타임)Viewing history vector value for each content = 1+log (total watch time/running time of that content)

(수학식4)(Equation 4)

각 콘텐츠에 대한 시청 이력 벡터 값 = 1+log(총 시청 시간/해당 콘텐츠의 러닝 타임)+log(α/시청 횟수). 여기서 α=1이거나 콘텐츠의 러닝 타임에 비례하여 결정됨.Viewing history vector value for each content = 1+log(total watch time/running time of that content)+log(α/number of views). where α=1 or determined proportional to the running time of the content.

사용자의 구매 이력으로서, 각 콘텐츠에 대한 사용자의 구매 금액과, 각 콘텐츠를 구매한 전체 사용자의 평균 금액 및 분산을 이용하여 표준화된 벡터 값이 산출되어 학습에 이용될 수 있다.As the user's purchase history, a standardized vector value may be calculated and used for learning by using the user's purchase amount for each content and the average amount and variance of all users who purchased each content.

사용자의 별점 이력으로서, 각 콘텐츠에 대해 사용자가 부여한 별점과, 각 콘텐츠에 대해 전체 사용자가 부여한 별점의 평균 및 분산을 이용하여 표준화된 벡터 값이 산출되어 학습에 이용될 수 있다.As the user's star point history, a standardized vector value may be calculated and used for learning by using the star point given by the user for each content and the average and variance of the star point given by all users for each content.

상기 방법은, 상기 갱신된 오프셋 추천 모델을 다른 사용자 단말로 전송하여 공유하는 단계를 더 포함할 수 있다.The method may further include transmitting and sharing the updated offset recommendation model to another user terminal.

상기 방법은, 상기 오프셋 추천 모델을 갱신하기 전에, 상기 다른 사용자 단말로 갱신 예정임을 통보하여 상기 다른 사용자 단말의 오프셋 추천 모델의 갱신을 중지시키는 단계를 더 포함할 수 있다.The method may further include, before updating the offset recommendation model, stopping the update of the offset recommendation model of the other user terminal by notifying the other user terminal that the update is scheduled.

본 발명은 콘텐츠 서비스 서버에서 전체 사용자를 대상으로 한 통합 추천 모델을 모델링을 한 후 이로부터 각 사용자 개인별 콘텐츠 이용 이력을 기초로 각 사용자별로 오프셋 추천 모델을 생성하여 각 사용자 단말에 전송하고, 각 사용자 단말에서는 오프셋 추천 모델을 통해 콘텐츠를 추천함으로써 콘텐츠를 추천하는데 필요한 컴퓨팅 자원을 분산하여 빠른 시간과 적은 비용으로 개인의 특성에 맞는 콘텐츠를 추천할 수 있다. In the present invention, after modeling an integrated recommendation model for all users in a content service server, an offset recommendation model is generated for each user based on each user's individual content use history and transmitted to each user terminal. By recommending content through the offset recommendation model, the terminal distributes computing resources required to recommend content, and can recommend content suitable for individual characteristics in a short time and at low cost.

본 발명은 각 사용자 단말에서 통합 추천 모델에서 추천한 콘텐츠 추천 리스트 범위 내에서 오프셋 추천 모델이 사용자의 특성에 맞는 콘텐츠를 추천하기 때문에 오프셋 추천 모델을 통합 추천 모델보다 경량화하여 제작하면 되므로 서버에 비해 컴퓨팅 환경이 좋지 않은 사용자 단말에서 많은 연산을 하지 않아 자원 사용에 효율적이며 콘텐츠 추천에 소요되는 시간을 절약할 수 있다. According to the present invention, since the offset recommendation model recommends content suitable for the user's characteristics within the range of the content recommendation list recommended by the integrated recommendation model in each user terminal, the offset recommendation model can be produced with a lighter weight than the integrated recommendation model. Since a lot of calculations are not performed in a user terminal in a bad environment, it is efficient to use resources and time required for content recommendation can be saved.

본 발명은 사용자가 복수의 사용자 단말을 사용하는 경우 특정 사용자 단말에서 갱신된 오프셋 추천 모델을 다른 사용자 단말로 공유할 수 있도록 하여 동일한 콘텐츠 서비스를 복수의 사용자 단말에서 일관되게 개인의 특성에 맞게 이용할 수 있도록 한다. The present invention allows a user to share an offset recommendation model updated in a specific user terminal with other user terminals when a user uses a plurality of user terminals, so that the same content service can be used consistently in a plurality of user terminals according to individual characteristics. let it be

도 1은 본 발명의 일 실시예에 따른 콘텐츠 서비스 시스템을 나타낸 도면이다.
도 2는 본 발명의 일 실시예에 따른 콘텐츠 서비스 서버의 구성을 나타낸 도면이다.
도 3은 본 발명의 일 실시예에 따른 사용자 단말의 구성을 나타낸 도면이다.
도 4는 본 발명의 일 실시예에 따른 콘텐츠 서비스 시스템에서 콘텐츠를 추천하는 방법을 설명하는 흐름도이다.
1 is a diagram illustrating a content service system according to an embodiment of the present invention.
2 is a diagram showing the configuration of a content service server according to an embodiment of the present invention.
3 is a diagram showing the configuration of a user terminal according to an embodiment of the present invention.
4 is a flowchart illustrating a method of recommending content in a content service system according to an embodiment of the present invention.

상술한 목적, 특징 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일 실시예를 상세히 설명하기로 한다.The above-described objects, features, and advantages will become more apparent through the following detailed description in relation to the accompanying drawings, whereby those of ordinary skill in the art to which the present invention pertains can easily implement the technical idea of the present invention. There will be. In addition, in the description of the present invention, if it is determined that a detailed description of a known technology related to the present invention may unnecessarily obscure the gist of the present invention, the detailed description thereof will be omitted. Hereinafter, a preferred embodiment according to the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 일 실시예에 따른 콘텐츠 서비스 시스템을 나타낸 도면이다. 도 1을 참조하면, 본 실시예에 따른 콘텐츠 서비스 시스템은, 콘텐츠 서비스 서버(110), 사용자 단말(120) 및 이들을 연결하는 통신망(130)을 포함한다. 여기서 통신망(130)은 공지의 이동통신망 또는 차세대 이동통신망이나, 유선 인터넷, 또는 근거리 무선 통신 등을 포함하나 반드시 여기에 제한되는 것은 아니며 유무선 통신을 위한 네트워크라면 특별히 제한되지 않는다.1 is a diagram illustrating a content service system according to an embodiment of the present invention. Referring to FIG. 1 , the content service system according to the present embodiment includes a content service server 110 , a user terminal 120 , and a communication network 130 connecting them. Here, the communication network 130 includes, but is not limited to, a known mobile communication network or a next-generation mobile communication network, a wired Internet, or short-range wireless communication, and is not particularly limited as long as it is a network for wired and wireless communication.

콘텐츠 서비스 서버(110)는, 사용자 단말(120)의 요청에 따라 콘텐츠를 사용자 단말(120)로 전송하는 서비스 장비이다. 여기서 콘텐츠는, 실시간 방송 프로그램 또는 VOD 방송 프로그램이나 영화 등의 영상 콘텐츠, 음원 콘텐츠 등을 포함할 수 있으나 반드시 여기에 제한되지는 않는다. 콘텐츠 서비스 서버(110)는 실시간 방송 프로그램의 경우 방송국의 방송 시스템으로부터 영상 콘텐츠를 수신하여 실시간으로 사용자 단말(120)로 스트리밍 전송할 수 있고, VOD 영상 콘텐츠나 음원 콘텐츠의 경우 데이터베이스에 미리 저장하고 사용자 단말(120)의 요청시 사용자 단말(120)로 스트리밍 전송할 수 있다. The content service server 110 is a service equipment that transmits content to the user terminal 120 according to the request of the user terminal 120 . Here, the content may include, but is not limited to, video content such as a real-time broadcast program or VOD broadcast program or movie, sound source content, and the like. In the case of a real-time broadcasting program, the content service server 110 may receive image content from a broadcasting system of a broadcasting station and stream and transmit it to the user terminal 120 in real time. Upon request of 120 , streaming may be transmitted to the user terminal 120 .

콘텐츠 서비스 서버(110)는 전체 사용자에 대한 신경망 기반의 통합 추천 모델을 생성하고 이를 기초로 각 사용자별로 오프셋 추천 모델을 생성한다. 콘텐츠 서비스 서버(110)는 사용자 단말(120)로 상기 통합 추천 모델에 기초하여 생성한 콘텐츠 추천 리스트를 전송하며 해당 사용자에 대한 오프셋 추천 모델을 전송한다. 바람직하게, 통합 추천 모델은 콘텐츠 서비스 서버(110)에서 제 1 주기마다 갱신될 수 있다. 또한 각 사용자별 오프셋 추천 모델은 콘텐츠 서비스 서버(110)에서 제 2 주기마다 각 사용자별로 생성되어 각 사용자 단말(120)에 전송될 수 있다. 이때 제 2 주기는 제 1 주기와 같거나 길 수 있다. 예를 들어, 제 1 주기는 1일이 될 수 있으며, 제 2 주기는 1일 또는 1주일과 같이, 제 1 주기에 비하여 긴 기간이 될 수 있다. 한편, 각 사용자별 오프셋 추천 모델은 최초 콘텐츠 서비스 서버(110)에서 생성된 이후, 콘텐츠 서비스 서버(110)로부터 새로운 오프셋 추천 모델을 수신하기 전까지 사용자 단말(120)에서 갱신될 수 있다. The content service server 110 generates a neural network-based integrated recommendation model for all users, and generates an offset recommendation model for each user based on this. The content service server 110 transmits the content recommendation list generated based on the integrated recommendation model to the user terminal 120 and transmits an offset recommendation model for the user. Preferably, the integrated recommendation model may be updated every first cycle in the content service server 110 . In addition, the offset recommendation model for each user may be generated for each user at the second cycle in the content service server 110 and transmitted to each user terminal 120 . In this case, the second period may be equal to or longer than the first period. For example, the first cycle may be 1 day, and the second cycle may be a longer period than the first cycle, such as 1 day or 1 week. Meanwhile, after the offset recommendation model for each user is initially generated by the content service server 110 , it may be updated in the user terminal 120 until a new offset recommendation model is received from the content service server 110 .

사용자 단말(120)은, 상기 통신망(130)을 통해 콘텐츠 서비스 서버(110)에 접속하여 콘텐츠를 검색하여 콘텐츠를 선택할 수 있고, 또는 콘텐츠 서비스 서버(110)로부터 수신되는 콘텐츠 추천 리스트에서 콘텐츠를 선택할 수 있다. 사용자 단말(120)은 사용자가 선택한 콘텐츠를 콘텐츠 서비스 서버(110)로부터 수신하여 디스플레이 장치에 재생하여 표시한다. 바람직하게, 사용자 단말(120)은 상기 콘텐츠 서비스 서버(110)로부터 수신되는 오프셋 추천 모델을 저장하고 오프셋 추천 모델을 통해 수신된 콘텐츠 추천 리스트의 콘텐츠 추천 순서를 변경하여 표시한다. 사용자 단말(120)은 사용자의 콘텐츠 이용 이력에 기초하여 오프셋 추천 모델을 주기적으로 갱신한다. 사용자 단말(120)은, 스마트폰이나 태블릿 PC 등의 모바일 단말, 고정형의 퍼스널 컴퓨터(PC), IPTV 셋탑박스, 기가지니와 같은 인공지능 기기 등을 포함한다. The user terminal 120 may access the content service server 110 through the communication network 130 to search for content and select content, or select content from a content recommendation list received from the content service server 110 . can The user terminal 120 receives the content selected by the user from the content service server 110 and reproduces and displays the content on the display device. Preferably, the user terminal 120 stores the offset recommendation model received from the content service server 110 and displays the changed content recommendation order of the content recommendation list received through the offset recommendation model. The user terminal 120 periodically updates the offset recommendation model based on the user's content use history. The user terminal 120 includes a mobile terminal such as a smart phone or a tablet PC, a fixed personal computer (PC), an IPTV set-top box, and an artificial intelligence device such as a GiGA Genie.

도 2는 본 발명의 일 실시예에 따른 콘텐츠 서비스 서버의 구성을 나타낸 도면이다. 콘텐츠 서비스 서버(110)는, 메모리, 메모리 제어기, 하나 이상의 프로세서(CPU), 주변 인터페이스, 입출력(I/O) 서브시스템, 디스플레이 장치, 입력 장치 및 통신 회로를 포함할 수 있다. 메모리는 고속 랜덤 액세스 메모리를 포함할 수 있고, 또한 하나 이상의 자기 디스크 저장 장치, 플래시 메모리 장치와 같은 불휘발성 메모리, 또는 다른 불휘발성 반도체 메모리 장치를 포함할 수 있다. 프로세서 및 주변 인터페이스와 같은 다른 구성요소에 의한 메모리로의 액세스는 메모리 제어기에 의하여 제어될 수 있다. 메모리는 각종 정보와 프로그램 명령어를 저장할 수 있고, 프로그램은 프로세서에 의해 실행된다. 주변 인터페이스는 입출력 주변 장치를 프로세서 및 메모리와 연결한다. 하나 이상의 프로세서는 다양한 소프트웨어 프로그램 및/또는 메모리에 저장되어 있는 명령어 세트를 실행하여 시스템을 위한 여러 기능을 수행하고 데이터를 처리한다. I/O 서브시스템은 디스플레이 장치, 입력 장치와 같은 입출력 주변장치와 주변 인터페이스 사이에 인터페이스를 제공한다. 통신 회로는 외부 포트를 통한 통신 또는 RF 신호에 의한 통신을 수행한다. 통신 회로는 전기 신호를 RF 신호로 또는 그 반대로 변환하며 이 RF 신호를 통하여 통신 네트워크, 다른 이동형 게이트웨이 장치 및 통신 장치와 통신할 수 있다. 도 2를 참조하면 콘텐츠 서비스 서버(110)는, 회원 가입 처리부(210), 서비스 제공부(220), 통합 추천 모델 생성부(230) 및 오프셋 추천 모델 생성부(240)를 포함한다. 이들 구성요소는 프로그램으로 구현되어 메모리에 저장되고 프로세서에 의해 실행될 수 있고, 또는 하드웨어와 소프트웨어의 조합으로 구현되어 동작할 수 있다. 2 is a diagram showing the configuration of a content service server according to an embodiment of the present invention. The content service server 110 may include a memory, a memory controller, one or more processors (CPU), a peripheral interface, an input/output (I/O) subsystem, a display device, an input device, and a communication circuit. The memory may include high-speed random access memory, and may also include one or more magnetic disk storage devices, non-volatile memories such as flash memory devices, or other non-volatile semiconductor memory devices. Access to the memory by other components, such as the processor and peripheral interfaces, may be controlled by the memory controller. The memory may store various kinds of information and program instructions, and the program is executed by the processor. Peripheral interfaces connect the I/O peripherals to the processor and memory. One or more processors execute various software programs and/or sets of instructions stored in memory to perform various functions for the system and process data. The I/O subsystem provides an interface between input/output peripherals such as display devices and input devices and the peripheral interface. The communication circuit performs communication through an external port or communication by an RF signal. The communication circuitry converts electrical signals into RF signals and vice versa through which the RF signals can communicate with communication networks, other mobile gateway devices, and communication devices. Referring to FIG. 2 , the content service server 110 includes a membership subscription processing unit 210 , a service providing unit 220 , an integrated recommendation model generation unit 230 , and an offset recommendation model generation unit 240 . These components may be implemented as a program, stored in a memory, and executed by a processor, or may be implemented and operated as a combination of hardware and software.

회원 가입 처리부(210)는, 콘텐츠 서비스를 이용하려는 사용자로부터 개인 정보 및 사용자 단말(120)의 식별정보를 수신하여 저장부에 저장하고 회원 가입 처리한다. 회원 가입 처리부(210)는, 사용자 단말(120)로부터 개인 정보 및 사용자 단말(120)의 식별정보를 수신하여 회원 가입 처리를 수행할 수 있다. 회원 가입 처리부(210)는 사용자 단말(120)의 접속 시, 사용자 단말(120)로부터 수신되는 사용자 단말(120)의 식별정보 또는 개인 정보를 이용하여 로그인 인증을 수행할 수 있다. 여기서 사용자 단말(120)의 식별정보는, 전화번호 또는 MAC 주소 등과 같은 고유 식별정보를 포함하고, 개인 정보는 성별, 나이, 이름, 주소 등을 포함할 수 있다. The membership registration processing unit 210 receives personal information and identification information of the user terminal 120 from a user who intends to use the content service, stores the received information in the storage unit, and processes the membership registration. The membership registration processing unit 210 may receive personal information and identification information of the user terminal 120 from the user terminal 120 to perform membership registration processing. When the user terminal 120 is accessed, the member registration processing unit 210 may perform login authentication using identification information or personal information of the user terminal 120 received from the user terminal 120 . Here, the identification information of the user terminal 120 includes unique identification information such as a phone number or MAC address, and the personal information may include gender, age, name, address, and the like.

서비스 제공부(220)는, 사용자 단말(120)의 요청에 따라 저장부에서 콘텐츠를 검색하거나 또는 외부 시스템으로부터 수신되는 콘텐츠를 사용자 단말(120)로 전송한다. 서비스 제공부(220)는, 사용자 단말(120)로 콘텐츠를 검색할 수 있는 검색 인터페이스를 제공하여 콘텐츠를 선택 받을 수 있고, 또는 사용자 단말(120)로 추천 콘텐츠 리스트를 제공할 수 있다. 바람직하게, 서비스 제공부(220)는, 이하에서 설명하는 통합 추천 모델 생성부(230)에서 생성된 통합 추천 모델에 각 사용자의 개인 정보 등을 입력하여 추천 콘텐츠 리스트를 생성하여 각 사용자 단말(120)로 전송하면서, 이하에서 설명하는 각 사용자의 오프셋 추천 모델을 함께 전송한다.The service provider 220 searches for content in the storage unit or transmits content received from an external system to the user terminal 120 according to a request from the user terminal 120 . The service providing unit 220 may provide a search interface for searching for content to the user terminal 120 to receive content selection, or may provide a list of recommended content to the user terminal 120 . Preferably, the service providing unit 220 generates a list of recommended contents by inputting personal information of each user into the integrated recommendation model generated by the integrated recommendation model generation unit 230 to be described below to generate a recommended content list for each user terminal 120 . ), along with each user's offset recommendation model, which will be described below.

통합 추천 모델 생성부(230)는, 딥러닝 등의 신경망 기반으로 전체 사용자에 적용되는 통합 추천 모델을 생성한다. 통합 추천 모델 생성부(230)는, 전체 사용자들의 개인 정보와 전체 사용자들의 콘텐츠 이용 이력을 학습 데이터로 이용하여 신경망을 학습함으로써 통합 추천 모델을 생성한다. 신경망의 예로서 컨볼루션 신경망(CNN : Convolutional Neural Network)을 들 수 있으나 여기에 제한되는 것은 아니다. 여기서 콘텐츠 이용 이력은 사용자의 발화, 시청, 구매, 별점 정보 중 적어도 하나 이상을 포함할 수 있다. 여기서의 개인 정보는 콘텐츠 이용 이력을 통하여 추출된 개인의 선호 정보를 포함할 수 있다. 예를 들어, 개인 선호 정보는 사용자의 콘텐츠 이용 이력을 통해 추출되는 선호 장르, 선호 인물(감독, 배우 등), 선호 토픽, 선호 시간적/공간적 배경 등이 될 수 있다. 따라서 통합 추천 모델 생성부(230)는 콘텐츠 이용 이력을 통해 개인 선호 정보를 추출할 수 있다.The integrated recommendation model generator 230 generates an integrated recommendation model applied to all users based on a neural network such as deep learning. The integrated recommendation model generator 230 generates an integrated recommendation model by learning the neural network using personal information of all users and content use histories of all users as learning data. An example of the neural network may include, but is not limited to, a convolutional neural network (CNN). Here, the content use history may include at least one of user's speech, viewing, purchase, and star rating information. Here, the personal information may include personal preference information extracted through the content use history. For example, the personal preference information may be a preferred genre, preferred person (director, actor, etc.), preferred topic, preferred temporal/spatial background, etc. extracted through the user's content use history. Accordingly, the integrated recommendation model generator 230 may extract personal preference information through the content use history.

구체적으로, 통합 추천 모델 생성부(230)는, N일(N은 자연수) 동안의 전체 사용자들의 콘텐츠 이용 이력을 수집하고, 그 수집된 콘텐츠 이용 이력과, 전체 사용자드의 개인 정보를 학습 데이터로서 신경망에 입력하여 통합 추천 모델을 생성한다. 예를 들어, 사용자1이 N일 동안 이용한 콘텐츠 이용 이력을 수집하고, 사용자1의 개인 선호 정보와, 해당 사용자1의 콘텐츠 이용 이력을 신경망에 입력을 하는 방식으로, 전체 사용자의 개인 선호 정보와 콘텐츠 이용 이력을 신경망에 입력하여 신경망을 학습한다. 따라서 전체 사용자들에 공통으로 적용할 수 있는 신경망 기반의 통합 추천 모델이 생성된다. 일반적으로 신경망은 입력층(input layer), 은닉층(hidden layer), 및 출력층(output layer)의 3가지 층으로 구성되고 각 층들은 노드들로 구성된다. 통합 추천 모델은 이러한 신경망의 각 노드 간의 가중치로 이해할 수 있다.Specifically, the integrated recommendation model generation unit 230 collects the content use history of all users for N days (N is a natural number), and uses the collected content use history and personal information of all users as learning data. It is fed into the neural network to generate a unified recommendation model. For example, by collecting the content usage history used by User 1 for N days, and inputting the personal preference information of User 1 and the content usage history of the corresponding User 1 to the neural network, personal preference information and contents of all users The neural network is learned by inputting the usage history into the neural network. Therefore, a neural network-based integrated recommendation model that can be commonly applied to all users is created. In general, a neural network is composed of three layers: an input layer, a hidden layer, and an output layer, and each layer is composed of nodes. The unified recommendation model can be understood as a weight between each node of such a neural network.

학습된 통합 추천 모델에 특정 사용자의 개인 정보, 바람직하게는 개인 선호 정보를 입력하면, 통합 추천 모델은 해당 특정 사용자의 개인 정보를 이용하여 추천 콘텐츠 리스트를 생성한다. 전체 사용자들의 개인 정보와 콘텐츠 이용 이력을 이용하여 통합 추천 모델이 학습되었으므로, 상기 특정 사용자의 개인 정보와 유사한 개인 정보들을 갖고 있는 다른 사용자들이 이용한 콘텐츠 이용 이력에 기초하여 해당 특정 사용자가 좋아할만한 콘텐츠들의 리스트가 추천되는 것이다. 통합 추천 모델은 전체 사용자들의 데이터를 이용하여 학습되므로 사용자 개개인의 특성을 온전하게 반영하지 못하고, 학습에 많은 시간이 걸린다. 따라서 바람직하게는 통합 추천 모델을 학습하는데 있어 일정한 수의 사용자들의 데이터를 이용하여 학습하는 것이 바람직하다. When a specific user's personal information, preferably personal preference information, is input into the learned integrated recommendation model, the integrated recommendation model generates a recommended content list using the specific user's personal information. Since the integrated recommendation model is learned using the personal information and content use histories of all users, it is possible to find contents that the specific user may like based on the contents usage histories used by other users who have similar personal information to the specific user's personal information. A list is recommended. Since the integrated recommendation model is learned using the data of all users, it does not fully reflect the characteristics of each user, and it takes a lot of time to learn. Therefore, it is preferable to learn using data of a certain number of users in learning the integrated recommendation model.

통합 추천 모델 생성부(230)는, 통합 추천 모델을 생성하는데 있어 학습 데이터로 입력되는 콘텐츠 이용 이력을 벡터화하여 신경망에 입력한다. 이때 콘텐츠 이용 이력의 시간 순서는 무시한다. 시간 순서를 고려하지 않는 것은 순서 보다는 사용자의 콘텐츠 선호 정보를 가장 중점으로 고려하기 때문이다. 이하에서 시청 이력, 구매 이력, 발화 이력, 별점 이력 각각에 대해 벡터화하는 과정을 구체적인 예를 들어 설명한다. The integrated recommendation model generator 230 vectorizes the content usage history input as learning data in generating the integrated recommendation model and inputs it to the neural network. In this case, the chronological order of the content use history is ignored. The reason that the time order is not considered is because the user's content preference information is considered as the most important factor rather than the order. Hereinafter, a process of vectorizing each of the viewing history, purchase history, utterance history, and star rating history will be described as a specific example.

먼저, 콘텐츠 시청 이력은 사용자가 시청한 콘텐츠의 러닝 타임(runnig time), 콘텐츠 시청 횟수, 시청 시간을 이용하여 벡터 값으로 산출된다. 예를 들어, 콘텐츠1, 콘텐츠2, 콘텐츠3의 러닝 타임이 다음 [표1]과 같다고 가정한다. First, the content viewing history is calculated as a vector value using the running time of the content viewed by the user, the number of times the content is viewed, and the viewing time. For example, it is assumed that the running times of Content 1, Content 2, and Content 3 are as follows [Table 1].

구분division 콘텐츠1Content 1 콘텐츠2content 2 콘텐츠2content 2 러닝 타임running time 6060 2020 4040

일 실시예에서, 각 콘텐츠에 대한 시청 이력 벡터 값은 (1+log(총 시청 시간/해당 콘텐츠의 러닝 타임))으로 계산될 수 있다. 예를 들어, 사용자 A가 콘텐츠1을 30분 시청하고, 콘텐츠2를 20분 시청하며, 콘텐츠3은 시청하지 않은 경우, 사용자 A의 콘텐츠1, 콘텐츠2 및 콘텐츠3에 대한 벡터값은 (0.699, 1, 0)이 된다. 사용자 B가 콘텐츠1을 10분 시청하고, 콘텐츠2를 10분 시청하며, 콘텐츠3을 10분 시청한 경우, 사용자 B의 콘텐츠1, 콘텐츠2 및 콘텐츠3에 대한 벡터값은 (0.222, 0.699, 0.397)이 된다.In an embodiment, the viewing history vector value for each content may be calculated as (1+log(total viewing time/running time of the corresponding content)). For example, if user A watches content 1 for 30 minutes, watches content 2 for 20 minutes, and does not watch content 3, user A's vector values for content 1, content 2, and content 3 are (0.699, 1, 0). When user B watches content 1 for 10 minutes, content 2 for 10 minutes, and content 3 for 10 minutes, user B's vector values for content 1, content 2, and content 3 are (0.222, 0.699, 0.397) ) becomes

다른 실시예에서, 각 콘텐츠에 대한 시청 이력 벡터 값은 (1+log(총 시청 시간/해당 콘텐츠의 러닝 타임)+log(1/시청 횟수))로 계산될 수 있다. 이때, 음수가 되는 경우 0으로 설정한다. 예를 들어, 사용자 A가 콘텐츠1을 1회 총 30분 시청하고, 콘텐츠2를 2회 총 20분 시청하며, 콘텐츠3은 시청하지 않은 경우, 사용자 A의 콘텐츠1, 콘텐츠2 및 콘텐츠3에 대한 벡터값은 (0.699, 0.699, 0)이 된다. 사용자 B가 콘텐츠1을 1회 총 10분 시청하고, 콘텐츠2를 2회 총 10분 시청하며, 콘텐츠3을 2회 총 10분 시청한 경우, 사용자 B의 콘텐츠1, 콘텐츠2 및 콘텐츠3에 대한 벡터값은 (0.222, 0.397, 0)이 된다.In another embodiment, the viewing history vector value for each content may be calculated as (1+log(total viewing time/running time of the corresponding content)+log(1/number of views)). At this time, if it becomes a negative number, it is set to 0. For example, if user A watches content 1 once for a total of 30 minutes, content 2 twice for a total of 20 minutes, and does not watch content 3, user A's The vector value becomes (0.699, 0.699, 0). If user B views Content 1 once for a total of 10 minutes, Content 2 twice for a total of 10 minutes, and Content 3 twice for a total of 10 minutes, User B's The vector value becomes (0.222, 0.397, 0).

또 다른 실시예에서, 각 콘텐츠에 대한 시청 이력 벡터 값은 (1+log(총 시청 시간/해당 콘텐츠의 러닝 타임)+log(α/시청 횟수))로 계산될 수 있다. 이때, 음수가 되는 경우 0으로 설정하고, α는 콘텐츠의 러닝 타임에 비례하여 결정한다. 예를 들어, 콘텐츠의 길이가 10분 미만인 경우, α=1이 되고, 콘텐츠의 길이가 10~30분인 경우 α=2가 되며, 30분을 초과하는 경우 α=3이 될 수 있다. In another embodiment, the viewing history vector value for each content may be calculated as (1+log(total viewing time/running time of the corresponding content)+log(α/number of views)). At this time, if it becomes a negative number, it is set to 0, and α is determined in proportion to the running time of the content. For example, when the length of the content is less than 10 minutes, α=1, when the length of the content is 10 to 30 minutes, α=2, and when it exceeds 30 minutes, α=3.

다음으로, 콘텐츠 구매 이력은, 각 콘텐츠에 대한 사용자의 구매 여부 및 구매 금액에 기초하여 벡터 값을 산출할 수 있다. 일 실시예에서, 특정 콘텐츠를 구매한 경우 해당 특정 콘텐츠에 대한 벡터 값은 1이고 미구매한 경우 0이다. 다른 실시예에서, 사용자가 구매한 콘텐츠의 금액과 해당 콘텐츠를 구매한 전체 사용자의 전체 평균 금액 및 분산을 통하여 Z-Score 정규화(Normalization)한 값이 각 콘텐츠의 벡터 값일 수 있다. Next, the content purchase history may calculate a vector value based on whether the user purchases each content and the purchase amount. In an embodiment, a vector value for the specific content is 1 when the specific content is purchased, and 0 when the specific content is not purchased. In another embodiment, a value obtained by normalizing the Z-Score through the amount of content purchased by the user and the total average amount and variance of all users who purchased the content may be a vector value of each content.

다음으로, 콘텐츠 별점 이력은, 각 콘텐츠에 대한 사용자의 별점(즉, 점수로서 별 1개부터 4개 등의 방식으로 부여한 점수)에 기초하여 벡터 값을 산출할 수 있다. 일 실시예에서, 각 콘텐츠에 대해 사용자가 부여한 별점 점수를 그대로 벡터 값으로 할 수 있다. 다른 실시예에서, 각 콘텐츠에 대해 사용자가 부여한 별점을 각 콘텐츠에 대해 전체 사용자가 부여한 별점의 전체 평균 및 분산을 통하여 Z-Score 정규화(Normalization)한 값이 각 콘텐츠의 벡터 값일 수 있다. Next, for the content star rating history, a vector value may be calculated based on the user's star rating for each content (ie, a score given by a method such as 1 to 4 stars as a score). In an embodiment, the star score given by the user for each content may be used as a vector value as it is. In another embodiment, a Z-Score normalization value obtained by normalizing the star points given by the user to each content through the overall average and variance of the star points given by all users to each content may be a vector value of each content.

마지막으로, 콘텐츠 발화 이력은, 기가지니와 같은 인공지능 기기, 또는 스마트폰 등과 같이 음성인식 서비스를 제공하는 모바일 단말에서 사용자가 발화한 대화 이력 중 콘텐츠 검색/추천 이력일 수 있다. 여기서의 대화 이력은 콘텐츠 서비스 서버(110)에서의 콘텐츠 검색뿐만 아니라, 다른 콘텐츠 서버, 예를 들어 유투브에서의 콘텐츠 검색/추천, 지니뮤직과 같은 음원 서버를 이용하기 위한 콘텐츠 검색/추천 등을 포함한다. 각 콘텐츠에 대한 사용자의 발화 횟수를 그대로 벡터 값으로 산출할 수 있다. Finally, the content utterance history may be a content search/recommendation history among conversation histories uttered by a user in an artificial intelligence device such as GiGA Genie or a mobile terminal that provides a voice recognition service such as a smart phone. Here, the conversation history includes not only content search in the content service server 110, but also content search/recommendation in other content servers, for example, YouTube, content search/recommendation for using a sound source server such as Genie Music, etc. do. The number of utterances of the user for each content may be calculated as a vector value as it is.

통합 추천 모델 생성부(230)는, 딥러닝 등의 신경망 기반으로 전체 사용자에 적용되는 통합 추천 모델을 생성하는데 있어서, 시청, 구매, 별점 및 발화 이력의 수치화된 벡터 값 이외, 사용자가 이용한 콘텐츠의 메타데이터를 더 사용할 수도 있다. 또한, 통합 추천 모델 생성부(230)는, 전체 사용자의 사용자 단말(120)의 종류별(예, 셋탑박스, 모바일 단말 등)로 각각 추천 모델을 생성하여 이들을 병합하여 통합 추천 모델을 생성할 수 있고, 또는 콘텐츠 이용 이력의 종류별로, 즉 시청 이력, 구매 이력, 별점 이력, 발화 이력별로 각각 추천 모델을 생성하여 이들을 병합하여 통합 추천 모델을 생성할 수도 있다.The integrated recommendation model generation unit 230 generates an integrated recommendation model applied to all users based on a neural network such as deep learning, in addition to the digitized vector values of viewing, purchase, star rating, and speech history, the content used by the user You can also use more metadata. In addition, the integrated recommendation model generator 230 may generate a recommendation model for each type of user terminal 120 of all users (eg, set-top box, mobile terminal, etc.) and merge them to create an integrated recommendation model, , or by each type of content use history, that is, a viewing history, a purchase history, a star rating history, and a speech history, respectively, a recommendation model may be generated and merged to create an integrated recommendation model.

오프셋 추천 모델 생성부(240)는, 상기 통합 추천 모델로부터 파생하여 각 사용자별 오프셋 추천 모델을 생성한다. 구체적으로, 오프셋 추천 모델 생성부(240)는, 상기 통합 추천 모델을 통한 각 사용자별 콘텐츠 추천 결과와, 각 사용자별 콘텐츠 이용 이력의 차이를 산출하고 그 차이에 반영하여 상기 통합 추천 모델로부터 각 사용자별 오프셋 추천 모델을 생성한다. 즉, 각 사용자별로 시청, 구매, 별점, 발화 이력이 평균적인 사용자와 얼마나 다른지 여부에 기초하여 통합 추천 모델로부터 각 사용자의 오프셋 추천 모델을 생성하는 것이다. 이때의 차이는 콘텐츠 이용 이력의 벡터 간의 거리 차이 또는 유사도를 의미한다. 오프셋 추천 모델 생성부(240)는, 각 사용자의 콘텐츠 이용 이력을 수집하는데 있어 M(M은 자연수)일 간의 이력을 수집한다. 오프셋 추천 모델 생성부(240)는, 각 사용자별로 통합 추천 모델로부터 한 번만 오프셋 추천 모델을 생성한다. The offset recommendation model generator 240 generates an offset recommendation model for each user derived from the integrated recommendation model. Specifically, the offset recommendation model generation unit 240 calculates a difference between a content recommendation result for each user through the integrated recommendation model and a content use history for each user, and reflects the difference to each user from the integrated recommendation model. Create a star offset recommendation model. That is, the offset recommendation model of each user is generated from the integrated recommendation model based on how different the viewing, purchasing, star rating, and speech history for each user is from the average user. In this case, the difference means a distance difference or similarity between vectors of content use histories. The offset recommendation model generator 240 collects a history for M (M is a natural number) days in collecting each user's content use history. The offset recommendation model generator 240 generates an offset recommendation model only once from the integrated recommendation model for each user.

서비스 제공부(220)가, 사용자들이 서비스를 이용할 때마다 각 사용자별 오프셋 추천 모델을 이용하여 각 사용자들에게 콘텐츠 추천 리스트를 생성하게 되면, 많은 컴퓨팅 자원이 필요하고, 따라서 콘텐츠 추천을 하는데 많은 시간이 소요된다. 그러나, 본 실시예와 같이 콘텐츠 서비스 서버(110)에서는 전체 사용자에 공통으로 사용하는 통합 추천 모델을 통해 평균적인 콘텐츠 추천 리스트만을 생성하고, 각 사용자별로 개인 특성에 맞는 콘텐츠 추천 연산은 각 사용자의 사용자 단말(120)에서 이루어져, 콘텐츠 추천을 위한 컴퓨팅 자원을 각 사용자에게 분산한 것과 같은 효과를 나타내어, 개인 특성에 맞는 콘텐츠를 빠르게 추천할 수 있다.When the service provider 220 generates a content recommendation list for each user using an offset recommendation model for each user whenever users use a service, a lot of computing resources are required, and thus a lot of time is required to recommend content. This takes However, as in the present embodiment, the content service server 110 generates only an average content recommendation list through an integrated recommendation model commonly used for all users, and the content recommendation calculation suitable for individual characteristics of each user is performed for each user. It is made in the terminal 120 and has the same effect as distributing computing resources for content recommendation to each user, so that content suitable for individual characteristics can be quickly recommended.

도 3은 본 발명의 일 실시예에 따른 사용자 단말의 구성을 나타낸 도면이다. 사용자 단말(120)은, 메모리, 메모리 제어기, 하나 이상의 프로세서(CPU), 주변 인터페이스, 입출력(I/O) 서브시스템, 디스플레이 장치, 입력 장치 및 통신 회로를 포함할 수 있다. 메모리는 고속 랜덤 액세스 메모리를 포함할 수 있고, 또한 하나 이상의 자기 디스크 저장 장치, 플래시 메모리 장치와 같은 불휘발성 메모리, 또는 다른 불휘발성 반도체 메모리 장치를 포함할 수 있다. 프로세서 및 주변 인터페이스와 같은 다른 구성요소에 의한 메모리로의 액세스는 메모리 제어기에 의하여 제어될 수 있다. 메모리는 각종 정보와 프로그램 명령어를 저장할 수 있고, 프로그램은 프로세서에 의해 실행된다. 주변 인터페이스는 입출력 주변 장치를 프로세서 및 메모리와 연결한다. 하나 이상의 프로세서는 다양한 소프트웨어 프로그램 및/또는 메모리에 저장되어 있는 명령어 세트를 실행하여 시스템을 위한 여러 기능을 수행하고 데이터를 처리한다. I/O 서브시스템은 디스플레이 장치, 입력 장치와 같은 입출력 주변장치와 주변 인터페이스 사이에 인터페이스를 제공한다. 통신 회로는 외부 포트를 통한 통신 또는 RF 신호에 의한 통신을 수행한다. 통신 회로는 전기 신호를 RF 신호로 또는 그 반대로 변환하며 이 RF 신호를 통하여 통신 네트워크, 다른 이동형 게이트웨이 장치 및 통신 장치와 통신할 수 있다. 도 3을 참조하면 사용자 단말(120)은, 통신부(310), 입력부(320), 서비스부(330), 추천부(340) 및 공유부(350)를 포함한다. 이들 구성요소는 프로그램으로 구현되어 메모리에 저장되고 프로세서에 의해 실행될 수 있고, 또는 하드웨어와 소프트웨어의 조합으로 구현되어 동작할 수 있다. 3 is a diagram showing the configuration of a user terminal according to an embodiment of the present invention. The user terminal 120 may include a memory, a memory controller, one or more processors (CPU), a peripheral interface, an input/output (I/O) subsystem, a display device, an input device, and a communication circuit. The memory may include high-speed random access memory, and may also include one or more magnetic disk storage devices, non-volatile memories such as flash memory devices, or other non-volatile semiconductor memory devices. Access to the memory by other components, such as the processor and peripheral interfaces, may be controlled by the memory controller. The memory may store various kinds of information and program instructions, and the program is executed by the processor. Peripheral interfaces connect the I/O peripherals to the processor and memory. One or more processors execute various software programs and/or sets of instructions stored in memory to perform various functions for the system and process data. The I/O subsystem provides an interface between input/output peripherals such as display devices and input devices and the peripheral interface. The communication circuit performs communication through an external port or communication by an RF signal. The communication circuitry converts electrical signals into RF signals and vice versa through which the RF signals can communicate with communication networks, other mobile gateway devices, and communication devices. Referring to FIG. 3 , the user terminal 120 includes a communication unit 310 , an input unit 320 , a service unit 330 , a recommendation unit 340 , and a sharing unit 350 . These components may be implemented as a program, stored in a memory, and executed by a processor, or may be implemented and operated as a combination of hardware and software.

통신부(310)는, 콘텐츠 서비스 서버(110)와 통신하여 각종 데이터를 송수신한다. 통신부(310)는, 상기 콘텐츠 서비스 서버(110)에서 학습된 통합 추천 모델로부터 파생된 사용자의 오프셋 추천 모델을 수신한다. 또한, 통신부(310)는, 상기 오프셋 추천 모델을 수신할 때 콘텐츠 서비스 서버(110)로부터 통합 추천 모델에서 생성된 콘텐츠 추천 리스트를 함께 수신하고, 또한 주기적으로 콘텐츠 서비스 서버(110)로부터 통합 추천 모델에서 생성된 콘텐츠 추천 리스트를 수신한다.The communication unit 310 communicates with the content service server 110 to transmit and receive various data. The communication unit 310 receives the user's offset recommendation model derived from the integrated recommendation model learned from the content service server 110 . In addition, the communication unit 310 receives the content recommendation list generated from the integrated recommendation model from the content service server 110 together when receiving the offset recommendation model, and also periodically receives the integrated recommendation model from the content service server 110 . Receive a content recommendation list created in .

입력부(320)는 입력 장치, 예를 들어, 마우스, 또는 터치 스크린, 또는 리모콘, 또는 마이크 등으로부터 콘텐츠 이용을 위한 입력을 수신한다. 예를 들어, 상기 콘텐츠 추천 리스트에서 특정 콘텐츠의 선택 입력을 음성으로 또는 리모콘 등을 통해 수신할 수 있다. 또는 입력부(320)는, 콘텐츠 서비스 서버(110)로부터 수신되는 검색 입력창을 통해 사용자로부터 콘텐츠 검색을 위한 키워드를 수신할 수도 있고, 또는 메뉴 검색을 위한 입력을 수신할 수도 있다. The input unit 320 receives an input for using content from an input device, for example, a mouse, a touch screen, a remote control, or a microphone. For example, a selection input of a specific content from the content recommendation list may be received by voice or through a remote controller. Alternatively, the input unit 320 may receive a keyword for content search from the user through the search input window received from the content service server 110 , or may receive an input for menu search.

서비스부(330)는, 통신부(310)를 통해 콘텐츠 서비스 서버(110)로부터 데이터를 수신하여 디스플레이 장치에 표시한다. 각종 UI(User Interface)를 표시할 수 있고, 또한 콘텐츠 서비스 서버(110)로부터 스트리밍되는 콘텐츠를 재생하여 디스플레이 장치에 표시한다. 서비스부(330)는 상기 입력부(320)를 통해 수신된 사용자 입력에 기초하여 통신부(310)를 통해 콘텐츠 서비스 서버(110)로 콘텐츠를 요청하고 이에 대응하는 콘텐츠를 수신한다. The service unit 330 receives data from the content service server 110 through the communication unit 310 and displays it on the display device. Various user interfaces (UIs) can be displayed, and content streamed from the content service server 110 is reproduced and displayed on the display device. The service unit 330 requests content from the content service server 110 through the communication unit 310 based on the user input received through the input unit 320 and receives the corresponding content.

추천부(340)는, 상기 통신부(310)를 통해 콘텐츠 서비스 서버(110)로부터 수신되는 사용자의 오프셋 추천 모델을 저장부에 저장하고, 오프셋 추천 모델을 기초로 콘텐츠 추천 리스트를 생성하여 상기 서비스부(330)로 전달하여 디스플레이 장치에 표시되도록 한다. 바람직하게, 추천부(340)는, 상기 콘텐츠 서비스 서버(110)로부터 수신된 통합 추천 모델에 의해 생성된 콘텐츠 추천 리스트를 상기 오프셋 추천 모델에 기초하여 필터링 및 재정렬한다. 추천부(340)는, 상기 콘텐츠 추천 리스트를 오프셋 추천 모델에 입력하고, 오프셋 추천 모델은 콘텐츠 추천 리스트의 각 콘텐츠의 순위를 재산출하여 콘텐츠를 재정렬한다. 이때 추천부(340)는 재정렬된 콘텐츠의 순위 중 임계치 미만의 순위를 갖는 콘텐츠는 추천 대상에서 제외할 수 있다. The recommendation unit 340 stores the user's offset recommendation model received from the content service server 110 through the communication unit 310 in the storage unit, generates a content recommendation list based on the offset recommendation model, and the service unit It is transmitted to 330 to be displayed on the display device. Preferably, the recommendation unit 340 filters and rearranges the content recommendation list generated by the integrated recommendation model received from the content service server 110 based on the offset recommendation model. The recommendation unit 340 inputs the content recommendation list to an offset recommendation model, and the offset recommendation model re-calculates the ranking of each content in the content recommendation list to rearrange the contents. In this case, the recommendation unit 340 may exclude content having a rank lower than the threshold among the reordered content ranks from the recommendation target.

추천부(340)는, 상기 입력부(320)를 통해 입력되는 사용자의 콘텐츠 이용 이력을 저장부에 저장하고, 콘텐츠 이용 이력을 기초로 상기 오프셋 추천 모델을 갱신한다. 오프셋 추천 모델은 콘텐츠 서비스 서버(110)에서 이미 한 번 사용자의 콘텐츠 이용 이력을 이용하여 학습된 상태이고, 추천부(340)는 사용자 단말(120)에서 추가로 사용자의 새로운 콘텐츠 이용 이력을 이용하여 오프셋 추천 모델을 갱신한다. 추천부(340)는, 일정한 주기마다 오프셋 추천 모델을 갱신할 수 있고, 또는 사용자의 입력에 따라 오프셋 추천 모델을 갱신할 수 있다. The recommendation unit 340 stores the user's content use history input through the input unit 320 in the storage unit, and updates the offset recommendation model based on the content use history. The offset recommendation model is already learned by using the user's content use history once in the content service server 110 , and the recommender 340 uses the user's new content use history in the user terminal 120 additionally. Update the offset recommendation model. The recommendation unit 340 may update the offset recommendation model at regular intervals, or may update the offset recommendation model according to a user's input.

공유부(350)는, 사용자가 보유한 사용자 단말(120)들의 정보를 저장부에 저장하고, 상기 오프셋 추천 모델을 사용자가 보유한 다른 사용자 단말(120)로 전송하여 공유할 수 있다. 공유부(350)는, 다른 사용자 단말(120)가 상태 정보를 주기적으로 공유할 수 있다. 여기서 상태 정보는 오프셋 추천 모델의 갱신 시간, 컴퓨팅 환경(예, CPU 사용율, 메모리 사용율 등) 등을 포함할 수 있다. 공유부(350)는, 오프셋 추천 모델이 갱신되었을 때, 다른 사용자 단말(120)로 전송하여 공유한다.The sharing unit 350 may store information of the user terminals 120 owned by the user in the storage unit, and transmit and share the offset recommendation model to other user terminals 120 possessed by the user. The sharing unit 350 may periodically share status information with other user terminals 120 . Here, the state information may include an update time of the offset recommendation model, a computing environment (eg, CPU usage rate, memory usage rate, etc.). When the offset recommendation model is updated, the sharing unit 350 transmits and shares it to another user terminal 120 .

공유부(350)는, 사용자 단말(120)의 컴퓨팅 환경이 좋지 않은 경우, 예를 들어 CPU의 부하가 임계치 이상일 때, 상기 콘텐츠 이용 이력을 컴퓨팅 환경이 좋은 다른 사용자 단말(120)로 전송하여 해당 다른 사용자 단말(120)에서 오프셋 추천 모델을 갱신하는데 사용할 수 있도록 한다. 또한, 공유부(350)는, 상기 추천부(340)에서 오프셋 추천 모델의 갱신을 시작하기 전에, 다른 사용자 단말(120)로 갱신 예정임을 통보하여, 다른 사용자 단말(120)로 갱신된 오프셋 추천 모델이 공유될 때까지 오프셋 추천 모델의 갱신을 중지시킬 수 있다. Sharing unit 350, when the computing environment of the user terminal 120 is not good, for example, when the load of the CPU is above a threshold, the content usage history is transmitted to the other user terminal 120 having a good computing environment and the corresponding It can be used to update the offset recommendation model in other user terminals 120 . Also, before the recommendation unit 340 starts updating the offset recommendation model, the sharing unit 350 notifies the other user terminal 120 that the update is scheduled, and recommends the updated offset to the other user terminal 120 . The update of the offset recommendation model may be stopped until the model is shared.

도 4는 본 발명의 일 실시예에 따른 콘텐츠 서비스 시스템에서 콘텐츠를 추천하는 방법을 설명하는 흐름도이다.4 is a flowchart illustrating a method of recommending content in a content service system according to an embodiment of the present invention.

도 4를 참조하면, 단계 S401에서, 콘텐츠 서비스 서버(110)는, 딥러닝 등의 신경망 기반으로 전체 사용자에 적용되는 통합 추천 모델을 생성한다. 콘텐츠 서비스 서버(110)는, 전체 사용자들의 개인 정보와 전체 사용자들의 콘텐츠 이용 이력을 학습 데이터로 이용하여 신경망을 학습함으로써 통합 추천 모델을 생성한다. 신경망의 예로서 컨볼루션 신경망(CNN : Convolutional Neural Network)을 들 수 있으나 여기에 제한되는 것은 아니다. 여기서 콘텐츠 이용 이력은 사용자의 발화, 시청, 구매, 별점 정보 중 적어도 하나이다. 여기서의 개인 정보는 콘텐츠 이용 이력을 통하여 추출된 개인의 선호 정보를 포함할 수 있다. 예를 들어, 개인 선호 정보는 사용자의 콘텐츠 이용 이력을 통해 추출되는 선호 장르, 선호 인물(감독, 배우 등), 선호 토픽, 선호 시간적/공간적 배경 등이 될 수 있다.Referring to FIG. 4 , in step S401 , the content service server 110 generates an integrated recommendation model applied to all users based on a neural network such as deep learning. The content service server 110 generates an integrated recommendation model by learning the neural network using personal information of all users and content use histories of all users as learning data. An example of the neural network may include, but is not limited to, a convolutional neural network (CNN). Here, the content use history is at least one of the user's speech, viewing, purchase, and star rating information. Here, the personal information may include personal preference information extracted through the content use history. For example, the personal preference information may be a preferred genre, preferred person (director, actor, etc.), preferred topic, preferred temporal/spatial background, etc. extracted through the user's content use history.

구체적으로, 콘텐츠 서비스 서버(110)는, N일(N은 자연수) 동안의 전체 사용자들의 콘텐츠 이용 이력을 수집하고, 그 수집된 콘텐츠 이용 이력과, 전체 사용자드의 개인 정보를 학습 데이터로서 신경망에 입력하여 통합 추천 모델을 생성한다. 예를 들어, 사용자1이 N일 동안 이용한 콘텐츠 이용 이력을 수집하고, 사용자1의 개인 정보인 개인 선호 정보와, 해당 사용자1의 콘텐츠 이용 이력을 신경망에 입력을 하는 방식으로, 전체 사용자의 개인 정보와 콘텐츠 이용 이력을 신경망에 입력하여 신경망을 학습한다. 따라서 전체 사용자들에 공통으로 적용할 수 있는 신경망 기반의 통합 추천 모델이 생성된다. 일반적으로 신경망은 입력층(input layer), 은닉층(hidden layer), 및 출력층(output layer)의 3가지 층으로 구성되고 각 층들은 노드들로 구성된다. 통합 추천 모델은 이러한 신경망의 각 노드 간의 가중치로 이해할 수 있다.Specifically, the content service server 110 collects the content use history of all users for N days (N is a natural number), and stores the collected content use history and personal information of all users as learning data in the neural network. Input to create an integrated recommendation model. For example, by collecting the content usage history that User 1 used for N days, and inputting the personal preference information, which is the personal information of User 1, and the content use history of the corresponding User 1 to the neural network, the personal information of all users and content usage history are input into the neural network to learn the neural network. Therefore, a neural network-based integrated recommendation model that can be commonly applied to all users is created. In general, a neural network is composed of three layers: an input layer, a hidden layer, and an output layer, and each layer is composed of nodes. The unified recommendation model can be understood as a weight between each node of such a neural network.

단계 S402에서, 콘텐츠 서비스 서버(110)는 학습된 통합 추천 모델에 각 사용자의 개인 정보를 입력하여, 각 사용자에 대한 추천 콘텐츠 리스트를 생성한다. 전체 사용자들의 개인 정보와 콘텐츠 이용 이력을 이용하여 통합 추천 모델이 학습되었으므로, 각 사용자의 개인 정보와 유사한 개인 정보들을 갖고 있는 다른 사용자들이 이용한 콘텐츠 이용 이력에 기초하여 각 사용자가 좋아할만한 콘텐츠들의 리스트가 추천되는 것이다.In step S402, the content service server 110 inputs each user's personal information into the learned integrated recommendation model to generate a recommended content list for each user. Since the integrated recommendation model is trained using all users' personal information and content use histories, a list of content that each user may like is generated based on the content use histories used by other users who have personal information similar to each user's personal information. it will be recommended

단계 S403에서, 콘텐츠 서비스 서버(110)는, 상기 통합 추천 모델로부터 파생하여 각 사용자별 오프셋 추천 모델을 생성한다. 구체적으로, 콘텐츠 서비스 서버(110)는, 상기 통합 추천 모델을 통한 각 사용자별 콘텐츠 추천 결과와, 각 사용자별 콘텐츠 이용 이력의 차이를 산출하고 그 차이에 반영하여 상기 통합 추천 모델로부터 각 사용자별 오프셋 추천 모델을 생성한다. 즉, 각 사용자별로 시청, 구매, 별점, 발화 이력이 평균적인 사용자와 얼마나 다른지 여부에 기초하여 통합 추천 모델로부터 각 사용자의 오프셋 추천 모델을 생성하는 것이다. 이때의 차이는 콘텐츠 이용 이력의 벡터 간의 거리 차이 또는 유사도를 의미한다. 콘텐츠 서비스 서버(110)는, 각 사용자의 콘텐츠 이용 이력을 수집하는데 있어 M(M은 자연수)일 간의 이력을 수집한다. 오프셋 추천 모델 생성부(240)는, 각 사용자별로 통합 추천 모델로부터 한 번만 오프셋 추천 모델을 생성한다. In step S403, the content service server 110 generates an offset recommendation model for each user derived from the integrated recommendation model. Specifically, the content service server 110 calculates the difference between the content recommendation result for each user and the content use history for each user through the integrated recommendation model, and reflects the difference to the offset for each user from the integrated recommendation model. Create a recommendation model. That is, the offset recommendation model of each user is generated from the integrated recommendation model based on how different the viewing, purchasing, star rating, and speech histories for each user are from the average user. In this case, the difference means a distance difference or similarity between vectors of content use histories. The content service server 110 collects the history for M (M is a natural number) days in collecting the content use history of each user. The offset recommendation model generator 240 generates an offset recommendation model only once from the integrated recommendation model for each user.

단계 S404 및 단계 S405에서, 콘텐츠 서비스 서버(110)는, 단계 S402에서 생성한 각 사용자별 콘텐츠 추천 리스트와 단계 S403에서 생성한 각 사용자별 오프셋 추천 모델을 각 사용자 단말(120)로 전송한다. In steps S404 and S405 , the content service server 110 transmits the content recommendation list for each user generated in step S402 and the offset recommendation model for each user generated in step S403 to each user terminal 120 .

단계 S406에서, 사용자 단말1(120)은 수신된 오프셋 추천 모델을 저장부에 저장하고, 오프셋 추천 모델을 기초로 상기 함께 수신된 콘텐츠 추천 리스트를 필터링 및 재정렬하여 사용자에게 콘텐츠를 추천한다. 사용자 단말1(120)은 상기 콘텐츠 추천 리스트를 오프셋 추천 모델에 입력하고, 오프셋 추천 모델은 콘텐츠 추천 리스트의 각 콘텐츠의 순위를 재산출하여 콘텐츠를 재정렬한다. 이때 사용자 단말1(120)은 재정렬된 콘텐츠의 순위 중 임계치 미만의 순위를 갖는 콘텐츠는 추천 대상에서 제외할 수 있다. In step S406, the user terminal 1 120 stores the received offset recommendation model in the storage unit, and recommends content to the user by filtering and rearranging the received content recommendation list based on the offset recommendation model. The user terminal 1 120 inputs the content recommendation list into an offset recommendation model, and the offset recommendation model re-calculates the rank of each content in the content recommendation list to rearrange the contents. In this case, the user terminal 1 120 may exclude content having a rank lower than the threshold among the reordered contents from the recommendation target.

단계 S407에서, 사용자 단말1(120)은 사용자의 입력에 따라 콘텐츠 서비스 서버(110)로 콘텐츠를 요청하고 이에 따라 수신되는 콘텐츠를 수신할 수 있다. 사용자 단말1(120)은 사용자의 콘텐츠 이용 이력을 저장부에 저장한다. In step S407, the user terminal 1 120 may request the content from the content service server 110 according to the user's input, and receive the received content accordingly. The user terminal 1 120 stores the user's content use history in the storage unit.

단계 S408에서, 사용자 단말1(120)은 일정한 시간이 경과하면, 저장부에 저장된 사용자의 콘텐츠 이용 이력을 기초로 오프셋 추천 모델을 갱신한다. 오프셋 추천 모델은 콘텐츠 서비스 서버(110)에서 이미 한 번 사용자의 콘텐츠 이용 이력을 이용하여 학습된 상태이고, 사용자 단말1(120)은 추가로 사용자의 새로운 콘텐츠 이용 이력을 이용하여 오프셋 추천 모델을 갱신하는 것이다. 사용자 단말1(120)은, 일정한 주기마다 오프셋 추천 모델을 갱신할 수 있고, 또는 사용자의 입력에 따라 오프셋 추천 모델을 갱신할 수 있다.In step S408, when a predetermined time elapses, the user terminal 1 120 updates the offset recommendation model based on the user's content use history stored in the storage unit. The offset recommendation model has already been learned by the content service server 110 once using the user's content use history, and the user terminal 1 120 additionally updates the offset recommendation model using the user's new content use history. will do The user terminal 1 120 may update the offset recommendation model at regular intervals, or may update the offset recommendation model according to a user's input.

단계 S409에서, 사용자 단말1(120)은, 상기 갱신된 오프셋 추천 모델을 사용자가 보유한 다른 사용자 단말n(120)로 전송하여 공유할 수 있다. 다른 실시예에서, 사용자가 보유한 사용자 단말들(120)은 다른 사용자 단말(120)과 상태 정보를 주기적으로 공유할 수 있다. 여기서 상태 정보는 오프셋 추천 모델의 갱신 시간, 컴퓨팅 환경(예, CPU 사용율, 메모리 사용율 등) 등을 포함할 수 있다. 사용자 단말(120)은 컴퓨팅 환경이 좋지 않은 경우, 예를 들어 CPU의 부하가 임계치 이상일 때, 콘텐츠 이용 이력을 컴퓨팅 환경이 좋은 다른 사용자 단말(120)로 전송하여 해당 다른 사용자 단말(120)에서 오프셋 추천 모델을 갱신하는데 사용할 수 있도록 한다. 또한, 사용자 단말(120)은, 오프셋 추천 모델의 갱신을 시작하기 전에, 다른 사용자 단말(120)로 갱신 예정임을 통보하여, 다른 사용자 단말(120)로 갱신된 오프셋 추천 모델이 공유될 때까지 오프셋 추천 모델의 갱신을 중지시킬 수 있다. In step S409, user terminal 1 120 may transmit and share the updated offset recommendation model to another user terminal n 120 owned by the user. In another embodiment, the user terminals 120 owned by the user may periodically share status information with other user terminals 120 . Here, the state information may include an update time of the offset recommendation model, a computing environment (eg, CPU usage rate, memory usage rate, etc.). When the computing environment is not good, for example, when the load of the CPU is greater than or equal to a threshold, the user terminal 120 transmits the content usage history to the other user terminal 120 having a good computing environment to offset from the other user terminal 120 . Make it usable to update the recommendation model. In addition, the user terminal 120, before starting the update of the offset recommendation model, by notifying other user terminals 120 that the update is scheduled, the offset until the updated offset recommendation model is shared with other user terminals 120 The update of the recommendation model can be stopped.

이상과 같은 본 발명의 실시예에 따르면, 콘텐츠 서비스 서버(110)에서 전체 사용자를 대상으로 한 통합 추천 모델을 모델링을 한 후 이로부터 파생하여 각 사용자 개인별 콘텐츠 이용 이력을 기초로 각 사용자별로 오프셋 콘텐츠 추천 모델을 생성하여 각 사용자 단말(120)에 전송하고, 각 사용자 단말(120)에서는 오프셋 추천 모델을 통해 콘텐츠를 추천함으로써 콘텐츠를 추천하는데 필요한 컴퓨팅 자원을 분산하여 빠른 시간과 적은 비용으로 개인의 특성에 맞는 콘텐츠를 추천할 수 있다. According to the embodiment of the present invention as described above, the content service server 110 models the integrated recommendation model for all users and then derives it from the offset content for each user based on the content usage history for each user. A recommendation model is generated and transmitted to each user terminal 120, and each user terminal 120 recommends the content through the offset recommendation model, thereby distributing the computing resources required to recommend the content, quickly and at low cost. We can recommend content that suits you.

또한, 본 발명은 각 사용자 단말(120)에서 통합 추천 모델에서 추천한 콘텐츠 추천 리스트 범위 내에서 오프셋 추천 모델이 사용자의 특성에 맞는 콘텐츠를 추천하기 때문에 오프셋 추천 모델을 통합 추천 모델보다 경량화하여 제작하면 되므로 콘텐츠 서비스 서버(110)에 비해 컴퓨팅 환경이 좋지 않은 사용자 단말(120)에서 많은 연산을 하지 않아 자원 사용에 효율적이며 콘텐츠 추천에 소요되는 시간을 절약할 수 있다. In addition, in the present invention, since the offset recommendation model recommends content suitable for the characteristics of the user within the range of the content recommendation list recommended by the integrated recommendation model in each user terminal 120, the offset recommendation model is lighter than the integrated recommendation model. Therefore, compared to the content service server 110, the user terminal 120, which has a poor computing environment, does not perform many calculations, so it is efficient to use resources and saves time required for content recommendation.

또한, 본 발명은 사용자가 복수의 사용자 단말(120)을 사용하는 경우 특정 사용자 단말에서 갱신된 오프셋 추천 모델을 다른 사용자 단말로 공유할 수 있도록 하여 동일한 콘텐츠 서비스를 복수의 사용자 단말에서 일관되게 개인의 특성에 맞게 이용할 수 있도록 한다. In addition, in the present invention, when a user uses a plurality of user terminals 120, the offset recommendation model updated in a specific user terminal can be shared with other user terminals so that the same content service can be consistently provided in a plurality of user terminals. Make it available according to your characteristics.

본 명세서는 많은 특징을 포함하는 반면, 그러한 특징은 본 발명의 범위 또는 특허청구범위를 제한하는 것으로 해석되어서는 안 된다. 또한, 본 명세서에서 개별적인 실시예에서 설명된 특징들은 단일 실시예에서 결합되어 구현될 수 있다. 반대로, 본 명세서에서 단일 실시예에서 설명된 다양한 특징들은 개별적으로 다양한 실시예에서 구현되거나, 적절히 결합되어 구현될 수 있다.While this specification contains many features, such features should not be construed as limiting the scope of the invention or the claims. Also, features described in individual embodiments herein may be implemented in combination in a single embodiment. Conversely, various features described herein in a single embodiment may be implemented in various embodiments individually, or may be implemented in appropriate combination.

도면에서 동작들이 특정한 순서로 설명되었으나, 그러한 동작들이 도시된 바와 같은 특정한 순서로 수행되는 것으로, 또는 일련의 연속된 순서, 또는 원하는 결과를 얻기 위해 모든 설명된 동작이 수행되는 것으로 이해되어서는 안 된다. 특정 환경에서 멀티태스킹 및 병렬 프로세싱이 유리할 수 있다. 아울러, 상술한 실시예에서 다양한 시스템 구성요소의 구분은 모든 실시예에서 그러한 구분을 요구하지 않는 것으로 이해되어야 한다. 상술한 프로그램 구성요소 및 시스템은 일반적으로 단일 소프트웨어 제품 또는 멀티플 소프트웨어 제품에 패키지로 구현될 수 있다.Although acts have been described in the drawings in a specific order, it should not be understood that the acts are performed in the specific order as shown, or that all of the described acts are performed in a continuous order, or to obtain a desired result. . Multitasking and parallel processing can be advantageous in certain circumstances. In addition, it should be understood that the division of various system components in the above-described embodiments does not require such division in all embodiments. The program components and systems described above may generally be implemented as a package in a single software product or multiple software products.

상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 형태로 기록매체(시디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다. 이러한 과정은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있으므로 더 이상 상세히 설명하지 않기로 한다.The method of the present invention as described above may be implemented as a program and stored in a computer-readable form in a recording medium (CD-ROM, RAM, ROM, floppy disk, hard disk, magneto-optical disk, etc.). Since this process can be easily performed by a person skilled in the art to which the present invention pertains, it will not be described in detail any more.

이상에서 설명한 본 발명은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다.The present invention described above, for those of ordinary skill in the art to which the present invention pertains, various substitutions, modifications and changes are possible without departing from the technical spirit of the present invention. It is not limited by the drawing.

110 : 콘텐츠 서비스 서버
120 : 사용자 단말
130 : 통신망
210 : 회원 가입 처리부
220 : 서비스 제공부
230 : 통합 추천 모델 생성부
240 : 오프셋 추천 모델 생성부
310 : 통신부
320 : 입력부
330 : 서비스부
340 : 추천부
350 : 공유부
110: content service server
120: user terminal
130: communication network
210: member registration processing unit
220: service provider
230: integrated recommendation model generation unit
240: offset recommendation model generation unit
310: communication department
320: input unit
330: service department
340: recommendation
350: common

Claims (21)

사용자에게 콘텐츠를 추천하기 위한 사용자 단말에 있어서,
콘텐츠 서비스 서버와 통신하고, 상기 콘텐츠 서비스 서버에서 학습된 통합 추천 모델로부터 파생된 상기 사용자의 오프셋 추천 모델을 수신하는 통신부;
상기 사용자로부터 콘텐츠 이용을 위한 입력을 수신하는 입력부;
상기 입력에 기초하여 상기 통신부를 통해 상기 콘텐츠 서비스 서버로 콘텐츠를 요청하고 수신하여 출력하는 서비스부; 및
상기 사용자의 콘텐츠 이용 이력에 기초하여 상기 오프셋 추천 모델을 갱신하고 갱신된 상기 오프셋 추천 모델을 통해 상기 사용자에게 콘텐츠를 추천하는 추천부;를 포함하는 사용자 단말.
A user terminal for recommending content to a user, comprising:
a communication unit communicating with the content service server and receiving the user's offset recommendation model derived from the integrated recommendation model learned from the content service server;
an input unit for receiving an input for using content from the user;
a service unit for requesting, receiving, and outputting contents to the contents service server through the communication unit based on the input; and
and a recommendation unit for updating the offset recommendation model based on the content usage history of the user and recommending content to the user through the updated offset recommendation model.
제 1 항에 있어서,
상기 통신부는, 상기 콘텐츠 서비스 서버로부터 상기 통합 추천 모델에서 추천한 콘텐츠 추천 리스트를 수신하고,
상기 추천부는, 상기 오프셋 추천 모델을 이용하여 상기 콘텐츠 추천 리스트에 기초하여 상기 사용자에 고유한 콘텐츠 추천 리스트를 생성하는 것을 특징으로 하는 사용자 단말.
The method of claim 1,
The communication unit receives a content recommendation list recommended by the integrated recommendation model from the content service server,
The recommendation unit is configured to generate a content recommendation list unique to the user based on the content recommendation list by using the offset recommendation model.
제 2 항에 있어서,
상기 추천부는,
상기 수신된 콘텐츠 추천 리스트를 상기 오프셋 추천 모델을 이용하여 재정렬하여 상기 사용자에게 고유한 콘텐츠 추천 리스트를 생성하는 것을 특징으로 하는 사용자 단말.
3. The method of claim 2,
The recommendation is
and rearranging the received content recommendation list using the offset recommendation model to generate a content recommendation list unique to the user.
제 1 항에 있어서,
상기 통신부에서 수신하는 오프셋 추천 모델은,
상기 콘텐츠 서비스 서버가 상기 통합 추천 모델의 콘텐츠 추천 결과와 상기 사용자의 콘텐츠 이용 이력의 차이에 기초하여 상기 통합 추천 모델로부터 파생하여 생성하는 것을 특징으로 하는 사용자 단말.
The method of claim 1,
The offset recommendation model received by the communication unit is,
The user terminal, characterized in that the content service server is generated by deriving from the integrated recommendation model based on a difference between the content recommendation result of the integrated recommendation model and the user's content use history.
제 1 항에 있어서,
상기 콘텐츠 이용 이력은,
사용자의 발화, 시청, 구매 또는 별점 이력 중 적어도 하나 이상을 포함하는 것을 특징으로 하는 사용자 단말.
The method of claim 1,
The content usage history is
A user terminal comprising at least one of a user's speech, viewing, purchase, or star rating history.
제 5 항에 있어서,
사용자의 시청 이력으로서, 각 콘텐츠에 대한 벡터 값이 하기 수학식1 또는 하기 수학식2에 의해 산출되어 학습에 이용되는 것을 특징으로 하는 사용자 단말.
(수학식1)
각 콘텐츠에 대한 시청 이력 벡터 값 = 1+log(총 시청 시간/해당 콘텐츠의 러닝 타임)
(수학식2)
각 콘텐츠에 대한 시청 이력 벡터 값 = 1+log(총 시청 시간/해당 콘텐츠의 러닝 타임)+log(α/시청 횟수). 여기서 α=1이거나 콘텐츠의 러닝 타임에 비례하여 결정됨.
6. The method of claim 5,
As a user's viewing history, a vector value for each content is calculated by Equation 1 or Equation 2 below and used for learning.
(Equation 1)
Viewing history vector value for each content = 1+log (total watch time/running time of that content)
(Equation 2)
Viewing history vector value for each content = 1+log(total watch time/running time of that content)+log(α/number of views). where α=1 or determined proportional to the running time of the content.
제 5 항에 있어서,
사용자의 구매 이력으로서, 각 콘텐츠에 대한 사용자의 구매 금액과, 각 콘텐츠를 구매한 전체 사용자의 평균 금액 및 분산을 이용하여 표준화된 벡터 값이 산출되어 학습에 이용되는 것을 특징으로 하는 사용자 단말.
6. The method of claim 5,
A user terminal, characterized in that, as a user's purchase history, a standardized vector value is calculated and used for learning by using the user's purchase amount for each content and the average amount and variance of all users who purchased each content.
제 5 항에 있어서,
사용자의 별점 이력으로서, 각 콘텐츠에 대해 사용자가 부여한 별점과, 각 콘텐츠에 대해 전체 사용자가 부여한 별점의 평균 및 분산을 이용하여 표준화된 벡터 값이 산출되어 학습에 이용되는 것을 특징으로 하는 사용자 단말.
6. The method of claim 5,
As a user's star point history, a standardized vector value is calculated and used for learning by using the star point given by the user for each content and the average and variance of the star point given by all users for each content.
제 1 항에 있어서,
상기 갱신된 오프셋 추천 모델을 다른 사용자 단말로 전송하여 공유하는 공유부를 더 포함하는 사용자 단말.
The method of claim 1,
A user terminal further comprising a sharing unit for transmitting and sharing the updated offset recommendation model to another user terminal.
제 9 항에 있어서,
상기 공유부는, 사용자 단말의 컴퓨팅 환경에 기초하여 사용자의 콘텐츠 이용 이력을 상기 다른 사용자 단말로 전송하여 공유하는 것을 특징으로 하는 사용자 단말.
10. The method of claim 9,
The sharing unit, based on the computing environment of the user terminal, the user terminal, characterized in that the user's content use history by transmitting and sharing to the other user terminal.
제 9 항에 있어서,
상기 공유부는, 상기 오프셋 추천 모델을 갱신하기 전에, 상기 다른 사용자 단말로 갱신 예정임을 통보하여 상기 다른 사용자 단말의 오프셋 추천 모델의 갱신을 중지시키는 것을 특징으로 하는 사용자 단말.
10. The method of claim 9,
The sharing unit, before updating the offset recommendation model, the user terminal, characterized in that the update is scheduled to be notified to the other user terminal to stop the update of the offset recommendation model of the other user terminal.
사용자 단말에서 사용자에게 콘텐츠를 추천하는 방법으로서,
콘텐츠 서비스 서버에서 학습된 통합 추천 모델로부터 파생된 상기 사용자의 오프셋 추천 모델을 상기 콘텐츠 서비스 서버로부터 수신하는 단계;
상기 사용자로부터 콘텐츠 이용을 위한 입력을 수신하는 단계;
상기 입력에 기초하여 상기 콘텐츠 서비스 서버로 콘텐츠를 요청하고 수신하여 출력하는 단계; 및
상기 사용자의 콘텐츠 이용 이력에 기초하여 상기 오프셋 추천 모델을 갱신하고 갱신된 상기 오프셋 추천 모델을 통해 상기 사용자에게 콘텐츠를 추천하는 단계를 포함하는 방법.
A method of recommending content to a user in a user terminal, comprising:
receiving the user's offset recommendation model derived from the integrated recommendation model learned from the content service server from the content service server;
receiving an input for using content from the user;
requesting, receiving, and outputting content from the content service server based on the input; and
and updating the offset recommendation model based on the content usage history of the user and recommending content to the user through the updated offset recommendation model.
제 12 항에 있어서,
상기 콘텐츠 서비스 서버로부터 상기 통합 추천 모델에서 추천한 콘텐츠 추천 리스트를 수신하는 단계를 더 포함하고,
상기 추천하는 단계는,
상기 오프셋 추천 모델을 이용하여 상기 콘텐츠 추천 리스트에 기초하여 상기 사용자에 고유한 콘텐츠 추천 리스트를 생성하는 것을 특징으로 하는 방법.
13. The method of claim 12,
Further comprising the step of receiving a content recommendation list recommended by the integrated recommendation model from the content service server,
The recommended steps are:
and generating a content recommendation list unique to the user based on the content recommendation list using the offset recommendation model.
제 13 항에 있어서,
상기 추천하는 단계는,
상기 수신된 콘텐츠 추천 리스트를 상기 오프셋 추천 모델을 이용하여 재정렬하여 상기 사용자에게 고유한 콘텐츠 추천 리스트를 생성하는 것을 특징으로 하는 방법.
14. The method of claim 13,
The recommended steps are:
and reordering the received content recommendation list using the offset recommendation model to generate a content recommendation list unique to the user.
제 12 항에 있어서,
상기 수신하는 단계에서 수신되는 오프셋 추천 모델은,
상기 콘텐츠 서비스 서버가 상기 통합 추천 모델의 콘텐츠 추천 결과와 상기 사용자의 콘텐츠 이용 이력의 차이에 기초하여 상기 통합 추천 모델로부터 파생하여 생성한 것을 특징으로 하는 방법.
13. The method of claim 12,
The offset recommendation model received in the receiving step is,
The method according to claim 1, wherein the content service server is derived and generated from the integrated recommendation model based on a difference between the content recommendation result of the integrated recommendation model and the content use history of the user.
제 12 항에 있어서,
상기 콘텐츠 이용 이력은,
사용자의 발화, 시청, 구매 또는 별점 이력 중 적어도 하나 이상을 포함하는 것을 특징으로 하는 방법.
13. The method of claim 12,
The content usage history is
A method comprising at least one of a user's speech, viewing, purchase, or star rating history.
제 16 항에 있어서,
사용자의 시청 이력으로서, 각 콘텐츠에 대한 벡터 값이 하기 수학식3 또는 하기 수학식4에 의해 산출되어 학습에 이용되는 것을 특징으로 하는 방법.
(수학식3)
각 콘텐츠에 대한 시청 이력 벡터 값 = 1+log(총 시청 시간/해당 콘텐츠의 러닝 타임)
(수학식4)
각 콘텐츠에 대한 시청 이력 벡터 값 = 1+log(총 시청 시간/해당 콘텐츠의 러닝 타임)+log(α/시청 횟수). 여기서 α=1이거나 콘텐츠의 러닝 타임에 비례하여 결정됨.
17. The method of claim 16,
As a user's viewing history, a vector value for each content is calculated by Equation 3 or Equation 4 below and used for learning.
(Equation 3)
Viewing history vector value for each content = 1+log (total watch time/running time of that content)
(Equation 4)
Viewing history vector value for each content = 1+log(total watch time/running time of that content)+log(α/number of views). where α=1 or determined proportional to the running time of the content.
제 16 항에 있어서,
사용자의 구매 이력으로서, 각 콘텐츠에 대한 사용자의 구매 금액과, 각 콘텐츠를 구매한 전체 사용자의 평균 금액 및 분산을 이용하여 표준화된 벡터 값이 산출되어 학습에 이용되는 것을 특징으로 하는 방법.
17. The method of claim 16,
A method, characterized in that, as a user's purchase history, a standardized vector value is calculated and used for learning by using the user's purchase amount for each content and the average amount and variance of all users who purchased each content.
제 16 항에 있어서,
사용자의 별점 이력으로서, 각 콘텐츠에 대해 사용자가 부여한 별점과, 각 콘텐츠에 대해 전체 사용자가 부여한 별점의 평균 및 분산을 이용하여 표준화된 벡터 값이 산출되어 학습에 이용되는 것을 특징으로 하는 방법.
17. The method of claim 16,
As a user's star rating history, a standardized vector value is calculated and used for learning by using the star point given by the user for each content and the average and variance of the star point given by all users for each content.
제 12 항에 있어서,
상기 갱신된 오프셋 추천 모델을 다른 사용자 단말로 전송하여 공유하는 단계를 더 포함하는 것을 특징으로 하는 방법.
13. The method of claim 12,
The method further comprising the step of transmitting and sharing the updated offset recommendation model to another user terminal.
제 20 항에 있어서,
상기 오프셋 추천 모델을 갱신하기 전에, 상기 다른 사용자 단말로 갱신 예정임을 통보하여 상기 다른 사용자 단말의 오프셋 추천 모델의 갱신을 중지시키는 단계를 더 포함하는 것을 특징으로 하는 방법.
21. The method of claim 20,
Before updating the offset recommendation model, the method further comprising the step of notifying the other user terminal that the update is scheduled to stop, and stopping the update of the offset recommendation model of the other user terminal.
KR1020200011120A 2020-01-30 2020-01-30 Apparatus and method for recommending contents KR20210097432A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200011120A KR20210097432A (en) 2020-01-30 2020-01-30 Apparatus and method for recommending contents

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200011120A KR20210097432A (en) 2020-01-30 2020-01-30 Apparatus and method for recommending contents

Publications (1)

Publication Number Publication Date
KR20210097432A true KR20210097432A (en) 2021-08-09

Family

ID=77313243

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200011120A KR20210097432A (en) 2020-01-30 2020-01-30 Apparatus and method for recommending contents

Country Status (1)

Country Link
KR (1) KR20210097432A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023058835A1 (en) * 2021-10-08 2023-04-13 삼성전자주식회사 Electronic device and control method therefor
KR102531719B1 (en) * 2023-01-17 2023-05-10 키즐링 주식회사 Apparatus and method for providing service of sharing and recommendation short-form contents for children

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023058835A1 (en) * 2021-10-08 2023-04-13 삼성전자주식회사 Electronic device and control method therefor
KR102531719B1 (en) * 2023-01-17 2023-05-10 키즐링 주식회사 Apparatus and method for providing service of sharing and recommendation short-form contents for children

Similar Documents

Publication Publication Date Title
US20210326674A1 (en) Content recommendation method and apparatus, device, and storage medium
US8881209B2 (en) Feedback loop content recommendation
US10841640B2 (en) Methods and systems for displaying content based on preference information
US20120317123A1 (en) Systems and methods for providing media recommendations
US10185983B2 (en) Least-ask: conversational recommender system with minimized user interaction
CN108595493B (en) Media content pushing method and device, storage medium and electronic device
US20140150005A1 (en) Content recommendation pre-filtering
US20230036644A1 (en) Method and system for exploring a personal interest space
US20150052554A1 (en) Geographic content recommendation
US10726087B2 (en) Machine learning system and method to identify and connect like-minded users
CN110929086A (en) Audio and video recommendation method and device and storage medium
US20140149326A1 (en) Post-processed content recommendation
KR20210097432A (en) Apparatus and method for recommending contents
US20210201146A1 (en) Computing device and operation method thereof
US10271103B2 (en) Relevance table aggregation in a database system for providing video recommendations
CN104954824B (en) It is a kind of for carrying out the method, equipment and system of video setting
CN114357201B (en) Audio-visual recommendation method and system based on information perception
WO2022155450A1 (en) Crowdsourcing platform for on-demand media content creation and sharing
US20140074858A1 (en) Percent-consumed weighted content recommendation
US20220360836A1 (en) User defined content summary channel
US11778277B1 (en) Digital item processing for video streams
TWI504273B (en) Multimedia content recommendation system and method
US20180341987A1 (en) Device, System, and Method for a Social Fit Assessment
US11836161B2 (en) Systems and methods for predicting where conversations are heading and identifying associated content
WO2023078226A1 (en) Recommendation method and apparatus, server and computer-readable storage medium

Legal Events

Date Code Title Description
A201 Request for examination