KR102570616B1 - 단말에서 비식별키를 생성하는 방법, 그리고 이를 구현한 서버 및 단말 - Google Patents

단말에서 비식별키를 생성하는 방법, 그리고 이를 구현한 서버 및 단말 Download PDF

Info

Publication number
KR102570616B1
KR102570616B1 KR1020210092961A KR20210092961A KR102570616B1 KR 102570616 B1 KR102570616 B1 KR 102570616B1 KR 1020210092961 A KR1020210092961 A KR 1020210092961A KR 20210092961 A KR20210092961 A KR 20210092961A KR 102570616 B1 KR102570616 B1 KR 102570616B1
Authority
KR
South Korea
Prior art keywords
identification key
application
user
terminal
key generation
Prior art date
Application number
KR1020210092961A
Other languages
English (en)
Other versions
KR20230012310A (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 KR1020210092961A priority Critical patent/KR102570616B1/ko
Publication of KR20230012310A publication Critical patent/KR20230012310A/ko
Application granted granted Critical
Publication of KR102570616B1 publication Critical patent/KR102570616B1/ko

Links

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0407Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden
    • H04L63/0421Anonymous communication, i.e. the party's identifiers are hidden from the other party or parties, e.g. using an anonymizer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/02Protecting privacy or anonymity, e.g. protecting personally identifiable information [PII]

Abstract

적어도 하나의 프로세서에 의해 동작하는 어플리케이션 서버의 동작 방법으로서, 어플리케이션을 설치한 단말들로, 상기 어플리케이션에서 획득할 수 있는 사용자 정보 기반으로 비식별키를 생성하는 비식별키 생성 모델을 제공하는 단계, 그리고 각 단말로부터 상기 비식별키 생성 모델을 통해 생성된 비식별키를 수신하는 단계를 포함한다. 상기 비식별키 생성 모델은 유사한 입력 데이터를 동일한 해시값 또는 동일한 클러스터로 배정하여 상기 비식별키를 출력하는 모델이다.

Description

단말에서 비식별키를 생성하는 방법, 그리고 이를 구현한 서버 및 단말{METHOD FOR GENERATING DE-IDENTIFIED KEY OF TERMINAL, SERVER AND TERMINAL IMPLEMENTING THE METHOD}
본 개시는 사용자 비식별화(user de-identification)에 관한 것이다.
어플리케이션을 이용하는 사용자를 식별하는 방법으로 가입자에게 부여된 사용자 식별자(예를 들면, 카카오ID, 구글ID 등)가 사용되었으나, 최근에는 개인정보 보호를 위해, 사용자를 직접적으로 식별할 수 있는 사용자 식별자 대신 비식별자를 이용하고 있다. 대표적인 비식별자로서 안드로이드 단말용 광고 식별자인 AAID, iOS 단말용 광고 식별자인 IDFA가 있다. AAID/IDFA는 단말에 부여된 UUID(Universally Unique IDentifier)라서 성별, 연령 등의 개인정보를 포함하지 않고, 고유한 AAID/IDFA를 통해 사용자 행동 추적이 가능해서, 사용자를 타게팅하는 데 사용되었다.
하지만, 고유한 AAID/IDFA가 단말을 소유한 사용자를 식별할 수 있는 값으로 간주되어, 최근 유럽연합 일반 데이터 보호 규칙(General Data Protection Regulation, GDPR)에 따르면, UUID 기반의 비식별자가 개인정보로 분류되었다. 이에 따르면, 어플리케이션 제공자가 단말의 AAID/IDFA를 수집하고 활용하는 것을 허용하지 않는다. 이러한 강화된 개인정보 보호 추세에 따라, 애플은 IDFA를 어플리케이션 제공자에 기본으로 제공하는 정책(opt-in)에서, 어플리케이션별로 사용자 동의를 받아야 제공하는 정책(opt-out)으로 전환하였다. 따라서, 어플리케이션 제공자들은 사용자 맞춤형 서비스를 제공하기 위한 새로운 비식별자가 필요하다.
본 개시는 어플리케이션에서 획득할 수 있는 사용자 정보를 이용하여 단말에서 비식별키를 생성하는 방법을 제공하는 것이다.
본 개시는 친구 목록 또는 친구 목록에 매핑된 토픽 목록을 이용하여 비식별키를 생성하는 방법, 그리고 이를 구현한 서버 및 단말을 제공하는 것이다.
한 실시예에 따라 적어도 하나의 프로세서에 의해 동작하는 어플리케이션 서버의 동작 방법으로서, 어플리케이션을 설치한 단말들로, 상기 어플리케이션에서 획득할 수 있는 사용자 정보 기반으로 비식별키를 생성하는 비식별키 생성 모델을 제공하는 단계, 그리고 각 단말로부터 상기 비식별키 생성 모델을 통해 생성된 비식별키를 수신하는 단계를 포함한다. 상기 비식별키 생성 모델은 유사한 입력 데이터를 동일한 해시값 또는 동일한 클러스터로 배정하여 상기 비식별키를 출력하는 모델이다.
상기 비식별키 생성 모델은 유사한 사용자 정보를 동일한 해시값으로 출력하는 해시 함수 모델일 수 있다.
상기 비식별키 생성 모델은 입력 데이터를 복수의 클러스터들 중 어느 하나로 분류하는 기계학습 모델일 수 있다.
상기 비식별키 생성 모델의 입력 데이터는 친구 목록일 수 있다.
상기 비식별키 생성 모델의 입력 데이터는 친구 목록에 매핑된 토픽 목록일 수 있다.
상기 동작 방법은 상기 어플리케이션을 설치한 단말들로부터 사용자들의 행동 정보를 수집하는 단계, 각 사용자의 행동 정보를 클러스터링하고, 각 사용자의 행동 정보를 기초로 분류된 클러스터의 토픽을 해당 사용자에게 부여하는 단계, 그리고 상기 어플리케이션을 설치한 각 단말로, 친구 목록의 친구들에 부여된 토픽들을 전송하는 단계를 더 포함할 수 있다.
상기 동작 방법은 각 단말로부터 수신한 비식별키를 이용하여 해당 단말을 위한 타게팅 정보를 생성하는 단계를 더 포함할 수 있다.
다른 실시예에 따라 적어도 하나의 프로세서에 의해 동작하는 단말의 동작 방법으로서, 어플리케이션에서 획득할 수 있는 사용자 정보 기반으로 비식별키를 생성하는 비식별키 생성 모델을 수신하는 단계, 그리고 상기 비식별키 생성 모델로 상기 사용자 정보를 입력하고, 상기 비식별키 생성 모델로부터 출력된 비식별키를 어플리케이션 서버로 전송하는 단계를 포함한다. 상기 비식별키 생성 모델은 유사한 입력 데이터를 동일한 해시값 또는 동일한 클러스터로 배정하여 상기 비식별키를 출력하는 모델일 수 있다.
상기 사용자 정보는 친구 목록일 수 있다.
또 다른 실시예에 따라 적어도 하나의 프로세서에 의해 동작하는 단말의 동작 방법으로서, 어플리케이션에서 획득할 수 있는 사용자 정보 기반으로 비식별키를 생성하는 비식별키 생성 모델을 수신하는 단계, 그리고 상기 비식별키 생성 모델로 친구 목록에 매핑된 토픽 목록을 입력하고, 상기 비식별키 생성 모델로부터 출력된 비식별키를 어플리케이션 서버로 전송하는 단계를 포함한다. 상기 비식별키 생성 모델은 유사한 입력 데이터를 동일한 해시값 또는 동일한 클러스터로 배정하여 상기 비식별키를 출력하는 모델이다.
상기 동작 방법은 상기 어플리케이션 서버로부터, 상기 친구 목록의 친구들에 부여된 토픽들을 수신하고, 수신한 토픽들을 이용하여 상기 토픽 목록을 생성하는 단계를 더 포함할 수 있다.
상기 친구들에 부여된 토픽들은 각 친구의 행동 정보를 기초로 상기 어플리케이션 서버에 의해 부여될 수 있다.
실시예에 따르면, 단말이 친구 목록에 해당하는 해시값 또는 클러스터 식별자를 비식별키로 생성하고, 어플리케이션 서버는 단말에서 생성된 비식별키를 활용하므로, 강화된 개인정보 방침을 준수하면서 k-익명성을 보장할 수 있다.
실시예에 따르면, 단말이 친구 목록에 매핑된 토픽 목록으로부터 비식별키를 생성하도록, 어플리케이션 서버가 사용자들의 행동 정보를 기초로 사용자들에 토픽을 부여하고, 단말에서 생성된 비식별키를 활용하므로, 강화된 개인정보 방침을 준수하면서 k-익명성을 보장할 수 있다.
실시예에 따르면, 어플리케이션 서버는 안드로이드 단말용 광고 식별자인 AAID, iOS 단말용 광고 식별자인 IDFA를 수집하지 않더라도, 사용자 성향을 나타내는 친구 목록 기반 비식별키를 활용하여 단말로 타게팅된 정보를 제공할 수 있다.
도 1은 한 실시예에 따른 비식별키 생성 시스템의 구성도이다.
도 2는 한 실시예에 따른 친구 목록을 이용한 비식별키 생성 방법을 설명하는 도면이다.
도 3은 한 실시예에 따른 친구들에 부여된 토픽들을 이용한 비식별키 생성 방법을 설명하는 도면이다.
도 4부터 도 6 각각은 한 실시예에 따른 비식별키 생성 방법의 흐름도이다.
아래에서는 첨부한 도면을 참고로 하여 본 개시의 실시예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 개시를 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 "…부", "…기", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
서버는 하나 이상의 프로세서, 프로세서에 의하여 수행되는 컴퓨터 프로그램을 로드하는 메모리, 컴퓨터 프로그램 및 각종 데이터를 저장하는 저장 장치, 통신 인터페이스를 포함할 수 있다. 이외에도, 서버는 다양한 구성 요소가 더 포함될 수 있다. 프로세서는 서버의 동작을 제어하는 장치로서, 컴퓨터 프로그램에 포함된 명령어들을 처리하는 다양한 형태의 프로세서일 수 있고, 예를 들면, CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), GPU(Graphic Processing Unit) 또는 본 개시의 기술 분야에 잘 알려진 임의 형태의 프로세서 중 적어도 하나를 포함하여 구성될 수 있다. 메모리는 각종 데이터, 명령 및/또는 정보를 저장한다. 메모리는 본 개시의 동작을 실행하도록 기술된 명령어들이 프로세서에 의해 처리되도록 해당 컴퓨터 프로그램을 저장 장치로부터 로드할 수 있다. 메모리는 예를 들면, ROM(read only memory), RAM(random access memory) 등 일 수 있다. 저장 장치는 컴퓨터 프로그램, 각종 데이터를 비임시적으로 저장할 수 있다. 저장 장치는 ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리 등과 같은 비휘발성 메모리, 하드 디스크, 착탈형 디스크, 또는 본 개시가 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터로 읽을 수 있는 기록 매체를 포함하여 구성될 수 있다. 통신 인터페이스는 유/무선 통신을 지원하는 유/무선 통신 모듈일 수 있다. 컴퓨터 프로그램은, 프로세서에 의해 실행되는 명령어들(instructions)을 포함하고, 비일시적-컴퓨터 판독가능 저장매체(non-transitory computer readable storage medium)에 저장되며, 명령어들은 프로세서가 본 개시의 동작을 실행하도록 만든다.
단말은 컴퓨터 판독 가능한 저장 매체에 저장되는 소프트웨어인 어플리케이션/프로그램, 그리고 프로세서, 메모리, 디스플레이, 통신 모듈 등의 하드웨어를 포함한다. 프로세서는 하드웨어들과 협력하여 어플리케이션을 구동한다. 디스플레이는 어플리케이션에서 제공하는 사용자 인터페이스 화면을 표시하고, 사용자 입력을 수신할 수 있고, 예를 들면 터치 입력을 수신할 수 있다. 통신 모듈은 통신망을 통해 서버와 통신한다. 단말은 다양한 형태로 구현될 수 있고, 모바일 단말을 예로 들어 설명한다.
도 1은 한 실시예에 따른 비식별키 생성 시스템의 구성도이고, 도 2는 한 실시예에 따른 친구 목록을 이용한 비식별키 생성 방법을 설명하는 도면이며, 도 3은 한 실시예에 따른 친구들에 부여된 토픽들을 이용한 비식별키 생성 방법을 설명하는 도면이다.
도 1을 참고하면, 어플리케이션 서버(100)는 어플리케이션을, 어플리케이션 스토어(10)에 업로드하고, 단말들(200-1, 200-2, 200-3, …)은 어플리케이션 스토어(10)에 게시된 어플리케이션을 설치한다.
설명에서, 어플리케이션은 친구 목록을 가지는 소셜 미디어 어플리케이션이라고 가정한다. 소셜 미디어 어플리케이션은 예를 들면 카카오톡과 같은 인스턴트 메시징 서비스 기반의 어플리케이션을 비롯하여, 페이스북, 인스타그램 등과 같은 각종 소셜 네트워킹 어플리케이션을 포함할 수 있다.
배경기술에서 언급한 바와 같이, 어플리케이션 서버(100)는 어플리케이션에 가입한 사용자 ID뿐만 아니라, 안드로이드 단말용 광고 식별자인 AAID, iOS 단말용 광고 식별자인 IDFA 역시 단말로부터 수집하기 어려워서, 광고 등의 콘텐츠를 타게팅하는 것이 쉽지 않다.
이를 해결하기 위해, 단말들(200-1, 200-2, 200-3, …)이 어플리케이션에서 사용자 성향을 나타내는 사용자 정보를 기초로 개인정보가 비식별화된 키(앞으로, "비식별키"라고 한다)를 생성하도록 하고. 어플리케이션 서버(100)는 단말로부터 수신한 비식별키를 활용할 수 있다. 어플리케이션 서버(100)는 비식별키와 함께 전달된 정보를 수집하고, 이를 분석하여 타게팅 정보를 생성하며, 비식별키와 함께 전달된 콘텐츠 요청에 대해 타게팅 정보를 제공할 수 있다.
비식별키 생성에 사용되는 사용자 정보는 어플리케이션에서 획득할 수 있는 정보에 따라 다양할 수 있다. 예를 들면, 어플리케이션에서 획득할 수 있는 친구 목록 및 활동 로그(예를 들면, 최근 메시지 횟수 로그 등), 오픈채팅 목록 및 활동 로그(예를 들면, 최근 가입한 오픈채팅 대화방, 자주 들어가는 오픈채팅 대화방 등), 톡채널 목록 및 활동 로그(예를 들면, 최근 가입한 톡채널 목록, 최근 톡채널로부터 수신받은 배송/구매 등과 같은 특정 정보 등) 등과 같은 사용자 정보가 비식별키 생성에 사용될 수 있다. 다음에서, 비식별키 생성에 사용되는 사용자 정보로서, 친구 목록을 예로 들어 설명한다.
친구 목록은 어플리케이션에서 관리하는 모든 친구 목록일 수 있으나, 최근 일정 기간 동안 메시지를 교환한 친구 목록, 최근 일정 기간 동안 메시지를 교환한 상위 N명의 친구 목록, 최근 일정 기간 동안 추가된 친구 목록 등과 같이 조건에 따라 추출된 친구 목록이 사용될 수 있다. 친구 목록의 추출 조건은 비식별키 생성 모델의 파라미터로 설정될 수 있다.
단말들로부터 비식별키를 얻기 위해, 어플리케이션 서버(100)는 친구 목록으로부터 비식별키를 생성하는 비식별키 생성 모델, 그리고 비식별키 생성 모델의 파라미터들을 관리하고, 비식별키 생성 모델 및 파라미터들을 단말들로 제공한다. 비식별키 생성 모델의 파라미터는 해당 모델의 동작을 위해 요구되는 값으로 설정된다. 어플리케이션 서버(100)는 단말로부터 비식별키 생성 모델을 통해 생성된 비식별키를 수신하고 활용하기 때문에, 개인정보인 친구 목록이 단말에서 외부로 유출될 필요가 없다.
비식별키 생성 모델 및 파라미터들의 배포 시점은 다양할 수 있다. 예를 들면, 비식별키 생성 모델 및 파라미터들은 어플리케이션에 포함되어 단말들로 배포되거나, 어플리케이션 업데이트를 통해 단말들에 배포될 수 있다. 비식별키 생성 모델은 어플리케이션에 포함되어 단말들로 배포되거나 업데이트되고, 변경이 될 수 있는 파라미터들은 단말들에서 비식별키를 생성할 때 배포될 수 있다. 또는, 비식별키 생성 모델 및 파라미터들은 단말들에서 비식별키를 생성할 때 한꺼번에 배포될 수 있다. 설명에서는, 비식별키 생성 모델은 어플리케이션 스토어(10)를 통해, 어플리케이션 설치 시 또는 업데이트 시 단말들로 배포되고, 비식별키 생성 모델의 파라미터들은 비식별키 생성 시점에 어플리케이션 서버(100)에서 단말들로 전송된다고 가정한다.
비식별키 생성 모델은 입력 데이터를 클러스터(또는 코호트)로 배정하는 클러스터링 모델일 수 있고, 예를 들면, 유사한 입력 데이터를 동일한 해시값으로 출력하는 해시 함수 모델, 입력 데이터를 복수의 클러스터들 중 어느 하나로 분류하는 기계학습 모델일 수 있다. 설명에서는 해시 함수 모델을 예로 들어 설명한다.
도 2를 참고하면, 비식별키 생성 모델은 해시 함수 모델일 수 있다. 해시 함수 모델에 설정되는 파라미터는 클러스터 수(해시값 수)를 포함할 수 있다. 각 단말에 설치된 해시 함수 모델은 어플리케이션에서 획득할 수 있는 사용자 정보, 예를 들면, 어플리케이션의 친구 목록에 해시 함수를 적용하여 해시값을 출력할 수 있다. 해시 함수 모델에서 출력된 해시값이 비식별키로 사용된다. 해시 함수 모델에서 출력된 해시값이 클러스터의 식별자일 수 있다. 이때, 친구 목록의 해시값이 고유값이 되지 않도록, 해시 함수 모델은 유사한 데이터 분포를 동일한 해시값으로 출력하는 해시 함수로 구현될 수 있다. 예를 들면, 해시 함수 모델은 Locality Sensitive Hashing(LSH) 알고리즘과 같이, 유사한 데이터 분포를 동일한 해시값으로 출력하는 해시 함수로 구현될 수 있다. 참고로, LSH 알고리즘은 고차원 데이터를 차원 축소하는 기술로서, 친구 목록의 친구 수가 100명이면, 이를 100차원 벡터에서 저차원의 벡터로 축소할 수 있다. 따라서, LSH 알고리즘을 사용하는 경우, 유사한 친구 목록을 가지는 수많은 사용자들이 동일한 해시값으로 배정될 수 있다.
이처럼, 해시 함수 모델을 통해 각 단말에서 생성된 해시값은 고유하지 않게 되고, 동일한 해시값을 가진 단말들이 다수 존재하므로, 어플리케이션 서버(100)는 해시값을 통해 사용자를 식별하지 못한다. 따라서, 해시 함수 모델로 생성된 비식별키는 k-익명성(k-anonymity)을 보장할 수 있다. 또한, 해시값은 비가역적이므로, 해시값을 통해 친구 목록을 복원할 수 없어서 해시값으로부터 개인정보를 알 수 없다.
예를 들어, 표 1과 같이, 단말1(200-1)의 사용자1이 관계를 맺은 친구 목록이 친구A, 친구B, 친구C이고, 단말2(200-2)의 사용자2가 관계를 맺은 친구 목록이 친구A, 친구B, 친구E이며, 단말3(200-3)의 사용자3이 관계를 맺은 친구 목록이 친구E, 친구F, 친구G라고 가정한다.
사용자 친구 목록 비식별키
사용자1 친구A, 친구B, 친구C 해시값1
사용자2 친구A, 친구B, 친구E 해시값1
사용자3 친구E, 친구F, 친구G 해시값5
단말1(200-1)은 해시 함수 모델을 통해 친구 목록에 해당하는 해시값1을 생성하고, 단말2(200-2)는 해시 함수 모델을 통해 친구 목록에 해당하는 해시값1을 생성하며, 단말3(200-3)는 해시 함수 모델을 통해 친구 목록에 해당하는 해시값5을 생성할 수 있다. 즉, 사용자1의 친구 목록과 사용자2의 친구 목록이 유사해서, 해시 함수 모델은 해시값1을 출력한다. 사용자2의 친구 목록과 사용자3의 친구 목록은 친구E를 공통으로 포함하지만, 사용자2의 친구 목록은 사용자1의 친구 목록과 더 유사하기 때문에, 해시 함수 모델은 사용자2와 사용자3의 친구 목록에 대해 서로 다른 해시값을 출력한다. 여기서, 해시 함수에 따라, 사용자1의 해시값1과 사용자2의 해시값1이 완전히 동일할 필요는 없고 동일 클러스터로 분류될 정도로 유사한 값일 수 있는데, 편의상 동일하다고 설명할 수 있다.
이렇게 유사한 친구 목록에 부여된 동일한 해시값을 비식별키로 사용하므로, 어플리케이션 서버(100)는 임의 단말로부터 해시값1을 수신하는 경우, 임의 단말이 단말1(200-1)인지 단말2(200-2)인지 알 수 없다. 대신, 비식별키인 해시값1을 가진 단말들은 사용자 성향이 유사하다고 전제하고, 어플리케이션 서버(100)는 해시값1을 가진 단말들부터 수집한 정보를 기초로, 해시값1을 가진 단말 클러스터의 성향을 추정하고, 이를 위한 타게팅 정보를 생성할 수 있다. 즉, 어플리케이션 서버(100)는 해시값1의 클러스터가 가지는 성향을 추정하고, 클러스터에 적합한 타게팅 정보를 생성할 수 있다.
한편, 표 1에서, 친구A와 친구E가 비슷한 사용자 성향을 가지고, 친구B와 친구F가 비슷한 사용자 성향을 가지며, 친구C와 친구G가 비슷한 사용자 성향을 가지더라도, 서로 다른 비식별키가 배정된다. 이처럼 사용자1과 사용자3의 친구 목록을 기초로 비식별키를 생성하다 보니, 비슷한 성향의 사용자임에 불구하고 서로 다른 비식별키가 배정되므로, 친구 목록만으로 비식별키를 생성하는 경우, 사용자 성향을 반영하는 데 한계가 있을 수 있다. 즉, 친구 목록에 포함된 친구의 유사 여부만으로 비식별키를 생성하는 경우, 친구 성향까지 고려하지 못하는 한계가 있다. 이를 보완하기 위해, 사용자에게 사용자 성향을 반영하는 토픽을 부여하고, 토픽을 기초로 비식별키를 생성할 수 있다.
도 3을 참고하면, 해시 함수 모델은 친구 목록 대신, 친구들에 부여된 토픽 목록을 입력받고, 토픽 목록에 해시 함수를 적용하여 해시값을 출력할 수 있다. 해시 함수 모델에서 출력된 해시값이 비식별키로 사용된다.
먼저, 어플리케이션 사용자들에게 토픽을 부여하기 위해, 어플리케이션 서버(100)는 어플리케이션 사용자들을 분류하기 위한 행동 정보를 수집한다. 행동 정보는 다양하게 정의될 수 있는데, 예를 들면, 사용자가 클릭한 콘텐츠 목록일 수 있다. 사용자들에게 부여한 토픽은 가변될 수 있다.
어플리케이션 사용자들을 일차적으로 클러스터링하기 위해, 토픽 모델링이 사용될 수 있다. 어플리케이션 서버(100)는 토픽 모델링을 통해, 어플리케이션 사용자의 행동 정보를 클러스터링하고, 각 사용자가 속한 클러스터의 토픽을 해당 사용자에게 부여한다. 같은 토픽을 가진 사용자는 유사한 성향을 가진다고 추정될 수 있다. 어플리케이션 서버(100)는 사용자를 문서로 취급하고, 행동 정보(클릭한 콘텐츠 목록)를 단어들로 취급해서, 토픽 모델링 알고리즘으로 입력할 수 있다. 토픽 모델링 알고리즘은 행동 정보 분포(단어 분포)를 기초로 사용자(문서)를 어느 하나의 클러스터로 분류할 수 있다. 토픽 모델링 알고리즘은 예를 들면, Latent Dirichlet Allocation(LDA) 알고리즘일 수 있다.
어플리케이션 서버(100)가 단말들로, 친구 목록의 친구에 부여된 토픽을 알려주는 시점은 다양할 수 있다. 어플리케이션 사용자가 어플리케이션에서 친구를 추가하면, 단말들(200-1, 200-2, 200-3)은 어플리케이션 서버(100)로부터 추가된 친구의 토픽을 수신할 수 있다. 친구 목록에 포함된 친구들 중에서 토픽이 매핑되지 않은 친구들이 있는 경우, 단말들(200-1, 200-2, 200-3)이 어플리케이션 서버(100)에 해당 친구의 토픽을 구독하거나, 어플리케이션 서버(100)로부터 친구 목록의 토픽들을 한꺼번에 수신할 수 있다.
표 2와 같이, 단말1(200-1)은 사용자1이 관계를 맺은 친구 목록에 토픽들을 매핑하여 관리하고, 단말2(200-2)는 사용자2가 관계를 맺은 친구 목록에 토픽들을 매핑하여 관리하며, 단말3(200-3)은 사용자3이 관계를 맺은 친구 목록에 토픽들을 매핑하여 관리한다.
사용자 친구 목록에 매핑된 토픽 토픽 목록
사용자1 친구A:토픽1, 친구B:토픽2, 친구C:토픽3 토픽1, 토픽2, 토픽3
사용자2 친구A:토픽1, 친구B:토픽2, 친구E:토픽1 토픽1, 토픽2, 토픽1
사용자3 친구E:토픽1, 친구F:토픽2, 친구G:토픽3 토픽1, 토픽2, 토픽3
그리고 단말들(200-1, 200-2, 200-3)은 해시 함수 모델을 통해 토픽 목록에 해당하는 해시값을 생성하는 데, 토픽 목록들이 동일/유사하므로, 동일한 해시값을 생성할 수 있다.
한편, 사용자 성향은 항상 고정되는 것이 아니고, 친구 목록도 가변될 수 있다. 예를 들면, 연초가 되면 학생인 사용자들은 새로운 친구들과의 관계를 맺을 수 있고, 자주 연락하는 친구들이 달라질 수 있다. 또한 사용자들의 관심사도 변해서 사용자에게 부여된 토픽도 달라져야 할 수 있다. 따라서, 어플리케이션 서버(100)는 주기적으로 단말들이 친구 목록 또는 이의 토픽 목록으로부터 생성된 비식별키를 생성하도록 요청할 수 있다. 어플리케이션 서버(100)는 일정 기준 이상의 친구 목록 변동이 있는 경우, 단말들이 친구 목록 또는 이의 토픽 목록으로부터 생성된 비식별키를 생성하도록 요청할 수 있다. 또는, 어플리케이션 서버(100)는 어플리케이션 사용자들의 토픽을 주기적으로 업데이트하고, 단말들로 친구들의 갱신된 토픽을 전달할 수 있다. 이를 통해, 어플리케이션 서버(100)는 단말들이 갱신된 토픽 목록으로 비식별키를 생성하도록 요청할 수 있다.
도 4부터 도 6 각각은 한 실시예에 따른 비식별키 생성 방법의 흐름도이다.
도 4를 참고하면, 어플리케이션 서버(100)는 어플리케이션을 설치한 단말(200)로, 어플리케이션에서 획득할 수 있는 사용자 정보(예를 들면, 친구 목록) 기반으로 비식별키를 생성하는 비식별키 생성 모델을 제공한다(S110). 비식별키 생성 모델은 어플리케이션에 포함되어 배포되거나 업데이트될 수 있고, 어플리케이션과 별도로 배포되거나 업데이트될 수도 있다. 비식별키 생성 모델은 유사한 입력 데이터를 동일한 해시값 또는 동일한 클러스터로 배정하여 비식별키를 출력하는 클러스터링 모델일 수 있다. 예를 들면, 비식별키 생성 모델은 유사한 입력 데이터를 동일한 해시값으로 출력하는 해시 함수 모델, 입력 데이터를 복수의 클러스터들 중 어느 하나로 분류하는 기계학습 모델일 수 있다. 예를 들면, 해시 함수 모델은 데이터 차원 축소 알고리즘인 Locality Sensitive Hashing(LSH) 알고리즘일 수 있다.
단말(200)은 어플리케이션의 사용자 정보(예를 들면, 친구 목록)를 비식별키 생성 모델에 입력하여, 사용자의 해시값/클러스터 식별자를 획득한다(S120). 사용자 정보가 친구 목록인 경우, 친구 목록의 추출 조건은 비식별키 생성 모델의 파라미터로 설정될 수 있다. 비식별키 생성에 사용되는 친구 목록은 어플리케이션에서 관리하는 모든 친구 목록일 수 있으나, 최근 일정 기간 동안 메시지를 교환한 친구 목록, 최근 일정 기간 동안 메시지를 교환한 상위 N명의 친구 목록, 최근 일정 기간 동안 추가된 친구 목록 등과 같이 조건에 따라 추출된 친구 목록이 사용될 수 있다.
단말(200)은 비식별키 생성 모델을 통해 추출한 비식별키를 어플리케이션 서버(100)로 전송한다(S130). 단말(200)이 비식별키를 전송하는 시점은 다양할 수 있다. 비식별키 생성 모델을 통해, 사용자 정보로부터 추출된 해시값은 고유하지 않고, k-익명성(k-anonymity)을 보장할 수 있으며, 해시값으로부터 사용자 정보를 복원할 수 없으므로, 개인정보가 비식별화된 키로 사용될 수 있다.
이후, 어플리케이션 서버(100)는 단말(200)로부터 수신한 비식별키를 이용하여 단말(200)을 위한 타게팅 정보를 생성하고, 타게팅 정보를 전송할 수 있다.
도 5를 참고하면, 어플리케이션 서버(100)는 어플리케이션 사용자들을 클러스터링하기 위한 행동 정보를 수집한다(S210).
어플리케이션 서버(100)는 토픽 모델링을 통해, 어플리케이션 사용자들의 행동 정보를 클러스터링하고, 각 사용자의 행동 정보를 기초로 분류된 클러스터의 토픽을 해당 사용자에게 부여한다(S220).
어플리케이션 서버(100)는 단말들로, 친구 목록의 친구들에 부여된 토픽들을 전송한다(S230). 어플리케이션 서버(100)가 단말들로, 친구 목록의 친구에 부여된 토픽을 알려주는 시점은 다양하게 정의될 수 있다.
어플리케이션 서버(100)는 각 단말로부터, 어플리케이션의 친구 목록에 매핑된 토픽 목록을 비식별키 생성 모델에 입력하여 획득한 비식별키를 수신한다(S240). 어플리케이션 서버(100)는 각 단말로 비식별키 생성 모델을 제공한다. 비식별키 생성 모델은 어플리케이션에 포함되어 배포되거나 업데이트될 수 있고, 어플리케이션과 별도로 배포되거나 업데이트될 수도 있다. 비식별키 생성 모델은 유사한 입력 데이터를 동일한 해시값 또는 동일한 클러스터로 배정하여 비식별키를 출력하는 클러스터링 모델일 수 있다. 예를 들면, 비식별키 생성 모델은 데이터 차원 축소 알고리즘인 Locality Sensitive Hashing(LSH) 알고리즘으로 구현된 해시 함수 모델일 수 있다.
이후, 어플리케이션 서버(100)는 단말들로부터 수신한 비식별키를 이용하여 각 단말을 위한 타게팅 정보를 생성하고, 타게팅 정보를 해당 단말로 전송할 수 있다.
도 6을 참고하면, 어플리케이션 서버(100)는 어플리케이션을 설치한 단말(200)로 유사한 토픽 목록에 대해 동일한 값을 출력하는 비식별키 생성 모델을 제공한다(S310). 비식별키 생성 모델은 어플리케이션에 포함되어 배포되거나 업데이트될 수 있고, 어플리케이션과 별도로 배포되거나 업데이트될 수도 있다.
비식별키 생성 모델은 유사한 입력 데이터를 동일한 해시값 또는 동일한 클러스터로 배정하여 비식별키를 출력하는 클러스터링 모델일 수 있다. 예를 들면, 비식별키 생성 모델은 데이터 차원 축소 알고리즘인 Locality Sensitive Hashing(LSH) 알고리즘으로 구현된 해시 함수 모델일 수 있다.
단말(200)은 어플리케이션의 친구 목록에 매핑된 토픽 목록을 비식별키 생성 모델에 입력하여, 토픽 목록의 해시값/클러스터 식별자를 획득한다(S320).
단말(200)은 친구 목록에 매핑된 토픽 목록으로부터 추출한 비식별키를 어플리케이션 서버(100)로 전송한다(S330). 단말(200)이 해시값을 전송하는 시점은 다양할 수 있다. 비식별키 생성 모델을 통해, 토픽 목록으로부터 추출된 해시값은 고유하지 않고, k-익명성을 보장할 수 있다.
이후, 어플리케이션 서버(100)는 단말(200)로부터 수신한 비식별키를 이용하여 단말(200)을 위한 타게팅 정보를 생성하고, 타게팅 정보를 전송할 수 있다.
이와 같이, 실시예에 따르면, 단말이 친구 목록에 해당하는 해시값 또는 클러스터의 식별자를 비식별키로 생성하고, 어플리케이션 서버는 단말에서 생성된 비식별키를 활용하므로, 강화된 개인정보 방침을 준수하면서 k-익명성을 보장할 수 있다.
실시예에 따르면, 어플리케이션 서버는 사용자들에 토픽을 부여하고, 단말이 친구 목록에 매핑된 토픽 목록으로부터 비식별키를 생성하고, 이를 어플리케이션 서버가 활용하므로, 강화된 개인정보 방침을 준수하면서 k-익명성을 보장할 수 있다.
실시예에 따르면, 어플리케이션 서버는 안드로이드 단말용 광고 식별자인 AAID, iOS 단말용 광고 식별자인 IDFA를 수집하지 않더라도, 사용자 성향을 나타내는 친구 목록 기반 비식별키를 활용하여 단말로 타게팅된 정보를 제공할 수 있다.
이상에서 설명한 본 개시의 실시예는 장치 및 방법을 통해서만 구현이 되는 것은 아니며, 본 개시의 실시예의 구성에 대응하는 기능을 실현하는 프로그램 또는 그 프로그램이 기록된 기록 매체를 통해 구현될 수도 있다.
이상에서 본 개시의 실시예에 대하여 상세하게 설명하였지만 본 개시의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 개시의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 개시의 권리범위에 속하는 것이다.

Claims (12)

  1. 적어도 하나의 프로세서에 의해 동작하는 어플리케이션 서버의 동작 방법으로서,
    어플리케이션을 설치한 단말들로, 상기 어플리케이션에서 획득할 수 있는 사용자의 사회 관계 정보 기반으로 비식별키를 생성하는 비식별키 생성 모델을 제공하는 단계, 그리고
    각 단말로부터 상기 비식별키 생성 모델을 통해 생성된 비식별키를 수신하는 단계를 포함하고,
    상기 어플리케이션을 설치한 단말들로부터 사용자들의 행동 정보를 수집하는 단계,
    각 사용자의 행동 정보를 클러스터링하고, 각 사용자의 행동 정보를 기초로 분류된 클러스터의 토픽을 해당 사용자에게 부여하는 단계, 그리고
    상기 어플리케이션을 설치한 각 단말로, 친구 목록의 친구들에 부여된 토픽들을 전송하는 단계를 더 포함하고,
    상기 비식별키 생성 모델은 유사한 입력 데이터를 동일한 해시값 또는 동일한 클러스터로 배정하여 상기 비식별키를 출력하는 모델로서, 상기 비식별키 생성 모델의 입력 데이터는 상기 어플리케이션에서 관리하는 친구 목록에 매핑된 토픽 목록을 기초로 생성되는, 동작 방법.
  2. 제1항에서,
    상기 비식별키 생성 모델은
    유사한 사용자 정보를 동일한 해시값으로 출력하는 해시 함수 모델인, 동작 방법.
  3. 제1항에서,
    상기 비식별키 생성 모델은
    입력 데이터를 복수의 클러스터들 중 어느 하나로 분류하는 기계학습 모델인, 동작 방법.
  4. 삭제
  5. 삭제
  6. 삭제
  7. 제1항에서,
    각 단말로부터 수신한 비식별키를 이용하여 해당 단말을 위한 타게팅 정보를 생성하는 단계
    를 더 포함하는, 동작 방법.
  8. 삭제
  9. 삭제
  10. 적어도 하나의 프로세서에 의해 동작하는 단말의 동작 방법으로서,
    어플리케이션에서 획득할 수 있는 사용자의 사회 관계 정보 기반으로 비식별키를 생성하는 비식별키 생성 모델을 수신하는 단계, 그리고
    상기 어플리케이션에서 관리하는 친구 목록에 매핑된 토픽 목록을 획득하고, 상기 비식별키 생성 모델로 상기 친구 목록에 매핑된 토픽 목록을 입력하고, 상기 비식별키 생성 모델로부터 출력된 비식별키를 어플리케이션 서버로 전송하는 단계를 포함하고,
    상기 비식별키 생성 모델은 유사한 입력 데이터를 동일한 해시값 또는 동일한 클러스터로 배정하여 상기 비식별키를 출력하는 모델이며,
    상기 친구 목록에 매핑된 토픽 목록은, 상기 어플리케이션 서버가 상기 어플리케이션을 설치한 단말들로부터 수집한 사용자들의 행동 정보를 클러스터링하고, 각 사용자의 행동 정보를 기초로 분류된 클러스터의 토픽을 해당 사용자에게 부여함으로써 생성한 토픽들로 구성되는, 동작 방법.

  11. 삭제
  12. 삭제
KR1020210092961A 2021-07-15 2021-07-15 단말에서 비식별키를 생성하는 방법, 그리고 이를 구현한 서버 및 단말 KR102570616B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210092961A KR102570616B1 (ko) 2021-07-15 2021-07-15 단말에서 비식별키를 생성하는 방법, 그리고 이를 구현한 서버 및 단말

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210092961A KR102570616B1 (ko) 2021-07-15 2021-07-15 단말에서 비식별키를 생성하는 방법, 그리고 이를 구현한 서버 및 단말

Publications (2)

Publication Number Publication Date
KR20230012310A KR20230012310A (ko) 2023-01-26
KR102570616B1 true KR102570616B1 (ko) 2023-08-23

Family

ID=85110650

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210092961A KR102570616B1 (ko) 2021-07-15 2021-07-15 단말에서 비식별키를 생성하는 방법, 그리고 이를 구현한 서버 및 단말

Country Status (1)

Country Link
KR (1) KR102570616B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101620881B1 (ko) * 2012-07-16 2016-05-13 알까뗄 루슨트 사용자 관심 프로파일들의 프라이버시 보호된 클러스터링을 위한 방법 및 장치
JP2020519210A (ja) * 2017-04-28 2020-06-25 アノノス インコーポレイテッド 非集中型システムで集中型プライバシー制御を実施するためのシステムや方法
JP2021508394A (ja) * 2017-12-19 2021-03-04 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation パブリック・ホスト・プラットフォームのためのデータ・サニタイズをするシステム、方法及びコンピュータ・プログラム
KR102246910B1 (ko) * 2013-09-03 2021-04-30 삼성전자주식회사 아이덴티티 보호 메커니즘을 갖는 컴퓨팅 시스템 및 컴퓨팅 시스템 동작 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101620881B1 (ko) * 2012-07-16 2016-05-13 알까뗄 루슨트 사용자 관심 프로파일들의 프라이버시 보호된 클러스터링을 위한 방법 및 장치
KR102246910B1 (ko) * 2013-09-03 2021-04-30 삼성전자주식회사 아이덴티티 보호 메커니즘을 갖는 컴퓨팅 시스템 및 컴퓨팅 시스템 동작 방법
JP2020519210A (ja) * 2017-04-28 2020-06-25 アノノス インコーポレイテッド 非集中型システムで集中型プライバシー制御を実施するためのシステムや方法
JP2021508394A (ja) * 2017-12-19 2021-03-04 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation パブリック・ホスト・プラットフォームのためのデータ・サニタイズをするシステム、方法及びコンピュータ・プログラム

