KR20220139140A - 협업필터링과 도서 기반 추천을 결합한 하이브리드 방식의 도서 추천을 위한 장치 및 이를 위한 방법 - Google Patents

협업필터링과 도서 기반 추천을 결합한 하이브리드 방식의 도서 추천을 위한 장치 및 이를 위한 방법 Download PDF

Info

Publication number
KR20220139140A
KR20220139140A KR1020210045402A KR20210045402A KR20220139140A KR 20220139140 A KR20220139140 A KR 20220139140A KR 1020210045402 A KR1020210045402 A KR 1020210045402A KR 20210045402 A KR20210045402 A KR 20210045402A KR 20220139140 A KR20220139140 A KR 20220139140A
Authority
KR
South Korea
Prior art keywords
user
preference
book
books
target
Prior art date
Application number
KR1020210045402A
Other languages
English (en)
Other versions
KR102576484B1 (ko
Inventor
김덕기
허소연
Original Assignee
주식회사 피씨엔씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 피씨엔씨 filed Critical 주식회사 피씨엔씨
Priority to KR1020210045402A priority Critical patent/KR102576484B1/ko
Priority to PCT/KR2022/004937 priority patent/WO2022216034A1/ko
Publication of KR20220139140A publication Critical patent/KR20220139140A/ko
Application granted granted Critical
Publication of KR102576484B1 publication Critical patent/KR102576484B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0631Item recommendations
    • 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

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

도서 추천을 위한 장치가 제공된다. 상기 장치는 복수의 사용자가 독후 활동을 하도록 메뉴를 제공하는 서비스제공부와, 상기 복수의 사용자의 독후 활동 정보를 수집하는 데이터수집부와, 상기 복수의 사용자의 독후 활동 정보를 기초로 복수의 도서에 대한 선호도를 도출하고, 상기 도출된 복수의 사용자의 복수의 도서에 대한 선호도로부터 대상 사용자의 대상 도서에 대한 사용자 기반 선호도 및 도서 기반 선호도를 산출하고, 상기 사용자 기반 선호도 및 상기 도서 기반 선호도를 병합하여 대상 사용자의 대상 도서에 대한 선호도를 산출하는 추천부를 포함한다.

Description

협업필터링과 도서 기반 추천을 결합한 하이브리드 방식의 도서 추천을 위한 장치 및 이를 위한 방법{An Apparatus for recommending books in a hybrid method that combines collaborative filtering and book-based recommendations, and a method therefor}
본 발명은 도서 추천을 위한 기술에 관한 것으로, 보다 상세하게는, 협업필터링과 도서 기반 추천을 결합한 하이브리드 방식의 도서 추천을 위한 장치 및 이를 위한 방법에 관한 것이다.
협업 필터링(collaborative filtering)은 많은 사용자들로부터 얻은 기호정보(taste information)에 따라 사용자들의 관심사들을 자동적으로 예측하게 해주는 방법이다.
한국공개특허 제2020-0046189호 (2020년 05월 07일 공개)
본 발명의 목적은 하이브리드 방식의 도서 추천을 위한 장치 및 이를 위한 방법을 제공함에 있다.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 도서 추천을 위한 방법은 추천부가 복수의 사용자의 독후 활동 정보를 기초로 복수의 도서에 대한 선호도를 도출하는 단계와, 상기 추천부가 상기 도출된 복수의 사용자의 복수의 도서에 대한 선호도로부터 대상 사용자의 대상 도서에 대한 사용자 기반 선호도 및 도서 기반 선호도를 산출하는 단계와, 상기 추천부가 상기 사용자 기반 선호도 및 상기 도서 기반 선호도를 병합하여 대상 사용자의 대상 도서에 대한 선호도를 산출하는 단계를 포함한다.
상기 방법은 추천부가 복수의 사용자의 독후 활동 정보를 기초로 복수의 도서에 대한 선호도를 도출하는 단계 전, 데이터수집부가 복수의 사용자 각각에 대해 사용자정보와 선호도서정보를 소정의 벡터공간에 임베딩하여 사용자의 특징과 사용자가 선호하는 도서의 특징이 내재된 복수의 사용자선호벡터를 생성하는 단계와, 상기 데이터수집부가 복수의 사용자선호벡터를 복수의 클러스터로 클러스터링하는 단계와, 상기 데이터수집부가 클러스터링된 복수의 클러스터 각각에서 컨벡스 헐을 도출하는 단계와, 상기 데이터수집부가 복수의 클러스터 각각에서 컨벡스 헐을 구성하는 다각형의 무게 중심을 클러스터의 중심으로 설정하고, 설정된 클러스터의 중심과 복수의 사용자선호벡터를 기초로 임계손실을 산출하는 단계를 더 포함한다.
상기 임계손실을 산출하는 단계는 상기 데이터수집부가 복수의 클러스터 각각에 대해 수학식
Figure pat00001
을 통해 클러스터의 중심과 복수의 사용자선호벡터와의 차이를 나타내는 손실을 산출하는 단계와, 상기 데이터수집부가 복수의 클러스터 각각에 대해 클러스터의 중심과 복수의 사용자선호벡터와의 차이를 나타내는 손실의 평균 및 표준 편차로부터 수학식
Figure pat00002
에 따라 임계손실을 산출하는 단계를 포함하며, 상기 j는 클러스터의 인덱스이고, 상기 Mj는 j번째 클러스터의 중심이고, 상기 i는 사용자선호벡터의 인덱스이고, 상기 Si은 i번째 사용자선호벡터이고, 상기 Et는 임계손실이고, 상기 m은 클러스터의 중심과 복수의 사용자선호벡터와의 차이를 나타내는 손실의 평균이고, 상기 D는 클러스터의 중심과 복수의 사용자선호벡터와의 차이를 나타내는 손실의 표준 편차이고, 상기
Figure pat00003
는 표준편차에 대한 가중치인 것을 특징으로 한다.
상기 방법은 상기 사용자 기반 선호도 및 상기 도서 기반 선호도를 병합하여 대상 사용자의 대상 도서에 대한 선호도를 산출하는 단계 후, 상기 추천부가 사용자의 대상 도서에 대한 선호도가 소정 수치 이상인지 여부를 확인하는 단계와, 상기 추천부가 상기 사용자의 대상 도서에 대한 선호도가 소정 수치 이상이면, 사용자의 특징과 대상 도서의 특징을 이용하여 사용자선호벡터를 생성하는 단계와, 상기 추천부가 생성된 사용자선호벡터가 상기 복수의 클러스터 중 어느 하나의 클러스터 내의 임계 손실 이내에 존재하지는 여부를 확인하는 단계와, 상기 확인 결과, 상기 생성된 사용자선호벡터가 상기 어느 하나의 클러스터 내의 임계 손실 이내에 존재하면, 해당 도서를 추천하는 단계를 더 포함한다.
상기 독후 활동 정보는 사용자가 참여한 독서 퀴즈의 도서의 식별 정보, 사용자의 독서 퀴즈에 대한 응모 횟수 및 획득한 점수, 사용자가 소정의 메뉴를 통해 저장한 도서의 식별 정보 및 소정의 메뉴를 통해 사용자가 평점을 부여한 도서의 식별 정보, 사용자의 평점 등의 독후 활동 정보를 포함하는 것을 특징으로 한다.
상기 사용자 기반 선호도 및 도서 기반 선호도를 산출하는 단계는 상기 추천부가 상기 도출된 복수의 사용자의 복수의 도서에 대한 선호도를 기초로 동일한 도서에 대응하는 사용자 상호 간의 유사도를 산출하는 단계와, 상기 추천부가 상기 산출된 사용자 상호 간의 유사도를 기초로 대상 사용자의 대상 도서에 대한 사용자 기반 선호도를 예측하는 단계를 포함한다.
상기 사용자 기반 선호도 및 도서 기반 선호도를 산출하는 단계는 상기 추천부가 상기 도출된 복수의 사용자의 복수의 도서에 대한 선호도를 기초로 동일한 사용자에 대응하는 도서 상호 간의 유사도를 산출하는 단계와, 상기 추천부가 상기 산출된 도서 상호 간의 유사도를 기초로 대상 사용자의 대상 도서에 대한 도서 기반 선호도를 예측하는 단계를 포함한다.
상기 사용자 기반 선호도 및 상기 도서 기반 선호도를 병합하여 대상 사용자의 대상 도서에 대한 선호도를 산출하는 단계는 상기 추천부가 수학식
Figure pat00004
에 따라 대상 사용자의 대상 도서에 대한 선호도를 산출하며, 상기 Pt는 대상 사용자의 대상 도서에 대한 선호도이고, 상기 Pu는 사용자 기반 선호도이고, 상기 Pb는 도서 기반 선호도이고, 상기 wu는 사용자 기반 선호도에 대한 가중치이고, 상기 wb는 도서 기반 선호도에 대한 가중치인 것을 특징으로 한다.
상기 wu 및 상기 wb는 수학식
Figure pat00005
과 같은 규칙을 가지며, 상기 wu는 상기 사용자 기반 선호도를 도출할 때 사용된 데이터의 수에 비례하며, 상기 wb는 도서 기반 선호도를 도출할 때 사용된 데이터의 수에 비례하여 설정되는 것을 특징으로 한다.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 도서 추천을 위한 장치는 복수의 사용자가 독후 활동을 하도록 메뉴를 제공하는 서비스제공부와, 상기 복수의 사용자의 독후 활동 정보를 수집하는 데이터수집부와, 상기 복수의 사용자의 독후 활동 정보를 기초로 복수의 도서에 대한 선호도를 도출하고, 상기 도출된 복수의 사용자의 복수의 도서에 대한 선호도로부터 대상 사용자의 대상 도서에 대한 사용자 기반 선호도 및 도서 기반 선호도를 산출하고, 상기 사용자 기반 선호도 및 상기 도서 기반 선호도를 병합하여 대상 사용자의 대상 도서에 대한 선호도를 산출하는 추천부를 포함한다.
본 발명에 따르면, 사용자 기반 선호도 및 도서 기반 선호도 양자 모두를 이용하여 대상 사용자의 대상 도서에 대한 선호도를 산출함으로써, 보다 신뢰도 높은 선호도를 산출할 수 있다.
도 1은 본 발명의 실시예에 따른 하이브리드 방식의 도서 추천을 위한 시스템을 설명하기 위한 도면이다.
도 2는 본 발명의 실시예에 따른 추천서버의 구성을 설명하기 위한 도면이다.
도 3은 본 발명의 실시예에 따른 추천서버 제어부의 세부 적인 구성을 설명하기 위한 도면이다.
도 4는 본 발명의 실시예에 따른 사용자의 신뢰도를 산출하는 방법을 설명하기 위한 흐름도이다.
도 5는 본 발명의 실시예에 따른 복수의 사용자를 도서 성향에 따라 클러스터링하기 위한 방법을 설명하기 위한 흐름도이다.
도 6은 본 발명의 실시예에 따른 복수의 사용자를 도서 성향에 따라 클러스터링하기 위한 방법을 설명하기 위한 도면이다.
도 7은 본 발명의 실시예에 따른 복수의 사용자의 도서 성향에 따른 클러스터의 임계범위를 설정하는 방법을 설명하기 위한 도면이다.
도 8은 본 발명의 실시예에 따른 협업 필터링을 기초로 하는 도서 선호도를 산출하는 방법을 설명하기 위한 흐름도이다.
도 9는 본 발명의 실시예에 따른 본 발명의 실시예에 따른 사용자의 선호도에 따라 도서를 추천하기 위한 방법을 설명하기 위한 흐름도이다.
도 10은 본 발명의 실시예에 따른 컴퓨팅 장치를 나타내는 도면이다.
본 발명의 상세한 설명에 앞서, 이하에서 설명되는 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니 되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념으로 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. 따라서 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 가장 바람직한 실시예에 불과할 뿐, 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형 예들이 있을 수 있음을 이해하여야 한다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다. 이때, 첨부된 도면에서 동일한 구성 요소는 가능한 동일한 부호로 나타내고 있음을 유의해야 한다. 또한, 본 발명의 요지를 흐리게 할 수 있는 공지 기능 및 구성에 대한 상세한 설명은 생략할 것이다. 마찬가지의 이유로 첨부 도면에 있어서 일부 구성요소는 과장되거나 생략되거나 또는 개략적으로 도시되었으며, 각 구성요소의 크기는 실제 크기를 전적으로 반영하는 것이 아니다.
먼저, 본 발명의 실시예에 따른 하이브리드 방식의 도서 추천을 위한 시스템의 구성에 대해서 설명하기로 한다. 도 1은 본 발명의 실시예에 따른 하이브리드 방식의 도서 추천을 위한 시스템을 설명하기 위한 도면이다. 도 1을 참조하면, 본 발명의 실시예에 따른 추천시스템은 추천서버(10), 도서웹서버(20) 및 사용자장치(30)를 포함한다.
추천서버(10)는 기본적으로, 서비스에 가입한 사용자에게 도서에 대한 다양한 정보를 교환하고 활용할 수 있는 쇼셜 네트워크 서비스(SNS: Social Network Service) 플랫폼을 제공하기 위한 것이다. 특히, 추천서버(10)는 사용자의 플랫폼 상에서의 활동을 기반으로 사용자의 도서에 대한 선호를 파악한 후, 사용자가 선호하는 도서를 추천할 수 있다.
도서웹서버(20)는 도서에 대한 정보를 제공하는 다양한 종류의 웹 서버를 통칭한다. 일례로, 도서웹서버(20)는 도서에 대한 정보를 제공하고, 그 도서를 판매하기 위한 서점에서 운영하는 서버가 될 수 있다. 다른 예로, 도서웹서버(20)는 출판사에서 운영하며 해당 출판사에서 출판한 도서에 대한 정보를 제공하는 서버가 될 수 있다.
사용자장치(30)는 추천서버(10)가 제공하는 서비스에 가입한 사용자가 사용하는 장치이며, 네트워크를 통해 추천서버(10)에 접속하여 추천서버(10)가 제공하는 서비스를 제공받을 수 있다. 이러한 사용자장치(30)는 퍼스널컴퓨터, 노트북, 태블릿, 패블릿, 스마트폰 등을 예시할 수 있다.
다음으로, 본 발명의 실시예에 따른 추천서버(10)의 구성에 대해서 보다 상세하게 설명하기로 한다. 도 2는 본 발명의 실시예에 따른 추천서버의 구성을 설명하기 위한 도면이다. 도 3은 본 발명의 실시예에 따른 추천서버 제어부의 세부 적인 구성을 설명하기 위한 도면이다.
먼저, 도 2를 참조하면, 본 발명의 실시예에 따른 추천서버(10)는 통신모듈(11), 저장모듈(12) 및 제어모듈(13)을 포함한다.
통신모듈(11)은 네트워크를 통해 도서웹서버(20) 및 사용자장치(30)와 통신하기 위한 것이다. 통신모듈(11)은 네트워크를 통해 데이터를 송수신하기 위해 송신되는 신호를 변조하고, 수신되는 신호를 복조하는 모뎀(modem)을 포함할 수 있다. 이러한 통신모듈(11)은 제어모듈(13)로부터 전달 받은 데이터를 네트워크를 통해 도서웹서버(20) 및 사용자장치(30)로 전송할 수 있다. 또한, 통신모듈(11)은 도서웹서버(20) 및 사용자장치(30) 중 어느 하나로부터 수신되는 데이터를 제어모듈(13)로 전달할 수 있다.
저장모듈(12)은 추천서버(10)의 동작에 필요한 프로그램 및 데이터를 저장하는 역할을 수행한다. 예컨대, 저장모듈(12)은 사용자의 소셜 활동 및 독후 활동과 관련된 정보, 민간 및 공공에서 수집된 도서 정보, 도서의 표지 및 내지 이미지, 도서의 메타 데이터 등을 저장할 수 있다. 저장모듈(12)에 저장되는 각 종 데이터는 관리자의 조작에 따라 등록, 삭제, 변경, 추가될 수 있다.
제어모듈(13)은 추천서버(10)의 전반적인 동작 및 추천서버(10)의 내부 블록들 간 신호 흐름을 제어하고, 데이터를 처리하는 데이터 처리 기능을 수행할 수 있다. 제어모듈(13)은 중앙처리장치(central processing unit), 디지털신호처리기(digital signal processor) 등이 될 수 있다. 또한, 제어모듈(13)은 추가로 이미지 프로세서(Image processor) 혹은 GPU(Graphic Processing Unit)를 더 구비할 수 있다. 이러한 제어모듈(13)은 도 3에 도시된 바와 같이, 데이터수집부(100), 서비스제공부(200), 및 추천부(300)를 포함한다.
데이터수집부(100)는 추천서버(10)가 서비스를 제공하기 위해 필요한 데이터 및 추천을 위해 필요한 데이터를 수집하기 위한 것이다. 데이터수집부(100)는 통신모듈(11)을 통해 도서웹서버(20)에 접속하여 도서 정보를 수집할 수 있다. 이때, 클롤링(crawling) 기법이 이용될 수 있다. 도서 정보는 도서의 제목, 작가, 번역자, 출판일, 판, 쇄 등과 같은 도서 메타 정보, 표지 및 내지 이미지, 주요 페이지의 텍스트 등을 포함한다. 또한, 도서 정보는 공신력 있는 주체가 공표한 베스트셀러 등의 도서 평가 정보를 더 포함할 수 있다. 또한, 데이터수집부(100)는 사용자의 소셜 활동 및 독후 활동에 대한 정보를 수집할 수 있다. 이에 대해서는 아래에서 더 상세하게 설명될 것이다.
서비스제공부(200)는 기본적으로, 사용자가 소셜 활동 및 독후 활동을 할 수 있도록 하기 위한 것이다. 서비스제공부(200)는 사용자의 소셜 활동을 위해 사용자에게 계정을 할당하고, 사용자가 사용자장치(30)를 통해 할당된 계정에 사용자 자신이 읽은 도서에 대한 정보인 개인독후정보를 업로드 할 수 있도록 하는 인터페이스를 제공한다. 개인독후정보는 예컨대, 도서의 표지 및 내지 이미지, 주요 페이지의 텍스트, 서평 등을 포함한다. 또한, 서비스제공부(200)는 사용자가 다른 계정을 팔로우(follow)할 수 있도록 하는 메뉴를 제공하며, 사용자가 팔로우한 다른 계정에 업로드된 개인독후정보를 사용자가 열람할 수 있도록 피드(feed)하는 기능을 제공한다. 그리고 서비스제공부(200)는 사용자가 다른 계정의 개인독후정보에 대해 예컨대, 좋아요, 보트(vote), 추천, 감정 이모티콘 선택 등의 선호의사표시를 하거나, 코멘트 할 수 있도록 하는 메뉴를 제공한다. 이에 따라, 데이터수집부(100)는 사용자 별로 사용자가 업로드 한 개인독후정보의 수, 사용자가 업로드 한 개인독후정보에 대한 선호의사표시 및 코멘트의 수, 사용자의 팔로잉 수, 팔로워 수 등의 소셜 활동 정보를 수집하여 저장할 수 있다.
또한, 서비스제공부(200)는 사용자의 독후 활동을 위해 독서퀴즈, 책서랍 및 북핑톡 메뉴를 제공할 수 있다. 서비스제공부(200)는 독서퀴즈 메뉴를 통해 특정 도서에 관련된 퀴즈를 내고, 이를 맞추면 점수가 가산되는 독서퀴즈를 제공할 수 있다. 사용자는 사용자장치(30)를 통해 해당 메뉴에서 독서퀴즈에 참여할 수 있다. 서비스제공부(200)는 책서랍 메뉴를 통해 사용자가 원하는 도서의 도서 정보를 저장하는 기능을 제공할 수 있다. 서비스제공부(200)는 북핑톡 메뉴를 통해 사용자가 특정 도서에 대해 수치로 평가할 수 있는 기능을 제공한다. 이에 따라, 데이터수집부(100)는 사용자 별로 사용자가 참여한 독서 퀴즈의 도서의 식별 정보, 사용자의 응모 횟수 및 획득한 점수, 사용자가 책서랍 메뉴를 통해 저장한 도서의 식별 정보 및 북핑톡 메뉴를 통해 사용자가 평가한 도서의 식별 정보, 사용자가 평가한 수치 등의 독후 활동 정보를 수집하여 저장할 수 있다.
추천부(300)는 협업 필터링을 통해 사용자의 쇼셜 활동 및 독후 활동을 기준으로 사용자의 선호를 분석하고, 사용자가 선호하는 도서를 추천하기 위한 것이다. 이러한 추천부(300)의 동작은 아래에서 더 상세하게 설명될 것이다.
다음으로, 본 발명의 실시예에 따른 하이브리드 방식의 도서 추천을 위한 방법에 대해서 설명하기로 한다. 먼저, 본 발명의 실시예에 따른 사용자의 신뢰도를 산출하는 방법에 대해서 설명하기로 한다. 도 4는 본 발명의 실시예에 따른 사용자의 신뢰도를 산출하는 방법을 설명하기 위한 흐름도이다.
도 4를 참조하면, 데이터수집부(100)는 S110 단계에서 본 발명의 실시예에 따른 사용자의 도서에 대한 소셜 활동과 독후 활동에 대한 정도를 나타내는 활동정보를 수집한다. 여기서, 활동정보는 좋아요 수(A), 코멘트 수(B), 사용콘텐츠 수(Cu), 팔로잉 수(Fing) 및 팔로워 수(Fwer)를 포함한다. 여기서, 좋아요 수(A)는 해당 사용자의 콘텐츠에 태깅된 모든 좋아요 수를 나타낸다. 코멘트 수(B)는 해당 사용자의 콘텐츠에 태깅된 모든 코멘트 수를 나타낸다. 사용콘텐츠 수(Cu)는 해당 사용자가 사용한 모든 콘텐츠 수를 나타낸다. 팔로잉 수(Fing)는 본 발명의 실시예에 따른 도서에 대한 소셜 네트워크에서 해당 사용자의 팔로잉 수를 나타낸다. 팔로워 수(Fwer)는 본 발명의 실시예에 따른 도서에 대한 소셜 네트워크에서 해당 사용자의 팔로워 수를 나타낸다.
다음으로, 추천부(300)는 S120 단계에서 활동정보를 기초로 사용자의 소셜 행위를 분석하여 사용자의 소셜 행위의 정도를 나타내는 소셜행위지수를 산출한다. 추천부(300)는 다음의 수학식 1에 따라 소셜행위지수(K)를 산출할 수 있다.
Figure pat00006
여기서, K는 소셜행위지수이다. 또한, A는 좋아요 수이고, B는 코멘트 수를 나타낸다.
다음으로, 추천부(300)는 S130 단계에서 활동정보를 기초로 사용자의 콘텐츠 이용을 분석하여 사용자의 콘텐츠 이용 정도를 나타내는 콘텐츠이용지수를 산출한다. 이때, 추천부(300)는 다음의 수학식 2에 따라 콘텐츠이용지수(C)를 산출할 수 있다.
Figure pat00007
여기서, C는 콘텐츠이용지수를 나타낸다. Call은 전체 컨텐츠의 수이고, Cu는 사용자가 사용한 콘텐츠의 수를 나타낸다. 또한, w는 가중치로 미리 설정되는 값이다.
다음으로, 추천부(300)는 S140 단계에서 활동정보를 기초로 사용자의 소셜 관계의 강도를 나타내는 소셜관계지수를 산출한다. 이때, 추천부(300)는 다음의 수학식 3에 따라 소셜관계지수(F)를 산출할 수 있다.
Figure pat00008
여기서, F는 소셜관계지수를 나타낸다. 또한, Fing은 팔로잉 수이고, Fwer는 팔로워 수를 나타낸다.
다음으로, 추천부(300)는 S150 단계에서 앞서 산출된 소셜행위지수(K), 콘텐츠이용지수(C) 및 소셜관계지수(F)를 모두 고려하여 사용자의 신뢰도(T)를 산출한다. 이때, 추천부(300)는 다음의 수학식 4에 따라 신뢰도(T)를 산출할 수 있다.
Figure pat00009
여기서, K는 소셜행위지수이고, wa는 소셜행위지수에 대한 가중치인 소셜행위가중치이다. C는 콘텐츠이용지수이고, wb는 콘텐츠이용지수에 대한 가중치인 콘텐츠이용가중치이다. 그리고 F는 소셜관계지수이고, wc는 소셜관계지수에 대한 가중치인 소셜관계가중치를 나타낸다.
신뢰도가 산출되면, 추천부(300)는 S160 단계에서 신뢰도가 소정 수치 이상인 사용자를 선별한다.
본 발명의 실시예에 따르면 복수의 사용자를 도서 성향에 따라 클러스터링할 수 있다. 도 5는 본 발명의 실시예에 따른 복수의 사용자를 도서 성향에 따라 클러스터링하기 위한 방법을 설명하기 위한 흐름도이다. 도 6은 본 발명의 실시예에 따른 복수의 사용자를 도서 성향에 따라 클러스터링하기 위한 방법을 설명하기 위한 도면이다. 도 7은 본 발명의 실시예에 따른 복수의 사용자의 도서 성향에 따른 클러스터의 임계범위를 설정하는 방법을 설명하기 위한 도면이다.
도 5를 참조하면, 데이터수집부(100)는 S200 단계에서 복수의 사용자 각각에 대해 사용자의 특징을 나타내는 사용자정보와, 그 사용자가 선호하는 도서의 특징을 나타내는 선호도서정보를 수집한다. 이때, 복수의 사용자는 앞서 도 4와 같은 방법에 따라 선별된 신뢰도가 소정 수치 이상인 사용자로 한정할 수 있다. 사용자정보는 사용자의 나이, 성별, 사는 지역, 학력 등의 정보를 포함하며, 회원 가입 시, 입력된 정보로부터 얻을 수 있다. 선호도서정보는 사용자가 선호하는 도서의 장르, 주제, 단어, 구문 등이 될 수 있다. 이러한 선호도서정보는 사용자의 소셜 활동 및 독후 활동에 대한 정보로부터 얻을 수 있다.
데이터수집부(100)는 S210 단계에서 복수의 사용자 각각에 대해 사용자정보와 선호도서정보를 소정의 벡터공간(VS)에 임베딩(embedding)하여 사용자의 특징과 사용자가 선호하는 도서의 특징이 내재된 복수의 사용자선호벡터를 생성한다. 도 6에 복수의 사용자선호벡터가 임베딩된 벡터공간(VS)이 도시되었다.
데이터수집부(100)는 S220 단계에서 도시된 바와 같은 벡터공간(VS) 상에서 무작위로(randomly) 복수의 사용자선호벡터 중 소정 수의 클러스터의 중심벡터를 선택한다. 각 클러스터의 중심벡터가 선택되면, 데이터수집부(100)는 S230 단계에서 도 7에 도시된 바와 같은 벡터공간(VS) 상에서 복수의 사용자선호벡터를 소정 수의 클러스터의 중심벡터와의 거리에 따라 클러스터링하여 복수의 클러스터(CL1, CL2, CL3, ...)를 생성한다. 즉, S230 단계에서 데이터수집부(100)는 도 6에 도시된 바와 같은 벡터공간(VS) 상에서 복수의 사용자선호벡터의 소정 수의 클러스터의 중심벡터 각각에 대한 거리를 산출하고, 복수의 사용자선호벡터 각각을 클러스터의 중심벡터와의 거리가 최소인 클러스터에 포함시킨다. 이어서, 데이터수집부(100)는 S240 단계에서 생성된 복수의 클러스터(CL1, CL2, CL3, ...) 별로 클러스터의 중심벡터를 다시 선정한다. 예컨대, S240 단계에서 데이터수집부(100)는 각 클러스터의 복수의 사용자선호벡터 중 중간값을 가지는 사용자선호벡터를 중심벡터로 선정할 수 있다.
이어서, 데이터수집부(100)는 S250 단계에서 모든 사용자선호벡터가 앞서(S240) 다시 선정된 클러스터의 중심벡터와의 거리가 최소인 클러스터에 포함되었는지 여부를 확인할 수 있다. 이러한 S250 단계의 확인 결과, 모든 사용자선호벡터가 앞서(S240) 다시 선정된 클러스터의 중심벡터와의 거리가 최소인 클러스터에 포함되어 있지 않으면, 데이터수집부(100)는 전술한 S230 단계 내지 S250 단계를 반복한다. 즉, 데이터수집부(100)는 다음의 수학식 5가 최소가 될 때까지 S230 단계 내지 S250 단계를 반복한다.
Figure pat00010
수학식 5에서, i는 사용자선호벡터의 인덱스이고, Si는 i번째 사용자선호벡터를 의미한다. 또한, j는 클러스터의 인덱스이고, Cj는 j번째 클러스터의 중심벡터를 나타낸다. 그리고 fij는 플래그 변수이며, i번째 사용자선호벡터가 j번째 클러스터에 속하면 1, 그렇지 않으면 0이다.
한편, S250 단계의 확인 결과, 모든 사용자선호벡터가 앞서(S240) 다시 선정된 클러스터의 중심벡터와의 거리가 최소인 클러스터에 포함되어 있으면, 데이터수집부(100)는 S260 단계에서 현재의 클러스터를 최적화된 클러스터로 결정한다.
그러면, 데이터수집부(100)는 S270 단계에서 최적화된 복수의 클러스터 각각에서 컨벡스 헐(Convex Hull)을 도출한다. 예컨대, 도 7에 어느 하나의 클러스터가 도시되었다. 도시된 바와 같이, 데이터수집부(100)는 클러스터에 포함된 복수의 사용자선호벡터 중 복수의 컨벡스를 선택하여 컨벡스 헐(Convex Hull)을 구성할 수 있다. 이어서, 데이터수집부(100)는 S280 단계에서 컨벡스 헐을 구성하는 다각형의 무게 중심을 해당 클러스터의 중심으로 설정한다. 예컨대, 데이터수집부(100)는 도 7에 도시된 바와 같이, 컨벡스 헐을 구성하는 6각형의 무게 중심을 클러스터의 중심으로 설정할 수 있다. 클러스터의 중심에는 사용자선호벡터가 존재하지 않을 수도 있지만, 클러스터의 중심은 사용자선호벡터와 동일한 차원의 텐서인 사용자선호벡터로 표현될 수 있다.
이어서, 데이터수집부(100)는 S290 단계에서 복수의 클러스터 각각에서 클러스터의 중심과 복수의 사용자선호벡터와의 차이를 나타내는 손실을 구하고, 손실의 평균 및 표준 편차로부터 임계손실(T)을 산출한다.
보다 자세하게 설명하면, 데이터수집부(100)는 다음의 수학식 2에 따라 클러스터의 중심(Mk)과 복수의 사용자선호벡터(Sn)와의 차이를 나타내는 손실(E)을 산출한다.
Figure pat00011
수학식 6에서 E는 손실을 나타내며, j는 클러스터의 인덱스이고, Mj는 j번째 클러스터의 중심을 나타낸다. i는 사용자선호벡터의 인덱스이고, Si은 i번째 사용자선호벡터를 의미한다.
그런 다음, 데이터수집부(100)는 손실의 평균 및 표준 편차로부터 다음의 수학식 7에 따라 임계손실(T)을 산출한다.
Figure pat00012
수학식 7에서, Et는 임계손실을 의미한다. 그리고 m은 앞서 수학식 6에 따라 산출된 클러스터의 중심(Mj)과 복수의 사용자선호벡터(Si)와의 차이를 나타내는 손실(E)의 평균을 나타낸다. 그리고 D는 앞서 수학식 6에 따라 산출된 클러스터의 중심(Mj)과 복수의 사용자선호벡터(Si)와의 차이를 나타내는 손실(E)의 표준 편차를 나타낸다. 또한,
Figure pat00013
는 표준편차 에 대한 가중치이며,
Figure pat00014
의 범위를 가지며, 모집단의 크기에 비례하여 미리 설정되는 하이퍼파라미터이다. 데이터수집부(100)는 S300 단계에서 산출된 임계손실(Et)을 각 클러스터 별로 저장한다.
다음으로, 본 발명의 실시예에 따른 협업 필터링을 기초로 하는 도서 선호도를 산출하는 방법에 대해서 설명하기로 한다. 도 8은 본 발명의 실시예에 따른 협업 필터링을 기초로 하는 도서 선호도를 산출하는 방법을 설명하기 위한 흐름도이다.
도 8을 참조하면, 추천부(300)는 S410 단계에서 독후 활동 정보를 기초로 복수의 사용자의 복수의 도서에 대한 선호도를 도출한다. 예컨대, 전술한 바와 같이, 독후 활동 정보는 사용자가 참여한 독서 퀴즈의 도서의 식별 정보, 사용자의 독서 퀴즈에 대한 응모 횟수 및 획득한 점수, 사용자가 책서랍 메뉴를 통해 특정 공간에 저장한 도서의 식별 정보 및 북핑톡 메뉴를 통해 사용자가 평점을 부여한 도서의 식별 정보, 사용자의 평점 등의 독후 활동 정보를 포함한다. 이에 따라, 추천부(300)는 독서 퀴즈에 대한 사용자의 응모 횟수 및 획득한 점수를 기초로 응모 횟수에 반비례하고 획득한 점수에 비례하여 사용자의 해당 도서에 대한 선호도를 나타내는 선호점수를 산출한다. 예컨대, 추천부(300)는 [가중치ㅧ(획득한 점수가 소정 점수 이상인 횟수/응모 횟수)]와 같은 수학식에 따라 선호도를 산출할 수 있다. 추천부(300)는 사용자가 책서랍 메뉴를 통해 저장한 도서에 대해 일정한(constant) 선호점수를 부여한다. 예컨대, 추천부(300)는 책서랍 메뉴를 통해 저장한 도서에 대해 1점을 부여할 수 있다. 또한, 추천부(300)는 북핑톡 메뉴를 통해 사용자가 평점을 부여한 도서에 대해 일정한(constant) 선호점수를 부여하며, 사용자의 평점에 비례하여 선호점수를 추가로 부여한다. 가령, 추천부(300)는 북핑톡 메뉴를 통해 사용자가 평가한 도서에 대해 1점을 부여하고, 수학식 [사용자 평점/평점 최대값]에 따라 추가로 선호점수를 부여한다. 이에 따라, 추천부(300)는 도서에 대한 선호점수를 합산하여 해당 도서의 선호도를 산출한다.
일례로, 추천부(300)가 독후 활동 정보를 기초로 복수의 사용자(U1, U2, U3...)의 복수의 도서(B1, B2, B3, ...)에 대한 선호도는 다음의 표 1과 같다고 가정한다.
B1 B2 B3 B4 B5 ...
U1 5 4 4 3
U2 1 0 1 4
U3 4 4 5 3
U4 2 1 4 3
U5 4 4 4 2
... ...
다음으로, 추천부(300)는 S420 단계에서 복수의 사용자의 복수의 도서에 대한 선호도를 기초로 동일한 도서에 대응하는 사용자 상호 간의 유사도를 산출한다. 이러한 유사도는 코사인 유사도, 적응적 코사인 유사도 및 피어슨 상관계수 중 어느 하나를 이용하여 산출할 수 있다. 일례로, 추천부(300)는 다음의 수학식 8에 따라 제2 사용자(U2)와 제4 사용자(U4)의 유사도(코사인 유사도)를 산출할 수 있다.
Figure pat00015
여기서, S는 유사도를 나타낸다. 또한, n은 제1 사용자와 제2 사용자 양자 모두가 읽은 도서의 수를 나타내며, i는 제1 사용자와 제2 사용자 양자 모두가 읽은 도서의 인덱스이다. R1은 제1 사용자의 선호도를 나타내며, R2는 제2 사용자의 선호도를 나타낸다. 따라서 제1 사용자와 제2 사용자의 유사도는 다음의 수학식 9와 같이 산출될 수 있다.
Figure pat00016
전술한 방법으로 산출된 동일한 도서에 대응하는 사용자 상호 간의 유사도는 다음의 표 2와 같다고 가정한다.
U1 U2 U3 U4 U5 ...
U1 1.00 0.84 0.96 0.82 0.98
U2 0.84 1.00 0.61 0.84 0.63
U3 0.96 0.61 1.00 0.97 0.99
U4 0.82 0.84 0.97 1.00 0.85
U5 0.98 0.63 0.99 0.85 1.00
... ...
추천부(300)는 S430 단계에서 사용자 상호 간의 유사도를 기초로 대상 사용자의 대상 도서에 대한 사용자 기반 선호도를 예측한다. 이때, 추천부(300)는 다음의 수학식 10에 따라 가중합을 구하여 대상 사용자의 대상 도서에 대한 사용자 기반 선호도를 산출할 수 있다.
Figure pat00017
여기서, Pu는 예측값이며, 사용자 기반 선호도를 나타낸다. S는 대상 사용자와 다른 사용자 간의 유사도이며, R은 대상 도서에 대한 다른 사용자의 선호도를 나타낸다.
예컨대, 추천부(300)는 다음의 수학식 11에 따라 제3 사용자(U3)의 제3 도서(B3)에 대한 사용자 기반 선호도 Pu를 산출할 수 있다.
Figure pat00018
한편, 추천부(300)는 S440 단계에서 복수의 사용자의 복수의 도서에 대한 선호도를 기초로 동일한 사용자에 대응하는 도서 상호 간의 유사도를 산출한다. 이러한 유사도는 코사인 유사도, 적응적 코사인 유사도 및 피어슨 상관계수 중 어느 하나를 이용하여 산출할 수 있다.
일례로, 추천부(300)는 다음의 수학식 12에 따라 제2 도서(B2)와 제3 도서(B3)의 유사도(코사인 유사도)를 산출할 수 있다.
Figure pat00019
여기서, S는 유사도를 나타낸다. 또한, n은 제2 도서 및 제3 도서 양자 모두를 읽은 사용자의 수를 나타내며, i는 제2 도서(B2) 및 제3 도서(B3) 양자 모두를 읽은 사용자의 인덱스이다. R2는 제2 도서(B2)에 대한 선호도를 나타내며, R3은 제3 도서(B3)에 대한 선호도를 나타낸다. 따라서 제2 도서(B2)와 제3 도서(B3)의 유사도는 다음의 수학식 13과 같이 산출될 수 있다.
Figure pat00020
전술한 방법으로 산출된 동일한 사용자에 대응하는 도서 상호 간의 유사도는 다음의 표 3과 같다고 가정한다.
B1 B2 B3 B4 B5 ...
B1 1.00 0.84 0.61 0.82 0.98
B2 0.84 1.00 0.95 0.84 0.63
B3 0.61 0.95 1.00 0.97 0.99
B4 0.82 0.84 0.97 1.00 0.85
B5 0.98 0.63 0.99 0.85 1.00
... ...
추천부(300)는 S450 단계에서 도서 상호 간의 유사도를 기초로 대상 사용자의 대상 도서에 대한 도서 기반 선호도를 예측한다. 이때, 추천부(300)는 다음의 수학식 3에 따라 가중합을 구하여 대상 사용자의 대상 도서에 대한 도서 기반 선호도를 산출할 수 있다.
Figure pat00021
여기서, Pb는 예측값이며, 도서 기반 선호도를 나타낸다. S는 대상 도서와 다른 도서 간의 유사도이며, R은 대상 사용자의 다른 도서에 대한 선호도를 나타낸다. 예컨대, 추천부(300)는 다음의 수학식 15에 따라 제3 사용자(U3)의 제3 도서(B3)에 대한 도서 기반 선호도 Pb를 산출할 수 있다.
Figure pat00022
다음으로, 추천부(300)는 S460 단계에서 각각에 가중치를 적용한 사용자 기반 선호도 Pu 및 도서 기반 선호도 Pb를 병합하여 대상 사용자의 대상 도서에 대한 선호도를 산출한다. 즉, 추천부(300)는 다음의 수학식 16에 따라 대상 사용자의 대상 도서에 대한 선호도를 산출할 수 있다.
Figure pat00023
여기서, Pt는 대상 사용자의 대상 도서에 대한 선호도이다. 또한, Pu는 사용자 기반 선호도이고, Pb는 도서 기반 선호도이다. 특히, wu는 사용자 기반 선호도에 대한 가중치이고, wb는 도서 기반 선호도에 대한 가중치이다.
wu 및 wb는 하이퍼파라미터이며, 다음의 수학식 17과 같은 규칙을 가진다.
Figure pat00024
이때, wu 및 wb는 선호도를 도출할 때 사용된 데이터의 수에 비례하여 설정된다. 즉, wu는 사용자 기반 선호도 Pu를 도출할 때 사용된 데이터의 수에 비례하며, wb는 도서 기반 선호도 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과 같이 산출된다.
Figure pat00025
이와 같이, 본 발명에 따르면, 사용자 기반 선호도 및 도서 기반 선호도 양자 모두를 이용하여 대상 사용자의 대상 도서에 대한 선호도를 산출함으로써, 보다 신뢰도 높은 선호도를 산출할 수 있다.
한편, 전술한 도 8의 실시예에서 사용자 단위 및 도서 단위로 구분하여 연산을 수행함으로써 사용자의 대상 도서에 대한 선호도를 산출하였다. 하지만, 본 발명의 추가적인 실시예에 따르면, 사용자 단위 및 도서 단위로 구분하여 연산을 수행하지 않고, 복수의 사용자를 복수의 사용자 클러스터로 클러스터링하고, 복수의 도서를 복수의 도서 클러스터로 클러스터링한다. 그런 다음, 사용자 클러스터 및 도서 클러스터 단위로 구분하여 연산을 수행함으로써 사용자 클러스터의 도서 클러스터에 대한 선호도를 산출할 수 있다.
다음으로, 본 발명의 실시예에 따른 사용자의 선호도에 따라 도서를 추천하기 위한 방법에 대해서 설명하기로 한다. 도 9는 본 발명의 실시예에 따른 본 발명의 실시예에 따른 사용자의 선호도에 따라 도서를 추천하기 위한 방법을 설명하기 위한 흐름도이다.
도 9를 참조하면, 추천부(300)는 S510 단계에서 사용자에 대해 추천 여부를 결정하기 위한 대상 도서가 입력되면, S520 단계에서 대상 도서에 대한 사용자의 선호도를 산출한다. 이러한 선호도 산출은 앞서 도 8에서 설명된 바에 따라 협업 필터링에 의해 산출될 수 있다.
선호도를 산출한 후, 추천부(300)는 S530 단계에서 사용자의 대상 도서에 대한 선호도가 소정 수치 이상인지 여부를 확인한다. 상기 확인 결과, 사용자의 대상 도서에 대한 선호도가 소정 수치 이상이면, S540 단계로 진행하고, 소정 수치 미만이면, S570 단계로 진행하여 해당 도서를 추천하지 않는다.
한편, S540 단계에서 추천부(300)는 사용자의 특징과 대상 도서의 특징을 이용하여 사용자선호벡터를 생성한다. 이어서, 추천부(300)는 S550 단계에서 앞서(S540) 생성된 사용자선호벡터가 특정 클러스터 내의 임계 손실(Et) 이내에 존재하지는 여부를 확인한다. 예컨대, 사용자선호벡터가 도 7에 도시된 바와 같은 클러스터에 속한다고 가정할 때, 사용자선호벡터가 제1 벡터(V1)인 경우, 임계 손실(Et)를 벗어나며, 제2 벡터(V2)인 경우, 임계 손실(Et) 이내에 존재하는 것으로 확인할 수 있다.
S550 단계의 확인 결과, 생성된 사용자선호벡터가 특정 클러스터 내의 임계 손실(Et) 이내에 존재하지 않으면, 추천부(300)는 S570 단계로 진행하여 해당 도서를 추천하지 않는다.
반면, S550 단계의 확인 결과, 생성된 사용자선호벡터가 특정 클러스터 내의 임계 손실(Et) 이내에 존재하면, 추천부(300)는 S560 단계로 진행하여 해당 도서를 추천한다.
도 10은 본 발명의 실시예에 따른 컴퓨팅 장치를 나타내는 도면이다. 도 10의 컴퓨팅 장치(TN100)는 본 명세서에서 기술된 장치, 예컨대, 추천서버(10), 도서웹서버(20) 혹은 사용자장치(30)가 될 수 있다.
도 10의 실시예에서, 컴퓨팅 장치(TN100)는 적어도 하나의 프로세서(TN110), 송수신 장치(TN120), 및 메모리(TN130)를 포함할 수 있다. 또한, 컴퓨팅 장치(TN100)는 저장 장치(TN140), 입력 인터페이스 장치(TN150), 출력 인터페이스 장치(TN160) 등을 더 포함할 수 있다. 컴퓨팅 장치(TN100)에 포함된 구성 요소들은 버스(bus)(TN170)에 의해 연결되어 서로 통신을 수행할 수 있다.
프로세서(TN110)는 메모리(TN130) 및 저장 장치(TN140) 중에서 적어도 하나에 저장된 프로그램 명령(program command)을 실행할 수 있다. 프로세서(TN110)는 중앙 처리 장치(CPU: central processing unit), 그래픽 처리 장치(GPU: graphics processing unit), 또는 본 발명의 실시예에 따른 방법들이 수행되는 전용의 프로세서를 의미할 수 있다. 프로세서(TN110)는 본 발명의 실시예와 관련하여 기술된 절차, 기능, 및 방법 등을 구현하도록 구성될 수 있다. 프로세서(TN110)는 컴퓨팅 장치(TN100)의 각 구성 요소를 제어할 수 있다.
메모리(TN130) 및 저장 장치(TN140) 각각은 프로세서(TN110)의 동작과 관련된 다양한 정보를 저장할 수 있다. 메모리(TN130) 및 저장 장치(TN140) 각각은 휘발성 저장 매체 및 비휘발성 저장 매체 중에서 적어도 하나로 구성될 수 있다. 예를 들어, 메모리(TN130)는 읽기 전용 메모리(ROM: read only memory) 및 랜덤 액세스 메모리(RAM: random access memory) 중에서 적어도 하나로 구성될 수 있다.
송수신 장치(TN120)는 유선 신호 또는 무선 신호를 송신 또는 수신할 수 있다. 송수신 장치(TN120)는 네트워크에 연결되어 통신을 수행할 수 있다.
한편, 전술한 본 발명의 실시예에 따른 방법은 다양한 컴퓨터수단을 통하여 판독 가능한 프로그램 형태로 구현되어 컴퓨터로 판독 가능한 기록매체에 기록될 수 있다. 여기서, 기록매체는 프로그램 명령, 데이터 파일, 데이터구조 등을 단독으로 또는 조합하여 포함할 수 있다. 기록매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 예컨대 기록매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광 기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media) 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치를 포함한다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어를 포함할 수 있다. 이러한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상 본 발명을 몇 가지 바람직한 실시예를 사용하여 설명하였으나, 이들 실시예는 예시적인 것이며 한정적인 것이 아니다. 이와 같이, 본 발명이 속하는 기술분야에서 통상의 지식을 지닌 자라면 본 발명의 사상과 첨부된 특허청구범위에 제시된 권리범위에서 벗어나지 않으면서 균등론에 따라 다양한 변화와 수정을 가할 수 있음을 이해할 것이다.
10: 추천서버
11: 통신모듈
12: 저장모듈
13: 제어모듈
20: 도서웹서버
30: 사용자장치
100: 데이터수집부
200: 서비스제공부
300: 추천부

Claims (10)

  1. 도서 추천을 위한 방법에 있어서,
    추천부가 복수의 사용자의 독후 활동 정보를 기초로 복수의 도서에 대한 선호도를 도출하는 단계;
    상기 추천부가 상기 도출된 복수의 사용자의 복수의 도서에 대한 선호도로부터 대상 사용자의 대상 도서에 대한 사용자 기반 선호도 및 도서 기반 선호도를 산출하는 단계; 및
    상기 추천부가 상기 사용자 기반 선호도 및 상기 도서 기반 선호도를 병합하여 대상 사용자의 대상 도서에 대한 선호도를 산출하는 단계;
    를 포함하는 것을 특징으로 하는
    도서 추천을 위한 방법.
  2. 제1항에 있어서,
    추천부가 복수의 사용자의 독후 활동 정보를 기초로 복수의 도서에 대한 선호도를 도출하는 단계 전,
    데이터수집부가 복수의 사용자 각각에 대해 사용자정보와 선호도서정보를 소정의 벡터공간에 임베딩하여 사용자의 특징과 사용자가 선호하는 도서의 특징이 내재된 복수의 사용자선호벡터를 생성하는 단계;
    상기 데이터수집부가 복수의 사용자선호벡터를 복수의 클러스터로 클러스터링하는 단계;
    상기 데이터수집부가 클러스터링된 복수의 클러스터 각각에서 컨벡스 헐을 도출하는 단계;
    상기 데이터수집부가 복수의 클러스터 각각에서 컨벡스 헐을 구성하는 다각형의 무게 중심을 클러스터의 중심으로 설정하고, 설정된 클러스터의 중심과 복수의 사용자선호벡터를 기초로 임계손실을 산출하는 단계;
    를 더 포함하는 것을 특징으로 하는
    도서 추천을 위한 방법.
  3. 제2항에 있어서,
    상기 임계손실을 산출하는 단계는
    상기 데이터수집부가 복수의 클러스터 각각에 대해 수학식
    Figure pat00026
    을 통해 클러스터의 중심과 복수의 사용자선호벡터와의 차이를 나타내는 손실을 산출하는 단계; 및
    상기 데이터수집부가 복수의 클러스터 각각에 대해 클러스터의 중심과 복수의 사용자선호벡터와의 차이를 나타내는 손실의 평균 및 표준 편차로부터 수학식
    Figure pat00027
    에 따라 임계손실을 산출하는 단계;
    를 포함하며,
    상기 j는 클러스터의 인덱스이고,
    상기 Mj는 j번째 클러스터의 중심이고,
    상기 i는 사용자선호벡터의 인덱스이고,
    상기 Si은 i번째 사용자선호벡터이고,
    상기 Et는 임계손실이고,
    상기 m은 클러스터의 중심과 복수의 사용자선호벡터와의 차이를 나타내는 손실의 평균이고,
    상기 D는 클러스터의 중심과 복수의 사용자선호벡터와의 차이를 나타내는 손실의 표준 편차이고,
    상기
    Figure pat00028
    는 표준편차에 대한 가중치인 것을 특징으로 하는
    도서 추천을 위한 방법.
  4. 제2항에 있어서,
    상기 사용자 기반 선호도 및 상기 도서 기반 선호도를 병합하여 대상 사용자의 대상 도서에 대한 선호도를 산출하는 단계 후,
    상기 추천부가 사용자의 대상 도서에 대한 선호도가 소정 수치 이상인지 여부를 확인하는 단계;
    상기 추천부가 상기 사용자의 대상 도서에 대한 선호도가 소정 수치 이상이면, 사용자의 특징과 대상 도서의 특징을 이용하여 사용자선호벡터를 생성하는 단계;
    상기 추천부가 생성된 사용자선호벡터가 상기 복수의 클러스터 중 어느 하나의 클러스터 내의 임계 손실 이내에 존재하지는 여부를 확인하는 단계; 및
    상기 확인 결과, 상기 생성된 사용자선호벡터가 상기 어느 하나의 클러스터 내의 임계 손실 이내에 존재하면, 해당 도서를 추천하는 단계;
    를 더 포함하는 것을 특징으로 하는
    도서 추천을 위한 방법.
  5. 제1항에 있어서,
    상기 독후 활동 정보는
    사용자가 참여한 독서 퀴즈의 도서의 식별 정보, 사용자의 독서 퀴즈에 대한 응모 횟수 및 획득한 점수, 사용자가 소정의 메뉴를 통해 저장한 도서의 식별 정보 및 소정의 메뉴를 통해 사용자가 평점을 부여한 도서의 식별 정보, 사용자의 평점 등의 독후 활동 정보를 포함하는 것을 특징으로 하는
    도서 추천을 위한 방법.
  6. 제1항에 있어서,
    상기 사용자 기반 선호도 및 도서 기반 선호도를 산출하는 단계는
    상기 추천부가 상기 도출된 복수의 사용자의 복수의 도서에 대한 선호도를 기초로 동일한 도서에 대응하는 사용자 상호 간의 유사도를 산출하는 단계; 및
    상기 추천부가 상기 산출된 사용자 상호 간의 유사도를 기초로 대상 사용자의 대상 도서에 대한 사용자 기반 선호도를 예측하는 단계;
    를 포함하는 것을 특징으로 하는
    도서 추천을 위한 방법.
  7. 제1항에 있어서,
    상기 사용자 기반 선호도 및 도서 기반 선호도를 산출하는 단계는
    상기 추천부가 상기 도출된 복수의 사용자의 복수의 도서에 대한 선호도를 기초로 동일한 사용자에 대응하는 도서 상호 간의 유사도를 산출하는 단계; 및
    상기 추천부가 상기 산출된 도서 상호 간의 유사도를 기초로 대상 사용자의 대상 도서에 대한 도서 기반 선호도를 예측하는 단계;
    를 포함하는 것을 특징으로 하는
    도서 추천을 위한 방법.
  8. 제1항에 있어서,
    상기 사용자 기반 선호도 및 상기 도서 기반 선호도를 병합하여 대상 사용자의 대상 도서에 대한 선호도를 산출하는 단계는
    상기 추천부가 수학식
    Figure pat00029
    에 따라 대상 사용자의 대상 도서에 대한 선호도를 산출하며,
    상기 Pt는 대상 사용자의 대상 도서에 대한 선호도이고,
    상기 Pu는 사용자 기반 선호도이고,
    상기 Pb는 도서 기반 선호도이고,
    상기 wu는 사용자 기반 선호도에 대한 가중치이고,
    상기 wb는 도서 기반 선호도에 대한 가중치인 것을 특징으로 하는
    도서 추천을 위한 방법.
  9. 제8항에 있어서,
    상기 wu 및 상기 wb는
    수학식
    Figure pat00030
    과 같은 규칙을 가지며,
    상기 wu는 상기 사용자 기반 선호도를 도출할 때 사용된 데이터의 수에 비례하며,
    상기 wb는 도서 기반 선호도를 도출할 때 사용된 데이터의 수에 비례하여 설정되는 것을 특징으로 하는
    도서 추천을 위한 방법.
  10. 도서 추천을 위한 장치에 있어서,
    복수의 사용자가 독후 활동을 하도록 메뉴를 제공하는 서비스제공부;
    상기 복수의 사용자의 독후 활동 정보를 수집하는 데이터수집부;
    상기 복수의 사용자의 독후 활동 정보를 기초로 복수의 도서에 대한 선호도를 도출하고, 상기 도출된 복수의 사용자의 복수의 도서에 대한 선호도로부터 대상 사용자의 대상 도서에 대한 사용자 기반 선호도 및 도서 기반 선호도를 산출하고, 상기 사용자 기반 선호도 및 상기 도서 기반 선호도를 병합하여 대상 사용자의 대상 도서에 대한 선호도를 산출하는 추천부;
    를 포함하는 것을 특징으로 하는
    도서 추천을 위한 장치.
KR1020210045402A 2021-04-07 2021-04-07 협업필터링과 도서 기반 추천을 결합한 하이브리드 방식의 도서 추천을 위한 장치 및 이를 위한 방법 KR102576484B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020210045402A KR102576484B1 (ko) 2021-04-07 2021-04-07 협업필터링과 도서 기반 추천을 결합한 하이브리드 방식의 도서 추천을 위한 장치 및 이를 위한 방법
PCT/KR2022/004937 WO2022216034A1 (ko) 2021-04-07 2022-04-06 협업필터링과 도서 기반 추천을 결합한 하이브리드 방식의 도서 추천을 위한 장치 및 이를 위한 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210045402A KR102576484B1 (ko) 2021-04-07 2021-04-07 협업필터링과 도서 기반 추천을 결합한 하이브리드 방식의 도서 추천을 위한 장치 및 이를 위한 방법

Publications (2)

Publication Number Publication Date
KR20220139140A true KR20220139140A (ko) 2022-10-14
KR102576484B1 KR102576484B1 (ko) 2023-09-08

Family

ID=83545579

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210045402A KR102576484B1 (ko) 2021-04-07 2021-04-07 협업필터링과 도서 기반 추천을 결합한 하이브리드 방식의 도서 추천을 위한 장치 및 이를 위한 방법

Country Status (2)

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

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102484545B1 (ko) * 2021-11-23 2023-01-04 주식회사 룩코 유사 성향 기반의 사용자 추천 방법
KR102613096B1 (ko) * 2023-04-21 2023-12-13 박성순 독서 심리 지도 서비스 제공 방법 및 그 시스템

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130062442A (ko) * 2011-11-22 2013-06-13 주식회사 케이티 협업 필터링 추천 방식을 이용한 추천 방법 및 추천 시스템
KR20140004024A (ko) * 2012-07-02 2014-01-10 주식회사 아이북랜드 사용자 맞춤형 도서 관리 시스템 및 방법
KR20160023937A (ko) * 2014-08-20 2016-03-04 경기대학교 산학협력단 유사 사용자 인덱스 방법 및 프로그램
KR20200046189A (ko) 2018-10-19 2020-05-07 네이버 주식회사 생성적 적대 신경망에 기반한 협업 필터링을 위한 방법 및 시스템
KR20210018384A (ko) * 2019-08-08 2021-02-17 네이버 주식회사 개인화 컨텐츠 추천을 위한 실시간 그래프기반 임베딩 구축 방법 및 시스템

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9552055B2 (en) * 2013-07-15 2017-01-24 Facebook, Inc. Large scale page recommendations on online social networks
KR20180099067A (ko) * 2017-02-28 2018-09-05 주식회사 인카코커뮤니케이션즈 Java와 연관규칙과 협업필터링을 이용한 데이터 분석 장치 및 그 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130062442A (ko) * 2011-11-22 2013-06-13 주식회사 케이티 협업 필터링 추천 방식을 이용한 추천 방법 및 추천 시스템
KR20140004024A (ko) * 2012-07-02 2014-01-10 주식회사 아이북랜드 사용자 맞춤형 도서 관리 시스템 및 방법
KR20160023937A (ko) * 2014-08-20 2016-03-04 경기대학교 산학협력단 유사 사용자 인덱스 방법 및 프로그램
KR20200046189A (ko) 2018-10-19 2020-05-07 네이버 주식회사 생성적 적대 신경망에 기반한 협업 필터링을 위한 방법 및 시스템
KR20210018384A (ko) * 2019-08-08 2021-02-17 네이버 주식회사 개인화 컨텐츠 추천을 위한 실시간 그래프기반 임베딩 구축 방법 및 시스템

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102484545B1 (ko) * 2021-11-23 2023-01-04 주식회사 룩코 유사 성향 기반의 사용자 추천 방법
KR102613096B1 (ko) * 2023-04-21 2023-12-13 박성순 독서 심리 지도 서비스 제공 방법 및 그 시스템

Also Published As

Publication number Publication date
KR102576484B1 (ko) 2023-09-08
WO2022216034A1 (ko) 2022-10-13

Similar Documents

Publication Publication Date Title
Ziegele et al. Linking news value theory with online deliberation: How news factors and illustration factors in news articles affect the deliberative quality of user discussions in SNS’comment sections
US9582569B2 (en) Targeted content distribution based on a strength metric
US9785888B2 (en) Information processing apparatus, information processing method, and program for prediction model generated based on evaluation information
Démurger Migration and families left behind
US9679060B2 (en) Following online social behavior to enhance search experience
US9990609B2 (en) Evaluating service providers using a social network
US10749977B1 (en) Pushing news feed content to client devices
US10783447B2 (en) Information appropriateness assessment tool
US8346749B2 (en) Balancing the costs of sharing private data with the utility of enhanced personalization of online services
KR102576484B1 (ko) 협업필터링과 도서 기반 추천을 결합한 하이브리드 방식의 도서 추천을 위한 장치 및 이를 위한 방법
CN102918535A (zh) 内容处理装置、内容处理方法、内容处理程序以及集成电路
Sältzer Finding the bird’s wings: Dimensions of factional conflict on Twitter
CN113711260A (zh) 使用计算机视觉检测的自动视觉建议、生成和评估
KR20190047867A (ko) 빅데이터를 이용한 사용자 맞춤형 숙소추천장치 및 방법
CN111557000B (zh) 针对媒体的准确性确定
WO2020033117A1 (en) Dynamic and continous onboarding of service providers in an online expert marketplace
Mvungi et al. Associations between privacy, risk awareness, and interactive motivations of social networking service users, and motivation prediction from observable features
Righi Assessing migration through social media: a review
Zamith et al. Digital journalism and epistemologies of news production
Ding et al. Event participation recommendation in event-based social networks
Li et al. Who is your best friend? ranking social network friends according to trust relationship
JP2020126392A (ja) 選択装置、選択方法および選択プログラム
Whipple When Everyone’sa Critic: How US Arts and Culture Critics Strategize to Maintain Their Cultural Authority
Thorson et al. “I Use Social Media as an Escape from All That” Personal Platform Architecture and the Labor of Avoiding News
US10924568B1 (en) Machine learning system for networking

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant