KR20210142484A - Method and Apparatus for Recommendation of Similar Content Items - Google Patents

Method and Apparatus for Recommendation of Similar Content Items Download PDF

Info

Publication number
KR20210142484A
KR20210142484A KR1020200059377A KR20200059377A KR20210142484A KR 20210142484 A KR20210142484 A KR 20210142484A KR 1020200059377 A KR1020200059377 A KR 1020200059377A KR 20200059377 A KR20200059377 A KR 20200059377A KR 20210142484 A KR20210142484 A KR 20210142484A
Authority
KR
South Korea
Prior art keywords
content
keyword
similarity
specific
target
Prior art date
Application number
KR1020200059377A
Other languages
Korean (ko)
Other versions
KR102380871B1 (en
Inventor
장시영
Original Assignee
주식회사 엘지유플러스
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 엘지유플러스 filed Critical 주식회사 엘지유플러스
Priority to KR1020200059377A priority Critical patent/KR102380871B1/en
Publication of KR20210142484A publication Critical patent/KR20210142484A/en
Application granted granted Critical
Publication of KR102380871B1 publication Critical patent/KR102380871B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/466Learning process for intelligent management, e.g. learning user preferences for recommending movies
    • H04N21/4668Learning process for intelligent management, e.g. learning user preferences for recommending movies for recommending content, e.g. movies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/47202End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for requesting content on demand, e.g. video on demand

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

A method for recommending content items is provided. The method includes the steps of: selecting a specific content among at least one content viewed by a user; selecting a target content; calculating a content-based collaborative filtering (CF) similarity between the specific content and the target content; calculating a keyword similarity between the specific content and the target content; calculating a final similarity by weighted average of the CF similarity and the keyword similarity; and determining whether to recommend the target content to the user based on the final similarity.

Description

유사 컨텐츠 추천 방법 및 장치{Method and Apparatus for Recommendation of Similar Content Items}Method and Apparatus for Recommendation of Similar Content Items}

본 발명은 VOD(Video On Demand) 컨텐츠 관련의 정보 처리 기술에 관한 것이다.The present invention relates to information processing technology related to video on demand (VOD) content.

근래에 들어 인터넷(Internet)의 활용이 일상화됨에 따라 홈 네트워크 시대가 도래하였다. 이러한 홈 네트워크를 실현한 구체적인 한 예로서 IPTV(Internet Protocol Television) 서비스를 들 수 있다. IPTV 서비스는 인터넷을 이용하여 제공되는 양방향 TV 서비스로서, 인터넷에 연결된 셋탑박스(set-top box)를 이용하여 컨텐츠 제공 서비스 사업자가 운용하는 컨텐츠 제공 서버와 연결하여 VOD(video on demand) 컨텐츠와 같은 컨텐츠를 다운로드 방식 또는 스트리밍 방식으로 내려 받아 시청할 수 있도록 한 서비스이다. IPTV 서비스는 일반 케이블 방송과는 달리 시청자가 자신이 편리한 시간에 보고 싶은 프로그램을 선별하여 볼 수 있도록 한다는 점에서 시청자에게는 다양한 볼거리와 편의성을 제공하는 한편 사업자에게는 가입자 별로 일반 케이블 방송사가 징수하는 월정액 이상의 매출을 올릴 수 있는 수익 모델이 되고 있다. 따라서 IPTV 서비스 사업자의 입장에서는 시청자에게 다양한 컨텐츠를 다양한 방식으로 마케팅하여 구매를 독려하는 것이 지대한 관심사가 되고 있다.In recent years, as the use of the Internet has become commonplace, the era of home networks has arrived. A specific example of realizing such a home network is an Internet Protocol Television (IPTV) service. The IPTV service is an interactive TV service provided using the Internet, and is connected to a content providing server operated by a content providing service provider using a set-top box connected to the Internet, such as video on demand (VOD) content. It is a service that allows you to download and watch content in a download or streaming manner. Unlike general cable broadcasting, IPTV service provides a variety of attractions and convenience to viewers in that it allows viewers to select and watch the programs they want to watch at a convenient time. It is becoming a revenue model that can increase sales. Therefore, from the perspective of IPTV service providers, marketing various contents to viewers in various ways to encourage purchases is of great interest.

본 발명의 과제는 사용자가 기 시청한 컨텐츠와 공통 장르 및/또는 소재에 해당하는 유사 컨텐츠를 결정하여 추천할 수 있도록 한, 유사 컨텐츠 추천 방법 및 장치를 제공하는 것이다.SUMMARY OF THE INVENTION An object of the present invention is to provide a similar content recommendation method and apparatus in which a user can determine and recommend previously viewed content and similar content corresponding to a common genre and/or material.

본 발명이 해결하고자 하는 과제들은 이상에서 언급한 과제들에 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.The problems to be solved by the present invention are not limited to the problems mentioned above, and other problems not mentioned will be clearly understood by those skilled in the art from the following description.

일 측면에서, 컨텐츠 추천 방법이 제공된다. 본 방법은, 사용자가 시청한 적어도 하나의 컨텐츠 중 특정 컨텐츠를 선택하는 단계, 타겟 컨텐츠를 선택하는 단계, 상기 특정 컨텐츠와 상기 타겟 컨텐츠 간의 컨텐츠 기반 협업 필터링(Collaborative Filtering: CF) 유사도를 산출하는 단계, 상기 특정 컨텐츠와 상기 타겟 컨텐츠 간의 키워드 유사도를 산출하는 단계, 상기 CF 유사도와 상기 키워드 유사도를 가중 평균하여 최종 유사도를 산출하는 단계, 및 상기 최종 유사도에 근거하여 상기 타겟 컨텐츠를 상기 사용자에게 추천할 지의 여부를 결정하는 단계를 포함할 수 있다.In one aspect, a content recommendation method is provided. The method includes the steps of selecting a specific content among at least one content viewed by a user, selecting a target content, and calculating a content-based collaborative filtering (CF) similarity between the specific content and the target content. , calculating a keyword similarity between the specific content and the target content, calculating a final similarity by weighted average of the CF similarity and the keyword similarity, and recommending the target content to the user based on the final similarity It may include the step of determining whether or not

일 실시예에서, 상기 특정 컨텐츠와 상기 타겟 컨텐츠 간의 컨텐츠 기반 협업 필터링(collaborative filtering: CF) 유사도를 산출하는 단계는, 아래의 식In an embodiment, calculating the content-based collaborative filtering (CF) similarity between the specific content and the target content includes the following formula

Figure pat00001
Figure pat00001

- 여기서 w는 상기 특정 컨텐츠를 시청한 사용자들의 ID들(Identifications)의 집합을 나타내고, Wi는 컨텐츠 i를 시청한 사용자들의 ID들의 집합을 나타내고,

Figure pat00002
는 w와 Wi의 합집합(union)을 나타내고,
Figure pat00003
는 w와 Wi의 합집합의 원소들의 개수를 나타내고,
Figure pat00004
는 w와 Wi의 교집합(intersection)을 나타내고,
Figure pat00005
는 w와 Wi의 교집합의 원소들의 개수를 나타내고, xi는 상기 특정 컨텐츠와 컨텐츠 i간의 CF 유사도를 나타냄 - 에 따라 상기 CF 유사도를 산출하는 단계를 포함한다.- Here, w represents a set of IDs (Identifications) of users who have viewed the specific content, and W i represents a set of IDs of users who have viewed content i,
Figure pat00002
represents the union of w and Wi,
Figure pat00003
represents the number of elements of the union of w and Wi,
Figure pat00004
represents the intersection of w and Wi,
Figure pat00005
and represents the number of elements of the intersection of w and Wi, and x i represents the CF similarity between the specific content and the content i.

일 실시예에서, 상기 특정 컨텐츠와 상기 타겟 컨텐츠 간의 키워드 유사도를 산출하는 단계는, 상기 특정 컨텐츠에 대한 키워드 벡터 및 상기 타겟 컨텐츠에 대한 키워드 벡터를 참조하는 단계를 포함한다.In an embodiment, calculating the keyword similarity between the specific content and the target content includes referring to a keyword vector for the specific content and a keyword vector for the target content.

일 실시예에서, 상기 특정 컨텐츠에 대한 키워드 벡터는 후보 키워드들의 총 개수에 해당하는 개수의 원소들을 가지며, 상기 원소들은 상기 후보 키워드들에 각각 대응하며, 상기 원소들의 각각은 상기 특정 컨텐츠에 있어서의 상기 해당 후보 키워드의 중요도에 대응하는 크기의 원소 값을 가지며, 상기 원소들의 각각은 0 이상이고 최고값 이하인 값을 취한다.In one embodiment, the keyword vector for the specific content has a number of elements corresponding to the total number of candidate keywords, the elements respectively correspond to the candidate keywords, and each of the elements is the number of elements in the specific content. It has an element value of a size corresponding to the importance of the corresponding candidate keyword, and each of the elements takes a value greater than or equal to 0 and less than or equal to the maximum value.

일 실시예에서, 상기 특정 컨텐츠에 대한 키워드 벡터의 특정 원소의 원소 값이 0인 경우 상기 특정 원소에 대응하는 상기 후보 키워드가 상기 특정 컨텐츠와 관련이 없음을 나타낸다.In an embodiment, when an element value of a specific element of the keyword vector for the specific content is 0, it indicates that the candidate keyword corresponding to the specific element is not related to the specific content.

일 실시예에서, 상기 타겟 컨텐츠에 대한 키워드 벡터는 후보 키워드들의 총 개수에 해당하는 개수의 원소들을 가지며, 상기 원소들은 상기 후보 키워드들에 각각 대응하며, 상기 원소들의 각각은 상기 타겟 컨텐츠에 있어서의 상기 해당 후보 키워드의 중요도에 대응하는 크기의 원소 값을 가지며, 상기 원소들의 각각은 0 이상이고 최고값 이하인 값을 취한다.In one embodiment, the keyword vector for the target content has a number of elements corresponding to the total number of candidate keywords, the elements respectively corresponding to the candidate keywords, and each of the elements in the target content It has an element value of a size corresponding to the importance of the corresponding candidate keyword, and each of the elements takes a value greater than or equal to 0 and less than or equal to the maximum value.

일 실시예에서, 상기 타겟 컨텐츠에 대한 키워드 벡터의 특정 원소의 원소 값이 0인 경우 상기 특정 원소에 대응하는 상기 후보 키워드가 상기 타겟 컨텐츠와 관련이 없음을 나타낸다.In an embodiment, when an element value of a specific element of the keyword vector for the target content is 0, it indicates that the candidate keyword corresponding to the specific element is not related to the target content.

일 실시예에서, 상기 특정 컨텐츠와 상기 타겟 컨텐츠 간의 키워드 유사도를 산출하는 단계는, 아래의 식In an embodiment, calculating the keyword similarity between the specific content and the target content includes the following formula

Figure pat00006
Figure pat00006

- 여기서 k는 상기 특정 컨텐츠에 대한 키워드 벡터이고, Ki는 컨텐츠 i에 대한 키워드 벡터이고,

Figure pat00007
는 상기 특정 컨텐츠에 대한 키워드 벡터 k와 컨텐츠 i에 대한 키워드 벡터 Ki 간의 맨하탄 거리(Manhattan distance)이고, MAX는 상기 최고값에 상기 후보 키워드들의 총 개수를 곱한 값이고, yi는 상기 특정 컨텐츠와 컨텐츠 i간의 키워드 유사도를 나타냄 - 에 따라 상기 특정 컨텐츠와 상기 타겟 컨텐츠 간의 키워드 유사도를 산출하는 단계를 포함한다.- where k is a keyword vector for the specific content, K i is a keyword vector for content i,
Figure pat00007
is the Manhattan distance between the keyword vector k for the specific content and the keyword vector K i for the content i, MAX is the maximum value multiplied by the total number of the candidate keywords, and y i is the specific content and calculating the keyword similarity between the specific content and the target content according to - indicating the keyword similarity between the content i and the content i.

일 실시예에서, 상기 CF 유사도와 상기 키워드 유사도를 가중 평균하여 최종 유사도를 산출하는 단계는, 아래의 식In an embodiment, calculating the final similarity by weighted average of the CF similarity and the keyword similarity includes the following equation

Figure pat00008
Figure pat00008

Figure pat00009
Figure pat00009

- 여기서

Figure pat00010
Figure pat00011
는 0 이상이고 1이하인 값이고,
Figure pat00012
Figure pat00013
의 합은 1이고,
Figure pat00014
는 상기 특정 컨텐츠에 대한 키워드 벡터의 맨하탄 거리이고,
Figure pat00015
는 컨텐츠 i에 대한 키워드 벡터의 맨하탄 거리이고,
Figure pat00016
는 키워드 필터 함수이고, Si는 상기 특정 컨텐츠와 컨텐츠 i간의 최종 유사도를 나타냄 - 에 따라 상기 최종 유사도를 산출하는 단계를 포함한다.- here
Figure pat00010
Wow
Figure pat00011
is a value greater than or equal to 0 and less than or equal to 1,
Figure pat00012
Wow
Figure pat00013
the sum of is 1,
Figure pat00014
is the Manhattan distance of the keyword vector for the specific content,
Figure pat00015
is the Manhattan distance of the keyword vector for content i,
Figure pat00016
is a keyword filter function, and S i represents the final similarity between the specific content and the content i - calculating the final similarity.

일 실시예에서, 상기 특정 컨텐츠에 대한 키워드 벡터에서 0이 아닌 값을 갖는 원소들과 상기 타겟 컨텐츠에 대한 키워드 벡터에서 0이 아닌 값을 갖는 원소들이 서로 배타적인 경우 상기 특정 컨텐츠와 상기 타겟 컨텐츠는 상기 후보 키워드들 중 어떠한 후보 키워드도 공유하지 않는 것을 나타내며 상기 키워드 필터 함수

Figure pat00017
는 0의 값을 갖는다.In one embodiment, when elements having a non-zero value in the keyword vector for the specific content and elements having a non-zero value in the keyword vector for the target content are mutually exclusive, the specific content and the target content are indicates that none of the candidate keywords are shared and the keyword filter function
Figure pat00017
has a value of 0.

일 실시예에서, 상기 최종 유사도에 근거하여 상기 타겟 컨텐츠를 상기 사용자에게 추천할 지의 여부를 결정하는 단계는, 상기 최종 유사도가 선정된 임계값 이상인 경우 상기 타겟 컨텐츠를 상기 사용자에게 추천하는 것으로 결정하는 단계를 포함한다.In an embodiment, the determining whether to recommend the target content to the user based on the final similarity includes determining that the target content is recommended to the user when the final similarity is greater than or equal to a predetermined threshold. includes steps.

다른 측면에서, 컨텐츠 추천 방법이 제공된다. 본 방법은, 사용자가 시청한 적어도 하나의 컨텐츠 중 특정 컨텐츠를 선택하는 단계, 복수의 타겟 컨텐츠를 선택하는 단계, 상기 특정 컨텐츠와 상기 복수의 타겟 컨텐츠 간의 최종 유사도들을 산출하는 단계, 및 상기 최종 유사도들에 근거하여 상기 복수의 타겟 컨텐츠 중 적어도 하나의 타겟 컨텐츠를 상기 사용자에게 추천하는 것으로 결정하는 단계를 포함할 수 있다. 상기 최종 유사도들의 각각은 상기 특정 컨텐츠와 상기 해당 타겟 컨텐츠 간의 컨텐츠 기반 협업 필터링(collaborative filtering: CF) 유사도 및 상기 특정 컨텐츠와 상기 해당 타겟 컨텐츠 간의 키워드 유사도에 기초하여 산출될 수 있다.In another aspect, a content recommendation method is provided. The method includes the steps of selecting a specific content from among at least one content viewed by a user, selecting a plurality of target content, calculating final similarities between the specific content and the plurality of target content, and the final similarity The method may include determining to recommend at least one target content among the plurality of target contents to the user based on the information. Each of the final similarities may be calculated based on a content-based collaborative filtering (CF) similarity between the specific content and the corresponding target content and a keyword similarity between the specific content and the corresponding target content.

일 실시예에서, 상기 최종 유사도들의 각각은 상기 CF 유사도와 상기 키워드 유사도를 가중 평균하여 산출된다.In an embodiment, each of the final similarities is calculated by averaging the CF similarity and the keyword similarity.

또 다른 측면에서, 컨텐츠 추천을 위한 장치가 제공된다. 본 장치는, 컨텐츠 테이블 및 컨텐츠들에 대한 키워드 벡터들을 저장하는 데이터베이스부 - 상기 컨텐츠 테이블에는 상기 컨텐츠들의 각각에 대하여 상기 해당 컨텐츠를 시청한 사용자들의 ID들이 연관되어 저장됨 -, 및 프로세싱 엔진을 포함할 수 있다. 상기 프로세싱 엔진은, 상기 컨텐츠 테이블을 참조하여 사용자가 시청한 특정 컨텐츠와 타겟 컨텐츠 간의 컨텐츠 기반 협업 필터링(Collaborative Filtering: CF) 유사도를 산출하는 동작, 상기 특정 컨텐츠에 대한 키워드 벡터와 상기 타겟 컨텐츠에 대한 키워드 벡터를 이용하여 상기 특정 컨텐츠와 상기 타겟 컨텐츠 간의 키워드 유사도를 산출하는 동작, 상기 CF 유사도와 상기 키워드 유사도를 가중 평균하여 최종 유사도를 산출하는 동작 및 상기 최종 유사도에 근거하여 상기 타겟 컨텐츠를 상기 사용자에게 추천할 지의 여부를 결정하는 동작을 수행하도록 구성될 수 있다.In another aspect, an apparatus for content recommendation is provided. The apparatus includes a content table and a database unit for storing keyword vectors for the contents, in which the contents table stores IDs of users who have viewed the corresponding contents in association with each of the contents, and a processing engine. can do. The processing engine refers to an operation of calculating a content-based collaborative filtering (CF) similarity between the specific content viewed by the user and the target content with reference to the content table, a keyword vector for the specific content and the target content. Calculating a keyword similarity between the specific content and the target content using a keyword vector, calculating a final similarity by weighted average of the CF similarity and the keyword similarity, and selecting the target content based on the final similarity to the user It may be configured to perform an operation of determining whether to recommend to the user.

일 실시예에서, 상기 프로세싱 엔진은, 아래의 식In one embodiment, the processing engine is

Figure pat00018
Figure pat00018

- 여기서 w는 상기 특정 컨텐츠를 시청한 사용자들의 ID들의 집합을 나타내고, Wi는 컨텐츠 i를 시청한 사용자들의 ID들의 집합을 나타내고,

Figure pat00019
는 w와 Wi의 합집합(union)을 나타내고,
Figure pat00020
는 w와 Wi의 합집합의 원소들의 개수를 나타내고,
Figure pat00021
는 w와 Wi의 교집합(intersection)을 나타내고,
Figure pat00022
는 w와 Wi의 교집합의 원소들의 개수를 나타내고, xi는 상기 특정 컨텐츠와 컨텐츠 i간의 CF 유사도를 나타냄 - 에 따라 상기 CF 유사도를 산출하는 동작을 수행하도록 더 구성된다.- Here, w represents a set of IDs of users who have viewed the specific content, and W i represents a set of IDs of users who have viewed content i,
Figure pat00019
represents the union of w and Wi,
Figure pat00020
represents the number of elements of the union of w and Wi,
Figure pat00021
represents the intersection of w and Wi,
Figure pat00022
represents the number of elements of the intersection of w and Wi, and x i represents the CF similarity between the specific content and the content i.

일 실시예에서, 상기 특정 컨텐츠에 대한 키워드 벡터는 후보 키워드들의 총 개수에 해당하는 개수의 원소들을 가지며, 상기 원소들은 상기 후보 키워드들에 각각 대응하며, 상기 원소들의 각각은 상기 특정 컨텐츠에 있어서의 상기 해당 후보 키워드의 중요도에 대응하는 크기의 원소 값을 가지며, 상기 원소들의 각각은 0 이상이고 최고값 이하인 값을 취한다.In one embodiment, the keyword vector for the specific content has a number of elements corresponding to the total number of candidate keywords, the elements respectively correspond to the candidate keywords, and each of the elements is the number of elements in the specific content. It has an element value of a size corresponding to the importance of the corresponding candidate keyword, and each of the elements takes a value greater than or equal to 0 and less than or equal to the maximum value.

일 실시예에서, 상기 특정 컨텐츠에 대한 키워드 벡터의 특정 원소의 원소 값이 0인 경우 상기 특정 원소에 대응하는 상기 후보 키워드가 상기 특정 컨텐츠와 관련이 없음을 나타낸다.In an embodiment, when an element value of a specific element of the keyword vector for the specific content is 0, it indicates that the candidate keyword corresponding to the specific element is not related to the specific content.

일 실시예에서, 상기 타겟 컨텐츠에 대한 키워드 벡터는 후보 키워드들의 총 개수에 해당하는 개수의 원소들을 가지며, 상기 원소들은 상기 후보 키워드들에 각각 대응하며, 상기 원소들의 각각은 상기 타겟 컨텐츠에 있어서의 상기 해당 후보 키워드의 중요도에 대응하는 크기의 원소 값을 가지며, 상기 원소들의 각각은 0 이상이고 최고값 이하인 값을 취한다.In one embodiment, the keyword vector for the target content has a number of elements corresponding to the total number of candidate keywords, the elements respectively corresponding to the candidate keywords, and each of the elements in the target content It has an element value of a size corresponding to the importance of the corresponding candidate keyword, and each of the elements takes a value greater than or equal to 0 and less than or equal to the maximum value.

일 실시예에서, 상기 타겟 컨텐츠에 대한 키워드 벡터의 특정 원소의 원소 값이 0인 경우 상기 특정 원소에 대응하는 상기 후보 키워드가 상기 타겟 컨텐츠와 관련이 없음을 나타낸다.In an embodiment, when an element value of a specific element of the keyword vector for the target content is 0, it indicates that the candidate keyword corresponding to the specific element is not related to the target content.

일 실시예에서, 상기 프로세싱 엔진은, 아래의 식In one embodiment, the processing engine is

Figure pat00023
Figure pat00023

- 여기서 k는 상기 특정 컨텐츠에 대한 키워드 벡터이고, Ki는 컨텐츠 i에 대한 키워드 벡터이고,

Figure pat00024
는 상기 특정 컨텐츠에 대한 키워드 벡터 k와 컨텐츠 i에 대한 키워드 벡터 Ki 간의 맨하탄 거리(Manhattan distance)이고, MAX는 상기 최고값에 상기 후보 키워드들의 총 개수를 곱한 값이고, yi는 상기 특정 컨텐츠와 컨텐츠 i간의 키워드 유사도를 나타냄 - 에 따라 상기 특정 컨텐츠와 상기 타겟 컨텐츠 간의 키워드 유사도를 산출하는 동작을 수행하도록 더 구성된다.- where k is a keyword vector for the specific content, K i is a keyword vector for content i,
Figure pat00024
is the Manhattan distance between the keyword vector k for the specific content and the keyword vector K i for the content i, MAX is the maximum value multiplied by the total number of the candidate keywords, and y i is the specific content and indicates the keyword similarity between the content i and - according to the operation of calculating the keyword similarity between the specific content and the target content.

일 실시예에서, 상기 프로세싱 엔진은, 아래의 식In one embodiment, the processing engine is

Figure pat00025
Figure pat00025

Figure pat00026
Figure pat00026

- 여기서

Figure pat00027
Figure pat00028
는 0 이상이고 1이하인 값이고,
Figure pat00029
Figure pat00030
의 합은 1이고,
Figure pat00031
는 상기 특정 컨텐츠에 대한 키워드 벡터의 맨하탄 거리이고,
Figure pat00032
는 컨텐츠 i에 대한 키워드 벡터의 맨하탄 거리이고,
Figure pat00033
는 키워드 필터 함수이고, Si는 상기 특정 컨텐츠와 컨텐츠 i간의 최종 유사도를 나타냄 - 에 따라 상기 최종 유사도를 산출하는 동작을 수행하도록 더 구성된다.- here
Figure pat00027
Wow
Figure pat00028
is a value greater than or equal to 0 and less than or equal to 1,
Figure pat00029
Wow
Figure pat00030
the sum of is 1,
Figure pat00031
is the Manhattan distance of the keyword vector for the specific content,
Figure pat00032
is the Manhattan distance of the keyword vector for content i,
Figure pat00033
is a keyword filter function, and S i represents a final similarity between the specific content and the content i.

일 실시예에서, 상기 특정 컨텐츠에 대한 키워드 벡터에서 0이 아닌 값을 갖는 원소들과 상기 타겟 컨텐츠에 대한 키워드 벡터에서 0이 아닌 값을 갖는 원소들이 서로 배타적인 경우 상기 특정 컨텐츠와 상기 타겟 컨텐츠는 상기 후보 키워드들 중 어떠한 후보 키워드도 공유하지 않는 것을 나타내며 상기 키워드 필터 함수

Figure pat00034
는 0의 값을 갖는다.In one embodiment, when elements having a non-zero value in the keyword vector for the specific content and elements having a non-zero value in the keyword vector for the target content are mutually exclusive, the specific content and the target content are indicates that none of the candidate keywords are shared and the keyword filter function
Figure pat00034
has a value of 0.

일 실시예에서, 상기 프로세싱 엔진은, 상기 최종 유사도가 선정된 임계값 이상인 경우 상기 타겟 컨텐츠를 상기 사용자에게 추천하는 것으로 결정하는 동작을 수행하도록 더 구성된다.In an embodiment, the processing engine is further configured to perform an operation of determining to recommend the target content to the user when the final similarity is equal to or greater than a predetermined threshold.

또 다른 측면에서, 컨텐츠 추천을 위한 장치가 제공된다. 본 장치는, 컨텐츠 관련 데이터를 저장하는 데이터베이스부, 및 프로세싱 엔진을 포함할 수 있다. 상기 프로세싱 엔진은, 상기 컨텐츠 관련 데이터를 참조하여 사용자가 시청한 특정 컨텐츠와 복수의 타겟 컨텐츠 간의 최종 유사도들을 산출하고, 상기 최종 유사도들에 근거하여 상기 복수의 타겟 컨텐츠 중 적어도 하나의 타겟 컨텐츠를 상기 사용자에게 추천하는 것으로 결정하도록 구성되고, 상기 프로세싱 엔진은, 상기 최종 유사도들의 각각을 상기 특정 컨텐츠와 상기 해당 타겟 컨텐츠 간의 컨텐츠 기반 협업 필터링(collaborative filtering: CF) 유사도 및 상기 특정 컨텐츠와 상기 해당 타겟 컨텐츠 간의 키워드 유사도에 기초하여 산출하도록 더 구성될 수 있다.In another aspect, an apparatus for content recommendation is provided. The apparatus may include a database unit for storing content-related data, and a processing engine. The processing engine calculates final similarities between the specific content viewed by the user and a plurality of target contents with reference to the content-related data, and selects at least one target content from among the plurality of target contents based on the final similarities and determine a recommendation to a user, wherein the processing engine is configured to determine each of the final similarities between the specific content and the corresponding target content and a content-based collaborative filtering (CF) similarity between the specific content and the corresponding target content and the specific content and the corresponding target content. It may be further configured to calculate based on the degree of similarity between keywords.

일 실시예에서, 상기 컨텐츠 관련 데이터는 컨텐츠 테이블 및 컨텐츠들에 대한 키워드 벡터들에 관한 데이터를 포함하며, 상기 컨텐츠 테이블에는 상기 컨텐츠들의 각각에 대하여 상기 해당 컨텐츠를 시청한 사용자들의 ID들이 연관되어 저장된다.In one embodiment, the content-related data includes data about keyword vectors for the content table and the content, and the content table is associated with IDs of users who viewed the content for each of the content and stored. do.

일 실시예에서, 상기 프로세싱 엔진은, 상기 최종 유사도들의 각각을 상기 CF 유사도와 상기 키워드 유사도를 가중 평균하여 산출하도록 더 구성된다.In an embodiment, the processing engine is further configured to calculate each of the final similarities by weighted average of the CF similarity and the keyword similarity.

또 다른 측면에서, 프로그램을 기록한 컴퓨터 판독가능 기록매체가 제공된다. 여기서 상기 프로그램은 명령어들을 포함하고, 상기 명령어들은 컴퓨터에 의해 실행될 때 상기 방법을 수행한다.In another aspect, a computer-readable recording medium recording a program is provided. wherein the program includes instructions, the instructions performing the method when executed by a computer.

본 발명의 실시예들에 따르면, 사용자가 기 시청한 컨텐츠와 공통 장르 및/또는 소재에 해당하는 유사 컨텐츠를 컨텐츠 기반의 협업 필터링에 의한 유사도와 키워드 유사도를 기초로 결정하여 추천할 수 있도록 함으로써 컨텐츠 소비량을 증대시킬 수 있는 기술적 효과가 있다.According to embodiments of the present invention, content is determined and recommended by a user based on the similarity of previously viewed content and similar content corresponding to a common genre and/or material by content-based collaborative filtering and keyword similarity. There is a technological effect that can increase consumption.

도 1은 유사 컨텐츠 추천 장치의 블록도의 일 실시예를 도시한 도면이다.
도 2는 컨텐츠 테이블의 일 실시예를 도시한 도면이다.
도 3은 유사 컨텐츠 추천 방법을 설명하기 위한 흐름도의 일 실시예를 도시한 도면이다.
1 is a diagram illustrating an embodiment of a block diagram of an apparatus for recommending similar contents.
2 is a diagram illustrating an embodiment of a content table.
3 is a diagram illustrating an embodiment of a flowchart for explaining a method for recommending similar content.

본 발명의 이점들과 특징들 그리고 이들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해 질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 본 실시예들은 단지 본 발명의 개시가 완전하도록 하며 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려 주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.Advantages and features of the present invention and a method of achieving them will become apparent with reference to the embodiments described below in detail in conjunction with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but will be implemented in a variety of different forms, and these embodiments merely allow the disclosure of the present invention to be complete and those of ordinary skill in the art to which the present invention pertains. It is provided to fully inform the person of the scope of the invention, and the present invention is only defined by the scope of the claims.

본 명세서에서 사용되는 용어는 단지 특정한 실시예를 설명하기 위해 사용되는 것으로 본 발명을 한정하려는 의도에서 사용된 것이 아니다. 예를 들어, 단수로 표현된 구성 요소는 문맥상 명백하게 단수만을 의미하지 않는다면 복수의 구성 요소를 포함하는 개념으로 이해되어야 한다. 또한, 본 발명의 명세서에서, '포함하다' 또는 '가지다' 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것일 뿐이고, 이러한 용어의 사용에 의해 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성이 배제되는 것은 아니다. 또한, 본 명세서에 기재된 실시예에 있어서 '모듈' 혹은 '부'는 적어도 하나의 기능이나 동작을 수행하는 기능적 부분을 의미할 수 있다.The terms used herein are used only to describe specific embodiments and are not intended to limit the present invention. For example, a component expressed in a singular should be understood as a concept including a plurality of components unless the context clearly means only the singular. In addition, in the specification of the present invention, terms such as 'comprise' or 'have' are only intended to designate that the features, numbers, steps, operations, components, parts, or combinations thereof described in the specification exist, and such The use of the term does not exclude the possibility of the presence or addition of one or more other features or numbers, steps, operations, components, parts, or combinations thereof. Also, in the embodiments described in this specification, a 'module' or a 'unit' may mean a functional part that performs at least one function or operation.

덧붙여, 다르게 정의되지 않는 한 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미가 있는 것으로 해석되어야 하며, 본 발명의 명세서에서 명백하게 정의하지 않는 한 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.In addition, unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Terms such as those defined in a commonly used dictionary should be interpreted as having a meaning consistent with the meaning in the context of the related art, and unless explicitly defined in the specification of the present invention, it should be interpreted in an ideal or excessively formal meaning. doesn't happen

이하, 첨부된 도면을 참조하여 본 발명의 실시예를 보다 상세히 설명한다. 다만, 이하의 설명에서는 본 발명의 요지를 불필요하게 흐릴 우려가 있는 경우, 널리 알려진 기능이나 구성에 관한 구체적 설명은 생략하기로 한다.Hereinafter, embodiments of the present invention will be described in more detail with reference to the accompanying drawings. However, in the following description, if there is a risk of unnecessarily obscuring the gist of the present invention, detailed descriptions of well-known functions or configurations will be omitted.

도 1은 유사 컨텐츠 추천 장치의 블록도의 일 실시예를 도시한 도면이다.1 is a diagram illustrating an embodiment of a block diagram of an apparatus for recommending similar contents.

도 1의 유사 컨텐츠 추천 장치(100)는 IPTV 서비스 사업자가 운용하는, 하나 이상의 위치에 설치되는 하나 이상의 서버 컴퓨터에서 실행되는 컴퓨터 프로그램들로서 구현되는 시스템의 일 예일 수 있다. 도 1에 도시된 바와 같이, 유사 컨텐츠 추천 장치(100)는 데이터베이스부(110) 및 데이터베이스부(110)에 통신 가능하게 결합된 프로세싱 엔진(120)을 포함할 수 있다. 데이터베이스부(110)는 컨텐츠 관련 데이터를 저장할 수 있다. 컨텐츠 관련 데이터는 컨텐츠 테이블에 관한 데이터를 포함할 수 있다. 컨텐츠 테이블에는 컨텐츠들의 각각에 대하여 해당 컨텐츠를 시청한 사용자들의 ID들이 연관되어 저장된다. 본 명세서에서 사용자가 컨텐츠를 시청하였다는 의미는 사용자가 컨텐츠의 예고편을 시청하거나 컨텐츠를 구매하여 그 본편을 시청한 경우 등을 망라하는 의미로 해석되어야 한다. 컨텐츠 테이블의 일 실시예를 도시한 도 2를 참조하면, 컨텐츠 별로 해당 컨텐츠를 시청하거나 조회한 사용자들의 ID들(Identifications)이 나열되어 있다. 도시된 실시예에 따르면, 컨텐츠 1은 사용자 10, 사용자 33, 사용자 72 및 사용자 165에 의해 시청되거나 조회된 것으로 기록되어 있다. 또한 컨텐츠 3은 사용자 10, 사용자 72, 사용자 165 및 사용자 289에 의해 시청되거나 조회된 것으로 기록되어 있다. 도 2에 도시된 컨텐츠 테이블(200)은 단지 예시의 목적상 데이터를 서로 연관시켜 저장하는 방식을 개념적으로 도시한 것일 뿐이고 도 2에 도시된 사항이 저장된 데이터의 구조를 예시하거나 암시하는 것이 아님을 인식하여야 할 것이다.The similar content recommendation apparatus 100 of FIG. 1 may be an example of a system implemented as computer programs operated by an IPTV service provider and executed on one or more server computers installed in one or more locations. As shown in FIG. 1 , the similar content recommendation apparatus 100 may include a database unit 110 and a processing engine 120 communicatively coupled to the database unit 110 . The database unit 110 may store content-related data. The content-related data may include data about the content table. In the content table, IDs of users who have viewed the corresponding content for each of the content are stored in association with each other. In this specification, the meaning that the user watched the content should be interpreted as encompassing the case where the user watched the trailer of the content or purchased the content and watched the main part. Referring to FIG. 2 showing an embodiment of a content table, IDs (Identifications) of users who have viewed or inquired corresponding content for each content are listed. According to the illustrated embodiment, content 1 is recorded as viewed or viewed by user 10 , user 33 , user 72 , and user 165 . In addition, content 3 is recorded as viewed or viewed by user 10, user 72, user 165, and user 289. The content table 200 shown in FIG. 2 is only conceptually illustrating a method of storing data in association with each other for the purpose of illustration, and the contents shown in FIG. 2 do not illustrate or imply the structure of the stored data. will have to recognize

컨텐츠에 관한 데이터는 컨텐츠들에 대한 키워드 벡터들에 관한 데이터를 더 포함할 수 있다. 임의의 컨텐츠에 대한 키워드 벡터는 후보 키워드들의 총 개수에 해당하는 개수의 원소들을 가진다. 여기서 후보 키워드들은 IPTV 서비스에 의해 제공되는 컨텐츠들과 관련된 키워드들의 총 집합일 수 있다. 일 실시예에서, 후보 키워드는 컨텐츠와 관련된 메타 키워드이다. 키워드 벡터의 원소들은 후보 키워드들에 각각 대응하거나 연관되어 있다. 키워드 벡터의 원소들의 각각은 해당 컨텐츠에 있어서의 해당 후보 키워드의 중요도에 대응하는 크기의 원소 값을 가질 수 있다. 키워드 벡터의 원소들의 각각은 0 이상이고 최고값 이하인 값을 취할 수 있다. 예컨대 후보 키워드들의 총 개수가 5개이고 최고값이 10이고 컨텐츠 1번에 대한 키워드 벡터가 v1 = [7, 1, 9, 0, 2]이라고 가정하면, 컨텐츠 1번에 있어서의 후보 키워드 1번의 중요도는 7이고, 후보 키워드 2번의 중요도는 1이고, 후보 키워드 3번의 중요도는 9이고, 후보 키워드 5번의 중요도는 2이고, 후보 키워드 4번은 위 특정 컨텐츠와 관련이 없다는 것을 의미한다. 다른 예로서 컨텐츠 2번에 대한 키워드 벡터가 v2 = [1, 3, 0, 0, 10]이라고 가정하면, 컨텐츠 2번에 있어서의 후보 키워드 1번의 중요도는 1이고, 후보 키워드 2번의 중요도는 3이고, 후보 키워드 5번의 중요도는 10으로서 최고 수준이며, 후보 키워드 3번 및 4번은 컨텐츠 2번과 관련이 없다는 것을 의미한다. 또 다른 예로서 컨텐츠 3번에 대한 키워드 벡터가 v3 = [0, 0, 0, 4, 0]이라고 가정하면, 컨텐츠 3번에 있어서의 후보 키워드 4번의 중요도는 4이고, 나머지 후보 키워드들은 컨텐츠 3번과 관련이 없다는 것을 의미한다.The data about the content may further include data about keyword vectors for the content. A keyword vector for any content has a number of elements corresponding to the total number of candidate keywords. Here, the candidate keywords may be a total set of keywords related to contents provided by the IPTV service. In one embodiment, the candidate keyword is a meta keyword associated with the content. The elements of the keyword vector respectively correspond to or are associated with the candidate keywords. Each of the elements of the keyword vector may have an element value having a size corresponding to the importance of the corresponding candidate keyword in the corresponding content. Each of the elements of the keyword vector may take a value greater than or equal to zero and less than or equal to the highest value. For example, assuming that the total number of candidate keywords is 5, the highest value is 10, and the keyword vector for content 1 is v 1 = [7, 1, 9, 0, 2], The importance is 7, the importance of the candidate keyword No. 2 is 1, the importance of the candidate keyword No. 3 is 9, the importance of the candidate keyword No. 5 is 2, and the importance of the candidate keyword No. 4 is not related to the specific content above. As another example, assuming that the keyword vector for content 2 is v 2 = [1, 3, 0, 0, 10], the importance of candidate keyword #1 in content #2 is 1, and the importance of candidate keyword #2 is 3, the importance of candidate keyword No. 5 is 10, which is the highest level, and candidate keywords No. 3 and No. 4 are not related to content No. 2. As another example, assuming that the keyword vector for content #3 is v 3 = [0, 0, 0, 4, 0], the importance of candidate keyword #4 in content #3 is 4, and the remaining candidate keywords are That means it has nothing to do with number 3.

데이터베이스부(110)는 프로세싱 엔진(120)을 구현하기 위해 필요한 소프트웨어/펌웨어를 더 저장할 수 있다. 데이터베이스부(110)는, 플래시 메모리 타입(flash memory type), 하드 디스크 타입(hard disk type), 멀티미디어 카드(MultiMedia Card: MMC), 카드 타입의 메모리(예를 들어, SD(Secure Digital) 카드 또는 XD(eXtream Digital) 카드 등), RAM(Random Access Memory), SRAM(Static Random Access Memory), ROM(Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기 메모리, 자기 디스크 및 광 디스크 중 어느 하나의 저장 매체로 구현될 수 있으나, 당업자라면 데이터베이스부(110)의 구현 형태가 이에 한정되는 것이 아님을 알 수 있을 것이다.The database unit 110 may further store software/firmware necessary to implement the processing engine 120 . The database unit 110, a flash memory type (flash memory type), a hard disk type (hard disk type), a multimedia card (MultiMedia Card: MMC), a card type memory (eg, SD (Secure Digital) card or XD (eXtream Digital) cards, etc.), Random Access Memory (RAM), Static Random Access Memory (SRAM), Read-Only Memory (ROM), Electrically Erasable Programmable Read-Only Memory (EEPROM), Programmable Read-Only Memory (PROM) ), a magnetic memory, a magnetic disk, and an optical disk may be implemented as any one storage medium, but those skilled in the art will understand that the implementation form of the database unit 110 is not limited thereto.

프로세싱 엔진(120)은 사용자가 시청한 적어도 하나의 컨텐츠 중 특정 컨텐츠를 선정하고 이 특정 컨텐츠와의 유사도가 높은 다른 컨텐츠를 사용자에게 추천하는 것으로 결정하도록 설계될 수 있다. 이를 위해 프로세싱 엔진(120)은 IPTV 서비스에 의해 제공되는 컨텐츠들 중 사용자가 시청한 특정 컨텐츠를 제외한 어느 하나의 타겟 컨텐츠를 선정해 이를 사용자가 시청한 특정 컨텐츠와 비교하도록 구성될 수 있다. 프로세싱 엔진(120)은 컨텐츠 테이블(200)을 참조하여 특정 컨텐츠와 타겟 컨텐츠 간의 컨텐츠 기반 협업 필터링(content-based collaborative filtering: CF) 유사도를 산출하는 동작, 특정 컨텐츠에 대한 키워드 벡터와 타겟 컨텐츠에 대한 키워드 벡터를 이용하여 특정 컨텐츠와 타겟 컨텐츠 간의 키워드 유사도를 산출하는 동작, CF 유사도와 키워드 유사도를 가중 평균하여 최종 유사도를 산출하는 동작 및 최종 유사도에 근거하여 타겟 컨텐츠를 사용자에게 추천할 지의 여부를 결정하는 동작을 수행하도록 구성될 수 있다.The processing engine 120 may be designed to select a specific content from among at least one content viewed by the user and determine that other content having a high similarity to the specific content is recommended to the user. To this end, the processing engine 120 may be configured to select any one target content excluding the specific content viewed by the user from among the contents provided by the IPTV service and compare it with the specific content viewed by the user. The processing engine 120 refers to the content table 200 to calculate a content-based collaborative filtering (CF) similarity between a specific content and a target content, and a keyword vector for a specific content and a target content. The operation of calculating the keyword similarity between the specific content and the target content using a keyword vector, the operation of calculating the final similarity by weighted average of the CF similarity and the keyword similarity, and determining whether to recommend the target content to the user based on the final similarity It may be configured to perform an operation.

프로세싱 엔진(120)은 아래의 수학식 1 에 따라 특정 컨텐츠와 타겟 컨텐츠 간의 CF 유사도를 산출하는 동작을 수행하도록 더 구성될 수 있다.The processing engine 120 may be further configured to perform an operation of calculating a CF similarity between specific content and target content according to Equation 1 below.

Figure pat00035
Figure pat00035

여기서 w는 특정 컨텐츠를 시청한 사용자들의 ID들의 집합을 나타내고, Wi는 컨텐츠 i를 시청한 사용자들의 ID들의 집합을 나타내고,

Figure pat00036
는 w와 Wi의 합집합(union)을 나타내고,
Figure pat00037
는 w와 Wi의 합집합의 원소들의 개수를 나타내고,
Figure pat00038
는 w와 Wi의 교집합(intersection)을 나타내고,
Figure pat00039
는 w와 Wi의 교집합의 원소들의 개수를 나타내고, xi는 특정 컨텐츠와 컨텐츠 i간의 CF 유사도를 나타낸다.Here, w denotes a set of IDs of users who watched a specific content, W i denotes a set of IDs of users who watched content i,
Figure pat00036
represents the union of w and Wi,
Figure pat00037
represents the number of elements of the union of w and Wi,
Figure pat00038
represents the intersection of w and Wi,
Figure pat00039
denotes the number of elements of the intersection of w and Wi, and x i denotes the CF similarity between specific content and content i.

도 2의 컨텐츠 테이블(200)을 참조하여 예를 들어 보면, 컨텐츠 1번을 시청한 사용자들의 집합은 C1 ={10, 33, 72, 165}이고, 컨텐츠 4번을 시청한 사용자들의 집합은 C4 = {72, 162, 555}이므로, 컨텐츠 1번(특정 컨텐츠)과 컨텐츠 4번(타겟 컨텐츠) 간의 CF 유사도 x4 = 1 / 6 = 0.16이다. 다른 예를 들어 보면, 컨텐츠 1번을 시청한 사용자들의 집합은 C1 ={10, 33, 72, 165}이고, 컨텐츠 2번을 시청한 사용자들의 집합은 C2 = {10, 92, 165}이므로, 컨텐츠 1번(특정 컨텐츠)과 컨텐츠 2번(타겟 컨텐츠) 간의 CF 유사도 x2 = 2 / 5 = 0.4이다. 또 다른 예를 들어 보면, 컨텐츠 1번을 시청한 사용자들의 집합은 C1 ={10, 33, 72, 165}이고, 컨텐츠 3번을 시청한 사용자들의 집합은 C3 = {10, 72, 165, 289}이므로, 컨텐츠 1번(특정 컨텐츠)과 컨텐츠 3번(타겟 컨텐츠) 간의 CF 유사도 x3 = 3 / 5 = 0.6으로서 비교적 높은 값을 갖는다. 컨텐츠 1번과 컨텐츠 3번은 이들을 시청한 사용자들이 대부분 유사하기 때문이다.For example, referring to the content table 200 of FIG. 2 , the set of users who watched content 1 is C 1 ={10, 33, 72, 165}, and the set of users who watched content number 4 is Since C 4 = {72, 162, 555}, the CF similarity between content number 1 (specific content) and content number 4 (target content) x 4 = 1 / 6 = 0.16. As another example, the set of users who watched content 1 is C 1 ={10, 33, 72, 165}, and the set of users who watched content 2 is C 2 = {10, 92, 165} Therefore, the CF similarity between Content No. 1 (specific content) and Content No. 2 (target content) x 2 = 2 / 5 = 0.4. As another example, the set of users who watched content 1 is C 1 ={10, 33, 72, 165}, and the set of users who watched content 3 is C 3 = {10, 72, 165 , 289} so, content # 1 as the degree of similarity CF x 3 = 3/5 = 0.6 between (the specific content) and the content # 3 (the target content) has a relatively high value. This is because most of the users who watched the content 1 and the content 3 are similar.