Also Published As

Publication number Publication date
KR20230012310A (ko) 2023-01-26

Similar Documents

Publication Publication Date Title
US10331863B2 (en) User-generated content permissions status analysis system and method
US10250541B2 (en) Predictive responses to incoming communications
US10439918B1 (en) Routing messages to user devices
US10673988B2 (en) Creation, publication and display of content on a social media network
US9881179B2 (en) User-generated content permissions status analysis system and method
US20170250930A1 (en) Interactive content recommendation personalization assistant
EP3111357B1 (en) Accelerated training of personal daemons
US20150242645A1 (en) Incentive-Based App Execution
US10182024B1 (en) Reallocating users in content sharing environments
US9473944B2 (en) Local personal daemon
US9870579B2 (en) Managing shareable content in a social network
US11392707B2 (en) Systems and methods for mediating permissions
US11736361B1 (en) Techniques for sharing device capabilities over a network of user devices
CN113939810A (zh) 一对多消息传递平台
US20160275193A1 (en) Socially driven feed of aggregated content in substantially real time
EP3111367A1 (en) Personal daemon interaction through escalating disclosure
US11394616B1 (en) Dynamic clustering of network nodes for mobile communications
KR102570616B1 (ko) 단말에서 비식별키를 생성하는 방법, 그리고 이를 구현한 서버 및 단말
US10250675B2 (en) Posting the same response for duplicated content
US20230379763A1 (en) Dynamic continuous quality of service adjustment system
CN107526759A (zh) 信息处理设备和信息处理方法
CN107526960B (zh) 用于保护移动联系人信息的系统和方法
US20240119066A1 (en) Entity-relationship embeddings
EP3382624A1 (en) Techniques for templated messages
KR101151695B1 (ko) 이용자 특성에 따른 모바일 에코 시스템 및 이의 서비스 제공 방법

Legal Events

Date Code Title Description
AMND Amendment
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant