WO2023048537A1 - 추천 콘텐트를 제공하는 서버 및 방법 - Google Patents

추천 콘텐트를 제공하는 서버 및 방법 Download PDF

Info

Publication number
WO2023048537A1
WO2023048537A1 PCT/KR2022/014391 KR2022014391W WO2023048537A1 WO 2023048537 A1 WO2023048537 A1 WO 2023048537A1 KR 2022014391 W KR2022014391 W KR 2022014391W WO 2023048537 A1 WO2023048537 A1 WO 2023048537A1
Authority
WO
WIPO (PCT)
Prior art keywords
user
users
content
contents
vectors
Prior art date
Application number
PCT/KR2022/014391
Other languages
English (en)
French (fr)
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 US17/974,089 priority Critical patent/US20230100788A1/en
Publication of WO2023048537A1 publication Critical patent/WO2023048537A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0631Item recommendations
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/09Supervised learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • 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/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44204Monitoring of content usage, e.g. the number of times a movie has been viewed, copied or the amount which has been watched
    • 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/4508Management of client data or end-user data
    • H04N21/4532Management of client data or end-user data involving end-user characteristics, e.g. viewer profile, preferences
    • 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/4662Learning process for intelligent management, e.g. learning user preferences for recommending movies characterized by learning algorithms
    • H04N21/4666Learning process for intelligent management, e.g. learning user preferences for recommending movies characterized by learning algorithms using neural networks, e.g. processing the feedback provided by the user

Definitions

  • the present disclosure relates to a server and method for providing recommended content, and more particularly, to a server and method for providing recommended content based on central users of a plurality of user groups determined by grouping a plurality of users. it's about
  • Conventional user-customized content providing techniques include a collaborative filtering technique that selects and provides a specific item suitable for the user by estimating content that the user may prefer based on user information, and similar content based on the content history information used by the user. There is a content-based filtering technique that is recommended to the user.
  • An embodiment of the present disclosure is based on central users of a plurality of user groups determined by grouping a plurality of users in order to provide recommended content to the user within an appropriate time while providing appropriate recommended content to the user. , It aims to provide recommended content to users.
  • the server may provide a method for recommending content to the user.
  • the method may include an operation of acquiring a feedback vector of the user for at least one of a plurality of contents, based on a content recommendation request received from the user's device.
  • the method may include an operation of obtaining feedback information about the plurality of contents used by a plurality of users.
  • the method may include an operation of generating user embedding vectors for the plurality of users and content embedding vectors for the plurality of contents, based on the feedback information.
  • the method may include an operation of determining a plurality of user groups and center users of the plurality of user groups by clustering the plurality of users based on user embedding vectors of the plurality of users.
  • the method may include an operation of inputting user embedding vectors for the central users and content embedding vectors for the plurality of contents to an artificial neural network model for estimating a user's content preference. there is.
  • the method may include an operation of obtaining preference vectors of the central users representing predicted preferences of the central users for the plurality of contents, which are output by the artificial neural network model.
  • the method may include an operation of determining at least one recommendation content to be recommended to the user based on the feedback vector of the user and the preference vectors of the central users.
  • the method may include an operation of recommending the determined at least one content to the user.
  • a server for recommending content to a user may be provided.
  • the server may include a communication interface; a memory that stores one or more instructions; and a processor executing the one or more instructions.
  • the processor may obtain a feedback vector of the user for at least one of a plurality of contents, based on a content recommendation request received from the user's device.
  • the processor may obtain feedback information about the plurality of contents used by a plurality of users.
  • the processor may generate user embedding vectors for the plurality of users and content embedding vectors for the plurality of contents, based on the feedback information.
  • the processor determines a plurality of user groups and central users of the plurality of user groups corresponding to the plurality of user groups by clustering the plurality of users based on the user embedding vectors of the plurality of users. can decide
  • the processor may input user embedding vectors for the central users and content embedding vectors for the plurality of contents to an artificial neural network model for predicting a user's content preference.
  • the processor may obtain preference vectors of the central users representing predicted preferences of the central users for the plurality of contents, which are output by the artificial neural network model.
  • the processor may determine at least one recommendation content to be recommended to the user based on the feedback vector of the user and the preference vectors of the central users.
  • the processor may recommend the determined at least one content to the user.
  • a computer-readable recording medium recording a program for executing the method on a computer.
  • the recording medium may be provided in a computer readable manner so that a computer executes an operation of obtaining a feedback vector of the user for at least one of a plurality of contents based on a content recommendation request received from the user's device.
  • the recording medium may be provided so as to be computer readable so that a computer can execute an operation of obtaining feedback information on the plurality of contents used by a plurality of users.
  • the recording medium may be provided in a computer readable manner so that a computer executes an operation of generating user embedding vectors for the plurality of users and content embedding vectors for the plurality of contents based on the feedback information.
  • the recording medium is configured to cause a computer to perform an operation of determining a plurality of user groups and central users of the plurality of user groups by clustering the plurality of users based on user embedding vectors of the plurality of users. It can be provided so that it can be read by a computer.
  • the recording medium causes a computer to input the user embedding vectors for the central users and the content embedding vectors for the plurality of contents to an artificial neural network model for estimating the user's content preference. It may be provided in a computer-readable form for execution.
  • the recording medium is computer-readable so that a computer can execute an operation of obtaining preference vectors of the central users representing predicted preferences of the central users for the plurality of contents, which are output by the artificial neural network model. can be provided.
  • the recording medium may be provided in a computer readable manner so that a computer executes an operation of determining at least one recommendation content to be recommended to the user based on the user's feedback vector and the preference vectors of the central users. .
  • the recording medium may be provided to be computer readable so that a computer may execute an operation of recommending the determined at least one content to the user.
  • FIG. 1 is a diagram illustrating a method for recommending content to a user according to an embodiment of the present disclosure.
  • FIG. 2 is a flowchart of a method of providing recommended content to a user according to an embodiment of the present disclosure.
  • FIG. 3 is a diagram illustrating an example of feedback information obtained from a plurality of users according to an embodiment of the present disclosure.
  • FIG. 4 is a diagram illustrating an example of user embedding vectors for a plurality of users and content embedding vectors for a plurality of contents generated based on feedback information according to an embodiment of the present disclosure.
  • FIG. 5 is a diagram illustrating a user embedding vector of user 1 and a user embedding vector of user 2 in FIG. 4 according to an embodiment of the present disclosure.
  • FIG. 6 is a flowchart of a plurality of user groups and a method of determining central users of the plurality of user groups according to an embodiment of the present disclosure.
  • FIG. 7 is a diagram illustrating an example of determining core users of a plurality of user groups by clustering a plurality of users according to an embodiment of the present disclosure.
  • FIG. 8 is a diagram illustrating an example of determining central users of a plurality of user groups in an embedding space according to an embodiment of the present disclosure.
  • FIG. 9 is a diagram illustrating an example of training an artificial neural network model according to an embodiment of the present disclosure.
  • FIG. 10 is a diagram for explaining an artificial neural network model according to an embodiment of the present disclosure.
  • FIG. 11 is a flowchart of a method of determining at least one recommendation content to be recommended to a user according to an embodiment of the present disclosure.
  • FIG. 12 is a diagram illustrating an example of at least one recommendation content to be recommended to a user according to an embodiment of the present disclosure.
  • FIG. 13 is a diagram illustrating an example of at least one recommended content to be recommended to a user based on difference values of central users according to an embodiment of the present disclosure.
  • FIG. 14 is a diagram for a difference value between a content preference prediction and a required time until recommended content is provided to users according to the number of a plurality of user groups according to an embodiment of the present disclosure.
  • 15 is a flowchart of a method of adjusting the number of a plurality of user groups and re-clustering a user and a plurality of users based on the adjusted number of user groups according to an embodiment of the present disclosure.
  • 16 illustrates a plurality of adjusted user groups when determining whether to adjust the number of a plurality of user groups based on a similarity value of a selected central user and adjusting the number of a plurality of user groups according to an embodiment of the present disclosure. It is a flowchart of a method of re-clustering a plurality of users and users by number of user groups.
  • FIG. 17 is a diagram illustrating an example of re-clustering a plurality of users and users with an adjusted number of user groups when reducing the number of user groups in FIG. 16 according to an embodiment of the present disclosure.
  • FIG. 18 is a diagram illustrating a plurality of users and an example of re-clustering users when the number of the plurality of user groups in FIG. 16 is maintained according to an embodiment of the present disclosure.
  • FIG. 19 is a diagram illustrating an example of re-clustering a plurality of users and users with the adjusted number of user groups when the number of user groups in FIG. 16 is increased according to an embodiment of the present disclosure.
  • FIG. 20 illustrates whether to adjust the number of a plurality of user groups based on Euclidean distances between user embedding vectors for at least one user belonging to each of a plurality of user groups according to an embodiment of the present disclosure.
  • 21 is a block diagram for explaining a server according to an embodiment of the present disclosure.
  • content may be content including multimedia content including movies and music, applications downloadable from an application store, and various products purchasable on the Internet.
  • customized content may be recommended to a user. For example, applications displayed on the first screen when accessing an application store may be customized recommended contents (or customized recommended applications) provided to the user. In addition, when a player's recommendation button for listening to music is clicked, music exposed on the top may be customized recommended contents (or customized customized music) provided to the user.
  • the feedback vector may be a vector representing a user's preference for at least one of a plurality of contents.
  • the user's preference for at least one of the plurality of contents may include “positive”, “negative", and “no preference”, and may include “positive” and “negative”.
  • Element values of feedback vectors corresponding to "(negative)" and "no preference" may be obtained. For example, if the user's preference for the content is positive, it corresponds to the feedback vector element value 1, and if the user's preference for the content is negative, it corresponds to the feedback vector element value 0, and the user's preference for the content When is no preference, it may correspond to a blank of an element of the feedback vector.
  • the user's preference for at least one of the plurality of contents may include only “positive” and “negative”, and the user's preference may be "no preference" In the case of , it may be determined to correspond to one of “positive” and “negative”.
  • the preference may be determined based on a user's action, behavior, or reaction to at least one of a plurality of contents. For example, if the user clicks on the content or gazes at it for a certain period of time, the user's preference for the content may be determined as positive. Conversely, when the user scrolls through the content or gives the content a low rating below a certain score, the user's preference for the content may be determined to be negative.
  • the feedback information may be information including a plurality of feedback vectors indicating preferences of a plurality of users for a plurality of contents, and may include, for example, a matrix including a plurality of feedback vectors. .
  • the embedding vector may be a vector representing natural language written by a person in the form of numbers that a computer can understand.
  • an embedding vector may be a latent vector or a latent factor, and the embedding vector may represent only mathematical values.
  • the user embedding vector is an embedding vector generated to distinguish a user based on a plurality of users' preferences for a plurality of contents
  • the content embedding vector is a content embedding vector based on a plurality of users' preferences for a plurality of contents. It may be an embedding vector generated for content in order to distinguish .
  • user embedding vectors and content embedding vectors can be generated such that the product of the matrix of user embedding vectors and the matrix of content embedding vectors is similar to the matrix containing the feedback vectors for the users' contents.
  • the Euclidean distance between user embedding vectors it may be determined that the preferences of a plurality of users for a plurality of contents are similar. For example, if the user embedding vector of user 1 is closer to the user embedding vector of user 3 than the user embedding vector of user 2, it may be determined that user 1 and user 3 have similar preferences for a plurality of contents. there is.
  • the dimension of the embedding vector may be determined in consideration of the memory of the server, the time required to provide the recommended content, and the like, and may be preset and stored in the server. For example, when the memory of the server increases, the dimension of the embedding vector may also increase.
  • an embedding vector may include a plurality of user embedding vectors for a plurality of users and a plurality of content embedding vectors for a plurality of contents, and may include a plurality of user embedding vectors for a user and a plurality of contents.
  • a plurality of content embedding vectors for may be determined based on feedback information.
  • FIG. 1 is a diagram illustrating a method for recommending content to a user according to an embodiment of the present disclosure.
  • a server 1000 includes at least one of a plurality of contents of a plurality of users (eg, user 1 (1001), user 2 (1002), and user 3 (1003)). Behavior, action, reaction, etc. can be obtained for one.
  • a device eg, a portable terminal
  • user 1 (1001) may obtain an action, motion, reaction, etc. for at least one of a plurality of contents of user 1 (1001), and user 1
  • An action of at least one of a plurality of contents of user 1 (1001) may be uploaded or transmitted from the device of user 1 (1001) to the server 1000 through a communication interface of the device of user 1001.
  • 1 illustrates user 1 (1001), user 2 (1002), and user 3 (1003) among a plurality of users, but is not limited thereto.
  • the server 1000 may obtain feedback information 1010 based on a behavior of at least one of a plurality of contents of a plurality of users.
  • the feedback information 1010) may be information in the form of a table or matrix indicating preferences of a plurality of users for a plurality of contents, and a value corresponding to row m and column n of the table is a value for content n of user m. It may be a value corresponding to a preference.
  • feedback information 1010 may be obtained based on actions of a plurality of users on some contents, and values corresponding to row m and column n of the table may be blank. An empty space may mean that there is no data about user m's action or response to content n.
  • the server 1000 provides user embedding vectors 1020 of a plurality of users based on the feedback information 1010 (the user embedding vectors 1020 are the user embedding vector 1021 of user 1 1001, user 2 User embedding vector 1022 of (1002), user embedding vector 1023 of user 3 (1003), user embedding vector 1024 of user 4 (not shown), user embedding vector 1025 of user 5 (not shown) ), user embedding vector 1026 of user 6 (not shown), but is not limited thereto), and content embedding vectors 1030 of a plurality of contents (content embedding vectors 1030 are content 1 content embedding vector 1031 of content 2, content embedding vector 1032 of content 3, content embedding vector 1033 of content 3, content embedding vector 1034 of content 4, and content embedding vector 1035 of content 5. However, it is not limited thereto.) can be generated.
  • the server 1000 may train an artificial neural network model (1040) based on the user embedding vectors 1020 of a plurality of users and the content embedding vectors 1030 of a plurality of contents.
  • the artificial neural network model 1070 may be an artificial neural network model for predicting a user's content preference.
  • the server 1000 may group a plurality of users and determine central users of the plurality of user groups (1050) based on the user embedding vectors 1020. As the Euclidean distance between the user embedding vectors 1020 is closer, the preferences of the plurality of users for the plurality of contents are similar, and therefore, the preference for the plurality of contents of at least one user in the plurality of user groups Preferences can be predicted to be similar.
  • the central users of the plurality of user groups may be users representing preferences for a plurality of contents of at least one user of the plurality of user groups.
  • the user embedding vectors 1060 of central users may include a user embedding vector 1061 of central user 1 and a user embedding vector 1062 of central user 2.
  • the server 1000 may determine (1080) recommended content based on the pre-trained artificial neural network model 1070 based on the user embedding vectors 1060 and the content embedding vectors 1030 of the central users.
  • the plurality of contents of the central users It is possible to generate preference vectors representing predicted preference values for .
  • the recommended content 1090 may be provided to the user 1004 based on the generated preference vectors and the feedback vector 1014 of the user 1004 of the device that has requested the content recommendation and the preference vectors. For example, when it is determined that user 1 (1001) and user 1004 among the central users have similar preferences for a plurality of contents, recommended content including content 3 and content 4 preferred by user 1 (1001) (1090) can be provided.
  • FIG. 2 is a flowchart of a method of providing recommended content to a user according to an embodiment of the present disclosure.
  • the server may obtain a user's feedback vector for at least one of a plurality of contents according to the content recommendation request received from the user's device.
  • a user's device may transmit a content recommendation request to the server 1000 .
  • the user may be user 1004 in FIG. 1 .
  • the device of the user 1004 may transmit a content recommendation request to the server 1000 according to a predetermined period or based on an input from the user through a communication interface of the device.
  • the device of the user 1004 identifies that the user 1004 accesses a site for recommending content, an application store for downloading an application, or a multimedia content streaming site as the user's input, and the server 1000
  • a content recommendation request can be transmitted with .
  • the user's device may obtain a user's feedback vector for at least one of a plurality of contents.
  • the feedback vector is a vector representing a user's preference for at least one of a plurality of contents (eg, the feedback vector 1014 of the user 1004), and feedback corresponding to the user's preference for content.
  • the values of vectors can also vary. For example, when the user 1004 prefers content 1 (eg, when the user has a history of clicking on content 1), the value of the first element of the feedback vector may be 1.
  • the value of the second element of the feedback vector may be 0.
  • the value of the third element of the feedback vector may be blank.
  • the value of the element of the feedback vector may be 1, blank or 0 according to the user's preference for a plurality of contents, or the value of the element of the feedback vector may be 1, 0 or 0 according to the user's preference for the plurality of contents. -1, but is not limited thereto.
  • a user's feedback vector for at least one of the plurality of contents may be generated in advance and stored in the user's device.
  • a user's feedback vector for at least one of the plurality of contents may be generated based on data about preferences of the plurality of contents for the plurality of contents according to the user's request.
  • the server may obtain feedback information about a plurality of contents used by a plurality of users.
  • the server may obtain feedback information indicating preferences of a plurality of users for a plurality of contents.
  • the feedback information may include a plurality of feedback vectors indicating preferences of a plurality of users for a plurality of contents.
  • the feedback information is a set of a plurality of feedback vectors and may be in the form of a matrix composed of feedback vectors. The feedback information of the present application will be described in detail with reference to FIG. 3 .
  • the server may generate user embedding vectors for a plurality of users and content embedding vectors for a plurality of contents, based on the feedback information.
  • a user embedding vector is an embedding vector generated to distinguish a user based on preferences of a plurality of users for a plurality of contents
  • the content embedding vector is a plurality of contents of a plurality of users. It may be an embedding vector generated for content in order to discriminate the content based on the preference for .
  • embedding vectors may be generated in various ways based on feedback information.
  • the server 1000 uses matrix factorization, learning through an artificial neural network model configured with a specific architecture, or a method of generating an embedding vector based on one-hot encoding, and the like.
  • User embedding vectors for users and content embedding vectors for a plurality of contents may be generated, but are not limited thereto.
  • user embedding vectors for a plurality of users and content embedding vectors for a plurality of contents having feedback information and an error less than or equal to a predetermined first threshold may be generated according to matrix decomposition.
  • a method of generating user embedding vectors for a plurality of users and content embedding vectors for a plurality of contents will be described in detail with reference to FIG. 4 .
  • the server may determine a plurality of user groups and central users of the plurality of user groups corresponding to the plurality of user groups by clustering the plurality of users based on the user embedding vectors of the plurality of users. there is.
  • the server may determine a plurality of user groups by clustering a plurality of users based on user embedding vectors of the plurality of users.
  • the number of the plurality of user groups may be stored in the server 1000 and may be a preset number of user groups.
  • the server 1000 may determine groups of a plurality of users based on Euclidean distances between user embedding vectors of the plurality of users.
  • the server 1000 may group a plurality of user groups of a preset number of user groups based on k-mean clustering.
  • the server may determine central users of a plurality of user groups corresponding to the plurality of user groups, based on user embedding vectors for the plurality of users. Specifically, based on Euclidean distances between user embedding vectors of at least one user belonging to each of the determined plurality of user groups, central users of the plurality of user groups may be determined. For example, based on Euclidean distances between user embedding vectors for at least one user belonging to each of the determined plurality of user groups, a centeroid of a plurality of user groups may be calculated. A user closest to the center of gravity may be determined as a center user of a plurality of user groups. Also, the center users of each of the plurality of user groups may be users belonging to each of the plurality of user groups having the smallest sum of Euclidean distances with at least one user belonging to each of the plurality of user groups.
  • the server 1000 assumes that, in an embedding space including user embedding vectors for a plurality of users, the closer the distance between the user embedding vectors, the more similar the users' content preferences. Predictable. For example, the server 1000 may predict that central users of a plurality of user groups have the most similar preferences for contents of the plurality of user groups, and the central users of the user groups may be users representing the plurality of user groups. can Therefore, even when user embedding vectors of central users, not all of the user embedding vectors of a plurality of users, are input to an artificial neural network model for predicting the user's content preference, customized content suitable for the user can be provided within a short period of time. can provide A method of determining core users of a plurality of user groups by clustering a plurality of users will be described in detail with reference to FIGS. 6-8.
  • the server may input user embedding vectors for central users and content embedding vectors for a plurality of contents to an artificial neural network model for predicting the user's content preference.
  • the server 1000 inputs user embedding vectors for central users and content embedding vectors for a plurality of contents to an artificial neural network model for predicting a user's content preference.
  • the artificial neural network model may be trained based on user embedding vectors for a plurality of users and content embedding vectors for a plurality of contents.
  • a method of training an artificial neural network model for predicting a user's content preference will be described in detail with reference to FIG. 9 .
  • the server 1000 may obtain preference vectors of central users representing predicted preferences of central users for a plurality of contents output by the artificial neural network model.
  • the server 1000 may obtain preference vectors of central users indicating predicted preferences of central users for a plurality of contents.
  • the user embedding vector of central user m and the content embedding vector of content n may be input to an artificial neural network model, and the artificial neural network model may output a predicted preference value for content n of central user m.
  • the predicted preference value for the content n of the central user m may be the value of the nth element of the preference vector of the central user m.
  • the predicted preference value of the plurality of contents of the main users may be output as a real value between 0 and 1.
  • the central user 1 when the value of the first element of the central user 1 is 0.9 and the value of the second element is 0.2, it can be expected that the central user 1 has a higher probability of preferring content 1 to content 2.
  • the real value is not limited to 0-1. 10 in relation to obtaining preference vectors of central users representing predicted preferences of central users for a plurality of contents.
  • the server may determine at least one recommended content to be recommended to the user based on the user's feedback vector and the preference vectors of the central users.
  • the server 1000 may select a central user to be used for content recommendation based on a feedback vector of a user and preference vectors of central users. Specifically, for example, the feedback vector of the user 1004 and the preference vectors of the central users may be compared to select a central user having the most similar content preference of the user 1004 . For example, in FIG. 1 , the server 1000 compares the feedback vector 1014 of the user 1004 and the preference vectors of the central users, so that the preferences of content 1-3 among the central users are the same as those of the user 1004. The same user 1 (1001) can be determined as the selected central user.
  • the server 1000 may extract a preference vector of a central user selected from among preference vectors of central users, and determine at least one recommended content based on the extracted preference vector. For example, when the number of contents to be recommended to the user is preset, the preset number of recommended contents may be provided to the user based on values of elements of the extracted preference vector of the central user. When the number of contents to be recommended is plural, the server 1000 may determine a list of recommended contents to be provided to the user 1004 . For example, in FIG. 1 , the recommended content list may include content 3 and content 4. A method of determining at least one piece of recommended content to be recommended to a user will be described in more detail with reference to FIGS. 11-13.
  • the server may recommend the determined at least one recommendation content to the user.
  • the server 1000 may provide recommended content 1090 composed of content 3 and content 4 to the user 1004 .
  • the number of at least one recommended content may be stored in advance.
  • FIG. 3 is a diagram illustrating an example of feedback information obtained from a plurality of users according to an embodiment of the present disclosure.
  • a server (the server may be the server 1000 of FIG. 1 ) is a behavior, action, reaction, etc. of a plurality of users for at least one of a plurality of contents. can be obtained. Specifically, it is possible to obtain actions, operations, reactions, etc. for at least one of a plurality of contents of a plurality of users through devices of a plurality of users, and to obtain a plurality of users' actions through communication interfaces of devices of a plurality of users. Actions on at least one of the contents of may be uploaded or transmitted to the server from devices of a plurality of users.
  • 3 illustrates user 1 1310, user 2 1320, user 3 1330, and user 1340 among the plurality of users, but is not limited thereto.
  • the feedback vector of users may be a vector representing a user's preference for at least one of a plurality of contents.
  • the user's preference for at least one of the plurality of contents may be determined based on the user's action or reaction to the plurality of contents, and the user's preference for the plurality of contents is positive and negative or positive, It can be divided into negative and no preference, but is not limited thereto.
  • a user's act of clicking on a plurality of contents For example, a user's act of clicking on a plurality of contents, a user's act of scrolling through a plurality of contents, a user's act of staring at a plurality of contents for a certain period of time or longer, a user's act of rating a plurality of contents, a user's
  • the user's preference for a plurality of contents is positive and negative or positive, negative and no preference, etc. can be distinguished by Also, for example, a method of classifying a user's preference for a plurality of contents as positive and negative or positive, negative and no preference may be changed by a server processor or previously set and stored in the server.
  • element values of a user's feedback vector may be different according to the user's preference for a plurality of contents. For example, if the user's preference for content is positive, the user's feedback vector element value is 1, and if the user's content preference is negative, the user's feedback vector element value is 0, and the user's feedback vector element value is 0.
  • a blank element value of the user's feedback vector may be assigned. For example, when the user's preference for content is positive, the user's feedback vector element has a value of 1, and when the user's content preference is negative, the user's feedback vector element has a value of -1, and the user's feedback vector has a value of -1. If there is no history of preference for the content of the user, the element value of the user's feedback vector may be zero. For example, the feedback vector 1345 of the user 1340 to whom the customized content is to be provided may be (0,0,1, , ).
  • the server may obtain the feedback information 1350 based on a behavior for at least one of a plurality of contents of a plurality of users.
  • the feedback information 1350 is a feedback vector 1315 of user 1 1310, a feedback vector 1325 of user 2 1320, and a feedback vector of user 3 1330 ( 1335).
  • the value of the first element and the value of the second element of the feedback vector 1315 may be 0.
  • the value of the third element and the value of the fourth element of the feedback vector 1315 may be 1.
  • the value of the fifth element of the feedback vector 1315 may be blank.
  • the feedback information 1350 is feedback generated based on data related to actions of a plurality of users on a plurality of contents before receiving a content recommendation request from a device of the user 1340.
  • the feedback information 1350 may be feedback information generated based on data related to a content recommendation request received from a device of the user 1340 and the most up-to-date actions of a plurality of users on a plurality of contents.
  • FIG. 4 is a diagram of user embedding vectors 1420 for a plurality of users and content embedding vectors 1430 for a plurality of contents generated based on feedback information 1410 according to an embodiment of the present disclosure. It is a drawing showing an example.
  • a user embedding vector is an embedding vector generated to distinguish a user based on preferences of a plurality of users for a plurality of contents
  • the content embedding vector is a plurality of contents of a plurality of users. It may be an embedding vector generated for content in order to discriminate the content based on the preference for .
  • embedding vectors (including user embedding vectors 1420 for a plurality of users and content embedding vectors 1430 for a plurality of contents) herein include feedback information ( 1410), it can be generated in various ways.
  • the user embedding vectors 1420 for a plurality of users may include a user embedding vector 1421 of user 1 and a user embedding vector 1422 of user 2, and content embedding vectors for a plurality of contents ( 1430) may include the content embedding vector 1431 of content 2.
  • user embedding vectors 1420 for a plurality of users and content embedding vectors 1430 for a plurality of contents are generated to satisfy Equation (1) below. can do.
  • Equation (1) is a value of an element representing user u's preference for content i in the feedback information 1410 .
  • u may be an integer value between 1 and M
  • i may be an integer value between 1 and N.
  • the dimension of the embedding vector may be determined in consideration of the memory of the server, the time required to provide the recommended content, and the like, and may be preset and stored in the server.
  • feature 1 1440 and feature 2 1450 may be axes of user embedding vectors 1420 for a plurality of users and content embedding vectors 1430 for a plurality of contents.
  • embedding vectors are generated by a plurality of users through matrix factorization, learning through an artificial neural network model configured with a specific architecture, or an embedding vector generation method based on one-hot encoding.
  • User embedding vectors 1420 for the user embedding vectors 1420 and content embedding vectors 1430 for a plurality of contents may be generated, but are not limited thereto.
  • FIG. 5 is a diagram illustrating a user embedding vector of user 1 and a user embedding vector of user 2 in FIG. 4 according to an embodiment of the present disclosure.
  • graph 1500 illustrates user embedding vector 1421 of user 1 and user embedding vector 1422 of user 2 .
  • the x-axis of the graph 1500 may be feature 1 (1440) and the y-axis may be feature 2 (1450).
  • the user embedding vector 1421 of user 1 and the user embedding vector 1422 of user 2 may be a latent vector or a latent factor, and only have mathematical values.
  • the user embedding vector 1421 of user 1 and the user embedding vector 1422 of user 2 may be generated according to a predetermined criterion.
  • feature 1 1440 and feature 2 1450 may mean axes related to the user's content preference. Specifically, in the case of a server providing recommended applications to users, users who prefer game applications may have a large value on the feature 1 (1440) axis, and users who prefer financial applications may have a large value on the feature 2 (1450) axis.
  • the value of feature 1 1440 of user 2 is greater than the value of feature 1 1440 of user 1, user 2 may correspond to a user with a higher probability of preferring a game application than user 1. Therefore, in the embedding space including the user embedding vector 1421 of user 1 and the user embedding vector 1422 of user 2 corresponding to the graph 1500, the closer the distances between the user embedding vectors are, the more content between users Their preferences may be similar.
  • FIG. 6 is a flowchart of a plurality of user groups and a method of determining central users of the plurality of user groups according to an embodiment of the present disclosure.
  • the server may determine a plurality of user groups based on the preset number of user groups and Euclidean distances between user embedding vectors for the plurality of users.
  • the server determines a plurality of user groups based on a preset number of user groups and Euclidean distances between user embedding vectors for the plurality of users.
  • User embedding vectors for a plurality of users may be converted into preset low-dimensional user embedding vectors for a plurality of users.
  • the dimension of user embedding vectors for a plurality of users is large, in order to solve the storage space problem of the server by reducing the time required to provide recommended content to the user and reducing high-dimensional data to low-dimensional data .
  • User embedding vectors for a plurality of high-dimensional users may be converted into preset user embedding vectors for a plurality of low-dimensional users.
  • the server may determine a plurality of user groups based on the number of preset user groups and Euclidean distances between user embedding vectors for the plurality of converted users. For example, a plurality of user groups may be determined such that a sum of variances of each of the plurality of user groups is minimized.
  • the server may determine central users of the plurality of user groups based on Euclidean distances between user embedding vectors of at least one user belonging to each of the determined plurality of user groups.
  • the server may determine center points of a plurality of user groups based on Euclidean distances between user embedding vectors for at least one user belonging to each of the determined plurality of user groups.
  • the central point of a plurality of user groups may correspond to a vector calculated as an average of user embedding vectors for at least one user belonging to each of the plurality of user groups.
  • the server may determine central users of the plurality of user groups based on the central points of the plurality of user groups.
  • the central users of the plurality of user groups may be users of the plurality of user groups located closest to the central points of the plurality of user groups in the embedding space.
  • FIG. 7 is a diagram illustrating an example of determining core users of a plurality of user groups by clustering a plurality of users according to an embodiment of the present disclosure.
  • the server may convert the high-dimensional user embedding vectors for a plurality of users into predetermined low-dimensional user embedding vectors for a plurality of users.
  • the server may convert user embedding vectors for a plurality of users of the high-dimensional Nm 1710 into user embedding vectors for a plurality of users of the low-dimensional Np 1730 that are preset.
  • Np 1730 may be a preset value by comprehensively considering the memory of the server and the time required to provide the recommended content to the user.
  • the server converts high-dimensional user embedding vectors for a plurality of users into preset low-dimensional user embedding vectors for a plurality of users through Principal Component Analysis (PCA).
  • PCA Principal Component Analysis
  • the server may determine a plurality of user groups based on the number of preset user groups and Euclidean distances between user embedding vectors for the plurality of converted users. Specifically, the server selects a plurality of user groups through K-means clustering based on the preset number of user groups n (1750) and Euclidean distances between user embedding vectors for the converted plurality of users. can decide In addition, the preset number n 1750 of a plurality of user groups may be a preset value or a value that can be adjusted by comprehensively considering the memory of the server and the time required to provide recommended content to users. . For example, a plurality of user groups may be determined to satisfy Equation (2) below through K-means clustering.
  • each may be a group of a plurality of i-th users. May be the central point of a plurality of user groups, may be a variance calculated based on distances of embedding vectors of users belonging to the i-th group of users. may be the variance of the i-th group.
  • Principal component analysis 1720 and K-means clustering 1740 in FIG. 7 are only one embodiment for determining a plurality of user groups and central users of the plurality of user groups, and are limited thereto. it is not going to be
  • FIG. 8 is a diagram illustrating an example of determining central users of a plurality of user groups in an embedding space according to an embodiment of the present disclosure.
  • graph 1800 may be an embedding space composed of user embedding vectors.
  • the dimensions of the user embedding vectors may be feature 1 (1801) and feature 2 (1802), and the embedding space may be divided into three user groups.
  • group 1 may consist of user 1 (1811), user 2 (1812), user 3 (1813), and user 4 (1820), and group 2 may include user 5 (1831) and user 6 (1832).
  • group 3 is user 11 (1851), user 12 (1852), user 13 (1853) and user 14 (1860).
  • the server may determine a central point of a plurality of user groups for each of a plurality of user groups. Specifically, the server may determine center points of a plurality of user groups based on user embedding vectors of at least one user belonging to a plurality of user groups. For example, center points of a plurality of user groups may be determined based on an average of user embedding vectors of at least one user belonging to the user groups.
  • the center point of group 1 may be center point 1 (1810)
  • the center point of group 2 may be center point 2 (1830)
  • the center point of group 3 may be center point 3 (1850).
  • the server may determine center users of a plurality of user groups based on the calculated center points of the plurality of user groups. For example, as shown in FIG. 8, the center user of group 1 may be user 4 (1820) located closest to center point 1 (1810), and the center user of group 2 is located closest to center point 2 (1830). It may be user 10 (1840), and the center user of group 3 may be user 14 (1860) located closest to the center point 3 (1850).
  • a method for determining core users of a plurality of user groups in FIG. 8 according to an embodiment of the present disclosure is only an embodiment, but is not limited thereto.
  • FIG. 9 is a diagram illustrating an example of training an artificial neural network model according to an embodiment of the present disclosure.
  • the artificial neural network model 1930 of the server uses user embedding vectors 1910 for a plurality of users and content embedding vectors 1920 for a plurality of contents as training data. It may be a trained artificial neural network model. In detail, the artificial neural network model 1930 periodically applies user embedding vectors 1910 for a plurality of users and a plurality of contents before receiving a content recommendation request from a user device targeted for customized content recommendation. It can be trained by using the content embedding vectors 1920 for learning data. In addition, the artificial neural network model 1930 may include at least one of a generalized matrix factorization (GMF) model, a multi-layer perceptron (MLP) model, and a neural matrix factorization (NeuMF) model, but is not limited thereto.
  • GMF generalized matrix factorization
  • MLP multi-layer perceptron
  • NeMF neural matrix factorization
  • the artificial neural network model 1930 may output preference vectors 1940 of central users representing predicted preferences of central users for a plurality of contents.
  • the artificial neural network model 1930 may be trained by comparing the preference vectors 1940 of central users and the feedback information 1950 .
  • the artificial neural network model ( 1930) can be trained iteratively.
  • FIG. 10 is a diagram for explaining an artificial neural network model 1930 according to an embodiment of the present disclosure.
  • the artificial neural network model 1930 may include at least one of a GMF model 2030, an MLP model 2040, and a NeuMF model 2050. Also, user embedding vectors for a plurality of users and content embedding vectors for a plurality of contents may be used as inputs of the artificial neural network model 1930 .
  • the user embedding vector 2010 of user i may be composed of a plurality of user embedding vectors of user i.
  • the first user embedding vector 2011 of user i may be input to the GMF model 2030
  • the second user embedding vector 2012 of user i may be input to the MLP model 2040.
  • the first user embedding vector 2011 and the second user embedding vector 2012 may be user embedding vectors generated by various methods, but are not limited to one embodiment described herein.
  • the content embedding vector 2020 of content j may include a plurality of content embedding vectors of content j.
  • the first content embedding vector 2024 of content j may be input to the GMF model 2030
  • the second content embedding vector 2023 of content j may be input to the MLP model 2040.
  • the first content embedding vector 2024 and the second content embedding vector 2023 may be user embedding vectors generated by various methods, but are not limited to the embodiments described herein.
  • the GMF model 2030 may be a model corresponding to a special example of a Neural Collaborative Filtering Model (NCF) model, and predict linear preferences for a plurality of contents of a plurality of users.
  • NCF Neural Collaborative Filtering Model
  • the MLP model 2040 according to an embodiment of the present disclosure is composed of a plurality of layers and may be a model for predicting non-linear preferences of a plurality of users for a plurality of contents.
  • the NeuMF model 2050 according to an embodiment of the present disclosure is a predicted preference value of user i for content j based on the output value of the GMF model 2030 and the output value of the MLP model 2040. It may be a model that outputs (2060).
  • a feedback vector of user i may be obtained from feedback information (eg, feedback information 1950 of FIG. 9), and the value of the j-th element of the feedback vector of user i. is the preference value of user i for content j obtained based on user i's behavioral data on content j (2070).
  • a predicted preference value of user i for content j (2060) and user i's preference value for content j Based on (2070), the artificial neural network model (1930) can be trained. for example.
  • the artificial neural network model (1930) can be trained.
  • Equation (3) Represents a set of "positive" preferences for a plurality of contents of a plurality of users, may represent a set of “negative” preferences for a plurality of contents of a plurality of users. According to this specification, and for user u and content i belonging to The value is 1 or 0, can also have real values.
  • the artificial neural network model (1930) It may be trained to be less than a preset threshold.
  • FIG. 11 is a flowchart of a method of determining at least one recommendation content to be recommended to a user according to an embodiment of the present disclosure.
  • the server may select a central user to be used for content recommendation based on the user's feedback vector and the preference vectors of the central users.
  • the server may select a central user to be used for recommending content by comparing the user's feedback vector and the preference vectors of the central users.
  • a central user to be used for content recommendation may be selected based on a dot product or a difference between the user's feedback vector and the preference vectors of the central users. for example.
  • a dot product between the user's feedback vector and the preference vectors of the central users may be calculated, and a central user having the largest dot product value may be selected as a central user to be used for content recommendation.
  • a central user to be used for content recommendation may be selected according to a difference value between the user's feedback vector and the preference vectors of the central users. For example, as the difference value (Loss) for the central users is smaller, it may be determined that the preferences for the plurality of contents of the central users are similar to the preferences for the plurality of contents of the user who is the target of content recommendation. .
  • the plurality of contents of the central users A similarity value between a predicted preference for and a user's preference for a plurality of contents may be determined. For example, when the dot product value between the user's feedback vector and the preference vectors of the central users is large or the difference value between the user's feedback vector and the preference vectors of the central users is small, the plurality of contents of the central users A similarity value between a predicted preference for content and a user's preference for a plurality of contents may also be determined to be high.
  • the server may extract a preference vector of the central user selected from among preference vectors of central users.
  • the server may extract a preference vector of a central user selected from among preference vectors of central users.
  • the selected central user may be a user predicted to have a preference most similar to the user's preference for a plurality of contents among the central users.
  • At least one recommended content may be determined based on the extracted preference vector.
  • At least one piece of recommended content may be determined based on element values of the extracted preference vector.
  • at least one recommended content may be determined based on the preset number stored in the server and the element values of the extracted preference vector. For example, a preset number of element values having a large element value of the preference vector may be selected from the extracted preference vector, and at least one content corresponding to the element values of the selected preference vector may be determined as customized content to be recommended to the user. .
  • FIG. 12 is a diagram illustrating an example of one or more recommended contents to be recommended to a user according to an embodiment of the present disclosure.
  • a dot product between a user's feedback vector 2210 and preference vectors of center users is calculated, and a center user having the largest dot product value may be selected as a center user to be used for content recommendation.
  • the preference vectors of the center users may include a preference vector 2230 of the first center user, a preference vector 2222 of the second center user, and a preference vector 2223 of the third center user.
  • the dot product between the user's feedback vector and the central user's preference vector may be calculated through the sum of products of corresponding elements except when the element value is blank.
  • a first central user having a dot product value of 1.6 may be selected as a central user having the most similar user and content preference, and the first central user may be selected as a central user to be used for content recommendation.
  • the server may determine at least one recommended content 2240 to be recommended to the user, based on element values of the first central user's preference vector 2230 . For example, if it is preset to provide two recommended contents to the user, 0.9 and 0.8 having large element values of the first central user's preference vector 2230 may be selected, and the selected element values 0.9 (2231) and 0.8 Recommended content 2240 composed of content 4 2241 and content 5 2242 corresponding to 2232 may be determined.
  • FIG. 13 is a diagram illustrating an example of at least one recommended content to be recommended to a user based on difference values of central users according to an embodiment of the present disclosure.
  • Table 1 2300 for the difference value of the central users may be obtained, and based on the Table 1 2300 A central user to be used for content recommendation may be selected. For example, among the difference values of the table 2300, since the difference value of 0.2 between center user 1 and center user 1 is the smallest, center user 1 may be selected as the center user to be used for content recommendation.
  • the preference vector 2320 of the central user 1 may be a vector representing predicted preferences for content 1 to content 15.
  • the preference vector 2320 of the central user 1 may be sorted in ascending order of predicted preference values, and may be expressed as Table 2 2330.
  • At least one recommendation content to be recommended to the user may be determined based on Table 2 2330 and the number of preset content to be provided to the user as recommended content. For example, when it is determined to recommend five pieces of content to the user, the server recommends content 3, content 1, content 2, content 8, and content 4 (2340), which are contents having a high predicted preference value for the contents. (2350).
  • FIG. 14 is a diagram for a difference value between a content preference prediction and a required time until recommended content is provided to users according to the number of a plurality of user groups according to an embodiment of the present disclosure.
  • the graph 2400 is a graph of the time required to provide recommended content according to the number 2410 of a plurality of user groups 2420 and the difference value 2430 between content preference predictions. am.
  • the x-axis of the graph 2400 is the number 2410 of a plurality of user groups, and the y-axis of the graph 2400 is the time required to provide recommended content 2420 and the difference between content preference prediction 2430.
  • the server compares the preference of the user with more central users and provides recommended content to the user. Difference value 2430 may decrease.
  • the appropriate number of user groups 2410 may be determined by comprehensively considering the time required to provide the recommended content 2420, the difference value 2430 of content preference prediction, and the memory of the server.
  • the server can provide customized recommended content to the user, and at the same time, it is possible to drastically reduce the time required to provide the recommended content.
  • 15 is a flowchart of a method of adjusting the number of a plurality of user groups and re-clustering a user and a plurality of users based on the adjusted number of user groups according to an embodiment of the present disclosure.
  • the server may determine similarity values between the predicted preferences of the central users for the plurality of contents and the user's preferences for the plurality of contents, based on the feedback vector of the user and the preference vectors of the central users. .
  • the server may determine similarity values between the predicted preferences of central users for the plurality of contents and the user's preferences for the plurality of contents. Specifically, based on the dot product between the user's feedback vector and the preference vectors of the central users or the difference value between the user's feedback vector and the preference vectors of the central users, the predicted preferences for the plurality of contents of the central users and A similarity value between user preferences for a plurality of contents may be determined.
  • the dot product value between the user's feedback vector and the preference vectors of the central users is large or the difference value between the user's feedback vector and the preference vectors of the central users is small
  • the plurality of contents of the central users A similarity value between the predicted preference for content and the user's preference for a plurality of contents may also be calculated to be large.
  • the server may adjust the number of user groups based on the determined similarity values.
  • the server may determine the largest similarity value among the determined similarity values and select a central user having the largest similarity value. For example, the server may determine whether to adjust the number of the plurality of user groups by comparing the highest similarity value with a preset threshold value stored in the server.
  • a user embedding vector for a user may be generated based on the user's feedback vector and the feedback information, and user embedding vectors for a plurality of users and content embedding vectors for a plurality of contents may be regenerated.
  • the server may obtain a feedback vector and feedback information based on actions, behaviors, and reactions of a user and a plurality of users in the server to a plurality of contents. For example, the server may generate a user embedding vector for a user and regenerate user embedding vectors for a plurality of users and content embedding vectors for a plurality of contents, based on the feedback vector and the feedback information. . In addition, the server inputs the generated user embedding vector for the user, the regenerated user embedding vectors for the plurality of users, and the content embedding vectors for the plurality of contents to the artificial neural network model to train the artificial neural network model in advance.
  • Recommended content may be provided to the user.
  • the user and the plurality of users may be re-clustered.
  • a user embedding vector for a generated user may be re-clustered.
  • 16 illustrates an adjusted user group when determining whether to adjust the number of a plurality of user groups based on a similarity value of a selected central user and adjusting the number of a plurality of user groups according to an embodiment of the present disclosure. It is a flowchart of a plurality of users and a method of re-clustering users with the number of .
  • the server may determine similarity values between the predicted preferences of the central users for the plurality of contents and the predicted preferences of the user for the plurality of contents, based on the feedback vector of the user and the preference vectors of the central users. there is.
  • a dot product or a difference value between the user's feedback vector and the preference vectors of the central users may be calculated based on the user's feedback vector and the preference vectors of the central users. Also, based on the calculated dot product and the difference value, similarity values between the predicted preferences for the plurality of contents of the central users and the predicted preferences for the plurality of contents of the central users may be determined.
  • the server may select a central user to be used for content recommendation based on the user's feedback vector and the preference vectors of the central users.
  • the server may select a central user having the largest similarity value as a central user to be used for content recommendation, based on the user's feedback vector and the preference vectors of the central users.
  • the server may identify the similarity value of the selected central user among the determined similarity values.
  • the server may select a central user having the largest previously determined similarity value as a central user to be used for content recommendation, based on the user's feedback vector and the preference vectors of the central users, Among the determined similarity values, the largest similarity value may be identified.
  • the server may compare the identified similarity value with a second threshold value to determine whether to increase the number of user groups.
  • the server may determine whether to increase the number of user groups by comparing the identified similarity value with a second threshold value, the second threshold value being the size of the memory, the plurality of user groups It may be a preset value in consideration of the number of files, the size of data related to actions and reactions related to preferences for a plurality of contents of a plurality of users stored in a memory, and the like. For example, when the identified similarity value is equal to or less than a preset second threshold, the server may adjust the number of user groups to increase the number of user groups (operation S2660). Also, for example, when the identified similarity value is greater than a preset second threshold, the server compares the identified similarity value with a third threshold to determine whether to reduce the number of the plurality of user groups. (Operation S2650).
  • the server may compare the identified similarity value with a third threshold value to determine whether to reduce the number of user groups.
  • the server may determine whether to reduce the number of user groups by comparing the identified similarity value with a third threshold, the third threshold being the size of memory, the plurality of user groups It may be a preset value in consideration of the number of files, the size of data related to actions and reactions related to preferences for a plurality of contents of a plurality of users stored in a memory, and the like.
  • the third threshold may be a value smaller than the second threshold.
  • the server may determine the number of user groups adjusted to decrease (operation S2670).
  • the server may determine the number of user groups to be maintained (operation S2680).
  • the server may determine the number of user groups adjusted to increase the number of user groups.
  • the server may determine the number of user groups adjusted to decrease the number of user groups.
  • the server may determine the number of user groups to be maintained.
  • the server may re-cluster a plurality of users and users with the adjusted number of user groups.
  • the server may re-cluster a plurality of users and users based on the adjusted number of user groups, a user feedback vector, and feedback information of the plurality of users. Specifically, the server performs a user embedding vector of a user, user embedding vectors of a plurality of users, and content embedding of a plurality of contents based on the adjusted number of user groups, the user's feedback vector, and the feedback information of the plurality of users. Vectors can be recreated.
  • a plurality of users and users may be re-clustered based on the generated user embedding vector of the user, the regenerated user embedding vectors of the plurality of users, and the content embedding vectors of the plurality of contents.
  • the server may re-cluster the plurality of users and users based on at least one of principal component analysis or k-means clustering.
  • FIG. 17 is a diagram illustrating an example of re-clustering a plurality of users and users with an adjusted number of user groups when the number of user groups in FIG. 16 is reduced according to an embodiment of the present disclosure.
  • graph 2700 may represent an embedding space composed of user embedding vectors of a plurality of users, an x-axis of graph 2700 is feature 1 2701, and The y-axis may be feature 2 (2702).
  • the number of a plurality of user groups may be adjusted from three to two by operation S2670.
  • group 1 includes user 1 (2711), user 2 (2712), user 3 (2713), user 4 (2714), user 5 (2715), user 6 (2716), user 7 (2717) ), user 8 2718, user 9 2719, and user 10 2720 may be included.
  • group 2 2730 may include user 11 2731 , user 12 2732 , user 13 2733 , user 14 2734 , and user 2740 .
  • a plurality of user groups may be re-clustered into group 1 2710 and group 2 2730, and the user 2740 may be a target user for content recommendation.
  • FIG. 18 is a diagram illustrating a plurality of users and an example of re-clustering users when the number of the plurality of user groups in FIG. 16 is maintained according to an embodiment of the present disclosure.
  • graph 2800 may represent an embedding space composed of user embedding vectors of a plurality of users, an x-axis of graph 2800 is feature 1 2801, and The y-axis may be feature 2 (2802).
  • the number of the plurality of user groups may be maintained at three by operation S2680.
  • group 1 2810 may include user 1 2811 , user 2 2812 , user 3 2813 , user 4 2814 , and user 2820 .
  • group 2 2830 may include user 5 2831, user 6 2832, user 7 2833, user 8 2834, and user 9 2835.
  • group 3 2850 may include user 10 2851, user 11 2852, user 12 2853, user 13 2854, and user 14 2855.
  • a plurality of user groups may be re-clustered into group 1 (2810), group 2 (2830), and group 3 (2850), and the user 2820 may be a user who is a target of content recommendation.
  • FIG. 19 is a diagram illustrating an example of re-clustering a plurality of users and users with the adjusted number of user groups when the number of user groups in FIG. 16 is increased according to an embodiment of the present disclosure.
  • graph 2900 may represent an embedding space composed of user embedding vectors of a plurality of users, an x-axis of graph 2900 is feature 1 2901, and The y-axis may be feature 2 (2902).
  • the number of the plurality of user groups may be adjusted from three to four by operation S2660.
  • group 1 2910 may include user 1 2911 , user 2 2912 , user 3 2913 , user 4 2914 , and user 2920 .
  • group 2 (2930) may include user 5 (2931), user 6 (2932), and user 7 (2933).
  • group 3 (2950) may include user 8 (2951), user 9 (2952), and user 10 (2953).
  • group 4 (2970) may include user 11 (2971), user 12 (2972), user 13 (2973), and user 14 (2974).
  • a plurality of user groups may be re-clustered into group 1 (2910), group 2 (2930), group 3 (2950), and group 4 (2970), and the user 2920 may be a user who is a target of content recommendation. .
  • FIG. 20 illustrates whether to adjust the number of a plurality of user groups based on Euclidean distances between user embedding vectors for at least one user belonging to each of a plurality of user groups according to an embodiment of the present disclosure.
  • the server compares Euclidean distances between user embedding vectors for at least one user belonging to each of a plurality of user groups and a preset fourth threshold, and compares the number of user embedding vectors of a plurality of user groups. number can be adjusted. Specifically, for a certain user group among a plurality of user groups, when the distance in the embedding space between user 1 and user 2 belonging to the certain user group is greater than or equal to a threshold value, the server determines that user 1 and user 2 are the same user group. Since it is not appropriate to belong to, the number of user groups can be adjusted to increase.
  • the server may determine maximum distances of the plurality of user groups based on Euclidean distances between user embedding vectors of at least one user belonging to each of the plurality of user groups.
  • the server may calculate Euclidean distances between user embedding vectors for at least one user belonging to each of a plurality of user groups. Specifically, the server may determine that content preferences among the plurality of users are similar as the positions of the plurality of users are closer in the embedding space. Further, maximum distances of a plurality of user groups may be determined based on calculated Euclidean distances between user embedding vectors of at least one user belonging to each of the plurality of user groups. For example, for a first group among a plurality of user groups, the server determines user 1 and user 2 having the greatest Euclidean distance among Euclidean distances between user embedding vectors for at least one user belonging to the first group. can choose Also, for example, the Euclidean distance between the user embedding vector of user 1 and the user embedding vector of user 2 may be determined as the maximum distance of the first group, but is not limited thereto.
  • the server may determine whether to adjust the number of the plurality of user groups by comparing the maximum distances of all the plurality of user groups and the fourth threshold.
  • the server may determine whether to adjust the number of the plurality of user groups by comparing maximum distances of all the plurality of user groups and a fourth threshold, and the fourth threshold may determine whether to adjust the number of the plurality of user groups. It may be a predetermined value in consideration of the number of groups, memory size, time required to provide recommended content, and the like. For example, when the maximum distances of all the plurality of user groups are equal to or less than the fourth threshold, the server may determine to maintain the number of the plurality of user groups (operation S3040). Also, for example, when at least one maximum distance among the maximum distances of all the plurality of user groups is greater than the fourth threshold, the server may adjust the number of the plurality of user groups to increase (operation S3030).
  • the server may adjust the number of the plurality of user groups to increase.
  • the server may determine the number of the plurality of user groups to be maintained.
  • the server may re-cluster users and new users in the server with the adjusted number of user groups.
  • the server may re-cluster a plurality of users and users based on the adjusted number of user groups, a user feedback vector, and feedback information of the plurality of users. Specifically, the server performs a user embedding vector of a user, user embedding vectors of a plurality of users, and content embedding of a plurality of contents based on the adjusted number of user groups, the user's feedback vector, and the feedback information of the plurality of users. Vectors can be recreated.
  • a plurality of users and users in the server may be re-clustered based on the regenerated user embedding vector of the user and the user embeddings of the plurality of users.
  • the server may re-cluster the plurality of users and users based on at least one of principal component analysis or k-means clustering.
  • 21 is a block diagram for explaining a server according to an embodiment of the present disclosure.
  • a server 3100 includes a communication interface 3110, a processor 3120, and a memory 3130.
  • the memory 3130 includes a user feedback vector acquisition module 3131 and a feedback information acquisition module 3132. ), embedding vector generation module 3133, clustering module 3134, central user determination module 3135, artificial neural network model 3136, preference vector acquisition module 3137, recommended content determination module 3138, user feedback data A DB 3139 and a group number adjustment module 3140 may be included.
  • a device 3200 may include a display unit 3210, a communication interface unit 3220, a processor 3230, and a memory 3240.
  • Actions, reactions, and motions related to a user's preference for a plurality of contents may be input through a user input unit (not shown) of the device 3200 .
  • the display unit 3210 may be a touch screen, and the touch screen may also be used as an input unit.
  • a user's action of clicking or scrolling a plurality of contents through a touch screen may be a user's action or reaction to a plurality of contents.
  • the device 3200 may be devices of a plurality of users, and the communication interface unit 3220 of the plurality of users' devices may transmit history or data on actions, reactions, and operations related to preferences for a plurality of contents of the plurality of users. It can be transmitted to the server 3100 through.
  • user 1 (1001) of FIG. 1 may transmit actions, reactions, or data on a plurality of contents to the server 3100 through the device of user 1 (1001), and may be transmitted to the server 3100 in FIG.
  • Data on actions, responses, or actions of users 2 (1002) and 3 (1003) on a plurality of contents are also transmitted to the server 3100 through the device of user 2 (1002) and the device of user 3 (1003). It can be.
  • the device 3200 may be a device of a user (eg, user 1004 of FIG. 1 ) who is a target of content recommendation.
  • actions, reactions, and operations related to a user's preference for a plurality of contents may be updated by the processor 3230, stored in the memory 3240, and then periodically transmitted to the server 3100.
  • the user's act of rating the plurality of contents may also be included in the user's action, response, and operation related to the user's preference for the plurality of contents.
  • actions, reactions, and operations related to a user's preference for a plurality of contents may be stored in the memory 3240 for a predetermined period of time and then periodically transmitted to the server 3100 .
  • the device 3200 includes a smart phone, a tablet PC, a PC, a smart TV, a mobile phone, a personal digital assistant (PDA), a laptop, a media player, a micro server, a global positioning system (GPS) device, an e-book reader, a digital broadcast terminal, and a navigation device. , kiosks, MP3 players, digital cameras, consumer electronics, and other mobile or non-mobile computing devices.
  • the device 3200 may be a wearable device such as a watch, glasses, hair band, and ring having a communication function and a data processing function.
  • a network that communicatively connects the device 3200 and the server 3100 is a wired network such as a Local Area Network (LAN), a Wide Area Network (WAN), or a Value Added Network (VAN). It can be implemented in all types of wireless networks such as mobile radio communication networks or satellite communication networks.
  • the network is a local area network (LAN), a wide area network (Wide Area Network; WAN), a value-added network (VAN), a mobile communication network (mobile radio communication network), or a satellite communication network of at least two mutual It may include a combination, and is a data communication network in a comprehensive sense that enables each network constituent entity shown in FIG. 21 to communicate smoothly with each other, and includes wired Internet, wireless Internet, and mobile wireless communication network.
  • Wireless communication includes, for example, wireless LAN (Wi-Fi), Bluetooth, Bluetooth low energy (Bluetooth low energy), Zigbee, WFD (Wi-Fi Direct), UWB (ultra wideband), infrared communication (IrDA, Infrared Data Association) ), Near Field Communication (NFC), etc., but is not limited thereto.
  • Wi-Fi wireless LAN
  • Bluetooth Bluetooth low energy
  • Zigbee Zigbee
  • WFD Wi-Fi Direct
  • UWB ultra wideband
  • infrared communication IrDA, Infrared Data Association
  • NFC Near Field Communication
  • the communication interface 3110 may include one or more components for communication with the device 3200 .
  • the communication interface 3110 may transmit and receive information necessary to provide customized recommended content to the user with the device 3200 .
  • the communication interface 3110 may communicate with other devices (not shown) and other servers (not shown) to provide customized recommended content to the user.
  • the communication interface 3110 may include a short-distance communication unit, a mobile communication unit, and a broadcast reception unit.
  • the short-range wireless communication unit includes a Bluetooth communication unit, a Bluetooth Low Energy (BLE) communication unit, a Near Field Communication unit (WLAN) communication unit, a Zigbee communication unit, an infrared (IrDA) It may include a Data Association (Data Association) communication unit, a Wi-Fi Direct (WFD) communication unit, an ultra wideband (UWB) communication unit, an Ant+ communication unit, etc., but is not limited thereto.
  • the mobile communication unit transmits and receives radio signals with at least one of a base station, an external terminal, and a server on a mobile communication network.
  • the radio signal may include a voice call signal, a video call signal, or various types of data according to text/multimedia message transmission/reception.
  • the broadcast reception unit receives a broadcast signal and/or broadcast-related information from the outside through a broadcast channel.
  • Broadcast channels may include satellite channels and terrestrial channels.
  • the processor 3120 controls the overall operation of the server 3100.
  • the processor 3120 may control the function of the server 3100 for recommended content in this specification by executing programs stored in the memory 3130 to be described later.
  • the memory 3130 may store programs for processing and control of the processor 3120 .
  • the memory 3130 is a flash memory type, a hard disk type, a multimedia card micro type, a card type memory (eg SD or XD memory, etc.), RAM (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), magnetic memory, magnetic disk , an optical disk, and at least one type of storage medium.
  • Programs stored in the memory 3130 can be classified into a plurality of modules according to their functions.
  • the memory 3130 includes a user feedback vector acquisition module 3131, a feedback information acquisition module 3132, and an embedding vector. generation module 3133, clustering module 3134, central user determination module 3135, artificial neural network model 3136, preference vector acquisition module 3137, recommended content determination module 3138, user feedback data DB 3139 and a group number adjustment module 3140 may be included.
  • the user feedback vector obtaining module 3131 may also obtain a feedback vector of a user who is a target of recommendation. Specifically, according to the content recommendation request received from the user's device, a user's feedback vector to be recommended may also be acquired. For example, in response to a content recommendation request, a window for selecting whether or not to request a content recommendation may be popped up on the display unit 3210 of the user's device 3200 . Also, for example, when a user accesses an application, web page, etc. related to content recommendation, a content recommendation request may be automatically transmitted to the server 3100 .
  • Actions, reactions, and actions related to the user's preferences for a plurality of contents may be transmitted to the server 3100 together with the content recommendation request, and based on the actions, reactions, and actions related to the user's preferences for the plurality of contents Accordingly, the user feedback vector acquisition module 3131 may also obtain a feedback vector of a user who is a target of recommendation.
  • the feedback information acquisition module 3132 obtains actions, reactions, and actions related to preferences of a plurality of users for a plurality of contents from the device 3200, and obtains a preference for at least one of the plurality of contents of a plurality of users.
  • Indicative feedback information may be generated or acquired.
  • the feedback information may include a plurality of feedback vectors representing preferences of a plurality of users for a plurality of contents, and the feedback vector may be a vector representing a user's preference for at least one of the plurality of contents. there is.
  • feedback vectors of a plurality of users may be pre-generated and stored in the user feedback vector acquisition module 3131 before a content recommendation request is made.
  • the user feedback vector acquisition module 3131 selects a plurality of feedback vectors based on the most up-to-date actions, reactions, and actions related to preferences for a plurality of contents of a plurality of users. can create them.
  • the embedding vector generation module 3133 may generate user embedding vectors for a plurality of users and content embedding vectors for a plurality of contents, based on the feedback information generated by the user feedback vector acquisition module 3131. .
  • the embedding vector generation module 3133 uses matrix factorization, learning through an artificial neural network model configured with a specific architecture, or an embedding vector generation method based on one-hot encoding, and the like.
  • User embedding vectors for users and content embedding vectors for a plurality of contents may be generated, but are not limited thereto.
  • user embedding vectors for a plurality of users and content embedding vectors for a plurality of contents may be pre-generated and stored in the embedding vector generation module 3133 before a content recommendation request is made.
  • the embedding vector generation module 3133 determines the plurality of users based on the most up-to-date actions, reactions, and operations related to preferences for the plurality of contents of the plurality of users.
  • User embedding vectors for a user and content embedding vectors for a plurality of contents may be generated.
  • the clustering module 3134 may cluster a plurality of users based on user embedding vectors of the plurality of users. Specifically, the number of user groups may be stored in the clustering module 3134, and the plurality of users may be clustered based on the number of user groups and user embedding vectors for the plurality of users. there is. For example, the clustering module 3134 can determine groups of the plurality of users based on Euclidean distances between user embedding vectors for the plurality of users. Also, for example, the clustering module 3134 may group the plurality of users into a plurality of user groups of a preset number of user groups based on k-means clustering. Information on a plurality of grouped users may be stored in the clustering module 3134 .
  • user embedding vectors for a plurality of users may be pre-generated, and the plurality of users are grouped based on the pre-generated user embedding vectors for the plurality of users. can do.
  • the embedding vector generation module 3133 generates information about a plurality of users based on the most up-to-date actions, reactions, and actions related to preferences for a plurality of contents of the plurality of users.
  • User embedding vectors may be generated, and the clustering module 3134 may group a plurality of users based on the generated user embedding vectors for the plurality of users.
  • the central user determination module 3135 may determine central users of a plurality of user groups corresponding to the plurality of user groups, based on the user embedding vectors of the plurality of users. Specifically, based on Euclidean distances between user embedding vectors of at least one user belonging to each of the determined plurality of user groups, central users of the plurality of user groups may be determined. Also, center users of a plurality of user groups may be stored in the center user determination module 3135 .
  • the central user determination module 3135 selects a plurality of user groups based on actions, reactions, and actions related to preferences for a plurality of contents of the plurality of users. It is possible to determine central users of a plurality of user groups corresponding to . In addition, when determining central users of a plurality of user groups corresponding to a plurality of user groups based on actions, reactions, and operations related to the latest user preferences for a plurality of contents, 1) of the recommendation Although the time required to recommend content to the target user may be long, 2) More appropriate customization is possible as data on actions, reactions, and motions related to preferences for a plurality of contents of a plurality of recent users are used. Recommended content may be provided.
  • the artificial neural network model 3136 may be an artificial neural network model for predicting a user's content preference. Training data of the artificial neural network model 3136 may be user embedding vectors for a plurality of users and content embedding vectors for a plurality of contents. Also, the artificial neural network model may be an artificial neural network model including at least one of a GMF model, an MLP model, and a NeuMF model. In addition, the artificial neural network model 3136 may be an artificial neural network model that is periodically learned when user embedding vectors for a plurality of users and content embedding vectors for a plurality of contents are generated. Also, for example, after recommending at least one piece of content to a new user, the user embedding vector of the new user may be used as training data of the artificial neural network model 3136 .
  • the preference vector acquisition module 3137 calculates the predicted preferences of the central users for the plurality of contents based on the user embedding vectors for the central users and the content embedding vectors for the plurality of contents input to the artificial neural network model. It is possible to generate preference vectors of central users representing .
  • the preference vector of central user 1 may represent the predicted preferences of central user 1 for a plurality of contents, and if the value of the first element of the preference vector of central user 1 is greater than the value of the second element, the processor 3120 can predict that the central user 1 will prefer content 1 to content 2.
  • the recommended content determination module 3138 may determine at least one recommended content to be recommended based on the preference vectors of the central users obtained by the preference vector obtaining module 3137 .
  • the recommended content determination module 3138 may select a central user to be used for content recommendation based on the preference vectors of the central users and the user's feedback vector stored in the usage feedback obtaining module 3131 .
  • a central user to be used for content recommendation may be selected based on a dot product or a difference value between a feedback vector of a user who is a recommendation target and preference vectors of central users among preference vectors. for example.
  • a dot product between the user's feedback vector and the preference vectors of the central users may be calculated, and a central user having the largest dot product value may be selected as a central user to be used for content recommendation.
  • a preference vector of a central user selected from among preference vectors of central users may be extracted, and at least one recommended content to be recommended to the user may be determined.
  • the number of contents to be recommended to the user may be preset and stored in the recommended contents determination module 3138 .
  • at least one recommended content to be recommended to the user may be selected according to the number of content to be recommended to a pre-stored user having a large element value in the preference vector of the selected central user.
  • the user feedback data DB 3139 may store history or data on actions, reactions, or actions related to preferences for a plurality of contents of a plurality of users.
  • the communication interface 3110 of the server 3100 transmits a history or data on actions, reactions, or actions related to preferences for a plurality of contents of a plurality of users from the communication interface 3220 of the device 3200. Records or data on behaviors, reactions, or actions related to preferences for a plurality of contents that can be received and received by a plurality of users may be stored in the user feedback data DB 3139 .
  • the feedback information acquisition module 3132 obtains history or data on actions, reactions, or actions related to preferences for a plurality of contents of a plurality of users from the user feedback data DB 3139 to obtain feedback information.
  • the number of groups adjustment module 3140 may adjust the number of user groups based on the preference vector of the central user selected in the recommended content determination module 3138 and the feedback vector of the user who is the content recommendation target.
  • the number of groups adjustment module 3140 may adjust the number of user groups by considering the similarity between the preference vector of the central user selected in the recommended content determination module 3138 and the feedback vector of the user who is the content recommendation target. there is. For example, the number of groups adjustment module 3140 calculates the similarity value of the preference vector of the central user selected in the recommended content determination module 3138 and the feedback vector of the user who is the content recommendation target, and the calculated similarity value adjusts the number of groups. It may be compared with a threshold similarity value pre-stored in the module 3140.
  • the group number adjusting module 3140 reduces the number of user groups when the calculated similarity value is greater than the pre-stored threshold similarity value, and reduces the number of user groups when the calculated similarity value is smaller than the pre-stored threshold similarity value. number can be increased.
  • the group number adjustment module 3140 compares Euclidean distances between user embedding vectors for at least one user belonging to each of a plurality of user groups and a predetermined threshold value, and compares the number of user groups to a predetermined threshold value. number can be adjusted. For example, for a certain user group among a plurality of user groups, when a distance in an embedding space between user 1 and user 2 belonging to a certain user group is greater than or equal to a threshold value, the number of groups adjusting module 3140 determines that user 1 And since it is not appropriate for user 2 to belong to the same user group, the number of user groups may be increased.
  • the server may provide a method for recommending content to the user.
  • the method may include an operation of acquiring a feedback vector of the user for at least one of a plurality of contents, based on a content recommendation request received from the user's device.
  • the method may include an operation of obtaining feedback information about the plurality of contents used by a plurality of users.
  • the method may include an operation of generating user embedding vectors for the plurality of users and content embedding vectors for the plurality of contents, based on the feedback information.
  • the method may include an operation of determining a plurality of user groups and center users of the plurality of user groups by clustering the plurality of users based on user embedding vectors of the plurality of users.
  • the method may include an operation of inputting user embedding vectors for the central users and content embedding vectors for the plurality of contents to an artificial neural network model for estimating a user's content preference. there is.
  • the method may include an operation of obtaining preference vectors of the central users representing predicted preferences of the central users for the plurality of contents, which are output by the artificial neural network model.
  • the method may include an operation of determining at least one recommendation content to be recommended to the user based on the feedback vector of the user and the preference vectors of the central users.
  • the method may include an operation of recommending the determined at least one content to the user.
  • the user's feedback vector is a vector representing the user's preference for at least one of the plurality of contents
  • the feedback information includes a plurality of elements representing the preferences of the plurality of users for the plurality of contents. It may include feedback vectors of
  • the method may include user embedding vectors for the plurality of users and content embedding vectors for the plurality of contents having an error of less than or equal to a first predetermined threshold with the feedback information according to a predetermined criterion. may include an operation to generate them.
  • the method includes determining the plurality of user groups based on a predetermined number of user groups and Euclidean distances between user embedding vectors for the plurality of users. Actions may be included.
  • the method may include determining central users of the plurality of user groups based on Euclidean distances between user embedding vectors of at least one user belonging to each of the plurality of user groups. .
  • the method may select a center user from among the center users based on the feedback vector of the user and the preference vectors of the center users.
  • the method may extract a preference vector of the selected central user from among preference vectors of the central users.
  • the method may include an operation of determining the at least one recommended content based on the extracted preference vector.
  • the method further comprises, based on the feedback vector of the user and the preference vectors of the central users, the predicted preference of the central users for the plurality of contents and the user's preference vectors for the plurality of contents. It may include an operation of determining similarity values between preferences for. The method may include an operation of adjusting the number of the plurality of user groups based on the determined similarity values.
  • the method may include selecting a center user from among the center users based on the feedback vector of the user and the preference vectors of the center users.
  • the method may include an operation of identifying a similarity value of the selected central user among the determined similarity values.
  • the method may include an operation of increasing the number of the plurality of user groups based on the identified similarity value being less than or equal to a preset second threshold.
  • the method may include selecting a center user from among the center users based on the feedback vector of the user and the preference vectors of the center users.
  • the method may include an operation of identifying a similarity value of the selected central user among the determined similarity values.
  • the method may include an operation of reducing the number of the plurality of user groups based on the identified similarity value equal to or greater than a preset third threshold.
  • the method compares Euclidean distances between user embedding vectors for at least one user belonging to each of the plurality of user groups and a preset fourth threshold to determine the number of the plurality of user groups. It may include an operation to adjust.
  • the artificial neural network model may include at least one of a Generalized Matrix Factorization (GMF) model, a Multi-Layer Perceptron (MLP) model, and a Neural Matrix Factorization (NeuMF) model.
  • GMF Generalized Matrix Factorization
  • MLP Multi-Layer Perceptron
  • the artificial neural network model may be an artificial neural network model trained using user embedding vectors for the plurality of users and content embedding vectors for the plurality of contents as training data.
  • the method generates a user embedding vector for the user based on the feedback vector of the user and the feedback information, and the user embedding vectors for the plurality of users and the plurality of contents are generated. It may include an operation of regenerating content embedding vectors for The method may include re-clustering the user and the plurality of users based on the adjusted number of user groups.
  • a server for recommending content to a user may be provided.
  • the server may include a communication interface; a memory that stores one or more instructions; and a processor executing the one or more instructions.
  • the processor may obtain a feedback vector of the user for at least one of a plurality of contents, based on a content recommendation request received from the user's device.
  • the processor may obtain feedback information about the plurality of contents used by a plurality of users.
  • the processor may generate user embedding vectors for the plurality of users and content embedding vectors for the plurality of contents, based on the feedback information.
  • the processor determines a plurality of user groups and central users of the plurality of user groups corresponding to the plurality of user groups by clustering the plurality of users based on the user embedding vectors of the plurality of users. can decide
  • the processor may input user embedding vectors for the central users and content embedding vectors for the plurality of contents to an artificial neural network model for predicting a user's content preference.
  • the processor may obtain preference vectors of the central users representing predicted preferences of the central users for the plurality of contents, which are output by the artificial neural network model.
  • the processor may determine at least one recommendation content to be recommended to the user based on the feedback vector of the user and the preference vectors of the central users.
  • the processor may recommend the determined at least one content to the user.
  • the processor may execute the stored one or more instructions to select a central user to be used for recommending the content based on the feedback vector of the user and the preference vectors of the central users.
  • the processor may extract a preference vector of the selected central user from among preference vectors of the central users.
  • the processor may determine the at least one recommended content based on the extracted preference vector.
  • the processor executes the stored one or more instructions to determine the predicted preferences of the center users for the plurality of contents and the center users based on the user's feedback vector and the center users' preference vectors. Similarity values among user preferences for the plurality of contents may be determined. The processor may adjust the number of the plurality of user groups based on the determined similarity values.
  • the processor may determine Euclidean distances between user embedding vectors for at least one user belonging to each of the plurality of user groups and a preset fourth threshold by executing the one or more stored instructions. Based on this, the number of the plurality of user groups may be adjusted.
  • the artificial neural network model may include at least one of a Generalized Matrix Factorization (GMF) model, a Multi-Layer Perceptron (MLP) model, and a Neural Matrix Factorization (NeuMF) model.
  • GMF Generalized Matrix Factorization
  • MLP Multi-Layer Perceptron
  • the artificial neural network model may be an artificial neural network model trained using user embedding vectors for the plurality of users and content embedding vectors for the plurality of contents as training data.
  • a computer-readable recording medium recording a program for executing the method on a computer.
  • the recording medium may be provided in a computer readable manner so that a computer executes an operation of obtaining a feedback vector of the user for at least one of a plurality of contents based on a content recommendation request received from the user's device.
  • the recording medium may be provided so as to be computer readable so that a computer can execute an operation of obtaining feedback information on the plurality of contents used by a plurality of users.
  • the recording medium may be provided in a computer readable manner so that a computer executes an operation of generating user embedding vectors for the plurality of users and content embedding vectors for the plurality of contents based on the feedback information.
  • the recording medium is configured to cause a computer to perform an operation of determining a plurality of user groups and central users of the plurality of user groups by clustering the plurality of users based on user embedding vectors of the plurality of users. It can be provided so that it can be read by a computer.
  • the recording medium causes a computer to input the user embedding vectors for the central users and the content embedding vectors for the plurality of contents to an artificial neural network model for estimating the user's content preference. It may be provided in a computer-readable form for execution.
  • the recording medium is computer-readable so that a computer can execute an operation of obtaining preference vectors of the central users representing predicted preferences of the central users for the plurality of contents, which are output by the artificial neural network model. can be provided.
  • the recording medium may be provided to be computer readable so that a computer executes an operation of determining at least one recommendation content to be recommended to the user based on the user's feedback vector and the preference vectors of the central users. .
  • the recording medium may be provided so as to be computer readable so that a computer executes an operation of recommending the determined at least one content to the user.
  • a storage medium or a recording medium readable by a device may be provided in the form of a non-transitory storage medium.
  • 'non-temporary storage medium' only means that it is a tangible device and does not contain signals (e.g., electromagnetic waves), and this term refers to the case where data is stored semi-permanently in the storage medium and temporary It does not discriminate if it is saved as .
  • a 'non-temporary storage medium' may include a buffer in which data is temporarily stored.
  • the method according to various embodiments disclosed in this document may be provided by being included in a computer program product.
  • Computer program products may be traded between sellers and buyers as commodities.
  • a computer program product is distributed in the form of a device-readable storage medium (eg compact disc read only memory (CD-ROM)), or through an application store or between two user devices (eg smartphones). It can be distributed (e.g., downloaded or uploaded) directly or online.
  • at least a portion of the computer program product e.g., a downloadable app
  • is a device-readable storage such as the memory of a manufacturer's electronic device, an application store's electronic device, or a relay electronic device. It can be at least temporarily stored in a medium or temporarily created.

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Finance (AREA)
  • Accounting & Taxation (AREA)
  • Health & Medical Sciences (AREA)
  • Economics (AREA)
  • General Health & Medical Sciences (AREA)
  • Marketing (AREA)
  • Evolutionary Computation (AREA)
  • Strategic Management (AREA)
  • Artificial Intelligence (AREA)
  • General Business, Economics & Management (AREA)
  • Tourism & Hospitality (AREA)
  • Molecular Biology (AREA)
  • General Engineering & Computer Science (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computing Systems (AREA)
  • Development Economics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Human Resources & Organizations (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Primary Health Care (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

서버가 사용자에게 콘텐트를 추천하는 방법이 개시된다. 복수의 콘텐트들 중 적어도 하나에 대한 사용자의 피드백 벡터를 획득하는 동작; 복수의 사용자들이 이용한 복수의 콘텐트들에 관한 피드백 정보를 획득하는 동작; 복수의 사용자들에 대한 사용자 임베딩 벡터들 및 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들을 생성하는 동작; 복수의 사용자들을 군집화함으로써 복수의 사용자 그룹들 및 복수의 사용자 그룹들의 중심 사용자들을 결정하는 동작; 중심 사용자들에 대한 사용자 임베딩 벡터들 및 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들을, 사용자의 콘텐트에 대한 선호도를 예측하기 위한 인공 신경망 모델에 입력하는 동작; 인공 신경망 모델에 의해 출력되는, 복수의 콘텐트들에 대한 중심 사용자들의 예측된 선호도를 나타내는 중심 사용자들의 선호도 벡터들을 획득하는 동작; 사용자에게 추천될 적어도 하나의 추천 콘텐트들을 결정하는 동작; 및 결정된 적어도 하나의 콘텐트들을 사용자에게 추천하는 동작; 을 포함하는 서버가 사용자에게 콘텐트를 추천하는 방법이 개시된다.

Description

추천 콘텐트를 제공하는 서버 및 방법
본 개시는 추천 콘텐트를 제공하는 서버 및 방법에 관한 것으로서, 보다 상세하게는 복수의 사용자들을 군집화(grouping)함으로써 결정된 복수의 사용자 그룹들의 중심 사용자들에 기초하여, 추천 콘텐트를 제공하는 서버 및 방법에 관한 것이다.
최근 다양한 인터넷 환경을 통해, 사용자는 영화, 음악 등을 포함하는 다양한 멀티 미디어 콘텐트를 스트리밍할 수도 있고, 다양한 상품을 인터넷을 통해 구매할 수 있게 되었다. 사용자가 적절한 멀티미디어 콘텐트를 스트리밍하거나, 애플리케이션을 다운로드 받거나, 또는 원하는 상품을 구매하도록 하기 위해, 사용자에게 맞춤형 추천 콘텐트, 추천 애플리케이션 혹은 추천 상품을 제공하기 위해 다양한 기법들이 개발되고 있다.
종래의 사용자 맞춤형 콘텐트 제공 기법에는, 사용자의 정보에 기초하여 사용자가 선호할 만한 콘텐트를 추측함으로써 사용자에게 적합한 특정 항목을 선택하여 제공하는 협업 필터링 기법과 사용자가 이용한 콘텐트 이력 정보에 기초하여 유사한 콘텐트를 사용자에게 추천하는 콘텐트 기반 필터링 기법이 있다.
하지만, 5G 통신 환경이 보급되고, 인터넷 환경 상의 다양한 콘텐트의 개수가 크게 증가하고, 사용자가 이용한 콘텐트 이력 정보가 부족한 경우가 발생함에 따라, 사용자에게 적절한 추천 콘텐트를 제공해주기 힘든 문제가 있었다. 또한, 인터넷 환경 상의 다양한 콘텐트가 생성되고 있는 바, 저장 공간의 문제 혹은 사용자에게 적절한 추천 콘텐트를 제공하기까지 긴 시간이 걸리는 문제가 있었다. 이에 따라, 사용자에게 적절한 추천 콘텐트를 제공함과 동시에 사용자에게 적절한 시간 안에 추천 콘텐트를 제공하는 기술이 요구되고 있다.
본 개시의 일 실시예는, 사용자에게 적절한 추천 콘텐트를 제공함과 동시에 사용자에게 적절한 시간 안에 추천 콘텐트를 제공하기 위해, 복수의 사용자들을 군집화(grouping)함으로써 결정된 복수의 사용자 그룹들의 중심 사용자들에 기초하여, 사용자에게 추천 콘텐트를 제공하는 것을 목적으로 한다.
일 실시예에서, 서버가 사용자에게 콘텐트를 추천하는 방법을 제공할 수 있다. 상기 방법은 상기 사용자의 디바이스로부터 수신된 콘텐트 추천 요청에 기초하여, 복수의 콘텐트들 중 적어도 하나에 대한 상기 사용자의 피드백 벡터를 획득하는 동작을 포함할 수 있다. 상기 방법은 복수의 사용자들이 이용한 상기 복수의 콘텐트들에 관한 피드백 정보를 획득하는 동작을 포함할 수 있다. 상기 방법은 상기 피드백 정보에 기초하여, 상기 복수의 사용자들에 대한 사용자 임베딩 벡터들 및 상기 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들을 생성하는 동작을 포함할 수 있다. 상기 방법은 상기 복수의 사용자들에 대한 사용자 임베딩 벡터들에 기초하여, 상기 복수의 사용자들을 군집화함으로써 복수의 사용자 그룹들 및 상기 복수의 사용자 그룹들의 중심 사용자들을 결정하는 동작을 포함할 수 있다. 상기 방법은 상기 중심 사용자들에 대한 사용자 임베딩 벡터들 및 상기 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들을, 사용자의 콘텐트에 대한 선호도를 예측(estimation)하기 위한 인공 신경망 모델에 입력하는 동작을 포함할 수 있다. 상기 방법은 상기 인공 신경망 모델에 의해 출력되는, 상기 복수의 콘텐트들에 대한 상기 중심 사용자들의 예측된 선호도를 나타내는 상기 중심 사용자들의 선호도 벡터들을 획득하는 동작을 포함할 수 있다. 상기 방법은 상기 사용자의 피드백 벡터 및 상기 중심 사용자들의 선호도 벡터들에 기초하여, 상기 사용자에게 추천될 적어도 하나의 추천 콘텐트를 결정하는 동작을 포함할 수 있다. 상기 방법은 상기 결정된 적어도 하나의 콘텐트를 상기 사용자에게 추천하는 동작을 포함할 수 있다.
일 실시예에서, 사용자에게 콘텐트를 추천하기 위한 서버를 제공할 수 있다. 상기 서버는, 통신 인터페이스; 하나 이상의 인스트럭션을 저장하는 메모리; 및 상기 하나 이상의 인스트럭션을 실행하는 프로세서를 포함할 수 있다. 상기 프로세서는, 상기 사용자의 디바이스로부터 수신된 콘텐트 추천 요청에 기초하여, 복수의 콘텐트들 중 적어도 하나에 대한 상기 사용자의 피드백 벡터를 획득할 수 있다. 상기 프로세서는, 복수의 사용자들이 이용한 상기 복수의 콘텐트들에 관한 피드백 정보를 획득할 수 있다. 상기 프로세서는, 상기 피드백 정보에 기초하여, 상기 복수의 사용자들에 대한 사용자 임베딩 벡터들 및 상기 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들을 생성할 수 있다. 상기 프로세서는, 상기 복수의 사용자들에 대한 사용자 임베딩 벡터들에 기초하여, 상기 복수의 사용자들을 군집화함으로써 복수의 사용자 그룹들 및 상기 복수의 사용자 그룹들에 대응되는 상기 복수의 사용자 그룹들의 중심 사용자들을 결정할 수 있다. 상기 프로세서는, 상기 중심 사용자들에 대한 사용자 임베딩 벡터들 및 상기 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들을, 사용자의 콘텐트에 대한 선호도를 예측하기 위한 인공 신경망 모델에 입력할 수 있다. 상기 프로세서는, 상기 인공 신경망 모델에 의해 출력되는, 상기 복수의 콘텐트들에 대한 상기 중심 사용자들의 예측된 선호도를 나타내는 상기 중심 사용자들의 선호도 벡터들을 획득할 수 있다. 상기 프로세서는, 상기 사용자의 피드백 벡터 및 상기 중심 사용자들의 선호도 벡터들에 기초하여, 상기 사용자에게 추천될 적어도 하나의 추천 콘텐트를 결정할 수 있다. 상기 프로세서는, 상기 결정된 적어도 하나의 콘텐트를 상기 사용자에게 추천할 수 있다.
일 실시예에서, 상기 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체가 제공될 수 있다. 상기 기록매체는 상기 사용자의 디바이스로부터 수신된 콘텐트 추천 요청에 기초하여, 복수의 콘텐트들 중 적어도 하나에 대한 상기 사용자의 피드백 벡터를 획득하는 동작을 컴퓨터에서 실행시키기 위해 컴퓨터로 읽을 수 있도록 제공될 수 있다. 상기 기록매체는 복수의 사용자들이 이용한 상기 복수의 콘텐트들에 관한 피드백 정보를 획득하는 동작을 컴퓨터에서 실행시키기 위해 컴퓨터로 읽을 수 있도록 제공될 수 있다. 상기 기록매체는 상기 피드백 정보에 기초하여, 상기 복수의 사용자들에 대한 사용자 임베딩 벡터들 및 상기 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들을 생성하는 동작을 컴퓨터에서 실행시키기 위해 컴퓨터로 읽을 수 있도록 제공될 수 있다. 상기 기록매체는 상기 복수의 사용자들에 대한 사용자 임베딩 벡터들에 기초하여, 상기 복수의 사용자들을 군집화함으로써 복수의 사용자 그룹들 및 상기 복수의 사용자 그룹들의 중심 사용자들을 결정하는 동작을 컴퓨터에서 실행시키기 위해 컴퓨터로 읽을 수 있도록 제공될 수 있다. 상기 기록매체는 상기 중심 사용자들에 대한 사용자 임베딩 벡터들 및 상기 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들을, 사용자의 콘텐트에 대한 선호도를 예측(estimation)하기 위한 인공 신경망 모델에 입력하는 동작을 컴퓨터에서 실행시키기 위해 컴퓨터로 읽을 수 있도록 제공될 수 있다. 상기 기록매체는 상기 인공 신경망 모델에 의해 출력되는, 상기 복수의 콘텐트들에 대한 상기 중심 사용자들의 예측된 선호도를 나타내는 상기 중심 사용자들의 선호도 벡터들을 획득하는 동작을 컴퓨터에서 실행시키기 위해 컴퓨터로 읽을 수 있도록 제공될 수 있다. 상기 기록매체는 상기 사용자의 피드백 벡터 및 상기 중심 사용자들의 선호도 벡터들에 기초하여, 상기 사용자에게 추천될 적어도 하나의 추천 콘텐트를 결정하는 동작을 컴퓨터에서 실행시키기 위해 컴퓨터로 읽을 수 있도록 제공될 수 있다. 상기 기록매체는 상기 결정된 적어도 하나의 콘텐트를 상기 사용자에게 추천하는 동작을 컴퓨터에서 실행시키기 위해 컴퓨터로 읽을 수 있도록 제공될 수 있다.
도 1은 본 개시의 일 실시예에 따른 사용자에게 콘텐트를 추천하기 위한 방법을 나타내는 도면이다.
도 2는 본 개시의 일 실시예에 따른 사용자에게 추천 콘텐트를 제공하는 방법에 관한 순서도이다.
도 3은 본 개시의 일 실시예에 따른 복수의 사용자들로부터 획득되는 피드백 정보의 예시를 나타내는 도면이다.
도 4는 본 개시의 일 실시예에 따른 피드백 정보에 기초하여, 생성된 복수의 사용자들에 대한 사용자 임베딩 벡터들 및 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들의 예시를 나타내는 도면이다.
도 5는 본 개시의 일 실시예에 따른 도 4에서의 사용자1의 사용자 임베딩 벡터 및 사용자2의 사용자 임베딩 벡터를 나타내는 도면이다.
도 6은 본 개시의 일 실시예에 따른 복수의 사용자 그룹들 및 복수의 사용자 그룹들의 중심 사용자들을 결정하는 방법에 관한 순서도이다.
도 7은 본 개시의 일실시예에 따른 복수의 사용자들을 군집화함으로써 복수의 사용자 그룹들의 중심 사용자들을 결정하는 예시를 나타내는 도면이다.
도 8은 본 개시의 일 실시예에 임베딩 공간 상에서, 복수의 사용자 그룹들의 중심 사용자들을 결정하는 예시를 나타내는 도면이다.
도 9는 본 개시의 일 실시예에 따른 인공 신경망 모델을 훈련하는 예시를 나타내는 도면이다.
도 10은 본 개시의 일 실시예에 따른 인공 신경망 모델을 설명하기 위한 도면이다.
도 11은 본 개시의 일 실시예에 따른 사용자에게 추천될 적어도 하나의 추천 콘텐트를 결정하는 방법에 관한 순서도이다.
도 12는 본 개시의 일 실시예에 따른 사용자에게 추천될 적어도 하나의 추천 콘텐트의 예시를 나타내는 도면이다.
도 13은 본 개시의 일 실시예에 따른 중심 사용자들의 차이 값에 기초하여, 사용자에게 추천될 적어도 하나의 추천 콘텐트의 예시를 나타내는 도면이다.
도 14는 본 개시의 일 실시예에 따른 복수의 사용자 그룹들의 수에 따른 사용자에게 추천 콘텐트를 제공하기까지의 소요 시간 및 콘텐트 선호도 예측의 차이 값에 대한 도면이다.
도 15는 본 개시의 일 실시예에 따른 복수의 사용자 그룹들의 수를 조정하고, 조정된 복수의 사용자 그룹들의 수에 기초하여, 사용자 및 복수의 사용자들을 재군집화하는 방법에 대한 순서도이다.
도 16은 본 개시의 일 실시예에 따른 선택된 중심 사용자의 유사도 값에 기초하여, 복수개의 사용자 그룹들의 수를 조정할지 여부를 결정하고, 복수개의 사용자 그룹들의 수를 조정하는 경우, 조정된 복수개의 사용자 그룹들의 수로 복수의 사용자 및 사용자를 재군집화하는 방법에 대한 흐름도이다.
도 17은 본 개시의 일 실시예에 따른 도 16에서의 복수개의 사용자 그룹들의 수를 줄이는 경우, 조정된 복수개의 사용자 그룹들의 수로 복수의 사용자 및 사용자를 재군집화하는 예시를 나타내는 도면이다.
도 18은 본 개시의 일 실시예에 따른 도 16에서의 복수개의 사용자 그룹들의 수를 유지하는 경우, 복수의 사용자 및 사용자를 재군집화하는 예시를 나타내는 도면이다.
도 19는 본 개시의 일 실시예에 따른 도 16에서의 복수개의 사용자 그룹들의 수를 늘리는 경우, 조정된 사용자 그룹들의 수로 복수의 사용자 및 사용자를 재군집화하는 예시를 나타내는 도면이다.
도 20은 본 개시의 일 실시예에 따른 복수의 사용자 그룹들 각각에 속하는 적어도 하나의 사용자들에 대한 사용자 임베딩 벡터들 사이의 유클리드 거리들에 기초하여, 복수개의 사용자 그룹들의 수를 조정할지 여부를 결정하고, 복수개의 사용자 그룹들의 수를 조정하는 경우, 조정된 사용자 그룹들의 수로 복수의 사용자 및 사용자를 재군집화하는 방법에 대한 흐름도이다.
도 21는 본 개시의 일 실시예에 따른 서버를 설명하기 위한 블록도이다.
아래에서는 첨부한 도면을 참조하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 개시의 실시예를 상세히 설명한다. 그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 개시를 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
본 개시에서 사용되는 용어에 대해 간략히 설명하고, 본 개시의 일 실시예에 대해 구체적으로 설명하기로 한다.
본 명세서에서 콘텐트는 영화, 음악 등을 포함하는 멀티미디어 콘텐트, 애플리케이션 스토어에서 다운로드 가능한 애플리케이션 및 인터넷 상에서 구매 가능한 다양한 제품 등을 포함하는 콘텐트일 수 있다. 본 개시의 일 실시예에 따르면, 사용자에게 맞춤형 콘텐트가 추천될 수 있다. 예를 들어, 애플리케이션 스토어에 접속할 때 첫 화면 노출되는 애플리케이션들은 사용자에게 제공되는 맞춤형 추천 콘텐트들(또는, 맞춤형 추천 애플리케이션들) 일 수 있다. 또한, 음악을 듣기 위한 플레이어의 추천 버튼을 클릭할 때 상단에 노출되는 음악들은 사용자에게 제공되는 맞춤형 추천 콘텐트들(또는, 맞춤형 추천 음악들) 일 수 있다.
또한, 피드백 벡터는 복수의 콘텐트들 중 적어도 하나에 대한 사용자의 선호도를 나타내는 벡터일 수 있다. 복수의 콘텐트들 중 적어도 하나에 대한 사용자의 선호도는 "긍정"(positive), "부정"(negative), "선호 없음"(No preference)를 포함할 수 있고, "긍정"(positive), "부정"(negative), "선호 없음"(No preference)에 대응되는 피드백 벡터의 요소 값을 획득할 수 있다. 예를 들어, 콘텐트에 대한 사용자의 선호도가 긍정인 경우 피드백 벡터의 요소 값인 1에 대응되고, 콘텐트에 대한 사용자의 선호도가 부정인 경우 피드백 벡터의 요소 값인 0에 대응되고, 콘텐트에 대한 사용자의 선호도가 선호 없음인 경우 피드백 벡터의 요소의 공란(blank)에 대응될 수 있다. 또한, 예를 들어, 복수의 콘텐트들 중 적어도 하나에 대한 사용자의 선호도는 "긍정"(positive), "부정"(negative)만을 포함할 수 있고, 사용자의 선호도가 "선호 없음"(No preference)인 경우는 "긍정"(positive) 및 "부정"(negative) 중 하나에 대응되게 판단될 수 있다.
또한, 선호도는 복수의 콘텐트들 중 적어도 하나에 대한 사용자의 행위, 행동 또는 반응에 기초하여 결정될 수 있다. 예를 들어, 사용자가 콘텐트를 클릭하거나 일정 시간이상 응시하는 경우, 콘텐트에 대한 사용자의 선호도를 긍정으로 결정할 수 있다. 반대로, 사용자가 콘텐트를 스크롤하거나 콘텐트에 대해 일정 점수 이하의 낮은 평점을 매긴 경우, 콘텐트에 대한 사용자의 선호도는 부정으로 결정할 수 있다. 또한, 본명세서에서 피드백 정보는 복수의 사용자들의 복수의 콘텐트들에 대한 선호도를 나타내는 복수의 피드백 벡터들을 포함하는 정보일 수 있으며, 예를 들어, 복수의 피드백 벡터들을 포함하는 매트릭스를 포함할 수 있다.
또한, 임베딩 벡터는 사람이 쓰는 자연어를 컴퓨터가 이해할 수 있는 숫자 형태로 나타낸 벡터일 수 있다. 본 명세서에서 임베딩 벡터는 잠재 벡터(Latent Vector) 혹은 잠재 팩터(Latent Factor)일 수 있고, 임베딩 벡터는 수학적인 값만을 나타낼 수 있다.
사용자 임베딩 벡터는 복수의 사용자들의 복수의 콘텐트들에 대한 선호도에 기초하여, 사용자를 구별하기 위하여 생성된 임베딩 벡터이고, 콘텐트 임베딩 벡터는 복수의 사용자들의 복수의 콘텐트들에 대한 선호도에 기초하여, 콘텐트를 구별하기 위하여 콘텐트에 대하여 생성된 임베딩 벡터일 수 있다. 예를 들어, 사용자 임베팅 벡터들의 매트릭스 및 콘텐트 임베딩 벡터들의 매트릭스의 곱이, 사용자들의 콘텐트들에 대한 피드백 벡터들을 포함하는 매트릭스와 유사하도록, 사용자 임베딩 벡터들 및 콘텐트 임베딩 벡터들이 생성될 수 있다.
본 명세서에서 사용자 임베딩 벡터들 간의 유클리드 거리(Euclidean distance)가 가까울수록, 복수의 사용자들의 복수의 콘텐트들에 대한 선호도가 유사하다고 결정할 수 있다. 예를 들어, 사용자 1의 사용자 임베딩 벡터가 사용자2의 사용자 임베딩 벡터보다 사용자3의 사용자 임베딩 벡터와의 거리가 더 가까운 경우, 사용자 1과 사용자 3의 복수의 콘텐트들에 대한 선호도가 유사하다고 결정할 수 있다.
임베딩 벡터의 차원은 서버의 메모리, 추천 콘텐트를 제공하기까지의 소요 시간 등을 고려하여 결정될 수 있고, 기 설정되어 서버에 저장되어 있을 수 있다. 예를 들어, 서버의 메모리가 증가하는 경우, 임베딩 벡터의 차원도 증가될 수 있다. 또한, 본 명세서에서 임베딩 벡터는 복수의 사용자에 대한 복수의 사용자 임베딩 벡터 및 복수의 콘텐트들에 대한 복수의 콘텐트 임베딩 벡터를 포함할 수 있고, 사용자에 대한 복수의 사용자 임베딩 벡터 및 복수의 콘텐트들에 대한 복수의 콘텐트 임베딩 벡터는 피드백 정보에 기초하여 결정될 수 있다.
이하 첨부된 도면을 참고하여 본 개시를 상세히 설명하기로 한다.
도 1은 본 개시의 일 실시예에 따른 사용자에게 콘텐트를 추천하기 위한 방법을 나타내는 도면이다.
도 1을 참조하면 서버(1000)는 복수의 사용자들(예를 들어, 사용자 1(1001), 사용자 2(1002), 사용자 3(1003)을 포함할 수 있다.)의 복수의 콘텐트들 중 적어도 하나에 대한 행동, 동작, 반응 등을 획득할 수 있다. 예를 들어, 사용자 1(1001)의 디바이스(예를 들어, 휴대용 단말기)는 사용자 1(1001)의 복수의 콘텐트들 중 적어도 하나에 대한 행동, 동작, 반응 등을 획득할 수 있고, 사용자 1(1001)의 디바이스의 통신 인터페이스를 통해 사용자 1(1001)의 복수의 콘텐트들 중 적어도 하나에 대한 행동 등이 사용자 1(1001)의 디바이스로부터 서버(1000)에게 업로드 또는 송신될 수 있다. 도 1에서는 복수의 사용자들 중 사용자 1(1001), 사용자 2(1002) 및 사용자 3(1003)을 도시하고 있지만, 이에 한정되는 것은 아니다.
또한, 서버(1000)는 획득된 복수의 사용자들의 복수의 콘텐트들 중 적어도 하나에 대한 행동 등에 기초하여, 피드백 정보(1010)를 획득할 수 있다. 예를 들어, 피드백 정보 1010)는 복수의 사용자들의 복수의 콘텐트들에 대한 선호도를 나타내는 테이블 또는 행렬 형태의 정보일 수 있고, 테이블의 m행, n열에 대응되는 값은 사용자 m의 콘텐트 n에 대한 선호도에 대응되는 값일 수 있다. 또한, 복수의 사용자들의 일부 콘텐트들에 대한 행동 등에 기초하여, 피드백 정보(1010)를 획득할 수 있고, 테이블의 m행, n열에 대응되는 값은 공란일 수 있다. 공란은 사용자 m의 콘텐트 n에 대한 행동, 반응에 대한 데이터가 없다는 것을 의미할 수 있다.
또한, 서버(1000)는 피드백 정보(1010)에 기초하여, 복수의 사용자들의 사용자 임베딩 벡터들 1020)(사용자 임베딩 벡터들(1020)은 사용자 1(1001)의 사용자 임베딩 벡터(1021), 사용자 2(1002)의 사용자 임베딩 벡터(1022), 사용자 3(1003)의 사용자 임베딩 벡터(1023), 사용자 4(미도시)의 사용자 임베딩 벡터(1024), 사용자 5(미도시)의 사용자 임베딩 벡터(1025), 사용자 6(미도시)의 사용자 임베딩 벡터(1026)를 포함할 수 있으나, 이에 한정된 것은 아니다.) 및 복수의 콘텐트들의 콘텐트 임베딩 벡터들(1030)(콘텐트 임베딩 벡터들(1030)은 콘텐트 1의 콘텐트 임베딩 벡터(1031), 콘텐트 2의 콘텐트 임베딩 벡터(1032), 콘텐트 3의 콘텐트 임베딩 벡터(1033), 콘텐트 4의 콘텐트 임베딩 벡터(1034), 콘텐트 5의 콘텐트 임베딩 벡터(1035)를 포함할 수 있으나, 이에 한정된 것은 아니다.)을 생성할 수 있다.
또한, 서버(1000)는 복수의 사용자들의 사용자 임베딩 벡터들(1020) 및 복수의 콘텐트들의 콘텐트 임베딩 벡터들(1030)에 기초하여, 인공 신경망 모델을 훈련(1040)할 수 있다. 인공 신경망 모델(1070)은 사용자의 콘텐트에 대한 선호도를 예측하기 위한 인공 신경망 모델일 수 있다.
또한, 서버(1000)는 사용자 임베딩 벡터들(1020)에 기초하여, 복수의 사용자들을 그룹화 및 복수의 사용자 그룹들의 중심 사용자들을 결정(1050)할 수 있다. 사용자 임베딩 벡터들(1020) 간의 유클리드 거리(Euclidean distance)가 가까울수록, 복수의 사용자들의 복수의 콘텐트들에 대한 선호도가 유사한 바, 복수의 사용자 그룹들 내의 적어도 하나의 사용자들의 복수의 콘텐트들에 대한 선호도는 유사하다고 예측될 수 있다. 또한, 복수의 사용자 그룹들의 중심 사용자들은 복수의 사용자 그룹들의 적어도 하나의 사용자들의 복수의 콘텐트들에 대한 선호도를 대표하는 사용자일 수 있다. 예를 들어, 중심 사용자들의 사용자 임베딩 벡터들(1060)은 중심 사용자 1의 사용자 임베딩 벡터(1061) 및 중심 사용자 2의 사용자 임베딩 벡터(1062)를 포함할 수 있다.
또한, 서버(1000)는 중심 사용자들의 사용자 임베딩 벡터들(1060), 콘텐트 임베딩 벡터들(1030)에 기초하여, 기 훈련된 인공 신경망 모델(1070)에 기초하여 추천 콘텐트를 결정(1080)할 수 있다. 구체적으로, 중심 사용자들(예를 들어, 사용자 1(1001) 및 사용자 2(1002))의 사용자 임베딩 벡터들(1060) 및 콘텐트 임베딩 벡터들(1030)에 기초하여, 중심 사용자들의 복수의 콘텐트들에 대한 예측된 선호도 값을 나타내는 선호도 벡터들을 생성할 수 있다. 생성된 선호도 벡터들 및 콘텐트 추천 요청을 한 디바이스의 사용자(1004)의 피드백 벡터(1014) 및 선호도 벡터들에 기초하여, 사용자(1004)에게 추천 콘텐트(1090)을 제공할 수 있다. 예를 들어, 중심 사용자 중 사용자 1(1001)과 사용자(1004)의 복수의 콘텐트들에 대한 선호도가 비슷하다고 결정되는 경우, 사용자 1(1001)이 선호하는 콘텐트3 및 콘텐트 4를 포함하는 추천 콘텐트(1090)을 제공할 수 있다.
도 2는 본 개시의 일 실시예에 따른 사용자에게 추천 콘텐트를 제공하는 방법에 관한 순서도이다.
동작 S1210에서, 서버는 사용자의 디바이스로부터 수신된 콘텐트 추천 요청에 따라, 복수의 콘텐트들 중 적어도 하나에 대한 사용자의 피드백 벡터를 획득할 수 있다.
본 개시의 일 실시예에 따르면, 사용자의 디바이스는 서버(1000)로 콘텐트 추천 요청을 송신할 수 있다. 사용자는 도1에서의 사용자(1004)일 수 있다. 구체적으로, 사용자(1004)의 디바이스는 콘텐트 추천 요청은 기 설정된 주기에 따라 서버(1000)로 송신되거나 사용자로부터의 입력에 기초하여 디바이스의 통신 인터페이스를 통해 서버(1000)로 송신될 수 있다. 예를 들어, 사용자(1004)의 디바이스는 사용자(1004)가 콘텐트 추천을 위한 사이트, 애플리케이션 다운을 위한 애플리케이션 스토어 또는 멀티미디어 콘텐트 스트리밍 사이트에 접속하는 것 등을 사용자의 입력으로 식별하고, 서버(1000)로 콘텐트 추천 요청을 송신할 수 있다.
본 개시의 일 실시예에 따르면, 사용자의 디바이스로부터 수신된 콘텐트 추천 요청에 따라, 사용자의 디바이스는 복수의 콘텐트들 중 적어도 하나에 대한 사용자의 피드백 벡터를 획득할 수 있다. 예를 들어 피드백 벡터는 복수의 콘텐트들 중 적어도 하나에 대한 사용자의 선호도를 나타내는 벡터(예를 들어, 사용자(1004)의 피드백 벡터(1014))이고, 사용자의 콘텐트에 대한 선호도에 따라 대응되는 피드백 벡터의 값도 달라질 수 있다. 예를 들어, 사용자(1004)가 콘텐트 1을 선호하는 경우(예를 들어, 사용자가 콘텐트 1을 클릭한 이력이 있는 경우), 피드백 벡터의 첫번째 요소(element)의 값은 1이될 수 있다. 또한, 예를 들어, 사용자(1004)가 콘텐트 2를 선호하지 않는 경우(예를 들어, 사용자가 콘텐트 2를 스크롤한 이력이 있는 경우), 피드백 벡터의 두번째 요소의 값은 0이될 수 있다. 예를 들어, 사용자(1004)의 콘텐트 3에 대한 반응 또는 행동이 없는 경우, 피드백 벡터의 세번째 요소의 값은 공백일 수 있다. 피드백 벡터의 요소의 값은 사용자의 복수의 콘텐트들에 대한 선호도에 따라 1, blank 혹은 0일 수 있고, 또는 피드백 벡터의 요소의 값은 사용자의 복수의 콘텐트들에 대한 선호도에 따라 1, 0 혹은 -1일 수 있으나, 이에 한정된 것은 아니다. 복수의 콘텐트들 중 적어도 하나에 대한 사용자의 피드백 벡터는 미리 생성되어 사용자의 디바이스 내에 저장될 수 있다. 또한, 복수의 콘텐트들 중 적어도 하나에 대한 사용자의 피드백 벡터는 사용자의 요청에 따라, 복수의 사용자들의 복수의 콘텐트들에 대한 선호도에 대한 데이터에 기초하여, 생성될 수 있다.
동작 S1220에서, 서버는 복수의 사용자들이 이용한 복수의 콘텐트들에 관한 피드백 정보를 획득할 수 있다.
본 개시의 일 실시예에 따르면, 서버는 복수의 사용자들의 복수의 콘텐트들에 대한 선호도를 나타내는 피드백 정보를 획득할 수 있다. 구체적으로, 피드백 정보는 복수의 사용자들의 복수의 콘텐트들에 대한 선호도를 나타내는 복수의 피드백 벡터들을 포함할 수 있다. 예를 들어, 피드백 정보는 복수의 피드백 벡터들의 집합으로, 피드백 벡터로 구성된 행렬 형태일 수 있다. 본원의 피드백 정보에 대해서는 도 3에서 보다 상세히 설명하기로 한다.
동작 S1230에서, 서버는 피드백 정보에 기초하여, 복수의 사용자들에 대한 사용자 임베딩 벡터들 및 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들을 생성할 수 있다.
본 개시의 일 실시예에 따르면, 사용자 임베딩 벡터는 복수의 사용자들의 복수의 콘텐트들에 대한 선호도에 기초하여, 사용자를 구별하기 위하여 생성된 임베딩 벡터이고, 콘텐트 임베딩 벡터는 복수의 사용자들의 복수의 콘텐트들에 대한 선호도에 기초하여, 콘텐트를 구별하기 위하여 콘텐트에 대하여 생성된 임베딩 벡터일 수 있다.
본 개시의 일 실시예에 따르면, 임베딩 벡터들(복수의 사용자들에 대한 사용자 임베딩 벡터들 및 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들을 포함.)은 피드백 정보에 기초하여 다양한 방법으로 생성될 수 있다. 구체적으로, 서버(1000)는 행렬 분해(Matrix Factorization), 특정 아키텍처(architecture)로 구성된 인공 신경망 모델을 통한 학습 또는 원-핫 인코딩(one-hot encoding)에 기초한 임베딩 벡터 생성 방법 등을 통해 복수의 사용자들에 대한 사용자 임베딩 벡터들 및 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들을 생성할 수 있고, 이에 한정되는 것은 아니다. 예를 들어, 행렬 분해에 따라, 피드백 정보와 기 설정된 제1 임계치 이하의 에러를 가지는 복수의 사용자들에 대한 사용자 임베딩 벡터들 및 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들을 생성할 수 있다. 복수의 사용자들에 대한 사용자 임베딩 벡터들 및 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들을 생성하는 방법에 대해서는 도 4에서 보다 상세히 설명하기로 한다.
동작 S1240에서, 서버는 복수의 사용자들에 대한 사용자 임베딩 벡터들에 기초하여, 복수의 사용자들을 군집화함으로써 복수의 사용자 그룹들 및 복수의 사용자 그룹들에 대응되는 복수의 사용자 그룹들의 중심 사용자들을 결정할 수 있다.
본 개시의 일 실시예에 따르면, 서버는 복수의 사용자들에 대한 사용자 임베딩 벡터들에 기초하여, 복수의 사용자들을 군집화하여 복수의 사용자 그룹들을 결정할 수 있다. 복수의 사용자 그룹들의 수는 서버(1000)에 저장되어 있을 수 있고, 기 설정된 복수의 사용자 그룹들의 수일 수 있다. 구체적으로, 서버(1000)는 복수의 사용자들에 대한 사용자 임베딩 벡터들 사이의 유클리드 거리들에 기초하여 복수의 사용자들의 그룹들을 결정할 수 있다. 예를 들어, 서버(1000)는 k-평균 군집화(k-mean clustering)에 기초하여, 기 설정된 복수의 사용자 그룹들의 수의 복수의 사용자 그룹들을 그룹화할 수 있다.
본 개시의 일 실시예에 따르면, 서버는 복수의 사용자들에 대한 사용자 임베딩 벡터들에 기초하여, 복수의 사용자 그룹들에 대응되는 복수의 사용자 그룹들의 중심 사용자들을 결정할 수 있다. 구체적으로, 결정된 복수의 사용자 그룹들 각각에 속하는 적어도 하나의 사용자들에 대한 사용자 임베딩 벡터들 사이의 유클리드 거리들에 기초하여, 복수의 사용자 그룹들의 중심 사용자들을 결정할 수 있다. 예를 들어, 결정된 복수의 사용자 그룹들 각각에 속하는 적어도 하나의 사용자들에 대한 사용자 임베딩 벡터들 사이의 유클리드 거리들에 기초하여, 복수의 사용자 그룹들의 무게 중심(centeroid)을 계산할 수 있고, 계산된 무게 중심과 가장 가까운 사용자를 복수의 사용자 그룹들의 중심 사용자들로 결정할 수 있다. 또한, 복수의 사용자 그룹들 각각의 중심 사용자들은 복수의 사용자 그룹들 각각에 속하는 적어도 하나의 사용자들과의 유클리드 거리 합이 가장 작은 복수의 사용자 그룹들 각각에 속하는 사용자일 수 있다.
본 개시의 일 실시예에 따르면, 서버(1000)는 복수의 사용자들에 대한 사용자 임베딩 벡터들을 포함하는 임베딩 공간 상에서, 사용자 임베딩 벡터들 사이의 거리가 가까울수록 사용자들의 컨텐츠에 대한 선호도가 유사할 것으로 예측할 수 있다. 예를 들어, 서버(1000)는 복수의 사용자 그룹들의 중심 사용자들이 복수의 사용자 그룹들의 콘텐트에 대한 선호도와 가장 유사할 것으로 예측할 수 있고, 사용자 그룹들의 중심 사용자들은 복수의 사용자 그룹들을 대표하는 사용자들일 수 있다. 따라서, 복수의 사용자들에 대한 사용자 임베딩 벡터들 전부가 아닌 중심 사용자들의 사용자 임베딩 벡터들을 사용자의 콘텐트에 대한 선호도를 예측하기 위한 인공 신경망 모델에 입력하는 경우에도, 빠른 시간 내에 사용자에게 적절한 맞춤형 콘텐트를 제공할 수 있다. 복수의 사용자들을 군집화함으로써 복수의 사용자 그룹들의 중심 사용자들을 결정하는 방법에 대해서는 도 6-8에서 보다 상세히 설명하기로 한다.
동작 S1250에서, 서버는 중심 사용자들에 대한 사용자 임베딩 벡터들 및 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들을, 사용자의 콘텐트에 대한 선호도를 예측하기 위한 인공 신경망 모델에 입력할 수 있다.
본 개시의 일 실시예에 따르면, 서버(1000)는 중심 사용자들에 대한 사용자 임베딩 벡터들 및 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들을, 사용자의 콘텐트에 대한 선호도를 예측하기 위한 인공 신경망 모델에 입력할 수 있다. 다만, 인공 신경망 모델은 복수의 사용자들에 대한 사용자 임베딩 벡터들 및 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들에 기초하여 훈련될 수 있다. 사용자의 콘텐트에 대한 선호도를 예측 하기 위한 인공 신경망 모델을 훈련하는 방법에 대해서는 도 9에서 보다 상세히 설명하기로 한다.
동작 S1260에서, 서버(1000)는 인공 신경망 모델에 의해 출력되는, 복수의 콘텐트들에 대한 중심 사용자들의 예측된 선호도를 나타내는 중심 사용자들의 선호도 벡터들을 획득할 수 있다.
본 개시의 일 실시예에 따르면, 서버(1000)는 복수의 콘텐트들에 대한 중심 사용자들의 예측된 선호도를 나타내는 중심 사용자들의 선호도 벡터들을 획득할 수 있다. 구체적으로, 중심 사용자 m의 사용자 임베딩 벡터 및 콘텐트 n의 콘텐트 임베딩 벡터를 인공 신경망 모델에 입력할 수 있고, 인공 신경망 모델은 중심 사용자 m의 콘텐트 n에 대한 예측된 선호도 값을 출력할 수 있다. 예를 들어, 중심 사용자 m의 콘텐트 n에 대한 예측된 선호도 값은 중심 사용자 m의 선호도 벡터의 n번째 요소의 값일 수 있다. 또한, 중심 사용자들의 복수의 콘텐트들에 대한 예측된 선호도 값은 0-1사이의 실수 값으로 출력 수 있다. 예를 들어, 중심 사용자 1의 첫번째 요소의 값이 0.9이고, 두번째 요소의 값이 0.2인 경우, 중심 사용자 1은 콘텐트 2보다 콘텐트 1을 선호할 확률이 높다고 예상할 수 있다. 다만, 실수값은 0-1에 한정되는 것은 아니다. 복수의 콘텐트들에 대한 중심 사용자들의 예측된 선호도를 나타내는 중심 사용자들의 선호도 벡터들을 획득하는 것과 관련하여 도 10에서 보다 자세하게 살펴보기로 한다.
동작 S1270에서, 서버는 사용자의 피드백 벡터 및 중심 사용자들의 선호도 벡터들에 기초하여, 사용자에게 추천될 적어도 하나의 추천 콘텐트를 결정할 수 있다.
본 개시의 일 실시예에 따르면, 서버(1000)는 사용자의 피드백 벡터 및 중심 사용자들의 선호도 벡터들에 기초하여, 콘텐트의 추천에 이용될 중심 사용자를 선택할 수 있다. 구체적으로, 예를 들어, 사용자(1004)의 피드백 벡터 및 중심 사용자들의 선호도 벡터들을 비교하여, 사용자(1004)의 콘텐트에 대한 선호도가 가장 유사한 중심 사용자를 선택할 수 있다. 예를 들어, 도 1에서, 서버(1000)는 사용자(1004)의 피드백 벡터(1014) 및 중심 사용자들의 선호도 벡터들을 비교하여, 중심 사용자들 중 콘텐트 1-3까지의 선호도가 사용자(1004)와 동일한 사용자 1(1001)을 선택된 중심 사용자로 결정할 수 있다.
본 개시의 일 실시예에 따르면, 서버(1000)는 중심 사용자들의 선호도 벡터들 중에서 선택된 중심 사용자의 선호도 벡터를 추출하고, 추출된 선호도 벡터에 기초하여, 적어도 하나의 추천 콘텐트를 결정할 수 있다. 예를 들어, 사용자에게 추천될 콘텐트의 개수가 기 설정되는 경우, 추출된 중심 사용자의 선호도 벡터의 요소의 값에 기초하여, 기 설정된 개수의 추천 콘텐트를 사용자에게 제공될 수 있다. 추천될 콘텐트의 개수가 복수 개인 경우, 서버(1000)는 사용자(1004)에게 제공할 추천 콘텐트 리스트를 결정할 수 있다. 예를 들어, 도1에서, 추천 콘텐트 리스트는 콘텐트 3 및 콘텐트 4를 포함할 수 있다. 사용자에게 추천될 적어도 하나의 추천 콘텐츠를 결정 하는 방법에 대해서는 도 11-13에서 보다 상세히 설명하기로 한다.
동작 S1280에서, 서버는 결정된 적어도 하나의 추천 콘텐트를 사용자에게 추천할 수 있다.
예를 들어, 도1에서, 서버(1000)는 사용자(1004)에게 콘텐트 3 및 콘텐트 4로 구성된 추천 콘텐트(1090)를 제공할 수 있다. 추천되는 적어도 하나의 추천 콘텐트들의 개수는 미리 저장되어 있을 수 있다.
도 3은 본 개시의 일 실시예에 따른 복수의 사용자들로부터 획득되는 피드백 정보의 예시를 나타내는 도면이다.
본 개시의 일 실시예에 따르면, 도 3을 참조하면 서버(서버는 도1의 서버(1000)일 수 있다.)는 복수의 사용자들의 복수의 콘텐트들 중 적어도 하나에 대한 행동, 동작, 반응 등을 획득할 수 있다. 구체적으로 복수의 사용자들의 디바이스들을 통해, 복수의 사용자들의 복수의 콘텐트들 중 적어도 하나에 대한 행동, 동작, 반응 등을 획득할 수 있고, 복수의 사용자들의 디바이스들의 통신 인터페이스를 통해 복수의 사용자들의 복수의 콘텐트들 중 적어도 하나에 대한 행동 등이 복수의 사용자들의 디바이스들로부터 서버에게 업로드 또는 송신될 수 있다. 도3에는 복수의 사용자들 중 사용자 1(1310), 사용자 2(1320), 사용자 3(1330) 및 사용자(1340)을 도시하고 있지만, 이에 한정되는 것은 아니다.
본 개시의 일 실시예에 따르면, 사용자들의 피드백 벡터는 복수의 콘텐트들 중 적어도 하나에 대한 사용자의 선호도를 나타내는 벡터일 수 있다. 구체적으로, 복수의 콘텐트들 중 적어도 하나에 대한 사용자의 선호도는 사용자들의 복수의 콘텐트들에 대한 행동 또는 반응에 기초하여 결정될 수 있고, 사용자의 복수의 콘텐트들에 대한 선호도를 긍정 및 부정 또는 긍정, 부정 및 선호 없음 등으로 구분할 수 있지만, 이에 한정되는 것은 아니다. 예를 들어, 사용자가 복수의 콘텐트들을 클릭하는 행위, 사용자가 복수의 콘텐트들을 스크롤하는 행위, 사용자가 복수의 콘텐트들을 일정 시간 이상 응시하는 행위, 사용자가 복수의 콘텐트들의 평점을 매기는 행위, 사용자가 복수의 콘텐트들을 다운로드 혹은 일정시간 이상 스트리밍하는 행위, 사용자가 복수의 콘텐트들의 미리보기를 시청하는 행위 등에 기초하여 사용자의 복수의 콘텐트들에 대한 선호도를 긍정 및 부정 또는 긍정, 부정 및 선호 없음 등으로 구분할 수 있다. 또한, 예를 들어, 사용자의 복수의 콘텐트들에 대한 선호도를 긍정 및 부정 또는 긍정, 부정 및 선호 없음 등으로 구분하는 방법은 서버의 프로세서에 의해 변경되거나 기 설정되어 서버에 저장되어 있을 수 있다.
본 개시의 일 실시예에 따르면, 사용자의 복수의 콘텐트들에 대한 선호도에 따라 사용자의 피드백 벡터의 요소 값이 상이할 수 있다. 예를 들어, 사용자의 콘텐트에 대한 선호도가 긍정인 경우, 사용자의 피드백 벡터의 요소 값이 1이고, 사용자의 콘텐트에 대한 선호도가 부정인 경우, 사용자의 피드백 벡터의 요소 값이 0이고, 사용자의 콘텐트에 대한 선호도에 대한 이력이 없는 경우, 사용자의 피드백 벡터의 요소 값이 공란으로 할당될 수 있다. 예를 들어, 사용자의 콘텐트에 대한 선호도가 긍정인 경우, 사용자의 피드백 벡터의 요소 값이 1이고, 사용자의 콘텐트에 대한 선호도가 부정인 경우, 사용자의 피드백 벡터의 요소 값이 -1이고, 사용자의 콘텐트에 대한 선호도에 대한 이력이 없는 경우, 사용자의 피드백 벡터의 요소 값이 공란으로 0될 수 있다. 예를 들어, 맞춤형 콘텐트를 제공할 대상인 사용자(1340)의 피드백 벡터(1345)는 (0,0,1, , )일 수 있다.
본 개시의 일 실시예에 따르면, 서버는 획득된 복수의 사용자들의 복수의 콘텐트들 중 적어도 하나에 대한 행동 등에 기초하여, 피드백 정보(1350)를 획득할 수 있다. 구체적으로, 도3에 따르면, 피드백 정보(1350)는 사용자 1(1310)의 피드벡 벡터(1315), 사용자 2(1320)의 피드벡 벡터(1325), 사용자 3(1330)의 피드벡 벡터(1335)으로 구성될 수 있다. 예를 들어, 사용자 1(1310)은 콘텐트 1 및 콘텐트 2를 스크롤한 바, 피드백 벡터(1315)의 첫번째 요소의 값 및 두번째 요소의 값은 0이 될 수 있다. 또한, 예를 들어, 사용자 1(1310)은 콘텐트 3 및 콘텐트 4를 클릭한 바, 피드백 벡터(1315)의 세번째 요소의 값 및 네번째 요소의 값은 1이 될 수 있다. 또한, 예를 들어, 사용자 1(1310)은 콘텐트 5에 대한 행동 이력이 없는 바, 피드백 벡터(1315)의 다섯 번째 요소의 값은 공백이 될 수 있다.
본 개시의 일 실시예에 따르면, 피드백 정보(1350)는 사용자(1340)의 디바이스로부터 콘텐트 추천 요청을 수신하기 전에, 복수의 사용자들의 복수의 콘텐트들에 대한 행동 등과 관련된 데이터에 기초하여 생성된 피드백 정보일 수 있다. 또한, 피드백 정보(1350)는 사용자(1340)의 디바이스로부터 콘텐트 추천 요청을 수신하고, 가장 최신의 복수의 사용자들의 복수의 콘텐트들에 대한 행동 등과 관련된 데이터에 기초하여 생성된 피드백 정보일 수도 있다.
도 4는 본 개시의 일 실시예에 따른 피드백 정보(1410)에 기초하여, 생성된 복수의 사용자들에 대한 사용자 임베딩 벡터들(1420) 및 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들(1430)의 예시를 나타내는 도면이다.
본 개시의 일 실시예에 따르면, 사용자 임베딩 벡터는 복수의 사용자들의 복수의 콘텐트들에 대한 선호도에 기초하여, 사용자를 구별하기 위하여 생성된 임베딩 벡터이고, 콘텐트 임베딩 벡터는 복수의 사용자들의 복수의 콘텐트들에 대한 선호도에 기초하여, 콘텐트를 구별하기 위하여 콘텐트에 대하여 생성된 임베딩 벡터일 수 있다.
본 개시의 일 실시예에 따르면 본 명세서에서 임베딩 벡터들(복수의 사용자들에 대한 사용자 임베딩 벡터들(1420) 및 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들(1430)을 포함.)은 피드백 정보 (1410)에 기초하여 다양한 방법으로 생성될 수 있다.
예를 들어, 도 4에서 볼 수 있듯이, 행렬 분해에 따라, 피드백 정보(1410)와 기 설정된 제1 임계치 이하의 에러를 가지는 복수의 사용자들에 대한 사용자 임베딩 벡터들(1420) 및 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들(1430)을 생성할 수 있다. 복수의 사용자들에 대한 사용자 임베딩 벡터들(1420)은 사용자 1의 사용자 임베딩 벡터(1421) 및 사용자 2의 사용자 임베딩 벡터(1422)를 포함할 수 있고, 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들(1430)은 콘텐트 2의 콘텐츠 임베딩 벡터(1431)을 포함할 수 있다.
본 개시의 일 실시예에 따르면, 다음과 같은 수학식(1)을 만족하도록, 복수의 사용자들에 대한 사용자 임베딩 벡터들(1420) 및 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들(1430)을 생성할 수 있다.
Figure PCTKR2022014391-appb-img-000001
(1)
수학식(1)의
Figure PCTKR2022014391-appb-img-000002
는 피드백 정보(1410)의 사용자 u의 콘텐트 i에 대한 선호도를 나타내는 요소의 값이다.
Figure PCTKR2022014391-appb-img-000003
는 사용자 u의 사용자 임베딩 벡터일 수 있고,
Figure PCTKR2022014391-appb-img-000004
는 콘텐트 i의 콘텐트 임베딩 벡터일 수 있다.
Figure PCTKR2022014391-appb-img-000005
은 기 설정된 값일 수 있고, u는 1-M 사이의 정수 값일 수 있고, i는 1-N사이의 정수 값일 수 있다.
본 개시의 일 실시예에 따르면, 임베딩 벡터의 차원은 서버의 메모리, 추천 콘텐트를 제공하기까지의 소요 시간 등을 고려하여 결정될 수 있고, 기 설정되어 서버에 저장되어 있을 수 있다. 또한, 피처 1(1440) 및 피처 2(1450)는 복수의 사용자들에 대한 사용자 임베딩 벡터들(1420) 및 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들(1430)의 축(axis)들일 수 있다.
본 명세서에서의 임베딩 벡터들은 행렬 분해(Matrix Factorization), 특정 아키텍처(architecture)로 구성된 인공 신경망 모델을 통한 학습 또는 원-핫 인코딩(one-hot encoding)에 기초한 임베딩 벡터 생성 방법 등을 통해 복수의 사용자들에 대한 사용자 임베딩 벡터들(1420) 및 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들(1430)을 생성할 수 있고, 이에 한정되는 것은 아니다.
도 5는 본 개시의 일 실시예에 따른 도 4에서의 사용자1의 사용자 임베딩 벡터 및 사용자2의 사용자 임베딩 벡터를 나타내는 도면이다.
본 개시의 일 실시예에 따르면, 그래프(1500)는 사용자 1의 사용자 임베딩 벡터(1421) 및 사용자 2의 사용자 임베딩 벡터(1422)를 도시하고 있다. 도 4에서 볼 수 있듯이, 그래프(1500)의 x축은 피처 1(1440)일 수 있고, y축은 피처 2(1450)일 수 있다.
본 개시의 일 실시예에 따르면, 사용자 1의 사용자 임베딩 벡터(1421) 및 사용자 2의 사용자 임베딩 벡터(1422)는 잠재 벡터(Latent Vector) 혹은 잠재 팩터(Latent Factor)일 수 있고, 수학적인 값만을 나타낼 수 있다. 하지만, 피드백 정보에 기초하여, 기 설정된 기준에 따라 사용자 1의 사용자 임베딩 벡터(1421) 및 사용자 2의 사용자 임베딩 벡터(1422)을 생성할 수 있다. 피처 1(1440) 및 피처 2(1450)는 결과론적으로 사용자의 콘텐트에 대한 선호도와 관련 있는 축을 의미할 수 있다. 구체적으로, 사용자에게 추천 애플리케이션을 제공하는 서버의 경우, 게임 애플리케이션을 선호하는 사용자들의 피처 1(1440)축의 값이 크게 나타날 수 있고, 금융 애플리케이션을 선호하는 사용자들의 피처 2(1450)축의 값이 크게 나타날 수 있다. 예를 들어, 사용자 2의 피처1(1440)의 값이 사용자 1의 피처1(1440)의 값보다 큰 바, 사용자 2는 사용자 1보다 게임 애플리케이션을 선호할 확률이 높은 사용자에 해당될 수 있다. 따라서, 그래프(1500)에 대응되는 사용자 1의 사용자 임베딩 벡터(1421) 및 사용자 2의 사용자 임베딩 벡터(1422)을 포함하는 임베딩 공간 상에서, 사용자 임베딩 벡터들 간의 거리들이 가까울수록 사용자들 간의 복수의 콘텐트들에 대한 선호도가 유사할 수 있다.
도 6은 본 개시의 일 실시예에 따른 복수의 사용자 그룹들 및 복수의 사용자 그룹들의 중심 사용자들을 결정하는 방법에 관한 순서도이다.
동작 S1610에서, 서버는 기 설정된 복수의 사용자 그룹들의 수 및 복수의 사용자들에 대한 사용자 임베딩 벡터들 사이의 유클리드 거리들에 기초하여, 복수의 사용자 그룹들을 결정할 수 있다.
본 개시의 일 실시예에 따르면, 서버는 기 설정된 복수의 사용자 그룹들의 수 및 복수의 사용자들에 대한 사용자 임베딩 벡터들 사이의 유클리드 거리들에 기초하여, 복수의 사용자 그룹들을 결정하기 위해, 고차원의 복수의 사용자들에 대한 사용자 임베딩 벡터들을 기 설정된 저차원의 복수의 사용자들에 대한 사용자 임베딩 벡터들로 전환할 수 있다. 구체적으로, 복수의 사용자들에 대한 사용자 임베딩 벡터들의 차원이 큰 경우, 추천 콘텐트를 사용자에게 제공하기까지의 소요 시간 및 고차원의 데이터를 저차원의 데이터로 축소시켜 서버의 저장 공간 문제를 해결하기 위하여, 고차원의 복수의 사용자들에 대한 사용자 임베딩 벡터들을 기 설정된 저차원의 복수의 사용자들에 대한 사용자 임베딩 벡터들로 전환할 수 있다.
본 개시의 일 실시예에 따르면, 서버는 기 설정된 복수의 사용자 그룹들의 수 및 전환된 복수의 사용자들에 대한 사용자 임베딩 벡터들 사이의 유클리드 거리들에 기초하여, 복수의 사용자 그룹들을 결정할 수 있다. 예를 들어, 복수의 사용자 그룹들 각각의 분산의 합이 최소화되도록, 복수의 사용자 그룹들을 결정할 수 있다.
동작 S1620에서, 서버는 결정된 복수의 사용자 그룹들 각각에 속하는 적어도 하나의 사용자들에 대한 사용자 임베딩 벡터들 사이의 유클리드 거리들에 기초하여, 복수의 사용자 그룹들의 중심 사용자들을 결정할 수 있다.
본 개시의 일 실시예에 따르면, 서버는 결정된 복수의 사용자 그룹들 각각에 속하는 적어도 하나의 사용자들에 대한 사용자 임베딩 벡터들 사이의 유클리드 거리들에 기초하여, 복수의 사용자 그룹들의 중심점들을 결정할 수 있다. 예를 들어, 복수의 사용자 그룹들의 중심점은 복수의 사용자 그룹들 각각에 속하는 적어도 하나의 사용자들에 대한 사용자 임베딩 벡터들의 평균으로 계산된 벡터에 대응될 수 있다. 또한, 서버는 복수의 사용자 그룹들의 중심점들에 기초하여, 복수의 사용자 그룹들의 중심 사용자들을 결정할 수 있다. 예를 들어, 복수의 사용자 그룹들의 중심 사용자들은 임베딩 공간 상에서 복수의 사용자 그룹들의 중심점들과 가장 가까이 위치한 복수의 사용자 그룹들의 사용자들일 수 있다.
도 7은 본 개시의 일실시예에 따른 복수의 사용자들을 군집화함으로써 복수의 사용자 그룹들의 중심 사용자들을 결정하는 예시를 나타내는 도면이다.
동작 S 1720에서, 서버는 고차원의 복수의 사용자들에 대한 사용자 임베딩 벡터들을 기 설정된 저차원의 복수의 사용자들에 대한 사용자 임베딩 벡터들로 전환할 수 있다. 예를 들어, 서버는 고차원 Nm(1710)의 복수의 사용자들에 대한 사용자 임베딩 벡터들을 기 설정된 저차원 Np(1730)의 복수의 사용자들에 대한 사용자 임베딩 벡터들로 전환할 수 있다. Np(1730)는 서버의 메모리 및 사용자에게 추천 콘텐트를 제공하기까지의 소요 시간 등을 종합적을 고려하여, 기 설정되는 값일 수 있다. 또한, 예를 들어, 서버는 주성분 분석(PCA: Principal Component Analysis)을 통해, 고차원의 복수의 사용자들에 대한 사용자 임베딩 벡터들을 기 설정된 저차원의 복수의 사용자들에 대한 사용자 임베딩 벡터들로 전환할 수 있다.
동작 S 1740에서, 서버는 기 설정된 복수의 사용자 그룹들의 수 및 전환된 복수의 사용자들에 대한 사용자 임베딩 벡터들 사이의 유클리드 거리들에 기초하여, 복수의 사용자 그룹들을 결정할 수 있다. 구체적으로, 서버는 기 설정된 복수의 사용자 그룹들의 수 n(1750) 및 전환된 복수의 사용자들에 대한 사용자 임베딩 벡터들 사이의 유클리드 거리들에 기초하여, K-평균 군집화를 통해 복수의 사용자 그룹들을 결정할 수 있다. 또한, 기 설정된 복수의 사용자 그룹들의 수 n(1750)은 서버의 메모리 및 사용자에게 추천 콘텐트를 제공하기까지의 소요 시간 등을 종합적을 고려하여, 기 설정되는 값일 수 있고, 조정될 수 있는 값일 수 있다. 예를 들어, K-평균 군집화를 통해 아래의 수학식(2)를 만족하도록 복수의 사용자 그룹들을 결정될 수 있다.
Figure PCTKR2022014391-appb-img-000006
(2)
수학식(2)의 S는 {
Figure PCTKR2022014391-appb-img-000007
}로 구성되고, 각각의
Figure PCTKR2022014391-appb-img-000008
는 i번째 복수의 사용자들의 그룹일 수 있다.
Figure PCTKR2022014391-appb-img-000009
는 복수의 사용자 그룹들의 중심점일 수 있고,
Figure PCTKR2022014391-appb-img-000010
는 i번째 복수의 사용자들의 그룹에 속하는 사용자들의 임베딩 벡터들의 거리에 기초하여 계산된 분산일 수 있다.
Figure PCTKR2022014391-appb-img-000011
는 i번째 그룹의 분산일 수 있다.
본 개시의 일 실시예에 따른 도 7에서의 주성분 분석(1720) 및 K-평균 군집화(1740)는 복수의 사용자 그룹들 및 복수의 사용자 그룹들의 중심 사용자들을 결정하기 위한 일 실시예일 뿐, 이에 한정되는 것은 아니다.
도 8은 본 개시의 일 실시예에 임베딩 공간 상에서, 복수의 사용자 그룹들의 중심 사용자들을 결정하는 예시를 나타내는 도면이다.
본 개시의 일 실시예에 따르면, 그래프(1800)은 사용자 임베딩 벡터들로 구성된 임베딩 공간일 수 있다. 또한, 사용자 임베딩 벡터들의 차원은 피처 1(1801) 및 피처 2(1802)일 수 있고, 임베딩 공간은 3개의 복수의 사용자 그룹들로 나누어 질 수 있다. 예를 들어, 그룹 1은 사용자 1(1811), 사용자 2(1812), 사용자 3(1813) 및 사용자 4(1820)로 구성될 수 있고, 그룹 2는 사용자 5(1831), 사용자 6(1832), 사용자 7(1833), 사용자 8(1834), 사용자 9(1835) 및 사용자 10(1840)으로 구성될 수 있고, 그룹 3은 사용자 11(1851), 사용자 12(1852), 사용자 13(1853) 및 사용자 14(1860)로 구성될 수 있다.
본 개시의 일 실시예에 따르면, 서버는 복수개의 복수의 사용자 그룹들 각각에 대하여 복수의 사용자 그룹들의 중심점을 결정할 수 있다. 구체적으로, 서버는 복수개의 복수의 사용자 그룹들에 속하는 적어도 하나의 사용자들의 사용자 임베딩 벡터들에 기초하여, 복수의 사용자 그룹들의 중심점을 결정할 수 있다. 예를 들어, 사용자 그룹들에 속하는 적어도 하나의 사용자들의 사용자 임베딩 벡터들의 평균에 기초하여 복수의 사용자 그룹들의 중심점을 결정할 수 있다. 예를 들어, 그룹 1의 중심점은 중심점 1(1810)이고, 그룹 2의 중심점은 중심점 2(1830)이고, 그룹 3의 중심점은 중심점 3(1850)일 수 있다.
본 개시의 일 실시예에 따르면, 서버는 계산된 복수의 사용자 그룹들의 중심점들에 기초하여, 복수의 사용자 그룹들의 중심 사용자들을 결정할 수 있다. 예를 들어, 도8에서 볼 수 있듯이, 그룹 1의 중심 사용자는 중심점 1(1810)과 가장 가까이 위치한 사용자 4(1820)일 수 있고, 그룹 2의 중심 사용자는 중심점 2(1830)과 가장 가까이 위치한 사용자 10(1840)일 수 있고, 그룹 3의 중심 사용자는 중심점 3(1850)과 가장 가까이 위치한 사용자 14(1860)일 수 있다.
본 개시의 일 실시예에 따른 도 8에서의 복수의 사용자 그룹들의 중심 사용자들을 결정하기 위한 방법은 일 실시예일 뿐, 이에 한정되는 것은 아니다.
도 9는 본 개시의 일 실시예에 따른 인공 신경망 모델을 훈련하는 예시를 나타내는 도면이다.
본 개시의 일 실시예에 따르면, 서버의 인공 신경망 모델(1930)은 복수의 사용자들에 대한 사용자 임베딩 벡터들(1910) 및 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들(1920)을 학습 데이터로 사용하여 훈련된 인공 신경망 모델일 수 있다. 구체적으로, 인공 신경망 모델(1930)은 맞춤형 콘텐트 추천의 대상이 되는 사용자의 디바이스로부터 콘텐트 추천 요청을 수신하기 전에, 주기적으로 복수의 사용자들에 대한 사용자 임베딩 벡터들(1910) 및 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들(1920)을 학습 데이터로 사용하여 훈련될 수 있다. 또한, 인공 신경망 모델(1930)은 GMF (Generalized Matrix Factorization) 모델, MLP (Multi-Layer Perceptron) 모델 및 NeuMF (Neural Matrix Factorization) 모델 중 적어도 하나를 포함할 수 있지만, 이에 한정되는 것은 아니다.
본 개시의 일 실시예에 따르면, 인공 신경망 모델(1930)은 복수의 콘텐트들에 대한 중심 사용자들의 예측된 선호도를 나타내는 중심 사용자들의 선호도 벡터들(1940)을 출력할 수 있다. 또한, 중심 사용자들의 선호도 벡터들(1940) 및 피드백 정보 (1950)을 비교하여, 인공 신경망 모델(1930)을 훈련할 수 있다. 구체적으로, 인공 신경망 모델(1930)에서 출력된 중심 사용자들의 복수의 콘텐트들에 대한 예측된 선호도 및 피드백 정보(1950)에 기재된 중심 사용자들의 복수의 콘텐트들에 대한 선호도 데이터를 통하여, 인공 신경망 모델(1930)을 반복적으로(iteratively) 훈련할 수 있다.
도 10은 본 개시의 일 실시예에 따른 인공 신경망 모델(1930)을 설명하기 위한 도면이다.
본 개시의 일 실시예에 따르면, 인공 신경망 모델(1930)은 GMF 모델(2030), MLP 모델(2040) 및 NeuMF 모델(2050) 중 적어도 하나를 포함할 수 있다. 또한, 인공 신경망 모델(1930)의 입력으로 복수의 사용자들에 대한 사용자 임베딩 벡터들 및 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들을 이용할 수 있다.
본 개시의 일 실시예에 따르면, 사용자 i의 사용자 임베딩 벡터(2010)는 복수개의 사용자 i의 사용자 임베딩 벡터들로 구성될 수 있다. 예를 들어, 사용자 i의 제1 사용자 임베딩 벡터(2011)은 GMF 모델(2030)로 입력될 수 있고, 사용자 i의 제2 사용자 임베딩 벡터(2012)은 MLP 모델(2040)로 입력될 수 있다. 또한, 제1 사용자 임베딩 벡터(2011) 및 제2 사용자 임베딩 벡터(2012)은 다양한 방법에 의해 생성된 사용자 임베딩 벡터일 수 있지만, 본 명세서에서 설명하는 일 실시예에 한정되지 않는다.
본 개시의 일 실시예에 따르면, 콘텐트 j의 콘텐트 임베딩 벡터(2020)은 복수개의 콘텐트 j의 콘텐트 임베딩 벡터들로 구성될 수 있다. 예를 들어, 콘텐트 j의 제1 콘텐트 임베딩 벡터(2024)은 GMF 모델(2030)로 입력될 수 있고, 콘텐트 j의 제2 콘텐트 임베딩 벡터(2023)은 MLP 모델(2040)로 입력될 수 있다. 또한, 제1 콘텐트 임베딩 벡터(2024) 및 제2 콘텐트 임베딩 벡터(2023)는 다양한 방법에 의해 생성된 사용자 임베딩 벡터일 수 있지만, 본 명세서에서 설명하는 실시예에 한정되지 않는다.
본 개시의 일 실시예에 따르면, GMF 모델(2030)은 NCF 모델(Neural Collaborative Filtering Model)의 특수한 예시에 해당되는 모델일 수 있고, 복수의 사용자들의 복수의 콘텐트들에 대한 선형적인 선호도를 예측하기 위한 모델일 수 있다. 본 개시의 일 실시예에 따른 MLP 모델(2040)은 복수 개의 층(layer)으로 구성되고, 복수의 사용자들의 복수의 콘텐트들에 대한 비 선형적인 선호도를 예측하기 위한 모델일 수 있다. 본 개시의 일 실시예에 따른 NeuMF 모델(2050)은 GMF 모델(2030)에서의 출력값 및 MLP 모델(2040)에서의 출력값에 기초하여, 사용자 i의 콘텐트 j에 대한 예측된 선호도 값
Figure PCTKR2022014391-appb-img-000012
(2060)를 출력하는 모델일 수 있다.
또한, 본 개시의 일 실시예에 따르면, 피드백 정보(예를 들어, 도9의 피드백 정보(1950))에서 사용자 i의 피드백 벡터를 획득할 수 있고, 사용자 i의 피드백 벡터의 j번째 요소의 값은 사용자 i의 콘텐트 j에 대한 행동 데이터에 기초하여 획득한 사용자 i의 콘텐트 j에 대한 선호도 값
Figure PCTKR2022014391-appb-img-000013
(2070)일 수 있다.
본 개시의 일 실시예에 따르면, 사용자 i의 콘텐트 j에 대한 예측된 선호도 값
Figure PCTKR2022014391-appb-img-000014
(2060) 및 사용자 i의 콘텐트 j에 대한 선호도 값
Figure PCTKR2022014391-appb-img-000015
(2070)에 기초하여, 인공 신경망 모델(1930)을 훈련시킬 수 있다. 예를 들어. 수학식(3)에 따라, 사용자 i의 콘텐트 j에 대한 예측된 선호도 값
Figure PCTKR2022014391-appb-img-000016
(2060) 및 사용자 i의 콘텐트 j에 대한 선호도 값
Figure PCTKR2022014391-appb-img-000017
(2070)에 기초하여, 인공 신경망 모델(1930)을 훈련시킬 수 있다.
Figure PCTKR2022014391-appb-img-000018
(3)
수학식(3)의
Figure PCTKR2022014391-appb-img-000019
는 복수의 사용자들의 복수의 콘텐트들에 대한 선호도가 "긍정"인 것들의 집합을 나타내고,
Figure PCTKR2022014391-appb-img-000020
는 복수의 사용자들의 복수의 콘텐트들에 대한 선호도가 "부정"인 것들의 집합을 나타낼 수 있다. 본 명세서에 따르면,
Figure PCTKR2022014391-appb-img-000021
Figure PCTKR2022014391-appb-img-000022
에 속하는 사용자 u 및 콘텐트 i에 대한
Figure PCTKR2022014391-appb-img-000023
값은 1 또는 0인 바,
Figure PCTKR2022014391-appb-img-000024
도 실수 값을 가질 수 있다. 인공 신경망 모델(1930)은
Figure PCTKR2022014391-appb-img-000025
가 기 설정된 임계치 이하가 되도록 훈련될 수 있다.
도 11은 본 개시의 일 실시예에 따른 사용자에게 추천될 적어도 하나의 추천 콘텐트를 결정하는 방법에 관한 순서도이다.
동작 S2110에서, 서버는 사용자의 피드백 벡터 및 중심 사용자들의 선호도 벡터들에 기초하여, 콘텐트의 추천에 이용될 중심 사용자를 선택할 수 있다.
본 개시의 일 실시예에 따르면, 서버는 사용자의 피드백 벡터 및 중심 사용자들의 선호도 벡터들을 비교하여, 콘텐트의 추천에 이용될 중심 사용자를 선택할 수 있다. 구체적으로, 사용자의 피드백 벡터 및 중심 사용자들의 선호도 벡터들 사이의 내적 혹은 차이 값에 기초하여, 콘텐트의 추천에 이용될 중심 사용자를 선택할 수 있다. 예를 들어. 사용자의 피드백 벡터 및 중심 사용자들의 선호도 벡터들 사이의 내적을 계산하고, 내적 값이 가장 큰 중심 사용자를 콘텐트의 추천에 이용될 중심 사용자로 선택할 수 있다.
또한, 아래와 같은 수학식(4)에 기초하여, 사용자의 피드백 벡터 및 중심 사용자들의 선호도 벡터들 사이의 차이 값에 따라 콘텐트의 추천에 이용될 중심 사용자를 선택할 수 있다. 예를 들어, 중심 사용자들에 대하여 차이 값(Loss)이 작을수록, 중심 사용자들의 복수의 콘텐트들에 대한 선호도는 콘텐트 추천의 대상이 되는 사용자의 복수의 콘텐트들에 대한 선호도와 유사하다고 결정될 수 있다.
Figure PCTKR2022014391-appb-img-000026
(4)
Figure PCTKR2022014391-appb-img-000027
은 중심 사용자 m의 차이 값을 나타내고,
Figure PCTKR2022014391-appb-img-000028
는 기 설정된 하이퍼 파라미터로, 가중치를 나타낼 수 있다.
본 개시의 일 실시예에 따르면, 사용자의 피드백 벡터 및 중심 사용자들의 선호도 벡터들 사이의 내적 혹은 사용자의 피드백 벡터 및 중심 사용자들의 선호도 벡터들 사이의 차이 값에 기초하여, 중심 사용자들의 복수의 콘텐트들에 대한 예측된 선호도 및 사용자의 복수의 콘텐트들에 대한 선호도 사이의 유사도 값을 결정할 수 있다. 예를 들어, 사용자의 피드백 벡터 및 중심 사용자들의 선호도 벡터들 사이의 내적 값이 크거나 혹은 사용자의 피드백 벡터 및 중심 사용자들의 선호도 벡터들 사이의 차이 값이 작은 경우, 중심 사용자들의 복수의 콘텐트들에 대한 예측된 선호도 및 사용자의 복수의 콘텐트들에 대한 선호도 사이의 유사도 값도 크게 결정할 수 있다.
동작 S2120에서, 서버는 중심 사용자들의 선호도 벡터들 중에서 선택된 중심 사용자의 선호도 벡터를 추출할 수 있다.
본 개시의 일 실시예에 따르면, 서버는 중심 사용자들의 선호도 벡터들 중에서 선택된 중심 사용자의 선호도 벡터를 추출할 수 있다. 선택된 중심 사용자는 중심 사용자들 중 사용자의 복수의 콘텐트들에 대한 선호도와 가장 유사한 선호도를 가질 것으로 예측된 사용자일 수 있다.
동작 S2130에서, 추출된 선호도 벡터에 기초하여, 적어도 하나의 추천 콘텐트들을 결정할 수 있다.
본 개시의 일 실시예에 따르면, 추출된 선호도 벡터의 요소 값에 기초하여, 적어도 하나의 추천 콘텐트들을 결정할 수 있다. 구체적으로, 서버에 저장된 기 설정된 개수 및 추출된 선호도 벡터의 요소 값에 기초하여, 적어도 하나의 추천 콘텐트를 결정할 수 있다. 예를 들어, 추출된 선호도 벡터에서 선호도 벡터의 요소 값이 큰 기 설정된 개수의 요소 값을 선택하고, 선택된 선호도 벡터의 요소 값들에 대응되는 적어도 하나의 콘텐트들을 사용자에게 추천할 맞춤형 콘텐트로 결정할 수 있다.
도 12는 본 개시의 일 실시예에 따른 사용자에게 추천될 적어도 하나의 추천 콘텐트들의 예시를 나타내는 도면이다.
본 개시의 일 실시예에 따르면, 사용자의 피드백 벡터(2210) 및 중심 사용자들의 선호도 벡터들 사이의 내적을 계산하고, 내적 값이 가장 큰 중심 사용자를 콘텐트의 추천에 이용될 중심 사용자로 선택할 수 있다. 또한, 도12에서 볼 수 있듯이, 중심 사용자들의 선호도 벡터들은 제1 중심 사용자의 선호도 벡터(2230), 제2 중심 사용자의 선호도 벡터(2222) 및 제3 중심 사용자의 선호도 벡터(2223)을 포함할 수 있다.
본 개시의 일 실시예에 따르면, 사용자의 피드백 벡터 및 중심 사용자의 선호도 벡터사이의 내적은 요소 값이 공백인 경우를 제외하 대응되는 요소 간의 곱의 합을 통해 계산될 수 있다. 예를 들어, 사용자의 피드백 벡터(2210) 및 제1 중심 사용자의 선호도 벡터(2230)사이의 내적은 1 X 0.7 + 1 X 0.9=1.6으로 계산될 수 있고, 비슷하게 사용자의 피드백 벡터(2210) 및 제2 중심 사용자의 선호도 벡터(2222)사이의 내적은 0.9 및 사용자의 피드백 벡터(2210) 및 제3 중심 사용자의 선호도 벡터(2223)사이의 내적은 0.5로 계산될 수 있다. 따라서 내적 값이 1.6인 제1 중심 사용자를 사용자와 콘텐트에 대한 선호도가 가장 유사한 중심 사용자로 선택할 수 있고, 제1 중심 사용자를 콘텐트의 추천에 이용될 중심 사용자로 선택할 수 있다.
또한, 본 개시의 일 실시예에 따르면, 서버는 제1 중심 사용자의 선호도 벡터(2230)의 요소 값에 기초하여, 사용자에게 추천될 적어도 하나의 추천 콘텐트(2240)를 결정할 수 있다. 예를 들어, 사용자에게 두개의 추천 콘텐트를 제공하는 것으로 기 설정된 경우, 제1 중심 사용자의 선호도 벡터(2230)의 요소 값이 큰 0.9 및 0.8을 선택할 수 있고, 선택된 요소 값 0.9(2231)및 0.8(2232)에 대응되는 콘텐트 4(2241) 및 콘텐트 5(2242)로 구성된 추천 콘텐트(2240)를 결정할 수 있다.
도 13은 본 개시의 일 실시예에 따른 중심 사용자들의 차이 값에 기초하여, 사용자에게 추천될 적어도 하나의 추천 콘텐트의 예시를 나타내는 도면이다.
본 개시의 일 실시예에 따르면, 중심 사용자들의 선호도 벡터들 및 사용자의 피드백 벡터에 기초하여, 중심 사용자들의 차이 값에 대한 테이블 1(2300)을 획득할 수 있고, 테이블 1(2300)에 기초하여 콘텐트의 추천에 이용될 중심 사용자를 선택할 수 있다. 예를 들어, 테이블(2300)의 차이 값 중 중심 사용자 1의 차이 값인 0.2가 가장 작은 바, 중심 사용자 1을 콘텐트의 추천에 이용될 중심 사용자로 선택할 수 있다.
본 개시의 일 실시예에 따르면, 중심 사용자 1의 선호도 벡터(2320)는 콘텐트1-콘텐트 15에 대한 예측된 선호도를 나타내는 벡터일 수 있다. 또한, 중심 사용자 1의 선호도 벡터(2320)를 예측된 선호도 값이 큰 순으로 정렬할 수 있고, 테이블 2(2330)와 같이 표현될 수 있다.
본 개시의 일 실시예에 따르면, 테이블 2(2330) 및 사용자에게 추천 콘텐트로 제공될 기 설정된 콘텐트의 개수에 기초하여, 사용자에게 추천될 적어도 하나의 추천 콘텐트를 결정할 수 있다. 예를 들어, 5개의 콘텐트들을 사용자에게 추천하기로 기 결정된 경우, 서버는 콘텐트에 대한 예측된 선호도 값이 높은 콘텐트인 콘텐트 3, 콘텐트 1, 콘텐트 2, 콘텐트 8 및 콘텐트 4(2340)를 추천 콘텐트(2350)로 결정할 수 있다.
도 14는 본 개시의 일 실시예에 따른 복수의 사용자 그룹들의 수에 따른 사용자에게 추천 콘텐트를 제공하기까지의 소요 시간 및 콘텐트 선호도 예측의 차이 값에 대한 도면이다.
본 개시의 일 실시예에 따르면, 그래프(2400)는 복수의 사용자 그룹들의 수(2410)에 따른 추천 콘텐트를 제공하기까지의 소요 시간(2420) 및 콘텐트 선호도 예측의 차이 값(2430)에 대한 그래프이다. 그래프(2400)의 x축은 복수의 사용자 그룹들의 수(2410)이고, 그래프(2400)의 y축은 추천 콘텐트를 제공하기까지의 소요 시간(2420) 및 콘텐트 선호도 예측의 차이 값(2430)이다.
본 개시의 일 실시예에 따르면, 복수의 사용자 그룹들의 수(2410)가 증가하는 경우, 사용자에게 추천 콘텐트를 제공하기 위해, 인공 신경망 모델에 더 많은 중심 사용자들의 사용자 임베딩 벡터의 입력이 요구될 수 있다. 따라서, 복수의 사용자 그룹들의 수(2410)가 증가하는 경우, 사용자에게 추천 콘텐트를 제공하기 위한 소요 시간(2420)이 증가할 수 있다.
본 개시의 일 실시예에 따르면, 복수의 사용자 그룹들의 수(2410)가 증가하는 경우, 서버는 더 많은 중심 사용자들과 사용자의 선호도를 비교하여, 추천 콘텐트를 사용자에게 제공하는 바, 선호 예측의 차이 값(2430)은 감소할 수 있다.
따라서, 추천 콘텐트를 제공하기까지의 소요 시간(2420) 및 콘텐트 선호도 예측의 차이 값(2430), 서버의 메모리 등을 종합적으로 고려하여, 적절한 복수의 사용자 그룹들의 수(2410)을 결정할 수 있다. 적절한 복수의 사용자 그룹들의 수(2410)를 결정한 경우, 서버는 사용자에게 맞춤형 추천 콘텐트를 제공할 수 있고, 동시에 추천 콘텐트를 제공하기까지의 소요 시간을 비약적으로 감소시킬 수 있다.
도 15는 본 개시의 일 실시예에 따른 복수의 사용자 그룹들의 수를 조정하고, 조정된 복수의 사용자 그룹들의 수에 기초하여, 사용자 및 복수의 사용자들을 재군집화하는 방법에 대한 순서도이다.
동작 S2510에서, 서버는 사용자의 피드백 벡터 및 중심 사용자들의 선호도 벡터들에 기초하여, 중심 사용자들의 복수의 콘텐트들에 대한 예측된 선호도 및 사용자의 복수의 콘텐트들에 대한 선호도 간의 유사도 값들을 결정할 수 있다.
본 개시의 일 실시예에 따르면, 서버는 중심 사용자들의 복수의 콘텐트들에 대한 예측된 선호도 및 사용자의 복수의 콘텐트들에 대한 선호도 간의 유사도 값들을 결정할 수 있다. 구체적으로, 사용자의 피드백 벡터 및 중심 사용자들의 선호도 벡터들 사이의 내적 혹은 사용자의 피드백 벡터 및 중심 사용자들의 선호도 벡터들 사이의 차이 값에 기초하여, 중심 사용자들의 복수의 콘텐트들에 대한 예측된 선호도 및 사용자의 복수의 콘텐트들에 대한 선호도 사이의 유사도 값을 결정할 수 있다. 예를 들어, 사용자의 피드백 벡터 및 중심 사용자들의 선호도 벡터들 사이의 내적 값이 크거나 또는 사용자의 피드백 벡터 및 중심 사용자들의 선호도 벡터들 사이의 차이 값이 작은 경우, 중심 사용자들의 복수의 콘텐트들에 대한 예측된 선호도 및 사용자의 복수의 콘텐트들에 대한 선호도 사이의 유사도 값도 크게 계산될 수 있다.
동작 S2520에서, 서버는 결정된 유사도 값들에 기초하여, 복수의 사용자 그룹들의 수를 조정할 수 있다.
본 개시의 일 실시예에 따르면, 서버는 결정된 유사도 값들 중 가장 큰 유사도 값을 결정하고, 가장 큰 유사도 값을 가진 중심 사용자를 선택할 수 있다. 예를 들어, 서버는 가장 큰 유사도 값 및 서버에 저장된 기 설정된 임계치를 비교하여, 복수의 사용자 그룹들의 수를 조정할지 여부를 결정할 수 있다.
동작 S2530에서 사용자의 피드백 벡터 및 피드백 정보에 기초하여, 사용자에 대한 사용자 임베딩 벡터를 생성하고, 복수의 사용자들에 대한 사용자 임베딩 벡터들 및 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들을 재생성할 수 있다.
본 개시의 일 실시예에 따르면, 서버는 사용자 및 서버 내의 복수의 사용자들의 복수의 콘텐트에 대한 행동, 행위 및 반응에 기초하여, 피드백 벡터 및 피드백 정보를 획득할 수 있다. 예를 들어, 서버는 피드백 벡터 및 피드백 정보에 기초하여, 사용자에 대한 사용자 임베딩 벡터를 생성하고, 복수의 사용자들에 대한 사용자 임베딩 벡터들 및 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들을 재생성할 수 있다. 또한, 서버는 생성된 사용자에 대한 사용자 임베딩 벡터, 재생성된 복수의 사용자들에 대한 사용자 임베딩 벡터들 및 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들을 인공 신경망 모델에 입력하여, 인공 신경망 모델을 미리 훈련시킬 수 있다. 또한, 새로운 사용자가 콘텐트 추천 요청을 송신하는 경우 기 생성된 사용자에 대한 사용자 임베딩 벡터, 재생성된 복수의 사용자들에 대한 사용자 임베딩 벡터들 및 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들에 기초하여, 새로운 사용자에게 추천 콘텐트를 제공할 수 있다.
동작 S2540에서 조정된 복수의 사용자 그룹들의 수에 기초하여, 사용자 및 복수의 사용자들을 재군집화할 수 있다.
본 개시의 일 실시예에 따르면, 생성된사용자에 대한 사용자 임베딩 벡터, 재생성된 복수의 사용자들에 대한 사용자 임베딩 벡터들, 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들 및 조정된 복수의 사용자 그룹들의 수에 기초하여, 사용자 및 복수의 사용자들을 재군집화할 수 있다.
도 16은 본 개시의 일 실시예에 따른 선택된 중심 사용자의 유사도 값에 기초하여, 복수개의 사용자 그룹들의 수를 조정할지 여부를 결정하고, 복수개의 사용자 그룹들의 수를 조정하는 경우, 조정된 사용자 그룹들의 수로 복수의 사용자 및 사용자를 재군집화하는 방법에 대한 흐름도이다.
동작 S2610에서, 서버는 사용자의 피드백 벡터 및 중심 사용자들의 선호도 벡터들에 기초하여, 중심 사용자들의 복수의 콘텐트들에 대한 예측된 선호도 및 사용자의 복수의 콘텐트들에 예측된 선호도 간의 유사도 값들을 결정할 수 있다.
본 개시의 일 실시예에 따르면, 사용자의 피드백 벡터 및 중심 사용자들의 선호도 벡터들에 기초하여, 사용자의 피드백 벡터 및 중심 사용자들의 선호도 벡터들 사이의 내적 혹은 차이 값을 계산할 수 있다. 또한, 계산된 내적 및 차이 값에 기초하여, 중심 사용자들의 복수의 콘텐트들에 대한 예측된 선호도 및 사용자의 복수의 콘텐트들에 예측된 선호도 간의 유사도 값들을 결정할 수 있다.
동작 S2620에서, 서버는 사용자의 피드백 벡터 및 중심 사용자들의 선호도 벡터들에 기초하여, 콘텐트의 추천에 이용될 중심 사용자를 선택할 수 있다.
본 개시의 일 실시예에 따르면, 서버는 사용자의 피드백 벡터 및 중심 사용자들의 선호도 벡터들에 기초하여, 기 결정된 유사도 값이 가장 큰 중심 사용자를 콘텐트의 추천에 이용될 중심 사용자로 선택할 수 있다.
동작 S2630에서, 서버는 결정된 유사도 값들 중 선택된 중심 사용자의 유사도 값을 식별할 수 있다.
본 개시의 일 실시예에 따르면, 서버는 사용자의 피드백 벡터 및 중심 사용자들의 선호도 벡터들에 기초하여, 기 결정된 유사도 값이 가장 큰 중심 사용자를 콘텐트의 추천에 이용될 중심 사용자로 선택할 수 있는 바, 결정된 유사도 값들 중 가장 큰 유사도 값을 식별할 수 있다.
동작 S2640에서, 서버는 식별된 유사도 값을 제2 임계치와 비교하여, 복수의 사용자 그룹들의 수를 증가시킬지 여부를 결정할 수 있다.
본 개시의 일 실시예에 따르면, 서버는 식별된 유사도 값을 제2 임계치와 비교하여, 복수의 사용자 그룹들의 수를 증가시킬지 여부를 결정할 수 있고, 제2 임계치는 메모리의 크기, 복수의 사용자 그룹들의 수, 메모리에 저장된 복수의 사용자들의 복수의 콘텐트에 대한 선호도와 관련된 행동, 반응 등에 관한 데이터 크기 등을 고려하여 기 설정된 값일 수 있다. 예를 들어, 서버는 식별된 유사도 값이 기 설정된 제2 임계치 이하인 경우, 복수의 사용자 그룹들의 수가 증가되도록 복수의 사용자 그룹들의 수를 조정할 수 있다(동작 S2660). 또한, 예를 들어, 서버는 식별된 유사도 값이 기 설정된 제2 임계치보다 큰 경우, 서버는 식별된 유사도 값을 제3 임계치와 비교하여, 복수의 사용자 그룹들의 수를 감소시킬지 여부를 결정할 수 있다(동작 S2650).
동작 S2650에서, 서버는 식별된 유사도 값을 제3 임계치와 비교하여, 복수의 사용자 그룹들의 수를 감소시킬지 여부를 결정할 수 있다.
본 개시의 일 실시예에 따르면, 서버는 식별된 유사도 값을 제3 임계치와 비교하여, 복수의 사용자 그룹들의 수를 감소시킬지 여부를 결정할 수 있고, 제3 임계치는 메모리의 크기, 복수의 사용자 그룹들의 수, 메모리에 저장된 복수의 사용자들의 복수의 콘텐트에 대한 선호도와 관련된 행동, 반응 등에 관한 데이터 크기 등을 고려하여 기 설정된 값일 수 있다. 예를 들어, 제3 임계치는 제2 임계치보다 작은 값일 수 있다. 예를 들어, 서버는 식별된 유사도 값이 기 설정된 제3 임계치 이상인 경우, 복수의 사용자 그룹들의 수가 감소되도록 조정된 복수의 사용자 그룹들의 수를 결정할 수 있다(동작 S2670). 또한, 예를 들어, 서버는 식별된 유사도 값이 기 설정된 제3 임계치보다 작은 경우, 복수의 사용자 그룹들의 수가 유지되도록 결정할 수 있다(동작 S2680).
동작 S2660에서, 서버는 식별된 유사도 값이 기 설정된 제2 임계치 이하인 경우, 복수의 사용자 그룹들의 수가 증가되도록 조정된 복수의 사용자 그룹들의 수를 결정할 수 있다.
동작 S2670에서, 서버는 식별된 유사도 값이 기 설정된 제3 임계치 이상인 경우, 복수의 사용자 그룹들의 수가 감소되도록 조정된 복수의 사용자 그룹들의 수를 결정할 수 있다.
동작 S2680에서, 서버는 식별된 유사도 값이 기 설정된 제3 임계치보다 작은 경우, 복수의 사용자 그룹들의 수가 유지되도록 결정할 수 있다.
동작 S2690에서, 서버는 조정된 복수의 사용자 그룹들의 수로 복수의 사용자 및 사용자를 재군집화할 수 있다.
본 개시의 일 실시예에 따르면, 서버는 조정된 복수의 사용자 그룹들의 수, 사용자 피드백 벡터, 복수의 사용자들의 피드백 정보에 기초하여, 복수의 사용자들 및 사용자를 재군집화할 수 있다. 구체적으로, 서버는 조정된 복수의 사용자 그룹들의 수, 사용자의 피드백 벡터, 복수의 사용자들의 피드백 정보에 기초하여, 사용자의 사용자 임베딩 벡터, 복수의 사용자들의 사용자 임베딩 벡터들 및 복수의 콘텐트들의 콘텐트 임베딩 벡터들을 재생성할 수 있다. 또한, 생성된 사용자의 사용자 임베딩 벡터, 재생성된 복수의 사용자들의 사용자 임베딩 벡터들 및 복수의 콘텐트들의 콘텐트 임베딩 벡터들에 기초하여, 복수의 사용자 및 사용자를 재군집화할 수 있다. 예를 들어, 서버는 주성분 분석 또는 k-평균 군집화 중 적어도 하나에 기초하여 복수의 사용자 및 사용자를 재군집화할 수 있다.
도 17은 본 개시의 일 실시예에 따른 도 16에서의 복수개의 사용자 그룹들의 수를 줄이는 경우, 조정된 사용자 그룹들의 수로 복수의 사용자 및 사용자를 재군집화하는 예시를 나타내는 도면이다.
본 개시의 일 실시예에 따르면, 그래프(2700)는 복수의 사용자들의 사용자 임베딩 벡터들로 구성된 임베딩 공간을 나타낼 수 있고, 그래프(2700)의 x축은 피처 1(2701)이고, 그래프(2700)의 y축이 피처 2(2702)일 수 있다.
본 개시의 일 실시예에 따르면, 동작 S2670에 의해, 복수개의 사용자 그룹들의 수를 3개에서 2개로 조정할 수 있다. 예를 들어, 그룹 1(2710)에는 사용자 1(2711), 사용자 2(2712), 사용자 3(2713), 사용자 4(2714), 사용자 5(2715), 사용자 6(2716), 사용자 7(2717), 사용자 8(2718), 사용자 9(2719) 및 사용자 10(2720)가 포함될 수 있다. 또한, 예를 들어 그룹 2(2730)에는 사용자 11(2731), 사용자 12(2732), 사용자 13(2733), 사용자 14(2734)및 사용자(2740)가 포함될 수 있다. 복수의 사용자 그룹들은 그룹 1(2710) 및 그룹 2(2730)로 재군집화 될 수 있고, 사용자(2740)는 콘텐트 추천의 대상이 되는 사용자일 수 있다.
도 18은 본 개시의 일 실시예에 따른 도 16에서의 복수개의 사용자 그룹들의 수를 유지하는 경우, 복수의 사용자 및 사용자를 재군집화하는 예시를 나타내는 도면이다.
본 개시의 일 실시예에 따르면, 그래프(2800)는 복수의 사용자들의 사용자 임베딩 벡터들로 구성된 임베딩 공간을 나타낼 수 있고, 그래프(2800)의 x축은 피처 1(2801)이고, 그래프(2800)의 y축이 피처 2(2802)일 수 있다.
본 개시의 일 실시예에 따르면, 동작 S2680에 의해, 복수개의 사용자 그룹들의 수를 3개로 유지할 수 있다. 예를 들어, 그룹 1(2810)에는 사용자 1(2811), 사용자 2(2812), 사용자 3(2813), 사용자 4(2814) 및 사용자(2820)가 포함될 수 있다. 또한, 예를 들어, 그룹 2(2830)에는 사용자 5(2831), 사용자 6(2832), 사용자 7(2833), 사용자 8(2834) 및 사용자 9(2835)가 포함될 수 있다. 또한, 예를 들어, 그룹 3(2850)에는 사용자 10(2851), 사용자 11(2852), 사용자 12(2853), 사용자 13(2854) 및 사용자 14(2855)가 포함될 수 있다. 예를 들어, 복수의 사용자 그룹들은 그룹 1(2810), 그룹 2(2830) 및 그룹 3(2850)으로 재군집화 될 수 있고, 사용자(2820)는 콘텐트 추천의 대상이 되는 사용자일 수 있다.
도 19는 본 개시의 일 실시예에 따른 도 16에서의 복수개의 사용자 그룹들의 수를 늘리는 경우, 조정된 사용자 그룹들의 수로 복수의 사용자 및 사용자를 재군집화하는 예시를 나타내는 도면이다.
본 개시의 일 실시예에 따르면, 그래프(2900)는 복수의 사용자들의 사용자 임베딩 벡터들로 구성된 임베딩 공간을 나타낼 수 있고, 그래프(2900)의 x축은 피처 1(2901)이고, 그래프(2900)의 y축이 피처 2(2902)일 수 있다.
본 개시의 일 실시예에 따르면, 동작 S2660에 의해, 복수개의 사용자 그룹들의 수를 3개에서 4개로 조정할 수 있다. 예를 들어, 그룹 1(2910)에는 사용자 1(2911), 사용자 2(2912), 사용자 3(2913), 사용자 4(2914) 및 사용자(2920)가 포함될 수 있다. 또한, 예를 들어, 그룹 2(2930)에는 사용자 5(2931), 사용자 6(2932) 및 사용자 7(2933)가 포함될 수 있다. 또한, 예를 들어, 그룹 3(2950)에는 사용자 8(2951), 사용자 9(2952) 및 사용자 10(2953)가 포함될 수 있다. 또한, 예를 들어, 그룹 4(2970)에는 사용자 11(2971), 사용자 12(2972), 사용자 13(2973) 및 사용자 14(2974)가 포함될 수 있다. 복수의 사용자 그룹들은 그룹 1(2910), 그룹 2(2930), 그룹 3(2950) 및 그룹 4(2970)로 재군집화 될 수 있고, 사용자(2920)는 콘텐트 추천의 대상이 되는 사용자일 수 있다.
도 20은 본 개시의 일 실시예에 따른 복수의 사용자 그룹들 각각에 속하는 적어도 하나의 사용자들에 대한 사용자 임베딩 벡터들 사이의 유클리드 거리들에 기초하여, 복수개의 사용자 그룹들의 수를 조정할지 여부를 결정하고, 복수개의 사용자 그룹들의 수를 조정하는 경우, 조정된 사용자 그룹들의 수로 복수의 사용자 및 사용자를 재군집화하는 방법에 대한 흐름도이다.
본 개시의 일 실시예에 따르면, 서버는 복수의 사용자 그룹들 각각에 속하는 적어도 하나의 사용자들에 대한 사용자 임베딩 벡터들 사이의 유클리드 거리들 및 기 설정된 제4 임계치에 비교하여, 복수개의 사용자 그룹들의 수를 조정할 수 있다. 구체적으로, 복수개의 사용자 그룹들 중 임의의 사용자 그룹에 대하여, 임의의 사용자 그룹에 속하는 사용자 1 및 사용자 2 사이의 임베딩 공간 상에서의 거리가 임계치 이상인 경우, 서버는 사용자 1 및 사용자 2가 동일한 사용자 그룹에 속하는 것이 적절하지 않은 바, 복수개의 사용자 그룹들의 수가 증가되도록 조정할 수 있다.
동작 S3010에서, 서버는 복수의 사용자 그룹들 각각에 속하는 적어도 하나의 사용자들에 대한 사용자 임베딩 벡터들 사이의 유클리드 거리들에 기초하여, 복수의 사용자 그룹들의 최대 거리들을 결정할 수 있다.
본 개시의 일 실시예에 따르면, 서버는 복수의 사용자 그룹들 각각에 속하는 적어도 하나의 사용자들에 대한 사용자 임베딩 벡터들 사이의 유클리드 거리들을 계산할 수 있다. 구체적으로, 서버는 임베딩 공간 상에서 복수의 사용자들 사이의 위치가 가까울수록, 복수의 사용자들 간의 콘텐트에 대한 선호도가 유사하다고 결정할 수 있다. 또한, 계산된 복수의 사용자 그룹들 각각에 속하는 적어도 하나의 사용자들에 대한 사용자 임베딩 벡터들 사이의 유클리드 거리들에 기초하여, 복수의 사용자 그룹들의 최대 거리들을 결정할 수 있다. 예를 들어, 복수의 사용자 그룹들 중 제1 그룹에 대하여, 서버는 제1 그룹에 속하는 적어도 하나의 사용자들에 대한 사용자 임베딩 벡터들 사이의 유클리드 거리들 중 유클리드 거리가 가장 먼 사용자 1 및 사용자 2를 선택할 수 있다. 또한, 예를 들어, 사용자 1의 사용자 임베딩 벡터 및 사용자 2의 사용자 임베딩 벡터 사이의 유클리드 거리를 제1 그룹의 최대 거리로 결정할 수 있지만, 이에 한정되는 것은 아니다.
동작 S3020에서, 서버는 모든 복수의 사용자 그룹들의 최대 거리들 및 제4 임계치를 비교하여, 복수의 사용자 그룹들의 수를 조정할지 여부를 결정할 수 있다.
본 개시의 일 실시예에 따르면, 서버는 모든 복수의 사용자 그룹들의 최대 거리들 및 제4 임계치를 비교하여, 복수의 사용자 그룹들의 수를 조정할지 여부를 결정할 수 있고, 제4 임계치는 복수의 사용자 그룹들의 수, 메모리 크기, 추천 콘텐트를 제공하기까지의 소요 시간 등을 고려하여 기 결정된 값일 수 있다. 예를 들어, 모든 복수의 사용자 그룹들의 최대 거리들이 제4 임계치 이하인 경우, 서버는 복수의 사용자 그룹들의 수가 유지되도록 결정할 수 있다(동작 S3040). 또한, 예를 들어, 모든 복수의 사용자 그룹들의 최대 거리들 중 적어도 하나의 최대 거리가 제4 임계치보다 큰 경우, 서버는 복수의 사용자 그룹들의 수가 증가되도록 조정할 수 있다(동작 S3030).
동작 S3030에서, 서버는 모든 복수의 사용자 그룹들의 최대 거리들 중 적어도 하나의 최대 거리가 제4 임계치보다 큰 경우, 복수의 사용자 그룹들의 수가 증가되도록 조정할 수 있다.
동작 S3040에서, 서버는 모든 복수의 사용자 그룹들의 최대 거리들이 제4 임계치 이하인 경우, 서버는 복수의 사용자 그룹들의 수가 유지되도록 결정할 수 있다.
동작 S3050에서, 서버는 조정된 사용자 그룹들의 수로 서버 내의 사용자 및 새로운 사용자를 재군집화할 수 있다.
본 개시의 일 실시예에 따르면, 서버는 조정된 복수의 사용자 그룹들의 수, 사용자 피드백 벡터, 복수의 사용자들의 피드백 정보에 기초하여, 복수의 사용자들 및 사용자를 재군집화할 수 있다. 구체적으로, 서버는 조정된 복수의 사용자 그룹들의 수, 사용자의 피드백 벡터, 복수의 사용자들의 피드백 정보에 기초하여, 사용자의 사용자 임베딩 벡터, 복수의 사용자들의 사용자 임베딩 벡터들 및 복수의 콘텐트들의 콘텐트 임베딩 벡터들을 재생성할 수 있다. 또한, 재생성된 사용자의 사용자 임베딩 벡터, 복수의 사용자들의 사용자 임베딩들에 기초하여, 서버내의 복수의 사용자 및 사용자를 재군집화할 수 있다. 예를 들어, 서버는 주성분 분석 또는 k-평균 군집화 중 적어도 하나에 기초하여 복수의 사용자 및 사용자를 재군집화할 수 있다.
도 21는 본 개시의 일 실시예에 따른 서버를 설명하기 위한 블록도이다.
도 21을 참조하면, 서버(3100)는 통신 인터페이스(3110), 프로세서(3120) 및 메모리(3130)를 포함하며, 메모리(3130)는 사용자 피드백 벡터 획득 모듈(3131), 피드백 정보 획득 모듈(3132), 임베딩 벡터 생성 모듈(3133), 군집화 모듈(3134), 중심 사용자 결정 모듈(3135), 인공 신경망 모델(3136), 선호도 벡터 획득 모듈(3137), 추천 콘텐트 결정 모듈(3138), 사용자 피드백 데이터 DB(3139) 및 그룹 수 조정 모듈(3140)을 포함할 수 있다.
도 21을 참조하면, 디바이스(3200)는 디스플레이부(3210), 통신 인터페이스부(3220), 프로세서(3230) 및 메모리(3240)을 포함할 수 있다.
사용자의 복수의 콘텐트들에 대한 선호도에 관련된 행동, 반응 및 동작은 디바이스(3200)의 사용자 입력부(미도시)를 통해 입력될 수 있다. 구체적으로, 디스플레이부(3210)는 터치 스크린일 수 있고, 터치 스크린은 입력부로도 이용될 수 있다. 예를 들어, 사용자가 터치 스크린을 통해 복수의 콘텐트들을 클릭하거나 스크롤하는 행동은 사용자의 복수의 콘텐트들에 대한 행동, 반응일 수 있다.
디바이스(3200)는 복수의 사용자들의 디바이스들일 수 있고, 복수의 사용자들의 복수의 콘텐트들에 대한 선호도에 관련된 행동, 반응 및 동작에 대한 이력 혹은 데이터를 복수의 사용자들의 디바이스들의 통신 인터페이스부(3220)을 통하여 서버(3100)로 송신할 수 있다. 예를 들어, 도 1의 사용자 1(1001)의 복수의 콘텐트들에 대한 행동, 반응 또는 동작에 대한 데이터는 사용자 1(1001)의 디바이스를 통하여 서버(3100)로 송신될 수 있고, 도 2의 사용자 2(1002) 및 사용자 3(1003)의 복수의 콘텐트들에 대한 행동, 반응 또는 동작에 대한 데이터도 사용자 2(1002)의 디바이스 및 사용자 3(1003)의 디바이스를 통하여 서버(3100)로 송신될 수 있다. 또한 디바이스(3200)는 콘텐트 추천의 대상이 되는 사용자(예를 들어, 도 1의 사용자(1004))의 디바이스일 수도 있다. 또한, 사용자의 복수의 콘텐트들에 대한 선호도에 관련된 행동, 반응 및 동작은 프로세서(3230)에 의해 업데이트될 수 있고, 메모리(3240)에 저장된 후, 주기적으로 서버(3100)로 전송될 수 있다. 예를 들어, 프로세서(3230)를 통한 업데이트에 의하여, 사용자의 복수의 콘텐트들에 대한 평점을 매기는 행위 또한 사용자의 복수의 콘텐트들에 대한 선호도에 관련된 행동, 반응 및 동작에 포함될 수 있다. 또한, 예를 들어, 사용자의 복수의 콘텐트들에 대한 선호도에 관련된 행동, 반응 및 동작이 기 설정된 일정한 시간 동안 메모리(3240)에 저장된 후, 주기적으로 서버(3100)로 전송될 수 있다.
디바이스(3200)는 스마트폰, 태블릿 PC, PC, 스마트 TV, 휴대폰, PDA(personal digital assistant), 랩톱, 미디어 플레이어, 마이크로 서버, GPS(global positioning system) 장치, 전자책 단말기, 디지털방송용 단말기, 네비게이션, 키오스크, MP3 플레이어, 디지털 카메라, 가전기기 및 기타 모바일 또는 비모바일 컴퓨팅 장치일 수 있으나, 이에 제한되지 않는다. 디바이스(3200)는 통신 기능 및 데이터 프로세싱 기능을 구비한 시계, 안경, 헤어 밴드 및 반지 등의 웨어러블 디바이스일 수 있다
또한, 디바이스(3200) 및 서버(3100)을 통신 연결하는 네트워크는 근거리 통신망(Local Area Network; LAN), 광역 통신망(Wide Area Network; WAN) 또는 부가가치 통신망(Value Added Network; VAN) 등과 같은 유선 네트워크나 이동 통신망(mobile radio communication network) 또는 위성 통신망 등과 같은 모든 종류의 무선 네트워크로 구현될 수 있다. 또한, 네트워크는 근거리 통신망(Local Area Network; LAN), 광역 통신망(Wide Area Network; WAN), 부가가치 통신망(Value Added Network; VAN), 이동 통신망(mobile radio communication network) 또는 위성 통신망 중 적어도 둘 이상의 상호 조합을 포함할 수 있으며, 도 21에 도시된 각 네트워크 구성 주체가 서로 원활하게 통신을 할 수 있도록 하는 포괄적인 의미의 데이터 통신망이며, 유선 인터넷, 무선 인터넷 및 모바일 무선 통신망을 포함한다. 무선 통신은 예를 들어, 무선 랜(Wi-Fi), 블루투스, 블루투스 저 에너지(Bluetooth low energy), 지그비, WFD(Wi-Fi Direct), UWB(ultra wideband), 적외선 통신(IrDA, infrared Data Association), NFC(Near Field Communication) 등이 있을 수 있으나, 이에 한정되는 것은 아니다.
통신 인터페이스(3110)는, 디바이스(3200)와의 통신을 위한 하나 이상의 구성 요소를 포함할 수 있다. 통신 인터페이스(3110)는 사용자에게 맞춤형 추천 콘텐트를 제공하기 위해 필요한 정보를 디바이스(3200)와 송수신할 수 있다.
또한, 통신 인터페이스(3110)는 사용자에게 맞춤형 추천 콘텐트를 제공하기 위해 다른 디바이스(미도시) 및 다른 서버(미도시)와 통신할 수 있다. 예를 들어, 통신 인터페이스(3110)는, 근거리 통신부, 이동 통신부 및 방송 수신부를 포함할 수 있다. 근거리 통신부(short-range wireless communication unit) 는, 블루투스 통신부, BLE(Bluetooth Low Energy) 통신부, 근거리 무선 통신부(Near Field Communication unit), WLAN(와이파이) 통신부, 지그비(Zigbee) 통신부, 적외선(IrDA, infrared Data Association) 통신부, WFD(Wi-Fi Direct) 통신부, UWB(ultra wideband) 통신부, Ant+ 통신부 등을 포함할 수 있으나, 이에 한정되는 것은 아니다. 이동 통신부는, 이동 통신망 상에서 기지국, 외부의 단말, 서버 중 적어도 하나와 무선 신호를 송수신한다. 여기에서, 무선 신호는, 음성 호 신호, 화상 통화 호 신호 또는 문자/멀티미디어 메시지 송수신에 따른 다양한 형태의 데이터를 포함할 수 있다. 방송 수신부는, 방송 채널을 통하여 외부로부터 방송 신호 및/또는 방송 관련된 정보를 수신한다. 방송 채널은 위성 채널, 지상파 채널을 포함할 수 있다.
프로세서(3120)는 서버(3100)의 전반적인 동작을 제어한다. 예를 들어, 프로세서(3120)는, 후술할 메모리(3130)에 저장된 프로그램들을 실행함으로써, 본 명세서에서의 추천 콘텐트를 하기 위한 서버(3100)의 기능을 제어할 수 있다.
메모리(3130)는 프로세서(3120)의 처리 및 제어를 위한 프로그램을 저장할 수 있다. 메모리(3130)는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(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), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다.
메모리(3130)에 저장된 프로그램들은 그 기능에 따라 복수 개의 모듈들로 분류할 수 있는데, 예를 들어, 메모리(3130)에는 사용자 피드백 벡터 획득 모듈(3131), 피드백 정보 획득 모듈(3132), 임베딩 벡터 생성 모듈(3133), 군집화 모듈(3134), 중심 사용자 결정 모듈(3135), 인공 신경망 모델(3136), 선호도 벡터 획득 모듈(3137), 추천 콘텐트 결정 모듈(3138), 사용자 피드백 데이터 DB(3139) 및 그룹 수 조정 모듈(3140)이 포함될 수 있다.
사용자 피드백 벡터 획득 모듈(3131)은 추천의 대상이 되는 사용자의 피드백 벡터 또한 획득할 수 있다. 구체적으로, 사용자의 디바이스로부터 수신된 콘텐트 추천 요청에 따라 추천의 대상이 되는 사용자의 피드백 벡터 또한 획득할 수 있다. 예를 들어, 콘텐트 추천 요청은 사용자의 디바이스(3200)의 디스플레이부(3210)에 콘텐트 추천 요청 여부를 선택하는 창이 팝업(pop-up)될 수도 있다. 또한, 예를 들어, 사용자가 콘텐트 추천과 관련된 애플리케이션, 웹 페이지 등에 접속하는 경우, 자동으로 콘텐트 추천 요청이 서버(3100)로 전송될 수 있다. 콘텐트 추천 요청과 함께 사용자의 복수의 콘텐트들에 대한 선호도에 관련된 행동, 반응 및 동작은 서버(3100)로 전송될 수 있고, 사용자의 복수의 콘텐트들에 대한 선호도에 관련된 행동, 반응 및 동작에 기초하여 사용자 피드백 벡터 획득 모듈(3131)은 추천의 대상이 되는 사용자의 피드백 벡터 또한 획득할 수 있다.
피드백 정보 획득 모듈(3132)은 디바이스(3200)로부터 복수의 사용자들의 복수의 콘텐트들에 대한 선호도에 관련된 행동, 반응 및 동작을 획득하고, 복수의 사용자들의 복수의 콘텐트들 중 적어도 하나에 대한 선호도를 나타내는 피드백 정보를 생성 또는 획득할 수 있다. 본 명세서에서, 피드백 정보는 복수의 사용자들의 복수의 콘텐트들에 대한 선호도를 나타내는 복수의 피드백 벡터들을 포함할 수 있고, 피드백 벡터는 복수의 콘텐트들 중 적어도 하나에 대한 사용자의 선호도를 나타내는 벡터일 수 있다.
구체적으로, 복수의 사용자들의 피드백 벡터들은 콘텐트 추천 요청이 있기 전에, 기 생성되어 사용자 피드백 벡터 획득 모듈(3131)에 저장되어 있을 수도 있다. 또한, 예를 들어, 콘텐트 추천 요청이 있는 경우, 사용자 피드백 벡터 획득 모듈(3131)은 가장 최신의 복수의 사용자들의 복수의 콘텐트들에 대한 선호도에 관련된 행동, 반응 및 동작에 기초하여 복수의 피드백 벡터들을 생성할 수 있다.
임베딩 벡터 생성 모듈(3133)은 사용자 피드백 벡터 획득 모듈(3131)에서 생성된 피드백 정보에 기초하여, 복수의 사용자들에 대한 사용자 임베딩 벡터들 및 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들을 생성할 수 있다. 임베딩 벡터 생성 모듈(3133)은 행렬 분해(Matrix Factorization), 특정 아키텍처(architecture)로 구성된 인공 신경망 모델을 통한 학습 또는 원-핫 인코딩(one-hot encoding)에 기초한 임베딩 벡터 생성 방법 등을 통해 복수의 사용자들에 대한 사용자 임베딩 벡터들 및 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들을 생성할 수 있고, 이에 한정되는 것은 아니다.
또한, 구체적으로, 복수의 사용자들에 대한 사용자 임베딩 벡터들 및 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들은 콘텐트 추천 요청이 있기 전에, 기 생성되어 임베딩 벡터 생성 모듈(3133)에 저장되어 있을 수도 있다. 또한, 예를 들어, 콘텐트 추천 요청이 있는 경우, 임베딩 벡터 생성 모듈(3133)은 가장 최신의 복수의 사용자들의 복수의 콘텐트들에 대한 선호도에 관련된 행동, 반응 및 동작에 기초하여 복수의 사용자들에 대한 사용자 임베딩 벡터들 및 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들을 생성할 수 있다.
군집화 모듈(3134)은 복수의 사용자들에 대한 사용자 임베딩 벡터들에 기초하여, 복수의 사용자들을 군집화할 수 있다. 구체적으로, 복수의 사용자 그룹들의 수는 군집화 모듈(3134)에 저장되어 있을 수 있고, 복수의 사용자 그룹들의 수 및 복수의 사용자들에 대한 사용자 임베딩 벡터들에 기초하여, 복수의 사용자들을 군집화할 수 있다. 예를 들어, 군집화 모듈(3134)은 복수의 사용자들에 대한 사용자 임베딩 벡터들 사이의 유클리드 거리에 기초하여 복수의 사용자들의 그룹들을 결정할 수 있다. 또한, 예를 들어, 군집화 모듈(3134)은 k-평균 군집화에 기초하여, 복수의 사용자들을 기 설정된 복수의 사용자 그룹들의 수의 복수의 사용자 그룹들을 그룹화할 수 있다. 그룹화된 복수의 사용자들에 대한 정보는 군집화 모듈(3134)에 저장되어 있을 수 있다.
또한, 구체적으로, 콘텐트 추천 요청이 있기 전에, 복수의 사용자들에 대한 사용자 임베딩 벡터들은 기 생성되어 있을 수 있고, 기 생성된 복수의 사용자들에 대한 사용자 임베딩 벡터들에 기초하여 복수의 사용자들을 그룹화할 수 있다. 또한, 예를 들어, 콘텐트 추천 요청이 있는 경우, 임베딩 벡터 생성 모듈(3133)가장 최신의 복수의 사용자들의 복수의 콘텐트들에 대한 선호도에 관련된 행동, 반응 및 동작에 기초하여 복수의 사용자들에 대한 사용자 임베딩 벡터들을 생성할 수 있고, 군집화 모듈(3134)은 생성된 복수의 사용자들에 대한 사용자 임베딩 벡터들에 기초하여 복수의 사용자들을 그룹화할 수 있다.
중심 사용자 결정 모듈(3135)은 복수의 사용자들에 대한 사용자 임베딩 벡터들에 기초하여, 복수의 사용자 그룹들에 대응되는 복수의 사용자 그룹들의 중심 사용자들을 결정할 수 있다. 구체적으로, 결정된 복수의 사용자 그룹들 각각에 속하는 적어도 하나의 사용자들에 대한 사용자 임베딩 벡터들 사이의 유클리드 거리들에 기초하여, 복수의 사용자 그룹들의 중심 사용자들을 결정할 수 있다. 또한, 복수의 사용자 그룹들의 중심 사용자들은 중심 사용자 결정 모듈(3135)에 저장되어 있을 수 있다.
또한, 구체적으로, 콘텐트 추천 요청이 있는 경우, 중심 사용자 결정 모듈(3135)은 가장 최신의 복수의 사용자들의 복수의 콘텐트들에 대한 선호도에 관련된 행동, 반응 및 동작에 기초하여, 복수의 사용자 그룹들에 대응되는 복수의 사용자 그룹들의 중심 사용자들을 결정할 수 있다. 또한, 최신의 복수의 사용자들의 복수의 콘텐트들에 대한 선호도에 관련된 행동, 반응 및 동작에 기초하여, 복수의 사용자 그룹들에 대응되는 복수의 사용자 그룹들의 중심 사용자들을 결정하는 경우, 1)추천의 대상이 되는 사용자에게 콘텐트를 추천하기까지의 소요 시간은 길어질 수 있지만, 2) 최신의 복수의 사용자들의 복수의 콘텐트들에 대한 선호도에 관련된 행동, 반응 및 동작에 대한 데이터를 사용한 바, 더 적절한 맞춤형 추천 콘텐트를 제공할 수도 있다.
인공 신경망 모델(3136)은 사용자의 콘텐트에 대한 선호도를 예측하기 위한 인공 신경망 모델일 수 있다. 인공 신경망 모델(3136)의 학습 데이터는 복수의 사용자들에 대한 사용자 임베딩 벡터들 및 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들일 수 있다. 또한, 인공 신경망 모델은 GMF 모델, MLP 모델 및 NeuMF 모델 중 적어도 하나를 포함하는 인공 신경망 모델일 수 있다. 또한, 인공 신경망 모델(3136)은 복수의 사용자들에 대한 사용자 임베딩 벡터들 및 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들이 생성되는 경우, 주기적으로 학습되는 인공 신경망 모델일 수 있다. 또한, 예를 들어, 새로운 사용자에게 적어도 하나의 콘텐트들을 추천한 후, 새로운 사용자의 사용자 임베딩 벡터는 인공 신경망 모델(3136)의 학습 데이터로 사용될 수 있다.
선호도 벡터 획득 모듈(3137)은 인공 신경망 모델에 입력된 중심 사용자들에 대한 사용자 임베딩 벡터들 및 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들에 기초하여, 복수의 콘텐트들에 대한 중심 사용자들의 예측된 선호도를 나타내는 중심 사용자들의 선호도 벡터들을 생성할 수 있다. 예를 들어, 중심 사용자1의 선호도 벡터는 중심 사용자1의 복수의 콘텐트들에 대한 예측된 선호도를 나타낼 수 있고, 중심 사용자1의 선호도 벡터 첫번째 요소 값이 두번째 요소 값보다 큰 경우, 프로세서(3120)는 중심 사용자1가 콘텐트 2보다 콘텐트 1을 더 선호할 것으로 예측할 수 있다.
추천 콘텐트 결정 모듈(3138)은 선호도 벡터 획득 모듈(3137)에서 획득된 중심 사용자들의 선호도 벡터들에 기초하여, 추천될 적어도 하나의 추천 콘텐트들을 결정할 수 있다.
구체적으로, 추천 콘텐트 결정 모듈(3138)은 중심 사용자들의 선호도 벡터들 및 사용 피드백 획득 모듈(3131)에 저장된 사용자의 피드백 벡터에 기초하여, 콘텐트의 추천에 이용될 중심 사용자를 선택할 수 있다. 예를 들어, 선호도 벡터들 중 추천의 대상이 되는 사용자의 피드백 벡터 및 중심 사용자들의 선호도 벡터들 사이의 내적 혹은 차이 값에 기초하여, 콘텐트의 추천에 이용될 중심 사용자를 선택할 수 있다. 예를 들어. 사용자의 피드백 벡터 및 중심 사용자들의 선호도 벡터들 사이의 내적을 계산하고, 내적 값이 가장 큰 중심 사용자를 콘텐트의 추천에 이용될 중심 사용자로 선택할 수 있다.
또한, 구체적으로, 중심 사용자들의 선호도 벡터들 중에서 선택된 중심 사용자의 선호도 벡터를 추출하고, 사용자에게 추천할 적어도 하나의 추천 콘텐트를 결정할 수 있다. 예를 들어, 사용자에게 추천할 컨텐츠의 개수는 기 설정되어, 추천 콘텐트 결정 모듈(3138)에 저장되어 있을 수 있다. 또한, 사용자에게 추천할 적어도 하나의 추천 콘텐트들은 선택된 중심 사용자의 선호도 벡터에서 요소의 값이 큰 기 저장된 사용자에게 추천할 컨텐츠의 개수에 따라 선택될 수 있다.
사용자 피드백 데이터 DB(3139)는 복수의 사용자들의 복수의 콘텐트들에 대한 선호도에 관련된 행동, 반응 또는 동작에 대한 이력 혹은 데이터를 저장할 수 있다. 예를 들어, 서버(3100)의 통신 인터페이스(3110)는 디바이스(3200)의 통신 인터페이스(3220)로부터 복수의 사용자들의 복수의 콘텐트들에 대한 선호도에 관련된 행동, 반응 또는 동작에 대한 이력 혹은 데이터를 수신할 수 있고, 수신된 복수의 사용자들의 복수의 콘텐트들에 대한 선호도에 관련된 행동, 반응 또는 동작에 대한 이력 혹은 데이터는 사용자 피드백 데이터 DB(3139)에 저장될 수 있다. 또한, 피드백 정보 획득 모듈(3132)은 사용자 피드백 데이터 DB(3139)로부터 복수의 사용자들의 복수의 콘텐트들에 대한 선호도에 관련된 행동, 반응 또는 동작에 대한 이력 혹은 데이터를 획득하여, 피드백 정보를 획득할 수 있다.
그룹 수 조정 모듈(3140)은 추천 콘텐트 결정 모듈(3138)에서 선택된 중심 사용자의 선호도 벡터 및 콘텐트 추천의 대상인 사용자의 피드백 벡터에 기초하여, 복수의 사용자 그룹들의 수를 조정할 수 있다.
구체적으로, 그룹 수 조정 모듈(3140)은 추천 콘텐트 결정 모듈(3138)에서 선택된 중심 사용자의 선호도 벡터 및 콘텐트 추천의 대상인 사용자의 피드백 벡터가 유사한 정도를 고려하여, 복수의 사용자 그룹들의 수를 조정할 수 있다. 예를 들어, 그룹 수 조정 모듈(3140)은 추천 콘텐트 결정 모듈(3138)에서 선택된 중심 사용자의 선호도 벡터 및 콘텐트 추천의 대상인 사용자의 피드백 벡터의 유사도 값을 계산하고, 계산된 유사도 값이 그룹 수 조정 모듈(3140)에 기 저장된 임계 유사도 값과 비교할 수 있다. 그룹 수 조정 모듈(3140)은 계산된 유사도 값이 기 저장된 임계 유사도 값보다 큰 경우, 복수의 사용자 그룹들의 수를 줄이고, 계산된 유사도 값이 기 저장된 임계 유사도 값보다 작은 경우, 복수의 사용자 그룹들의 수를 늘릴 수 있다.
또한, 구체적으로, 그룹 수 조정 모듈(3140)은 복수의 사용자 그룹들 각각에 속하는 적어도 하나의 사용자들에 대한 사용자 임베딩 벡터들 사이의 유클리드 거리들 및 기 설정된 임계치에 비교하여, 복수개의 사용자 그룹들의 수를 조정할 수 있다. 예를 들어, 복수개의 사용자 그룹들 중 임의의 사용자 그룹에 대하여, 임의의 사용자 그룹에 속하는 사용자 1 및 사용자 2 사이의 임베딩 공간 상에서의 거리가 임계치 이상인 경우, 그룹 수 조정 모듈(3140)은사용자 1 및 사용자 2가 동일한 사용자 그룹에 속하는 것이 적절하지 않은 바, 복수개의 사용자 그룹들의 수가 증가되도록 조정할 수 있다.
일 실시예에서, 서버가 사용자에게 콘텐트를 추천하는 방법을 제공할 수 있다. 상기 방법은 상기 사용자의 디바이스로부터 수신된 콘텐트 추천 요청에 기초하여, 복수의 콘텐트들 중 적어도 하나에 대한 상기 사용자의 피드백 벡터를 획득하는 동작을 포함할 수 있다. 상기 방법은 복수의 사용자들이 이용한 상기 복수의 콘텐트들에 관한 피드백 정보를 획득하는 동작을 포함할 수 있다. 상기 방법은 상기 피드백 정보에 기초하여, 상기 복수의 사용자들에 대한 사용자 임베딩 벡터들 및 상기 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들을 생성하는 동작을 포함할 수 있다. 상기 방법은 상기 복수의 사용자들에 대한 사용자 임베딩 벡터들에 기초하여, 상기 복수의 사용자들을 군집화함으로써 복수의 사용자 그룹들 및 상기 복수의 사용자 그룹들의 중심 사용자들을 결정하는 동작을 포함할 수 있다. 상기 방법은 상기 중심 사용자들에 대한 사용자 임베딩 벡터들 및 상기 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들을, 사용자의 콘텐트에 대한 선호도를 예측(estimation)하기 위한 인공 신경망 모델에 입력하는 동작을 포함할 수 있다. 상기 방법은 상기 인공 신경망 모델에 의해 출력되는, 상기 복수의 콘텐트들에 대한 상기 중심 사용자들의 예측된 선호도를 나타내는 상기 중심 사용자들의 선호도 벡터들을 획득하는 동작을 포함할 수 있다. 상기 방법은 상기 사용자의 피드백 벡터 및 상기 중심 사용자들의 선호도 벡터들에 기초하여, 상기 사용자에게 추천될 적어도 하나의 추천 콘텐트를 결정하는 동작을 포함할 수 있다. 상기 방법은 상기 결정된 적어도 하나의 콘텐트를 상기 사용자에게 추천하는 동작을 포함할 수 있다.
일 실시예에서, 상기 사용자의 피드백 벡터는 상기 복수의 콘텐트들 중 적어도 하나에 대한 상기 사용자의 선호도를 나타내는 벡터이고, 상기 피드백 정보는 상기 복수의 사용자들의 상기 복수의 콘텐트들에 대한 선호도를 나타내는 복수의 피드백 벡터들을 포함할 수 있다.
일 실시예에서, 상기 방법은 기 설정된 기준에 따라, 상기 피드백 정보와 기 설정된 제1 임계치 이하의 에러를 가지는 상기 복수의 사용자들에 대한 사용자 임베딩 벡터들 및 상기 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들을 생성하는 동작을 포함할 수 있다.
일 실시에에서, 상기 방법은, 기 설정된 복수의 사용자 그룹들의 수 및 상기 복수의 사용자들에 대한 사용자 임베딩 벡터들 사이의 유클리드 거리(Euclidean distance)들에 기초하여, 상기 복수의 사용자 그룹들을 결정하는 동작을 포함할 수 있다. 상기 방법은 상기 결정된 복수의 사용자 그룹들 각각에 속하는 적어도 하나의 사용자들에 대한 사용자 임베딩 벡터들 사이의 유클리드 거리들에 기초하여, 상기 복수의 사용자 그룹들의 중심 사용자들을 결정하는 동작을 포함할 수 있다.
일 실시예에서, 상기 방법은, 상기 사용자의 피드백 벡터 및 상기 중심 사용자들의 선호도 벡터들에 기초하여, 상기 중심 사용자들 중에서 중심 사용자를 선택할 수 있다. 상기 방법은, 상기 중심 사용자들의 선호도 벡터들 중에서 상기 선택된 중심 사용자의 선호도 벡터를 추출할 수 있다. 상기 방법은 상기 추출된 선호도 벡터에 기초하여, 상기 적어도 하나의 추천 콘텐트를 결정하는 동작을 포함할 수 있다.
일 실시예에서, 상기 방법은, 상기 사용자의 피드백 벡터 및 상기 중심 사용자들의 선호도 벡터들에 기초하여, 상기 중심 사용자들의 상기 복수의 콘텐트들에 대한 예측된 선호도 및 상기 사용자의 상기 복수의 콘텐트들에 대한 선호도 사이의 유사도 값들을 결정하는 동작을 포함할 수 있다. 상기 방법은, 상기 결정된 유사도 값들에 기초하여, 상기 복수의 사용자 그룹들의 수를 조정하는 동작을 포함할 수 있다.
일 실시예에서, 상기 방법은, 상기 사용자의 피드백 벡터 및 상기 중심 사용자들의 선호도 벡터들에 기초하여, 상기 중심 사용자들 중에서 중심 사용자를 선택하는 동작을 포함할 수 있다. 상기 방법은, 상기 결정된 유사도 값들 중 상기 선택된 중심 사용자의 유사도 값을 식별하는 동작을 포함할 수 있다. 상기 방법은, 상기 식별된 유사도 값이 기 설정된 제2 임계치 이하인 것에 기초하여, 상기 복수의 사용자 그룹들의 수를 늘리는 동작을 포함할 수 있다.
일 실시예에서, 상기 방법은, 상기 사용자의 피드백 벡터 및 상기 중심 사용자들의 선호도 벡터들에 기초하여, 상기 중심 사용자들 중에서 중심 사용자를 선택하는 동작을 포함할 수 있다. 상기 방법은 상기 결정된 유사도 값들 중 상기 선택된 중심 사용자의 유사도 값을 식별하는 동작을 포함할 수 있다. 상기 방법은, 상기 식별된 유사도 값이 기 설정된 제3 임계치 이상인 것에 기초하여, 상기 복수의 사용자 그룹들의 수를 줄이는 동작을 포함할 수 있다.
일 실시예에서, 상기 방법은 상기 복수의 사용자 그룹들 각각에 속하는 적어도 하나의 사용자들에 대한 사용자 임베딩 벡터들 사이의 유클리드 거리들 및 기 설정된 제4 임계치에 비교하여, 상기 복수개의 사용자 그룹들의 수를 조정하는 동작을 포함할 수 있다.
일 실시예에서, 상기 인공 신경망 모델은 GMF (Generalized Matrix Factorization) 모델, MLP (Multi-Layer Perceptron) 모델 및 NeuMF (Neural Matrix Factorization) 모델 중 적어도 하나를 포함할 수 있다.
일 실시예에서, 상기 인공 신경망 모델은 상기 복수의 사용자들에 대한 사용자 임베딩 벡터들 및 상기 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들을 학습 데이터로 사용하여 훈련된 인공 신경망 모델일 수 있다.
일 실시예에서, 상기 방법은 상기 사용자의 피드백 벡터 및 상기 피드백 정보에 기초하여, 상기 사용자에 대한 사용자 임베딩 벡터를 생성하고, 상기 복수의 사용자들에 대한 사용자 임베딩 벡터들 및 상기 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들을 재생성하는 동작을 포함할 수 있다. 상기 방법은 상기 조정된 복수의 사용자 그룹들의 수에 기초하여, 상기 사용자 및 상기 복수의 사용자들을 재군집화하는 동작을 포함할 수 있다.
일 실시예에서, 사용자에게 콘텐트를 추천하기 위한 서버를 제공할 수 있다. 상기 서버는, 통신 인터페이스; 하나 이상의 인스트럭션을 저장하는 메모리; 및 상기 하나 이상의 인스트럭션을 실행하는 프로세서를 포함할 수 있다. 상기 프로세서는, 상기 사용자의 디바이스로부터 수신된 콘텐트 추천 요청에 기초하여, 복수의 콘텐트들 중 적어도 하나에 대한 상기 사용자의 피드백 벡터를 획득할 수 있다. 상기 프로세서는, 복수의 사용자들이 이용한 상기 복수의 콘텐트들에 관한 피드백 정보를 획득할 수 있다. 상기 프로세서는, 상기 피드백 정보에 기초하여, 상기 복수의 사용자들에 대한 사용자 임베딩 벡터들 및 상기 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들을 생성할 수 있다. 상기 프로세서는, 상기 복수의 사용자들에 대한 사용자 임베딩 벡터들에 기초하여, 상기 복수의 사용자들을 군집화함으로써 복수의 사용자 그룹들 및 상기 복수의 사용자 그룹들에 대응되는 상기 복수의 사용자 그룹들의 중심 사용자들을 결정할 수 있다. 상기 프로세서는, 상기 중심 사용자들에 대한 사용자 임베딩 벡터들 및 상기 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들을, 사용자의 콘텐트에 대한 선호도를 예측하기 위한 인공 신경망 모델에 입력할 수 있다. 상기 프로세서는, 상기 인공 신경망 모델에 의해 출력되는, 상기 복수의 콘텐트들에 대한 상기 중심 사용자들의 예측된 선호도를 나타내는 상기 중심 사용자들의 선호도 벡터들을 획득할 수 있다. 상기 프로세서는, 상기 사용자의 피드백 벡터 및 상기 중심 사용자들의 선호도 벡터들에 기초하여, 상기 사용자에게 추천될 적어도 하나의 추천 콘텐트를 결정할 수 있다. 상기 프로세서는, 상기 결정된 적어도 하나의 콘텐트를 상기 사용자에게 추천할 수 있다.
일 실시예에서, 상기 프로세서는 상기 저장된 하나 이상의 인스트럭션을 실행함으로써, 상기 사용자의 피드백 벡터 및 상기 중심 사용자들의 선호도 벡터들에 기초하여, 상기 콘텐트의 추천에 이용될 중심 사용자를 선택할 수 있다. 상기 프로세서는, 상기 중심 사용자들의 선호도 벡터들 중에서 상기 선택된 중심 사용자의 선호도 벡터를 추출할 수 있다. 상기 프로세서는 상기 추출된 선호 벡터에 기초하여, 상기 적어도 하나의 추천 콘텐트를 결정할 수 있다.
일 실시예에서, 상기 프로세서는 상기 저장된 하나 이상의 인스트럭션을 실행함으로써, 상기 사용자의 피드백 벡터 및 상기 중심 사용자들의 선호도 벡터들에 기초하여, 상기 중심 사용자들의 상기 복수의 콘텐트들에 대한 예측된 선호도 및 상기 사용자의 상기 복수의 콘텐트들에 대한 선호도 사이의 유사도 값들을 결정할 수 있다. 상기 프로세서는 상기 결정된 유사도 값들에 기초하여, 상기 복수의 사용자 그룹들의 수를 조정할 수 있다.
일 실시예에서, 상기 프로세서는, 상기 저장된 하나 이상의 인스트럭션을 실행함으로써, 상기 복수의 사용자 그룹들 각각에 속하는 적어도 하나의 사용자들에 대한 사용자 임베딩 벡터들 사이의 유클리드 거리들 및 기 설정된 제4 임계치에 기초하여, 상기 복수개의 사용자 그룹들의 수를 조정할 수 있다.
일 실시예에서, 상기 인공 신경망 모델은 GMF (Generalized Matrix Factorization) 모델, MLP (Multi-Layer Perceptron) 모델 및 NeuMF (Neural Matrix Factorization) 모델 중 적어도 하나를 포함할 수 있다.
일 실시예에서, 상기 인공 신경망 모델은 상기 복수의 사용자들에 대한 사용자 임베딩 벡터들 및 상기 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들을 학습 데이터로 사용하여 훈련된 인공 신경망 모델일 수 있다.
일 실시예에서, 상기 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체가 제공될 수 있다. 상기 기록매체는 상기 사용자의 디바이스로부터 수신된 콘텐트 추천 요청에 기초하여, 복수의 콘텐트들 중 적어도 하나에 대한 상기 사용자의 피드백 벡터를 획득하는 동작을 컴퓨터에서 실행시키기 위해 컴퓨터로 읽을 수 있도록 제공될 수 있다. 상기 기록매체는 복수의 사용자들이 이용한 상기 복수의 콘텐트들에 관한 피드백 정보를 획득하는 동작을 컴퓨터에서 실행시키기 위해 컴퓨터로 읽을 수 있도록 제공될 수 있다. 상기 기록매체는 상기 피드백 정보에 기초하여, 상기 복수의 사용자들에 대한 사용자 임베딩 벡터들 및 상기 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들을 생성하는 동작을 컴퓨터에서 실행시키기 위해 컴퓨터로 읽을 수 있도록 제공될 수 있다. 상기 기록매체는 상기 복수의 사용자들에 대한 사용자 임베딩 벡터들에 기초하여, 상기 복수의 사용자들을 군집화함으로써 복수의 사용자 그룹들 및 상기 복수의 사용자 그룹들의 중심 사용자들을 결정하는 동작을 컴퓨터에서 실행시키기 위해 컴퓨터로 읽을 수 있도록 제공될 수 있다. 상기 기록매체는 상기 중심 사용자들에 대한 사용자 임베딩 벡터들 및 상기 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들을, 사용자의 콘텐트에 대한 선호도를 예측(estimation)하기 위한 인공 신경망 모델에 입력하는 동작을 컴퓨터에서 실행시키기 위해 컴퓨터로 읽을 수 있도록 제공될 수 있다. 상기 기록매체는 상기 인공 신경망 모델에 의해 출력되는, 상기 복수의 콘텐트들에 대한 상기 중심 사용자들의 예측된 선호도를 나타내는 상기 중심 사용자들의 선호도 벡터들을 획득하는 동작을 컴퓨터에서 실행시키기 위해 컴퓨터로 읽을 수 있도록 제공될 수 있다. 상기 기록매체는 상기 사용자의 피드백 벡터 및 상기 중심 사용자들의 선호도 벡터들에 기초하여, 상기 사용자에게 추천될 적어도 하나의 추천 콘텐트를 결정하는 동작을 컴퓨터에서 실행시키기 위해 컴퓨터로 읽을 수 있도록 제공될 수 있다. 상기 기록매체는 상기 결정된 적어도 하나의 콘텐트를 상기 사용자에게 추천하는 동작을 컴퓨터에서 실행시키기 위해 컴퓨터로 읽을 수 있도록 제공될 수 있다.
일 실시예에 따르면, 기기로 읽을 수 있는 저장매체 또는 기록매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, '비일시적 저장매체'는 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다. 예로, '비일시적 저장매체'는 데이터가 임시적으로 저장되는 버퍼를 포함할 수 있다.
일 실시예에 따르면, 본 문서에 개시된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어를 통해 또는 두개의 사용자 장치들(예: 스마트폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품(예: 다운로더블 앱(downloadable app))의 적어도 일부는 제조사의 전자 장치, 어플리케이션 스토어의 전자 장치, 또는 중계 전자 장치의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
전술한 본 개시의 설명은 예시를 위한 것이며, 본 개시가 속하는 기술분야의 통상의 지식을 가진 자는 본 개시의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 개시의 범위는 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 개시의 범위에 포함되는 것으로 해석되어야 한다.

Claims (15)

  1. 서버(3100)가 사용자(1004)에게 콘텐트를 추천하는 방법에 있어서,
    상기 사용자(1004)의 디바이스(3200)로부터 수신된 콘텐트 추천 요청에 기초하여, 복수의 콘텐트들 중 적어도 하나에 대한 상기 사용자(1004)의 피드백 벡터(1014)를 획득하는 동작;
    복수의 사용자들이 이용한 상기 복수의 콘텐트들에 관한 피드백 정보(1010)를 획득하는 동작;
    상기 피드백 정보(1010)에 기초하여, 상기 복수의 사용자들에 대한 사용자 임베딩 벡터들(1020) 및 상기 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들(1030)을 생성하는 동작;
    상기 복수의 사용자들에 대한 사용자 임베딩 벡터들(1020)에 기초하여, 상기 복수의 사용자들을 군집화(grouping)함으로써 복수의 사용자 그룹들 및 상기 복수의 사용자 그룹들의 중심 사용자들을 결정하는 동작;
    상기 중심 사용자들에 대한 사용자 임베딩 벡터들(1060) 및 상기 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들(1030)을, 사용자의 콘텐트에 대한 선호도를 예측(estimation)하기 위한 인공 신경망 모델(1070)에 입력하는 동작;
    상기 인공 신경망 모델(1070)에 의해 출력되는, 상기 복수의 콘텐트들에 대한 상기 중심 사용자들의 예측된 선호도를 나타내는 상기 중심 사용자들의 선호도 벡터들을 획득하는 동작;
    상기 사용자(1004)의 피드백 벡터(1014) 및 상기 중심 사용자들의 선호도 벡터들에 기초하여, 상기 사용자(1004)에게 추천될 적어도 하나의 추천 콘텐트들(1090)을 결정하는 동작; 및
    상기 결정된 적어도 하나의 추천 콘텐트들(1090)을 상기 사용자(1004)에게 추천하는 동작; 을 포함하는 방법.
  2. 제 1항에 있어서,
    상기 사용자(1004)의 피드백 벡터(1014)는 상기 복수의 콘텐트들 중 적어도 하나에 대한 상기 사용자(1004)의 선호도를 나타내는 벡터이고,
    상기 피드백 정보(1010)는 상기 복수의 사용자들의 상기 복수의 콘텐트들에 대한 선호도를 나타내는 복수의 피드백 벡터들을 포함하는 것인, 방법.
  3. 제1항에 있어서, 상기 복수의 사용자들에 대한 사용자 임베딩 벡터들(1020) 및 상기 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들(1030)을 생성하는 동작은,
    기 설정된 기준에 따라, 상기 피드백 정보(1410)와 기 설정된 제1 임계치 이하의 에러를 가지는 상기 복수의 사용자들에 대한 사용자 임베딩 벡터들(1420) 및 상기 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들(1430)을 생성하는 동작; 을 포함하는 방법.
  4. 제 1항에 있어서, 상기 복수의 사용자 그룹들 및 상기 복수의 사용자 그룹들의 중심 사용자들을 결정하는 동작은,
    기 설정된 복수의 사용자 그룹들의 수 및 상기 복수의 사용자들에 대한 사용자 임베딩 벡터들 사이의 유클리드 거리(Euclidean distance)들에 기초하여, 상기 복수의 사용자 그룹들을 결정하는 동작; 및
    상기 결정된 복수의 사용자 그룹들 각각에 속하는 적어도 하나의 사용자들에 대한 사용자 임베딩 벡터들 사이의 유클리드 거리들에 기초하여, 상기 복수의 사용자 그룹들의 중심 사용자들을 결정하는 동작; 을 포함하는 방법.
  5. 제 1항에 있어서,
    상기 사용자(1004)에게 추천될 상기 적어도 하나의 추천 콘텐트(1090)들을 결정하는 동작은,
    상기 사용자의 피드백 벡터(1014) 및 상기 중심 사용자들의 선호도 벡터들에 기초하여, 상기 중심 사용자들 중에서 중심 사용자를 선택하는 동작;
    상기 중심 사용자들의 선호도 벡터들 중에서 상기 선택된 중심 사용자의 선호도 벡터를 추출하는 동작; 및
    상기 추출된 선호도 벡터에 기초하여, 상기 적어도 하나의 추천 콘텐트(1090)를 결정하는 동작; 을 포함하는 방법.
  6. 제 1항에 있어서,
    상기 사용자의 피드백 벡터 및 상기 중심 사용자들의 선호도 벡터들에 기초하여, 상기 중심 사용자들의 상기 복수의 콘텐트들에 대한 예측된 선호도 및 상기 사용자의 상기 복수의 콘텐트들에 대한 선호도 사이의 유사도 값들을 결정하는 동작; 및
    상기 결정된 유사도 값들에 기초하여, 상기 복수의 사용자 그룹들의 수를 조정하는 동작; 을 더 포함하는 방법.
  7. 제 6항에 있어서, 상기 복수의 사용자 그룹들의 수를 조정하는 동작은,
    상기 사용자의 피드백 벡터 및 상기 중심 사용자들의 선호도 벡터들에 기초하여, 상기 중심 사용자들 중에서 중심 사용자를 선택하는 동작;
    상기 결정된 유사도 값들 중 상기 선택된 중심 사용자의 유사도 값을 식별하는 동작; 및
    상기 식별된 유사도 값이 기 설정된 제2 임계치 이하인 것에 기초하여, 상기 복수의 사용자 그룹들의 수를 늘리는 동작; 을 포함하는 방법.
  8. 제 6항에 있어서, 상기 복수의 사용자 그룹들의 수를 조정하는 동작은,
    상기 사용자(1004)의 피드백 벡터(1014) 및 상기 중심 사용자들의 선호도 벡터들에 기초하여, 상기 중심 사용자들 중에서 중심 사용자를 선택하는 동작;
    상기 결정된 유사도 값들 중 상기 선택된 중심 사용자의 유사도 값을 식별하는 동작; 및
    상기 식별된 유사도 값이 기 설정된 제3 임계치 이상인 것에 기초하여, 상기 복수의 사용자 그룹들의 수를 줄이는 동작; 을 포함하는 방법.
  9. 제 1항에 있어서,
    상기 복수의 사용자 그룹들 각각에 속하는 적어도 하나의 사용자들에 대한 사용자 임베딩 벡터들 사이의 유클리드 거리들 및 기 설정된 제4 임계치에 비교하여, 상기 복수개의 사용자 그룹들의 수를 조정하는 동작; 을 더 포함하는 방법.
  10. 제 1항에 있어서, 상기 인공 신경망 모델은 GMF (Generalized Matrix Factorization) 모델(2030), MLP (Multi-Layer Perceptron) 모델(2040) 및 NeuMF (Neural Matrix Factorization) 모델(2050) 중 적어도 하나를 포함하는 것인, 방법.
  11. 제 1항에 있어서,
    상기 인공 신경망 모델은 상기 복수의 사용자들에 대한 사용자 임베딩 벡터들(1020) 및 상기 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들(1030)을 학습 데이터로 사용하여 훈련된 인공 신경망 모델인 것인, 방법.
  12. 제 6항에 있어서,
    상기 사용자의 피드백 벡터(1014) 및 상기 피드백 정보(1020)에 기초하여, 상기 사용자에 대한 사용자 임베딩 벡터를 생성하고, 상기 복수의 사용자들에 대한 사용자 임베딩 벡터들 및 상기 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들을 재생성하는 동작; 및
    상기 조정된 복수의 사용자 그룹들의 수에 기초하여, 상기 사용자 및 상기 복수의 사용자들을 재군집화하는 동작; 을 더 포함하는 방법.
  13. 사용자에게 콘텐트를 추천하기 위한 서버(3100)에 있어서,
    통신 인터페이스(3110);
    하나 이상의 인스트럭션을 저장하는 메모리(3130); 및
    상기 하나 이상의 인스트럭션을 실행하여, 상기 사용자(1004)의 디바이스(3200)로부터 수신된 콘텐트 추천 요청에 기초하여, 복수의 콘텐트들 중 적어도 하나에 대한 상기 사용자(1004)의 피드백 벡터(1014)를 획득하고, 복수의 사용자들이 이용한 상기 복수의 콘텐트들에 관한 피드백 정보(1010)를 획득하고, 상기 피드백 정보(1010)에 기초하여, 상기 복수의 사용자들에 대한 사용자 임베딩 벡터들(1020) 및 상기 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들(1030)을 생성하고, 상기 복수의 사용자들에 대한 사용자 임베딩 벡터들(1020)에 기초하여, 상기 복수의 사용자들을 군집화함으로써 복수의 사용자 그룹들 및 상기 복수의 사용자 그룹들에 대응되는 상기 복수의 사용자 그룹들의 중심 사용자들을 결정하고, 상기 중심 사용자들에 대한 사용자 임베딩 벡터들(1060) 및 상기 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들(1030)을, 사용자의 콘텐트에 대한 선호도를 예측하기 위한 인공 신경망 모델(1070)에 입력하고, 상기 인공 신경망 모델(1070)에 의해 출력되는, 상기 복수의 콘텐트들에 대한 상기 중심 사용자들의 예측된 선호도를 나타내는 상기 중심 사용자들의 선호도 벡터들을 획득하고, 상기 사용자(1004)의 피드백 벡터(1014) 및 상기 중심 사용자들의 선호도 벡터들에 기초하여, 상기 사용자(1004)에게 추천될 적어도 하나의 추천 콘텐트들(1090)을 결정하고, 상기 결정된 적어도 하나의 추천 콘텐트들(1090)을 상기 사용자(1004)에게 추천하는 프로세서(3120); 를 포함하는, 서버(3100).
  14. 제 13항에 있어서,
    상기 프로세서(3120)는, 상기 하나 이상의 인스트럭션을 실행함으로써, 기 설정된 복수의 사용자 그룹들의 수 및 상기 복수의 사용자들에 대한 사용자 임베딩 벡터들 사이의 유클리드 거리들에 기초하여, 상기 복수의 사용자 그룹들을 결정하고, 상기 복수의 사용자 그룹들 각각에 속하는 적어도 하나의 사용자들에 대한 사용자 임베딩 벡터들 사이의 유클리드 거리들에 기초하여, 상기 복수의 사용자 그룹들의 중심 사용자들을 결정하는 것인, 서버(3100).
  15. 제 1항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
PCT/KR2022/014391 2021-09-27 2022-09-27 추천 콘텐트를 제공하는 서버 및 방법 WO2023048537A1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US17/974,089 US20230100788A1 (en) 2021-09-27 2022-10-26 Server and method for providing recommendation content

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2021-0127552 2021-09-27
KR1020210127552A KR20230044885A (ko) 2021-09-27 2021-09-27 추천 콘텐트를 제공하는 서버 및 방법

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/974,089 Continuation US20230100788A1 (en) 2021-09-27 2022-10-26 Server and method for providing recommendation content

Publications (1)

Publication Number Publication Date
WO2023048537A1 true WO2023048537A1 (ko) 2023-03-30

Family

ID=85720988

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2022/014391 WO2023048537A1 (ko) 2021-09-27 2022-09-27 추천 콘텐트를 제공하는 서버 및 방법

Country Status (3)

Country Link
US (1) US20230100788A1 (ko)
KR (1) KR20230044885A (ko)
WO (1) WO2023048537A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117112914B (zh) * 2023-10-23 2024-02-09 合肥综合性国家科学中心人工智能研究院(安徽省人工智能实验室) 一种基于图卷积的群体推荐方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101372928B1 (ko) * 2012-02-03 2014-03-14 한국과학기술원 사용자 선호주제 기반 tv프로그램 콘텐츠 자동추천 장치, 시스템, 방법 및 그 방법을 실행하는 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체
KR101559459B1 (ko) * 2014-11-10 2015-10-13 성균관대학교산학협력단 콘텐츠 추천 방법
KR102012676B1 (ko) * 2016-10-19 2019-08-21 삼성에스디에스 주식회사 콘텐츠 추천 방법, 장치 및 시스템
KR20210073346A (ko) * 2019-12-10 2021-06-18 주식회사우경정보기술 매칭 장치 및 매칭 방법
KR20210103735A (ko) * 2020-02-14 2021-08-24 주식회사 엘지유플러스 포스터 추천 방법 및 장치

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101372928B1 (ko) * 2012-02-03 2014-03-14 한국과학기술원 사용자 선호주제 기반 tv프로그램 콘텐츠 자동추천 장치, 시스템, 방법 및 그 방법을 실행하는 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체
KR101559459B1 (ko) * 2014-11-10 2015-10-13 성균관대학교산학협력단 콘텐츠 추천 방법
KR102012676B1 (ko) * 2016-10-19 2019-08-21 삼성에스디에스 주식회사 콘텐츠 추천 방법, 장치 및 시스템
KR20210073346A (ko) * 2019-12-10 2021-06-18 주식회사우경정보기술 매칭 장치 및 매칭 방법
KR20210103735A (ko) * 2020-02-14 2021-08-24 주식회사 엘지유플러스 포스터 추천 방법 및 장치

Also Published As

Publication number Publication date
KR20230044885A (ko) 2023-04-04
US20230100788A1 (en) 2023-03-30

Similar Documents

Publication Publication Date Title
WO2020235712A1 (ko) 콘텐츠 기반의 스타일을 갖는 텍스트 또는 음성을 생성하는 인공 지능 장치 및 그 방법
WO2019182265A1 (ko) 인공 지능 기기 및 그의 동작 방법
WO2019027259A1 (en) APPARATUS AND METHOD FOR PROVIDING SUMMARY INFORMATION USING ARTIFICIAL INTELLIGENCE MODEL
WO2020091210A1 (en) System and method of integrating databases based on knowledge graph
WO2017099483A1 (en) Device and method for providing user-customized content
WO2016017987A1 (en) Method and device for providing image
EP3602334A1 (en) Apparatus and method for providing summarized information using an artificial intelligence model
EP3335190A1 (en) Device and method for providing user-customized content
EP3545436A1 (en) Electronic apparatus and method of operating the same
WO2019022472A1 (en) ELECTRONIC DEVICE AND ITS CONTROL METHOD
WO2020130447A1 (ko) 페르소나에 기반하여 문장을 제공하는 방법 및 이를 지원하는 전자 장치
WO2021261836A1 (en) Image detection apparatus and operation method thereof
WO2020130262A1 (ko) 컴퓨팅 장치 및 그 동작 방법
WO2019240562A1 (en) Electronic device and operating method thereof for outputting response to user input, by using application
WO2020180034A1 (ko) 사용자 선택 기반의 정보를 제공하는 방법 및 장치
WO2018084581A1 (en) Method and apparatus for filtering a plurality of messages
WO2014123341A1 (en) System and method of providing object for service of service provider
WO2023048537A1 (ko) 추천 콘텐트를 제공하는 서버 및 방법
WO2020032564A1 (en) Electronic device and method for providing one or more items in response to user speech
WO2021132922A1 (en) Computing device and operation method thereof
WO2019107674A1 (en) Computing apparatus and information input method of the computing apparatus
WO2021187734A1 (ko) 컴퓨팅 장치 및 그 동작 방법
EP3523932A1 (en) Method and apparatus for filtering a plurality of messages
WO2021246812A1 (ko) 딥러닝 nlp 모델을 활용한 뉴스 긍정도 분석 솔루션 및 장치
WO2018124464A1 (ko) 전자 장치 및 전자 장치의 검색 서비스 제공 방법

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22873239

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 22873239

Country of ref document: EP

Kind code of ref document: A1