프로세싱 엔진(120)은 아래의 수학식 2에 따라 특정 컨텐츠와 타겟 컨텐츠 간의 키워드 유사도를 산출하는 동작을 수행하도록 더 구성될 수 있다.The processing engine 120 may be further configured to perform an operation of calculating a keyword similarity between specific content and target content according to Equation 2 below.

Figure pat00040
Figure pat00040

여기서 k는 특정 컨텐츠에 대한 키워드 벡터이고, Ki는 컨텐츠 i에 대한 키워드 벡터이고,

Figure pat00041
는 특정 컨텐츠에 대한 키워드 벡터 k와 컨텐츠 i에 대한 키워드 벡터 Ki 간의 맨하탄 거리(Manhattan distance)이고, MAX는 키워드 벡터의 원소들이 취할 수 있는 최고값에 후보 키워드들의 총 개수를 곱한 값이고, yi는 특정 컨텐츠와 컨텐츠 i간의 키워드 유사도를 나타낸다.where k is a keyword vector for specific content, K i is a keyword vector for content i,
Figure pat00041
is the Manhattan distance between the keyword vector k for a specific content and the keyword vector K i for the content i, MAX is the maximum value that elements of the keyword vector can take multiplied by the total number of candidate keywords, y i represents the keyword similarity between specific content and content i.

전술한 예에서와 같이 키워드 벡터의 원소들이 취할 수 있는 최고값이 10이고 후보 키워드들의 총 개수가 5개이고 컨텐츠 1번에 대한 키워드 벡터가 v1 = [7, 1, 9, 0, 2]이고 컨텐츠 2번에 대한 키워드 벡터가 v2 = [1, 3, 0, 0, 10]이고 컨텐츠 3번에 대한 키워드 벡터가 v3 = [0, 0, 0, 4, 0]인 경우에 있어서 키워드 유사도를 산출하는 예를 들어 보면, 컨텐츠 1번(특정 컨텐츠)과 컨텐츠 2번(타겟 컨텐츠) 간의 키워드 유사도 y2 = 1 - 25/50 = 0.5이다. 다른 예를 들어 보면, 컨텐츠 1번(특정 컨텐츠)과 컨텐츠 3번(타겟 컨텐츠) 간의 키워드 유사도 y3 = 1 - 23/50 = 0.54이다.As in the above example, the maximum value that the elements of the keyword vector can take is 10, the total number of candidate keywords is 5, the keyword vector for content 1 is v 1 = [7, 1, 9, 0, 2], A keyword in the case where the keyword vector for content 2 is v 2 = [1, 3, 0, 0, 10] and the keyword vector for content 3 is v 3 = [0, 0, 0, 4, 0] As an example of calculating the similarity, the keyword similarity y 2 = 1 - 25/50 = 0.5 between the first content (specific content) and the second content (target content). As another example, the keyword similarity y 3 = 1 - 23/50 = 0.54 between content number 1 (specific content) and content number 3 (target content).

프로세싱 엔진(120)은 아래의 수학식 3 및 수학식 4에 따라 최종 유사도를 산출하는 동작을 수행하도록 더 구성될 수 있다.The processing engine 120 may be further configured to perform an operation of calculating a final similarity according to Equations 3 and 4 below.

Figure pat00042
Figure pat00042

Figure pat00043
Figure pat00043

위 수학식 3에서

Figure pat00044
Figure pat00045
는 0 이상이고 1이하인 값이고,
Figure pat00046
Figure pat00047
의 합은 1이다. 일 실시예에서,
Figure pat00048
Figure pat00049
를 모두 0.5로 설정하여 CF 유사도와 키워드 유사도에 동일한 가중치를 곱하여 최종 유사도를 산출한다. 일 실시예에서,
Figure pat00050
보다
Figure pat00051
를 더 큰 값으로 설정하여 CF 유사도 보다 키워드 유사도에 더 큰 가중치를 곱하여 최종 유사도를 산출한다. 위 수학식 4에서
Figure pat00052
는 특정 컨텐츠에 대한 키워드 벡터의 맨하탄 거리이고,
Figure pat00053
는 컨텐츠 i에 대한 키워드 벡터의 맨하탄 거리이다. 위 수학식 3에서 Si는 특정 컨텐츠와 컨텐츠 i간의 최종 유사도를 나타낸다. 위 수학식 4에서
Figure pat00054
는 키워드 필터 함수로서 특정 컨텐츠와 컨텐츠 i가 어떠한 후보 키워드도 공유하지 않는 경우 Si를 0으로 만들기 위한 함수이다.In Equation 3 above
Figure pat00044
Wow
Figure pat00045
is a value greater than or equal to 0 and less than or equal to 1,
Figure pat00046
Wow
Figure pat00047
The sum of is 1. In one embodiment,
Figure pat00048
Wow
Figure pat00049
are set to 0.5, and the final similarity is calculated by multiplying the CF similarity and the keyword similarity by the same weight. In one embodiment,
Figure pat00050
see
Figure pat00051
is set to a larger value, and the final similarity is calculated by multiplying the keyword similarity by a larger weight than the CF similarity. In Equation 4 above
Figure pat00052
is the Manhattan distance of the keyword vector for a specific content,
Figure pat00053
is the Manhattan distance of the keyword vector for content i. In Equation 3 above, S i represents the final similarity between specific content and content i. In Equation 4 above
Figure pat00054
is a keyword filter function, and is a function for making S i 0 when a specific content and content i do not share any candidate keywords.

전술한 예의 경우를 빌어 최종 유사도를 산출하는 예를 들어 보면, 컨텐츠 1번에 대한 키워드 벡터 v1 = [7, 1, 9, 0, 2]이고 컨텐츠 2번에 대한 키워드 벡터 v2 = [1, 3, 0, 0, 10]이므로 키워드 필터 함수

Figure pat00055
는 1이고, x2 = 0.4이고 y2 = 0.5이므로,
Figure pat00056
Figure pat00057
가 모두 0.5인 경우 컨텐츠 1번(특정 컨텐츠)과 컨텐츠 2번(타겟 컨텐츠) 간의 최종 유사도 S2 = 0.45이다. 다른 예를 들어 보면, 컨텐츠 1번에 대한 키워드 벡터 v1 = [7, 1, 9, 0, 2]이고 컨텐츠 3번에 대한 키워드 벡터 v3 = [0, 0, 0, 4, 0]이므로, 컨텐츠 1번과 컨텐츠 3번은 어떠한 후보 키워드도 공유하지 않고 이에 따라 키워드 필터 함수
Figure pat00058
가 0이므로, 컨텐츠 1번(특정 컨텐츠)과 컨텐츠 3번(타겟 컨텐츠) 간의 최종 유사도 S3은 x3과 y3의 값에 상관 없이 0의 값을 갖게 된다. 이와 같이 특정 컨텐츠에 대한 키워드 벡터에서 0이 아닌 값을 갖는 원소들과 타겟 컨텐츠에 대한 키워드 벡터에서 0이 아닌 값을 갖는 원소들이 서로 배타적인 경우 특정 컨텐츠와 타겟 컨텐츠는 후보 키워드들 중 어떠한 후보 키워드도 공유하지 않는 것을 나타내며 이 경우 키워드 필터 함수
Figure pat00059
를 0으로 만들어 특정 컨텐츠와 타겟 컨텐츠 간의 최종 유사도를 0으로 결정한다.As an example of calculating the final similarity using the case of the above example, the keyword vector v 1 for content 1 = [7, 1, 9, 0, 2] and the keyword vector v 2 for content 2 = [1] , 3, 0, 0, 10], so the keyword filter function
Figure pat00055
is 1, since x 2 = 0.4 and y 2 = 0.5,
Figure pat00056
Wow
Figure pat00057
If both are 0.5, the final similarity S 2 = 0.45 between content 1 (specific content) and content 2 (target content). As another example, since the keyword vector v 1 for content 1 = [7, 1, 9, 0, 2] and the keyword vector v 3 for content 3 = [0, 0, 0, 4, 0], , content #1 and content #3 do not share any candidate keywords, and thus the keyword filter function
Figure pat00058
Since is 0, the final similarity S 3 between content 1 (specific content) and content 3 (target content) has a value of 0 regardless of the values of x 3 and y 3 . As described above, when elements having a non-zero value in the keyword vector for the specific content and elements having a non-zero value in the keyword vector for the target content are mutually exclusive, the specific content and the target content are selected as any candidate keyword among the candidate keywords. also indicates not to share, in this case the keyword filter function
Figure pat00059
is 0 to determine the final similarity between the specific content and the target content as 0.

프로세싱 엔진(120)은 최종 유사도가 선정된 임계값 이상인 경우 타겟 컨텐츠를 사용자에게 추천하는 것으로 결정하는 동작을 수행하도록 더 구성될 수 있다. 임계값을 낮게 또는 높게 설정함으로써 사용자에게 컨텐츠를 공격적으로 또는 보수적으로 추천하는 결정을 내리도록 프로세싱 엔진(120)을 설계할 수 있다.The processing engine 120 may be further configured to perform an operation of determining that the target content is recommended to the user when the final similarity is greater than or equal to a predetermined threshold. By setting the threshold low or high, the processing engine 120 can be designed to make decisions about aggressively or conservatively recommending content to a user.

이상에서는 프로세싱 엔진(120)이 하나의 타겟 컨텐츠를 선정하여 특정 컨텐츠와 비교함으로써 타겟 컨텐츠를 사용자에게 추천할 것인지의 여부를 결정하도록 구성되는 것으로서 설명하였으나, 특정 컨텐츠와 복수의 타겟 컨텐츠 간의 최종 유사도들을 산출하고, 최종 유사도들에 근거하여 복수의 타겟 컨텐츠 중 적어도 하나의 타겟 컨텐츠를 사용자에게 추천하는 것으로 결정하도록 프로세싱 엔진(120)을 구성하는 것이 가능하다.In the above description, the processing engine 120 is configured to determine whether to recommend the target content to the user by selecting one target content and comparing it with the specific content. It is possible to configure the processing engine 120 to calculate and determine to recommend at least one target content among a plurality of target content to the user based on the final similarities.

프로세싱 엔진(120)은, 응용 주문형 집적 회로(Application Specific Integrated Circuits: ASICs), 디지털 신호 처리기(Digital Signal Processors: DSPs), 디지털 신호 처리 소자(Digital Signal Processing Devices: DSPDs), 프로그램 가능 논리 소자(Programmable Logic Devices: PLDs), 현장 프로그램 가능 게이트 어레이(Field-Programmable Gate Arrays: FPGAs), 프로세서(processors), 제어기(controllers), 마이크로 컨트롤러(micro-controllers) 및 마이크로 프로세서(microprocessors) 중 적어도 하나에 기반한 하드웨어 플랫폼(hardware platform)으로서 구현될 수 있다. 프로세싱 엔진(120)은 또한 전술한 하드웨어 플랫폼 상에서 실행 가능한 펌웨어(firmware)/소프트웨어 모듈로 구현될 수 있다. 이 경우, 소프트웨어 모듈은 적절한 프로그램(program) 언어로 쓰여진 소프트웨어 애플리케이션(application)에 의해 구현될 수 있다.The processing engine 120 includes Application Specific Integrated Circuits (ASICs), Digital Signal Processors (DSPs), Digital Signal Processing Devices (DSPDs), and programmable logic devices (Programmable Logic Devices). Hardware based on at least one of Logic Devices (PLDs), Field-Programmable Gate Arrays (FPGAs), processors, controllers, micro-controllers, and microprocessors. It may be implemented as a hardware platform. The processing engine 120 may also be implemented as a firmware/software module executable on the hardware platform described above. In this case, the software module may be implemented by a software application written in an appropriate program language.

도 3은 유사 컨텐츠 추천 방법을 설명하기 위한 흐름도의 일 실시예를 도시한 도면이다.3 is a diagram illustrating an embodiment of a flowchart for explaining a method for recommending similar content.

도 3에 도시된 바와 같이, 본 유사 컨텐츠 추천 방법은 사용자가 시청한 적어도 하나의 컨텐츠 중 특정 컨텐츠를 선택하는 단계(S305)로부터 시작된다. 단계(S310)에서는 타겟 컨텐츠를 선택한다. 타겟 컨텐츠는 IPTV 서비스에 의해 제공되는 컨텐츠들 중 위 특정 컨텐츠를 제외한 어느 하나의 컨텐츠로서 선택될 수 있다. 단계(S315)에서는 특정 컨텐츠와 타겟 컨텐츠 간의 CF 유사도를 산출한다. CF 유사도는 위 수학식 1에 따라 산출될 수 있다. 단계(S320)에서는 특정 컨텐츠와 타겟 컨텐츠 간의 키워드 유사도를 산출한다. 키워드 유사도는 특정 컨텐츠에 대한 키워드 벡터 및 타겟 컨텐츠에 대한 키워드 벡터를 참조하여 위 수학식 2에 따라 산출될 수 있다. 단계(S325)에서는 CF 유사도와 키워드 유사도를 가중 평균하여 최종 유사도를 산출한다. 최종 유사도는 위 수학식 3 및 수학식 4에 따라 산출될 수 있다. 단계(S330)에서는 최종 유사도에 근거하여 타겟 컨텐츠를 사용자에게 추천할 지의 여부를 결정한다. 본 단계에서는 최종 유사도가 선정된 임계값 이상인 경우 타겟 컨텐츠를 사용자에게 추천하는 것으로 결정할 수 있다.As shown in FIG. 3 , the present similar content recommendation method starts with the step of selecting a specific content from among at least one content that the user has watched ( S305 ). In step S310, target content is selected. The target content may be selected as any one content other than the above specific content among content provided by the IPTV service. In step S315, a CF similarity between specific content and target content is calculated. The CF similarity may be calculated according to Equation 1 above. In step S320, the keyword similarity between specific content and target content is calculated. The keyword similarity may be calculated according to Equation 2 above with reference to the keyword vector for the specific content and the keyword vector for the target content. In step S325, the final similarity is calculated by averaging the CF similarity and the keyword similarity. The final similarity may be calculated according to Equations 3 and 4 above. In step S330, it is determined whether to recommend the target content to the user based on the final similarity. In this step, when the final similarity is greater than or equal to a predetermined threshold, it may be determined that the target content is recommended to the user.

이상의 설명에 있어서 어떤 구성 요소가 다른 구성 요소에 접속되거나 결합된다는 기재의 의미는 당해 구성 요소가 그 다른 구성 요소에 직접적으로 접속되거나 결합된다는 의미뿐만 아니라 이들이 그 사이에 개재된 하나 또는 그 이상의 타 구성 요소를 통해 접속되거나 결합될 수 있다는 의미를 포함하는 것으로 이해되어야 한다. 이외에도 구성 요소들 간의 관계를 기술하기 위한 용어들(예컨대, '간에', '사이에' 등)도 유사한 의미로 해석되어야 한다.In the above description, the meaning of the description that a component is connected to or coupled to another component means that the component is directly connected or coupled to the other component, as well as one or more other components interposed therebetween. It should be understood to include the meaning that may be connected or coupled through an element. In addition, terms for describing the relationship between elements (eg, 'between', 'between', etc.) should also be interpreted with similar meanings.

본원에 개시된 실시예들에 있어서, 도시된 구성 요소들의 배치는 발명이 구현되는 환경 또는 요구 사항에 따라 달라질 수 있다. 예컨대, 일부 구성 요소가 생략되거나 몇몇 구성 요소들이 통합되어 하나로 실시될 수 있다. 또한 일부 구성 요소들의 배치 순서 및 연결이 변경될 수 있다.In the embodiments disclosed herein, the arrangement of the illustrated components may vary depending on the environment or requirements in which the invention is implemented. For example, some components may be omitted or some components may be integrated and implemented as one. Also, the arrangement order and connection of some components may be changed.

이상에서는 본 발명의 다양한 실시예들에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예들에 한정되지 아니하며, 상술한 실시예들은 첨부하는 특허청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양하게 변형 실시될 수 있음은 물론이고, 이러한 변형 실시예들이 본 발명의 기술적 사상이나 범위와 별개로 이해되어져서는 아니 될 것이다. 따라서, 본 발명의 기술적 범위는 오직 첨부된 특허청구범위에 의해서만 정해져야 할 것이다.In the above, various embodiments of the present invention have been shown and described, but the present invention is not limited to the specific embodiments described above, and the above-described embodiments depart from the gist of the present invention as claimed in the appended claims. Without this, various modifications may be made by those of ordinary skill in the art to which the present invention pertains, and these modified embodiments should not be understood separately from the technical spirit or scope of the present invention. Accordingly, the technical scope of the present invention should be defined only by the appended claims.

100: 컨텐츠 추천 장치
110: 데이터베이스부
120: 프로세싱 엔진
200: 컨텐츠 테이블
100: content recommendation device
110: database unit
120: processing engine
200: content table

Claims (28)

컨텐츠 추천 방법으로서,
사용자가 시청한 적어도 하나의 컨텐츠 중 특정 컨텐츠를 선택하는 단계,
타겟 컨텐츠를 선택하는 단계,
상기 특정 컨텐츠와 상기 타겟 컨텐츠 간의 컨텐츠 기반 협업 필터링(Collaborative Filtering: CF) 유사도를 산출하는 단계,
상기 특정 컨텐츠와 상기 타겟 컨텐츠 간의 키워드 유사도를 산출하는 단계,
상기 CF 유사도와 상기 키워드 유사도를 가중 평균하여 최종 유사도를 산출하는 단계, 및
상기 최종 유사도에 근거하여 상기 타겟 컨텐츠를 상기 사용자에게 추천할 지의 여부를 결정하는 단계를 포함하는 컨텐츠 추천 방법.
As a content recommendation method,
selecting a specific content from among at least one content watched by the user;
selecting target content;
Calculating a content-based collaborative filtering (CF) similarity between the specific content and the target content;
calculating a keyword similarity between the specific content and the target content;
calculating a final similarity by weighted average of the CF similarity and the keyword similarity; and
and determining whether to recommend the target content to the user based on the final similarity.
제1항에 있어서,
상기 특정 컨텐츠와 상기 타겟 컨텐츠 간의 컨텐츠 기반 협업 필터링(collaborative filtering: CF) 유사도를 산출하는 단계는, 아래의 식
Figure pat00060

- 여기서 w는 상기 특정 컨텐츠를 시청한 사용자들의 ID들(Identifications)의 집합을 나타내고, Wi는 컨텐츠 i를 시청한 사용자들의 ID들의 집합을 나타내고,
Figure pat00061
는 w와 Wi의 합집합(union)을 나타내고,
Figure pat00062
는 w와 Wi의 합집합의 원소들의 개수를 나타내고,
Figure pat00063
는 w와 Wi의 교집합(intersection)을 나타내고,
Figure pat00064
는 w와 Wi의 교집합의 원소들의 개수를 나타내고, xi는 상기 특정 컨텐츠와 컨텐츠 i간의 CF 유사도를 나타냄 - 에 따라 상기 CF 유사도를 산출하는 단계를 포함하는, 컨텐츠 추천 방법.
According to claim 1,
Calculating the content-based collaborative filtering (CF) similarity between the specific content and the target content includes the following formula
Figure pat00060

- Here, w represents a set of IDs (Identifications) of users who have viewed the specific content, and W i represents a set of IDs of users who have viewed content i,
Figure pat00061
represents the union of w and Wi,
Figure pat00062
represents the number of elements of the union of w and Wi,
Figure pat00063
represents the intersection of w and Wi,
Figure pat00064
represents the number of elements of the intersection of w and Wi, and x i represents the CF similarity between the specific content and the content i - calculating the CF similarity according to .
제2항에 있어서,
상기 특정 컨텐츠와 상기 타겟 컨텐츠 간의 키워드 유사도를 산출하는 단계는, 상기 특정 컨텐츠에 대한 키워드 벡터 및 상기 타겟 컨텐츠에 대한 키워드 벡터를 참조하는 단계를 포함하는, 컨텐츠 추천 방법.
3. The method of claim 2,
Calculating the keyword similarity between the specific content and the target content includes referring to a keyword vector for the specific content and a keyword vector for the target content.
제3항에 있어서,
상기 특정 컨텐츠에 대한 키워드 벡터는 후보 키워드들의 총 개수에 해당하는 개수의 원소들을 가지며, 상기 원소들은 상기 후보 키워드들에 각각 대응하며, 상기 원소들의 각각은 상기 특정 컨텐츠에 있어서의 상기 해당 후보 키워드의 중요도에 대응하는 크기의 원소 값을 가지며, 상기 원소들의 각각은 0 이상이고 최고값 이하인 값을 취하는, 컨텐츠 추천 방법.
4. The method of claim 3,
The keyword vector for the specific content has a number of elements corresponding to the total number of candidate keywords, the elements respectively correspond to the candidate keywords, and each of the elements is the number of elements of the corresponding candidate keyword in the specific content. A method for recommending content, wherein each of the elements has a value of a size corresponding to importance, and each of the elements takes a value greater than or equal to 0 and less than or equal to a maximum value.
제4항에 있어서,
상기 특정 컨텐츠에 대한 키워드 벡터의 특정 원소의 원소 값이 0인 경우 상기 특정 원소에 대응하는 상기 후보 키워드가 상기 특정 컨텐츠와 관련이 없음을 나타내는, 컨텐츠 추천 방법.
5. The method of claim 4,
When an element value of a specific element of the keyword vector for the specific content is 0, it indicates that the candidate keyword corresponding to the specific element is not related to the specific content.
제3항에 있어서,
상기 타겟 컨텐츠에 대한 키워드 벡터는 후보 키워드들의 총 개수에 해당하는 개수의 원소들을 가지며, 상기 원소들은 상기 후보 키워드들에 각각 대응하며, 상기 원소들의 각각은 상기 타겟 컨텐츠에 있어서의 상기 해당 후보 키워드의 중요도에 대응하는 크기의 원소 값을 가지며, 상기 원소들의 각각은 0 이상이고 최고값 이하인 값을 취하는, 컨텐츠 추천 방법.
4. The method of claim 3,
The keyword vector for the target content has a number of elements corresponding to the total number of candidate keywords, the elements respectively correspond to the candidate keywords, and each of the elements is the number of elements of the corresponding candidate keyword in the target content. A method for recommending content, wherein each of the elements has a value of a size corresponding to importance, and each of the elements takes a value greater than or equal to 0 and less than or equal to a maximum value.
제6항에 있어서,
상기 타겟 컨텐츠에 대한 키워드 벡터의 특정 원소의 원소 값이 0인 경우 상기 특정 원소에 대응하는 상기 후보 키워드가 상기 타겟 컨텐츠와 관련이 없음을 나타내는, 컨텐츠 추천 방법.
7. The method of claim 6,
When an element value of a specific element of the keyword vector for the target content is 0, it indicates that the candidate keyword corresponding to the specific element is not related to the target content.
제4항 또는 제6항에 있어서,
상기 특정 컨텐츠와 상기 타겟 컨텐츠 간의 키워드 유사도를 산출하는 단계는, 아래의 식
Figure pat00065

- 여기서 k는 상기 특정 컨텐츠에 대한 키워드 벡터이고, Ki는 컨텐츠 i에 대한 키워드 벡터이고,
Figure pat00066
는 상기 특정 컨텐츠에 대한 키워드 벡터 k와 컨텐츠 i에 대한 키워드 벡터 Ki 간의 맨하탄 거리(Manhattan distance)이고, MAX는 상기 최고값에 상기 후보 키워드들의 총 개수를 곱한 값이고, yi는 상기 특정 컨텐츠와 컨텐츠 i간의 키워드 유사도를 나타냄 - 에 따라 상기 특정 컨텐츠와 상기 타겟 컨텐츠 간의 키워드 유사도를 산출하는 단계를 포함하는, 컨텐츠 추천 방법.
7. The method of claim 4 or 6,
Calculating the keyword similarity between the specific content and the target content includes the following formula
Figure pat00065

- where k is a keyword vector for the specific content, K i is a keyword vector for content i,
Figure pat00066
is the Manhattan distance between the keyword vector k for the specific content and the keyword vector K i for the content i, MAX is the maximum value multiplied by the total number of the candidate keywords, and y i is the specific content and calculating the keyword similarity between the specific content and the target content according to - indicating the keyword similarity between the content i and the content i.
제8항에 있어서,
상기 CF 유사도와 상기 키워드 유사도를 가중 평균하여 최종 유사도를 산출하는 단계는, 아래의 식
Figure pat00067

Figure pat00068

- 여기서
Figure pat00069
Figure pat00070
는 0 이상이고 1이하인 값이고,
Figure pat00071
Figure pat00072
의 합은 1이고,
Figure pat00073
는 상기 특정 컨텐츠에 대한 키워드 벡터의 맨하탄 거리이고,
Figure pat00074
는 컨텐츠 i에 대한 키워드 벡터의 맨하탄 거리이고,
Figure pat00075
는 키워드 필터 함수이고, Si는 상기 특정 컨텐츠와 컨텐츠 i간의 최종 유사도를 나타냄 - 에 따라 상기 최종 유사도를 산출하는 단계를 포함하는, 컨텐츠 추천 방법.
9. The method of claim 8,
The step of calculating the final similarity by weighted average of the CF similarity and the keyword similarity is as follows:
Figure pat00067

Figure pat00068

- here
Figure pat00069
Wow
Figure pat00070
is a value greater than or equal to 0 and less than or equal to 1,
Figure pat00071
Wow
Figure pat00072
the sum of is 1,
Figure pat00073
is the Manhattan distance of the keyword vector for the specific content,
Figure pat00074
is the Manhattan distance of the keyword vector for content i,
Figure pat00075
is a keyword filter function, and S i represents the final similarity between the specific content and the content i - calculating the final similarity according to .
제9항에 있어서,
상기 특정 컨텐츠에 대한 키워드 벡터에서 0이 아닌 값을 갖는 원소들과 상기 타겟 컨텐츠에 대한 키워드 벡터에서 0이 아닌 값을 갖는 원소들이 서로 배타적인 경우 상기 특정 컨텐츠와 상기 타겟 컨텐츠는 상기 후보 키워드들 중 어떠한 후보 키워드도 공유하지 않는 것을 나타내며 상기 키워드 필터 함수
Figure pat00076
는 0의 값을 갖는, 컨텐츠 추천 방법.
10. The method of claim 9,
When elements having a non-zero value in the keyword vector for the specific content and elements having a non-zero value in the keyword vector for the target content are mutually exclusive, the specific content and the target content are selected from among the candidate keywords. Indicates that no candidate keywords are shared and the keyword filter function
Figure pat00076
has a value of 0, the content recommendation method.
제1항에 있어서,
상기 최종 유사도에 근거하여 상기 타겟 컨텐츠를 상기 사용자에게 추천할 지의 여부를 결정하는 단계는, 상기 최종 유사도가 선정된 임계값 이상인 경우 상기 타겟 컨텐츠를 상기 사용자에게 추천하는 것으로 결정하는 단계를 포함하는, 컨텐츠 추천 방법.
According to claim 1,
The determining whether to recommend the target content to the user based on the final similarity includes determining that the target content is recommended to the user when the final similarity is greater than or equal to a predetermined threshold value, How to recommend content.
컨텐츠 추천 방법으로서,
사용자가 시청한 적어도 하나의 컨텐츠 중 특정 컨텐츠를 선택하는 단계,
복수의 타겟 컨텐츠를 선택하는 단계,
상기 특정 컨텐츠와 상기 복수의 타겟 컨텐츠 간의 최종 유사도들을 산출하는 단계, 및
상기 최종 유사도들에 근거하여 상기 복수의 타겟 컨텐츠 중 적어도 하나의 타겟 컨텐츠를 상기 사용자에게 추천하는 것으로 결정하는 단계를 포함하고,
상기 최종 유사도들의 각각은 상기 특정 컨텐츠와 상기 해당 타겟 컨텐츠 간의 컨텐츠 기반 협업 필터링(collaborative filtering: CF) 유사도 및 상기 특정 컨텐츠와 상기 해당 타겟 컨텐츠 간의 키워드 유사도에 기초하여 산출되는, 컨텐츠 추천 방법.
As a content recommendation method,
selecting a specific content from among at least one content watched by the user;
selecting a plurality of target contents;
calculating final similarities between the specific content and the plurality of target content; and
determining to recommend at least one target content among the plurality of target contents to the user based on the final similarities;
Each of the final similarities is calculated based on a content-based collaborative filtering (CF) similarity between the specific content and the corresponding target content and a keyword similarity between the specific content and the corresponding target content.
제12항에 있어서,
상기 최종 유사도들의 각각은 상기 CF 유사도와 상기 키워드 유사도를 가중 평균하여 산출되는, 컨텐츠 추천 방법.
13. The method of claim 12,
Each of the final similarities is calculated by weighted average of the CF similarity and the keyword similarity.
컨텐츠 추천을 위한 장치로서,
컨텐츠 테이블 및 컨텐츠들에 대한 키워드 벡터들을 저장하는 데이터베이스부 - 상기 컨텐츠 테이블에는 상기 컨텐츠들의 각각에 대하여 상기 해당 컨텐츠를 시청한 사용자들의 ID들이 연관되어 저장됨 -, 및
프로세싱 엔진을 포함하고,
상기 프로세싱 엔진은, 상기 컨텐츠 테이블을 참조하여 사용자가 시청한 특정 컨텐츠와 타겟 컨텐츠 간의 컨텐츠 기반 협업 필터링(Collaborative Filtering: CF) 유사도를 산출하는 동작, 상기 특정 컨텐츠에 대한 키워드 벡터와 상기 타겟 컨텐츠에 대한 키워드 벡터를 이용하여 상기 특정 컨텐츠와 상기 타겟 컨텐츠 간의 키워드 유사도를 산출하는 동작, 상기 CF 유사도와 상기 키워드 유사도를 가중 평균하여 최종 유사도를 산출하는 동작 및 상기 최종 유사도에 근거하여 상기 타겟 컨텐츠를 상기 사용자에게 추천할 지의 여부를 결정하는 동작을 수행하도록 구성되는, 컨텐츠 추천 장치.
A device for content recommendation, comprising:
A database unit for storing keyword vectors for a content table and contents, wherein IDs of users who have viewed the corresponding contents are stored in association with each of the contents in the contents table; and
a processing engine;
The processing engine refers to an operation of calculating a content-based collaborative filtering (CF) similarity between the specific content viewed by the user and the target content with reference to the content table, a keyword vector for the specific content and the target content. Calculating a keyword similarity between the specific content and the target content using a keyword vector, calculating a final similarity by weighted average of the CF similarity and the keyword similarity, and selecting the target content based on the final similarity to the user A content recommendation device, configured to perform an operation of determining whether to recommend to a user.
제14항에 있어서,
상기 프로세싱 엔진은, 아래의 식
Figure pat00077

- 여기서 w는 상기 특정 컨텐츠를 시청한 사용자들의 ID들의 집합을 나타내고, Wi는 컨텐츠 i를 시청한 사용자들의 ID들의 집합을 나타내고,
Figure pat00078
는 w와 Wi의 합집합(union)을 나타내고,
Figure pat00079
는 w와 Wi의 합집합의 원소들의 개수를 나타내고,
Figure pat00080
는 w와 Wi의 교집합(intersection)을 나타내고,
Figure pat00081
는 w와 Wi의 교집합의 원소들의 개수를 나타내고, xi는 상기 특정 컨텐츠와 컨텐츠 i간의 CF 유사도를 나타냄 - 에 따라 상기 CF 유사도를 산출하는 동작을 수행하도록 더 구성되는, 컨텐츠 추천 장치.
15. The method of claim 14,
The processing engine is
Figure pat00077

- Here, w represents a set of IDs of users who have viewed the specific content, and W i represents a set of IDs of users who have viewed content i,
Figure pat00078
represents the union of w and Wi,
Figure pat00079
represents the number of elements of the union of w and Wi,
Figure pat00080
represents the intersection of w and Wi,
Figure pat00081
represents the number of elements of the intersection of w and Wi, and x i represents the CF similarity between the specific content and the content i.
제15항에 있어서,
상기 특정 컨텐츠에 대한 키워드 벡터는 후보 키워드들의 총 개수에 해당하는 개수의 원소들을 가지며, 상기 원소들은 상기 후보 키워드들에 각각 대응하며, 상기 원소들의 각각은 상기 특정 컨텐츠에 있어서의 상기 해당 후보 키워드의 중요도에 대응하는 크기의 원소 값을 가지며, 상기 원소들의 각각은 0 이상이고 최고값 이하인 값을 취하는, 컨텐츠 추천 장치.
16. The method of claim 15,
The keyword vector for the specific content has a number of elements corresponding to the total number of candidate keywords, the elements respectively correspond to the candidate keywords, and each of the elements is the number of elements of the corresponding candidate keyword in the specific content. A content recommendation apparatus having an element value of a size corresponding to importance, wherein each of the elements takes a value greater than or equal to 0 and less than or equal to a maximum value.
제16항에 있어서,
상기 특정 컨텐츠에 대한 키워드 벡터의 특정 원소의 원소 값이 0인 경우 상기 특정 원소에 대응하는 상기 후보 키워드가 상기 특정 컨텐츠와 관련이 없음을 나타내는, 컨텐츠 추천 장치.
17. The method of claim 16,
When an element value of a specific element of the keyword vector for the specific content is 0, it indicates that the candidate keyword corresponding to the specific element is not related to the specific content.
제15항에 있어서,
상기 타겟 컨텐츠에 대한 키워드 벡터는 후보 키워드들의 총 개수에 해당하는 개수의 원소들을 가지며, 상기 원소들은 상기 후보 키워드들에 각각 대응하며, 상기 원소들의 각각은 상기 타겟 컨텐츠에 있어서의 상기 해당 후보 키워드의 중요도에 대응하는 크기의 원소 값을 가지며, 상기 원소들의 각각은 0 이상이고 최고값 이하인 값을 취하는, 컨텐츠 추천 장치.
16. The method of claim 15,
The keyword vector for the target content has a number of elements corresponding to the total number of candidate keywords, the elements respectively correspond to the candidate keywords, and each of the elements is the number of elements of the corresponding candidate keyword in the target content. A content recommendation apparatus having an element value of a size corresponding to importance, wherein each of the elements takes a value greater than or equal to 0 and less than or equal to a maximum value.
제18항에 있어서,
상기 타겟 컨텐츠에 대한 키워드 벡터의 특정 원소의 원소 값이 0인 경우 상기 특정 원소에 대응하는 상기 후보 키워드가 상기 타겟 컨텐츠와 관련이 없음을 나타내는, 컨텐츠 추천 장치.
19. The method of claim 18,
When an element value of a specific element of the keyword vector for the target content is 0, it indicates that the candidate keyword corresponding to the specific element is not related to the target content.
제16항 또는 제18항에 있어서,
상기 프로세싱 엔진은, 아래의 식
Figure pat00082

- 여기서 k는 상기 특정 컨텐츠에 대한 키워드 벡터이고, Ki는 컨텐츠 i에 대한 키워드 벡터이고,
Figure pat00083
는 상기 특정 컨텐츠에 대한 키워드 벡터 k와 컨텐츠 i에 대한 키워드 벡터 Ki 간의 맨하탄 거리(Manhattan distance)이고, MAX는 상기 최고값에 상기 후보 키워드들의 총 개수를 곱한 값이고, yi는 상기 특정 컨텐츠와 컨텐츠 i간의 키워드 유사도를 나타냄 - 에 따라 상기 특정 컨텐츠와 상기 타겟 컨텐츠 간의 키워드 유사도를 산출하는 동작을 수행하도록 더 구성되는, 컨텐츠 추천 장치.
19. The method of claim 16 or 18,
The processing engine is
Figure pat00082

- where k is a keyword vector for the specific content, K i is a keyword vector for content i,
Figure pat00083
is the Manhattan distance between the keyword vector k for the specific content and the keyword vector K i for the content i, MAX is the maximum value multiplied by the total number of the candidate keywords, and y i is the specific content and indicating the keyword similarity between the content i and the content i, further configured to perform an operation of calculating the keyword similarity between the specific content and the target content according to
제20항에 있어서,
상기 프로세싱 엔진은, 아래의 식
Figure pat00084

Figure pat00085

- 여기서
Figure pat00086
Figure pat00087
는 0 이상이고 1이하인 값이고,
Figure pat00088
Figure pat00089
의 합은 1이고,
Figure pat00090
는 상기 특정 컨텐츠에 대한 키워드 벡터의 맨하탄 거리이고,
Figure pat00091
는 컨텐츠 i에 대한 키워드 벡터의 맨하탄 거리이고,
Figure pat00092
는 키워드 필터 함수이고, Si는 상기 특정 컨텐츠와 컨텐츠 i간의 최종 유사도를 나타냄 - 에 따라 상기 최종 유사도를 산출하는 동작을 수행하도록 더 구성되는, 컨텐츠 추천 장치.
21. The method of claim 20,
The processing engine is
Figure pat00084

Figure pat00085

- here
Figure pat00086
Wow
Figure pat00087
is a value greater than or equal to 0 and less than or equal to 1,
Figure pat00088
Wow
Figure pat00089
the sum of is 1,
Figure pat00090
is the Manhattan distance of the keyword vector for the specific content,
Figure pat00091
is the Manhattan distance of the keyword vector for content i,
Figure pat00092
is a keyword filter function, and S i represents a final degree of similarity between the specific content and content i.
제21항에 있어서,
상기 특정 컨텐츠에 대한 키워드 벡터에서 0이 아닌 값을 갖는 원소들과 상기 타겟 컨텐츠에 대한 키워드 벡터에서 0이 아닌 값을 갖는 원소들이 서로 배타적인 경우 상기 특정 컨텐츠와 상기 타겟 컨텐츠는 상기 후보 키워드들 중 어떠한 후보 키워드도 공유하지 않는 것을 나타내며 상기 키워드 필터 함수
Figure pat00093
는 0의 값을 갖는, 컨텐츠 추천 장치.
22. The method of claim 21,
When elements having a non-zero value in the keyword vector for the specific content and elements having a non-zero value in the keyword vector for the target content are mutually exclusive, the specific content and the target content are selected from among the candidate keywords. Indicates that no candidate keywords are shared and the keyword filter function
Figure pat00093
has a value of 0, a content recommendation device.
제14항에 있어서,
상기 프로세싱 엔진은, 상기 최종 유사도가 선정된 임계값 이상인 경우 상기 타겟 컨텐츠를 상기 사용자에게 추천하는 것으로 결정하는 동작을 수행하도록 더 구성되는, 컨텐츠 추천 장치.
15. The method of claim 14,
The processing engine is further configured to perform an operation of determining to recommend the target content to the user when the final similarity is greater than or equal to a predetermined threshold.
컨텐츠 추천을 위한 장치로서,
컨텐츠 관련 데이터를 저장하는 데이터베이스부, 및
프로세싱 엔진을 포함하고,
상기 프로세싱 엔진은, 상기 컨텐츠 관련 데이터를 참조하여 사용자가 시청한 특정 컨텐츠와 복수의 타겟 컨텐츠 간의 최종 유사도들을 산출하고, 상기 최종 유사도들에 근거하여 상기 복수의 타겟 컨텐츠 중 적어도 하나의 타겟 컨텐츠를 상기 사용자에게 추천하는 것으로 결정하도록 구성되고,
상기 프로세싱 엔진은, 상기 최종 유사도들의 각각을 상기 특정 컨텐츠와 상기 해당 타겟 컨텐츠 간의 컨텐츠 기반 협업 필터링(collaborative filtering: CF) 유사도 및 상기 특정 컨텐츠와 상기 해당 타겟 컨텐츠 간의 키워드 유사도에 기초하여 산출하도록 더 구성되는, 컨텐츠 추천 장치.
A device for content recommendation, comprising:
a database unit for storing content-related data; and
a processing engine;
The processing engine calculates final similarities between the specific content viewed by the user and a plurality of target contents with reference to the content-related data, and selects at least one target content from among the plurality of target contents based on the final similarities is configured to determine a recommendation to a user;
The processing engine is further configured to calculate each of the final similarities based on a content-based collaborative filtering (CF) similarity between the specific content and the corresponding target content and a keyword similarity between the specific content and the corresponding target content. A content recommendation device.
제24항에 있어서,
상기 컨텐츠 관련 데이터는 컨텐츠 테이블 및 컨텐츠들에 대한 키워드 벡터들에 관한 데이터를 포함하며, 상기 컨텐츠 테이블에는 상기 컨텐츠들의 각각에 대하여 상기 해당 컨텐츠를 시청한 사용자들의 ID들이 연관되어 저장되는, 컨텐츠 추천 장치.
25. The method of claim 24,
The content-related data includes a content table and data on keyword vectors for the content, and the content table stores IDs of users who have viewed the corresponding content in association with each of the content items. .
제24항에 있어서,
상기 프로세싱 엔진은, 상기 최종 유사도들의 각각을 상기 CF 유사도와 상기 키워드 유사도를 가중 평균하여 산출하도록 더 구성되는, 컨텐츠 추천 장치.
25. The method of claim 24,
The processing engine is further configured to calculate each of the final similarities by weighted average of the CF similarity and the keyword similarity.
프로그램을 기록한 컴퓨터 판독가능 기록매체로서, 상기 프로그램은 명령어들을 포함하고, 상기 명령어들은 컴퓨터에 의해 실행될 때 제1항 내지 제11항 중 어느 한 항에 따른 방법을 수행하는, 컴퓨터 판독가능 기록매체.
A computer-readable recording medium recording a program, the program including instructions, which, when executed by a computer, perform the method according to any one of claims 1 to 11.
프로그램을 기록한 컴퓨터 판독가능 기록매체로서, 상기 프로그램은 명령어들을 포함하고, 상기 명령어들은 컴퓨터에 의해 실행될 때 제12항 및 제13항 중 어느 한 항에 따른 방법을 수행하는, 컴퓨터 판독가능 기록매체.A computer-readable recording medium recording a program, the program including instructions, which, when executed by a computer, perform the method according to any one of claims 12 and 13.
KR1020200059377A 2020-05-18 2020-05-18 Method and Apparatus for Recommendation of Similar Content Items KR102380871B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200059377A KR102380871B1 (en) 2020-05-18 2020-05-18 Method and Apparatus for Recommendation of Similar Content Items

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200059377A KR102380871B1 (en) 2020-05-18 2020-05-18 Method and Apparatus for Recommendation of Similar Content Items

Publications (2)

Publication Number Publication Date
KR20210142484A true KR20210142484A (en) 2021-11-25
KR102380871B1 KR102380871B1 (en) 2022-03-30

Family

ID=78745988

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200059377A KR102380871B1 (en) 2020-05-18 2020-05-18 Method and Apparatus for Recommendation of Similar Content Items

Country Status (1)

Country Link
KR (1) KR102380871B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102632804B1 (en) * 2023-10-30 2024-02-05 주식회사 알엔디비즈파트너 Method, apparatus and system for providing customized content creation and processing platform service using artificial intelligence model
WO2024111892A1 (en) * 2022-11-25 2024-05-30 삼성전자 주식회사 Computing device and operation method thereof

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013175038A (en) * 2012-02-24 2013-09-05 Nec Personal Computers Ltd Content recommending device, content recommending system, control method, and program
KR20130134046A (en) * 2012-05-30 2013-12-10 전북대학교산학협력단 Cosine similarity based expert recommendation technique using hybrid collaborative filtering
KR20150076275A (en) * 2013-12-26 2015-07-07 주식회사 케이티 System and method for contents recommendation using semantic clusters

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013175038A (en) * 2012-02-24 2013-09-05 Nec Personal Computers Ltd Content recommending device, content recommending system, control method, and program
KR20130134046A (en) * 2012-05-30 2013-12-10 전북대학교산학협력단 Cosine similarity based expert recommendation technique using hybrid collaborative filtering
KR20150076275A (en) * 2013-12-26 2015-07-07 주식회사 케이티 System and method for contents recommendation using semantic clusters

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024111892A1 (en) * 2022-11-25 2024-05-30 삼성전자 주식회사 Computing device and operation method thereof
KR102632804B1 (en) * 2023-10-30 2024-02-05 주식회사 알엔디비즈파트너 Method, apparatus and system for providing customized content creation and processing platform service using artificial intelligence model

Also Published As

Publication number Publication date
KR102380871B1 (en) 2022-03-30

Similar Documents

Publication Publication Date Title
US9654825B2 (en) Systems and methods for detecting inconsistent user actions and providing feedback
US9213986B1 (en) Modified media conforming to user-established levels of media censorship
US10129596B2 (en) Adaptive row selection
US9710469B2 (en) Efficient data distribution to multiple devices
US9430532B2 (en) Media content rankings for discovery of novel content
US20120123992A1 (en) System and method for generating multimedia recommendations by using artificial intelligence concept matching and latent semantic analysis
US9870581B1 (en) Content item element marketplace
WO2012173670A1 (en) Systems and methods for providing media recommendations
KR20110133024A (en) Singular, collective and automated creation of a media guide for online content
CN106471819B (en) System and method for improving accuracy in a media asset recommendation model
KR102380871B1 (en) Method and Apparatus for Recommendation of Similar Content Items
US20160314404A1 (en) Systems and methods for improving accuracy in media asset recommendations based on data from multiple data spaces
US20160314410A1 (en) Systems and methods for improving accuracy in media asset recommendations based on data from one data space
CN109241346B (en) Video recommendation method and device
US20230153353A1 (en) Aggregated content editing services (aces), and related systems, methods, and apparatus
US20180234732A1 (en) Method and system for re-aggregation and optimization of media
US20180109827A1 (en) User affinity for video content and video content recommendations
US20160048595A1 (en) Filtering Content Suggestions for Multiple Users
US8620966B2 (en) Network content modification
KR102357357B1 (en) Method and Apparatus for Content Recommendation Based on User-Based Collaborative Filtering
KR102399834B1 (en) Method and Apparatus for VOD Content Recommendation
KR102391640B1 (en) Method and Apparatus for VOD Content Recommendation
Ferreira et al. Welfare properties of recommender systems: Theory and results from a randomized experiment
KR102391644B1 (en) Method and Apparatus for VOD Content Recommendation
KR102536499B1 (en) Method and Apparatus for Deep Learning Based Content Recommendation

Legal Events

Date Code Title Description
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant