WO2022216034A1 - Device for book recommendations using hybrid method combining collaborative filtering and book-based recommendations, and method therefor - Google Patents

Device for book recommendations using hybrid method combining collaborative filtering and book-based recommendations, and method therefor Download PDF

Info

Publication number
WO2022216034A1
WO2022216034A1 PCT/KR2022/004937 KR2022004937W WO2022216034A1 WO 2022216034 A1 WO2022216034 A1 WO 2022216034A1 KR 2022004937 W KR2022004937 W KR 2022004937W WO 2022216034 A1 WO2022216034 A1 WO 2022216034A1
Authority
WO
WIPO (PCT)
Prior art keywords
user
preference
book
books
target
Prior art date
Application number
PCT/KR2022/004937
Other languages
French (fr)
Korean (ko)
Inventor
김덕기
허소연
Original Assignee
주식회사 피씨엔씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 피씨엔씨 filed Critical 주식회사 피씨엔씨
Publication of WO2022216034A1 publication Critical patent/WO2022216034A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0631Item recommendations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • 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/02Marketing; Price estimation or determination; Fundraising
    • 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/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0201Market modelling; Market analysis; Collecting market data
    • 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

Definitions

  • the present invention relates to a technology for recommending a book, and more particularly, to an apparatus for recommending a book in a hybrid method combining collaborative filtering and book-based recommendation, and a method therefor.
  • Collaborative filtering is a method that automatically predicts users' interests according to taste information obtained from many users.
  • a method for recommending a book according to a preferred embodiment of the present invention for achieving the above object includes the steps of, by a recommender, deriving preferences for a plurality of books based on information on post-reading activities of a plurality of users, and the recommendation unit calculating a user-based preference and a book-based preference for a target user's target book from the derived preference for a plurality of books of the plurality of users; and calculating the user's preference for the target book.
  • the method includes embedding user information and preference book information for each of the plurality of users in a predetermined vector space by the data collection unit before the step of the recommendation unit deriving preferences for a plurality of books based on the post-reading activity information of the plurality of users.
  • the data collection unit clustering the plurality of user preference vectors into a plurality of clusters, and the data collection unit clustering deriving a convex hull from each of a plurality of clusters, and the data collection unit sets the center of gravity of a polygon constituting a convex hull in each of the plurality of clusters as the center of the cluster, and sets the center of the cluster and a plurality of user preference vectors It further includes calculating a critical loss based on the.
  • Calculating the critical loss is performed by the data collection unit using the equation for each of the plurality of clusters. calculating a loss representing a difference between the center of a cluster and a plurality of user preference vectors through and from the standard deviation Calculating the critical loss according to Wherein Et is a critical loss, m is the average of the loss representing the difference between the center of the cluster and the plurality of user preference vectors, and D is the standard deviation of the loss representing the difference between the center of the cluster and the plurality of user preference vectors. and said is a weight for the standard deviation.
  • the method comprises the steps of calculating a preference for a target book of a target user by merging the user-based preference and the book-based preference, and then confirming, by the recommendation unit, whether the user's preference for the target book is greater than or equal to a predetermined value; , generating a user preference vector using the user's characteristics and the characteristics of the target book when the user's preference for the target book is greater than or equal to a predetermined value by the recommendation unit; The steps of confirming whether or not it exists within a critical loss within any one of the clusters, and as a result of the check, if the generated user preference vector exists within the critical loss within the one of the clusters, the step of recommending the corresponding book is further performed.
  • the post-reading activity information includes identification information of a book in a reading quiz in which the user participated, the number of entries and scores obtained for the user's reading quiz, identification information of a book stored by the user through a predetermined menu, and the user through a predetermined menu. It is characterized in that it includes post-reading activity information, such as identification information of the book to which the rating is given, and the user's rating.
  • the calculating of the user-based preference and the book-based preference may include: calculating, by the recommendation unit, a degree of similarity between users corresponding to the same book based on the derived preference for a plurality of books of the plurality of users; and predicting a user-based preference for a target book of a target user based on the calculated similarity between users.
  • the calculating of the user-based preference and the book-based preference may include calculating, by the recommendation unit, a degree of similarity between books corresponding to the same user based on the derived preference for a plurality of books of the plurality of users; and predicting the book-based preference of the target user for the target book based on the calculated similarity between the books.
  • the step of calculating the preference of the target user for the target book by merging the user-based preference and the book-based preference is performed by the recommendation unit using the following equation calculates the target user's preference for the target book according to , wherein Pt is the target user's preference for the target book, the Pu is the user-based preference, the Pb is the book-based preference, and the wu is the user-based preference. weight, and wb is a weight for book-based preference.
  • the wu and wb are the formulas It is characterized in that the wu is proportional to the number of data used when deriving the user-based preference, and the wb is set in proportion to the number of data used when deriving the book-based preference .
  • an apparatus for recommending a book includes a service provider that provides a menu for a plurality of users to perform post-reading activities, and collects post-reading activity information of the plurality of users. and a data collection unit that derives a preference for a plurality of books based on the reading activity information of the plurality of users, and a user base for a target book of a target user from the derived preference for a plurality of books of the plurality of users and a recommendation unit for calculating a preference and a book-based preference, and calculating a target user's preference for a target book by merging the user-based preference and the book-based preference.
  • the present invention by calculating the preference of the target user for the target book using both the user-based preference and the book-based preference, it is possible to calculate a more reliable preference.
  • FIG. 1 is a diagram for explaining a system for recommending a book in a hybrid method according to an embodiment of the present invention.
  • FIG. 2 is a diagram for explaining the configuration of a recommendation server according to an embodiment of the present invention.
  • FIG. 3 is a diagram for explaining a detailed configuration of a recommendation server control unit according to an embodiment of the present invention.
  • FIG. 4 is a flowchart illustrating a method of calculating a user's reliability according to an embodiment of the present invention.
  • FIG. 5 is a flowchart illustrating a method for clustering a plurality of users according to a book tendency according to an embodiment of the present invention.
  • FIG. 6 is a diagram for explaining a method for clustering a plurality of users according to a book tendency according to an embodiment of the present invention.
  • FIG. 7 is a view for explaining a method of setting a critical range of a cluster according to the book tendency of a plurality of users according to an embodiment of the present invention.
  • FIG. 8 is a flowchart illustrating a method of calculating a book preference based on collaborative filtering according to an embodiment of the present invention.
  • FIG. 9 is a flowchart illustrating a method for recommending a book according to a user's preference according to an embodiment of the present invention.
  • FIG. 10 is a diagram illustrating a computing device according to an embodiment of the present invention.
  • a recommendation system includes a recommendation server 10 , a book web server 20 , and a user device 30 .
  • the recommendation server 10 is basically to provide a social network service (SNS: Social Network Service) platform that can exchange and utilize various information about books to users who have subscribed to the service.
  • the recommendation server 10 may recommend the user's favorite book after identifying the user's preference for a book based on the user's activity on the platform.
  • the book web server 20 collectively refers to various types of web servers that provide information on books.
  • the book web server 20 may be a server operated by a bookstore for providing information on books and selling the books.
  • the book web server 20 may be a server operated by a publisher and providing information on books published by the publisher.
  • the user device 30 is a device used by a user who has subscribed to the service provided by the recommendation server 10 , and can be provided with the service provided by the recommendation server 10 by accessing the recommendation server 10 through a network.
  • the user device 30 may be exemplified by a personal computer, a notebook computer, a tablet, a phablet, a smart phone, and the like.
  • FIG. 2 is a diagram for explaining the configuration of a recommendation server according to an embodiment of the present invention.
  • 3 is a diagram for explaining a detailed configuration of a recommendation server control unit according to an embodiment of the present invention.
  • the recommendation server 10 includes a communication module 11 , a storage module 12 , and a control module 13 .
  • the communication module 11 is for communicating with the book web server 20 and the user device 30 through a network.
  • the communication module 11 may include a modem for modulating a signal to be transmitted and demodulating a received signal to transmit/receive data through a network.
  • the communication module 11 may transmit the data received from the control module 13 to the book web server 20 and the user device 30 through the network.
  • the communication module 11 may transmit data received from any one of the book web server 20 and the user device 30 to the control module 13 .
  • the storage module 12 serves to store programs and data necessary for the operation of the recommendation server 10 .
  • the storage module 12 may store information related to a user's social and post-reading activities, book information collected in the private and public, cover and inside images of books, metadata of books, and the like.
  • Various types of data stored in the storage module 12 may be registered, deleted, changed, or added according to the operation of the administrator.
  • the control module 13 may control the overall operation of the recommendation server 10 and the signal flow between internal blocks of the recommendation server 10, and may perform a data processing function of processing data.
  • the control module 13 may be a central processing unit, a digital signal processor, or the like.
  • the control module 13 may further include an image processor or a graphic processing unit (GPU).
  • the control module 13 includes a data collection unit 100 , a service provision unit 200 , and a recommendation unit 300 .
  • the data collection unit 100 is for collecting data necessary for the recommendation server 10 to provide a service and data necessary for a recommendation.
  • the data collection unit 100 may collect book information by accessing the book web server 20 through the communication module 11 . In this case, a crawling technique may be used.
  • the book information includes book meta-information such as title, author, translator, publication date, edition, print, etc. of the book, cover and internal images, text of major pages, and the like.
  • the book information may further include book evaluation information, such as a bestseller published by a publicly trusted subject.
  • the data collection unit 100 may collect information on the user's social activity and post-reading activity. This will be described in more detail below.
  • the service providing unit 200 is basically to enable the user to engage in social activities and post-reading activities.
  • the service providing unit 200 allocates an account to the user for the user's social activity, and allows the user to upload personal post-reading information, which is information about the book the user has read, to the account allocated through the user device 30 .
  • the personal post-reading information includes, for example, the cover and inside images of books, texts of major pages, and book reviews.
  • the service providing unit 200 provides a menu that allows the user to follow other accounts, and feeds so that the user can view the personal post-reading information uploaded to the other accounts followed by the user.
  • the service providing unit 200 provides a menu that allows the user to express preference or comment on personal reading information of other accounts, for example, likes, votes, recommendations, and selection of emotional emoticons. Accordingly, the data collection unit 100 determines the number of personal post-reading information uploaded by the user for each user, the number of comments and preferences for the personal post-reading information uploaded by the user, the number of users' following, the number of followers, etc. Activity information can be collected and stored.
  • the service providing unit 200 may provide a reading quiz, a book drawer, and a Book Ping Talk menu for the user's post-reading activities.
  • the service providing unit 200 may provide a reading quiz in which a score is added if a quiz related to a specific book is issued through the reading quiz menu, and if the quiz is answered correctly.
  • the user may participate in the reading quiz in the corresponding menu through the user device 30 .
  • the service providing unit 200 may provide a function of storing the book information of the book desired by the user through the book drawer menu.
  • the service providing unit 200 provides a function by which the user can numerically evaluate a specific book through the Book Ping Talk menu.
  • the data collection unit 100 receives the identification information of the book of the reading quiz participated by the user, the number of applications and the score obtained by the user, the identification information of the book stored by the user through the book drawer menu, and the Book Ping Talk menu for each user. It is possible to collect and store post-reading activity information, such as identification information of books evaluated by users, and numerical values evaluated by users.
  • the recommendation unit 300 is for analyzing the user's preference based on the user's social activity and reading activity through collaborative filtering, and recommending a book preferred by the user. The operation of the recommendation unit 300 will be described in more detail below.
  • FIG. 4 is a flowchart illustrating a method of calculating a user's reliability according to an embodiment of the present invention.
  • the data collection unit 100 collects activity information indicating the degree of the user's social activity and post-reading activity for the book according to the embodiment of the present invention in step S110.
  • the activity information includes the number of likes (A), the number of comments (B), the number of content used (Cu), the number of followings (Fing), and the number of followers (Fwer).
  • the number of likes (A) represents the number of all likes tagged on the content of the corresponding user.
  • the number of comments (B) indicates the number of all comments tagged on the content of the corresponding user.
  • the number of contents used (Cu) indicates the number of all contents used by the corresponding user.
  • the number of following indicates the number of following of a corresponding user in a social network for a book according to an embodiment of the present invention.
  • the number of followers indicates the number of followers of the corresponding user in the social network for the book according to the embodiment of the present invention.
  • the recommendation unit 300 calculates a social behavior index indicating the degree of the user's social behavior by analyzing the user's social behavior based on the activity information in step S120.
  • the recommendation unit 300 may calculate the social behavior index (K) according to Equation 1 below.
  • K is the social behavior index.
  • A is the number of likes and B is the number of comments.
  • the recommendation unit 300 analyzes the user's content use based on the activity information in step S130 and calculates a content use index indicating the user's content use degree. At this time, the recommendation unit 300 may calculate the content use index (C) according to the following Equation (2).
  • C represents the content usage index.
  • Call is the total number of contents
  • Cu is the number of contents used by the user.
  • w is a value preset as a weight.
  • the recommendation unit 300 calculates a social relationship index indicating the strength of the user's social relationship based on the activity information in step S140.
  • the recommendation unit 300 may calculate the social relationship index (F) according to the following Equation (3).
  • F represents the social relationship index.
  • Fing is the number of following, and Fwer indicates the number of followers.
  • the recommendation unit 300 calculates the user's reliability (T) in consideration of all of the previously calculated social behavior index (K), content use index (C), and social relationship index (F) in step S150.
  • the recommendation unit 300 may calculate the reliability T according to Equation 4 below.
  • K is a social behavior index
  • wa is a social behavior weight that is a weight for the social behavior index
  • C is the content use index
  • wb is the content use weight, which is a weight for the content use index
  • F is the social relationship index
  • wc represents the social relationship weight, which is a weight for the social relationship index.
  • the recommendation unit 300 selects users whose reliability is greater than or equal to a predetermined value in step S160 .
  • a plurality of users may be clustered according to the book tendency.
  • 5 is a flowchart illustrating a method for clustering a plurality of users according to a book tendency according to an embodiment of the present invention.
  • 6 is a diagram for explaining a method for clustering a plurality of users according to a book tendency according to an embodiment of the present invention.
  • 7 is a view for explaining a method of setting a critical range of a cluster according to the book tendency of a plurality of users according to an embodiment of the present invention.
  • the data collection unit 100 collects, for each of a plurality of users, user information indicating the characteristics of the user and preference book information indicating the characteristics of the book preferred by the user in step S200 .
  • the plurality of users may be limited to users whose reliability selected according to the method shown in FIG. 4 is greater than or equal to a predetermined value.
  • User information includes information such as the user's age, gender, region of residence, educational background, and the like, and can be obtained from the information entered at the time of membership registration.
  • the preferred book information may be a genre, a subject, a word, a phrase, etc. of a book preferred by the user.
  • Such preference book information may be obtained from information about the user's social activity and post-reading activity.
  • the data collection unit 100 embeds user information and preferred book information for each of a plurality of users in a predetermined vector space (VS) in step S210, so that the user's characteristics and the user's preferred book characteristics are embedded.
  • VS vector space
  • a plurality of user preference vectors are generated. 6 shows a vector space VS in which a plurality of user preference vectors are embedded.
  • the data collection unit 100 randomly selects a center vector of a predetermined number of clusters from among a plurality of user preference vectors in the vector space VS as shown in step S220.
  • the data collection unit 100 selects a plurality of user preference vectors in the vector space VS as shown in FIG. 7 in step S230 according to the distance from the center vector of a predetermined number of clusters.
  • a plurality of clusters (CL1, CL2, CL3, ...) are generated by clustering. That is, in step S230 , the data collection unit 100 calculates a distance to each of the center vectors of a predetermined number of clusters of a plurality of user preference vectors in the vector space VS as shown in FIG.
  • the data collection unit 100 selects the center vector of the cluster again for each of the plurality of clusters CL1, CL2, CL3, ..., generated in step S240. For example, in step S240 , the data collection unit 100 may select a user preference vector having an intermediate value among a plurality of user preference vectors of each cluster as a center vector.
  • the data collection unit 100 may check whether all user preference vectors are included in the cluster having the smallest distance from the center vector of the previously selected cluster ( S240 ) in step S250 . As a result of checking in step S250, if all user preference vectors are not included in the cluster having the minimum distance from the center vector of the previously selected cluster again (S240), the data collection unit 100 performs steps S230 to S250 described above. Repeat. That is, the data collection unit 100 repeats steps S230 to S250 until the following Equation 5 becomes the minimum.
  • Equation 5 i is the index of the user preference vector, and Si is the i-th user preference vector. Also, j is the index of the cluster, and Cj is the center vector of the j-th cluster. And fij is a flag variable, 1 if the i-th user preference vector belongs to the j-th cluster, and 0 otherwise.
  • step S250 if all user preference vectors are included in the cluster having the smallest distance from the center vector of the previously selected cluster (S240), the data collection unit 100 selects the current cluster in step S260. Determine the optimized cluster.
  • the data collection unit 100 derives a convex hull from each of the plurality of clusters optimized in step S270 .
  • any one cluster is shown in FIG. 7 .
  • the data collection unit 100 may configure a convex hull by selecting a plurality of convex among a plurality of user preference vectors included in the cluster.
  • the data collection unit 100 sets the center of gravity of the polygon constituting the convex hull as the center of the cluster in step S280.
  • the data collection unit 100 may set the center of gravity of the hexagon constituting the convex hull as the center of the cluster, as shown in FIG. 7 .
  • the user preference vector may not exist at the center of the cluster, but the center of the cluster may be expressed as a user preference vector that is a tensor of the same dimension as the user preference vector.
  • the data collection unit 100 obtains a loss representing a difference between the center of a cluster and a plurality of user preference vectors in each of the plurality of clusters in step S290, and calculates a critical loss (T) from the average and standard deviation of the loss .
  • the data collection unit 100 calculates a loss E representing the difference between the center Mk of the cluster and the plurality of user preference vectors Sn according to Equation 2 below.
  • Equation 6 E denotes a loss, j denotes an index of a cluster, and Mj denotes the center of the j-th cluster.
  • i is the index of the user preference vector, and Si is the i-th user preference vector.
  • the data collection unit 100 calculates the critical loss (T) according to the following equation (7) from the average and standard deviation of the loss.
  • Equation 7 Et means critical loss.
  • m represents the average of the loss (E) representing the difference between the cluster center (Mj) and the plurality of user preference vectors (Si) calculated according to Equation 6 above.
  • D denotes the standard deviation of the loss (E) representing the difference between the center (Mj) of the cluster and the plurality of user preference vectors (Si) calculated according to Equation 6 above.
  • weight for the standard deviation It is a hyperparameter that has a range of , and is preset in proportion to the size of the population.
  • the data collection unit 100 stores the threshold loss Et calculated in step S300 for each cluster.
  • FIG. 8 is a flowchart illustrating a method of calculating a book preference based on collaborative filtering according to an embodiment of the present invention.
  • the recommendation unit 300 derives a plurality of users' preferences for a plurality of books based on the reading activity information in step S410 .
  • the post-reading activity information includes identification information of a book in a reading quiz in which the user participated, the number of applications and scores obtained for the user's reading quiz, and identification of a book stored in a specific space by the user through the book drawer menu Information and post-reading activity information such as identification information of a book given a rating by the user through the Bookping Talk menu, and the user's rating are included.
  • the recommendation unit 300 calculates a preference score indicating the user's preference for the corresponding book in inverse proportion to the number of applications based on the number of applications and the scores obtained by the user for the reading quiz and in proportion to the scores obtained.
  • the recommendation unit 300 may calculate the preference according to an equation such as [weight x (the number of times the acquired score is equal to or greater than a predetermined score/number of applications)].
  • the recommendation unit 300 gives a constant preference score to the book stored by the user through the book drawer menu.
  • the recommendation unit 300 may give one point to a book stored through the book drawer menu.
  • the recommendation unit 300 gives a constant preference score to a book given a rating by the user through the Book Ping Talk menu, and additionally gives a preference score in proportion to the user's rating. For example, the recommendation unit 300 gives 1 point to the book evaluated by the user through the Book Ping Talk menu, and additionally gives a preference score according to the equation [user rating/maximum value]. Accordingly, the recommendation unit 300 calculates the preference of the corresponding book by adding up the preference scores for the book.
  • the recommendation unit 300 shows the preference for a plurality of books (B1, B2, B3, %) of a plurality of users (U1, U2, U3%) based on the post-reading activity information in the following table. Assume it is equal to 1.
  • the recommendation unit 300 calculates a degree of similarity between users corresponding to the same book based on the plurality of users' preferences for the plurality of books in step S420 .
  • Such similarity may be calculated using any one of cosine similarity, adaptive cosine similarity, and Pearson's correlation coefficient.
  • the recommendation unit 300 may calculate the similarity (cosine similarity) between the second user U2 and the fourth user U4 according to Equation 8 below.
  • S represents the degree of similarity.
  • n represents the number of books read by both the first user and the second user, and i is an index of books read by both the first user and the second user.
  • R1 represents the preference of the first user, and R2 represents the preference of the second user. Accordingly, the degree of similarity between the first user and the second user may be calculated as in Equation 9 below.
  • the recommendation unit 300 predicts the user-based preference for the target book of the target user based on the degree of similarity between the users in step S430 .
  • the recommendation unit 300 may calculate the user-based preference for the target book of the target user by obtaining a weighted sum according to Equation 10 below.
  • Pu is a predicted value and represents user-based preference.
  • S is the similarity between the target user and other users, and R is the preference of other users for the target book.
  • the recommendation unit 300 may calculate the user-based preference Pu for the third book B3 of the third user U3 according to Equation 11 below.
  • the recommendation unit 300 calculates a degree of similarity between books corresponding to the same user based on the plurality of users' preferences for a plurality of books in step S440 .
  • Such similarity may be calculated using any one of cosine similarity, adaptive cosine similarity, and Pearson's correlation coefficient.
  • the recommendation unit 300 may calculate the similarity (cosine similarity) between the second book B2 and the third book B3 according to Equation 12 below.
  • S represents the degree of similarity.
  • n represents the number of users who have read both the second book and the third book
  • i is an index of users who have read both the second book B2 and the third book B3.
  • R2 represents the preference for the second book (B2)
  • R3 represents the preference for the third book (B3). Accordingly, the degree of similarity between the second book B2 and the third book B3 may be calculated as in Equation 13 below.
  • the recommendation unit 300 predicts the book-based preference of the target user for the target book based on the similarity between the books in step S450 .
  • the recommendation unit 300 may calculate the book-based preference of the target user for the target book by obtaining a weighted sum according to Equation 3 below.
  • Pb is a predicted value and represents a book-based preference.
  • S is the degree of similarity between the target book and other books, and R represents the target user's preference for other books.
  • the recommendation unit 300 may calculate the book-based preference Pb of the third user U3 for the third book B3 according to Equation 15 below.
  • the recommendation unit 300 calculates the target user's preference for the target book by merging the user-based preference Pu and the book-based preference Pb to which weights are applied in step S460 . That is, the recommendation unit 300 may calculate the target user's preference for the target book according to Equation 16 below.
  • Pt is the target user's preference for the target book.
  • Pu is a user-based preference
  • Pb is a book-based preference.
  • wu is a weight for user-based preference
  • wb is a weight for book-based preference.
  • wu and wb are hyperparameters, and have a rule as shown in Equation 17 below.
  • wu and wb are set in proportion to the number of data used when deriving preference. That is, wu is proportional to the number of data used when deriving the user-based preference Pu, and wb is proportional to the number of data used when deriving the book-based preference Pb.
  • wu and wb are hyperparameters. wu and wb are set in proportion to the number of data used when deriving preferences. That is, the number of data used when deriving the user-based preference Pu in Equations 10 and 11 is 4, and the number of data used when deriving the book-based preference Pb in Equations 14 and 15 is also 4 Since wu and wb are both set to 0.5. Accordingly, the final preference of the third user U3 for the third book B3 is calculated according to Equations 10, 11, 14, 15, 16 and 17, and the following Equation 18.
  • the present invention by calculating the preference of the target user for the target book using both the user-based preference and the book-based preference, it is possible to calculate a more reliable preference.
  • the user's preference for the target book was calculated by performing calculations for each user and book unit.
  • a plurality of users are clustered into a plurality of user clusters, and a plurality of books are clustered into a plurality of book clusters, without performing calculations by dividing each user and book.
  • the user cluster and book cluster preference for the book cluster may be calculated by performing calculations by dividing the user cluster and the book cluster unit.
  • FIG. 9 is a flowchart illustrating a method for recommending a book according to a user's preference according to an embodiment of the present invention.
  • the recommendation unit 300 calculates the user's preference for the target book in step S520 .
  • the preference calculation may be performed by collaborative filtering as described above with reference to FIG. 8 .
  • the recommendation unit 300 checks whether the user's preference for the target book is greater than or equal to a predetermined value in step S530 . As a result of the check, if the user's preference for the target book is greater than or equal to a predetermined value, the process proceeds to step S540. If it is less than the predetermined value, the process proceeds to step S570 and the corresponding book is not recommended.
  • step S540 the recommendation unit 300 generates a user preference vector using the user's characteristics and the target book's characteristics.
  • the recommendation unit 300 checks whether the user preference vector generated earlier ( S540 ) exists within a threshold loss Et within a specific cluster in step S550 . For example, assuming that the user preference vector belongs to the cluster as shown in FIG. 7 , when the user preference vector is the first vector V1, it deviates from the threshold loss Et, and when the user preference vector is the second vector V2 , it can be confirmed that it exists within the critical loss (Et).
  • step S550 if the generated user preference vector does not exist within the threshold loss Et within a specific cluster, the recommendation unit 300 proceeds to step S570 and does not recommend the corresponding book.
  • step S550 if the generated user preference vector exists within a threshold loss Et within a specific cluster, the recommender 300 proceeds to step S560 to recommend the corresponding book.
  • the computing device TN100 of FIG. 10 may be a device described herein, for example, the recommendation server 10 , the book web server 20 , or the user device 30 .
  • the computing device TN100 may include at least one processor TN110 , a transceiver device TN120 , and a memory TN130 . Also, the computing device TN100 may further include a storage device TN140 , an input interface device TN150 , an output interface device TN160 , and the like. Components included in the computing device TN100 may be connected by a bus TN170 to communicate with each other.
  • the processor TN110 may execute a program command stored in at least one of the memory TN130 and the storage device TN140.
  • the processor TN110 may mean a central processing unit (CPU), a graphics processing unit (GPU), or a dedicated processor on which methods according to an embodiment of the present invention are performed.
  • the processor TN110 may be configured to implement procedures, functions, and methods described in connection with an embodiment of the present invention.
  • the processor TN110 may control each component of the computing device TN100 .
  • Each of the memory TN130 and the storage device TN140 may store various information related to the operation of the processor TN110 .
  • Each of the memory TN130 and the storage device TN140 may be configured as at least one of a volatile storage medium and a nonvolatile storage medium.
  • the memory TN130 may include at least one of a read only memory (ROM) and a random access memory (RAM).
  • the transceiver TN120 may transmit or receive a wired signal or a wireless signal.
  • the transceiver TN120 may be connected to a network to perform communication.
  • the above-described method according to an embodiment of the present invention may be implemented in the form of a program readable by various computer means and recorded in a computer readable recording medium.
  • the recording medium may include a program command, a data file, a data structure, etc. alone or in combination.
  • the program instructions recorded on the recording medium may be specially designed and configured for the present invention, or may be known and available to those skilled in the art of computer software.
  • the recording medium includes magnetic media such as hard disks, floppy disks and magnetic tapes, optical recording media such as CD-ROMs and DVDs, and magneto-optical media such as floppy disks ( magneto-optical media) and hardware devices specially configured to store and execute program instructions such as ROM, RAM, flash memory, and the like.
  • Examples of the program instruction may include not only machine language such as generated by a compiler, but also a high-level language that can be executed by a computer using an interpreter or the like. Such hardware devices may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Theoretical Computer Science (AREA)
  • Development Economics (AREA)
  • Strategic Management (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Mathematics (AREA)
  • Economics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Marketing (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Game Theory and Decision Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

A device for book recommendations is provided. The device comprises: a service-providing unit for providing a menu such that a plurality of users performs post-reading activities; a data collection unit for collecting post-reading activity information of the plurality of users; and a recommendation unit for deriving preferences for a plurality of books on the basis of the post-reading activity information of the plurality of users, calculating a user-based preference and a book-based preference for a target book of a target user from the derived preferences for the plurality of books of the plurality of users, and merging the user-based preference and the book-based preference to calculate a preference for the target book of the target user.

Description

협업필터링과 도서 기반 추천을 결합한 하이브리드 방식의 도서 추천을 위한 장치 및 이를 위한 방법Apparatus and method for a hybrid method of book recommendation combining collaborative filtering and book-based recommendation
본 발명은 도서 추천을 위한 기술에 관한 것으로, 보다 상세하게는, 협업필터링과 도서 기반 추천을 결합한 하이브리드 방식의 도서 추천을 위한 장치 및 이를 위한 방법에 관한 것이다. The present invention relates to a technology for recommending a book, and more particularly, to an apparatus for recommending a book in a hybrid method combining collaborative filtering and book-based recommendation, and a method therefor.
협업 필터링(collaborative filtering)은 많은 사용자들로부터 얻은 기호정보(taste information)에 따라 사용자들의 관심사들을 자동적으로 예측하게 해주는 방법이다. Collaborative filtering is a method that automatically predicts users' interests according to taste information obtained from many users.
본 발명의 목적은 하이브리드 방식의 도서 추천을 위한 장치 및 이를 위한 방법을 제공함에 있다. SUMMARY OF THE INVENTION It is an object of the present invention to provide an apparatus for recommending a book in a hybrid manner and a method therefor.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 도서 추천을 위한 방법은 추천부가 복수의 사용자의 독후 활동 정보를 기초로 복수의 도서에 대한 선호도를 도출하는 단계와, 상기 추천부가 상기 도출된 복수의 사용자의 복수의 도서에 대한 선호도로부터 대상 사용자의 대상 도서에 대한 사용자 기반 선호도 및 도서 기반 선호도를 산출하는 단계와, 상기 추천부가 상기 사용자 기반 선호도 및 상기 도서 기반 선호도를 병합하여 대상 사용자의 대상 도서에 대한 선호도를 산출하는 단계를 포함한다. A method for recommending a book according to a preferred embodiment of the present invention for achieving the above object includes the steps of, by a recommender, deriving preferences for a plurality of books based on information on post-reading activities of a plurality of users, and the recommendation unit calculating a user-based preference and a book-based preference for a target user's target book from the derived preference for a plurality of books of the plurality of users; and calculating the user's preference for the target book.
상기 방법은 추천부가 복수의 사용자의 독후 활동 정보를 기초로 복수의 도서에 대한 선호도를 도출하는 단계 전, 데이터수집부가 복수의 사용자 각각에 대해 사용자정보와 선호도서정보를 소정의 벡터공간에 임베딩하여 사용자의 특징과 사용자가 선호하는 도서의 특징이 내재된 복수의 사용자선호벡터를 생성하는 단계와, 상기 데이터수집부가 복수의 사용자선호벡터를 복수의 클러스터로 클러스터링하는 단계와, 상기 데이터수집부가 클러스터링된 복수의 클러스터 각각에서 컨벡스 헐을 도출하는 단계와, 상기 데이터수집부가 복수의 클러스터 각각에서 컨벡스 헐을 구성하는 다각형의 무게 중심을 클러스터의 중심으로 설정하고, 설정된 클러스터의 중심과 복수의 사용자선호벡터를 기초로 임계손실을 산출하는 단계를 더 포함한다. The method includes embedding user information and preference book information for each of the plurality of users in a predetermined vector space by the data collection unit before the step of the recommendation unit deriving preferences for a plurality of books based on the post-reading activity information of the plurality of users. Generating a plurality of user preference vectors in which the user's characteristics and the user's preferred book characteristics are embedded, the data collection unit clustering the plurality of user preference vectors into a plurality of clusters, and the data collection unit clustering deriving a convex hull from each of a plurality of clusters, and the data collection unit sets the center of gravity of a polygon constituting a convex hull in each of the plurality of clusters as the center of the cluster, and sets the center of the cluster and a plurality of user preference vectors It further includes calculating a critical loss based on the.
상기 임계손실을 산출하는 단계는 상기 데이터수집부가 복수의 클러스터 각각에 대해 수학식
Figure PCTKR2022004937-appb-img-000001
을 통해 클러스터의 중심과 복수의 사용자선호벡터와의 차이를 나타내는 손실을 산출하는 단계와, 상기 데이터수집부가 복수의 클러스터 각각에 대해 클러스터의 중심과 복수의 사용자선호벡터와의 차이를 나타내는 손실의 평균 및 표준 편차로부터 수학식
Figure PCTKR2022004937-appb-img-000002
에 따라 임계손실을 산출하는 단계를 포함하며, 상기 j는 클러스터의 인덱스이고, 상기 Mj는 j번째 클러스터의 중심이고, 상기 i는 사용자선호벡터의 인덱스이고, 상기 Si은 i번째 사용자선호벡터이고, 상기 Et는 임계손실이고, 상기 m은 클러스터의 중심과 복수의 사용자선호벡터와의 차이를 나타내는 손실의 평균이고, 상기 D는 클러스터의 중심과 복수의 사용자선호벡터와의 차이를 나타내는 손실의 표준 편차이고, 상기
Figure PCTKR2022004937-appb-img-000003
는 표준편차에 대한 가중치인 것을 특징으로 한다.
Calculating the critical loss is performed by the data collection unit using the equation for each of the plurality of clusters.
Figure PCTKR2022004937-appb-img-000001
calculating a loss representing a difference between the center of a cluster and a plurality of user preference vectors through and from the standard deviation
Figure PCTKR2022004937-appb-img-000002
Calculating the critical loss according to Wherein Et is a critical loss, m is the average of the loss representing the difference between the center of the cluster and the plurality of user preference vectors, and D is the standard deviation of the loss representing the difference between the center of the cluster and the plurality of user preference vectors. and said
Figure PCTKR2022004937-appb-img-000003
is a weight for the standard deviation.
상기 방법은 상기 사용자 기반 선호도 및 상기 도서 기반 선호도를 병합하여 대상 사용자의 대상 도서에 대한 선호도를 산출하는 단계 후, 상기 추천부가 사용자의 대상 도서에 대한 선호도가 소정 수치 이상인지 여부를 확인하는 단계와, 상기 추천부가 상기 사용자의 대상 도서에 대한 선호도가 소정 수치 이상이면, 사용자의 특징과 대상 도서의 특징을 이용하여 사용자선호벡터를 생성하는 단계와, 상기 추천부가 생성된 사용자선호벡터가 상기 복수의 클러스터 중 어느 하나의 클러스터 내의 임계 손실 이내에 존재하지는 여부를 확인하는 단계와, 상기 확인 결과, 상기 생성된 사용자선호벡터가 상기 어느 하나의 클러스터 내의 임계 손실 이내에 존재하면, 해당 도서를 추천하는 단계를 더 포함한다. The method comprises the steps of calculating a preference for a target book of a target user by merging the user-based preference and the book-based preference, and then confirming, by the recommendation unit, whether the user's preference for the target book is greater than or equal to a predetermined value; , generating a user preference vector using the user's characteristics and the characteristics of the target book when the user's preference for the target book is greater than or equal to a predetermined value by the recommendation unit; The steps of confirming whether or not it exists within a critical loss within any one of the clusters, and as a result of the check, if the generated user preference vector exists within the critical loss within the one of the clusters, the step of recommending the corresponding book is further performed. include
상기 독후 활동 정보는 사용자가 참여한 독서 퀴즈의 도서의 식별 정보, 사용자의 독서 퀴즈에 대한 응모 횟수 및 획득한 점수, 사용자가 소정의 메뉴를 통해 저장한 도서의 식별 정보 및 소정의 메뉴를 통해 사용자가 평점을 부여한 도서의 식별 정보, 사용자의 평점 등의 독후 활동 정보를 포함하는 것을 특징으로 한다. The post-reading activity information includes identification information of a book in a reading quiz in which the user participated, the number of entries and scores obtained for the user's reading quiz, identification information of a book stored by the user through a predetermined menu, and the user through a predetermined menu. It is characterized in that it includes post-reading activity information, such as identification information of the book to which the rating is given, and the user's rating.
상기 사용자 기반 선호도 및 도서 기반 선호도를 산출하는 단계는 상기 추천부가 상기 도출된 복수의 사용자의 복수의 도서에 대한 선호도를 기초로 동일한 도서에 대응하는 사용자 상호 간의 유사도를 산출하는 단계와, 상기 추천부가 상기 산출된 사용자 상호 간의 유사도를 기초로 대상 사용자의 대상 도서에 대한 사용자 기반 선호도를 예측하는 단계를 포함한다. The calculating of the user-based preference and the book-based preference may include: calculating, by the recommendation unit, a degree of similarity between users corresponding to the same book based on the derived preference for a plurality of books of the plurality of users; and predicting a user-based preference for a target book of a target user based on the calculated similarity between users.
상기 사용자 기반 선호도 및 도서 기반 선호도를 산출하는 단계는 상기 추천부가 상기 도출된 복수의 사용자의 복수의 도서에 대한 선호도를 기초로 동일한 사용자에 대응하는 도서 상호 간의 유사도를 산출하는 단계와, 상기 추천부가 상기 산출된 도서 상호 간의 유사도를 기초로 대상 사용자의 대상 도서에 대한 도서 기반 선호도를 예측하는 단계를 포함한다. The calculating of the user-based preference and the book-based preference may include calculating, by the recommendation unit, a degree of similarity between books corresponding to the same user based on the derived preference for a plurality of books of the plurality of users; and predicting the book-based preference of the target user for the target book based on the calculated similarity between the books.
상기 사용자 기반 선호도 및 상기 도서 기반 선호도를 병합하여 대상 사용자의 대상 도서에 대한 선호도를 산출하는 단계는 상기 추천부가 수학식
Figure PCTKR2022004937-appb-img-000004
에 따라 대상 사용자의 대상 도서에 대한 선호도를 산출하며, 상기 Pt는 대상 사용자의 대상 도서에 대한 선호도이고, 상기 Pu는 사용자 기반 선호도이고, 상기 Pb는 도서 기반 선호도이고, 상기 wu는 사용자 기반 선호도에 대한 가중치이고, 상기 wb는 도서 기반 선호도에 대한 가중치인 것을 특징으로 한다.
The step of calculating the preference of the target user for the target book by merging the user-based preference and the book-based preference is performed by the recommendation unit using the following equation
Figure PCTKR2022004937-appb-img-000004
calculates the target user's preference for the target book according to , wherein Pt is the target user's preference for the target book, the Pu is the user-based preference, the Pb is the book-based preference, and the wu is the user-based preference. weight, and wb is a weight for book-based preference.
상기 wu 및 상기 wb는 수학식
Figure PCTKR2022004937-appb-img-000005
과 같은 규칙을 가지며, 상기 wu는 상기 사용자 기반 선호도를 도출할 때 사용된 데이터의 수에 비례하며, 상기 wb는 도서 기반 선호도를 도출할 때 사용된 데이터의 수에 비례하여 설정되는 것을 특징으로 한다.
The wu and wb are the formulas
Figure PCTKR2022004937-appb-img-000005
It is characterized in that the wu is proportional to the number of data used when deriving the user-based preference, and the wb is set in proportion to the number of data used when deriving the book-based preference .
상술한 바와 같은 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 도서 추천을 위한 장치는 복수의 사용자가 독후 활동을 하도록 메뉴를 제공하는 서비스제공부와, 상기 복수의 사용자의 독후 활동 정보를 수집하는 데이터수집부와, 상기 복수의 사용자의 독후 활동 정보를 기초로 복수의 도서에 대한 선호도를 도출하고, 상기 도출된 복수의 사용자의 복수의 도서에 대한 선호도로부터 대상 사용자의 대상 도서에 대한 사용자 기반 선호도 및 도서 기반 선호도를 산출하고, 상기 사용자 기반 선호도 및 상기 도서 기반 선호도를 병합하여 대상 사용자의 대상 도서에 대한 선호도를 산출하는 추천부를 포함한다. In order to achieve the above object, an apparatus for recommending a book according to a preferred embodiment of the present invention includes a service provider that provides a menu for a plurality of users to perform post-reading activities, and collects post-reading activity information of the plurality of users. and a data collection unit that derives a preference for a plurality of books based on the reading activity information of the plurality of users, and a user base for a target book of a target user from the derived preference for a plurality of books of the plurality of users and a recommendation unit for calculating a preference and a book-based preference, and calculating a target user's preference for a target book by merging the user-based preference and the book-based preference.
본 발명에 따르면, 사용자 기반 선호도 및 도서 기반 선호도 양자 모두를 이용하여 대상 사용자의 대상 도서에 대한 선호도를 산출함으로써, 보다 신뢰도 높은 선호도를 산출할 수 있다. According to the present invention, by calculating the preference of the target user for the target book using both the user-based preference and the book-based preference, it is possible to calculate a more reliable preference.
도 1은 본 발명의 실시예에 따른 하이브리드 방식의 도서 추천을 위한 시스템을 설명하기 위한 도면이다. 1 is a diagram for explaining a system for recommending a book in a hybrid method according to an embodiment of the present invention.
도 2는 본 발명의 실시예에 따른 추천서버의 구성을 설명하기 위한 도면이다. 2 is a diagram for explaining the configuration of a recommendation server according to an embodiment of the present invention.
도 3은 본 발명의 실시예에 따른 추천서버 제어부의 세부 적인 구성을 설명하기 위한 도면이다. 3 is a diagram for explaining a detailed configuration of a recommendation server control unit according to an embodiment of the present invention.
도 4는 본 발명의 실시예에 따른 사용자의 신뢰도를 산출하는 방법을 설명하기 위한 흐름도이다. 4 is a flowchart illustrating a method of calculating a user's reliability according to an embodiment of the present invention.
도 5는 본 발명의 실시예에 따른 복수의 사용자를 도서 성향에 따라 클러스터링하기 위한 방법을 설명하기 위한 흐름도이다. 5 is a flowchart illustrating a method for clustering a plurality of users according to a book tendency according to an embodiment of the present invention.
도 6은 본 발명의 실시예에 따른 복수의 사용자를 도서 성향에 따라 클러스터링하기 위한 방법을 설명하기 위한 도면이다. 6 is a diagram for explaining a method for clustering a plurality of users according to a book tendency according to an embodiment of the present invention.
도 7은 본 발명의 실시예에 따른 복수의 사용자의 도서 성향에 따른 클러스터의 임계범위를 설정하는 방법을 설명하기 위한 도면이다. 7 is a view for explaining a method of setting a critical range of a cluster according to the book tendency of a plurality of users according to an embodiment of the present invention.
도 8은 본 발명의 실시예에 따른 협업 필터링을 기초로 하는 도서 선호도를 산출하는 방법을 설명하기 위한 흐름도이다. 8 is a flowchart illustrating a method of calculating a book preference based on collaborative filtering according to an embodiment of the present invention.
도 9는 본 발명의 실시예에 따른 본 발명의 실시예에 따른 사용자의 선호도에 따라 도서를 추천하기 위한 방법을 설명하기 위한 흐름도이다. 9 is a flowchart illustrating a method for recommending a book according to a user's preference according to an embodiment of the present invention.
도 10은 본 발명의 실시예에 따른 컴퓨팅 장치를 나타내는 도면이다. 10 is a diagram illustrating a computing device according to an embodiment of the present invention.
본 발명의 상세한 설명에 앞서, 이하에서 설명되는 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니 되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념으로 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. 따라서 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 가장 바람직한 실시예에 불과할 뿐, 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형 예들이 있을 수 있음을 이해하여야 한다. Prior to the detailed description of the present invention, the terms or words used in the present specification and claims described below should not be construed as being limited to their ordinary or dictionary meanings, and the inventors should develop their own inventions in the best way. It should be interpreted as meaning and concept consistent with the technical idea of the present invention based on the principle that it can be appropriately defined as a concept of a term for explanation. Accordingly, the embodiments described in this specification and the configurations shown in the drawings are only the most preferred embodiments of the present invention, and do not represent all the technical ideas of the present invention, so various equivalents that can replace them at the time of the present application It should be understood that there may be water and variations.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다. 이때, 첨부된 도면에서 동일한 구성 요소는 가능한 동일한 부호로 나타내고 있음을 유의해야 한다. 또한, 본 발명의 요지를 흐리게 할 수 있는 공지 기능 및 구성에 대한 상세한 설명은 생략할 것이다. 마찬가지의 이유로 첨부 도면에 있어서 일부 구성요소는 과장되거나 생략되거나 또는 개략적으로 도시되었으며, 각 구성요소의 크기는 실제 크기를 전적으로 반영하는 것이 아니다. Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. In this case, it should be noted that the same components in the accompanying drawings are denoted by the same reference numerals as much as possible. In addition, detailed descriptions of well-known functions and configurations that may obscure the gist of the present invention will be omitted. For the same reason, some components are exaggerated, omitted, or schematically illustrated in the accompanying drawings, and the size of each component does not fully reflect the actual size.
먼저, 본 발명의 실시예에 따른 하이브리드 방식의 도서 추천을 위한 시스템의 구성에 대해서 설명하기로 한다. 도 1은 본 발명의 실시예에 따른 하이브리드 방식의 도서 추천을 위한 시스템을 설명하기 위한 도면이다. 도 1을 참조하면, 본 발명의 실시예에 따른 추천시스템은 추천서버(10), 도서웹서버(20) 및 사용자장치(30)를 포함한다. First, a configuration of a system for recommending a book in a hybrid method according to an embodiment of the present invention will be described. 1 is a diagram for explaining a system for recommending a book in a hybrid method according to an embodiment of the present invention. Referring to FIG. 1 , a recommendation system according to an embodiment of the present invention includes a recommendation server 10 , a book web server 20 , and a user device 30 .
추천서버(10)는 기본적으로, 서비스에 가입한 사용자에게 도서에 대한 다양한 정보를 교환하고 활용할 수 있는 쇼셜 네트워크 서비스(SNS: Social Network Service) 플랫폼을 제공하기 위한 것이다. 특히, 추천서버(10)는 사용자의 플랫폼 상에서의 활동을 기반으로 사용자의 도서에 대한 선호를 파악한 후, 사용자가 선호하는 도서를 추천할 수 있다. The recommendation server 10 is basically to provide a social network service (SNS: Social Network Service) platform that can exchange and utilize various information about books to users who have subscribed to the service. In particular, the recommendation server 10 may recommend the user's favorite book after identifying the user's preference for a book based on the user's activity on the platform.
도서웹서버(20)는 도서에 대한 정보를 제공하는 다양한 종류의 웹 서버를 통칭한다. 일례로, 도서웹서버(20)는 도서에 대한 정보를 제공하고, 그 도서를 판매하기 위한 서점에서 운영하는 서버가 될 수 있다. 다른 예로, 도서웹서버(20)는 출판사에서 운영하며 해당 출판사에서 출판한 도서에 대한 정보를 제공하는 서버가 될 수 있다. The book web server 20 collectively refers to various types of web servers that provide information on books. For example, the book web server 20 may be a server operated by a bookstore for providing information on books and selling the books. As another example, the book web server 20 may be a server operated by a publisher and providing information on books published by the publisher.
사용자장치(30)는 추천서버(10)가 제공하는 서비스에 가입한 사용자가 사용하는 장치이며, 네트워크를 통해 추천서버(10)에 접속하여 추천서버(10)가 제공하는 서비스를 제공받을 수 있다. 이러한 사용자장치(30)는 퍼스널컴퓨터, 노트북, 태블릿, 패블릿, 스마트폰 등을 예시할 수 있다. The user device 30 is a device used by a user who has subscribed to the service provided by the recommendation server 10 , and can be provided with the service provided by the recommendation server 10 by accessing the recommendation server 10 through a network. . The user device 30 may be exemplified by a personal computer, a notebook computer, a tablet, a phablet, a smart phone, and the like.
다음으로, 본 발명의 실시예에 따른 추천서버(10)의 구성에 대해서 보다 상세하게 설명하기로 한다. 도 2는 본 발명의 실시예에 따른 추천서버의 구성을 설명하기 위한 도면이다. 도 3은 본 발명의 실시예에 따른 추천서버 제어부의 세부 적인 구성을 설명하기 위한 도면이다. Next, the configuration of the recommendation server 10 according to the embodiment of the present invention will be described in more detail. 2 is a diagram for explaining the configuration of a recommendation server according to an embodiment of the present invention. 3 is a diagram for explaining a detailed configuration of a recommendation server control unit according to an embodiment of the present invention.
먼저, 도 2를 참조하면, 본 발명의 실시예에 따른 추천서버(10)는 통신모듈(11), 저장모듈(12) 및 제어모듈(13)을 포함한다. First, referring to FIG. 2 , the recommendation server 10 according to an embodiment of the present invention includes a communication module 11 , a storage module 12 , and a control module 13 .
통신모듈(11)은 네트워크를 통해 도서웹서버(20) 및 사용자장치(30)와 통신하기 위한 것이다. 통신모듈(11)은 네트워크를 통해 데이터를 송수신하기 위해 송신되는 신호를 변조하고, 수신되는 신호를 복조하는 모뎀(modem)을 포함할 수 있다. 이러한 통신모듈(11)은 제어모듈(13)로부터 전달 받은 데이터를 네트워크를 통해 도서웹서버(20) 및 사용자장치(30)로 전송할 수 있다. 또한, 통신모듈(11)은 도서웹서버(20) 및 사용자장치(30) 중 어느 하나로부터 수신되는 데이터를 제어모듈(13)로 전달할 수 있다. The communication module 11 is for communicating with the book web server 20 and the user device 30 through a network. The communication module 11 may include a modem for modulating a signal to be transmitted and demodulating a received signal to transmit/receive data through a network. The communication module 11 may transmit the data received from the control module 13 to the book web server 20 and the user device 30 through the network. In addition, the communication module 11 may transmit data received from any one of the book web server 20 and the user device 30 to the control module 13 .
저장모듈(12)은 추천서버(10)의 동작에 필요한 프로그램 및 데이터를 저장하는 역할을 수행한다. 예컨대, 저장모듈(12)은 사용자의 소셜 활동 및 독후 활동과 관련된 정보, 민간 및 공공에서 수집된 도서 정보, 도서의 표지 및 내지 이미지, 도서의 메타 데이터 등을 저장할 수 있다. 저장모듈(12)에 저장되는 각 종 데이터는 관리자의 조작에 따라 등록, 삭제, 변경, 추가될 수 있다. The storage module 12 serves to store programs and data necessary for the operation of the recommendation server 10 . For example, the storage module 12 may store information related to a user's social and post-reading activities, book information collected in the private and public, cover and inside images of books, metadata of books, and the like. Various types of data stored in the storage module 12 may be registered, deleted, changed, or added according to the operation of the administrator.
제어모듈(13)은 추천서버(10)의 전반적인 동작 및 추천서버(10)의 내부 블록들 간 신호 흐름을 제어하고, 데이터를 처리하는 데이터 처리 기능을 수행할 수 있다. 제어모듈(13)은 중앙처리장치(central processing unit), 디지털신호처리기(digital signal processor) 등이 될 수 있다. 또한, 제어모듈(13)은 추가로 이미지 프로세서(Image processor) 혹은 GPU(Graphic Processing Unit)를 더 구비할 수 있다. 이러한 제어모듈(13)은 도 3에 도시된 바와 같이, 데이터수집부(100), 서비스제공부(200), 및 추천부(300)를 포함한다. The control module 13 may control the overall operation of the recommendation server 10 and the signal flow between internal blocks of the recommendation server 10, and may perform a data processing function of processing data. The control module 13 may be a central processing unit, a digital signal processor, or the like. In addition, the control module 13 may further include an image processor or a graphic processing unit (GPU). As shown in FIG. 3 , the control module 13 includes a data collection unit 100 , a service provision unit 200 , and a recommendation unit 300 .
데이터수집부(100)는 추천서버(10)가 서비스를 제공하기 위해 필요한 데이터 및 추천을 위해 필요한 데이터를 수집하기 위한 것이다. 데이터수집부(100)는 통신모듈(11)을 통해 도서웹서버(20)에 접속하여 도서 정보를 수집할 수 있다. 이때, 클롤링(crawling) 기법이 이용될 수 있다. 도서 정보는 도서의 제목, 작가, 번역자, 출판일, 판, 쇄 등과 같은 도서 메타 정보, 표지 및 내지 이미지, 주요 페이지의 텍스트 등을 포함한다. 또한, 도서 정보는 공신력 있는 주체가 공표한 베스트셀러 등의 도서 평가 정보를 더 포함할 수 있다. 또한, 데이터수집부(100)는 사용자의 소셜 활동 및 독후 활동에 대한 정보를 수집할 수 있다. 이에 대해서는 아래에서 더 상세하게 설명될 것이다. The data collection unit 100 is for collecting data necessary for the recommendation server 10 to provide a service and data necessary for a recommendation. The data collection unit 100 may collect book information by accessing the book web server 20 through the communication module 11 . In this case, a crawling technique may be used. The book information includes book meta-information such as title, author, translator, publication date, edition, print, etc. of the book, cover and internal images, text of major pages, and the like. In addition, the book information may further include book evaluation information, such as a bestseller published by a publicly trusted subject. Also, the data collection unit 100 may collect information on the user's social activity and post-reading activity. This will be described in more detail below.
서비스제공부(200)는 기본적으로, 사용자가 소셜 활동 및 독후 활동을 할 수 있도록 하기 위한 것이다. 서비스제공부(200)는 사용자의 소셜 활동을 위해 사용자에게 계정을 할당하고, 사용자가 사용자장치(30)를 통해 할당된 계정에 사용자 자신이 읽은 도서에 대한 정보인 개인독후정보를 업로드 할 수 있도록 하는 인터페이스를 제공한다. 개인독후정보는 예컨대, 도서의 표지 및 내지 이미지, 주요 페이지의 텍스트, 서평 등을 포함한다. 또한, 서비스제공부(200)는 사용자가 다른 계정을 팔로우(follow)할 수 있도록 하는 메뉴를 제공하며, 사용자가 팔로우한 다른 계정에 업로드된 개인독후정보를 사용자가 열람할 수 있도록 피드(feed)하는 기능을 제공한다. 그리고 서비스제공부(200)는 사용자가 다른 계정의 개인독후정보에 대해 예컨대, 좋아요, 보트(vote), 추천, 감정 이모티콘 선택 등의 선호의사표시를 하거나, 코멘트 할 수 있도록 하는 메뉴를 제공한다. 이에 따라, 데이터수집부(100)는 사용자 별로 사용자가 업로드 한 개인독후정보의 수, 사용자가 업로드 한 개인독후정보에 대한 선호의사표시 및 코멘트의 수, 사용자의 팔로잉 수, 팔로워 수 등의 소셜 활동 정보를 수집하여 저장할 수 있다. The service providing unit 200 is basically to enable the user to engage in social activities and post-reading activities. The service providing unit 200 allocates an account to the user for the user's social activity, and allows the user to upload personal post-reading information, which is information about the book the user has read, to the account allocated through the user device 30 . provides an interface to The personal post-reading information includes, for example, the cover and inside images of books, texts of major pages, and book reviews. In addition, the service providing unit 200 provides a menu that allows the user to follow other accounts, and feeds so that the user can view the personal post-reading information uploaded to the other accounts followed by the user. provides the function to In addition, the service providing unit 200 provides a menu that allows the user to express preference or comment on personal reading information of other accounts, for example, likes, votes, recommendations, and selection of emotional emoticons. Accordingly, the data collection unit 100 determines the number of personal post-reading information uploaded by the user for each user, the number of comments and preferences for the personal post-reading information uploaded by the user, the number of users' following, the number of followers, etc. Activity information can be collected and stored.
또한, 서비스제공부(200)는 사용자의 독후 활동을 위해 독서퀴즈, 책서랍 및 북핑톡 메뉴를 제공할 수 있다. 서비스제공부(200)는 독서퀴즈 메뉴를 통해 특정 도서에 관련된 퀴즈를 내고, 이를 맞추면 점수가 가산되는 독서퀴즈를 제공할 수 있다. 사용자는 사용자장치(30)를 통해 해당 메뉴에서 독서퀴즈에 참여할 수 있다. 서비스제공부(200)는 책서랍 메뉴를 통해 사용자가 원하는 도서의 도서 정보를 저장하는 기능을 제공할 수 있다. 서비스제공부(200)는 북핑톡 메뉴를 통해 사용자가 특정 도서에 대해 수치로 평가할 수 있는 기능을 제공한다. 이에 따라, 데이터수집부(100)는 사용자 별로 사용자가 참여한 독서 퀴즈의 도서의 식별 정보, 사용자의 응모 횟수 및 획득한 점수, 사용자가 책서랍 메뉴를 통해 저장한 도서의 식별 정보 및 북핑톡 메뉴를 통해 사용자가 평가한 도서의 식별 정보, 사용자가 평가한 수치 등의 독후 활동 정보를 수집하여 저장할 수 있다. Also, the service providing unit 200 may provide a reading quiz, a book drawer, and a Book Ping Talk menu for the user's post-reading activities. The service providing unit 200 may provide a reading quiz in which a score is added if a quiz related to a specific book is issued through the reading quiz menu, and if the quiz is answered correctly. The user may participate in the reading quiz in the corresponding menu through the user device 30 . The service providing unit 200 may provide a function of storing the book information of the book desired by the user through the book drawer menu. The service providing unit 200 provides a function by which the user can numerically evaluate a specific book through the Book Ping Talk menu. Accordingly, the data collection unit 100 receives the identification information of the book of the reading quiz participated by the user, the number of applications and the score obtained by the user, the identification information of the book stored by the user through the book drawer menu, and the Book Ping Talk menu for each user. It is possible to collect and store post-reading activity information, such as identification information of books evaluated by users, and numerical values evaluated by users.
추천부(300)는 협업 필터링을 통해 사용자의 쇼셜 활동 및 독후 활동을 기준으로 사용자의 선호를 분석하고, 사용자가 선호하는 도서를 추천하기 위한 것이다. 이러한 추천부(300)의 동작은 아래에서 더 상세하게 설명될 것이다. The recommendation unit 300 is for analyzing the user's preference based on the user's social activity and reading activity through collaborative filtering, and recommending a book preferred by the user. The operation of the recommendation unit 300 will be described in more detail below.
다음으로, 본 발명의 실시예에 따른 하이브리드 방식의 도서 추천을 위한 방법에 대해서 설명하기로 한다. 먼저, 본 발명의 실시예에 따른 사용자의 신뢰도를 산출하는 방법에 대해서 설명하기로 한다. 도 4는 본 발명의 실시예에 따른 사용자의 신뢰도를 산출하는 방법을 설명하기 위한 흐름도이다. Next, a method for a hybrid book recommendation according to an embodiment of the present invention will be described. First, a method for calculating user reliability according to an embodiment of the present invention will be described. 4 is a flowchart illustrating a method of calculating a user's reliability according to an embodiment of the present invention.
도 4를 참조하면, 데이터수집부(100)는 S110 단계에서 본 발명의 실시예에 따른 사용자의 도서에 대한 소셜 활동과 독후 활동에 대한 정도를 나타내는 활동정보를 수집한다. 여기서, 활동정보는 좋아요 수(A), 코멘트 수(B), 사용콘텐츠 수(Cu), 팔로잉 수(Fing) 및 팔로워 수(Fwer)를 포함한다. 여기서, 좋아요 수(A)는 해당 사용자의 콘텐츠에 태깅된 모든 좋아요 수를 나타낸다. 코멘트 수(B)는 해당 사용자의 콘텐츠에 태깅된 모든 코멘트 수를 나타낸다. 사용콘텐츠 수(Cu)는 해당 사용자가 사용한 모든 콘텐츠 수를 나타낸다. 팔로잉 수(Fing)는 본 발명의 실시예에 따른 도서에 대한 소셜 네트워크에서 해당 사용자의 팔로잉 수를 나타낸다. 팔로워 수(Fwer)는 본 발명의 실시예에 따른 도서에 대한 소셜 네트워크에서 해당 사용자의 팔로워 수를 나타낸다. Referring to FIG. 4 , the data collection unit 100 collects activity information indicating the degree of the user's social activity and post-reading activity for the book according to the embodiment of the present invention in step S110. Here, the activity information includes the number of likes (A), the number of comments (B), the number of content used (Cu), the number of followings (Fing), and the number of followers (Fwer). Here, the number of likes (A) represents the number of all likes tagged on the content of the corresponding user. The number of comments (B) indicates the number of all comments tagged on the content of the corresponding user. The number of contents used (Cu) indicates the number of all contents used by the corresponding user. The number of following (Fing) indicates the number of following of a corresponding user in a social network for a book according to an embodiment of the present invention. The number of followers (Fwer) indicates the number of followers of the corresponding user in the social network for the book according to the embodiment of the present invention.
다음으로, 추천부(300)는 S120 단계에서 활동정보를 기초로 사용자의 소셜 행위를 분석하여 사용자의 소셜 행위의 정도를 나타내는 소셜행위지수를 산출한다. 추천부(300)는 다음의 수학식 1에 따라 소셜행위지수(K)를 산출할 수 있다. Next, the recommendation unit 300 calculates a social behavior index indicating the degree of the user's social behavior by analyzing the user's social behavior based on the activity information in step S120. The recommendation unit 300 may calculate the social behavior index (K) according to Equation 1 below.
Figure PCTKR2022004937-appb-img-000006
Figure PCTKR2022004937-appb-img-000006
여기서, K는 소셜행위지수이다. 또한, A는 좋아요 수이고, B는 코멘트 수를 나타낸다. Here, K is the social behavior index. Also, A is the number of likes and B is the number of comments.
다음으로, 추천부(300)는 S130 단계에서 활동정보를 기초로 사용자의 콘텐츠 이용을 분석하여 사용자의 콘텐츠 이용 정도를 나타내는 콘텐츠이용지수를 산출한다. 이때, 추천부(300)는 다음의 수학식 2에 따라 콘텐츠이용지수(C)를 산출할 수 있다. Next, the recommendation unit 300 analyzes the user's content use based on the activity information in step S130 and calculates a content use index indicating the user's content use degree. At this time, the recommendation unit 300 may calculate the content use index (C) according to the following Equation (2).
Figure PCTKR2022004937-appb-img-000007
Figure PCTKR2022004937-appb-img-000007
여기서, C는 콘텐츠이용지수를 나타낸다. Call은 전체 컨텐츠의 수이고, Cu는 사용자가 사용한 콘텐츠의 수를 나타낸다. 또한, w는 가중치로 미리 설정되는 값이다. Here, C represents the content usage index. Call is the total number of contents, and Cu is the number of contents used by the user. In addition, w is a value preset as a weight.
다음으로, 추천부(300)는 S140 단계에서 활동정보를 기초로 사용자의 소셜 관계의 강도를 나타내는 소셜관계지수를 산출한다. 이때, 추천부(300)는 다음의 수학식 3에 따라 소셜관계지수(F)를 산출할 수 있다. Next, the recommendation unit 300 calculates a social relationship index indicating the strength of the user's social relationship based on the activity information in step S140. In this case, the recommendation unit 300 may calculate the social relationship index (F) according to the following Equation (3).
Figure PCTKR2022004937-appb-img-000008
Figure PCTKR2022004937-appb-img-000008
여기서, F는 소셜관계지수를 나타낸다. 또한, Fing은 팔로잉 수이고, Fwer는 팔로워 수를 나타낸다. Here, F represents the social relationship index. In addition, Fing is the number of following, and Fwer indicates the number of followers.
다음으로, 추천부(300)는 S150 단계에서 앞서 산출된 소셜행위지수(K), 콘텐츠이용지수(C) 및 소셜관계지수(F)를 모두 고려하여 사용자의 신뢰도(T)를 산출한다. 이때, 추천부(300)는 다음의 수학식 4에 따라 신뢰도(T)를 산출할 수 있다. Next, the recommendation unit 300 calculates the user's reliability (T) in consideration of all of the previously calculated social behavior index (K), content use index (C), and social relationship index (F) in step S150. In this case, the recommendation unit 300 may calculate the reliability T according to Equation 4 below.
Figure PCTKR2022004937-appb-img-000009
Figure PCTKR2022004937-appb-img-000009
여기서, K는 소셜행위지수이고, wa는 소셜행위지수에 대한 가중치인 소셜행위가중치이다. C는 콘텐츠이용지수이고, wb는 콘텐츠이용지수에 대한 가중치인 콘텐츠이용가중치이다. 그리고 F는 소셜관계지수이고, wc는 소셜관계지수에 대한 가중치인 소셜관계가중치를 나타낸다. Here, K is a social behavior index, and wa is a social behavior weight that is a weight for the social behavior index. C is the content use index, and wb is the content use weight, which is a weight for the content use index. And F is the social relationship index, and wc represents the social relationship weight, which is a weight for the social relationship index.
신뢰도가 산출되면, 추천부(300)는 S160 단계에서 신뢰도가 소정 수치 이상인 사용자를 선별한다. When the reliability is calculated, the recommendation unit 300 selects users whose reliability is greater than or equal to a predetermined value in step S160 .
본 발명의 실시예에 따르면 복수의 사용자를 도서 성향에 따라 클러스터링할 수 있다. 도 5는 본 발명의 실시예에 따른 복수의 사용자를 도서 성향에 따라 클러스터링하기 위한 방법을 설명하기 위한 흐름도이다. 도 6은 본 발명의 실시예에 따른 복수의 사용자를 도서 성향에 따라 클러스터링하기 위한 방법을 설명하기 위한 도면이다. 도 7은 본 발명의 실시예에 따른 복수의 사용자의 도서 성향에 따른 클러스터의 임계범위를 설정하는 방법을 설명하기 위한 도면이다. According to an embodiment of the present invention, a plurality of users may be clustered according to the book tendency. 5 is a flowchart illustrating a method for clustering a plurality of users according to a book tendency according to an embodiment of the present invention. 6 is a diagram for explaining a method for clustering a plurality of users according to a book tendency according to an embodiment of the present invention. 7 is a view for explaining a method of setting a critical range of a cluster according to the book tendency of a plurality of users according to an embodiment of the present invention.
도 5를 참조하면, 데이터수집부(100)는 S200 단계에서 복수의 사용자 각각에 대해 사용자의 특징을 나타내는 사용자정보와, 그 사용자가 선호하는 도서의 특징을 나타내는 선호도서정보를 수집한다. 이때, 복수의 사용자는 앞서 도 4와 같은 방법에 따라 선별된 신뢰도가 소정 수치 이상인 사용자로 한정할 수 있다. 사용자정보는 사용자의 나이, 성별, 사는 지역, 학력 등의 정보를 포함하며, 회원 가입 시, 입력된 정보로부터 얻을 수 있다. 선호도서정보는 사용자가 선호하는 도서의 장르, 주제, 단어, 구문 등이 될 수 있다. 이러한 선호도서정보는 사용자의 소셜 활동 및 독후 활동에 대한 정보로부터 얻을 수 있다. Referring to FIG. 5 , the data collection unit 100 collects, for each of a plurality of users, user information indicating the characteristics of the user and preference book information indicating the characteristics of the book preferred by the user in step S200 . In this case, the plurality of users may be limited to users whose reliability selected according to the method shown in FIG. 4 is greater than or equal to a predetermined value. User information includes information such as the user's age, gender, region of residence, educational background, and the like, and can be obtained from the information entered at the time of membership registration. The preferred book information may be a genre, a subject, a word, a phrase, etc. of a book preferred by the user. Such preference book information may be obtained from information about the user's social activity and post-reading activity.
데이터수집부(100)는 S210 단계에서 복수의 사용자 각각에 대해 사용자정보와 선호도서정보를 소정의 벡터공간(VS)에 임베딩(embedding)하여 사용자의 특징과 사용자가 선호하는 도서의 특징이 내재된 복수의 사용자선호벡터를 생성한다. 도 6에 복수의 사용자선호벡터가 임베딩된 벡터공간(VS)이 도시되었다. The data collection unit 100 embeds user information and preferred book information for each of a plurality of users in a predetermined vector space (VS) in step S210, so that the user's characteristics and the user's preferred book characteristics are embedded. A plurality of user preference vectors are generated. 6 shows a vector space VS in which a plurality of user preference vectors are embedded.
데이터수집부(100)는 S220 단계에서 도시된 바와 같은 벡터공간(VS) 상에서 무작위로(randomly) 복수의 사용자선호벡터 중 소정 수의 클러스터의 중심벡터를 선택한다. 각 클러스터의 중심벡터가 선택되면, 데이터수집부(100)는 S230 단계에서 도 7에 도시된 바와 같은 벡터공간(VS) 상에서 복수의 사용자선호벡터를 소정 수의 클러스터의 중심벡터와의 거리에 따라 클러스터링하여 복수의 클러스터(CL1, CL2, CL3, ...)를 생성한다. 즉, S230 단계에서 데이터수집부(100)는 도 6에 도시된 바와 같은 벡터공간(VS) 상에서 복수의 사용자선호벡터의 소정 수의 클러스터의 중심벡터 각각에 대한 거리를 산출하고, 복수의 사용자선호벡터 각각을 클러스터의 중심벡터와의 거리가 최소인 클러스터에 포함시킨다. 이어서, 데이터수집부(100)는 S240 단계에서 생성된 복수의 클러스터(CL1, CL2, CL3, ...) 별로 클러스터의 중심벡터를 다시 선정한다. 예컨대, S240 단계에서 데이터수집부(100)는 각 클러스터의 복수의 사용자선호벡터 중 중간값을 가지는 사용자선호벡터를 중심벡터로 선정할 수 있다. The data collection unit 100 randomly selects a center vector of a predetermined number of clusters from among a plurality of user preference vectors in the vector space VS as shown in step S220. When the center vector of each cluster is selected, the data collection unit 100 selects a plurality of user preference vectors in the vector space VS as shown in FIG. 7 in step S230 according to the distance from the center vector of a predetermined number of clusters. A plurality of clusters (CL1, CL2, CL3, ...) are generated by clustering. That is, in step S230 , the data collection unit 100 calculates a distance to each of the center vectors of a predetermined number of clusters of a plurality of user preference vectors in the vector space VS as shown in FIG. 6 , and the plurality of user preferences Each vector is included in the cluster with the smallest distance from the center vector of the cluster. Next, the data collection unit 100 selects the center vector of the cluster again for each of the plurality of clusters CL1, CL2, CL3, ..., generated in step S240. For example, in step S240 , the data collection unit 100 may select a user preference vector having an intermediate value among a plurality of user preference vectors of each cluster as a center vector.
이어서, 데이터수집부(100)는 S250 단계에서 모든 사용자선호벡터가 앞서(S240) 다시 선정된 클러스터의 중심벡터와의 거리가 최소인 클러스터에 포함되었는지 여부를 확인할 수 있다. 이러한 S250 단계의 확인 결과, 모든 사용자선호벡터가 앞서(S240) 다시 선정된 클러스터의 중심벡터와의 거리가 최소인 클러스터에 포함되어 있지 않으면, 데이터수집부(100)는 전술한 S230 단계 내지 S250 단계를 반복한다. 즉, 데이터수집부(100)는 다음의 수학식 5가 최소가 될 때까지 S230 단계 내지 S250 단계를 반복한다. Subsequently, the data collection unit 100 may check whether all user preference vectors are included in the cluster having the smallest distance from the center vector of the previously selected cluster ( S240 ) in step S250 . As a result of checking in step S250, if all user preference vectors are not included in the cluster having the minimum distance from the center vector of the previously selected cluster again (S240), the data collection unit 100 performs steps S230 to S250 described above. Repeat. That is, the data collection unit 100 repeats steps S230 to S250 until the following Equation 5 becomes the minimum.
Figure PCTKR2022004937-appb-img-000010
Figure PCTKR2022004937-appb-img-000010
수학식 5에서, i는 사용자선호벡터의 인덱스이고, Si는 i번째 사용자선호벡터를 의미한다. 또한, j는 클러스터의 인덱스이고, Cj는 j번째 클러스터의 중심벡터를 나타낸다. 그리고 fij는 플래그 변수이며, i번째 사용자선호벡터가 j번째 클러스터에 속하면 1, 그렇지 않으면 0이다. In Equation 5, i is the index of the user preference vector, and Si is the i-th user preference vector. Also, j is the index of the cluster, and Cj is the center vector of the j-th cluster. And fij is a flag variable, 1 if the i-th user preference vector belongs to the j-th cluster, and 0 otherwise.
한편, S250 단계의 확인 결과, 모든 사용자선호벡터가 앞서(S240) 다시 선정된 클러스터의 중심벡터와의 거리가 최소인 클러스터에 포함되어 있으면, 데이터수집부(100)는 S260 단계에서 현재의 클러스터를 최적화된 클러스터로 결정한다. On the other hand, as a result of checking in step S250, if all user preference vectors are included in the cluster having the smallest distance from the center vector of the previously selected cluster (S240), the data collection unit 100 selects the current cluster in step S260. Determine the optimized cluster.
그러면, 데이터수집부(100)는 S270 단계에서 최적화된 복수의 클러스터 각각에서 컨벡스 헐(Convex Hull)을 도출한다. 예컨대, 도 7에 어느 하나의 클러스터가 도시되었다. 도시된 바와 같이, 데이터수집부(100)는 클러스터에 포함된 복수의 사용자선호벡터 중 복수의 컨벡스를 선택하여 컨벡스 헐(Convex Hull)을 구성할 수 있다. 이어서, 데이터수집부(100)는 S280 단계에서 컨벡스 헐을 구성하는 다각형의 무게 중심을 해당 클러스터의 중심으로 설정한다. 예컨대, 데이터수집부(100)는 도 7에 도시된 바와 같이, 컨벡스 헐을 구성하는 6각형의 무게 중심을 클러스터의 중심으로 설정할 수 있다. 클러스터의 중심에는 사용자선호벡터가 존재하지 않을 수도 있지만, 클러스터의 중심은 사용자선호벡터와 동일한 차원의 텐서인 사용자선호벡터로 표현될 수 있다. Then, the data collection unit 100 derives a convex hull from each of the plurality of clusters optimized in step S270 . For example, any one cluster is shown in FIG. 7 . As shown, the data collection unit 100 may configure a convex hull by selecting a plurality of convex among a plurality of user preference vectors included in the cluster. Next, the data collection unit 100 sets the center of gravity of the polygon constituting the convex hull as the center of the cluster in step S280. For example, the data collection unit 100 may set the center of gravity of the hexagon constituting the convex hull as the center of the cluster, as shown in FIG. 7 . The user preference vector may not exist at the center of the cluster, but the center of the cluster may be expressed as a user preference vector that is a tensor of the same dimension as the user preference vector.
이어서, 데이터수집부(100)는 S290 단계에서 복수의 클러스터 각각에서 클러스터의 중심과 복수의 사용자선호벡터와의 차이를 나타내는 손실을 구하고, 손실의 평균 및 표준 편차로부터 임계손실(T)을 산출한다. Next, the data collection unit 100 obtains a loss representing a difference between the center of a cluster and a plurality of user preference vectors in each of the plurality of clusters in step S290, and calculates a critical loss (T) from the average and standard deviation of the loss .
보다 자세하게 설명하면, 데이터수집부(100)는 다음의 수학식 2에 따라 클러스터의 중심(Mk)과 복수의 사용자선호벡터(Sn)와의 차이를 나타내는 손실(E)을 산출한다. In more detail, the data collection unit 100 calculates a loss E representing the difference between the center Mk of the cluster and the plurality of user preference vectors Sn according to Equation 2 below.
Figure PCTKR2022004937-appb-img-000011
Figure PCTKR2022004937-appb-img-000011
수학식 6에서 E는 손실을 나타내며, j는 클러스터의 인덱스이고, Mj는 j번째 클러스터의 중심을 나타낸다. i는 사용자선호벡터의 인덱스이고, Si은 i번째 사용자선호벡터를 의미한다. In Equation 6, E denotes a loss, j denotes an index of a cluster, and Mj denotes the center of the j-th cluster. i is the index of the user preference vector, and Si is the i-th user preference vector.
그런 다음, 데이터수집부(100)는 손실의 평균 및 표준 편차로부터 다음의 수학식 7에 따라 임계손실(T)을 산출한다. Then, the data collection unit 100 calculates the critical loss (T) according to the following equation (7) from the average and standard deviation of the loss.
Figure PCTKR2022004937-appb-img-000012
Figure PCTKR2022004937-appb-img-000012
수학식 7에서, Et는 임계손실을 의미한다. 그리고 m은 앞서 수학식 6에 따라 산출된 클러스터의 중심(Mj)과 복수의 사용자선호벡터(Si)와의 차이를 나타내는 손실(E)의 평균을 나타낸다. 그리고 D는 앞서 수학식 6에 따라 산출된 클러스터의 중심(Mj)과 복수의 사용자선호벡터(Si)와의 차이를 나타내는 손실(E)의 표준 편차를 나타낸다. 또한,
Figure PCTKR2022004937-appb-img-000013
는 표준편차 에 대한 가중치이며,
Figure PCTKR2022004937-appb-img-000014
의 범위를 가지며, 모집단의 크기에 비례하여 미리 설정되는 하이퍼파라미터이다. 데이터수집부(100)는 S300 단계에서 산출된 임계손실(Et)을 각 클러스터 별로 저장한다.
In Equation 7, Et means critical loss. And m represents the average of the loss (E) representing the difference between the cluster center (Mj) and the plurality of user preference vectors (Si) calculated according to Equation 6 above. And D denotes the standard deviation of the loss (E) representing the difference between the center (Mj) of the cluster and the plurality of user preference vectors (Si) calculated according to Equation 6 above. In addition,
Figure PCTKR2022004937-appb-img-000013
is the weight for the standard deviation,
Figure PCTKR2022004937-appb-img-000014
It is a hyperparameter that has a range of , and is preset in proportion to the size of the population. The data collection unit 100 stores the threshold loss Et calculated in step S300 for each cluster.
다음으로, 본 발명의 실시예에 따른 협업 필터링을 기초로 하는 도서 선호도를 산출하는 방법에 대해서 설명하기로 한다. 도 8은 본 발명의 실시예에 따른 협업 필터링을 기초로 하는 도서 선호도를 산출하는 방법을 설명하기 위한 흐름도이다. Next, a method for calculating book preference based on collaborative filtering according to an embodiment of the present invention will be described. 8 is a flowchart illustrating a method of calculating a book preference based on collaborative filtering according to an embodiment of the present invention.
도 8을 참조하면, 추천부(300)는 S410 단계에서 독후 활동 정보를 기초로 복수의 사용자의 복수의 도서에 대한 선호도를 도출한다. 예컨대, 전술한 바와 같이, 독후 활동 정보는 사용자가 참여한 독서 퀴즈의 도서의 식별 정보, 사용자의 독서 퀴즈에 대한 응모 횟수 및 획득한 점수, 사용자가 책서랍 메뉴를 통해 특정 공간에 저장한 도서의 식별 정보 및 북핑톡 메뉴를 통해 사용자가 평점을 부여한 도서의 식별 정보, 사용자의 평점 등의 독후 활동 정보를 포함한다. 이에 따라, 추천부(300)는 독서 퀴즈에 대한 사용자의 응모 횟수 및 획득한 점수를 기초로 응모 횟수에 반비례하고 획득한 점수에 비례하여 사용자의 해당 도서에 대한 선호도를 나타내는 선호점수를 산출한다. 예컨대, 추천부(300)는 [가중치×(획득한 점수가 소정 점수 이상인 횟수/응모 횟수)]와 같은 수학식에 따라 선호도를 산출할 수 있다. 추천부(300)는 사용자가 책서랍 메뉴를 통해 저장한 도서에 대해 일정한(constant) 선호점수를 부여한다. 예컨대, 추천부(300)는 책서랍 메뉴를 통해 저장한 도서에 대해 1점을 부여할 수 있다. 또한, 추천부(300)는 북핑톡 메뉴를 통해 사용자가 평점을 부여한 도서에 대해 일정한(constant) 선호점수를 부여하며, 사용자의 평점에 비례하여 선호점수를 추가로 부여한다. 가령, 추천부(300)는 북핑톡 메뉴를 통해 사용자가 평가한 도서에 대해 1점을 부여하고, 수학식 [사용자 평점/평점 최대값]에 따라 추가로 선호점수를 부여한다. 이에 따라, 추천부(300)는 도서에 대한 선호점수를 합산하여 해당 도서의 선호도를 산출한다. Referring to FIG. 8 , the recommendation unit 300 derives a plurality of users' preferences for a plurality of books based on the reading activity information in step S410 . For example, as described above, the post-reading activity information includes identification information of a book in a reading quiz in which the user participated, the number of applications and scores obtained for the user's reading quiz, and identification of a book stored in a specific space by the user through the book drawer menu Information and post-reading activity information such as identification information of a book given a rating by the user through the Bookping Talk menu, and the user's rating are included. Accordingly, the recommendation unit 300 calculates a preference score indicating the user's preference for the corresponding book in inverse proportion to the number of applications based on the number of applications and the scores obtained by the user for the reading quiz and in proportion to the scores obtained. For example, the recommendation unit 300 may calculate the preference according to an equation such as [weight x (the number of times the acquired score is equal to or greater than a predetermined score/number of applications)]. The recommendation unit 300 gives a constant preference score to the book stored by the user through the book drawer menu. For example, the recommendation unit 300 may give one point to a book stored through the book drawer menu. In addition, the recommendation unit 300 gives a constant preference score to a book given a rating by the user through the Book Ping Talk menu, and additionally gives a preference score in proportion to the user's rating. For example, the recommendation unit 300 gives 1 point to the book evaluated by the user through the Book Ping Talk menu, and additionally gives a preference score according to the equation [user rating/maximum value]. Accordingly, the recommendation unit 300 calculates the preference of the corresponding book by adding up the preference scores for the book.
일례로, 추천부(300)가 독후 활동 정보를 기초로 복수의 사용자(U1, U2, U3...)의 복수의 도서(B1, B2, B3, ...)에 대한 선호도는 다음의 표 1과 같다고 가정한다. As an example, the recommendation unit 300 shows the preference for a plurality of books (B1, B2, B3, ...) of a plurality of users (U1, U2, U3...) based on the post-reading activity information in the following table. Assume it is equal to 1.
B1B1 B2B2 B3B3 B4B4 B5B5 ......
U1U1 55 44 44 33
U2U2 1One 00 1One 44
U3U3 44 44 55 33
U4U4 22 1One 44 33
U5U5 44 44 44 22
...... ......
다음으로, 추천부(300)는 S420 단계에서 복수의 사용자의 복수의 도서에 대한 선호도를 기초로 동일한 도서에 대응하는 사용자 상호 간의 유사도를 산출한다. 이러한 유사도는 코사인 유사도, 적응적 코사인 유사도 및 피어슨 상관계수 중 어느 하나를 이용하여 산출할 수 있다. 일례로, 추천부(300)는 다음의 수학식 8에 따라 제2 사용자(U2)와 제4 사용자(U4)의 유사도(코사인 유사도)를 산출할 수 있다. Next, the recommendation unit 300 calculates a degree of similarity between users corresponding to the same book based on the plurality of users' preferences for the plurality of books in step S420 . Such similarity may be calculated using any one of cosine similarity, adaptive cosine similarity, and Pearson's correlation coefficient. For example, the recommendation unit 300 may calculate the similarity (cosine similarity) between the second user U2 and the fourth user U4 according to Equation 8 below.
Figure PCTKR2022004937-appb-img-000015
Figure PCTKR2022004937-appb-img-000015
여기서, S는 유사도를 나타낸다. 또한, n은 제1 사용자와 제2 사용자 양자 모두가 읽은 도서의 수를 나타내며, i는 제1 사용자와 제2 사용자 양자 모두가 읽은 도서의 인덱스이다. R1은 제1 사용자의 선호도를 나타내며, R2는 제2 사용자의 선호도를 나타낸다. 따라서 제1 사용자와 제2 사용자의 유사도는 다음의 수학식 9와 같이 산출될 수 있다. Here, S represents the degree of similarity. Also, n represents the number of books read by both the first user and the second user, and i is an index of books read by both the first user and the second user. R1 represents the preference of the first user, and R2 represents the preference of the second user. Accordingly, the degree of similarity between the first user and the second user may be calculated as in Equation 9 below.
Figure PCTKR2022004937-appb-img-000016
Figure PCTKR2022004937-appb-img-000016
전술한 방법으로 산출된 동일한 도서에 대응하는 사용자 상호 간의 유사도는 다음의 표 2와 같다고 가정한다. It is assumed that the degree of similarity between users corresponding to the same book calculated by the above method is as shown in Table 2 below.
U1U1 U2U2 U3U3 U4U4 U5U5 ......
U1U1 1.001.00 0.840.84 0.960.96 0.820.82 0.980.98
U2U2 0.840.84 1.001.00 0.610.61 0.840.84 0.630.63
U3U3 0.960.96 0.610.61 1.001.00 0.970.97 0.990.99
U4U4 0.820.82 0.840.84 0.970.97 1.001.00 0.850.85
U5U5 0.980.98 0.630.63 0.990.99 0.850.85 1.001.00
...... ......
추천부(300)는 S430 단계에서 사용자 상호 간의 유사도를 기초로 대상 사용자의 대상 도서에 대한 사용자 기반 선호도를 예측한다. 이때, 추천부(300)는 다음의 수학식 10에 따라 가중합을 구하여 대상 사용자의 대상 도서에 대한 사용자 기반 선호도를 산출할 수 있다. The recommendation unit 300 predicts the user-based preference for the target book of the target user based on the degree of similarity between the users in step S430 . In this case, the recommendation unit 300 may calculate the user-based preference for the target book of the target user by obtaining a weighted sum according to Equation 10 below.
Figure PCTKR2022004937-appb-img-000017
Figure PCTKR2022004937-appb-img-000017
여기서, Pu는 예측값이며, 사용자 기반 선호도를 나타낸다. S는 대상 사용자와 다른 사용자 간의 유사도이며, R은 대상 도서에 대한 다른 사용자의 선호도를 나타낸다. Here, Pu is a predicted value and represents user-based preference. S is the similarity between the target user and other users, and R is the preference of other users for the target book.
예컨대, 추천부(300)는 다음의 수학식 11에 따라 제3 사용자(U3)의 제3 도서(B3)에 대한 사용자 기반 선호도 Pu를 산출할 수 있다. For example, the recommendation unit 300 may calculate the user-based preference Pu for the third book B3 of the third user U3 according to Equation 11 below.
Figure PCTKR2022004937-appb-img-000018
Figure PCTKR2022004937-appb-img-000018
한편, 추천부(300)는 S440 단계에서 복수의 사용자의 복수의 도서에 대한 선호도를 기초로 동일한 사용자에 대응하는 도서 상호 간의 유사도를 산출한다. 이러한 유사도는 코사인 유사도, 적응적 코사인 유사도 및 피어슨 상관계수 중 어느 하나를 이용하여 산출할 수 있다. Meanwhile, the recommendation unit 300 calculates a degree of similarity between books corresponding to the same user based on the plurality of users' preferences for a plurality of books in step S440 . Such similarity may be calculated using any one of cosine similarity, adaptive cosine similarity, and Pearson's correlation coefficient.
일례로, 추천부(300)는 다음의 수학식 12에 따라 제2 도서(B2)와 제3 도서(B3)의 유사도(코사인 유사도)를 산출할 수 있다. For example, the recommendation unit 300 may calculate the similarity (cosine similarity) between the second book B2 and the third book B3 according to Equation 12 below.
Figure PCTKR2022004937-appb-img-000019
Figure PCTKR2022004937-appb-img-000019
여기서, S는 유사도를 나타낸다. 또한, n은 제2 도서 및 제3 도서 양자 모두를 읽은 사용자의 수를 나타내며, i는 제2 도서(B2) 및 제3 도서(B3) 양자 모두를 읽은 사용자의 인덱스이다. R2는 제2 도서(B2)에 대한 선호도를 나타내며, R3은 제3 도서(B3)에 대한 선호도를 나타낸다. 따라서 제2 도서(B2)와 제3 도서(B3)의 유사도는 다음의 수학식 13과 같이 산출될 수 있다. Here, S represents the degree of similarity. Further, n represents the number of users who have read both the second book and the third book, and i is an index of users who have read both the second book B2 and the third book B3. R2 represents the preference for the second book (B2), and R3 represents the preference for the third book (B3). Accordingly, the degree of similarity between the second book B2 and the third book B3 may be calculated as in Equation 13 below.
Figure PCTKR2022004937-appb-img-000020
Figure PCTKR2022004937-appb-img-000020
전술한 방법으로 산출된 동일한 사용자에 대응하는 도서 상호 간의 유사도는 다음의 표 3과 같다고 가정한다. It is assumed that the degree of similarity between books corresponding to the same user calculated by the above method is as shown in Table 3 below.
B1B1 B2B2 B3B3 B4B4 B5B5 ......
B1B1 1.001.00 0.840.84 0.610.61 0.820.82 0.980.98
B2B2 0.840.84 1.001.00 0.950.95 0.840.84 0.630.63
B3B3 0.610.61 0.950.95 1.001.00 0.970.97 0.990.99
B4B4 0.820.82 0.840.84 0.970.97 1.001.00 0.850.85
B5B5 0.980.98 0.630.63 0.990.99 0.850.85 1.001.00
...... ......
추천부(300)는 S450 단계에서 도서 상호 간의 유사도를 기초로 대상 사용자의 대상 도서에 대한 도서 기반 선호도를 예측한다. 이때, 추천부(300)는 다음의 수학식 3에 따라 가중합을 구하여 대상 사용자의 대상 도서에 대한 도서 기반 선호도를 산출할 수 있다. The recommendation unit 300 predicts the book-based preference of the target user for the target book based on the similarity between the books in step S450 . In this case, the recommendation unit 300 may calculate the book-based preference of the target user for the target book by obtaining a weighted sum according to Equation 3 below.
Figure PCTKR2022004937-appb-img-000021
Figure PCTKR2022004937-appb-img-000021
여기서, Pb는 예측값이며, 도서 기반 선호도를 나타낸다. S는 대상 도서와 다른 도서 간의 유사도이며, R은 대상 사용자의 다른 도서에 대한 선호도를 나타낸다. 예컨대, 추천부(300)는 다음의 수학식 15에 따라 제3 사용자(U3)의 제3 도서(B3)에 대한 도서 기반 선호도 Pb를 산출할 수 있다. Here, Pb is a predicted value and represents a book-based preference. S is the degree of similarity between the target book and other books, and R represents the target user's preference for other books. For example, the recommendation unit 300 may calculate the book-based preference Pb of the third user U3 for the third book B3 according to Equation 15 below.
Figure PCTKR2022004937-appb-img-000022
Figure PCTKR2022004937-appb-img-000022
다음으로, 추천부(300)는 S460 단계에서 각각에 가중치를 적용한 사용자 기반 선호도 Pu 및 도서 기반 선호도 Pb를 병합하여 대상 사용자의 대상 도서에 대한 선호도를 산출한다. 즉, 추천부(300)는 다음의 수학식 16에 따라 대상 사용자의 대상 도서에 대한 선호도를 산출할 수 있다. Next, the recommendation unit 300 calculates the target user's preference for the target book by merging the user-based preference Pu and the book-based preference Pb to which weights are applied in step S460 . That is, the recommendation unit 300 may calculate the target user's preference for the target book according to Equation 16 below.
Figure PCTKR2022004937-appb-img-000023
Figure PCTKR2022004937-appb-img-000023
여기서, Pt는 대상 사용자의 대상 도서에 대한 선호도이다. 또한, Pu는 사용자 기반 선호도이고, Pb는 도서 기반 선호도이다. 특히, wu는 사용자 기반 선호도에 대한 가중치이고, wb는 도서 기반 선호도에 대한 가중치이다. Here, Pt is the target user's preference for the target book. Also, Pu is a user-based preference, and Pb is a book-based preference. In particular, wu is a weight for user-based preference, and wb is a weight for book-based preference.
wu 및 wb는 하이퍼파라미터이며, 다음의 수학식 17과 같은 규칙을 가진다. wu and wb are hyperparameters, and have a rule as shown in Equation 17 below.
Figure PCTKR2022004937-appb-img-000024
Figure PCTKR2022004937-appb-img-000024
이때, wu 및 wb는 선호도를 도출할 때 사용된 데이터의 수에 비례하여 설정된다. 즉, wu는 사용자 기반 선호도 Pu를 도출할 때 사용된 데이터의 수에 비례하며, wb는 도서 기반 선호도 Pb를 도출할 때 사용된 데이터의 수에 비례한다. In this case, wu and wb are set in proportion to the number of data used when deriving preference. That is, wu is proportional to the number of data used when deriving the user-based preference Pu, and wb is proportional to the number of data used when deriving the book-based preference Pb.
wu 및 wb는 하이퍼파라미터이다. wu 및 wb는 선호도를 도출할 때 사용된 데이터의 수에 비례하여 설정된다. 즉, 수학식 10 및 수학식 11에서 사용자 기반 선호도 Pu를 도출할 때 사용된 데이터의 수는 4이고, 수학식 14 및 수학식 15에서 도서 기반 선호도 Pb를 도출할 때 사용된 데이터의 수 역시 4이기 때문에 wu 및 wb는 양자 모두 0.5로 설정된다. 이에 따라, 최종적인 선호도는 제3 사용자(U3)의 제3 도서(B3)에 대한 선호도는 수학식 10, 11, 14, 15, 16 및 17에 따라, 다음의 수학식 18과 같이 산출된다. wu and wb are hyperparameters. wu and wb are set in proportion to the number of data used when deriving preferences. That is, the number of data used when deriving the user-based preference Pu in Equations 10 and 11 is 4, and the number of data used when deriving the book-based preference Pb in Equations 14 and 15 is also 4 Since wu and wb are both set to 0.5. Accordingly, the final preference of the third user U3 for the third book B3 is calculated according to Equations 10, 11, 14, 15, 16 and 17, and the following Equation 18.
Figure PCTKR2022004937-appb-img-000025
Figure PCTKR2022004937-appb-img-000025
이와 같이, 본 발명에 따르면, 사용자 기반 선호도 및 도서 기반 선호도 양자 모두를 이용하여 대상 사용자의 대상 도서에 대한 선호도를 산출함으로써, 보다 신뢰도 높은 선호도를 산출할 수 있다. As described above, according to the present invention, by calculating the preference of the target user for the target book using both the user-based preference and the book-based preference, it is possible to calculate a more reliable preference.
한편, 전술한 도 8의 실시예에서 사용자 단위 및 도서 단위로 구분하여 연산을 수행함으로써 사용자의 대상 도서에 대한 선호도를 산출하였다. 하지만, 본 발명의 추가적인 실시예에 따르면, 사용자 단위 및 도서 단위로 구분하여 연산을 수행하지 않고, 복수의 사용자를 복수의 사용자 클러스터로 클러스터링하고, 복수의 도서를 복수의 도서 클러스터로 클러스터링한다. 그런 다음, 사용자 클러스터 및 도서 클러스터 단위로 구분하여 연산을 수행함으로써 사용자 클러스터의 도서 클러스터에 대한 선호도를 산출할 수 있다. Meanwhile, in the above-described embodiment of FIG. 8 , the user's preference for the target book was calculated by performing calculations for each user and book unit. However, according to an additional embodiment of the present invention, a plurality of users are clustered into a plurality of user clusters, and a plurality of books are clustered into a plurality of book clusters, without performing calculations by dividing each user and book. Thereafter, the user cluster and book cluster preference for the book cluster may be calculated by performing calculations by dividing the user cluster and the book cluster unit.
다음으로, 본 발명의 실시예에 따른 사용자의 선호도에 따라 도서를 추천하기 위한 방법에 대해서 설명하기로 한다. 도 9는 본 발명의 실시예에 따른 본 발명의 실시예에 따른 사용자의 선호도에 따라 도서를 추천하기 위한 방법을 설명하기 위한 흐름도이다. Next, a method for recommending a book according to a user's preference according to an embodiment of the present invention will be described. 9 is a flowchart illustrating a method for recommending a book according to a user's preference according to an embodiment of the present invention.
도 9를 참조하면, 추천부(300)는 S510 단계에서 사용자에 대해 추천 여부를 결정하기 위한 대상 도서가 입력되면, S520 단계에서 대상 도서에 대한 사용자의 선호도를 산출한다. 이러한 선호도 산출은 앞서 도 8에서 설명된 바에 따라 협업 필터링에 의해 산출될 수 있다. Referring to FIG. 9 , when a target book for determining whether to recommend a user is input in step S510 , the recommendation unit 300 calculates the user's preference for the target book in step S520 . The preference calculation may be performed by collaborative filtering as described above with reference to FIG. 8 .
선호도를 산출한 후, 추천부(300)는 S530 단계에서 사용자의 대상 도서에 대한 선호도가 소정 수치 이상인지 여부를 확인한다. 상기 확인 결과, 사용자의 대상 도서에 대한 선호도가 소정 수치 이상이면, S540 단계로 진행하고, 소정 수치 미만이면, S570 단계로 진행하여 해당 도서를 추천하지 않는다. After calculating the preference, the recommendation unit 300 checks whether the user's preference for the target book is greater than or equal to a predetermined value in step S530 . As a result of the check, if the user's preference for the target book is greater than or equal to a predetermined value, the process proceeds to step S540. If it is less than the predetermined value, the process proceeds to step S570 and the corresponding book is not recommended.
한편, S540 단계에서 추천부(300)는 사용자의 특징과 대상 도서의 특징을 이용하여 사용자선호벡터를 생성한다. 이어서, 추천부(300)는 S550 단계에서 앞서(S540) 생성된 사용자선호벡터가 특정 클러스터 내의 임계 손실(Et) 이내에 존재하지는 여부를 확인한다. 예컨대, 사용자선호벡터가 도 7에 도시된 바와 같은 클러스터에 속한다고 가정할 때, 사용자선호벡터가 제1 벡터(V1)인 경우, 임계 손실(Et)를 벗어나며, 제2 벡터(V2)인 경우, 임계 손실(Et) 이내에 존재하는 것으로 확인할 수 있다. Meanwhile, in step S540 , the recommendation unit 300 generates a user preference vector using the user's characteristics and the target book's characteristics. Next, the recommendation unit 300 checks whether the user preference vector generated earlier ( S540 ) exists within a threshold loss Et within a specific cluster in step S550 . For example, assuming that the user preference vector belongs to the cluster as shown in FIG. 7 , when the user preference vector is the first vector V1, it deviates from the threshold loss Et, and when the user preference vector is the second vector V2 , it can be confirmed that it exists within the critical loss (Et).
S550 단계의 확인 결과, 생성된 사용자선호벡터가 특정 클러스터 내의 임계 손실(Et) 이내에 존재하지 않으면, 추천부(300)는 S570 단계로 진행하여 해당 도서를 추천하지 않는다. As a result of checking in step S550, if the generated user preference vector does not exist within the threshold loss Et within a specific cluster, the recommendation unit 300 proceeds to step S570 and does not recommend the corresponding book.
반면, S550 단계의 확인 결과, 생성된 사용자선호벡터가 특정 클러스터 내의 임계 손실(Et) 이내에 존재하면, 추천부(300)는 S560 단계로 진행하여 해당 도서를 추천한다. On the other hand, as a result of checking in step S550, if the generated user preference vector exists within a threshold loss Et within a specific cluster, the recommender 300 proceeds to step S560 to recommend the corresponding book.
도 10은 본 발명의 실시예에 따른 컴퓨팅 장치를 나타내는 도면이다. 도 10의 컴퓨팅 장치(TN100)는 본 명세서에서 기술된 장치, 예컨대, 추천서버(10), 도서웹서버(20) 혹은 사용자장치(30)가 될 수 있다. 10 is a diagram illustrating a computing device according to an embodiment of the present invention. The computing device TN100 of FIG. 10 may be a device described herein, for example, the recommendation server 10 , the book web server 20 , or the user device 30 .
도 10의 실시예에서, 컴퓨팅 장치(TN100)는 적어도 하나의 프로세서(TN110), 송수신 장치(TN120), 및 메모리(TN130)를 포함할 수 있다. 또한, 컴퓨팅 장치(TN100)는 저장 장치(TN140), 입력 인터페이스 장치(TN150), 출력 인터페이스 장치(TN160) 등을 더 포함할 수 있다. 컴퓨팅 장치(TN100)에 포함된 구성 요소들은 버스(bus)(TN170)에 의해 연결되어 서로 통신을 수행할 수 있다.In the embodiment of FIG. 10 , the computing device TN100 may include at least one processor TN110 , a transceiver device TN120 , and a memory TN130 . Also, the computing device TN100 may further include a storage device TN140 , an input interface device TN150 , an output interface device TN160 , and the like. Components included in the computing device TN100 may be connected by a bus TN170 to communicate with each other.
프로세서(TN110)는 메모리(TN130) 및 저장 장치(TN140) 중에서 적어도 하나에 저장된 프로그램 명령(program command)을 실행할 수 있다. 프로세서(TN110)는 중앙 처리 장치(CPU: central processing unit), 그래픽 처리 장치(GPU: graphics processing unit), 또는 본 발명의 실시예에 따른 방법들이 수행되는 전용의 프로세서를 의미할 수 있다. 프로세서(TN110)는 본 발명의 실시예와 관련하여 기술된 절차, 기능, 및 방법 등을 구현하도록 구성될 수 있다. 프로세서(TN110)는 컴퓨팅 장치(TN100)의 각 구성 요소를 제어할 수 있다. The processor TN110 may execute a program command stored in at least one of the memory TN130 and the storage device TN140. The processor TN110 may mean a central processing unit (CPU), a graphics processing unit (GPU), or a dedicated processor on which methods according to an embodiment of the present invention are performed. The processor TN110 may be configured to implement procedures, functions, and methods described in connection with an embodiment of the present invention. The processor TN110 may control each component of the computing device TN100 .
메모리(TN130) 및 저장 장치(TN140) 각각은 프로세서(TN110)의 동작과 관련된 다양한 정보를 저장할 수 있다. 메모리(TN130) 및 저장 장치(TN140) 각각은 휘발성 저장 매체 및 비휘발성 저장 매체 중에서 적어도 하나로 구성될 수 있다. 예를 들어, 메모리(TN130)는 읽기 전용 메모리(ROM: read only memory) 및 랜덤 액세스 메모리(RAM: random access memory) 중에서 적어도 하나로 구성될 수 있다.Each of the memory TN130 and the storage device TN140 may store various information related to the operation of the processor TN110 . Each of the memory TN130 and the storage device TN140 may be configured as at least one of a volatile storage medium and a nonvolatile storage medium. For example, the memory TN130 may include at least one of a read only memory (ROM) and a random access memory (RAM).
송수신 장치(TN120)는 유선 신호 또는 무선 신호를 송신 또는 수신할 수 있다. 송수신 장치(TN120)는 네트워크에 연결되어 통신을 수행할 수 있다. The transceiver TN120 may transmit or receive a wired signal or a wireless signal. The transceiver TN120 may be connected to a network to perform communication.
한편, 전술한 본 발명의 실시예에 따른 방법은 다양한 컴퓨터수단을 통하여 판독 가능한 프로그램 형태로 구현되어 컴퓨터로 판독 가능한 기록매체에 기록될 수 있다. 여기서, 기록매체는 프로그램 명령, 데이터 파일, 데이터구조 등을 단독으로 또는 조합하여 포함할 수 있다. 기록매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 예컨대 기록매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광 기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media) 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치를 포함한다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어를 포함할 수 있다. 이러한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다. Meanwhile, the above-described method according to an embodiment of the present invention may be implemented in the form of a program readable by various computer means and recorded in a computer readable recording medium. Here, the recording medium may include a program command, a data file, a data structure, etc. alone or in combination. The program instructions recorded on the recording medium may be specially designed and configured for the present invention, or may be known and available to those skilled in the art of computer software. For example, the recording medium includes magnetic media such as hard disks, floppy disks and magnetic tapes, optical recording media such as CD-ROMs and DVDs, and magneto-optical media such as floppy disks ( magneto-optical media) and hardware devices specially configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of the program instruction may include not only machine language such as generated by a compiler, but also a high-level language that can be executed by a computer using an interpreter or the like. Such hardware devices may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.
이상 본 발명을 몇 가지 바람직한 실시예를 사용하여 설명하였으나, 이들 실시예는 예시적인 것이며 한정적인 것이 아니다. 이와 같이, 본 발명이 속하는 기술분야에서 통상의 지식을 지닌 자라면 본 발명의 사상과 첨부된 특허청구범위에 제시된 권리범위에서 벗어나지 않으면서 균등론에 따라 다양한 변화와 수정을 가할 수 있음을 이해할 것이다. Although the present invention has been described above using several preferred embodiments, these examples are illustrative and not restrictive. As such, those of ordinary skill in the art to which the present invention pertains will understand that various changes and modifications can be made in accordance with the doctrine of equivalents without departing from the spirit of the present invention and the scope of rights set forth in the appended claims.

Claims (10)

  1. 도서 추천을 위한 방법에 있어서, In the method for recommending a book,
    추천부가 복수의 사용자의 독후 활동 정보를 기초로 복수의 도서에 대한 선호도를 도출하는 단계; deriving, by a recommendation unit, preferences for a plurality of books based on the post-reading activity information of the plurality of users;
    상기 추천부가 상기 도출된 복수의 사용자의 복수의 도서에 대한 선호도로부터 대상 사용자의 대상 도서에 대한 사용자 기반 선호도 및 도서 기반 선호도를 산출하는 단계; 및 calculating, by the recommendation unit, a user-based preference for a target user and a book-based preference for a target user from the derived preference for a plurality of books of a plurality of users; and
    상기 추천부가 상기 사용자 기반 선호도 및 상기 도서 기반 선호도를 병합하여 대상 사용자의 대상 도서에 대한 선호도를 산출하는 단계; calculating, by the recommendation unit, a preference for a target book of a target user by merging the user-based preference and the book-based preference;
    를 포함하는 것을 특징으로 하는 characterized in that it comprises
    도서 추천을 위한 방법. A method for recommending books.
  2. 제1항에 있어서, According to claim 1,
    추천부가 복수의 사용자의 독후 활동 정보를 기초로 복수의 도서에 대한 선호도를 도출하는 단계 전, Before the step of the recommendation unit deriving preferences for a plurality of books based on the post-reading activity information of a plurality of users,
    데이터수집부가 복수의 사용자 각각에 대해 사용자정보와 선호도서정보를 소정의 벡터공간에 임베딩하여 사용자의 특징과 사용자가 선호하는 도서의 특징이 내재된 복수의 사용자선호벡터를 생성하는 단계; generating, by a data collection unit, user information and preference book information for each of a plurality of users in a predetermined vector space to generate a plurality of user preference vectors having the characteristics of the user and the characteristics of the book preferred by the user;
    상기 데이터수집부가 복수의 사용자선호벡터를 복수의 클러스터로 클러스터링하는 단계; clustering, by the data collection unit, a plurality of user preference vectors into a plurality of clusters;
    상기 데이터수집부가 클러스터링된 복수의 클러스터 각각에서 컨벡스 헐을 도출하는 단계; deriving, by the data collection unit, a convex hull from each of a plurality of clustered clusters;
    상기 데이터수집부가 복수의 클러스터 각각에서 컨벡스 헐을 구성하는 다각형의 무게 중심을 클러스터의 중심으로 설정하고, 설정된 클러스터의 중심과 복수의 사용자선호벡터를 기초로 임계손실을 산출하는 단계; setting, by the data collection unit, a center of gravity of a polygon constituting a convex hull in each of a plurality of clusters as a center of a cluster, and calculating a critical loss based on the set center of the cluster and a plurality of user preference vectors;
    를 더 포함하는 것을 특징으로 하는 characterized in that it further comprises
    도서 추천을 위한 방법. A method for recommending books.
  3. 제2항에 있어서, 3. The method of claim 2,
    상기 임계손실을 산출하는 단계는 The step of calculating the critical loss is
    상기 데이터수집부가 복수의 클러스터 각각에 대해 수학식
    Figure PCTKR2022004937-appb-img-000026
    을 통해 클러스터의 중심과 복수의 사용자선호벡터와의 차이를 나타내는 손실을 산출하는 단계; 및
    Equation for each of the plurality of clusters by the data collection unit
    Figure PCTKR2022004937-appb-img-000026
    calculating a loss representing a difference between the center of a cluster and a plurality of user preference vectors through and
    상기 데이터수집부가 복수의 클러스터 각각에 대해 클러스터의 중심과 복수의 사용자선호벡터와의 차이를 나타내는 손실의 평균 및 표준 편차로부터 수학식
    Figure PCTKR2022004937-appb-img-000027
    에 따라 임계손실을 산출하는 단계;
    Equation from the mean and standard deviation of the loss indicating the difference between the center of the cluster and the plurality of user preference vectors for each of the plurality of clusters by the data collection unit
    Figure PCTKR2022004937-appb-img-000027
    calculating a critical loss according to
    를 포함하며, includes,
    상기 j는 클러스터의 인덱스이고, Where j is the index of the cluster,
    상기 Mj는 j번째 클러스터의 중심이고, Wherein Mj is the center of the j-th cluster,
    상기 i는 사용자선호벡터의 인덱스이고, where i is the index of the user preference vector,
    상기 Si은 i번째 사용자선호벡터이고, Si is the i-th user preference vector,
    상기 Et는 임계손실이고, Where Et is the critical loss,
    상기 m은 클러스터의 중심과 복수의 사용자선호벡터와의 차이를 나타내는 손실의 평균이고, Wherein m is the average of the loss representing the difference between the center of the cluster and the plurality of user preference vectors,
    상기 D는 클러스터의 중심과 복수의 사용자선호벡터와의 차이를 나타내는 손실의 표준 편차이고, D is the standard deviation of the loss representing the difference between the center of the cluster and the plurality of user preference vectors,
    상기
    Figure PCTKR2022004937-appb-img-000028
    는 표준편차에 대한 가중치인 것을 특징으로 하는
    remind
    Figure PCTKR2022004937-appb-img-000028
    is a weight for the standard deviation, characterized in that
    도서 추천을 위한 방법. A method for recommending books.
  4. 제2항에 있어서, 3. The method of claim 2,
    상기 사용자 기반 선호도 및 상기 도서 기반 선호도를 병합하여 대상 사용자의 대상 도서에 대한 선호도를 산출하는 단계 후, After merging the user-based preference and the book-based preference to calculate the target user's preference for the target book,
    상기 추천부가 사용자의 대상 도서에 대한 선호도가 소정 수치 이상인지 여부를 확인하는 단계; checking, by the recommendation unit, whether the user's preference for the target book is greater than or equal to a predetermined value;
    상기 추천부가 상기 사용자의 대상 도서에 대한 선호도가 소정 수치 이상이면, 사용자의 특징과 대상 도서의 특징을 이용하여 사용자선호벡터를 생성하는 단계; generating, by the recommendation unit, a user preference vector by using the user's characteristics and the characteristics of the target book, when the user's preference for the target book is greater than or equal to a predetermined value;
    상기 추천부가 생성된 사용자선호벡터가 상기 복수의 클러스터 중 어느 하나의 클러스터 내의 임계 손실 이내에 존재하지는 여부를 확인하는 단계; 및 checking whether the user preference vector generated by the recommendation unit exists within a threshold loss within any one of the plurality of clusters; and
    상기 확인 결과, 상기 생성된 사용자선호벡터가 상기 어느 하나의 클러스터 내의 임계 손실 이내에 존재하면, 해당 도서를 추천하는 단계; as a result of the check, if the generated user preference vector exists within a threshold loss within one of the clusters, recommending a corresponding book;
    를 더 포함하는 것을 특징으로 하는 characterized in that it further comprises
    도서 추천을 위한 방법. A method for recommending books.
  5. 제1항에 있어서, According to claim 1,
    상기 독후 활동 정보는 The post-reading activity information is
    사용자가 참여한 독서 퀴즈의 도서의 식별 정보, 사용자의 독서 퀴즈에 대한 응모 횟수 및 획득한 점수, 사용자가 소정의 메뉴를 통해 저장한 도서의 식별 정보 및 소정의 메뉴를 통해 사용자가 평점을 부여한 도서의 식별 정보, 사용자의 평점 등의 독후 활동 정보를 포함하는 것을 특징으로 하는 Identification information of books in the reading quiz in which the user participated, the number of applications and scores obtained for the user's reading quiz, identification information of books stored by the user through a predetermined menu, and the number of books the user has given a rating through the predetermined menu Identification information, characterized in that it includes post-reading activity information such as the user's rating
    도서 추천을 위한 방법. A method for recommending books.
  6. 제1항에 있어서, According to claim 1,
    상기 사용자 기반 선호도 및 도서 기반 선호도를 산출하는 단계는 The step of calculating the user-based preference and the book-based preference
    상기 추천부가 상기 도출된 복수의 사용자의 복수의 도서에 대한 선호도를 기초로 동일한 도서에 대응하는 사용자 상호 간의 유사도를 산출하는 단계; 및 calculating, by the recommendation unit, a degree of similarity between users corresponding to the same book based on the derived preference for a plurality of books of the plurality of users; and
    상기 추천부가 상기 산출된 사용자 상호 간의 유사도를 기초로 대상 사용자의 대상 도서에 대한 사용자 기반 선호도를 예측하는 단계; predicting, by the recommendation unit, a user-based preference for a target book of a target user based on the calculated similarity between users;
    를 포함하는 것을 특징으로 하는 characterized in that it comprises
    도서 추천을 위한 방법. A method for recommending books.
  7. 제1항에 있어서, According to claim 1,
    상기 사용자 기반 선호도 및 도서 기반 선호도를 산출하는 단계는 The step of calculating the user-based preference and the book-based preference
    상기 추천부가 상기 도출된 복수의 사용자의 복수의 도서에 대한 선호도를 기초로 동일한 사용자에 대응하는 도서 상호 간의 유사도를 산출하는 단계; 및 calculating, by the recommendation unit, a degree of similarity between books corresponding to the same user based on the derived preference for a plurality of books of the plurality of users; and
    상기 추천부가 상기 산출된 도서 상호 간의 유사도를 기초로 대상 사용자의 대상 도서에 대한 도서 기반 선호도를 예측하는 단계;predicting, by the recommendation unit, a book-based preference for a target book of a target user based on the calculated similarity between the books;
    를 포함하는 것을 특징으로 하는 characterized in that it comprises
    도서 추천을 위한 방법. A method for recommending books.
  8. 제1항에 있어서, According to claim 1,
    상기 사용자 기반 선호도 및 상기 도서 기반 선호도를 병합하여 대상 사용자의 대상 도서에 대한 선호도를 산출하는 단계는 The step of calculating a preference for a target book of a target user by merging the user-based preference and the book-based preference
    상기 추천부가 수학식 The recommendation part is the formula
    Figure PCTKR2022004937-appb-img-000029
    에 따라 대상 사용자의 대상 도서에 대한 선호도를 산출하며,
    Figure PCTKR2022004937-appb-img-000029
    Calculates the target user's preference for the target book according to
    상기 Pt는 대상 사용자의 대상 도서에 대한 선호도이고, The Pt is the target user's preference for the target book,
    상기 Pu는 사용자 기반 선호도이고, where Pu is a user-based preference,
    상기 Pb는 도서 기반 선호도이고, The Pb is a book-based preference,
    상기 wu는 사용자 기반 선호도에 대한 가중치이고, wherein wu is a weight for user-based preference,
    상기 wb는 도서 기반 선호도에 대한 가중치인 것을 특징으로 하는 wherein wb is a weight for book-based preference
    도서 추천을 위한 방법. A method for recommending books.
  9. 제8항에 있어서, 9. The method of claim 8,
    상기 wu 및 상기 wb는 The wu and the wb are
    수학식
    Figure PCTKR2022004937-appb-img-000030
    과 같은 규칙을 가지며,
    formula
    Figure PCTKR2022004937-appb-img-000030
    has the same rules as
    상기 wu는 상기 사용자 기반 선호도를 도출할 때 사용된 데이터의 수에 비례하며, The wu is proportional to the number of data used when deriving the user-based preference,
    상기 wb는 도서 기반 선호도를 도출할 때 사용된 데이터의 수에 비례하여 설정되는 것을 특징으로 하는 wherein wb is set in proportion to the number of data used when deriving book-based preferences
    도서 추천을 위한 방법. A method for recommending books.
  10. 도서 추천을 위한 장치에 있어서, In the device for recommending a book,
    복수의 사용자가 독후 활동을 하도록 메뉴를 제공하는 서비스제공부; a service providing unit that provides a menu for a plurality of users to do post-reading activities;
    상기 복수의 사용자의 독후 활동 정보를 수집하는 데이터수집부; a data collection unit for collecting post-reading activity information of the plurality of users;
    상기 복수의 사용자의 독후 활동 정보를 기초로 복수의 도서에 대한 선호도를 도출하고, 상기 도출된 복수의 사용자의 복수의 도서에 대한 선호도로부터 대상 사용자의 대상 도서에 대한 사용자 기반 선호도 및 도서 기반 선호도를 산출하고, 상기 사용자 기반 선호도 및 상기 도서 기반 선호도를 병합하여 대상 사용자의 대상 도서에 대한 선호도를 산출하는 추천부;Preference for a plurality of books is derived based on the post-reading activity information of the plurality of users, and the user-based preference and book-based preference for the target book of the target user are derived from the derived preference for the plurality of books of the plurality of users. a recommendation unit for calculating and merging the user-based preference and the book-based preference to calculate a preference of a target user for a target book;
    를 포함하는 것을 특징으로 하는 characterized in that it comprises
    도서 추천을 위한 장치. A device for recommending books.
PCT/KR2022/004937 2021-04-07 2022-04-06 Device for book recommendations using hybrid method combining collaborative filtering and book-based recommendations, and method therefor WO2022216034A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020210045402A KR102576484B1 (en) 2021-04-07 2021-04-07 An Apparatus for recommending books in a hybrid method that combines collaborative filtering and book-based recommendations, and a method therefor
KR10-2021-0045402 2021-04-07

Publications (1)

Publication Number Publication Date
WO2022216034A1 true WO2022216034A1 (en) 2022-10-13

Family

ID=83545579

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2022/004937 WO2022216034A1 (en) 2021-04-07 2022-04-06 Device for book recommendations using hybrid method combining collaborative filtering and book-based recommendations, and method therefor

Country Status (2)

Country Link
KR (1) KR102576484B1 (en)
WO (1) WO2022216034A1 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102484545B1 (en) * 2021-11-23 2023-01-04 주식회사 룩코 Similarity tendency based user recommendation method
KR20240077196A (en) * 2022-11-24 2024-05-31 주식회사우경정보기술 Apparatus for recognizing objects based on Artificial Intelligence (AI) and methods therefor
KR20240082959A (en) 2022-12-01 2024-06-11 숭실대학교산학협력단 Method and device for recommending serendipity books using book categories
KR102613096B1 (en) * 2023-04-21 2023-12-13 박성순 Method for providing bibliotherapy service and system thereof

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130062442A (en) * 2011-11-22 2013-06-13 주식회사 케이티 Method and system for recommendation using style of collaborative filtering
KR20160023937A (en) * 2014-08-20 2016-03-04 경기대학교 산학협력단 Method and program for similar user index
US20170085607A1 (en) * 2013-07-15 2017-03-23 Facebook, Inc. Large-Scale Page Recommendations on Online Social Networks
KR20180099067A (en) * 2017-02-28 2018-09-05 주식회사 인카코커뮤니케이션즈 Apparatus and Method for Analyzing Data using Java Association Rule and collaborative filtering
KR20210018384A (en) * 2019-08-08 2021-02-17 네이버 주식회사 Method and system of real-time graph-based embedding for personalized content recommendation

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140004023A (en) * 2012-07-02 2014-01-10 주식회사 아이북랜드 User-customized book click system and method
KR102203252B1 (en) 2018-10-19 2021-01-14 네이버 주식회사 Method and system for collaborative filtering based on generative adversarial networks

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130062442A (en) * 2011-11-22 2013-06-13 주식회사 케이티 Method and system for recommendation using style of collaborative filtering
US20170085607A1 (en) * 2013-07-15 2017-03-23 Facebook, Inc. Large-Scale Page Recommendations on Online Social Networks
KR20160023937A (en) * 2014-08-20 2016-03-04 경기대학교 산학협력단 Method and program for similar user index
KR20180099067A (en) * 2017-02-28 2018-09-05 주식회사 인카코커뮤니케이션즈 Apparatus and Method for Analyzing Data using Java Association Rule and collaborative filtering
KR20210018384A (en) * 2019-08-08 2021-02-17 네이버 주식회사 Method and system of real-time graph-based embedding for personalized content recommendation

Also Published As

Publication number Publication date
KR20220139140A (en) 2022-10-14
KR102576484B1 (en) 2023-09-08

Similar Documents

Publication Publication Date Title
WO2022216034A1 (en) Device for book recommendations using hybrid method combining collaborative filtering and book-based recommendations, and method therefor
Fang et al. Relational user attribute inference in social media
US7467212B2 (en) Control of access control lists based on social networks
WO2019098409A1 (en) Machine learning based data adding device for chatbot
EP2798607A1 (en) Method, server, and terminal for recommending an application based on application usage
WO2012077997A9 (en) Social network service apparatus and service method thereof
WO2017047876A1 (en) Reliability evaluation method and system on basis of user activity analysis on social media
WO2013157705A1 (en) Method for inferring interest of user through interests of social neighbors and topics of social activities in sns, and system therefor
WO2010123264A2 (en) Online community post search method and apparatus based on interactions between online community users and computer readable storage medium storing program thereof
WO2013062163A1 (en) Method for delivering a will and a message
WO2019039659A1 (en) Emotion-based user management method and apparatuses performing same
JP2020126392A (en) Selection device, selection method, and selection program
KR101128623B1 (en) System and Method for Collaborative Work of Document
WO2016204391A1 (en) Search service providing device, method, and computer program
WO2014148664A1 (en) Multi-language search system, multi-language search method, and image search system, based on meaning of word
JP2015005130A (en) Document posting device, method and program
WO2020138608A1 (en) Question answering method and apparatus using plurality of chatbots
US9886415B1 (en) Prioritized data transmission over networks
WO2022270840A1 (en) Deep learning-based word recommendation system for predicting and improving foreign language learner's vocabulary ability
WO2022014898A1 (en) System and method for providing extended service for providing artificial intelligence prediction result about extended education content by means of api access interface server
WO2014157746A1 (en) Picture sharing system for searching for picture by keyword and method therefor
WO2015137585A1 (en) Online chatting community management method using chatterbot
KR20220029014A (en) Customized learning problem solving contents providing system, method and computer program
Musto et al. Workshop on explainable user models and personalised systems (ExUM)
Charbonneau Privacy practices of health social networking sites: implications for privacy and data security in online cancer communities

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: 22784943

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 15.02.2024)