KR20150023433A - 유저 인구통계정보를 난독화하는 방법 및 장치 - Google Patents

유저 인구통계정보를 난독화하는 방법 및 장치 Download PDF

Info

Publication number
KR20150023433A
KR20150023433A KR20147035861A KR20147035861A KR20150023433A KR 20150023433 A KR20150023433 A KR 20150023433A KR 20147035861 A KR20147035861 A KR 20147035861A KR 20147035861 A KR20147035861 A KR 20147035861A KR 20150023433 A KR20150023433 A KR 20150023433A
Authority
KR
South Korea
Prior art keywords
rating
user
demographic information
movie
particular user
Prior art date
Application number
KR20147035861A
Other languages
English (en)
Inventor
스므리티 바갓
우디 바인스베르그
스트라티스 이오아니디스
니나 태프트
Original Assignee
톰슨 라이센싱
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 톰슨 라이센싱 filed Critical 톰슨 라이센싱
Publication of KR20150023433A publication Critical patent/KR20150023433A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • G06N5/022Knowledge engineering; Knowledge acquisition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • G06F21/6254Protecting personal data, e.g. for financial or medical purposes by anonymising data, e.g. decorrelating personal data from the owner's identification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • G06N5/045Explanation of inference; Explainable artificial intelligence [XAI]; Interpretable artificial intelligence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Computer Security & Cryptography (AREA)
  • Medical Informatics (AREA)
  • Health & Medical Sciences (AREA)
  • Algebra (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computational Mathematics (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

추천기 시스템을 구비하는 디지털 컨텐츠 서비스에 등급을 제공하는 새로운 유저의 인구통계 정보의 정확한 검출을 난독화하는 방법은 추론 엔진을 트레이닝하여 the 인구통계 정보를 검출하는 것을 포함한다. 트레이닝 세트는 복수의 다른 유저로부터 영화 등급 및 인구통계 정보를 포함한다. 새로운 유저는 등급, 예를 들어, 영화 등급을 입력하고, 추론 엔진은 새로운 유저의 인구통계 정보를 결정한다. 난독화 엔진은 영화 등급을 추천기 시스템에 추가하여 추천기 시스템 내 추론 엔진이 새로운 유저의 인구통계 정보를 정확히 검출하지 못하게 한다.

Description

유저 인구통계정보를 난독화하는 방법 및 장치{METHOD AND APPARATUS FOR OBFUSCATING USER DEMOGRAPHICS}
관련 출원에 대한 상호 참조
본 출원은, 전체 내용이 모든 목적을 위해 본 명세서에 병합된 미국 가출원 제61/662,618호(출원일: 2012년 6월 21일, 발명의 명칭: "Method and Apparatus For Obfuscating User Demographics Based on Ratings")의 우선권을 주장한다.
기술 분야
본 발명은 일반적으로 추천기 시스템(recommender system)에서 유저 프로파일링(user profiling) 및 유저 프라이버시(privacy)에 관한 것이다. 보다 상세하게는, 본 발명은 인구통계 정보(demographic information)를 추론하는 것에 관한 것이다.
유저의 인구통계정보를 추론하는 것은 여러 상황에서 여러 유형의 유저 생성된 데이터에 대해 연구되어 왔다. 대화 네트워크의 상황에서, 그래프 구조는 블로그의 링크 기반 정보 및 페이스북으로부터 소셜 네트워크 데이터를 사용하여 인구통계정보를 추론하는데 유용한 것으로 제시되었다. 다른 연구는 유저의 기록으로부터 유도되는 텍스트 특징에 의존하여 인구통계정보를 추론한다.
텍스트-기반 추론의 주요 단점은 대부분의 유저들이 기록된 리뷰를 제공하지 않아서, 이들 방법이 적용가능하지 않다는 것이다. 유사하게, 추천기 시스템은 추론하기를 원하는 상세를 제공하는 유저의 소셜 네트워크를 파악하지 못할 수 있다.
가능한 한 적은 정보에 기초하여 유저 인구통계정보를 추론하는 방법이 선호되는 것을 볼 수 있다. 본 발명은 이러한 추론 방법에 관한 것이다.
본 란은 아래 상세한 설명에서 더 설명되는 내용을 간략한 형태로 선택된 개념을 소개하려고 제공된 것이다. 본 개요는 청구된 주제의 핵심 특징이라거나 본질적인 특징을 식별하는 것으로 의도된 것이 아닐 뿐만 아니라 청구된 주제의 범위를 제한하려고 사용된 것도 전혀 아니다.
본 발명은 디지털 컨텐츠의 유저의 등급(rating)으로부터 결정될 수 있는 인구통계 정보를 난독화하는 방법 및 장치를 포함한다. 일 실시예에서, 성별 정보는 유저의 영화 등급으로부터 결정될 수 있다. 프라이버시 우려를 해소하기 위해, 난독화 방법 및 장치가 제공된다. 난독화 방법은 난독화 엔진과 통신하는 추론 엔진을 트레이닝하는 단계를 포함한다. 이 추론 엔진은 복수의 다른 유저로부터 영화 등급 및 인구통계 정보를 포함하는 트레이닝 데이터 세트를 사용하여 인구통계 정보를 결정한다. 이후, 새로운 유저로부터의 영화 등급은 특정 유저로부터의 영화 등급이 인구통계 정보 없이 수신된 경우에 수신된다. 새로운 유저의 인구통계 정보는 트레이닝된 추론 엔진을 사용하여 결정된다. 이후, 엑스트라(extra) 영화 등급이 유저-생성된 등급에 추가된다. 엑스트라 등급은 외부 추론 엔진에 의해 수행된 경우 유저의 인구통계 정보의 발견(finding)에 부정적인 영향(adverse)을 미치도록 생성된다. 외부 추론 엔진은 유저 관람(viewing)을 위한 영화를 추천하는 추천기 시스템의 일부일 수 있다.
본 발명의 추가적인 특징과 장점은 첨부 도면을 참조하여 이하의 예시적인 실시예의 이하의 상세한 설명으로부터 명확히 될 것이다.
본 발명의 전술한 개요 및 예시적인 실시예의 이하의 상세한 설명은 청구된 발명을 제한함이 없이 단지 예시로서 포함된 첨부 도면을 참조하여 판독할 때 최상으로 이해될 수 있을 것이다.
도 1은 본 발명의 측면에 따른 추론 엔진의 예시적인 환경 실시예를 도시한 도면;
도 2a는 플릭스터(Flixster) 트레이닝 데이터 세트에 대한 상이한 분류기의 수신기 동작 특성(Receiver Operating Characteristic: ROC) 플롯을 도시한 도면;
도 2b는 무비렌즈(Movielens) 트레이닝 데이터 세트에 대한 상이한 분류기의 수신기 동작 특성(ROC) 플롯을 도시한 도면;
도 2c는 플릭스터 트레이닝 데이터 세트에 대한 사이즈에 따른 정밀도의 증가를 도시한 도면;
도 2d는 플릭스터 신뢰도에 대한 누적 분배 함수(cumulative distribution function: CDF)를 도시한 도면;
도 3은 본 발명의 측면에 따른 추론 엔진을 사용하는 예시적인 흐름도를 도시한 도면;
도 4는 본 발명의 측면에 따른 예시적인 추론 엔진을 도시한 도면;
도 5a는 난독화 엔진 환경의 제1 실시예를 도시한 도면;
도 5b는 난독화 엔진 환경의 제2 실시예를 도시한 도면;
도 5c는 본 발명의 측면에 따른 예시적인 난독화 엔진을 도시한 도면; 및
도 6은 본 발명의 측면에 따른 난독화 엔진을 사용하는 예시적인 흐름도를 도시한 도면.
각종 예시적인 실시예의 이하 설명에서, 본 명세서의 일부를 형성하고 본 발명의 여러 실시예를 실시할 수 있는 예시를 도시하는 첨부 도면을 참조한다. 다른 실시예들이 사용가능하고 구조적 및 기능적 변형이 본 발명의 범위를 벗어남이 없이 이루어질 수 있는 것으로 이해된다.
성별, 나이, 수입 또는 인종과 같은 인구통계 정보를 통해 유저를 프로파일링하는 것은 타깃화된 광고 및 퍼스널화된 컨텐츠 전달에 있어 매우 중요하다. 추천기 시스템은 또한 이러한 정보로부터 퍼스널화된 추천을 제공하는 이익을 얻을 수 있다. 그러나, 추천기 시스템의 유저는 종종 이러한 정보를 제공하기를 원치 않는다. 이것은 그 프라이버시를 보호하려는 의도이거나, 또는 나태 또는 무관심에서 의도하지 않은 것일 수 있다. 따라서, 다수의 유저로부터 유저의 등급을 수집하는 것으로부터 나오는 패턴으로부터 유의한 정보를 추출하는 전통적인 협력 필터링 방법은 이러한 정보를 사용하는 것을 피하고 대신 유저에 의해 제공되는 등급에만 의존한다.
한눈에, 추천기 시스템에 등급을 개시하는 것은 다소 악의 없는 액션으로 보일 수 있다. 유저는 확실히 본 발명으로부터 생기는 유용성(utility) - 즉, 관련 컨텐츠/항목을 발견하는 능력이 있다. 그럼에도 불구하고, 유저 인구통계정보가 소셜 네트워크, 블로그 및 마이크로 블로그 등에서 유저의 활동과 상관되어서 유저의 활동으로부터 추론될 수 있는 것을 나타내는 상당한 양의 것들이 있다. 인구통계 정보, 예를 들어, 나이, 성별, 인종 또는 심지어 정치적 성향(political orientation)이 협력 필터링 시스템에 개시된 정보로부터 추론될 수 있는지 여부를 질문하는 것은 자연스럽다. 사실, 등급 값(rating value)에 상관없이, 유저가 항목과 상호작용한 것(예를 들어, 특정 영화를 본 것, 특정 노래를 듣는 것 또는 제품을 구매한 것)이 인구통계 정보와 상관될 수 있다.
이러한 추론의 잠재적인 성공은 여러 중요한 의미를 가지고 있다. 한편으로, 추천기의 관점으로부터, 유저의 인구통계 정보를 프로파일링하면 여러 응용을 할 수 있는 길을 제공하고; 추천을 넘어, 광고주는 기본적으로 특정 인구통계 그룹에 타깃 광고를 하는데 관심이 있기 때문에 이러한 프로파일링은 광고를 통한 추가적인 수익을 생성할 수 있다. 본 발명은 이러한 추론 기술에 관한 것이다. 유저가 추론하기를 원하는 정보는 그 성별인 것으로 가정된다; 그럼에도 불구하고, 본 발명의 방법은 상이한 인구통계 특징(나이, 인종, 정치적 성향 등)이 추론될 때에도 적용된다. 또한, 특정 실시예는 영화 등급에 관한 것이지만, 이것은 단지 하나의 예일 뿐이다. 노래, 디지털 게임, 제품, 레스토랑 등의 등급을 포함하지만 이들로 제한되지 않는 임의의 유형의 등급이 사용될 수 있다. 설명을 간략화하고 이해를 명료하게 하기 위해, 영화 등급을 사용하여 인구통계 정보를 결정하는 예가 기본적으로 사용되지만, 다른 유형의 등급이 적용될 수도 있다.
도 1은 본 명세서에 설명된 추론 엔진을 위한 예시적인 시스템(100) 또는 환경을 도시한다. 다른 환경들도 가능하다. 도 1의 시스템(100)은 네트워크(120)에서 유저에 컨텐츠 추천을 제공하는 추천기 시스템(130)을 도시한다. 추천기 시스템의 일반적인 예는 Netflix(등록상표), Hulu(등록상표), Amazon(등록상표) 등과 같은 컨텐츠 제공자에 의해 동작되는 컨텐츠 추천기 시스템을 포함한다. 보통, 추천기 시스템(100)은 유저가 가입하기 위한 후보 디지털 컨텐츠를 제공한다. 이러한 컨텐츠는 스트리밍 비디오, DVD 메일(mailing), 책, 물품 및 상품을 포함할 수 있다. 스트리밍 비디오의 하나의 예시적인 경우에, 후보 영화는 과거의 영화 선택 또는 선택 유저 프로파일 특성에 기초하여 유저에 추천될 수 있다. 예시적인 하나의 실시예로서, 스트리밍 비디오의 경우가 고려된다.
본 발명의 상황에서, 추론 엔진(135)은 영화 등급을 추천기 시스템(130)에 송신하는 유저(125)에 의해 제공된 비-인구통계 정보로부터 인구통계 정보를 추론할 수 있는 데이터 처리 디바이스일 수 있다. 추론 엔진(135)은 유저(125)에 의해 제공된 영화 등급을 처리하고 인구통계 정보를 추론하는 기능을 한다. 하나의 예시적인 경우에, 설명된 인구통계 정보는 성별이다. 그러나, 이 기술 분야에 통상의 지식을 가진 자라면 다른 인구통계 정보가 본 발명의 측면에 따라 추론될 수 있다는 것을 인식할 수 있을 것이다. 이러한 인구통계 정보는 나이, 인종, 정치적 성향 등을 포함할 수 있으나 이들로 제한되지 않는다.
본 발명의 측면에 따라, 후술되는 바와 같이, 추론 엔진(135)은 유저 1, 2 내지 n (각각 105, 110 내지 115)을 통해 획득된 트레이닝 데이터를 사용하여 동작한다. 이들 유저는 영화 등급 데이터 및 인구통계 정보를 추천기 시스템(130)을 통해 추론 엔진(135)에 제공할 수 있다. 트레이닝 데이터 세트는 유저(105 내지 115)가 추천기 시스템을 사용할 때 시간에 따라 획득될 수 있다. 대안적으로, 추론 엔진은 입력 포트(136)를 통해 직접 입력된 하나 이상의 데이터 로드(data load)에 트레이닝 데이터 세트를 입력할 수 있다. 포트(136)는 네트워크, 디스크 드라이브, 또는 트레이닝 데이터를 포함하는 다른 데이터 소스로부터 트레이닝 데이터 세트를 입력하는데 사용될 수 있다.
추론 엔진(135)은 트레이닝 데이터 세트를 처리하는 알고리즘을 사용한다. 추론 엔진(135)은 이후 영화 등급을 포함하는 유저(125)(유저 X) 입력을 사용한다. 영화 등급은 유저(125)에 관한 인구통계 정보를 추론하기 위한 영화 타이틀 또는 영화 색인(index) 또는 참조 번호 및 등급 값과 같은 영화 식별자 중 하나 이상을 포함한다. 본 설명에서 사용된 "영화 타이틀" 또는 보다 일반적으로 "영화 식별자"는, 유저(125)가 본 영화, 쇼, 다큐멘터리, 시리즈 에피소드, 디지털 게임 또는 다른 디지털 컨텐츠의 이름 또는 타이틀 또는 데이터베이스 색인과 같은 식별자이다. 등급 값은 유저(125)가 시청하고 판단한 디지털 컨텐츠의 주관적인 척도이다. 보통, 등급 값은 유저(125)에 의해 이루어진 품질 평가(quality assessment)이고, 1 내지 5의 스케일로 등급 분류(graded)되고; 여기서 1은 낮은 주관적인 스코어이고, 5는 높은 주관적인 스코어이다. 이 기술 분야에 통상의 지식을 가진 자라면 1 내지 10의 수치 스케일, 알파벳 스케일, 5개의 별표(star) 스케일, 10개의 반 별표(half star) 스케일, 또는 "나쁨" 내지 "우수"에 이르는 워드 스케일과 같은 다른 것을 동등하게 사용할 수 있다는 것을 인식할 수 있을 것이다. 본 발명의 측면에 따라, 유저(125)가 제공한 정보는 인구통계 정보를 포함하지 않아서 추론 엔진(135)이 영화 등급으로부터만 유저(125)의 인구통계 정보를 결정할 수 있다는 것이 주목된다.
본 발명의 측면에 따라, 트레이닝 데이터 세트는 추론 엔진(135)을 트레이닝하는데 사용된다. 트레이닝 데이터 세트는 추천된 시스템(130) 및 추론 엔진(135)에 이용가능할 수 있다. 트레이닝 데이터 세트의 특성화가 이제 제공된다. 트레이닝 데이터세트는 각 유저가 카탈로그(
Figure pct00001
)에 있는 영화의 서브셋에 등급을 제공한
Figure pct00002
= {1, ... , N} 유저의 세트를 포함한다.
Figure pct00003
Figure pct00004
는 유저(i ∈
Figure pct00005
)의 등급이 데이터세트에 있는 영화 세트이고, rij, j ∈
Figure pct00006
는 유저(i ∈
Figure pct00007
)가 영화(j ∈
Figure pct00008
)에 제공한 등급이라고 한다. 더욱이, 각 i ∈
Figure pct00009
에서 트레이닝 세트는 유저의 성별을 나타내는 이진 변수(yi ∈ {0,1}(여기서, 비트 0은 남성 유저에 맵핑됨))를 더 포함한다. 트레이닝 데이터 세트는 순수한 것으로 가정되는데, 즉 등급 레이블이나 성별 레이블이 변경되거나 또는 난독화되지 않은 것으로 가정된다.
서면(paper)을 통한 추천기 메커니즘은 이것이 일반적으로 상거래 시스템에서 사용되고 있으므로 행렬 인수분해(matrix factorization)인 것으로 가정된다. 행렬 인수분해는 일례로서 사용된 것이지만, 임의의 추천기 메커니즘이 사용될 수 있다. 대안적인 추천기 메커니즘은 근접 방법(neighborhood method)(유저의 클러스터링), 항목의 문맥 유사성, 또는 이 기술 분야에 통상의 지식을 가진 자에게 알려진 다른 메커니즘을 포함한다. 세트(
Figure pct00010
Figure pct00011
Figure pct00012
)의 등급은 제공된 등급을 트레이닝 세트의 등급 행렬(rating matrix)에 첨부(append)하고 이를 인수분해함으로써 생성된다. 보다 구체적으로, 우리는 각 유저(i ∈
Figure pct00013
∪ {0})를 잠재 특징 벡터(ui
Figure pct00014
)와 연관시킨다. 각 영화(j ∈
Figure pct00015
)는 잠재 특징 벡터(vj
Figure pct00016
)와 연관된다. 정규화된 평균 제곱 에러는 하기와 같이 정의된다:
Figure pct00017
여기서, μ는 전체 데이터세트의 평균 등급이다. 벡터(ui, vj)는 구배 하강(gradient descent)을 통해 MSE를 최소화하여 구성된다. d = 20 및 λ= 0.3의 값이 사용된다. 이렇게 유저 및 영화를 프로파일링하면, 영화(j ∈
Figure pct00018
Figure pct00019
Figure pct00020
내지 < u0, vj > +μ)에 대한 유저 0의 등급이 예측된다.
2개의 예시적인 트레이닝 데이터세트, 즉 플릭스터 및 무비렌즈가 고려된다. 플릭스터는 영화를 등급매기고 리뷰하기 위해 일반인이(publicly) 이용가능한 온라인 소셜 네트워크이다. 플릭스터는 유저가 인구통계 정보를 그 프로파일에 입력하고 그 영화 등급을 공유하고 그 친구 및 대중이 리뷰할 수 있게 한다. 데이터세트는 1M 유저를 가지고 있고, 여기서 34.2K 유저만이 그 나이 및 성별을 공유한다. 17K 영화를 등급매기고 5.8M 등급을 제공한 34.2K 유저의 서브셋이 고려된다. 12.8K 남성 및 21.4K 여성은 2.4M 및 3.4M 등급을 각각 제공하였다. 그러나, 플릭스터는 유저가 반 별표 등급을 제공할 수 있게 하지만, 평가 데이터세트(evaluation dataset)에 대한 일관성을 유지하기 위하여 이 등급은 1 내지 5의 정수인 것으로 반올림(round up)된다. 다른 데이터 세트는 무비렌즈이다. 이 제2 데이터세트는 Grouplens(상표명) 조사 팀에서 일반인에 이용가능하다. 데이터세트는 6K 유저에 의하여 3.7K 영화 및 1M 등급으로 구성된다. 4331명의 남성 및 1709명의 여성은 750K 및 250K 등급을 각각 제공하였다.
인구통계 정보를 결정하기 위하여, 분류기가 추론 엔진에 사용된다. 전술한 바와 같이, 인구통계 정보는 많은 특성을 포함할 수 있다. 하나의 예시적인 인구통계 정보에서 성별을 결정하는 것이 본 발명의 일 실시예로서 표현된다. 그러나, 유저의 상이한 또는 다수의 인구통계 특성을 결정하는 것도 본 발명의 범위 내에 있다.
분류기를 트레이닝하기 위해, 분류기는, j ∈
Figure pct00021
인 경우 xij = rij이고, 그렇지 않은 경우 xij = 0인 특성 벡터(xi
Figure pct00022
) 트레이닝 세트에서 각 유저(i ∈
Figure pct00023
)와 연관된다. 이진 변수(yi)는 분류에서 종속 변수로 기능하는 유저(i)의 성별을 나타내는 것을 상기하자. X ∈
Figure pct00024
는 특성 벡터의 행렬이고, Y ∈ {0, 1}N 는 성별 벡터를 나타낸다고 하자.
3개의 상이한 유형의 분류기, 즉 베이지안(Bayesian) 분류기, 지원 벡터 기계(support vector machine: SVM) 및 로지스틱 회귀분석(logistic regression)이 검사된다. 베이지안 설정에서, 여러 상이한 생성 모델이 검사되고; 모든 모델에서, 점(xi, yi)이 동일한 조인트 분배 P(x, y)로부터 독립적으로 샘플링되는 것으로 가정한다. P가 주어지면, 특성 벡터(x)에 기인하는 예측된 레이블
Figure pct00025
∈ {0,1}이 최대 우도(maximum likelihood)를 갖는 것이고, 즉, 다음과 같다:
Figure pct00026
이전 클래스 분류(class prior classification)가 이제 설명된다. 이전 클래스 분류는 다른 분류기의 성능을 평가하는 베이스 라인 방법(base-line method)으로 기능한다. 인구의 불균일하게 분배된 성별 클래스를 갖는 데이터세트가 주어지면, 이 기본 분류 전략은 지배적인 성별을 가지는 것으로 모든 유저를 분류하는 것이다. 이것은 트레이닝 세트로부터 추정된 생성 모델(P (y|x) = P (y)) 하에서 수식 (1)을 사용하는 것과 동등하다:
Figure pct00027
베르누이 나이브 베이즈(Bernoulli Naive Bayes) 분류가 이제 설명된다. 베르누이 나이브 베이즈는 실제 등급 값을 무시하는 간단한 방법이다. 구체적으로, 유저는 영화를 독립적으로 등급 매기고 등급을 매길지 여부의 결정은 베르누이 랜덤 변수인 것으로 가정한다. 공식적으로, 특성 벡터(x)가 주어지면, 우리는 등급 지시자 벡터(
Figure pct00028
Figure pct00029
)를
Figure pct00030
으로 한정한다. 이것은 등급이 제공된 영화를 캡처한다.
Figure pct00031
(j ∈
Figure pct00032
)이 독립적인 베르누이라고 가정하면, 생성 모델은
Figure pct00033
으로 주어지고, 여기서 P(y)는 수식 (2)에서와 같이 이전 클래스이고, 조건부 P (
Figure pct00034
|y)는 다음과 같이 트레이닝 세트로부터 연산된다:
Figure pct00035
다항 나이브 베이즈 분류가 이제 설명된다. 베르누이 나이브 베이즈의 약점은 등급 값을 무시하는 것이다. 이를 병합하는 하나의 방법은 문서 분류 작업에 종종 적용되는 다항 나이브 베이즈를 통하는 것이다. 직관적으로, 이 방법은 예를 들어 5개의 별표 등급을 베르누이 랜덤 변수의 5개의 독립적인 발생으로 처리함으로써 양의 정수값(positive integer value)으로 베르누이를 연장한다. 높은 등급을 수신하는 영화는 이 분류에서 더 큰 영향을 미친다. 공식적으로, 생성 모델은
Figure pct00036
으로 주어지고 여기서
Figure pct00037
Figure pct00038
은 수식 (3)을 통해 트레이닝 세트로부터 연산된다.
혼합된 나이브 베이즈가 이제 본 발명의 측면에 따라 설명된다. 전술한 다항에 대한 대안을 본 발명자는 혼합된 나이브 베이즈라고 언급한다. 이 모델은 유저가 보통 분배된 등급을 제공한다는 가정에 기초한다. 보다 구체적으로,
Figure pct00039
각 영화(j)에서, 평균(μyj)의 추정은 성별(y)의 유저에 의해 제공된 영화(j)의 평균 등급으로 데이터세트로부터 오고, 분산(σ2 y)은 성별(y)의 유저에 의해 주어진 모든 등급의 분산으로 추정된다. 수식 (1)에서 사용된 결합 우도(joint likelihood)는
Figure pct00040
, 여기서 P(y),
Figure pct00041
는 수식 (2) 및 수식 (3)을 통해 각각 추정된다. 조건부
Figure pct00042
는 등급이 제공될 때(즉,
Figure pct00043
= 1) 수식 (4)으로 주어지고, 등급이 제공되지 않을 때 자명하게 P (
Figure pct00044
= 0 |
Figure pct00045
= 0, y) = 1로 주어진다.
본 발명에서 로지스틱 회귀분석의 사용이 이제 설명된다. 상기 베이지안 방법들 모두의 유의한 약점은 영화 등급들이 독립적이라고 가정하는 것이다. 이를 해소하기 위해, 본 발명자는 로지스틱 회귀분석을 적용하였다. 선형 회귀분석은 계수 세트(β = [β0, β1, ... , βΜ})를 양산한다는 것을 상기하자. 특성 벡터(xi)로 유저(i ∈ N)를 분류하는 것은 제일 먼저 확률(
Figure pct00046
)를 계산하는 것에 의해 수행된다. 유저는 pi < 0.5인 경우 여성으로 분류되고 그렇지 않은 경우 남성으로 분류된다. 값(pi)은 유저(i)를 분류하는 신뢰도 값으로 기능한다. 로지스틱 회귀분석을 사용하는 큰 이익 중 하나는 계수(β)가 각 영화와 클래스 사이의 상관 정도를 캡처한다는 것이다. 본 경우에, 큰 양(positive)의 βj는 영화 j가 클래스 남성과 상관된 것을 나타내는 반면, 작은 음의 βj는 영화(j)가 클래스 여성과 상관된 것을 나타낸다. 우리는 0이 아닌 계수를 가지는 각 성별과 상관된 적어도 1000개의 영화를 구비하도록 정규화 파라미터를 선택한다.
기계 학습에서, 지원 벡터 기계(SVM)는 데이터를 분석하고 패턴을 인식하는 연관된 학습 알고리즘을 갖는 감독되는 학습 모델이고, 분류 및 회귀분석에 사용된다. 직관적으로, SVM은 이 기술 분야에 잘 알려진 바와 같이 초평면(hyperplane)으로부터 부정확하게 분류된 유저의 거리를 최소화하는 방식으로 상이한 성별에 속하는 유저를 분리하는 초평면을 찾는다. SVM은 로지스틱 회귀분석의 장점을 많이 보유하고; 이 SVM은 특징 공간에서 독립성을 가지지 않고 계수를 생성한다. 특징 공간(영화의 수)이 이미 상당히 크므로, 선형 SVM이 분류기 평가에 사용된다. 파라미터 공간(
Figure pct00047
)에 대수 검색(logarithmic search)을 수행하면, 본 발명자는
Figure pct00048
= 1이 최상의 결과를 제공한 것을 찾는다.
Figure pct00049
Figure pct00050
모든 알고리즘은 플릭스터 및 무비렌즈 데이터세트에 대해 평가되었다. 10배 교차 검증(10-fold cross validation)이 사용되었고 평균 정밀도 및 리콜이 이 배수(folds)에 걸쳐 연산된 2개의 평균 수신기 동작 특성(ROC) 곡선에 대해 연산되었다. ROC에 대해, 참된 긍정(true positive)의 비율이 데이터세트에 있는 남성 중에서 정확히 분류된 남성의 비율로서 연산되고, 거짓 긍정(false positive)의 비율은 데이터세트에 있는 여성 중에서 부정확하게 분류된 남성의 비율로 연산된다. 표 1은 3개의 메트릭, 즉 AUC, 정밀도 및 리콜에 대한 분류 결과의 개요를 제공한다. 표 2는 성별당 분리된 것과 동일한 결과를 보여준다. ROC 곡선은 도 2a 및 도 2b에 주어진다. 표 1은 3개의 메트릭: AUC, 정밀도 및 리콜에 대한 분류 결과의 개요를 제공한다. 표 2는 성별당 분리된 것과 동일한 결과를 보여준다.
ROC 곡선으로부터 볼 수 있는 바와 같이, SVM 및 로지스틱 회귀분석은 SVM 및 로지스틱에 대한 회귀분석 곡선이 다른 것보다 우세하므로 베이지안 모델들 중 어느 것보다 데이터세트에 걸쳐 더 우수하게 수행된다. 특히, 로지스틱 회귀분석은 플릭스터에서 최상으로 수행되는 반면 SVM은 무비렌즈에서 최상으로 수행된다. 베르누이 모델, 혼합된 모델 및 다항 모델의 성능은 서로 유의하게 다르지 않다. 이들 발견은 표 1에서 AUC 값을 통해 더 확인된다. 이 표는 모든 다른 방법들의 성능이 용이하게 초과할 수 있는 간단한 이전 클래스 모델의 약점을 더 보여준다.
일반적으로, 분류 작업에서 정밀도는 참된 긍정의 수(즉, 긍정 클래스에 속하는 것으로 정확히 레이블된 항목의 수)를 긍정 클래스에 속하는 것으로 레이블된 요소의 총 수(즉, 클래스에 속하는 것으로 부정확하게 레이블된 항목인 거짓 긍정 및 참된 긍정의 합)로 나눈 것이다. 이 상황에서 리콜은 참된 긍정의 수를 긍정 클래스에 실제 속하는 요소의 총 수(즉, 긍정 클래스에 속하는 것으로 레이블되어 있지 않지만 실제 이에 속해야 하는 항목인 거짓 부정(false negative) 및 참된 긍정의 합)로 나눈 것으로 정의된다.
정밀도 및 리콜에 있어, 표 2는 로지스틱 회귀분석이 플릭스터 유저 및 두 성별에 대해 모든 다른 모델의 성능을 초과하는 것을 보여준다. 무비렌즈 유저에서, SVM은 모든 다른 알고리즘보다 더 우수하게 수행되는 반면, 로지스틱 회귀분석은 제2 최상이다. 일반적으로, 추론은 각 데이터세트에서 주된 성별(플릭스터에서는 여성 및 무비렌즈에서는 남성)에서 더 잘 수행된다. 이것은 주된 클래스에서 매우 높은 리콜 및 주된 클래스에서 낮은 리콜을 나타내는 SVM에서 특히 그러하다. 혼합된 모델은 베르누이 모델보다 의미 있게 개선되고 다항 모델과 유사한 결과를 초래한다. 이것은 가우시안 분배를 사용하는 것이 등급을 분배하는데 충분히 정확한 추정이 있지 못할 수 있는 것을 나타낸다.
등급 값 자체(별표의 수 또는 다른 주관적인 스케일의 수) 대(versus) 간단한 이진 이벤트 "시청했는지 또는 시청하지 않았는지"에 대해 유저 등급의 영향은
Figure pct00051
로 표시된 이진 행렬(binary matrix)에 로지스틱 회귀분석 및 SVM을 적용하여 평가되고, 여기서 등급은 1로 대체된다. 표 1은 X 및
Figure pct00052
에 대한 이들 2개의 방법의 성능을 보여준다. 흥미로운 것은, SVM 및 로지스틱 회귀분석이 입력으로
Figure pct00053
보다 X를 사용할 때 모든 측정에서 2% 미만이 개선된 약간만 더 우수하게 수행된다는 것이다. 사실, 표 2는 X를 사용하는 것이 주된 클래스에
Figure pct00054
를 사용하는 것보다 더 우수하게 수행되지만, 주된 클래스에서는 악화되는 것을 나타낸다. 유사하게, 등급 값을 무시하는 베르누이 모델은 다항 모델 및 혼합된 모델에 상대적으로 근접하여 수행된다. 이것은 영화가 누군가의 프로파일에 포함되었는지 여부는 영화에 주어진 별표 등급의 값만큼 거의 영향을 미치는 것을 의미한다.
트레이닝 세트 사이즈의 효과가 평가되었다. 10배 교차 검증이 사용되었으므로, 트레이닝 세트는 평가 세트에 비해 크다. 플릭스터 데이터는 트레이닝 세트 사이즈에서 유저의 수가 추론 정확도에서 가지는 효과를 평가하는데 사용된다. 평가 세트에서 3000명의 유저를 제공하는 10배 교차 검증에 더하여, 100배 교차 검증이 300명의 유저 평가 세트를 사용하여 수행되었다. 추가적으로, 트레이닝 세트를 증분적으로 증가시키고, 100명의 유저로부터 시작해서 각 반복마다 100명 더 많은 유저를 추가하는 것이 수행되었다.
도 2c는 2개의 평가 세트 사이즈에서 플릭스터에서 로지스틱 회귀분석 추론의 정밀도를 도시한다. 이 도면은 두 사이즈에 대해, 트레이닝 세트에 있는 대략 300명의 유저만으로 알고리즘이 70%를 초과하는 정밀도에 이르는데 충분한 반면, 트레이닝 세트에서 5000명의 유저라면 74%를 초과하는 정밀도에 이르는 것을 보여준다. 이것은 상대적으로 작은 수의 유저들이 트레이닝을 하는데 충분하다는 것을 나타낸다.
영화-성별 상관성이 고려되었다. 로지스틱 회귀분석으로 연산된 계수는 남성 및 여성과 대부분 상관된 영화를 노출시킨다. 표 3은 플릭스터에서 각 성별과 상관된 상위 10개의 영화를 나열하고; 아래에 있는 것과 유사한 관찰이 무비렌즈에서도 적용된다. 영화는 10배수에 걸쳐 평균 랭크에 기초하여 정렬된다. 평균 랭크는 계수들이 배수들 간에 유의하게 변할 수 있어서 사용되었으나, 영화 순서는 사용되지 않았다. 상위 성별 상관된 영화는 X 또는
Figure pct00055
가 입력으로 사용되었는지 여부에 따라 상당히 상이하다. 예를 들어, 상위 100명의 대부분의 여성 및 남성 상관된 영화들 중에서, 35명만이 2개의 입력에 걸쳐 남성에 동일하고, 27명은 여성에 동일하고; 이를 비교하면 0.19 및 0.16의 자카드(Jaccard) 거리가 각각 얻어진다. 데이터세트에서 많은 영화는 액션 및 공포 영화들이 남성과 더 상관된 반면, 드라마와 로맨스는 여성과 더 상관된 스테레오타입과 정렬된다. 그러나, 대중 영화의 대다수는 두 성별에 의해 잘 링크되기 때문에 성별 추론이 간단한 것은 아니다.
표 3은 두 데이터세트에서 상위 남성 상관된 영화의 일부가 게이 남성(gay male), (예를 들어, 레터 데이즈(latter Days), 아름다운 것(Beautiful Thing) 및 외식(Eating Out))을 수반하는 플롯을 구비하는 것을 보여주며; 우리는
Figure pct00056
를 사용할 때 동일한 결과를 관찰하였다. 이에 대한 주된 이유는 이들 영화 모두가 수 십 내지 수 백에 이르는 상대적으로 작은 수의 등급을 구비하는 것이다. 이 경우에 영화를 클래스와 매우 상관되게 하는데 이전 클래스에 대해 성별들 사이에 등급 분배에 작은 분산을 수행하는 것만으로 충분하다.
Figure pct00057
2개의 이용가능한 데이터 세트에 대해 SVM 및 선형 회귀분석 분류기를 완전히 특징으로 하고, 바람직한 결과를 구비하면, 신규한 방법 및 장치는 추론 엔진을 실현하도록 구현된다. 도 3은 인구통계 정보를 구비하지 않는 유저 등급으로부터 인구통계 정보를 생성하고 유용한 목적을 위해 이 결과를 사용하는, 본 발명의 측면에 따른 방법을 나타낸다. 이러한 생성된 인구통계 정보를 사용하는 최종 목적은 유저(125)에 타깃 광고를 하거나, 및/또는 추천기 시스템(130)을 통해 개선된 추천을 제공하는 것을 포함한다.
도 3의 방법(300)은 단계(305)에서 복수의 유저를 나타내는 등급 및 인구통계 정보를 구비하는 트레이닝 데이터 세트를 추론 엔진에 입력하는 것으로 시작된다. 도 1은 추천된 시스템(130)의 일부인 추론 엔진(135)을 도시한다. 이 단계는 네트워크(120)에 추천된 시스템 연결(137)을 사용하여 달성되거나 또는 포트(136)를 통해 추론 엔진(135)에 직접 입력하여 달성될 수 있다. 입력이 추천된 시스템 네트워크 연결(137)을 통하는 경우, 트레이닝 데이터 세트는 인구통계 및 등급 정보(영화 등급 또는 임의의 다른 디지털 컨텐츠 등급), 또는 인구통계 및 등급 정보를 구비하는 적어도 하나의 유저 트레이닝 데이터 세트의 하나 이상의 로드를 하나씩 누적(one-by-one accumulation)한 것일 수 있다. 입력이 입력 포트(136)를 통해 추론 엔진(135)에 직접 입력되면, 데이터는 적어도 하나의 유저 트레이닝 데이터 세트를 하나 이상의 다운로드한 것이다. 단계(210)에서, 추천기 시스템(135)은 트레이닝 데이터 세트로부터 정보를 사용하여 추론 엔진을 트레이닝한다. 단계(210)는 추론 엔진(135)이 포트(136)를 통해 직접 다운로드를 한 경우에는 생략될 수 있다. 어느 경우이든, 단계(205) 및 단계(210)는 유저 인구통계 정보 및 유저 등급 정보를 구비하는 트레이닝 데이터 세트로 추론 엔진(135)을 트레이닝하는 것을 나타낸다.
단계(315)에서, 유저(125)와 같은 트레이닝 데이터 세트에 없는 새로운 유저는 추천기 시스템(130)과 상호 작용하고 등급만을 제공한다. 전술한 바와 같이, 이 등급은, 예를 들어, 영화 식별자 정보 및 주관적인 등급 값 정보를 구비하는 영화 등급일 수 있다. 유저(125)에 의해 제공된 등급은 추론 엔진에 의해 추구된 인구통계 정보가 없다. 새로운 유저(125)가 그 등급을 추천기 시스템에 입력한 후, 단계(320)에서 추론 엔진(135)은 분류 알고리즘을 사용하여 새로운 유저의 등급에 기초하여 새로운 유저의 인구통계 정보를 결정한다. 분류 알고리즘은 바람직하게는 지원 벡터 기계(SVM) 중 하나이거나 또는 전술한 로지스틱 회귀분석이다.
새로운 유저의 인구통계 정보를 결정하면, 결정된 인구통계 정보, 예를 들어, 성별이 많은 유용한 목적을 위해 사용될 수 있다. 2개의 예들이 도 3에 제공된다. 일례에서, 단계(320)에서 결정된 인구통계 정보는 추천기 시스템(130)에 의해 단계(325)에서 사용되어 개선된 추천을 새로운 유저에 제공한다. 예를 들어, 추천기 시스템(130)이, 예를 들어, Netflix(상표명) 또는 Hulu(상표명)에 의해 동작되는 영화 추천기 시스템이라면, 인구통계 정보, 예를 들어, 성별은 새로운 유저가 시청할 성별-특정 영화를 보다 정밀하게 선택하는데 사용될 수 있다. 대안적으로, 추천기 시스템(130)은 단계(320)로부터 결정된 인구통계 정보를 사용하여 특정 타깃 광고를 단계(330)에서 새로운 유저에 제공할 수 있다. 예를 들어, 새로운 유저의 성별이 결정된 경우, 성별-특정 타깃 광고가 새로운 유저에게 제공될 수 있다. 이러한 광고는 여성에는 향수 구매 디스카운트를 제안하거나 또는 남성에는 면도기 구매 디스카운트를 포함할 수 있다. 추천기 시스템은 내부 또는 외부 데이터베이스 또는 네트워크 서버(미도시)로부터 잠재적인 광고에 액세스할 수 있다.
단계(325) 또는 단계(330) 중 어느 하나 또는 둘 모두는 새로운 유저(125)에 의해 제공된 등급으로부터 추출된 인구통계 정보를 이용하도록 취해진 유용한 액션으로 취해질 수 있다. 단계(315 내지 330)는 추천기 시스템(130)의 서비스를 사용하는 각 새로운 유저에 대해 반복될 수 있다. 추천기 시스템으로부터 개선된 추천 또는 광고를 수신하는 유저는 유저(125)와 같은 유저와 연관된 디스플레이 디바이스에 개선된 추천 또는 광고를 수신할 수 있다. 이러한 유저 디스플레이 디바이스는 잘 알려져 있고, 홈 텔레비전 시스템, 독립 텔레비전, 퍼스널 컴퓨터 및 핸드헬드 디바이스, 예를 들어, PDA(personal digital assistant), 랩탑, 테블릿, 셀폰 및 웹 노트북과 연관된 디스플레이 디바이스를 포함한다.
도 4는 추론 엔진(135)의 예시적인 블록도이다. 추론 엔진(135)은 도 1에 도시된 바와 같이 추천기 시스템(130)과 인터페이싱한다. 추론 엔진 인터페이스(410)는 추론 엔진(135)의 통신 컴포넌트를 추천기 시스템(130)의 것에 연결하는 기능을 한다. (405)에서 추천기 시스템으로 가는 추론 엔진 인터페이스(410)는 이 기술 분야에 통상의 지식을 가진 자에 알려진 바와 같이 직렬 또는 병렬 링크, 또는 매립된 또는 외부 기능일 수 있다. 따라서, 추론 엔진은 추천기 시스템과 결합되거나 또는 추천기 시스템과 분리될 수 있다. 인터페이스 포트(405)를 통해 추천기 시스템(130)은 트레이닝 데이터를 추론 엔진(135)에 제공할 수 있고 추론 결과를 추천기 시스템에 제공할 수 있다. 대안적인 트레이닝 데이터 세트 인터페이스는, 트레이닝 데이터가 네트워크 또는 다른 디지털 데이터 소스, 예를 들어, 저장 매체 소스로부터 편리한 형태로 입력될 수 있는 입력 포트(136)이다.
프로세서(420)는 추론 엔진(135)에 대한 연산 기능을 제공한다. 프로세서는 추론 엔진의 요소들 사이에 통신을 사용하여 추론 엔진의 통신 및 연산 공정을 제어하는 CPU 또는 제어기 형태일 수 있다. 이 기술 분야에 통상의 지식을 가진 자라면 버스(415)가 추론 엔진(135)의 여러 요소들 사이에 통신 경로를 제공한다는 것과 다른 점대점 상호 연결을 더 실현할 수 있다는 것을 인식할 수 있을 것이다.
프로그램 메모리(430)는 도 3의 방법(300)과 관련된 메모리를 위한 저장소를 제공할 수 있다. 데이터 메모리(440)는 트레이닝 데이터 세트, 다운로드, 업로드 또는 스크래치패드 계산과 같은 정보를 저장하는 저장소를 제공할 수 있다. 이 기술 분야에 통상의 지식을 가진 자라면 메모리(430 및 440)들이 결합되거나 분리될 수 있다는 것과 프로세서(420)의 전부나 일부에 병합될 수 있다는 것을 인식할 수 있을 것이다. 프로세서(420)는 프로그램 메모리의 저장 및 검색 특성을 사용하여 컴퓨터 명령과 같은 명령을 실행하여, 방법(300) 단계를 수행하고, 추천기 시스템(130)에 의해 사용하기 위한 인구통계 정보를 생성할 수 있다.
추정기(450)는 프로세서(420)와 분리되거나 그 일부일 수 있고, 새로운 유저의 등급으로부터 인구통계 정보를 결정하기 위한 계산 자원을 제공하는 기능을 한다. 따라서, 추정기(450)는 분류기, 바람직하게는 SVM 또는 로지스틱 회귀분석을 위한 연산 자원을 제공할 수 있다. 추정기는 새로운 유저의 인구통계 정보를 결정할 때 데이터 메모리(440) 또는 프로세서(420)에 중간(interim) 계산을 제공할 수 있다. 이러한 중간 계산은 등급 정보만이 주어진 경우 새로운 유저와 관련된 인구통계 정보의 확률을 포함한다. 추정기(450)는 하드웨어일 수 있으나, 바람직하게는 하드웨어와 펌웨어의 조합이거나 또는 소프트웨어이다.
상대적으로 작은 트레이닝 세트가 주어지면, 추론 알고리즘은 70% 내지 80%의 정밀도로 유저의 성별을 정확히 예측한다. 그러나, 유저의 등급으로부터 인구통계 정보를 결정하는 전술한 기술은 유저에 프라이버시 우려를 야기할 수 있다. 일부 유저는 신뢰성있는 결정으로부터 인구통계 정보를 난독화하는 것을 선호할 수 있다. 신뢰성 있는 검출로부터 인구통계 정보를 검출하는 것을 방지하는 난독화 메커니즘은 아래에 제시된다.
도 5a는 추천기 시스템의 추론 엔진(135)에 대해 난독화 메커니즘이 존재할 수 있는 예시적인 환경(500)을 도시한다. 난독화 메커니즘은 다수의 곳에 존재할 수 있다. 난독화 메커니즘은 네트워크(120) 또는 유저(125) 장비에 연결된 클라우드에 존재할 수 있다. 클라우드(미도시)에 위치되면, 난독화 메커니즘은 많은 유저에 제공되는 네트워크 서비스일 수 있다. 유저 장비에 위치되면, 난독화 메커니즘은 본질적으로 추가적인 연산 요소를 갖는 추론 엔진을 포함한다. 예를 들어, 도 5에 도시된 바와 같이, 난독화 엔진(126)은 유저(125)로부터 오는 추천을 모니터링하고 추가적인 등급을 유저의 등급에 추가하여 추천기 시스템(130)에 위치된 임의의 추론 엔진의 정확도를 감소시킬 수 있다.
다른 실시예에서, 컨텐츠를 유저에 분배하는 기능을 하는 컨텐츠 취합기는 컨텐츠 취합 서비스와 함께 난독화 엔진을 제공하는 것에 의해 유저의 인구통계 정보를 보존하는 작용을 할 수도 있다. 도 5b는 이러한 컨텐츠 취합기 서비스를 도시한다. 도 5b의 구성에서, 컨텐츠 취합기(560)는 링크(555)를 통해 네트워크(120)에 연결되고, 유저(125)에 관심이 있을 수 있는 디지털 컨텐츠에 액세스를 획득할 수 있다. 유저(125)는 링크(582)를 통해 직접 또는 링크(581)를 통해 네트워크(120)를 통해 컨텐츠 취합기에 액세스를 획득할 수 있다. 어느 경우이든, 컨텐츠 취합기는 유저(125)에 디지털 컨텐츠를 제공하는 제공자로 작용하고, 수수료(fee)를 받고 유저에 컨텐츠를 제공할 수 있다. 하나의 컨텐츠 제공자는 추천기 시스템(130)일 수 있다. 따라서, 컨텐츠 취합기(560)는 유저(125)에 의해 등급이 매겨질 수 있는 디지털 컨텐츠를 위한 콘딧(conduit)으로 작용한다. 프라이버시 서비스로서, 컨텐츠 취합기는 추론 엔진(575)과 동작하는 난독화 엔진(570)을 통해 유저에 난독화 서비스를 제공할 수 있다. 난독화 엔진(570)은 유저(125)가 추천기 시스템(130) 컨텐츠 제공자로부터 획득된 디지털 컨텐츠를 등급 매길 때, 추가적인 및 난독화 등급이 추천기 시스템(130)에 전달된 등급에 추가되도록 유저(125)의 인구통계 정보를 난독화하는 작용을 한다. 추가된 등급은 인구통계 정보를 정확히 결정하는데 부정적인 영향을 미친다. 따라서, 추천기 시스템과 연관된 추론 엔진(135)은 등급을 통해 유저(125)로부터 인구통계 정보를 정확히 결정할 수 없다.
도 5c는 난독화 엔진(599)의 예시적인 블록도(590)를 도시한다. 난독화 엔진(599)은 네트워크 인터페이스(591)를 통해 도 5b에서 (120)과 같은 네트워크와 인터페이싱한다. 네트워크 인터페이스(591)를 통해 유저 데이터, 예를 들어, 유저 등급 및 트레이닝 데이터 세트는 네트워크, 예를 들어, 인터넷을 통해 액세스될 수 있다. 따라서, 네트워크 인터페이스에 있는 수신기는 트레이닝 데이터 및 유저-제공된 등급, 예를 들어, 영화 등급을 수신할 수 있다. 게다가, 네트워크 인터페이스(591)에 있는 송신기를 통해 등급 생성기(595)에 의해 생성된 엑스트라 등급은 네트워크로 송신될 수 있다. 일 실시예에서, 엑스트라 등급 및 유저-제공된 등급은 추천기 시스템(130)으로 송신되고 여기서 추론 엔진(도 5b의 135)이 유저의 인구통계 정보를 정확히 결정하는 것을 방지한다.
프로세서(592)는 난독화 엔진(599)을 위한 연산 기능을 제공한다. 프로세서는 난독화 엔진의 요소들 간에 통신을 사용하여 난독화 엔진을 위한 통신 및 연산 공정을 제어하는 CPU 또는 제어기 형태일 수 있다. 이 기술 분야에 통상의 지식을 가진 자라면 버스(597)가 난독화 엔진(599)의 여러 요소들 간에 통신 경로를 제공하고 및 버스 아키텍처 대신에 다른 점대점 상호 연결 옵션이 실현될 수도 있다는 것을 인식할 수 있을 것이다.
프로그램 메모리(593)는 도 6의 방법(600)과 관련된 메모리에 저장소를 제공할 수 있다. 데이터 메모리(594)는 트레이닝 데이터 세트, 다운로드, 업로드 또는 스크래치패드 계산과 같은 정보를 저장하는 저장소를 제공할 수 있다. 이 기술 분야에 통상의 지식을 가진 자라면 메모리(593 및 594)들은 결합되거나 분리될 수 있다는 것과 프로세서(591)의 전부나 일부에 병합될 수 있다는 것을 인식할 수 있을 것이다. 프로세서(591)는 방법(600)과 같은 방법을 실행하는 프로그램 메모리 명령을 사용하여, 유저의 인구통계 정보를 정확히 결정하는데 부정적인 영향을 미치는 난독 데이터를 생성한다. 난독 데이터는 네트워크 인터페이스(591)를 통해 네트워크 기반 추천기 시스템에 송신된다.
추론 엔진(596)은 프로세서(592)와 분리되거나 일부일 수 있고, 새로운 유저의 등급으로부터 인구통계 정보를 결정하기 위한 계산 자원을 제공하는 기능을 할 수 있다. 따라서, 추론 엔진은 도 4의 것과 유사하거나 또는 도 5c에 도시된 연산 자원을 사용할 수 있다. 등급 생성기(595)는 아래에 설명된 난독화 기술에 의해 사용하기 위한 등급을 생성하도록 동작한다. 구체적으로, 등급 생성기는 추천기 시스템에 위치된 추론 엔진에 의해 인구통계 정보를 정확히 결정하는데 부정적인 영향을 미치는 유저 등급을 모방(mimic)하는 엑스트라 등급을 생성한다. 따라서, 등급 생성기는 등급을 생성하여 외부 추론 엔진, 예를 들어, 추천기 시스템 내 추론 엔진으로 송신한다(도 1 참조). 외부 추론 시스템으로 송신되는 엑스트라 등급은 새로운 유저로부터 오는 등급을 혼합하여 유저 인구통계 정보를 정확히 결정하지 못하게 하는 작용을 한다. 난독화 엔진(599)은 하드웨어 기반일 수 있으나, 바람직하게는 하드웨어와 펌웨어의 조합이거나 또는 소프트웨어이다.
난독화 엔진의 특성이 이제 설명된다. 유저, 예를 들어, 0으로 색인된 유저(125)는, 영화와 같은 디지털 컨텐츠 항목을 시청하고 등급을 매긴다. 유저가 등급을 매길 수 있는 영화의 세계는 M개의 영화의 카탈로그를 포함하는 것으로 가정되고; 유저는 카탈로그(
Figure pct00058
= {1,2, ... , M})의 서브셋(
Figure pct00059
)을 등급 매긴다. r0j
Figure pct00060
은 영화(j ∈
Figure pct00061
)의 등급이라고 하고, 유저의 등급 프로파일은 (영화, 랭킹) 쌍의 세트(
Figure pct00062
)로 정의된다. 도 5를 참조하면, 유저는
Figure pct00063
(즉 139)을 난독화 메커니즘에 제출하고, 이 난독화 메커니즘은 일부
Figure pct00064
Figure pct00065
에 대해 변경된 등급 프로파일(
Figure pct00066
)(즉 138)을 출력한다. 간단히 용어로, 이 난독은 이하 2개의 상충하는 목표, 즉 (a)
Figure pct00067
를 사용하여 관련 추천을 유저에 제공하는 목표, 및 (b)
Figure pct00068
로부터 성별과 같은 유저의 인구통계 정보를 추론하는 것을 곤란하게 하는 목표 간에 우수한 밸런스를 제공하는 것을 목적으로 한다.
보다 구체적으로, 난독화된 등급 프로파일(
Figure pct00069
)은 성별 추론 엔진(135)을 구현하는 모듈을 구비하는 추천기 시스템(130)에 제출되는 것으로 가정된다. 추천기 시스템(135)은
Figure pct00070
를 사용하여
Figure pct00071
Figure pct00072
Figure pct00073
에 유저의 등급을 예측하고, 잠재적으로, 유저에 관심이 있을 수 있는 영화를 추천한다. 성별 추론 엔진(135)은 분류 메커니즘이고, 이는 동일한
Figure pct00074
을 사용하여 유저를 프로파일링하고 남성 또는 여성으로 레이블한다.
추천기 시스템(130)의 구현이 일반인에 알려져 있을 수 있으나, 난독화 엔진(126) 및 성별 추론 엔진(135)은 알려져 있지 않다. 이 문제에서 제1 단계로서, 추천기 시스템(130) 및 추론 엔진(135)이 임의의 종류의 난독이 일어나고 있다는 것을 알지 못하는(oblivious) 간단한 접근법이 취해진다. 두 메커니즘은 "액면 값(face value)"에서 프로파일(
Figure pct00075
)을 취하고, "참된" 프로파일(
Figure pct00076
)을 리버스 엔지니어링(reverse-engineer)하지 않는다.
전술한 바와 같이, 추천기 시스템(130) 및 추론 엔진(135)은 트레이닝 데이터세트에 액세스한다. 트레이닝 데이터 세트는 순수한 것으로 가정되는데; 즉 등급이나 인구통계 정보, 예를 들어, 성별 레이블이, 변경되거나 또는 난독화되지 않은 것으로 가정된다. 난독화 엔진(126)은 트레이닝 세트의 일부를 볼 수 있다. 일 실시예에서, 트레이닝 데이터세트는 일반인에 이용가능하고, 난독화 엔진(126)은 이에 완전히 액세스한다.
일반적으로, 추론 엔진(135)에 사용되는 분류기의 신뢰도 값은 난독화 엔진이 분류기로부터 성별과 같은 인구통계 정보를 은닉하려고 할 때 극복할 필요가 있는 장애물이다. 난독화 엔진은 추론 엔진(135)에서 분류기의 신뢰도 값을 저하시키려고 한다. 따라서, 분류기가 정확한 또는 부정확한 분류를 출력할 때 상이한 신뢰도 값을 구비하는지 여부가 평가된다. 추론 엔진에 사용되는 분류기의 평가에 대해, 도 2d는 정확한 및 부정확한 분류를 위해 신뢰도 값의 누적 분배 함수(CDF)를 도시한다. 도 2d는 신뢰도 분류가 정확할 때 신뢰도가 더 높고, 0.65의 부정확한 분류에 대해 신뢰도는 중앙(median)이고, 분류가 0.85인 경우 분류가 정확한 것을 도시한다. 더욱이, 정확한 분류의 거의 20%는 1.0의 신뢰도를 가지고 있고, 이는 부정확한 분류의 1% 미만에 유효하다.
난독화 엔진은 유저 i의 등급 프로파일(
Figure pct00077
), 허가된 변경의 수를 나타내는 파라미터(k), 및 변경된 등급 프로파일(
Figure pct00078
)을 출력하는 트레이닝 세트로부터의 정보를 입력으로 취하여 수신된 추천 품질에 최소로 영향을 미치면서 유저의 성별을 추론하는 것을 곤란하게 하는 메커니즘을 구비한다. 일반적으로, 이러한 메커니즘은 영화 등급을 추가, 삭제 또는 변화시키는 것에 의해
Figure pct00079
를 변경할 수 있다. 영화를 삭제하는 것은 대부분의 서비스에서 실현가능하지 않고 등급을 변화시키는 것은 시청 이벤트가 유저의 인구통계 속성의 강한 예측기일 때 등급을 추가하는 것보다 덜 효과적이기 때문에 난독화 엔진은 k개의 영화 등급을 추가하는 것만이 허용되는 설정에 초점이 있다. 유저는 그 프로파일에서 등급 매겨진 상이한 개수의 영화를 구비하기 때문에(및 일부는 작은 수를 구비할 수 있기 때문에), 고정된 수 k는 사용되지 않고, 유저의 등급 프로파일에서 주어진 영화 퍼센트에 대응하는 추가된 수가 사용된다. 영화를 유저의 프로파일을 추가하기 위하여, 난독화 엔진은 2개의 자명하지 않은 결정, 즉 어느 영화가 추가되어야 하는지 및 각 영화에 할당된 등급이 무엇인지를 결정할 필요가 있다.
이들 추가된 영화 등급은 엑스트라 등급이라고 명명된다. 엑스트라 등급은 유저의 인구통계 정보를 정확히 결정하는데 부정적인 영향을 미친다. 엑스트라 등급의 등급 쌍(타이틀, 등급 값)에서 등급 값은 "잡음"으로 할당되지 않고 일부 사용가능한 값을 구비한다. 예를 들어, 이 등급은 모든 유저에 걸쳐 평균 등급에 대응하거나, 또는 (행렬 인수분해를 사용하여) 특정 유저에 예측된 등급에 대응하는 경우, 유저가 등급 값은 영화를 시청한 경우 유저가 등급 매길 수 있는 방법의 합리적인 예측기이다.
난독 구조를 구축하기 위해, 제일 먼저 난독화 메커니즘은 트레이닝 데이터세트에 완전히 액세스하고, 메커니즘은 트레이닝 데이터 세트를 사용하여 추가할 영화와 등급을 선택하는 정보를 유도할 수 있는 것으로 가정된다. 난독화 엔진의 영화 선택에 관해, 본 발명자는 영화를 선택하는데 3개의 전략을 선택하였다. 각 전략은 유저(i)에 의해 등급 매겨진 영화의 세트(
Figure pct00080
), 추가될 영화의 수(k), 및 남성 및 여성 상관된 영화의 정렬된 리스트(LM 및 LF)를 각각 입력으로 취하고, 영화의 변경된 세트(
Figure pct00081
)를 출력하는데, 여기서
Figure pct00082
Figure pct00083
이다. 리스트 LM 및 LF는 스코어 함수 w: LM ∪ LF
Figure pct00084
의 값을 내림 차순으로 저장하는데, 여기서 w(j)는 영화(j ∈ LM U LF)이 연관된 성별과 상관된 정도를 나타낸다. 스코어 함수의 구체적인 예는 w(j) = βj를 설정하는 것이고, 여기서 βj는 트레이닝 데이터세트로부터 로지스틱 회귀분석 모델을 학습하는 것에 의해 획득된 영화 j의 계수이다. 스코어 함수의 이러한 인스턴스화는 평가에 사용된다. 추가적으로,
Figure pct00085
인 것으로 가정한다.
영화 선택 공정은 다음과 같다. 주어진 여성(또는, 남성) 유저(i)에 대해,
Figure pct00086
=
Figure pct00087
를 초기화한다. 각 전략은 LM (또는 LF)로부터 영화(j)를 반복적으로 선택하고, j
Figure pct00088
Figure pct00089
이면 k개의 영화가 추가될 때까지 공정은 j를
Figure pct00090
에 추가한다. 세트(
Figure pct00091
)는 원하는 출력이다. 3개의 전략은 정렬된 영화 리스트로부터 하나의 영화가 픽업되는 방식이 다르다.
램덤 전략을 고려하면, 주어진 여성(남성) 유저(i)에 대해, 영화 스코어에 상관없이 반대 성별(LM (LF))에 대응하는 리스트로부터 랜덤하고 균일하게 영화(j)를 픽업한다. 샘플링된 전략을 고려하면, 반대 성별에 대응하는 리스트에 있는 영화와 연관된 스코어의 분배에 기초하여 영화를 샘플링할 수 있다. 예를 들어, 스코어(0.5), 스코어(0.3), 스코어(0.2)를 각각 갖는 3개의 영화(ji, j2, j3)가 LM이 있다면, j1은 확률 0.5로 픽업되고 이와 같이 계속된다. 탐욕적(Greedy) 전략을 고려하면, 반대 성별에 대응하는 리스트에서 최고 스코어를 갖는 영화를 픽업할 수 있다.
등급 값 쌍(타이틀, 등급 값)으로 등급을 할당하는 것을 고려하면, 프로파일에서 영화를 포함하거나 배제하는 이진 이벤트(시청하였는지 아닌지를 포함하는)는 거의 등급만큼 강력한 성별 추론(gender inference)에 대한 신호인 것이 앞서 언급되었다. 이것은, 2개의 것, 즉 유저 프로파일에 추가할 영화를 결정하는 것, 및 영화에 부여할 등급 값을 결정하는 것을 수행할 필요가 있는 난독화 메커니즘에 대한 중요한 영향(ramification)을 구비한다. 이러한 발견은 추가할 영화를 선택하는 것이 성별 추론을 방해하는데 큰 영향을 미칠 수 있다는 것을 암시한다. 그러나 실제 등급이 성별 추론에 많이 영향을 미치지 않는다면, 우리는 추천 품질을 유지하는 것을 도와주는 등급 값을 선택할 수 있다. 프로파일에서 영화를 포함하거나 배제하는 이진 이벤트가 그 자체적으로 성별 추론을 위한 신호인 것으로 주어지면, 추천기 시스템(130)을 통해 유저에 제공된 추천에 낮은 영향을 미치는 등급을 엑스트라 영화에 할당할 수 있다. 2개의 등급 할당, 즉 평균 영화 등급 및 예측된 등급이 제안된다.
평균 영화 등급에서, 난독화 메커니즘은 이용가능한 트레이닝 데이터를 사용하여 모든 영화(j ∈
Figure pct00092
-
Figure pct00093
)에 대해 평균 등급을 연산하고 이들 영화를 유저(i)의 변경된 등급 프로파일(
Figure pct00094
)에 추가한다. 예측된 등급에서, 난독화 메커니즘은 트레이닝 데이터세트에 행렬 인수분해를 수행하여 영화의 잠재 인수(latent factor)를 연산하고, 이 인수를 사용하여 유저의 등급을 예측한다. 모든 영화(j ∈
Figure pct00095
-
Figure pct00096
)에 대해 예측된 등급은
Figure pct00097
에 추가된다.
앞서 난독화 엔진(126)은 트레이닝 세트에 제한되지 않은 액세스를 하는 것으로 가정되었다. 그러나, 전술한 메커니즘은 다음 양, 즉 (a) 영화 선택을 위해 남성 및 여성 상관된 영화의 정렬된 리스트, 및 (b) 등급 할당을 위해 평균 영화 등급 및 유저 영화 등급을 예측하는 영화 잠재 인수에만 액세스할 것을 요구한다. 이 정보는 일반인에 이용가능한 데이터세트, 예를 들어, Netflix Prize™데이터세트로부터 발견될 수 있다는 것이 주목된다. 이러한 일반인에 이용가능한 데이터세트에서 유저는 특정 추천기 시스템 내 데이터세트와 전체적으로 통계적으로 유사하다고 가정하면, 구체적으로 추론 엔진(135)에 사용되는 트레이닝 데이터 세트에 더 이상 전체 액세스를 취할 필요가 없다.
앞서 제안된 영화 선택 및 등급 할당 전략의 모든 순열(permutation)이 평가되었다. 각 유저(i)에 대해 1%, 5% 및 10% |
Figure pct00098
| 에 대응하여 k의 값이 평가된다. 리스트(LM 및 LF)에서 영화 스코어는 대응하는 로지스틱 회귀분석 계수로 설정된다.
Figure pct00099
성별 추론에서 성능을 감소시키는 것을 통해 난독을 유발하는 것이 프라이버시에 이득이 있다. 표 4는 할당된 등급이 평균 영화 등급일 때 모두 3개의 영화 선택 전략(즉, 랜덤 전략, 샘플링 전략 및 탐욕적 전략)에 대한 추론의 정확도를 표시한다. 정확도는 모델이 순수한 데이터에 트레이닝된 경우 10배의 교차 검증을 사용하여 연산되고, 난독화된 데이터에 테스트된다. 추론의 정확도는 로지스틱 회귀분석 분류기에서 최고이므로, 이것은 추천기 시스템으르 위한 추론 메커니즘으로 자연히 선택될 수 있다. 탐욕적 전략을 사용하여 단 1% 엑스트라 등급을 추가할 때, 정확도는 15%로 떨어지고(즉, 80% 감소되고) 10% 엑스트라 등급을 가지면 정확도는 순수한 데이터에서 76.5%의 정확도에 비해 플릭스터 데이터세트에서 0에 근접한다. 상이한 난독화 메커니즘에서 프라이버시와 유용성의 트레이드오프는 유저의 프로파일에 단 1% 추가적인 등급을 제공하면 80%만큼 추론 정확도를 감소시키는 것을 보여준다.
따라서, 난독화 메커니즘이 탐욕적 전략에 따라 영화를 선택하면, 작은 수의 영화를 추가하는 것으로도 성별을 난독화하는데 충분하다. 심지어 영화가 (영화 스코어, 따라서 로지스틱 회귀분석 계수를 무시하는) 랜덤 전략을 사용하여 선택된 경우에도, 반대 성별과 상관된 단 10% 추가적인 영화를 제공하는 것으로도 63%만큼 성별 추론의 정확도(76.5%로부터 28.5%로 정확도)를 감소시키는데 충분하다. 무비렌즈 데이터세트에서 유사한 트렌드가 관찰된다.
상기 난독화 메커니즘은 남성 또는 여성 상관된 영화의 추론 메커니즘의 의견에 잘 대응하는 정렬된 리스트를 사용한다. 그러나, 일반적으로, 난독화 메커니즘은 어느 추론 알고리즘을 사용할지를 알지 못하여서 LM 및 LF와 같은 리스트는 추론 알고리즘의 내부 의견과 더 약한 일치를 할 수 있다. 난독화 메커니즘은 이러한 시나리오 하에서, 즉 다항 나이브 베이즈 및 SVM 분류기 하에서 평가된다. 난독은 표 4에서 보는 바와 같이 여전히 잘 수행되고, 다항 분류기의 추론 정확도는 플릭스터에서 71%로부터 42.1%로 떨어지고, 무비렌즈 데이터세트에서 (10% 엑스트라 등급 및 탐욕적 전략을 가지면) 76%로부터 60%로 떨어진다.
성별을 난독화하는 경우 유저가 관찰할 수 있는 추천 품질에 대한 영향이 고려되었다. 이 영향은 각 유저에 대해 10개의 등급의 제공된 테스트 세트에 행렬 인수분해의 평균 제곱 제곱근 에러(root mean square error: RMSE)를 연산함으로써 측정된다. 다시, 10배 교차 검증이 수행되었고, 여기서 9배수에서 유저의 데이터는 순수하고, 이 배수들 중 하나는 추가적인 잡음 등급을 갖는 유저를 가지고 있다. 즉,
Figure pct00100
는 유저의 10분의 1에 사용되고,
Figure pct00101
는 나머지에 사용된다. 이것은 성별을 난독화하는 시스템에서 유저의 10%에 RMSE의 변화를 평가하는 것과 동등하다. 전체적으로, 본 발명자는 난독이 RMSE에 무시가능한 영향을 가지는 것을 관찰하였다. 플릭스터에서, 엑스트라 등급이 없는 경우에 비해, RMSE는 추가적인 등급을 통해 증가되지만, 이것은 무시가능하다. 무비렌즈 트레이닝 데이터세트에서, 엑스트라 등급을 통해 RMSE에 약간의 감소가 발생한다. 이것은 엑스트라 등급을 추가하는 것에 의해 행렬 인수분해 솔루션의 성능을 개선시킬 수 있는 원래의 등급 행렬의 밀도를 증가시키기 때문에 발생할 수 있다. 다른 설명은 엑스트라 등급이 임의적이지 않고, 약간 유의한(즉, 모든 유저에 걸쳐 평균된) 것일 수 있다. 주요 관찰은 두 데이터세트에서, RMSE의 변화가 의미 없음, 플릭스터에서 최대 0.015(랜덤 전략 및 10% 엑스트라 등급을 통해), 및 무비렌즈에서 0.058 (샘플링된 전략 및 10% 엑스트라 등급을 통해)이라는 것이다. 따라서, 난독화 엔진은 추천기 시스템의 추천 품질을 유저에 보존한다.
제안된 난독의 프라이버시-유용성의 트레이드오프가 검사되고, 여기서 요구되는 높은 프라이버시는 성별 추론의 낮은 정확도에 대응하고, 높은 유용성은 고품질 추천을 위한 프록시로 종종 사용되는 낮은 RMSE에 대응한다. 평가 시, 본 발명자는 플릭스터 트레이닝 데이터세트에서, 프라이버시가 증가할 때 유용성이 감소하는 것을 발견하였다. 전술한 바와 같이, 무비렌즈 트레이닝 데이터 세트를 사용하면, 유용성이 증가하지만 프라이버시가 증가하기 때문에 단지 약간만 증가한다. 난독화 메커니즘은 성별 추론 정확도에서 상당한 감소를 야기하지만 추천 품질에는 매우 작은 변화만을 초래할 수 있다.
추천 품질을 보존하는 것은 난독화 엔진에서 매력적인 특징이다. 일 평가에서, 등급 할당이 "예측된 등급" 접근법에 대응할 때 트레이드오프가 고려된다. 이 등급 할당 뒤에 동기는, 원칙적으로, 이 난독이 변함없는 데이터에 RMSE와 비교해 RMSE에 변화를 초래하지 않는다는 것이다. 다시 말해, 등급 할당을 이렇게 선택하면 유용성에 이루어질 트레이드오프가 없다. 표 5는 이 등급 할당이 사용될 때 성별 추론의 정확도를 도시한다. 결과는 등급 할당이 평균 영화 등급인 표 4의 결과와 유사하다. 무비렌즈 트레이닝 데이터 세트에서, 성별 추론의 정확도는 예측된 등급에서 약간 더 낮고; 예를 들어, 1% 엑스트라 등급을 갖는 탐욕적 전략에서, 로지스틱 회귀분석 분류기의 정확도는 57.7%로부터 48.4%로 감소하고, 이 이익은 추천 품질을 희생시킴이 없이 발생한다. 결론적으로, 실험 평가에 따르면 작은 양의 추가적인 등급을 통해, 유저에 의해 수신된 추천 품질에 의미 없는 변화를 통해 난독에 의해 유저의 성별을 방지하는 것이 가능하다.
Figure pct00102
도 6은 정확한 검출로부터 유저의 인구통계 정보를 은닉할 수 있는, 유저로부터 등급 세트(타이틀, 등급 값)를 생성하는 예시적인 방법(600)을 도시한다. 본 방법은 유리하게는, 그렇지 않은 경우 추천기 시스템(130)의 추론 엔진(135)을 사용한 결과 수신될 수 있는 추천에 악영향을 미치지 않는다. 본 방법은 단계(605)에서 다른 유저로부터 트레이닝 등급 세트를 도입하는 것으로 시작한다. 트레이닝 데이터 세트는 두 등급(타이틀, 등급 값) 및 다른 유저의 인구통계 정보를 구비한다. 단계(610)에서, 트레이닝 데이터 세트는 도 5b 및 도 5c에서 추론 엔진(예를 들어, 575 또는 596)을 각각 트레이닝하는데 사용된다. 트레이닝된 추론 엔진은 유저(125)의 인구통계 정보를 결정할 수 있다. 따라서, 이 엔진은 유저(125)에 의해 액세스되는 추천기 시스템(예를 들어, 도 5b에 있는 130)에 있는 추론 엔진의 기능을 다소 에뮬레이팅(emulate)한다.
추론 엔진을 트레이닝한 후, 난독화 엔진은 새로운 유저에 의해 사용하기 위해 준비된다. 단계(615)에서, 트레이닝 데이터 세트에 있는 유저가 아닌 새로운 유저가 등급을 난독화 엔진에 제공한다. 그 결과, 난독화 엔진은 영화 등급과 같은 등급을 수신한다. 수신된 영화 등급은 단지 (타이틀, 등급 값)의 등급 쌍이고 새로운 유저의 인구통계 정보는 없다.
단계(620)에서, 추론 엔진(예를 들어, 575 또는 596)은 분류 알고리즘을 사용하여 유저의 등급에 기초하여 새로운 유저의 인구통계 정보를 결정한다. 단계(625)에서, 난독화 엔진은 다른 추론 엔진에 의해 인구통계 정보를 정확히 결정하는데 부정적인 영향을 미치는 등급을 생성한다. 즉, 생성된 등급은 유저의 등급에 추가되어 유저의 인구통계 정보가 검출되는 것을 방지하는 것을 도와줄 수 있는 엑스트라 등급이다. 간단한 예로서, 추론 엔진이 유저(125)의 성별을 여성으로 추론하는 경우, 난독화 엔진에 의해 생성된 엑스트라 등급은 유저의 성별을 부정확하게 추론하는 데이터를 제공한다. 따라서, 외부 추론 엔진, 예를 들어, 추천기 시스템에 있는 추론 엔진은 새로운 유저(125)의 성별 인구통계 정보를 정확히 결정할 수 없을 것이다. 따라서, 엑스트라 등급은 새로운 유저의 인구통계 정보를 정확히 결정하는데 부정적인 영향을 미친다.
엑스트라 등급은 단계(630)에서 난독화 엔진에 의해 추천기 시스템 (recommender system: RS)에 송신된다. 이것은 추천기 시스템(130)에 있는 추론 엔진에 의해 검출된 유저(125)의 인구통계 정보를 불명료하게 하는 효과를 제공한다. 이 난독화는 외부 추론 엔진(예를 들어, 도 5b의 135)이 유저의 보통 생성된 등급을 수신할 뿐만 아니라, 정확한 인구통계 정보를 결정하는데 부정적인 영향을 미치는 등급 쌍(타이틀, 등급 값)을 구비하는 엑스트라 등급을 수신하기 때문에 발생한다. 즉, 엑스트라 등급은 추론 엔진에 의해 유저의 인구통계 정보를 정확히 결정할 수 없게 하는 역할을 한다. 본 발명의 측면에 따라, 추론 엔진(135)을 구비하는 추천기 시스템(130)은 엑스트라 등급으로 유저의 인구통계 정보를 정확히 결정하는 것이 방지된다. 그러나, 추천기 시스템(130)으로부터 유저(125)에 의해 수신된 추천 품질은 엑스트라 등급을 추가함으로써 크게 감소되지 않는다. 본질적으로, 추천기 시스템(130)으로부터 유저(125)에 의해 수신된 추천 품질은 엑스트라 등급이 포함되지 않을 때에 비해 엑스트라 등급이 추가되었을 때와 동일한 것으로 유지된다. 단계(615) 내지 동작(630)은 새로운 유저에 대해 반복될 수 있다. 따라서, 다수의 새로운 유저는 방법(600)에 의해 난독화된 인구통계 정보를 구비할 수 있다.
특정 아키텍처가 도 5a, 도 5b 및 도 5c에서 난독화 엔진을 구현하기 위하여 도시되었으나, 이 기술 분야에 통상의 지식을 가진 자라면 컴포넌트의 분배된 기능, 컴포넌트의 통합, 및 그 프라이버시를 우려하는 유저에 서비스로서 서버 내 위치와 같은 구현 옵션이 존재하는 것을 인식할 수 있을 것이다. 이러한 옵션은 도시되고 설명된 배열의 기능 및 구조와 동등하다.

Claims (14)

  1. 특정 유저의 인구통계 정보(demographic information)를 난독화하는 방법으로서, 상기 방법은 난독 엔진에 의해 수행되고,
    상기 난독 엔진과 통신가능하게 연결된 추론 엔진을 트레이닝하여, 다른 유저로부터 등급(rating) 및 인구통계 정보를 포함하는 트레이닝 데이터 세트를 사용하여 인구통계 정보를 결정하는 단계;
    상기 특정 유저로부터 등급을 수신하는 단계로서, 상기 특정 유저로부터 수신된 상기 등급은 등급 정보만을 구비하고, 상기 특정 유저로부터 상기 등급을 평가하는 추천기 시스템으로 영화 등급이 송신되는 것인, 상기 수신하는 단계;
    상기 특정 유저에 의해 제공된 상기 등급으로부터, 상기 특정 유저의 상기 인구통계 정보를 결정하는 단계;
    상기 난독 엔진에 의해, 상기 특정 유저의 상기 결정된 인구통계 정보에 부정적인 영향(adverse)을 미치는 등급을 생성하는 단계; 및
    상기 생성된 등급을 상기 추천기 시스템에 송신하는 단계를 포함하되,
    상기 특정 유저의 상기 생성된 등급은 상기 추천기 시스템에 의해 상기 특정 유저의 상기 인구통계 정보를 결정하는 것을 난독화하는 것인 방법.
  2. 제1항에 있어서, 상기 특정 유저로부터 수신된 상기 등급은 인구통계 정보 없이 영화 타이틀 및 영화 등급 값 정보를 포함하는 영화 등급인 것인 방법.
  3. 제1항에 있어서, 상기 특정 유저의 상기 인구통계 정보는 성별 정보인 것인 방법.
  4. 제1항에 있어서, 상기 생성된 등급을 상기 추천기 시스템에 송신하는 단계는 상기 특정 유저의 상기 결정된 인구통계 정보에 부정적인 영향을 미치는 엑스트라 등급(extra rating)을 송신하는 단계를 포함하는 것인 방법.
  5. 제4항에 있어서, 상기 엑스트라 등급은 상기 특정 유저에 의해 제공된 영화 등급의 대략 10%인 것인 방법.
  6. 제1항에 있어서, 상기 결정하는 단계는 분류기를 사용하여 상기 특정 유저의 상기 인구통계 정보를 결정하는 단계를 포함하는 것인 방법.
  7. 제6항에 있어서, 상기 분류기는, 지원 벡터 기계(support vector machine); 로지스틱 회귀분석 알고리즘(logistic regression algorithm); 및 나이브 베이즈(naive Bayes) 모델, 다항(multinomial) 모델 및 혼합된(mixed) 모델과 같은 베이지안 접근법(Bayesian approach) 중 하나인 것인 방법.
  8. 제1항에 있어서, 상기 생성된 등급은 추천기 시스템 품질을 보존하는 것인 방법.
  9. 영화 등급을 장치를 통해 추천기 시스템에 제공하는 특정 유저의 인구통계 정보를 정확히 결정하는 것을 난독화하는 상기 장치로서, 상기 장치는,
    복수의 다른 유저로부터의 영화 등급 및 인구통계 정보를 포함하는 트레이닝 데이터 세트를 입력하기 위한 네트워크 인터페이스 내 수신기;
    메모리에 액세스하여, 추론 엔진을 사용하여 상기 영화 등급에 기초하여 인구통계 정보를 결정하는 프로그램을 실행하는 프로세서;
    상기 결정된 인구통계 정보에 부정적인 영향을 미치는 엑스트라 등급을 생성하는 등급 생성기; 및
    상기 유저-제공된 영화 등급 및 상기 엑스트라 등급 모두를 상기 추천기 시스템에 송신하는 상기 네트워크 인터페이스 내 송신기를 포함하되,
    상기 유저-제공된 등급 및 엑스트라 등급의 조합은 상기 추천기 시스템이 상기 인구통계 정보를 결정하는 것을 방지하는 것인 장치.
  10. 제9항에 있어서, 상기 장치는 유저 장비의 일부인 것인 장치.
  11. 제9항에 있어서, 상기 영화 등급은 영화 타이틀 정보 및 영화 등급 값을 포함하는 것인 장치.
  12. 제1항에 있어서, 상기 특정 유저의 상기 결정된 인구통계 정보는 성별 정보인 것인 장치.
  13. 제1항에 있어서, 상기 프로세서가 상기 특정 유저의 상기 인구통계 정보를 결정하는 것을 지원하는 분류기를 더 포함하는 장치.
  14. 제1항에 있어서, 상기 분류기는 지원 벡터 기계 및 로지스틱 회귀분석 알고리즘 중 하나인 것인 장치.
KR20147035861A 2012-06-21 2013-06-10 유저 인구통계정보를 난독화하는 방법 및 장치 KR20150023433A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201261662618P 2012-06-21 2012-06-21
US61/662,618 2012-06-21
PCT/US2013/044890 WO2014007943A2 (en) 2012-06-21 2013-06-10 Method and apparatus for obfuscating user demographics

Publications (1)

Publication Number Publication Date
KR20150023433A true KR20150023433A (ko) 2015-03-05

Family

ID=49514015

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20147035861A KR20150023433A (ko) 2012-06-21 2013-06-10 유저 인구통계정보를 난독화하는 방법 및 장치

Country Status (5)

Country Link
EP (1) EP2864940A2 (ko)
JP (1) JP2015521769A (ko)
KR (1) KR20150023433A (ko)
CN (1) CN104641386A (ko)
WO (1) WO2014007943A2 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160125439A1 (en) * 2014-10-31 2016-05-05 The Nielsen Company (Us), Llc Methods and apparatus to correct segmentation errors
CN109189979B (zh) * 2018-08-13 2020-11-24 腾讯科技(深圳)有限公司 音乐推荐方法、装置、计算设备和存储介质
CN112185583B (zh) * 2020-10-14 2022-05-31 天津之以科技有限公司 一种基于贝叶斯网络的数据挖掘检疫方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6970904B1 (en) * 1999-12-29 2005-11-29 Rode Consulting, Inc. Methods and apparatus for sharing computational resources
US7027882B2 (en) * 2002-02-25 2006-04-11 Sedna Patent Services, Llc Compact implementations for limited-resource platforms
US20110153391A1 (en) * 2009-12-21 2011-06-23 Michael Tenbrock Peer-to-peer privacy panel for audience measurement
CN102387207A (zh) * 2011-10-21 2012-03-21 华为技术有限公司 基于用户反馈信息的推送方法和推送系统

Also Published As

Publication number Publication date
EP2864940A2 (en) 2015-04-29
WO2014007943A3 (en) 2014-04-10
WO2014007943A2 (en) 2014-01-09
JP2015521769A (ja) 2015-07-30
CN104641386A (zh) 2015-05-20

Similar Documents

Publication Publication Date Title
Steck Training and testing of recommender systems on data missing not at random
TWI636416B (zh) 內容個人化之多相排序方法和系統
Wang et al. Collaborative filtering with entropy‐driven user similarity in recommender systems
Yu et al. Attributes coupling based matrix factorization for item recommendation
US20150081725A1 (en) System and method for actively obtaining social data
KR20150023432A (ko) 사용자 데모그래픽을 추정하는 방법 및 장치
US20120226559A1 (en) Automatic classification of consumers into micro-segments
US20180218287A1 (en) Determining performance of a machine-learning model based on aggregation of finer-grain normalized performance metrics
US11157836B2 (en) Changing machine learning classification of digital content
US10007728B2 (en) Determining a community page for a concept in a social networking system
US20170140397A1 (en) Measuring influence propagation within networks
Niu et al. FUIR: Fusing user and item information to deal with data sparsity by using side information in recommendation systems
Li et al. Differentially private recommendation system based on community detection in social network applications
Bagherjeiran et al. Combining behavioral and social network data for online advertising
US20160147886A1 (en) Querying Groups of Users Based on User Attributes for Social Analytics
AU2012336123B2 (en) Providing universal social context for concepts in a social networking system
Liu et al. Towards context-aware collaborative filtering by learning context-aware latent representations
US20160171228A1 (en) Method and apparatus for obfuscating user demographics
US10210465B2 (en) Enabling preference portability for users of a social networking system
KR20150023433A (ko) 유저 인구통계정보를 난독화하는 방법 및 장치
Wang et al. Towards effective recommendation of social data across social networking sites
Cotta et al. Off-policy evaluation of probabilistic identity data in lookalike modeling
Yu et al. Attributes coupling based item enhanced matrix factorization technique for recommender systems
Shih et al. An effective friend recommendation method using learning to rank and social influence
US11868429B1 (en) Taxonomization of features used in prediction models according to sub-categories in a list of ranked categories

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid