KR102222935B1 - Playlist Recommendation Method Using Collaborative Autoencoders - Google Patents
Playlist Recommendation Method Using Collaborative Autoencoders Download PDFInfo
- Publication number
- KR102222935B1 KR102222935B1 KR1020190038715A KR20190038715A KR102222935B1 KR 102222935 B1 KR102222935 B1 KR 102222935B1 KR 1020190038715 A KR1020190038715 A KR 1020190038715A KR 20190038715 A KR20190038715 A KR 20190038715A KR 102222935 B1 KR102222935 B1 KR 102222935B1
- Authority
- KR
- South Korea
- Prior art keywords
- playlist
- vector
- recommendation score
- collaborative filtering
- recommendation
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0241—Advertisements
- G06Q30/0251—Targeted advertisements
- G06Q30/0254—Targeted advertisements based on statistics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0241—Advertisements
- G06Q30/0251—Targeted advertisements
- G06Q30/0269—Targeted advertisements based on user profile or attribute
- G06Q30/0271—Personalized advertisement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0631—Item recommendations
Landscapes
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- Engineering & Computer Science (AREA)
- Development Economics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Economics (AREA)
- Marketing (AREA)
- General Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Game Theory and Decision Science (AREA)
- Entrepreneurship & Innovation (AREA)
- Probability & Statistics with Applications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
본 발명에 따른 자동 부호화기를 이용한 협업 필터링 기반 음악 재생목록 추천 방법은 제1 추천점수를 산출하는 단계, 제2 추천점수를 산출하는 단계 및 제1 추천점수와 제2 추천점수를 바탕으로 추천 재생목록을 생성하는 단계를 포함한다. 제1 추천점수를 산출하는 단계는 내용 인식 기반 자기부호화기의 기반에서 재생목록의 음원들이 재생되는 순서에 매칭되는 트랙정보를 포함하는 재생목록 벡터 및 음원들이 재생되는 순서에 매칭되는 가수정보를 포함하는 가수 벡터를 입력받는 단계를 포함한다. 제2 추천점수를 산출하는 단계는 캐릭터 레벨의 콘볼루션 신경망을 바탕에서, 재생목록 제목을 입력받는 단계를 포함한다. 추천 재생목록을 생성하는 단계는 협업필터링 기반의 선형 결합 방식에 따라, 제1 추천점수 및 제2 추천점수를 결합하는 단계를 포함한다.The method for recommending a music playlist based on collaborative filtering using an automatic encoder according to the present invention comprises: calculating a first recommendation score, calculating a second recommendation score, and a recommended playlist based on the first recommendation score and the second recommendation score. It includes the step of generating. The step of calculating the first recommendation score includes a playlist vector including track information matching the order in which the sound sources of the playlist are played on the basis of the content recognition-based self-encoder and singer information matching the order in which the sound sources are played. And receiving a mantissa vector. The step of calculating the second recommendation score includes receiving a playlist title based on a character-level convolutional neural network. The step of generating the recommended playlist includes combining the first recommendation score and the second recommendation score according to a linear combination method based on collaborative filtering.
Description
본 발명은 자동 부호화기를 이용한 협업 필터링 기반 음악 재생목록 추천 방법에 관한 것으로, 두 개의 하위 모델을 통해서 생성된 추천점수를 바탕으로 재생목록을 추천하는 방법에 관한 것이다.The present invention relates to a method of recommending a music playlist based on collaborative filtering using an automatic encoder, and to a method of recommending a playlist based on a recommendation score generated through two sub-models.
음악 추천 방식은 크게 콘텐츠 기반 추천과 협업 필터링 기반 추천으로 나눌 수 있다. 콘텐츠 기반 추천은 곡 및 가사를 포함하는 음원과 같은 음악의 고유 속성을 활용하여 사용자가 청취하는 비슷한 종류의 음악을 추천하는 방식이다. 콘텐츠 기반 추천 방식은 하나의 재생목록에 비슷한 분위기의 음원들이 공유되도록 노래를 추천할 수 있지만, 이로 인해서 다양한 종류의 음악을 소비하는 사용자의 욕구를 충족시키지 못한다. 협업 필터링 기반 추천은 사용자들의 음악 소비 패턴을 분석하여 사용자와 유사한 성향을 갖는 다른 사용자들이 선호하는 음악을 소개하는 방식이다. Music recommendation methods can be largely divided into content-based recommendation and collaborative filtering-based recommendation. Content-based recommendation is a method of recommending similar types of music that a user listens to by utilizing the inherent properties of music, such as a sound source including songs and lyrics. The content-based recommendation method can recommend songs so that sound sources with a similar atmosphere are shared in one playlist, but this does not satisfy the needs of users who consume various types of music. The collaborative filtering-based recommendation is a method of introducing music preferred by other users who have similar tendencies to the user by analyzing the music consumption patterns of users.
협업 필터링 기반 추천은 콘텐츠 기반 추천 방식보다 사용자들의 선호도가 높지만, 재생목록에 등장하는 빈도가 적거나 재생목록을 구성하는 음악 자체의 개수가 적은 경우 추천의 정확도가 낮아진다. 또한 사용자가 재생목록만 설정하고 노래를 저장하지 않은 상태에서는 협업 필터링 기반 추천은 불가능한 수준이 된다. Collaborative filtering-based recommendation has higher user preference than content-based recommendation method, but when the frequency of appearance in the playlist is small or the number of songs constituting the playlist is small, the accuracy of recommendation is lowered. In addition, collaborative filtering-based recommendation becomes impossible when the user sets only the playlist and does not save the song.
본 발명은 재생목록들에 등장하는 횟수가 적은 유명하지 않은 음악에 대해서도 이와 관련된 음악을 추천할 수 있는 협업 필터링 기반 추천 방식을 제공하기 위한 것이다.An object of the present invention is to provide a collaborative filtering-based recommendation method capable of recommending related music even for unfamous music having a small number of appearances in playlists.
본 발명은 재생목록에 포함된 음악의 개수가 적은 경우에도 추천 정확도를 높일 수 있는 협업 필터링 기반 추천 방식을 제공하기 위한 것이다.The present invention is to provide a collaborative filtering-based recommendation method capable of improving recommendation accuracy even when the number of songs included in a playlist is small.
또한, 본 발명은 사용자가 재생목록 제목만 설정하고 음악을 저장하지 않은 상태에서도 음악을 추천할 수 있는 협업 필터링 기반 추천 방식을 제공하기 위한 것이다.In addition, the present invention is to provide a collaborative filtering-based recommendation method in which a user can recommend music even when only the title of a playlist is set and music is not stored.
본 발명에 따른 자동 부호화기를 이용한 협업 필터링 기반 음악 재생목록 추천 방법은 제1 추천점수를 산출하는 단계, 제2 추천점수를 산출하는 단계 및 제1 추천점수와 제2 추천점수를 바탕으로 추천 재생목록을 생성하는 단계를 포함한다. 제1 추천점수를 산출하는 단계는 내용 인식 기반 자기부호화기의 기반에서 재생목록의 음원들이 재생되는 순서에 매칭되는 트랙정보를 포함하는 재생목록 벡터 및 음원들이 재생되는 순서에 매칭되는 가수정보를 포함하는 가수 벡터를 입력받는 단계를 포함한다. 제2 추천점수를 산출하는 단계는 캐릭터 레벨의 콘볼루션 신경망을 바탕에서, 재생목록 제목을 입력받는 단계를 포함한다. 추천 재생목록을 생성하는 단계는 협업필터링 기반의 선형 결합 방식에 따라, 제1 추천점수 및 제2 추천점수를 결합하는 단계를 포함한다.The method for recommending a music playlist based on collaborative filtering using an automatic encoder according to the present invention comprises: calculating a first recommendation score, calculating a second recommendation score, and a recommended playlist based on the first recommendation score and the second recommendation score. It includes the step of generating. The step of calculating the first recommendation score includes a playlist vector including track information matching the order in which the sound sources of the playlist are played on the basis of the content recognition-based self-encoder and singer information matching the order in which the sound sources are played. And receiving a mantissa vector. The step of calculating the second recommendation score includes receiving a playlist title based on a character-level convolutional neural network. The step of generating the recommended playlist includes combining the first recommendation score and the second recommendation score according to a linear combination method based on collaborative filtering.
본 발명은 인코딩 과정에서 일정 정보를 생략된 정보를 바탕으로 학습하는 모델을 이용하여, 재생목록들에 등장하는 횟수가 적은 정보와 관련된 음악 또는 재생목록에 포함된 음악의 개수가 적은 경우에도 추천 정확도를 높일 수 있다.The present invention uses a model that learns based on information from which schedule information is omitted in the encoding process, and recommends accuracy even when the number of music related to information that appears in playlists is small or the number of music included in the playlist is small. Can increase.
또한, 본 발명은 재생목록 제목을 바탕으로 추천점수를 산출하기 때문에, 사용자가 재생목록 제목만 설정하고 음악을 저장하지 않은 상태에서도 음악을 추천할 수 있다. In addition, since the present invention calculates the recommended score based on the playlist title, the user can recommend music even when only the playlist title is set and no music is stored.
도 1은 본 발명에 따른 자동 부호화기를 이용한 협업 필터링 기반 음악 재생목록 추천 시스템의 개요를 나타내는 도면이다.
도 2는 본 발명에 따른 자동 부호화기를 이용한 협업 필터링 기반 음악 재생목록 추천 시스템 동작의 개요를 설명하는 도면이다.
도 3은 본 발명에 따른 자동 부호화기를 이용한 협업 필터링 기반 음악 재생목록 추천 방법을 나타내는 순서도이다.1 is a diagram illustrating an overview of a music playlist recommendation system based on collaborative filtering using an automatic encoder according to the present invention.
2 is a diagram for explaining an overview of the operation of a music playlist recommendation system based on collaborative filtering using an automatic encoder according to the present invention.
3 is a flowchart illustrating a method of recommending a music playlist based on collaborative filtering using an automatic encoder according to the present invention.
이하 설명하는 기술은 다양한 변경을 가할 수 있고 여러 가지 실시 예를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나 이는 이하 설명하는 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 이하 설명하는 기술의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.The technology described below may be changed in various ways and may have various embodiments, and specific embodiments will be illustrated in the drawings and described in detail. However, this is not intended to limit the technology to be described below with respect to a specific embodiment, and it should be understood to include all changes, equivalents, or substitutes included in the spirit and scope of the technology to be described below.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 해당 구성요소들은 상기 용어들에 의해 한정되지는 않으며, 단지 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 이하 설명하는 기술의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.Terms such as 1st, 2nd, A, B, etc. may be used to describe various components, but the components are not limited by the above terms, and only for the purpose of distinguishing one component from other components. Is only used. For example, a first component may be referred to as a second component, and similarly, a second component may be referred to as a first component without departing from the scope of the rights of the technology described below. The term and/or includes a combination of a plurality of related listed items or any of a plurality of related listed items.
본 명세서에서 사용되는 용어에서 단수의 표현은 문맥상 명백하게 다르게 해석되지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함한다" 등의 용어는 설시된 특징, 개수, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 의미하는 것이지, 하나 또는 그 이상의 다른 특징들이나 개수, 단계 동작 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 배제하지 않는 것으로 이해되어야 한다.In terms of the terms used in the present specification, expressions in the singular should be understood as including plural expressions unless clearly interpreted differently in context, and terms such as "includes" are specified features, numbers, steps, actions, and components. It is to be understood that the presence or addition of one or more other features or numbers, step-acting components, parts or combinations thereof is not meant to imply the presence of, parts, or combinations thereof.
도면에 대한 상세한 설명을 하기에 앞서, 본 명세서에서의 구성부들에 대한 구분은 각 구성부가 담당하는 주기능 별로 구분한 것에 불과함을 명확히 하고자 한다. 즉, 이하에서 설명할 2개 이상의 구성부가 하나의 구성부로 합쳐지거나 또는 하나의 구성부가 보다 세분화된 기능별로 2개 이상으로 분화되어 구비될 수도 있다. 그리고 이하에서 설명할 구성부 각각은 자신이 담당하는 주기능 이외에도 다른 구성부가 담당하는 기능 중 일부 또는 전부의 기능을 추가적으로 수행할 수도 있으며, 구성부 각각이 담당하는 주기능 중 일부 기능이 다른 구성부에 의해 전담되어 수행될 수도 있음은 물론이다.Prior to the detailed description of the drawings, it is intended to clarify that the division of the constituent parts in the present specification is merely divided by the main function that each constituent part is responsible for. That is, two or more constituent parts to be described below may be combined into one constituent part, or one constituent part may be divided into two or more for each more subdivided function. In addition, each of the constituent units to be described below may additionally perform some or all of the functions of other constituent units in addition to its own main function, and some of the main functions of each constituent unit are different. It goes without saying that it can also be performed exclusively by.
또, 방법 또는 동작 방법을 수행함에 있어서, 상기 방법을 이루는 각 과정들은 문맥상 명백하게 특정 순서를 기재하지 않은 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 과정들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.In addition, in performing the method or operation method, each of the processes constituting the method may occur differently from the specified order unless a specific order is clearly stated in the context. That is, each of the processes may occur in the same order as the specified order, may be performed substantially simultaneously, or may be performed in the reverse order.
도 1은 본 발명에 의한 심층 협업필터링 기반의 재생목록 추천 시스템을 나타내는 도면이다.1 is a diagram illustrating a playlist recommendation system based on deep collaborative filtering according to the present invention.
도 1을 참조하면, 본 발명에 따른 심층 협업필터링 기반의 재생목록 추천 시스템은 재생목록 정보(D_PL)로부터 추천 재생목록을 생성하는 제1 하위모델(100) 및 제2 하위모델(200)을 포함한다. Referring to FIG. 1, a playlist recommendation system based on deep collaborative filtering according to the present invention includes a
재생목록 정보(D_PL)는 트랙 정보(TL) 가수 정보(a) 및 콘텐츠(c)를 포함한다. 트랙 정보(TL)는 각각 노래 제목의 정보를 지칭한다. 가수 정보(a)는 해당 음악의 가수들에 대한 정보, 예컨대 가수 이름을 지칭한다. 콘텐츠(c)는 "Album"을 지칭하며, 즉 해당 노래가 수록된 앨범의 제목 정보를 지칭한다.The playlist information D_PL includes track information TL, singer information a and content c. Each track information TL refers to information on a song title. Singer information (a) refers to information about singers of the music, for example, singer names. Content (c) refers to "Album", that is, refers to title information of the album in which the corresponding song is recorded.
제1 하위모델(100)은 자기부호화기(Autoencoder)로 구현된 모델이며, 특히 내용 인식 기반 자기부호화기(Content-aware Autoencoder)로 구현된다. 제1 하위모델(100)은 인코더(110)와 디코더(120)를 포함한다. 인코더(110)는 입력값을 압축하고, 디코더(120)는 압축된 입력값을 복원한다. 제1 하위모델(100)은 재생목록 벡터(ap) 및 가수 벡터(p)를 입력값으로 제공받고, 입력값을 복원하는 과정에서 획득되는 복원값을 바탕으로 제1 추천점수를 산출한다. The
재생목록 벡터(ap)는 재생목록 정보(D_PL)에 포함된 음원들이 재생된 순서에 매칭되는 노래 제목을 지칭한다. 가수 벡터(p)는 재생목록 정보(D_PL)에 포함된 음원들이 재생된 순서에 매칭되는 가수 이름을 지칭한다.The playlist vector ap refers to a song title in which sound sources included in the playlist information D_PL are matched to the order in which they are played. The singer vector p refers to a singer name in which sound sources included in the playlist information D_PL are matched to the order in which they are played.
제1 하위모델(100)은 자기 자신을 복원하는 과정에서 저차원으로 압축된 잠재 벡터를 학습하는 비지도학습의 방법을 채택한다.The
제2 하위모델(200)은 캐릭터 레벨 콘볼루션 신경망(Character level Convoulutional Neural Networks)으로 구현된 모델이다. 제2 하위모델(200)은 제목 벡터(Tp)로부터 제2 추천점수를 산출한다. 제2 하위모델(200)은 제목 벡터(Tp)에 대해서 콘볼루션(Convolution) 연산을 수행하여 '0'과 '1' 사이의 제2 추천점수를 산출한다. 제2 하위모델(200)은 제1 하위모델(100)과는 구분되는 독립적인 모델로 구현된다.The
도 2는 본 발명에 따른 재생목록 추천 시스템의 동작 개요를 나타내는 도면이다. 도 3은 본 발명에 따른 심층 협업필터링 기반 재생목록 추천 방법을 나타내는 순서도이다. 2 is a diagram showing an overview of the operation of the playlist recommendation system according to the present invention. 3 is a flowchart illustrating a method for recommending a playlist based on deep collaborative filtering according to the present invention.
도 1 내지 도 3을 참조하여, 본 발명에 따른 재생목록 추천 방법을 살펴보면 다음과 같다.Referring to FIGS. 1 to 3, a method for recommending a playlist according to the present invention will be described as follows.
제1 단계(S1)에서, 제1 하위모델(100)은 내용 인식 기반 자기부호화기를 기반으로, 재생목록 정보(D_PL)으로부터 생성된 재생목록 벡터(ap) 및 가수 벡터(p)로부터 제1 추천점수를 생성한다. 이를 위해서, 제1 하위모델(100)은 재생목록 벡터(ap) 및 가수 벡터(p)가 결합된 결합 벡터(Vc)를 입력받고, 결합 벡터(Vc)를 인코딩하고 디코딩하는 과정을 통해서 제1 추천점수를 생성할 수 있다. In the first step (S1), the
재생목록 정보(D_PL)에 포함된 전체 노래의 개수가 "M"일 때, 재생목록 벡터(ap)의 크기는 "M"의 값을 갖는다. 재생목록 벡터(ap)들 각각의 원소는 트랙 정보(TL)들 하나 하나에 해당되며, 해당 재생목록이 트랙을 포함하지 않는다면, '0'의 값을 갖는다. 재생목록에 포함되었다면 해당 원소는 "1/n"의 값을 갖는다. 예컨대, 재생목록 정보(D_PL)에 트랙이 6개 존재한다면, 각각의 트랙들은 "1/6"의 값을 갖는다. 이는 자기부호화기의 인코더가 트랙 각각의 잠재 벡터(latent vector)들의 집합으로 구성되어 있다고 할 때, 벡터들의 평균을 취하는 것과 같은 효과를 갖는다.When the total number of songs included in the playlist information D_PL is "M", the size of the playlist vector ap has a value of "M". Each element of the playlist vectors (ap) corresponds to one of the track information (TL). If the playlist does not include a track, it has a value of '0'. If included in the playlist, the element has a value of "1/n". For example, if there are 6 tracks in the playlist information D_PL, each of the tracks has a value of "1/6". This has the same effect as taking the average of vectors, assuming that the encoder of the magnetic encoder is composed of a set of latent vectors for each track.
인코더(110)는 재생목록 벡터를 제공받고, 재생목록 벡터를 저차원의 잠재 벡터로 압축한다.The
디코더(120)는 인코더(110)가 압축한 잠재 벡터를 복원하여, 복원벡터를 생성한다. 복원벡터는 입력벡터와 마찬가지로 M의 크기를 갖고, 각각의 원소는 해당 곡에 대한 추천 점수로 간주된다. 복원벡터의 각각의 원소는 "0" 이상 "1" 이하의 값을 갖고, 1에 가까울수록 높은 추천 점수를 기록한다는 의미로 해석될 수 있다. The
가수 벡터(p)를 바탕으로 추천점수를 생성하기 위해서, 인코더(110)는 가수 벡터(p)를 입력받는다. 가수 벡터(p)는 재생목록 벡터(ap)와 유사하게, 재생목록 내에서 가수가 등장하면 "1", 가수가 등장하지 않으면 "0"의 값을 갖도록 생성된다. 예컨대, 재생목록 내에서 "가수(a)-음원"이 매칭될 때, 해다 음원이 재생되면 "가수(a)"가 등장한 것으로 파악하고, 가수 벡터(p)는 "1"의 값을 갖도록 생성된다. 가수 벡터(p)는 재생목록 벡터(ap)와 결합되어 결합 벡터(Vc)가 생성된다. 즉, 자기부호화기에 해당하는 제1 하위모델(100)은 재생목록 벡터(ap) 또는 가수 벡터(p) 중에서 어느 하나가 아닌, 결합 벡터(Vc)를 입력받아서 제1 추천점수를 생성한다. In order to generate the recommended score based on the mantissa vector (p), the
상술한 설명은 재생목록 벡터(ap)와 가수 벡터(p)를 구분하여 설명하였지만, 본 발명의 제1 하위모델(100)은 재생목록 벡터(ap)와 가수 벡터(p)를 결합하여 결합 벡터(Vc)를 생성한다. 결합 벡터(Vc)는 [p; ap]의 형태로 표현될 수 있다. In the above description, the playlist vector (ap) and the mantissa vector (p) have been separately explained, but the
그리고, 인코더(110)는 결합벡터([p; ap])를 입력받는다. 아래의 [수학식 1]은 결합벡터([p; ap])와 디코더(120)의 출력에 해당하는 복원 벡터()의 차이를 Cross Entropy Loss를 통해서 줄이는 것을 설명하고 있다.Then, the
[수학식 1][Equation 1]
[수학식 1]에서, p는 재생목록 벡터, ap는 가수 벡터를 의미한다. In [Equation 1], p denotes a playlist vector and a p denotes a mantissa vector.
Θ는 = {W ∈ Rd×(n+k), W′ ∈ R(n+k)×d, b ∈ Rd, b′ ∈ Rn+k }으로 정의될 수 있다. 이때, W는 인공신경망에서의 가중치를 의미하고, b는 편향(bias)을 의미한다. W'는 디코더(120)의 가중치를 의미하고, b' 는 디코더(120)의 편향을 의미한다. Θ can be defined as = {W ∈ R d×(n+k) , W′ ∈ R(n+k)×d, b ∈ Rd, b′ ∈ Rn+k }. In this case, W denotes a weight in the artificial neural network, and b denotes a bias. W'denotes a weight of the
제1 하위모델(100)은 복원 벡터와 Cross Entropy를 줄이는 방식으로 인공신경망을 학습한다. 제1 하위모델(100)은 학습 과정에서 입력으로 주어지는 결합 벡터(Vc)의 정보 일부분을 제거한 것을 바탕으로 학습을 진행한다. 즉, 재생목록 벡터(ap) 또는 가수 벡터(p) 중에서 일부의 정보가 생략된 불완전한 결합 벡터(Vc)를 입력받았을 때, 온전한 재생목록 순서 및 가수 정보를 복원하는 것을 목표로 학습이 진행된다. The
일부가 제거된 결합 벡터(Vc)를 바탕으로 제1 하위모델(100)이 학습을 진행하는 과정은 다음과 같이 두 단계를 포함한다. A process in which the
첫 번째 단계는 숨바꼭질(hide-and-seek) 단계이다. 숨바꼭질 단계는 재생목록 벡터(ap)와 가수 벡터(p) 중에서 어느 하나를 임의로 선택해 제거하는 단계이다. The first step is the hide-and-seek step. The hide-and-seek step is a step of randomly selecting and removing one of the playlist vector (ap) and the singer vector (p).
예컨대, 제1 하위모델(100)은 아래의 [수학식 2]와 같이, 가수 벡터(p)의 정보를 삭제하고 학습을 진행할 수 있다.For example, as shown in [Equation 2] below, the
[수학식 2][Equation 2]
[수학식 2]에서, f는 인코더(110)를 의미하고, g는 디코더(120)를 의미한다. [~p;0]에서 ~p는 재생목록 벡터 중 일부의 정보가 생략(denoising)된 불완전한 벡터를 의미한다. [수학식2]]에서 가수 벡터에 해당하는 부분은 제거되었기 때문에, 인코더(110)의 결합벡터에서 가수 벡터 성분은 ”0”으로 표현된다. 결론적으로 제1 하위모델(100)은 결합벡터와 [~p;0]의 복원벡터와의 차이를 줄이는 방향으로 학습을 진행한다.In [Equation 2], f denotes the
또는, 제1 하위모델(100)은 아래의 [수학식 3]와 같이, 재생목록 벡터(ap)의 정보를 삭제하고 학습을 진행할 수 있다.Alternatively, the
[수학식 3][Equation 3]
즉, [수학식 3]은 인코더(110)의 결합벡터에서 재생목록에 해당하는 성분이 '0'인 것을 표현하고 있다. That is, [Equation 3] expresses that the component corresponding to the playlist in the combined vector of the
도 3은 [수학식 2]에서와 같이 가수 벡터(p)가 제거된 것을 도시하고 있다.3 shows that the mantissa vector (p) has been removed as in [Equation 2].
제1 하위모델(100)은 재생목록 벡터(ap)와 가수 벡터(p) 중에서 어느 하나의 정보를 생략하였을 때, 복원값으로 재생목록 벡터(ap)와 가수 벡터(p)를 모두 정확하게 복원하는 것을 목표로 한다. 이를 통해서, 재생목록들 간의 패턴뿐만 아니라, 재생목록과 가수 사이의 패턴을 함께 학습하여 사용자의 취향에 더욱 가까운 재생목록 추천을 할 수 있다.The
두 번재 단계는 추가 제거 단계이다. 추가 제거 단계는 숨바꼭질 단계에서 제거되지 않고 남겨진 벡터의 정보를 한 번 더 제거하는 과정이다. The second step is an additional elimination step. The additional removal step is a process of removing the information of the vector left unremoved in the hide-and-seek step once more.
추가 제거 단계에서 제거 값을 선택할 때, 재생목록에 저장된 순서와 상관없이 무작위로 가릴지, 아니면 재생목록에 저장된 정보들 중에서 최근 정보에 해당하는 뒷부분, 즉 나중에 저장된 정보를 가릴지 선택한다. 만약 플레이 리스트 내에서 무작위 재생을 선호하는 사용자들의 기호를 위해서는 재생목록에 저장된 순서와 상관없이 무작위로 가리는 방법을 사용한다. 또는 사용자가 재생목록을 순차적으로 재생할 때 그 위에 재생되는 노래를 추천하는 시스템, 즉 재생목록 순서를 추천하는 시스템을 구현하기 위해서는 재생목록에서 나중에 저장된 정보에 해당하는 뒷부분을 가리는 방법을 이용한다. When selecting the removal value in the additional removal step, regardless of the order stored in the playlist, it is selected whether to hide the last information corresponding to the latest information among the information stored in the playlist, namely, whether to hide the information stored later. If users prefer to play randomly within a playlist, they use a method of randomly hiding them regardless of the order in which they are stored in the playlist. Alternatively, in order to implement a system that recommends songs to be played on top of the playlist when the user sequentially plays the playlist, that is, a system that recommends the playlist order, a method of hiding the back part corresponding to information stored later in the playlist is used.
추가 제거 단계에서 제거값을 가리는 방법 및 제거값을 가리는 정도는 구현하고자 하는 시스템에 따라 결정될 수 있다. 예컨대, 노래의 개수가 적을수록 원활히 작동하는 시스템을 구현하기 위해서는 최대한 많은 양의 정보를 제거한다. 이에 따라 제1 하위모델(100)의 입력값이 적을 때에도 정확한 예측이 가능하도록 한다. 반면, 노래가 어느 정도 확보된 상태에서 원활이 작동하는 시스템을 구현하기 위해서는 상대적으로 적은 정보를 제거한다. 또는 입력값의 양에 상관없이 성능을 갖는 시스템을 구현하기 위해서는 한 번 학습이 이루어질 때마다 가려지는 비율이 임의의 랜덤한 값으로 선택되게 한다.The method of masking the removal value and the degree of masking the removal value in the additional removal step may be determined according to the system to be implemented. For example, in order to implement a system that works smoothly as the number of songs decreases, as much information as possible is removed. Accordingly, accurate prediction is possible even when the input value of the
제2 단계(S2)에서, 제2 하위모델(200)은 캐릭터 레벨의 콘볼루션 신경망 기반에서, 제목 벡터(Tp)으로부터 제2 추천 점수를 산출한다. 제목 벡터(Tp)는 재생목록의 제목의 철자 순서에 대한 정보를 포함한다.In the second step (S2), the
제목 벡터(Tp)는 재생목록 제목(Title)이 갖는 철자의 개수와 순서를 바탕으로 생성된다. 제목 벡터(Tp)는 "C,h,r,i,s,t,m,a,s"라는 9개의 철자가 순차적으로 입력될 때, 9-by-k의 행렬로 이루어지는 벡터로 생성될 수 있다. 이때, "k"는 콘볼루션(convolution) 연산을 위한 필터의 차원을 지칭한다. 예컨대, 도 2의 제목 벡터(Tp)는 9-by-4 행렬로 표현되는 예를 도시하고 있다.The title vector (Tp) is generated based on the number and order of the spellings of the playlist title (Title). The title vector (Tp) can be created as a vector consisting of a 9-by-k matrix when nine letters of "C,h,r,i,s,t,m,a,s" are sequentially input. have. In this case, "k" refers to the dimension of a filter for a convolution operation. For example, the title vector Tp of FIG. 2 shows an example expressed in a 9-by-4 matrix.
제2 하위모델(200)은 k차원의 필터를 이용하여 콘볼루션 연산을 수행하여, 철자 조합의 패턴을 파악하고, 특성 벡터를 획득한다. 콘볼루션 연산에 있어서, "christmas"와 "christa"는 최종적으로 비슷한 값의 특성 벡터로 표현되기 때문에, 사용자가 입력한 오타에 대해서 강건한 특성을 갖는다. The
그리고, 제2 하위모델(200)은 특성 벡터에서 "max pooling" 연산을 통해서 가장 큰 특성값을 산출한다. In addition, the
살펴본 바와 같이, 제2 하위모델(200)은 "word level CNN"이 아닌 캐릭터 레벨의 콘볼루션 신경망 기반으로 재생 목록의 제목으로부터 제2 추천점수를 산출한다. "word level CNN"은 문장에서 단어 배열의 패턴을 분석하기 위한 것으로, 입력되는 문정을 벡터로 표현한다. "word level CNN"은 단어를 바탕으로 시스템이 동작하기 때문에, 오타로 인하여 단어의 분석이 안 될 경우에 모델 구동이 원활하지 못할 수 있다. As described above, the
이에 반해서, 본 발명은 캐릭터 레벨의 콘볼루션 신경망을 기반으로 제2 추천점수를 생성하기 때문에, 오타 등으로 인해서 정확한 단어가 입력되지 않았을 경우에도 보다 원활한 구동이 가능하다.In contrast, in the present invention, since the second recommendation score is generated based on the character-level convolutional neural network, smoother driving is possible even when the correct word is not input due to a typo or the like.
제3 단계(S3)에서, 협업필터링 기반의 선형 결합 방식에 따라, 제1 추천점수 및 상기 제2 추천점수를 결합하여 결합 추천점수를 산정하고, 결합 추천점수에 따라 재생 목록에 매칭되는 곡을 추천한다. 제1 추천점수는 제1 하위모델(100)을 통해서 복원된 것이며, 제2 추천점수는 제2 하위모델(200)을 통해서 복원된 것이다. 제1 및 제2 추천점수는 디코더의 복원벡터로 간주될 수 있다.In the third step (S3), according to a linear combination method based on collaborative filtering, a combined recommendation score is calculated by combining the first recommendation score and the second recommendation score, and a song matching the playlist is selected according to the combined recommendation score. I recommend you. The first recommended score is restored through the
결합 모델(300)은 제1 추천점수에 대한 제1 가중치(Witem) 및 제2 추천점수에 대한 제2 가중치(Wtitle)를 설정하고, 이를 바탕으로 추천 재생목록을 생성한다.The combined
제1 및 제2 가중치들(Witem,Wtitle)의 크기는 동일하게 설정될 수 있다. 이처럼 제1 및 제2 가중치들(Witem,Wtitle)의 크기를 동일하게 설정하는 방식은 시스템 구현이 간단하다는 장점이 있지만, 제1 하위모델(100) 또는 제2 하위모델(200)의 정확도가 서로 다를 경우에, 추천 재생목록의 정확도가 낮아진다. The sizes of the first and second weights Witem and Wtitle may be set to be the same. This method of setting the same size of the first and second weights (Witem, Wtitle) has the advantage of simple system implementation, but the accuracy of the
추천 재생목록의 정확도를 높이기 위해서, 제1 하위모델(100)과 제2 하위모델(200)을 동적으로 할당하는 방식을 이용할 수 있다.In order to increase the accuracy of the recommended playlist, a method of dynamically allocating the
제1 및 제2 가중치들(Witem,Wtitle)은 아래의 [수학식 4]에서와 같이, 재생목록 제목의 중요도를 1로 고정하고, 제1 추천점수의 가중치를 트랙 정보(TL)의 양과 가수 정보(a)의 양에 비례하도록 설정할 수 있다. As for the first and second weights (Witem, Wtitle), as in [Equation 4] below, the importance of the playlist title is fixed to 1, and the weight of the first recommendation score is the amount and singer of the track information (TL). It can be set to be proportional to the amount of information (a).
[수학식 4][Equation 4]
[수학식 4]에서, N([p; ap])은 결합 벡터(Vc)의 데이터 개수를 의미하고, "I(Tp)"는 재생목록 제목의 개수를 의미한다. 예컨대, 재생목록 정보(D_PL)에서 트랙 정보(TL)와 가수 정보(a)가 총 20개 주어졌을 때, 제1 가중치(Witem)는 20/21, 제2 가중치(Wtitle)는 1/21로 설정될 수 있다. In [Equation 4], N([p; ap]) means the number of data of the concatenation vector Vc, and “I(Tp)” means the number of playlist titles. For example, when a total of 20 track information (TL) and singer information (a) are given in the playlist information (D_PL), the first weight (Witem) is 20/21 and the second weight (Wtitle) is 1/21. Can be set.
이상 설명한 내용을 통해 당업자라면 본 명세서의 기술사상을 일탈하지 아니하는 범위에서 다양한 변경 및 수정이 가능함을 알 수 있을 것이다. 따라서, 본 명세서의 기술적 범위는 명세서의 상세한 설명에 기재된 내용으로 한정되는 것이 아니라 특허 청구의 범위에 의해 정하여져야만 할 것이다.It will be appreciated by those skilled in the art through the above description that various changes and modifications can be made without departing from the spirit of the present specification. Therefore, the technical scope of the present specification should not be limited to the content described in the detailed description of the specification, but should be determined by the scope of the claims.
100: 내용인식기반 자기부호화기
110: 인코더 120: 디코더
200: 캐릭터 레벨 콘볼루션 신경망 모델100: content recognition-based self-encoder
110: encoder 120: decoder
200: Character level convolutional neural network model
Claims (10)
상기 제1 하위모델을 이용하여 내용 인식 기반 자기부호화기의 기반에서, 재생목록의 음원들이 재생되는 순서에 매칭되는 트랙정보를 포함하는 재생목록 벡터 및 상기 음원들이 재생되는 순서에 매칭되는 가수정보를 포함하는 가수 벡터를 바탕으로 제1 추천점수를 산출하는 단계;
상기 제2 하위모델을 이용하여 캐릭터 레벨의 콘볼루션 신경망을 기반으로, 재생목록 제목을 바탕으로 제2 추천 점수를 산출하는 단계; 및
상기 결합모델을 이용하여 협업필터링 기반의 선형 결합 방식에 따라, 상기 제1 추천점수 및 상기 제2 추천점수를 결합하여 결합 추천점수를 산정하고, 상기 결합 추천점수에 따라 추천 재생목록을 생성하는 단계를 포함하는 자동 부호화기를 이용한 협업 필터링 기반 음악 재생목록 추천 방법.In the method of operating a playlist recommendation system based on deep collaboration filtering including a first sub-model, a second sub-model, and a combined model,
On the basis of the content recognition-based self-encoder using the first sub-model, a playlist vector including track information matching the order in which sound sources of the playlist are played, and singer information matching the order in which the sound sources are played are included. Calculating a first recommendation score based on the mantissa vector;
Calculating a second recommendation score based on a playlist title based on a character-level convolutional neural network using the second sub-model; And
Calculating a combined recommendation score by combining the first recommendation score and the second recommendation score according to a linear combination method based on collaborative filtering using the combination model, and generating a recommended playlist according to the combined recommendation score. Collaborative filtering-based music playlist recommendation method using an automatic encoder comprising a.
상기 재생목록 벡터는
상기 음원들의 개수가 "M"일 때 M의 크기를 갖고, 상기 음원들이 재생된 여부를 이진 데이터로 구분하는 원소를 포함하는 자동 부호화기를 이용한 협업 필터링 기반 음악 재생목록 추천 방법.The method of claim 1,
The playlist vector is
A method of recommending a music playlist based on collaborative filtering using an automatic encoder including an element having a size of M when the number of sound sources is "M" and classifying whether or not the sound sources have been reproduced as binary data.
상기 제1 추천점수를 산출하는 단계는
상기 재생목록 벡터 및 상기 가수 벡터를 압축하여 저차원의 잠재 벡터를 생성하는 단계를 포함하는 자동 부호화기를 이용한 협업 필터링 기반 음악 재생목록 추천 방법.The method of claim 1,
The step of calculating the first recommendation score
Compressing the playlist vector and the singer vector to generate a low-dimensional latent vector.
상기 잠재 벡터를 생성하는 단계는
상기 재생목록 벡터 또는 상기 가수 벡터 중에서 적어도 어느 하나의 정보를 삭제하는 단계를 포함하는 자동 부호화기를 이용한 협업 필터링 기반 음악 재생목록 추천 방법.The method of claim 3,
Generating the latent vector is
A method for recommending a music playlist based on collaborative filtering using an automatic encoder, comprising the step of deleting at least one information from the playlist vector or the singer vector.
상기 잠재 벡터를 생성하는 단계는
삭제되지 않은 상기 재생목록 벡터 또는 상기 가수 벡터들의 정보 중에서 적어도 일부분의 정보를 추가적으로 제거하는 단계를 더 포함하는 자동 부호화기를 이용한 협업 필터링 기반 음악 재생목록 추천 방법.The method of claim 4,
Generating the latent vector is
A method for recommending a music playlist based on collaborative filtering using an automatic encoder, further comprising the step of additionally removing at least part of information from information on the playlist vector or the singer vectors that are not deleted.
상기 제1 추천점수를 산출하는 단계는
상기 저차원의 잠재 벡터를 복원하여 복원 벡터를 생성하는 단계를 더 포함하는 자동 부호화기를 이용한 협업 필터링 기반 음악 재생목록 추천 방법.The method of claim 5,
The step of calculating the first recommendation score
A method for recommending a music playlist based on collaborative filtering using an automatic encoder, further comprising the step of generating a reconstructed vector by restoring the low-dimensional latent vector.
상기 복원 벡터는 0 이상 1 이하의 크기로 생성되고, 상기 복원 벡터가 1에 가까울수록 상기 제1 추천점수의 채택 가능성을 높이는 자동 부호화기를 이용한 협업 필터링 기반 음악 재생목록 추천 방법. The method of claim 6,
A method for recommending a music playlist based on collaborative filtering using an automatic encoder that increases the likelihood of adopting the first recommendation score as the restoration vector is generated with a size of 0 or more and 1 or less.
상기 제2 추천점수를 산출하는 단계는
상기 재생목록 제목의 철자들을 순차적으로 정렬한 정보를 포함하는 제목 벡터를 콘볼루션 연산하는 단계를 포함하는 자동 부호화기를 이용한 협업 필터링 기반 음악 재생목록 추천 방법.The method of claim 1,
The step of calculating the second recommendation score is
A method for recommending music playlists based on collaborative filtering using an automatic encoder, comprising the step of convoluting a title vector including information obtained by sequentially sorting the spellings of the playlist titles.
상기 제목 벡터의 행과 열은, 각각 상기 재생목록 제목의 철자들의 개수 및 상기 콘볼루션 연산에 이용되는 필터의 차원으로 구성되는 자동 부호화기를 이용한 협업 필터링 기반 음악 재생목록 추천 방법.The method of claim 8,
A method for recommending a music playlist based on collaborative filtering using an automatic encoder in which rows and columns of the title vector are each composed of a number of letters of the playlist title and a dimension of a filter used in the convolution operation.
상기 추천 재생목록을 생성하는 단계는
상기 제1 추천점수에 대한 제1 가중치 및 상기 제2 추천점수에 대한 제2 가중치를 부여하는 단계를 포함하되,
상기 제1 가중치 및 상기 제2 가중치는 동적 할당 방식으로 부여되는 자동 부호화기를 이용한 협업 필터링 기반 음악 재생목록 추천 방법.The method of claim 9,
Generating the recommended playlist comprises:
Including the step of assigning a first weight to the first recommendation score and a second weight to the second recommendation score,
A method for recommending a music playlist based on collaborative filtering using an automatic encoder in which the first weight and the second weight are assigned using a dynamic allocation method.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190038715A KR102222935B1 (en) | 2019-04-02 | 2019-04-02 | Playlist Recommendation Method Using Collaborative Autoencoders |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190038715A KR102222935B1 (en) | 2019-04-02 | 2019-04-02 | Playlist Recommendation Method Using Collaborative Autoencoders |
Publications (3)
Publication Number | Publication Date |
---|---|
KR20200116813A KR20200116813A (en) | 2020-10-13 |
KR102222935B1 true KR102222935B1 (en) | 2021-03-04 |
KR102222935B9 KR102222935B9 (en) | 2021-07-26 |
Family
ID=72885128
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190038715A KR102222935B1 (en) | 2019-04-02 | 2019-04-02 | Playlist Recommendation Method Using Collaborative Autoencoders |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102222935B1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102576606B1 (en) * | 2021-03-26 | 2023-09-08 | 주식회사 엔씨소프트 | Apparatus and method for timbre embedding model learning |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101057919B1 (en) * | 2009-02-20 | 2011-08-19 | 성균관대학교산학협력단 | How to recommend customized music through analyzing playlists of users |
KR101422772B1 (en) * | 2009-12-28 | 2014-07-29 | 에스케이플래닛 주식회사 | Online music service apparatus for generating music playlist considering user’s preferences and ratings and method thereof |
-
2019
- 2019-04-02 KR KR1020190038715A patent/KR102222935B1/en active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
KR102222935B9 (en) | 2021-07-26 |
KR20200116813A (en) | 2020-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20060230065A1 (en) | Methods, systems, and computer-readable media for generating a suggested list of media items based upon a seed | |
Booth | Mashup as temporal amalgam: Time, taste, and textuality | |
Suisman | Sound, Knowledge, and the “Immanence of Human Failure” Rethinking Musical Mechanization through the Phonograph, the Player-Piano, and the Piano | |
US7792831B2 (en) | Apparatus, system and method for extracting structure of song lyrics using repeated pattern thereof | |
US7199300B2 (en) | Information search apparatus, information search method, and information recording medium on which information search program is computer-readably recorded | |
US10453434B1 (en) | System for synthesizing sounds from prototypes | |
KR101942459B1 (en) | Method and system for generating playlist using sound source content and meta information | |
JP4364838B2 (en) | Music reproducing apparatus capable of remixing music, and method and program for remixing music | |
CN106780673A (en) | A kind of animation method and system | |
CN111108557A (en) | Method of modifying a style of an audio object, and corresponding electronic device, computer-readable program product and computer-readable storage medium | |
KR102222935B1 (en) | Playlist Recommendation Method Using Collaborative Autoencoders | |
Braguinski | The resolution of sound: Understanding retro game audio beyond the ‘8-bit’horizon | |
Kaneria et al. | Prediction of song popularity using machine learning concepts | |
KR102031282B1 (en) | Method and system for generating playlist using sound source content and meta information | |
CN113140202A (en) | Information processing method, information processing device, electronic equipment and storage medium | |
CN112287160A (en) | Audio data sorting method and device, computer equipment and storage medium | |
O’Grady | The Politics of Digitizing Analogue Recording Technologies | |
Schmutz et al. | Gender and critical evaluation in popular music | |
Zuberi | Racialising music’s past and the media archive | |
US10489450B1 (en) | Selecting soundtracks | |
Born | Postlude: musical-anthropological comparativism–across scales | |
Rumsey | Audio Processing—Learning From Experience | |
Holbrook et al. | Computer music and post-acousmatic practices | |
Orita | Making a Medley: Genre and Form in Music Arranged for Figure Skating Programs | |
Tovstogan et al. | Similarity of nearest-neighbor query results in deep latent spaces |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
G170 | Publication of correction |