KR20210125590A - 해싱-기반의 효과적인 사용자 모델링 - Google Patents
해싱-기반의 효과적인 사용자 모델링 Download PDFInfo
- Publication number
- KR20210125590A KR20210125590A KR1020217031609A KR20217031609A KR20210125590A KR 20210125590 A KR20210125590 A KR 20210125590A KR 1020217031609 A KR1020217031609 A KR 1020217031609A KR 20217031609 A KR20217031609 A KR 20217031609A KR 20210125590 A KR20210125590 A KR 20210125590A
- Authority
- KR
- South Korea
- Prior art keywords
- hash code
- user
- heterogeneous
- data
- context
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2264—Multidimensional index structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2457—Query processing with adaptation to user needs
- G06F16/24575—Query processing with adaptation to user needs using context
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/15—Correlation function computation including computation of convolution operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0201—Market modelling; Market analysis; Collecting market data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0201—Market modelling; Market analysis; Collecting market data
- G06Q30/0204—Market segmentation
- G06Q30/0205—Location or geographical consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0241—Advertisements
- G06Q30/0251—Targeted advertisements
- G06Q30/0255—Targeted advertisements based on user history
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0241—Advertisements
- G06Q30/0276—Advertisement creation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Development Economics (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- Entrepreneurship & Innovation (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Databases & Information Systems (AREA)
- Game Theory and Decision Science (AREA)
- General Business, Economics & Management (AREA)
- Marketing (AREA)
- Economics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Algebra (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
일 실시예에서, 방법은 사용자 행동 데이터(user behavior data) 및 상기 사용자 행동 데이터와 연관된 컨텍스트 정보(contextual information)를 수신하고, 상기 컨텍스트 정보는 제1 컨텍스트 유형과 연관된 제1 데이터 부분을 포함하는 단계를 포함한다. 상기 방법은, 해싱 알고리즘(hashing algorithm)을 이용하여, 상기 사용자 행동 데이터 및 상기 컨텍스트 정보로부터, 상기 사용자 행동 데이터를 나타내는 제1 부분 및 상기 제1 컨텍스트 유형과 연관된 상기 제1 데이터 부분을 나타내는 제2 해시 코드 부분을 포함하는 제1 이종 해시 코드(heterogeneous hash code)를 생성하는 단계를 포함한다. 상기 방법은 상기 제1 컨텍스트 유형과 연관된 제2 데이터 부분을 나타내는 제3 해시 코드 부분을 포함하는 제2 이종 해시 코드에 액세스하는 단계를 포함한다. 상기 방법은, 상기 제1 이종 해시 코드의 상기 제2 해시 코드 부분과 상기 제2 이종 해시 코드의 상기 제3 해시 코드 부분 간의 유사도(similarity)를 결정하는 단계를 포함하는, 상기 제1 이종 해시 코드와 상기 제2 이종 해시 코드를 비교하는 단계를 포함한다.
Description
본 개시는 일반적으로 사용자 활동 모델링 및 유사도 탐색에 관한 것이다.
광고 및 마케팅을 위한 빅데이터 시스템들에서, 유사한 사용자들의 그룹들을 찾고 순위를 매기는 것 - 최근접 이웃 탐색(nearest neighbor search)으로 알려짐 - 은, 특히 유사 탐색(lookalike search), 사용자 세분화(user segmentation), 및 추천(recommendation)과 같은 애플리케이션들에 대해, 중요한 작업이다. 텔레비전 및 모바일 디바이스들을 포함한 많은 유형의 현대적 디비이스들은, 사용자들 간의 유사도, 및 궁극적으로 그들의 "최근접 이웃들(nearest neighbors)"을 계산하는 데 이용될 수 있는, 선형(linear) 텔레비전, 주문형 비디오(video on-demand), 게임, 애플리케이션, 및 외부 디바이스와 같은 콘텐트와 사용자 상호작용 히스토리들(user interaction histories)의 상세한 프로파일들(detailed profiles)을 가지고 있다. 그러나, 부단히 업데이트되는 상호작용 히스토리들을 갖는 수천만 명의 사용자들을 포함할 수 있고, 시간이 지남에 따라 각각이 수백만 개의 세션들에 걸쳐있는, 데이터의 대규모 특성(large-scale nature)으로 인해, 상기 작업은 계산 비용이 많이 든다.
최근접 이웃 탐색의 속도를 높이는 하나의 방법은 심층 신경망(deep neural networks)을 이용한 해싱(hashing)이다. 해싱은, 이미지, 소리, 및 텍스트와 같은 임의의 고정된 포맷의 데이터(fixed-format data)를 고정된 크기의 해시 코드(hash code)로 변환한다. 다음에, 유사도 연산(similarity operation)은 상기 해시 코드를 비교함으로써 수행될 수 있다. 생성된 해시 코드가 이진 벡터(binary vector)고, 상기 이진 벡터의 비교가 단지 비트 연산(bit operation)인 경우 효율성 증가가 특히 두드러진다. 그러나, 사용자 행동 히스토리들은, 이 기법과 호환되는 데이터 포맷들과는 상이한 컨텍스트 특징들 및 패턴들을 가지고 있다.
도 1은, 개시된 해싱 시스템의 실시예를 위한 예시적인 상위-레벨 구조적 아키텍처(high-level structural architecture)를 도시한다.
도 2는 이종(heterogeneous) 해싱 모델을 위한 예시적인 아키텍처를 도시한다.
도 3은 시간-인식 어텐션 컨볼루션 신경망(time-aware attention convolution neural network)을 위한 예시적인 아키텍처를 도시한다.
도 4a 내지 도 4c는 이종 해시 코드들을 생성하고 이용하는 시스템의 예시적인 아키텍처들을 도시한다.
도 5는 이종 해시 코드들을 생성하고 이용하는 시스템의 동작(operation)의 예시적인 방법을 도시한다.
도 6은 이종 해시 코드들을 생성하고 이용하는 시스템의 동작(operation)의 예시적인 방법을 도시한다.
도 7은 이종 해싱 모델의 예시적인 아키텍처를 도시한다.
도 8은 트레이닝 가능한 게이트(trainable gate)의 예시적인 아키텍처를 도시한다.
도 9는 집계 계층(aggregation layer)의 예시적인 아키첵처를 도시한다.
도 10은 이종 해싱 모델의 예시적인 아키첵처를 도시한다.
도 11은 예시적인 전처리(preprocessing) 단계 및 네트워크 계층을 도시한다.
도 12a 및 도 12b는 이종 해싱 모델의 계층들에 의해 수행되는 예시적인 연산들(operations)을 도시한다.
도 13a 및 도 13b는 이종 해싱 모델의 계층들에 의해 수행되는 예시적인 연산들(operations)을 도시한다.
도 14는 이종 해시 코드를 도시한다.
도 15는 예시적인 해싱 코드들을 도시한다.
도 16은 예시적인 해싱 코드들을 도시한다.
도 17은 해싱 시스템 애플리케이션의 아키텍처적 표현을 도시한다.
도 18은 이종 해싱 모델을 트레이닝하기 위한 예시적인 프레임워크를 도시한다.
도 19는 시간-인식 어텐션 컨볼루션 신경망을 학습시키기 이용하기 위한 시스템들의 예시적인 모델을 도시한다.
도 20a 내지 도 20c는 시간-인식 어텐션 컨볼루션 신경망을 위한 예시적인 아키텍처를 도시한다.
도 21은 예시적인 사용자 행동 표현(user behavior representation)을 도시한다.
도 22는 다양한 데이터세트들에 대한 해싱 시스템들의 성능을 도시한다.
도 23은 예시적인 컴퓨터 시스템을 도시한다.
도 2는 이종(heterogeneous) 해싱 모델을 위한 예시적인 아키텍처를 도시한다.
도 3은 시간-인식 어텐션 컨볼루션 신경망(time-aware attention convolution neural network)을 위한 예시적인 아키텍처를 도시한다.
도 4a 내지 도 4c는 이종 해시 코드들을 생성하고 이용하는 시스템의 예시적인 아키텍처들을 도시한다.
도 5는 이종 해시 코드들을 생성하고 이용하는 시스템의 동작(operation)의 예시적인 방법을 도시한다.
도 6은 이종 해시 코드들을 생성하고 이용하는 시스템의 동작(operation)의 예시적인 방법을 도시한다.
도 7은 이종 해싱 모델의 예시적인 아키텍처를 도시한다.
도 8은 트레이닝 가능한 게이트(trainable gate)의 예시적인 아키텍처를 도시한다.
도 9는 집계 계층(aggregation layer)의 예시적인 아키첵처를 도시한다.
도 10은 이종 해싱 모델의 예시적인 아키첵처를 도시한다.
도 11은 예시적인 전처리(preprocessing) 단계 및 네트워크 계층을 도시한다.
도 12a 및 도 12b는 이종 해싱 모델의 계층들에 의해 수행되는 예시적인 연산들(operations)을 도시한다.
도 13a 및 도 13b는 이종 해싱 모델의 계층들에 의해 수행되는 예시적인 연산들(operations)을 도시한다.
도 14는 이종 해시 코드를 도시한다.
도 15는 예시적인 해싱 코드들을 도시한다.
도 16은 예시적인 해싱 코드들을 도시한다.
도 17은 해싱 시스템 애플리케이션의 아키텍처적 표현을 도시한다.
도 18은 이종 해싱 모델을 트레이닝하기 위한 예시적인 프레임워크를 도시한다.
도 19는 시간-인식 어텐션 컨볼루션 신경망을 학습시키기 이용하기 위한 시스템들의 예시적인 모델을 도시한다.
도 20a 내지 도 20c는 시간-인식 어텐션 컨볼루션 신경망을 위한 예시적인 아키텍처를 도시한다.
도 21은 예시적인 사용자 행동 표현(user behavior representation)을 도시한다.
도 22는 다양한 데이터세트들에 대한 해싱 시스템들의 성능을 도시한다.
도 23은 예시적인 컴퓨터 시스템을 도시한다.
해시(hash) 학습은 많은 애플리케이션들에서 대규모 데이터 검색(data retrieval)을 위한 근사 최근접 이웃 탐색(approximate nearest neighbor search)에 대한 해결책으로서 널리 채택되었다. 해시를 학습하기 위해 심층 아키텍처를 적용하는 것은, 그 계산 효율성 및 검색 품질로 인해, 특별한 이점이 있다. 그러나, 이러한 심층 아키텍처들은, "순차적인 행동 데이터(sequential behavior data)"로 알려진 데이터를 적절히(properly) 처리(handle)하기에 완전히 적합한 것은 아닐 수 있다. 순차 행동 데이터는 사용자 모델링에 관련된 애플리케이션 시나리오들에서 관찰되는 데이터의 유형들을 포함할 수 있다. 특정 실시예들에서, 순차 행동 데이터에 대한 이진 해싱(binary hashing)을 학습하기 위해, 시스템은 사용자의 진화하는 선호도들(preferences)(예를 들면, 장기간에 걸쳐 측정됨)을 포착(capture)하거나 또는 상이한 시간 스케일들(time scales)에서 사용자의 활동 패턴들을 이용할 수 있다(예를 들면, 단시간 스케일 및 장시간 스케일에 걸친 활동 패턴들을 비교함으로써). 본 개시된 기술은 순차 행동 데이터에 대한 이진 해싱을 학습하기 위한 새로운 딥 러닝-기반의 아키텍처들(deep learning-based architectures)을 제공한다. 본 개시된 기술의 아키텍처들의 유효성(effectiveness)은 상이한 실험들을 통해 나타난다.
근사 최근접 이웃(approximate nearest neighbor: ANN) 탐색(search)의 문제는 대규모 데이터 탐색 및 검색(retrieval)과 관련된 많은 애플리케이션들에서 발생한다. 예를 들면, 하나의 예시적 애플리케이션은, 시드 객체(seed object) 또는 데이터 컬렉션(data collection)을 식별하고 상기 시드 객체 또는 데이터 컬렉션에 대해 임계 유사도를 갖는 다른 객체들 또는 데이터 컬렉션을 식별하고자 하는, "유사(LookALike)" 확장 방법으로 지칭될 수 있다. 광고 타케팅(ad targeting)에 널리 이용되는, 유사 잠재고객 확장(LookALike audience expansion) 방법들의 궁극적 품질은 이용되는 ANN 알고리즘의 성능에 크게 의존할 수 있다. 이진 해싱은 고차원 공간들에서 ANN 문제를 효율적으로 처리하기 위한 하나의 접근법이다. 이진 해싱에서, 원본 특징 공간(original feature space)은, 예측 가능한 오차 범위 내에서 상기 원본 데이터의 유사도 값 또는 순위(ranking)를 유지하면서, 저차원의 해밍 공간(Hamming space)으로 투사될 수 있다. 해밍 공간에서의 탐색(searching)은, 두 포인트들 간의 해밍 거리(Hamming distance)가 비트 연산(bit operation)을 통해 계산될 수 있으므로, 빠르고 효율적인 경향이 있다. 또한, 일반적 해싱과 마찬가지로, 비교 횟수는 상당히 감소될 수 있다.
심층 이진 해싱(deep binary hashing) 기법들은 매우 복잡한 특징 공간들에서 향상된 성능을 보여줄 수 있다. 특정 실시예들에서, 심층 이진 해싱에 있어서, 신경망은 손실 함수(loss function)를 보존하면서 원시 특징들(raw features)을 이들의 상응하는 임베딩들(embeddings)로 변환하는 것을 목표로, 유사도(similarity) 또는 순위(ranking) 함수에 따라 최적화될 수 있다. 다음으로, 상기 상응하는 임베딩들은 결국 이진 해시 코드들(binary hash codes)로 변환된다. 후술하는 프로세스는 부호 함수(sign function)의 사용을 통해 달성될 수 있다. 역전파(back propagation) 동안 기울기 소실(vanishing gradients) 문제를 해결하기 위해 학습을 하는 동안 상기 부호 함수를 반복적으로 근사하는 연속 방법들(Continuation methods)이 개발되었다.
심층 이진 해싱 알고리즘들은, 특히 행동 데이터가 본질적으로 순차적인 경우, 항상 행동 데이터에 적합한 것은 아닐 수 있다. 순차 행동 데이터는 일정 시간 동안 사용자의 행동 패턴들을 다루는 애플리케이션들에서 빈번히 관찰된다. 예시들은 사용자가 웹사이트, 모바일 앱, 멀티미디어 콘텐트 등과 상호작용하는 것을 포함한다. 본 개시된 기술은 다양한 시간 스케일들에서 사용자의 진화하는 선호도들 및 사용자 행동의 동적 특성을 포착하는 순차 행동 데이터의 이진 해싱에 대한 접근법을 제공한다. 예로서 그리고 이에 제한되지 않고, 상기 시간 스케일들은, 애플리케이션 및 이용 사례들에 따라, 매시간, 매일, 매주, 매달, 또는 더 짧거나 더 긴 시간 스케일들을 포함할 수 있다.
유사(LookALike)와 같은 시나리오들에서, 컴퓨팅 시스템은 선호도들(preferences) 및 요구들(needs)이 아마도 유사한 사용자 그룹들의 공통적인 행동을 포착할 수 있다. 그러한 경우, 상기 컴퓨팅 시스템은 특정 사용자 그룹을, 활동 패턴들에 대한 유사도 함수들을 이용하여 모델링 될 수 있는, 이진 해싱 투사(binary hashing projection)의 기본 단위로 간주할 수 있다. 예를 들면, 2명의 사용자들은, 모두 판타지 스포츠(fantasy sports)의 광팬들이기 때문에, 동일한 판타지 스포츠 웹사이트를 정기적으로 방문한다. 또한, 행동 데이터가 순차적인 경우, 그리고 특히 행동 데이터가 특정한 시간 이벤트들과 연관된 경우, 상기 컴퓨팅 시스템은 상이한 시간 수평선들(temporal horizons)에 걸쳐 사용자의 행동의 동적 특성을 포착할 수 있다. 예를 들면, 2명의 사용자들은 모두 동일한 케이블 공급자(cable provider)에 가입되어 있으면서 동일한 시대(time-zone)에 살고 있으므로, 동일한 요일 및 시간에 동일한 텔레비전 쇼를 정기적으로 시청한다.
이러한 설계 원리들을 염두에 두고, 본 개시된 기술은 이전의 심층 이진 해싱 방법들과 실질적으로 상이한 새로운 딥 러닝-기반의 아키텍처들을 제공한다. 특정 실시예들에서 설명되는 제1 딥 러닝-기반 아키텍처는, 사용자의 진화하는 선호도들을 포착하는 것을 목표로 원시 특징 데이터(raw feature data) 를 상위-레벨의 메타데이터(예를 들면, 카테고리 또는 장르(genre)) 임베딩들(embeddings)로 변환하기 위해 새로운 중간 어텐션 계층(intermediate attention layer) 세트를 이용하는, 카테고리적 어텐션(Categorical Attention)이다. 특정 실시예들에서 설명되는 제2 딥 러닝-기반 아키텍처는 관계 및 어텐션 CNN(Relation and Attention CNN: RACNN)이다. RACNN은, 원본 데이터 입력으로부터 고립된 특징 정보(isolated feature information)의 손실을 최소화하기 위해 관계 및 어텐션 계층들과 연관된 추가적인 컨볼루션 계층과 함께, 상이한 시간-윈도우 크기들에서 2D 공간에서의 순차적 사용자 행동을 나타내는 중간 관계 및 어텐션 계층 세트를 이용한다. RACNN은 사용자 상호작용의 시간 특징들에 기초하여 정보를 노출시키기 때문에, RACNN은 또한 시간-인식 어텐션 CNN(Time-Aware Attention CNN: TAACNN)으로도 지칭될 수 있다.
본 개시된 기술은, 순차 행동 데이터에 대한 해싱을 효율적으로 학습하는 것을 목표로 하는, 단일화된 심층 이진 해싱 프레임워크(unified deep binary hashing framework)를 도입한다. 본 개시된 기술과 연관된 많은 변형들(variations)이 있을 수 있음을 고려한다. 본 개시된 기술은, 상위-레벨 메타데이터 정보를 통해 사용자의 선호도들을 포착하는, 카테고리적 어텐션 모델(Categorical Attention model)을 제공한다. 특정 실시예들에서, 이 모델은 사용자의 장기적이고 일관된 선호도들을 모델링하는 데 더 적합할 수 있다. 본 개시된 기술은 또한 다양한 시간 스케일들에서 사용자의 행동을 포착하는 RACNN/TAACNN 모델을 제공한다. 특정 실시예들에서, 이 모델은 사용자의 장기적 선호도들과 사용자의 단기적 선호도들을 결합한다. 따라서, 상기 RACNN/TAACNN 모델은 사용자의 보다 동적인 행동 패턴들을 모델링하는 데 적합할 수 있다. 또한, 본 개시된 기술이 다른 기초(baseline) 해싱 방법들을 능가함을 보여주는 여러 실험들이 진행되어 왔다. 상기 실험들은 또한 본 개시된 기술이 순차 행동 데이터에 대한 최근접 이웃 탐색을 효과적으로 처리함을 증명한다.
최근접 이웃 탐색을 위한 이진 해싱의 하나의 방법은, 랜덤 투사(random projection)를 이용하는, 지역-민감성 해싱(locality-sensitive hashing: LSH)이다. 딥 러닝-기반의 이진 해싱 접근법들이 소개되었다. 많은 딥 러닝-기반 접근법들은 멀티미디어 콘텐트(이미지 및 비디오)에 집중하는데, 여기서, 이후 유사도 보존적 해시 코드들(similarity preserving hash codes)로 변환되는, 이미지 임베딩들(image embeddings)을 생성하기 위해 CNN-유형의 구조들을 이용하는 것이 가능하다. 그러나, 순차 행동 데이터는, 멀티미디어 데이터와 상당히 달라서, 이러한 접근법들을 적용하기 어렵게 만든다.
다른 연구 분야는 텍스트에 대한 심층 이진 해싱(예를 들면, 문서 유사도 매칭(document similarity matching))에 관한 것이다. 이들은 시맨틱 해싱(semantic hashing), 태그 및 토픽 모델링을 이용한 시맨틱 해싱(semantic hashing using tags and topic modeling: SHTTM), 및 텍스트에 대한 변분 심층 시맨틱 해싱(variational deep semantic hashing for text: VDSH)을 포함한다. 이러한 접근법들은 문서를 단어들의 입력 가방(input bag)으로 취한 다음 인코더-디코더 네트워크(encoder-decoder network)를 이용하여 이진 해싱을 학습한다. 심층 이진 해싱은 또한 추천(recommendation)에 적용되고 있는데, 여기서 이산적 딥 러닝(discrete deep learning) 접근법은 사용자-아이템 행렬들(user-item matrices)을 해밍 공간에서의 잠재 벡터들(latent vectors)로 인수분해하여 사용자들 및 아이템들에 대한 이진 해시 코드들을 생성한다. 이들 조차도, 본 개시된 기술과 관련된, 시간에 따른 사용자의 상호작용 데이터와 같은, 순차 행동 데이터 유형들에 적절하지 않은데, 왜냐하면 최신의 단어들의 가방 및 행렬 인수분해 접근법들은 순차 행동 데이터의 시간-민감적 측면들을 무시하기 때문이다.
본 개시는 사용자 순차 행동 데이터로부터 사용자 임베딩들을 생성하는 심층 학습-기반 접근법들에 대해 더 상세히 설명한다. 예를 들면, 순차적 추천 시스템에 대하여, 하나의 접근법은 단기적 및 장기적 히스토리들을 구별함으로써 시간에 따라 진화하는 사용자의 장기적 선호도들을 모델링하고, 다음으로 어텐션(attention)을 이용하여 장기적 히스토리 표현(long-term history representation)을 생성할 수 있다. 그러한 장기적 표현의 출력은 다시 어텐션을 이용하여 단기적 히스토리 표현과 결합된다. 그러나, 그러한 접근법의 특정 실시예들의 한 가지 약점은 상기 접근법이 단순히 순차적 사용자-아이템 상호작용들로부터 임베딩들을 생성하고 각 아이템의 상위 레벨 메타데이터(예를 들면, 카테고리) 정보를 무시한다는 것이다. 결과적으로, 상기 접근법은 사용자의 취향(taste)(예를 들면, 액션 영화 애호가)를 정확하게(correctly) 포착할 수 없다. 본 개시된 기술은 향상된 접근법을 제공한다.
도 1은, 심층 이진 해싱 아키텍처(100)를 포함하는, 본 개시된 기술의 실시예를 위한 예시적인 상위-레벨 구조적 아키텍처를 도시한다. 도시된 바와 같이, 아키텍처(100)는 3개의 핵심 구성요소들: (1) 행동 데이터로부터 사용자 표현을 생성하기 위한 네트워크 계층들(120a 및 120b)(예를 들면, 카테고리적 어텐션 또는 RACNN/TAACNN); (2) 사용자 표현을 K-차원 사용자 임베딩들(K-dimensional user embeddings)로 변환하기 위한 완전 연결 해시 계층(fully connected hash layer)(130a 및 130b); 및 (3) 해밍 거리 비교를 위해 상기 임베딩들을 이진화하기(binarizing) 위한 부호 활성화 함수(sign activation function)(140a 및 140b)를 포함한다.
본 개시된 기술의 이진 해싱의 한 가지 주요 용도는 2명의 사용자들이 서로 유사한지 여부를, 그들의 행동 히스토리에 기초하여, 신속하게 결정하는 방법이다. 본 개시된 기술은 사용자의 행동 히스토리를 일련의 사용자 행위들(예를 들면, 동일한 사용자에 의한 일련의 책 리뷰들 또는 웹사이트 상에서 사용자에 의한 일련의 클릭들)로 정의하며, 상기 사용자 행위들 각각은 타임 스탬프(time stamp)와 연관된다. 특정 실시예들에서, 사용자들 간의 유사도(similarity)를 측정하기 위해, 본 개시된 기술은 그들의 행동 히스토리들을 효율적으로 벡터화하고 벡터 거리 메트릭들(vector distance metrics)을 이용할 수 있다. 전통적으로, 그러한 거리 계산의 한 가지 단점은 연관된 벡터 차원이 증가함에 따라 복잡성이 수반된다는 것이다. 최근접 이웃 탐색을 효율적으로 근사하기(approximate) 위해, 본 개시된 기술의 특정 실시예들은 전반적인 계산 복잡성 및 비교 횟수를 감소시킬 수 있다. 본 개시된 기술의 특정 실시예들은 사용자의 행동 히스토리 벡터들을 해밍 공간으로 해싱함으로써 이를 달성할 수 있다.
심층 이진 해싱을 위한 본 개시된 기술의 예시적 실시예 워크플로우(workflow)는 도 1에 도시되어 있다. 입력들(115a 및 115b)은, 각각이 각 사용자(110a 및 110b)와 연관된, 전처리된(pre-processed) 사용자 행동 히스토리들의 쌍들을 이루어 도착한다. 상기 전처리된 사용자 행동 히스토리들은 샴 구조(Siamese structure)에 따라 네트워크 계층(예를 들면, 각각 120a 및 120b)으로 제공된다. 네트워크 계층들(120a 및 120b)은 사용자 표현들(user representations)을 생성한다. 상기 사용자 표현들은 각각 해시 계층(130a 및 130b)에 의해 K-차원 사용자 임베딩들로 압축된다. 상기 임베딩들을 K-비트의 이진 해시 코드들로 이진화하는 데 부호 활성화 함수(140a 및 140b)가 이용된다. 최종적으로, 2명의 사용자들이 유사한지 또는 비유사한지 결정하기 위해 해밍 거리 계산(Hamming distance calculation)(150)이 수행된다.
이전의 딥 러닝-기반 접근법들에 대한 개선된 사항으로, 본 개시된 기술은 아이템들의 상위-레벨 메타데이터 정보(예를 들면, 카테고리 또는 장르)를 이용하여 순차적 사용자-아이템 상호작용들로부터 사용자 임베딩들을 생성한다. 선호도(preference)별 사용자 그룹들에 기초하여 사용자 임베딩들을 생성할 필요성은 이하의 예와 함께 예시될 수 있다. 사용자 A는 액션/어드벤처 영화 팬이고 사용자 B는 로맨스 영화 애호가라고 가정한다. 로맨스 영화가 두 사용자들에게 추천된다고 가정하자. 사용자 B는, 상기 로맨스 영화가 그의 영화 장르 선호도와 잘 일치하므로, 로맨스 영화 관람을 자연스럽게 즐길 수 있다. 사용자 A는, 상기 로맨스 영화가 그의 가장 선호도하는 영화 장르는 아니라 하더라도, 여전히 이 영화를 관람할 수 있는데, 왜냐하면, 아마도, 상기 영화가 가장 유행하는 영화(top trending movie)이고 사용자 A는 특정 컨텍스트들(contexts)에서는 가장 유행하는 영화들의 관람을 즐기기 때문이다. 본 예에서 알 수 있는 바와 같이, 사용자 이벤트는 상이한 의미론(semantics)을 가질 수 있고, 이에 따라 사용자의 선호도는 사용자 모델링에 대한 영향력 있는 인자이다.
이진 해싱을 생성하도록 순차 행동 데이터로부터 사용자 표현(임베딩)을 효율적으로 학습하기 위해, 본 개시된 기술은, 사용자의 근본적 선호도(underlying preference)를 포착하기 위해, 새로운 하이브리드 어텐션 네트워크인, 카테고리적 어텐션(Categorical Attention)을 제공한다. 도 2는 카테고리적 어텐션 네트워크(200)의 전반적인 구조적 아키텍처를 포함하는 개시된 기술의 예시적 실시예를 도시한다. 카테고리적 어텐션 네트워크(200)에서, 사용자 표현은 상위-레벨 메타데이터(예를 들면, 카테고리)별 어텐션 네트워크들을 결합함으로써 학습된다. 특정 실시예들에서, 본 개시된 기술을 위한 기본 네트워크로서, 장단기 메모리(long short-term memory: LSTM) 또는 게이트 순환 유닛(gated recurrent unit: GRU)보다는 어텐션이, 그 우월한 성능으로 인해, 선택될 수 있다. 본 개시된 기술의 네트워크(200)는 4개의 계층들: (1) 상위-레벨 메타데이터별 아이템들을 그룹화함으로써 사용자 및 아이템 입력들(215a-215f)을 희소화하는 희소 입력 계층(sparse input layer)(210)(예를 들면, 원-핫 표현(one-hot representation)); (2) 각 아이템의 임베딩(225a-225f)을 학습하는 임베딩 계층(220); (3) 각각의 그룹(235a-235c)에 대해 네트워크들에서 상위-레벨 메타데이터별 아이템들의 임베딩들에 대한 가중합(weighted sum)을 계산하는, 상위-레벨 메타데이터별 어텐션 계층(230); 및 (4)상위 레벨 메타데이터 어텐션 계층으로부터의 결합된 계층(combined layer)(240)을 포함한다. 이러한 특정 계층의 출력(250)은 사용자들을 나타냄과 함께 그들의 카테고리적 선호도들도 또한 나타낸다.
특정 실시예들에서, 본 개시된 기술은 먼저 모든 아이템들을 시간 순서로 정렬하고(sort) 그들의 상위-레벨 메타데이터 정보에 따라 그들을 카테고리화하여 아이템들(215a-215f)을 포함하는 아이템 그룹들을 생성한다. 메타데이터는 넓은 의미를 가질 수 있다. 메타데이터의 예들은 장르(genre), 토픽(topic), 카테고리, 취향(taste) 등을 포함하나, 이에 제한되지 않는다. 메타데이터 그룹에서 발견되는 각각의 아이템(215a-215f)은 GijU로 표현되는데, 여기서 G는 그룹이고, i는 그룹의 인덱스이며, j는 i번째 그룹에서의 아이템의 인덱스이고, U는 사용자들을 나타낸다. 상기 아이템 그룹들로부터, 임베딩 계층(220)은 각각의 메타데이터 그룹(215a-215f)에 상응하는 아이템 임베딩들(225a-225f)을 생성한다. 어텐션 계층(230)은, 각 그룹(어텐션 네트들(attention nets)(235a-235c)을 생성하는)에 대해, 주어진 상위-레벨 메타데이터 그룹(예를 들면, 225a)에서 발견되는 모든 아이템들 간의 내부 관계들(inner-relationships)을 포착한다. 여기서, 본 개시된 기술은 이를 도시하기 위해 사용자 취향(예를 들면, "스포츠")을 이용한다. 취향 별로 그룹화된 임베딩 계층(220)으로부터, 본 개시된 기술은 각각의 아이템 임베딩(225a-225f)에서 내부 관계들을 포착한다. 본 개시된 기술이 이러한 내부 관계들을 포착함에 따라, 일부 사용자-아이템 상호작용들은 부풀려지거나(inflated) 또는 축소된다(deflated). 이 계층의 출력은 주어진 취향에서 다른 아이템들의 영향을 반영하는 사용자의 순차적 행동 표현으로 취급된다. 본 개시된 기술은 취향 별 사용자 어텐션을 고려하기 위해 다른 셀프-어텐션 구조(self-attention structure)를 변형시킬 수 있다. Hi는 각 사용자의 취향 i에서 그룹화된 아이템들(215a-b15f)로부터의 임베딩 출력들의 시퀀스를 포함하는 행렬이라고 하되, 여기서 G는 그룹이고 U는 사용자들을 나타낸다(식 1). 본 개시된 기술은 비선형 함수 tanh를 Hi에 적용할 수 있다(식 2). Ti는 i번째 취향에서 시퀀스화된 아이템들(sequenced items)의 수를 나타낸다(식 3). 상기 시퀀스의 표현 ri는 이러한 출력 벡터들의 가중합(weighted sum)에 의해 형성된다(식 4):
Hi
=
GiU
(1)
Mi
=
tanh(Hi)
(2)
식 4를 이용하여 취향별 어텐션을 획득한 후, 본 개시된 기술은 사용자 임베딩을 검색하기(retrieve) 위해 ri를 모두 합산하는데, (255) 여기서 N은 취향의 수이다. 이하에 나타낸 알고리즘 1은 상기 설명된 식들 로부터 카테고리적 어텐션의 일반적 접근법을 소개한다.
Algorithm 1 Categorical Attention (알고리즘 1 카테고리적 어텐션)
입력: 사용자 그룹 U, 각 사용자 U별 그룹화된 아이템 Gu 상위-레벨 메타데이터(예를 들면, 는 i번째 상위-레벨 메타데이터에서 아이템 id의 리스트를 포함함), K: 해시 비트의 차원
출력: K 차원에서의 생성된 사용자 임베딩 Ue
for each user Ui in U do (U에서의 각 사용자 Ui에 대해 반복 실행)
ItemList = sorted by timestamp in (ItemList = 타임스탬프에 의해 정렬됨)
ItemEmbedding = generated by Embedding Layer in K dimension (ItemEmbedding = K 차원에서 임베딩 계층에 의해 생성됨)
Compute high-level metadata attention(상위-레벨 메타데이터 어텐션을 계산)(식 1 - 식 4)
end for(반복 종료)
Uei = Sum the generated high-level metadata attention embedding (Uei = 생성된 상위-레벨 메타데이터 어텐션 임베딩을 합산)
end for(반복 종료)
도 3은 RACNN/TAACNN의 아키텍처(300)를 포함하는 본 개시된 기술의 예시적 실시예를 도시한다. 상기 도면은 특정 파라미터 선택들을 암시하지만, 이하에서 심도 있게 논의될 바와 같이, 본 개시는 상기 구조에 대해 이루어질 특정한 일반화들을 예상한다. 도 3에서, 이하에서 더 설명되는 바와 같이, "ST"는 단기간(short-time)에 대한 약어이고, "MT"는 중기간(middle-time)에 대한 약어이며, "LT"는 장기간(long-time)에 대한 약어이다.
어텐션 모델들은 순차적 데이터를 처리하는 데 효과적인 것으로 알려져 있지만, 본 개시는 순차적 데이터를 처리하는 데 CNN의 잠재력을 더 보여주는 접근법들에 기반을 두고 있다. 그러나, 그러한 접근법들에서, 데이터 구조 제한으로 인해, 임베딩들이 있는 경우에도, CNN 구조들은 하나의 단일 차원에서 그들의 컨볼루션 커널(convolution kernel)을 적용하였다. 순차적 데이터가 있는 본 개시된 기술의 경우에, 이는 장기적 어텐션 특징 손실(long-term attention feature loss)을 초래할 가능성이 있으며, 이는 이진 해시 코드 생성 시 유사도 보존(similarity preservation)에 영향을 미칠 수 있다. 이 잠재적 문제를 완화하기 위해, 본 개시된 기술은, 순차적인 사용자 행동들을 이들의 유사도를 보존하면서 해시 코드들로 분해하기 위해, 관계 및 어텐션 CNN(Relation and Attention CNN: RACNN) 아키텍처/시간-인식 어텐션 CNN(Time-Aware Attention CNN: TAACNN) 아키텍처(300)를 제공한다. 본 개시된 기술의 특정 실시예들은, 각 사용자의 단기적(관계) 특징 및 장기적(어텐션) 특징을 추상화하여 이진 해싱 동안보다 양호한 유사도 보존을 달성하기 위해, 주어진 순차 행동 데이터를 고차원 구조들로 변환할 수 있다.
상기 구조는 입력 계층(310)에서의 사용자 행동 표현(315)으로 시작된다. 사용자 행동 데이터는 통상 사용자-아이템 상호작용의 측면에서 표현되기 때문에, 순차 행동 데이터를 RACNN/TAACNN 구조에 맞추기(fit) 위해, 본 개시된 기술은 먼저 각 아이템을 그것의 카테고리 도메인으로 매핑하여 그 차원을 감소시킨다. 예를 들면, 각 카테고리는 원-핫 인코딩(one-hot encoding)을 이용하여 인코딩될 수 있고, 상기 아이템은, 그것이 복수의 카테고리들(예를 들면, 책 또는 영화)에 속할 수 있기 때문에, 멀티-핫 인코딩(multi-hot encoding)일 수 있다. 이렇게 한 후, 상기 RACNN/TAACNN 구조를 이용하는 시스템은 특정 시간 단위(예를 들면, 시간(hour), 일(day), 주(week) 등)별로 사용자의 데이터를 세션화 할(sessionize) 수 있다. 각 세션에서, 본 개시된 기술은, 이 세션에서 사용자 집계된 행동(user aggregated behavior)을 표현하기 위해 각 아이템의 멀티-핫 인코딩을 이용하여, 사용자가 상기 특정 시간 단위에 걸쳐 상호작용한 모든 아이템들을 집계한다(aggregate). 다음으로, 상기 RACNN/TAACNN 구조를 이용하는 시스템들은 사용자의 행동을 고차원 공간 U RHХWХC으로 변환할(reshape) 수 있으며, 여기서 H는 단기적 차원(예를 들면, 일(day))이고, W는 장기적 차원(예를 들면, 월(month))이며, C는 카테고리 크기(category size)이다. 각 차원에서 필요한 정확한 시간(exact time)은 세션에 대해 선택된 시간의 길이에 대해 상대적일 수 있다. 사용자 행동 표현(315)를 획득한 후, 임베딩 계층(320)이 이용된다. 이 계층은 1 Х 1 컨볼루션 커널(convolution kernel)(325)을 이용하여 상기 저차원의 희소 입력(low-dimensional sparse input) U를 고차원의 적응형 밀집 임베딩(high dimensional adaptive dense embedding) Ue RHХWХE로 매핑하며, 여기서 E는 임베딩 크기(embedding size)(예를 들면, 본 명세서에서 128)이다.
관계 및 어텐션 계층(330)에서, 본 개시된 기술은, 사용자 유사도를 보다 잘 보존하기 위해, 상이한 커널들을 이용하여 상이한 특징들을 추상화 한다. 관계 커널 세트 kR(332)은 한정된 수의 커널들을 가진다. 특정 실시예들에서, 관계 커널 세트(332)는 3개의 커널들, 즉, {k3×1, k5×1, k7×1}을 포함한다. 어텐션 커널 세트 kA(337)도 또한 한정된 수의 커널들을 가진다. 특정 실시예들에서, 어텐션 커널 세트(337)는 3개의 커널들, 즉, {k1×3, k1×5, k1×7}을 포함한다.
특정 실시예들에서, 원본 사용자 행동 표현(315)으로부터의 고립된 특징 손실(isolated feature loss)을 방지하기 위해, 도 3의 좌측에 도시된 바와 같이, 평균 풀링 함수(average pooling function)(333)에 기초한 고립된 컨볼루션(isolated convolution)(338)이 관계 및 어텐션 계층(330)에 추가될 수 있다. 이하의 알고리즘 2는 특정 실시예들에 따라 본 개시된 기술의 관계 및 어텐션 계층(330)에서 사용자 특징을 계산하는 방법을 보여준다. 관계 및 어텐션 계층(330c)으로부터 추출된 모든 특징들(345a-345g)은, 추가적인 유사도 계산을 위해, 집계 계층(aggregation layer)(340)에서 평탄화되고(flattened) 함께 연결된다(concatenated).
Algorithm 2 Relation and Attention / Time-Aware Attention Feature Abstraction (알고리즘 2 관계 및 어텐션 / 시간-인식 어텐션 특징 추상화)
end for(반복 종료)
end for(반복 중단)
end for (반복 중단)
카테고리적 어텐션 네트워크(200) 및 RACNN(300)의 마지막 계층(각각 250 및 350)은 연속 벡터들(continuous vectors)의 형태로 사용자 임베딩들(예를 들면, 255)을 생성한다. 따라서, 상기 사용자 임베딩들을 다음과 같이 이진 해시들로 변환할 필요가 있다. 형식상, 유사도-보존 해싱은, 유사도를 여전히 보존하면서, 데이터를, D-차원의 특징 벡터 xi RD로 구성된, 입력 공간 으로부터, K-비트의 이진 해시 코드 yi {-1,1}K로 구성된, 해싱 공간 으로 표현하는 문제이다. 상기 문제는 다음과 같이 설명될 수 있다: D-차원의 입력 데이터 X RN×D의 N개의 포인트들을 고려할 때, 목표는 K-비트의 이진 코드들 Y HN×K를 생성하기 위한 해싱 함수 f : x -> y를 학습하는 것이다.
유사도를 정의하기 위해, 대부분의 샴 구조들(Siamese structures)에서, 유사도는 통상 Sij {0,1}로 정의된다. Sij = 1은 xi 및 xj가 유사함을 의미하는 반면, Sij = 0는 이들의 비유사 (dissimilarity)을 의미한다. 하나의 접근법에서, 각 쌍의 유사도는 그들이 연관된 태그들(tags)을 이용하여 결정된다. 그러한 접근법에서, 2개의 입력 객체들이 적어도 하나의 태그를 공유하는 경우 Sij = 1이고, 그렇지 않은 경우 Sij = 0이다. 그러나, 본 개시된 기술에 따르면, 이러한 정의는 너무 느슨하며 더 세분화된(more fine-grained) 유사도(예를 들면, 실제 수치 유사도 점수(real value similarity score))가 유리하다. 그러한 목적은 유클리드(Euclidean), 코사인(Cosine), 또는 자카드(Jaccard) 거리들을 이용하여 달성될 수 있다. 그러므로, 본 개시된 기술은 실제 수치 유사도 함수 Sij를 로 정의하는데,
여기서 ci, cj CM, 및 M은 각각 세그먼트(segment), 장르(genre), 또는 카테고리의 수이다. 해밍 거리는 이진 코드들에 대한 유사도의 가장 널리 이용되는 측정이다. 관찰: 해밍 거리와 내적(inner product) 간에도 관계가 있는데, 이는
여기서 K는 해시 코드의 길이이고, W는 K×K 대각 행렬이며, yi = [h1(xi),...,hk(xi),...,hK(xi)]이고 yj = [h1(xj),...,hk(xj),...,hK(xj)] Y이다. 해밍 거리의 기본 개념(basic notion)은 상이한 해시 비트들로부터 상이한 영향 레벨들(impact levels)을 전부(fully) 포착하는 것은 아니므로, 본 개시된 기술은 가중 해밍 거리 측정(weighted Hamming distance measure)을 도입한다. 보다 정확하게는, 2개의 이진 코드들, yi 및 yj 간에, 본 개시된 기술은 을 정의하는데,
N개의 학습 데이터 포인트들(training data points)에 대해 쌍-단위 유사도들(pairwise similarities)의 세트를 고려할 때, yiWyjT를 로 표시하기로 하면,
가능도 함수(likelihood function)는 이다. 따라서, 모든 트레이닝 포인트들의 해시 코드 출력에 대한 최대 가능도 추정(maximum likelihood estimation)은 다음과 같이 주어진다:
여기서 σ(x) = 1/(1 + e-αx)는 대역폭(즉, 함수의 가파름(steepness))을 제어하기 위한 하이퍼-파라미터(hyper-parameter) α를 갖는 적응형 시그모이드 함수(adaptive sigmoid function)이다. 는의 시그모이드 출력(sigmoid output)과 유사도 라벨(similarity label) 간의 유클리드 거리(Euclidean distance)이다. 식 7로부터, 다음이 얻어질 수 있다:
식 7을 식 6의 최대 가능도 추정에 대입하여, 상기 최적화 문제는 다음과 같이 정의될 수 있다:
여기서 Θ는 주어진 심층 네트워크에서 모든 파라미터들의 세트를 나타낸다. 부호 함수의 기울기 소실 문제(vanishing gradient problem)로 인해, 예를 들면, 연속 완화(continuous relaxation)를 위해 tanh 또는 softsign을 이용하여, 식 8을 최적화하기 위해 대체 완화 방법들이 이용될 수 있다.
광고 및 마케팅을 위한 빅데이터 시스템들에서, 유사한 사용자들의 그룹들을 찾고 순위 매기는 것 - 최근접 이웃 탐색 - 은, 특히 유사 탐색(lookalike search), 사용자 세분화(user segmentation), 및 추천(recommendation)과 같은 애플리케이션들에 대해, 중요한 작업(critical task)이다. 텔레비전 및 모바일 디바이스와 같은, 현대적 디비이스들은, 사용자들 간의 유사도, 및 이에 따라 그들의 "최근접 이웃들(nearest neighbors)"을 계산하는 데 이용될 수 있는, 선형(linear) 텔레비전, 주문형 비디오(video on-demand), 게임, 애플리케이션, 및 외부 디바이스와 같은 콘텐트와 사용자 상호작용 히스토리들(user interaction histories)의 상세한 프로파일들(detailed profiles)을 가지고 있다. 그러나, 부단히 업데이트되는 상호작용 히스토리들을 갖는 수천만 명의 사용자들을 포함할 수 있고, 시간이 지남에 따라 각각이 수백만 개의 세션들에 걸쳐있는, 데이터의 대규모 특성(large-scale nature)으로 인해, 상기 작업은 계산 비용이 많이 든다.
최근접 이웃 탐색의 속도를 높이는 하나의 방법은, 이미지, 소리, 텍스트 등과 같은 고정된 포맷의 임의의 데이터를 고정된 크기의 해시 코드들로 변환하는, 심층 신경망(deep neural networks)을 이용한 해싱(hashing)이다. 다음으로, 상기 해시 코드들을 비교함으로써 유사도 연산들이 훨씬 더 효율적으로 수행될 수 있다. 상기 생성된 해시 코드들이 이진 벡터들(binary vectors)인 경우 효율성 증가가 특히 두드러지는데, 상기 이진 벡터들의 비교는 비트 연산(bit operation)이다. 그러나, 사용자 행동 히스토리들은, 이미지, 소리, 및 텍스트와는 상이한, 컨텍스트 특징들 및 패턴들을 가진다. 본 개시에서 설명되는 시스템들 및 아키텍처들의 특정 실시예들은 해싱에 있어서 더 양호하고 더 효율적인 결과들을 달성하기 위해 이러한 차이들을 이용할 수 있으며, 이는 유사 탐색, 사용자 세분화, 및 추천과 같은 애플리케이션들에서 운영자를 도와줄 것이다.
확장성(scalability) 및 효율성(efficiency)은 빅데이터 사용자 행동 모델링에서 가장 어려운 문제에 속한다. 대형 디바이스 제조사의 경우, 사용자 데이터를 제공하는 수백만 명의 사용자들이 있으므로, 매일 처리를 필요로 할 수 있는 사용자 행동 데이터의 수십억 개의 개별 기록들(records)이 발생될 수 있다. 그러나, 온라인 상호작용 형 광고와 같은 사업의 경우, 서비스는, 종종 밀리 초 단위로, 매우 제한된 시간에, 응답이 제공될 필요가 있을 수 있다. 따라서, 확장 가능하고(scalable) 효율적인 프레임워크가 매우 유리하다. 상기 프레임워크는 또한 광고 요청들을 가장 잘 서비스하기 위해 오프라인 및 온라인 컴퓨팅을 결합할 필요가 있을 수 있다.
이전에는, 해싱을 이용하여 최근접 이웃 문제를 해결하려는 접근법들이, LSH 및 기타 이진 해싱 메커니즘들과 같은, 대규모 데이터세트들(datasets)과 함께 이용하기 위해 채택되었다. 통상, 이러한 접근법들은 상위 레벨(high level)에서만 또는 장시간에 걸쳐 사용자의 행동을 포착한다. 이러한 접근법들의 성능은, 사용자 행동을 변경하는 시간 시퀀스들(time sequences) 을 고려한 상태에서, 일반적으로 불량하다. 또한, 이러한 히스토리적 접근법들(historical approaches)은, 사용자가 사용자 행동 데이터를 생성할 수 있는 다양한 컨텍스트 환경들(예를 들면, 사용자가 콘텐트와 상호작용하는 방법)에 기초한 사용자 행동 변화들을 고려하지 않는다. 예를 들면, 광고 영역에서, 사용자들의 선호도들은, 고려될 수 있는 컨텍스트들 중 몇 가지만 말하자면, 시간, 장소, 이들이 사용 중인 디바이스, 이들이 하고 있는 활동의 클래스(class), 또는 이들이 속한 소셜 그룹(social group)에 따라, 변할 수 있다. 본 명세서에 개시된 시스템들 및 아키텍처들의 특정 실시예들은, 사용자들의 선호도들을 여전히 보존하면서도 모든 컨텍스트 측면들을 포착하는, 새롭고 매우 효율적인 해싱 방법들을 이용하여, 이러한 문제들을 해결한다. 이러한 새로운 방법들에 의해 생성되는 해시 코드들을 이용하여, 본 개시된 기법들은 사용자 세분화 및 유사 사용자 탐색과 같은 애플리케이션들에 적용될 수 있다.
본 개시는 사용자 행동 히스토리들의 해싱을 통해 최근접 이웃 탐색의 일반적 문제를 해결한다. 본 명세서에서 설명되는 전체 프레임워크는 상술된 바와 같은 문제에 대한 새로운 접근법을 제공한다. 또한, 상기 아키텍처 및 프레임워크는 상기 일반적 문제에 반영되는 많은 기술적 문제들을 해결한다. 예를 들면, 본 개시는, 해싱의 새로운 구현인, 사용자 행동 히스토리들의 시간-기반 해싱을 가능하게 한다. 사용자 행동 히스토리들은 통상 특정한 시간적 패턴들을 나타낸다. 예를 들면, 사용자들은, 아침에, 밤에, 또는 휴일 중에 특정한 프로그램들을 시청하는 것과 같이, 하루 중 시간에 따른 습관들을 가질 수 있다. 이러한 패턴들을 드러낼 수 있는 해시 코드들을 생성함으로써, 본 개시된 시스템은 사용자들 및 시간에 따른 이들의 이용 패턴들의 보다 효과적인 비교를 용이하게 한다. 다른 예로, 본 개시는 사용자 행동 히스토리들의 소셜 그룹-기반 해싱을 제공한다. 사용자 행동 데이터에 추가적인 컨텍스트 요소들을 제공하는 데 이용될 수 있는 메타데이터는 인구통계(demographics) 및 소셜 네트워크 정보(social network information)를 포함한다. 인구통계 및 소셜 네트워크 정보는, 개별 해시 코드들뿐 아니라, 소셜 그룹-기반 해시 코드들을 생성하는 데 이용될 수 있다. 소셜 그룹-기반 해시 코드들은, 최종 클라이언트들(end clients)의 타겟팅 및 분석 요구들에 따라, 그룹들 내에서 및 그룹들에 걸쳐서 유사도 탐색을 용이하게 한다. 다른 예로, 본 개시는 사용자 행동 히스토리들의 위치-기반 해싱을 가능하게 한다. 사용자들은 종종 장소에 따라 그들의 행동을 변경한다. 사용자 행동 히스토리 내의 위치-특정적 패턴들을 이용하는 것은 위치-인식 유사도 탐색(location-aware similarity search)의 가능성을 제공한다. 다른 예로, 본 개시는 사용자 행동 히스토리들의 활동 클래스-기반 해싱을 가능하게 한다. 이용될 수 있는 메타데이터의 다른 측면은 콘텐트 유형, 장르 등과 같은 상이한 활동 클래스들의 기록을 포함하여 이러한 클래스들 내에서의 고유한 사용자 유사도 패턴들을 이용한다. 다른 예로, 본 명세서에서 설명되는 시스템들 및 아키텍처들은 이종(heterogeneous) 해시 코드들을 이용한다. 기존 시스템들에서의 해시 코드들은 사용자의 선호도를 전체 값(overall value)으로서 포착하는 경향이 있다. 그러나, 그러한 해시 코드들을 이용하여, 이전의 시스템들은 사용자 선호도들의 상이한 측면들을 효율적으로 식별할 수 없고 이러한 선호도들에 기초하여 사용자들을 최적으로 구별할 수 없다. 본 개시는, 사용자 선호도 및 컨텍스트의 상이한 측면들을 포착할 수 있는, 해시 세그먼트들로 구성된 이종 해시 코드들을 생성함으로써, 본 명세서에서 설명되는 바와 같이, 이 문제를 해결한다. 다른 예로, 본 개시는 이종 해시 코드들을 효율적으로 저장하고 필요한 경우 상기 해시 코드들을 효율적으로 업데이트하는 방법의 문제를 해결한다. 해싱의 궁극적인 목적은 최근접 이웃 탐색과 같은 애플리케이션들의 속도를 높이는 것이기 때문에, 저장 및 업데이트의 복잡성을 감소시키는 것은 본 명세서에서 설명되는 기법들을 채용하는 어떤 시스템에서도 필수적 구성요소이다. 다른 예로, 본 명세서에서 설명되는 기법들은 사용자 행동 히스토리 해시 코드들의 이용(usage) 및 애플리케이션들을 크게 향상시킨다. 일단 사용자(또는 사용자 그룹)에 대해 다양한 해시 코드들이 생성되면, 본 명세서에서 설명되는 기법들을 채용하는 시스템은, 최근접 이웃 탐색을 수행하는 것과 같은, 특정한 애플리케이션들에 이러한 해시 코드들을 이용할 수 있다. 본 개시는 컨텍스트, 가중치들(weights), 그리고 휴리스틱(heuristic) 및 학습된 의사 결정을 이용하여 최적의 방식으로 어떻게 할 것인가라는 도전 과제를 해결한다. 사용자 세분화(user segmentation) 및 유사 사용자 탐색(lookalike user search)은 광고와 같은 문제 영역들에서 도전적 문제들(challenging problems)이다. 사용자 세그먼트들을 분류 및 식별하기 위해 기계 학습 방법들 및 매뉴얼 규칙들(manual rules)이 먼저 이용된다. 다음에, 이전의 접근법들은 유사한 사용자들을 찾기 위해 시드 사용자 세그먼트들(seed user segments)에 대해 LSH와 같은 차선의(sub-optimal) 방법들을 적용한다. 이러한 접근법들의 한 가지 오래 지속된 문제는, 이러한 시스템들의 성능에 크고 해로운 영향을 미쳐, 궁극적으로 광고 고객들의 투자 수익에 영향을 미치는, 사용자 세그먼트들의 품질이다. 종종, 사용자 세그먼트 품질은 광고 타겟팅 서비스 제공자에 대한 중요한 핵심 성능 지표(crucial key performance indicator)다. 본 개시는 기존 세그먼트들을 효율적으로 구분하고(refine) 기존 세그먼트들을 고품질로 확장하는 해결책들을 사용자들에게 제공한다.
특정 실시예들에서, 본 개시는 사용자 행동 히스토리들의 심층 해싱(deep hashing) 을 통해 최근접 이웃 탐색을 수행하는 시스템 및 아키텍처를 설명한다. 본 개시는 이전의 단락들 에서 설명된 문제들에 대한 해결책들을 설명한다. 본 명세서에서 설명될 특정 해결책들은 사용자 행동 히스토리들의 시간-기반 해싱을 포함한다. 본 개시된 아키텍처는, 콘텐트를 갖는 사용자들의 행동에서 시간적 구조적 패턴들을 모델링하기 위해, 복수의 적응형 시간 윈도우들에서 콘텐트를 갖는 사용자 행동 히스토리를 해싱한다. 예를 들면, 이것은 휴리스틱하게(heuristically) 또는 심층 신경망 학습을 통해 "연속적인(serial)" 및 "주기적인(periodic)" 패턴들을 정의함으로써 수행된다. 다음에, 사용자들의 시간-기반 선호도들은 해시 세그먼트들로 직접 해싱될 수 있거나 또는 사용자들의 행동 히스토리들은 상기 시간 윈도우들에 따라 분해될 수 있다. 최종적으로, 각 윈도우에 대한 별도의 해시 코드들이 생성될 수 있다. 본 명세서에서 설명되는 다른 해결책은 사용자 행동 히스토리들의 소셜 그룹-기반 해싱을 포함한다. 본 명세서에서 설명되는 아키텍처는, 개별 해시 코드들뿐 아니라, 소셜 그룹-기반 해시 코드들을 생성하기 위해, 이용 가능한 인구통계 및 소셜 네트워크 정보를 이용한다. 특정 실시예들에서, 이는, 가정들(households)(예를 들면, 가정을 구성하는 개인들) 및 소셜 네트워크들의 상세한 설명을 획득하고 이를 가정 행동 히스토리들과 상호 연관시킴으로써(correlating) 수행된다. 상기 상호 연관은, 예를 들면, 개별 상호작용들(individual interactions)뿐 아니라, 공동 상호작용들(joint interactions)에 대한 해시 세그먼트들을 생성하거나 또는 이들을 상이한 해시 코드들로 분해하기 위해, 휴리스틱(heuristics) 또는 딥 러닝 모델들을 통해, 콘텐트와 함께 수행된다. 본 명세서에서 설명되는 다른 해결책은 사용자 행동 히스토리들의 위치-기반 해싱을 포함한다. 위치 정보가 이용 가능한 경우, 본 개시된 시스템들 및 아키텍처들은, 사용자들의 위치 행동 선호도들의 해시 세그먼트들을 생성하기 위해, 또는 별도의 위치들에서 사용자들의 행동 히스토리들에 대해 별도로 해시 코드들을 생성함으로써, 상기 위치 정보를 이용한다. 상기 아키텍처는 또한, 휴리스틱 또는 딥 러닝 모델들을 이용하여, 각 라벨(label)에 대한 공동 해시 코드들과 함께, "집(home)", "식료품점(grocery store)", "레스토랑" 등과 같이 이용 가능한 라벨들에 따라 이러한 위치들을 군집화한다(cluster). 본 명세서에서 설명되는 다른 해결책은 사용자 행동 히스토리들의 활동 클래스-기반 해싱을 포함한다. 사용자 행동 히스토리들은, 휴리스틱 또는 딥 러닝 모델들을 이용하여, 이들의 활동 클래스들에 따라 그룹화된다. 특정 실시예들에서, 본 개시된 시스템은 사용자들의 활동 선호도를 나타내는 해시 세그먼트들을 생성할 수 있거나 또는 사용자들의 행동 히스토리들을 각각의 활동 클래스에 따라 별도의 해시 코드들로 분해할 수 있다. 본 명세서에서 설명되는 다른 해결책은 이종 해시 코드들을 포함한다. 특정 실시예들에서, 각각의 컨텍스트 특징은 각각의 컨텍스트 부분(each contextual portion)에 대한 최종 해시 코드의 특정 부분에 기여하도록 트레이닝 될 수 있다. 이러한 경우, 상기 해시 코드는 고정된 길이로 맞춰질 필요가 없을 수 있다. 사용자들 간의 유사도는, 가중치들이 상이한 상응하는 해시 비트들을 비교함으로써(주어진 컨텍스트에 따라), 쉽게 측정될 수 있다. 본 명세서에서 설명되는 다른 해결책은 사용자 행동 히스토리 해시 코드들의 저장 및 업데이트이다. 본 개시된 시스템들 및 아키텍처들은, 해시 코드들과 연관된 가중치들뿐 아니라, 상기 차원들 각각에 대해 각 사용자에 대한 해시 코드들을 저장한다. 예를 들면, 특정 실시예들에서, 상기 가중치들은 통계적 요인 분석(statistical factor analysis)으로부터 획득될 수 있다. 본 명세서에서 설명되는 기법들을 채용하는 시스템들은 또한, 요인 분석(factor analysis)으로부터 다시 학습될 수 있는, 각 차원의 중요도를 설명하는 일반 가중치들을 저장할 수 있다. 사용자의 행동 히스토리의 변화의 길이(length) 및 크기(magnitude)에 따라 업데이트들이 이루어질 수 있다. 본 명세서에서 설명되는 다른 해결책은 사용자 행동 히스토리 해시 코드들의 이용(usage)이다. 특정 실시예들에서, 검색(retrieval) 및 이용(usage)은, 마케팅 고객의 광고 및 마케팅 요구를 분석하고, 예를 들면, 원하는 유사도의 차원들 및 검색의 목적에 기초하여, 비교를 위해 가장 관련성이 높은 해시 코드들을 검색하는, 컨텍스트-인식적 결정 엔진(context-aware decision engine)에 의해 수행된다. 상기 아키텍처는 적어도 3개의 탐색 모드들(search modes): 확장(expansion), 구분(refinement), 및 분석(analysis)을 지원한다. 확장(expansion)은 "시드" 사용자 그룹과 가장 유사한 타겟 사용자 수를 파악한다. 구분(refinement)은 "시드" 사용자 그룹을 가져와 노이즈를 필터링해 내고자 시도한다. 분석(analysis)은, 사용자 그룹에 대해, 이들의 해시 코드들의 통계적 특성(statistical properties), 예를 들면, 평균 유사도, 가장 중요한 차원, 연관들(associations) 등을 설명한다.
도 4a는, 특정 실시예들에 따른, 이종 해시 코드들을 생성 및 이용하는 시스템(400a)의 예시적 아키텍처를 도시한다. 시스템(400a)은 사용자 행동 데이터 데이터베이스(410)를 포함한다. 사용자 행동 데이터베이스(410)는 다양한 애플리케이션들, 콘텐트 아이템들, 매체들(media), 웹사이트들, 및 사용자 디바이스들에 의해 추적되는 기타 상호작용 가능한 요소들과 사용자들의 상호작용들에 관한 정보를 저장한다. 사용자 행동 데이터베이스(410)는 그러한 상호작용들에 관한 메타데이터를 더 저장한다. 시스템(400a)은 컨텍스트 정보 데이터베이스(contextual information database)(420)를 포함한다. 컨텍스트 정보 데이터베이스(420)는, 특정한 사용자-아이템 상호작용에 영향을 미치는 매체들 또는 다른 아이템들과 상호작용하기 위해 사용자들에 의해 이용되는 다양한 디바이스들로부터 획득된, 어떤 추가적 데이터라도 저장한다. 그러한 컨텍스트 정보는, 제한되지 않는 예시로, 사용자의 인구통계적 분포(연령(age), 성별(gender), 소득(income) 등), 위치 정보, 시간 정보, 디바이스 정보, 및 다양한 다른 적합한 컨텍스트 정보를 포함할 수 있다. 시스템(400a)은 이종 해싱 모델(430)을 더 포함한다. 본 명세서에서 설명되는 이종 해싱 모델(430)은, 본 개시된 시스템의 특징들 중 많은 것들을 가능하게 하는 이종 해시 코드들을 제공하도록 트레이닝 된, 기계 학습 모델이다. 시스템(400a)은 이종 해시 코드 데이터베이스(440)를 포함한다. 이종 해시 코드 데이터베이스(440)는, 사용자들 간의 유사도를 보존하면서 사용자들의 선호도들의 상이한 레벨들 및 측면들을 포착하는, 생성된 해시 코드들을 저장한다. 특정 실시예들에서, 이종 해시 코드 데이터베이스(440)는 이종 해시 코드들의 신속한, 주문형 검색(on-demand retrieval)을 위해 정리된다(organized).
예시적 애플리케이션 시스템(450)이 또한 시스템(400a)의 상기 아키텍처의 일부로서 도시되어 있다. 단일한 애플리케이션 시스템(450)만 도시되어 있지만, 본 개시는 복수의 애플리케이션들이 상기 시스템 내에서 이용될 수 있고 하나 이상의 이종 해시 코드 데이터베이스들(440)을 포함할 수 있음을 고려하고 있다. 본 개시는, 다른 적합한 애플리케이션들이 고려되지만, 유사 확장 애플리케이션(lookalike expansion application)의 특정한 인스턴스(instance)를 설명할 것이다. 애플리케이션 시스템(450)에 대한 입력은 컨텍스트 조건(contextual condition)(460)을 포함한다. 컨텍스트 조건(460)은 요청된 새로운 세그먼트의 통합(uniting) 인자 또는 조건을 기술한다. 컨텍스트 조건(460)은 시스템(400a)을 이용하여 고객(또는 고객 애플리케이션)에 의해 지정될 수 있다. 예를 들면, 상기 컨텍스트 조건은 고객이 캘리포니아에서 스포츠를 시청하는 4인 가정들을 탐색하고 있다고 지정할 수 있다. 애플리케이션 시스템(450)은 애플리케이션 블록(455)을 포함한다. 특정 실시예들에서, 애플리케이션 블록(455)은 애플리케이션 그 자체의 구현과 관련된 프로그래밍을 포함할 수 있다. 도 4에 도시된 예에서, 애플리케이션은 유사 사용자 세그먼트 확장(lookalike user segment expansion)으로 구성된다. 애플리케이션 블록(455)에 의해 해결되는 문제는 다음과 같이 요약될 수 있다: 시드 사용자 세그먼트가 주어지면, 광고 타겟팅에 가장 적합한 가장 유사한 사용자들을 찾는다. 광고 기술, 마켓팅 기술, 추천 엔진(recommendation engines), 사용자 프로파일링(user profiling), 상세한 사용자 세분화(detailed user segmentation), 입찰 최적화(bid optimization), 성향 예측(propensity prediction), 및 다른 많은 적합한 애플리케이션들과 같이, 해시 코드들을 이용할 수 있는 다양한 다른 애플리케이션들이 예상된다. 특정 실시예들에서, 애플리케이션 블록(455)은, 고객의 요구에 기초하여, 애플리케이션에 대한 변형들(variations)을 기술할 수 있다. 예를 들면, 애플리케이션 블록(455)은 유사 확장이, 해밍 거리와 같은, 다양한 거리 함수를 이용하여 계산될 수 있음을 지정할 수 있다. 특정 실시예들에서, 애플리케이션 시스템(450)은 또한 입력으로 시드 세그먼트(453)를 수신한다. 시드 세그먼트(453)는 애플리케이션 블록(455)에 따라 달라질 수 있다. 유사 모델링(lookalike modeling)에서, 시드 세그먼트(453)는, 타겟 세그먼트의 대표로 또는 이미 타겟이 된 것으로(예를 들면, 기초되는 새로운 사용자로부터 제외하기 위해) 이미 선택된(예를 들면, 고객에 의해), 사용자 세트를 나타낼 수 있다. 또한, 애플리케이션 시스템(450)의 출력도, 특정 실시예들에서, 애플리케이션 블록(455)에 따라 달라질 수 있다. 예를 들면, 유사 모델링에서, 상기 출력은, 타겟팅 컨텍스트 조건(460)에 기초하여 시드 세그먼트와 가장 유사한 사용자들을 포함하는 새로운 사용자 세그먼트인, 확장된 세그먼트(457)일 수 있다.
도 5는, 본 명세서에 개시된 아키텍처의 일 실시예에 따른, 이종 해시 코드들을 생성 및 이용하는 본 개시된 시스템의 동작 방법(500)을 도시한다. 상기 방법은, 컴퓨팅 시스템이 하나 이상의 클라이언트 디바이스들로부터 사용자 행동 데이터를 수신할 수 있는, 단계(510)에서 시작될 수 있다. 예를 들면, 상기 시스템은 애플리케이션과의 사용자 상호작용들의 기록들(records) 또는 사용자가 특정 비디오를 시청했다는 표시(indication)를 수신할 수 있다. 단계(515)에서, 상기 시스템은 또한 상기 사용자 행동 데이터와 연관된 컨텍스트 정보를 수신할 수 있다. 본 명세서에서 설명되는 바와 같이, 상기 컨텍스트 정보는, 상호작용의 시간, 상호작용의 위치, 상호작용에 이용된 디바이스, 사용자 및 사용자의 가정(household)과 연관된 인구통계(demographics) 등과 같은, 정보를 포함할 수 있다. 단계(520)에서, 상기 시스템은 상기 사용자 상호작용들의 벡터 임베딩(vector embedding)을 생성할 수 있다. 상기 임베딩 프로세스의 결과는 임베딩 공간에서 사용자의 행동의 벡터 표현일 수 있다. 단계(525)에서, 상기 시스템은 상기 사용자의 상호작용들의 상기 벡터 표현 및 상기 수신된 컨텍스트 정보로부터 사용자 표현(user representation)을 구성할(construct) 수 있다. 상기 사용자 표현은 인간에 의해 합리적으로 판독 가능한 포맷으로 정리된(organized) 사용자의 선호도들에 관한 정보를 포함할 수 있다. 상기 사용자 표현은 상기 사용자 표현이 해시 코드 생성 모델(예를 들면, 이종 해싱 모델(430))에 대한 입력으로 역할을 할 수 있도록 특화된 포맷(specialized format)을 포함할 수 있다. 특정 실시예들에서, 단계들(510-525)은 데이터를 전처리 하는 것 또는, 모든 사용자들에 대한 이종 해시 코드들을 생성하는, 추론 또는 모델링 스테이지(stage)에 대한 입력들을 구성하는 것에 관한 것이다. 단계(530)에서, 상기 시스템은 상기 전처리 단계가 성공했음을 확인할(confirm) 수 있다. 상기 결정이 상기 처리(processing)가 성공하지 못했다는 것인 경우, 상기 모델은 단계(510)로 돌아가서 다시 시도할 수 있다. 상기 처리는, 사용자에 대해 불충분한 양의 데이터가 수집되었다는 점, 데이터가 의미 있는 표현을 생성하기에는 너무 희소했을 수 있다는 점, 또는 다양한 다른 이유들을 비롯하여, 다양한 이유들로 인해 성공하지 못할 수 있다. 상기 결정이 상기 처리가 성공했다는 것인 경우, 상기 방법은 단계(535)로 진행될 수 있다.
단계(535)에서, 상기 시스템은, 상기 사용자 표현에 기초하여 이종 해시 코드를 생성하기 위해, 이종 해싱 모델(430)을 이용할 수 있다. 이 프로세스는, 본 명세서에서 더 설명되는 바와 같이, 이종 해싱 모델(430)이 이종 해시 코드들을 생성하도록 트레이닝 된 기계 학습 모델일 수 있기 때문에, 모델 추론(model inference)으로 다양하게 지칭될 수 있다. 상기 생성된 해시 코드들은, 행동 및 컨텍스트에 있어서 사용자들의 유사도를 계산하는 데 필요한, 사용자 활동 데이터에 관한 정보 및 컨텍스트 정보를 보존하도록 구성될 수 있다. 특정 실시예들에서, 상기 생성된 해시 코드들은 행동들 및 컨텍스트들의 정확한(exact) 히스토리를 보존하지 않을 수 있다. 그렇게 하면, 상기 해시 코드들은 이들이 인코딩하는 원본 데이터보다 훨씬 더 작아지며 이에 따라 비교하기에 더 빠를 수 있다. 단계(440)에서, 상기 시스템은, 상기 해시 코드가 성공적으로 생성되었음을 확인하기 위해, 상기 생성된 해시 코드를 평가할(evaluate) 수 있다. 단계(440)는 상기 해시 코드가 포맷화(formatting), 데이터의 정리(organization), 오류 검사(error checking), 및 기타 관련 요건들과 관련된 규칙들을 준수함을 확인하는(confirming) 단계를 포함할 수 있다. 이러한 요건들은, 이종 해싱 모델(430)이 해시 코드들을 생성하는, 상기 시스템 또는 상기 애플리케이션 시스템에 의해 미리 지정될 수 있다. 단계들(535 및 540)은, 함께, 상기 사용자 데이터 및 컨텍스트 정보에 대한 상기 해시 코드들을 생성하는 것을 담당할 수 있다.
특정 실시예들에서, 단계들(545-575)은 상기 이종 해시 코드들을 이용하는 애플리케이션 시스템(예를 들면, 애플리케이션 시스템(450))에 의해 부분적으로 또는 전부 수행될 수 있다. 단계(545)에서, 애플리케이션 시스템(450)은 사용자들의 시드 세그먼트를 수신할 수 있다. 상기 사용자들의 시드 세그먼트는 애플리케이션 시스템(450)에 의해 또는, 사용자가 식별하고자 하는 사용자들의 확장된 그룹의 대표하는, 그것의 사용자에 의해 선택된 사용자들의 집합일 수 있다. 특정 실시예들에서, 상기 시드 세그먼트는 이미 광고 타겟으로 지목된 사용자들 또는 유사 확장에 대해 성공적인 매칭으로 식별된 사용자들을 포함할 수 있다. 단계(550)에서, 애플리케이션 시스템(450)은 애플리케이션 시스템(450)의 상기 사용자가 타겟팅하고자 하는 컨텍스트 조건(460)을 수신할 수 있다. 단계(555)에서, 애플리케이션 시스템(450)은, 수신된 시드 세그먼트(453) 및 컨텍스트 조건(460)에 기초하여, 이종 해시 코드 데이터베이스(440)로부터 시드 해시 코드들을 획득할 수 있다. 본 명세서에서 설명되는 바와 같이, 상기 이종 해시 코드들은 애플리케이션 시스템들(450)이 컨텍스트 조건(460)에 기초하여 오직 가장 관련 있는 해시 코드들만을 검색할 수 있도록 하는 방식으로 저장되며, 애플리케이션 시스템(450)은, 시드 세그먼트(453)가 동일하더라도, 다양한 컨텍스트 조건들(460)에 대해 상이한 이종 해시 코드들을 검색할 수 있다. 따라서, 정확한(correct) 이종 해시 코드들의 검색은 본 설명된 기술의 기술적 이점인 해시 코드 비교 속도 향상을 구현하는 주요 구성요소이다.
단계들(560 및 565)에서, 애플리케이션 시스템(450)은 상기 이종 해시 코드들이 검색된 애플리케이션을 수행할 수 있다. 예를 들면, 애플리케이션 시스템(450)은 유사 확장을 수행할 수 있다. 단계(560)에서, 애플리케이션 시스템(450)은, 이종 해시 코드 데이터베이스(440)로부터 검색된 시드 이종 해시 코드들을 검색하기 위해, 시드 세그먼트(453)에 없는 다양한 사용자들에 대한 해시 코드들을 비교할 수 있다. 상기 비교는, 특정 실시예들에서, 임베딩 공간에서 상기 이종 해시 코드들 간의 거리를 계산하는 단계를 포함할 수 있다. 상기 이종 해시 코드들은, 근본적인(underlying) 사용자 활동 데이터가 유사한 경우 유사한 이종 해시 코드들을 생성하고 근본적인 사용자 활동 데이터가 비유사한 경우 비유사한 이종 해시 코드들을 생성하도록 트레이닝 된, 이종 해싱 모델(430)에 의해 생성되었을 수 있다. 따라서, 2개의 이종 해시 코드들 간의 거리는 근본적인 사용자 활동 데이터 간의 차이를 대략적으로 반영한다. 단계(565)에서, 애플리케이션 시스템(450)은 시드 세그먼트(453) 내 사용자들과 가장 유사한 사용자들을 검색할 수 있다. 가장 유사한 사용자는, 상응하는 이종 해시 코드가 임베딩 공간에서 상기 시드 이종 해시 코드들과 가장 근접한, 사용자일 수 있다. 특정 실시예들에서, 애플리케이션 시스템(450)은 임계 거리(threshold distance) 내의 모든 사용자들을 식별할 수 있다. 특정 실시예들에서, 애플리케이션 시스템(450)은, 임계 사용자수(threshold number of users) (예를 들면, 50명의 최근접 사용자들)를 식별할 수 있다.
특정 실시예들에서, 애플리케이션 시스템(450)은 상기 검색된 사용자들에 관한 신규성 결정(novelty determination)을 하도록 구성될 수 있다. 예를 들면, 단계(570)에서, 애플리케이션 시스템(450)은, 상기 검색된 세그먼트가 충분한 수의 사용자들을 가지고 있는지 여부 또는 상기 검색된 사용자 세그먼트(retrieved segment of users)가 임계 유사도를 만족하는지 여부를 결정하기 위해, 상기 검색된 사용자 세그먼트를 상기 시드 사용자 세그먼트(seed segment of users)와 비교할 수 있다. 애플리케이션 시스템(450)은 상기 검색된 사용자 세그먼트가 상기 시드 사용자 세그먼트와 너무 높은 중복도(degree of overlap)를 가진다고 결정할 수 있고, 애플리케이션 시스템(450)이 상기 시드 사용자 세그먼트와 비교할 추가적인 이종 해시 코드들을 식별할 수 있는, 단계(555)로 진행할 수 있다. 애플리케이션 시스템(450)이 상기 검색된 사용자 세그먼트가 임계값을 만족한다고 결정하는 경우, 애플리케이션 시스템(450)은, 애플리케이션 시스템(450)이 사용자 세그먼트들의 컬렉션(예를 들면, 적절한 경우, 상기 시드 세그먼트를 포함하거나 또는 포함하지 않음)을 집계하고 애플리케이션 시스템(450)의 상기 사용자에 대한 반환(returen)을 위해 확장된 사용자 세그먼트를 준비하는, 단계(575)로 진행할 수 있다.
특정 실시예들에서, 사용자들을 비교하는 프로세스는 가중치 행렬에 의존적일 수 있다. 본 명세서에서 설명되는 바와 같이, 이종 해시 코드들을 생성하는 프로세스는, 특정 컨텍스트 정보에 대해 실질적으로 유사한 해시 값들을 갖고 다른 컨텍스트 정보에 대해 실질적으로 비유사한 해시 값들을 갖는, 해시 코드들을 결과로서 생성할 수 있다. 상기 해시 값들을 비교하는 시스템 또는 애플리케이션 시스템은, 예를 들면, 유사한 사용자 세그먼트들을 식별함에 있어 중요한 해시 코드의 섹션들(예를 들면, 특정 컨텍스트 정보)을 식별하는 가중 행렬(weighting matrix)에 따라, 상기 해시 코드 비교의 특정 부분들에 가중치를 부여하도록 구성될 수 있다. 가중 행렬은 또한 상기 비교의 속도를 향상시키는 방법으로서 상기 이종 해시 코드들을 생성하는 경우에도 이용될 수 있다. 상기 가중 행렬에 저장된 가중치들은 기계-학습되거나 또는, 상기 시스템 또는 애플리케이션 시스템의 운용자가 이용 가능한 기초되는 지식(knowledge)에 따른, 휴리스틱 값들(heuristic values)에 기초할 수 있다.
도 7은 이종 해싱 모델의 예시적인 아키텍처(700)를 도시한다. 입력 계층(710)은, 일반 행동 데이터(711)(예를 들면, 사용자 행동 데이터 데이터베이스(410)로부터 검색됨) 및 다양한 컨텍스트 정보(713a-713c)(예를 들면, 컨텍스트 정보 데이터베이스(420))로부터 검색됨)와 같은, 전처리된 데이터를 포함한다. 본 예에서, 상기 전처리된 데이터는 단지 예시를 위해 단일 사용자에 대해서만 고려될 수 있다. 동일한 아키텍처가 복수의 사용자들에 대한 사용자 활동 데이터를 병렬적으로 처리하는 데 이용될 수 있다. 상기 데이터는 실질적으로 동시에 상기 아키텍처 내 다양한 구조들로 전달될 수 있다. 예를 들면, 일반 행동 데이터(711)는 일반 행동 데이터(711)를 위해 특별히 설정된 트레이닝가능 게이트(725a)로 전달될 수 있다. 트레이닝가능 게이트(725a)는 상기 아키텍처의 트레이닝가능 게이트 계층(720)을 구성하는 오직 하나의 구성요소일 수 있다. 트레이닝가능 게이트 계층(trainable gate layer)(720)은, 각각이 입력 스트림(input stream)에 상응하는, 복수의 다른 트레이닝가능 게이트들(725b-725d)을 포함하는 것으로(예를 들면, 각 유형의 컨텍스트 정보(713a-713c)에 대해 하나씩) 간주될 수 있다. 일반 행동 데이터(711)는 또한 다른 다양한 트레이닝가능 게이트들(725b-725d)에도 전달될 수 있다. 이하에서 더 설명되는 바와 같이, 각 게이트(725a-725d)는, 데이터의 내부 관계, 즉, 데이터에서 수집된 각 컨텍스트가 상기 사용자 활동 데이터 및 기타 컨텍스트 데이터에 미치는 효과를 인식하고 시행하는 방법으로서, 각 유형의 입력으로부터 수신된 데이터일 수 있다. 일반 행동 데이터(711)는 또한 상기 네트워크 아키텍처의 집계 계층(730)의 집계 블록(735a)으로 전달될 수 있다. 집계 계층(730)은 또한, 각각이 입력 스트림에 상응하는, 복수의 다른 집계 블록들(735b-735d)을 포함할 수 있다(예를 들면, 각 유형의 컨텍스트 정보(713a-713c)에 대해 하나씩). 일반 행동 데이터(711)는 또한 상기 네트워크 아키텍처의 네트워크 계층(740)의 카테고리-인식 어텐션(category-aware attention: CAA) 블록(745a)으로 전달될 수 있다. 네트워크 계층(740)은 또한, 각각이 입력 스트림에 상응하는, 복수의 다른 CAA 블록들(745b-745d)을 포함할 수 있다(예를 들면, 각 유형의 컨텍스트 정보(713a-713c)에 대해 하나씩). 모델 아키텍처(700)를 통과하는 데이터의 동일한 배열은 컨텍스트 정보 데이터 유형들(713a-713c) 각각에 대해 이용될 수 있다. 예를 들면, 컨텍스트 정보 1 데이터(713a)는 각각의 트레이닝가능 게이트(725a-725d), 컨텍스트 정보 1 집계 블록(735b), 및 CAA 블록(745b)으로 전달될 수 있다.
특정 실시예들에서, 트레이닝가능 게이트 계층(720)의 각 게이트는 모든 행동 및 컨텍스트 정보를 고려하고, 이에 따라 이들 중에서 선택한다. 게이트들(725a-725d)은, 학습된 가중치들이 결국에는 해시 코드 구성요소들에 보존되는 데이터에 반영될 것이므로, 상기 데이터의 값들에 상기 학습된 가중치들을 적용함으로써, 상기 데이터 중에서 선택한다. 상기 가중치들은 값들의 역전파(back propagation) 또는 기타 적합한 신경망 트레이닝 기법들을 통해 학습될 수 있다. 상기 트레이닝의 목표는 상기 게이트들로 하여금 행동 데이터(711) 값들에 대해 및 상기 트레이닝가능 게이트가 연관되는 특정 컨텍스트 정보 데이터에 대해 큰 영향을 미치는 컨텍스트 데이터를 강조하도록 하는 것이다. 예를 들면, 게이트가, 사용되는 디바이스와 관련된, 컨텍스트 정보에 대한 가중치 값들인 경우, 상기 게이트는 위치의 값들을 강조하고(가정용 텔레비전 디바이스는 가정 위치에서의 상호작용과 상관관계가 높을 가능성이 있으므로) 연령 인구통계 정보의 값들을 덜 강조할 수 있다(가정용 텔레비전 디바이스는 연령과 상관관계가 높지 않을 수 있으므로).
단일한 트레이닝가능 게이트(800)(예를 들면, 게이트들(725a-725d))의 상세도가 도 8에 도시되어 있다. 트레이닝가능 게이트(800)는 복수의 데이터 소스들을 입력(810a-810c)으로서 수신하고, 각각의 입력(810a-810c)에 가중치(815a-815c)를 적용하며, 가중된 값들을 단일한 출력 값(820)으로 결합한다. 출력 값(820)은 입력들(810a-810c)의 가중합(weighted sum)일 수 있다. 트레이닝가능 게이트(800)에 의해 적용되는 상기 가중치들은 확률적 경사 하강법(stochastic gradient descent)에 의해 결정된다. 개념적으로, 상기 가중치들의 값은, 특정 실시예들에서, 상기 가중치들이 적용되는 데이터의 다양성의 양에 기초하여 학습될 수 있다. 예를 들면, 시간 컨텍스트 정보에 대한 값들은 크게 변하는 반면, 위치 컨텍스트 정보의 값들은 크게 변하지 않는 경우, 게이트(800)는 시간 값에 더 큰 가중치를 부여할 수 있다. 상기 가중치들의 값들은 상기 시스템 전체에 대해 학습되고 전역 가중치 행렬(global weight matrix)에 저장될 수 있다. 특정 실시예들에서, 상기 가중치들은 독립적인 컨텍스트들에 대해 학습될 수 있다(예를 들면, 시간 컨텍스트는 위치 컨텍스트와 상이한 가중치 값들을 가질 수 있다). 상기 가중치들은 임베딩 공간에서 컨텍스트 정보의 표현에 영향을 주기 위해 이용된다.
집계 계층(예를 들면, 집계 블록들(735a-735d))의 단일한 블록(900)의 상세도가 도 9에 도시되어 있다. 특정 실시예들에서, 집계 블록(900)은 복수의 입력들(910a 및 910b)을 수신하고 이들을 함께 합하여 집계 블록(920)의 출력(920)을 생성한다. 특정 실시예들에서, 출력(920)은, 학습된 가중치들을 이용한, 입력들(910a 및 910b)의 가중합의 결과일 수 있다. 트레이닝가능 게이트 계층(720) 및 집계 계층(730)의 출력은 네트워크 계층(740)에 대한 입력을 구성한다.
도 10은 도 7에도 도시된 이종 해싱 모델의 예시적인 아키텍처(700)의 다른 배치를 도시한다. 도 10은 네트워크 계층(740)의 요소들을 확장하여 네트워크 계층(740)의 2개의 서브-계층들: 어텐션 계층(1000) 및 임베딩 계층(1010)을 도시한다. 입력 계층(710)으로부터의 데이터는 컨텍스트 정보와 관련하여 시퀀스 데이터(예를 들면, user_id, item_id)로서 수신된다(도 7에 도시된 바와 같음). 집계 계층(730)은 도 7에 도시된 게이트 계층(720)으로부터의 출력이다. 상기 집계 계층은, 상기 가중치 시스템으로 인해, 일반 행동 데이터(711) 및 컨텍스트 정보(713a-713c)의 내부-관계 정보를 유지함을 유의하라. 상기 내부-관계 정보는 일 유형의 컨텍스트 정보가 다른 유형의 컨텍스트 정보에 미치는 측정된 효과(measured effect)를 기록한다. 어텐션 계층(1000)의 블록들(1005a-1005d)은 임베딩 계층(1010)의 블록들(1015a-1015h) 및 집계 계층(730)으로부터 입력을 수신할 수 있다. 임베딩 계층(1010)은 임베딩 공간에서 일반 행동 데이터(111) 및 컨텍스트 정보(713a-713c)의 출력의 표현을 제시한다. 어텐션 계층(1000)의 상기 블록들은 임베딩 계층(1010) 및 집계 계층(730)에서 각 데이터 아이템의 중요도를 표시한다. 어텐션 계층 블록들(1005a-1005d)의 출력은 일반 행동 해시 코드 부분(750) 및 컨텍스트 정보 해시 코드 부분(755a-755c)이다. 각각의 어텐션 계층 블록은 상기 각각의 해시 코드 부분을 생성하도록 트레이닝된다. 명확성을 위해, 일반 행동 데이터(1005a)를 위한 어텐션 계층은 일반 행동 해시 코드(750) 등을 생성하도록 트레이닝된다.
도 11은 전처리 단계 및 네트워크 계층들(740)의 예를 도시한다. 간단히 하기 위해, 도 11은 단지 컨텍스트 정보로 아이템 히스토리를 전처리하는 방법의 일 예를 도시하며, 다른 방법들이 본 개시에 의해 고려된다. 상기 전처리 단계의 목적은 어텐션 계층(1000)에 의한 임베딩 및 처리를 위한 데이터를 준비하는 것이다. 도 11은 사용자가 상호작용한 다양한 콘텐트 아이템들(1110a-1110f)뿐 아니라 해당 아이템에 대한 카테고리(1120a-1120f)를 보여준다. 카테고리(1120a-1120f)는 각각의 아이템 상호작용과 함께 기록되는 컨텍스트 정보 유형의 예일 수 있다. 아이템들(1110a-1110f)은, 다른 아이템의 좌측에 나타나는 아이템이 먼저 상호작용한 것이 되도록, 타임라인(1100)을 따라 정리된다. 예를 들면, 사용자가 아이템(1110d)과 상호작용하기 전에 상기 사용자는 아이템(1110b)과 상호작용하였다. 또한, 도 11은 두 부분으로 반분되어 있다. 상부 반은 상기 전처리 단계가 발생하기 전에 아이템들(1110a-1110f)이 정리된 것을 보여준다(예를 들면, 상기 아이템들은 사용자 행동 데이터 데이터베이스(410)에서 정리될 수 있으므로). 하부 반은 상기 전처리 단계가 발생한 후에 아이템들(1110a-1110f)이 정리된 것을 보여준다. 상기 시스템은 먼저 아이템들(1110a-1110f) 및 연관된 컨텍스트 정보(1120a-1120f)를 시간 시퀀스 순서로 정렬한다. 다음으로, 아이템들(1110a-1110f)은 이들의 컨텍스트 정보에 따라 그룹화된다. 예를 들면, 아이템들(1110a-1110f)은 이들의 공표된(declared) 카테고리(1120a-1120f)에 따라 그룹화된다. 특정 컨텍스트와 연관된 각 아이템은 (1130a-1130b)로 표현되며, 여기서 G는 그룹이고, i는 그룹의 인덱스이며, j는 i번째 그룹에서 아이템의 인덱스이다. U는 사용자들을 나타낸다.
이 공식화된 그룹화를 통해, 어텐션 계층(1000)의 연산들(operations)이 공식적으로 기술될 수 있다. 앞서 논의된 바와 같이, 어텐션 계층(1000)은 주어진 컨텍스트 정보 클래스에서 발견된 모든 아이템들 간의 내부-관계를 포착한다. 컨텍스트(예를 들면, 카테고리)별로 그룹화되는 임베딩 계층(1000)으로부터, 각각의 아이템 임베딩(1015a-1015h)에서 내부-관계들이 포착된다. 특정 실시예들에서, 일부 사용자-아이템 상호작용들은 부풀려지거나(inflated) 또는 축소될(deflated) 수 있다(예를 들면, 사용자-아이템 상호작용의 영향에 부가된 가중치는 조정될 수 있다). 어텐션 계층(1000)의 출력은 주어진 선호도 컨텍스트 정보(preference context information)에서 다른 아이템들의 영향을 반영하는 사용자의 순차적 행동의 표현으로 취급된다. 상술된 바와 같이, 어텐션 계층(1000)은 다음과 같이 공식화될 수 있다: H_i는 각각의 사용자의 컨텍스트 정보 i에서 그룹화된 아이템들로부터 임베딩 출력들의 시퀀스로 구성된 행렬이되, G 및 U는 각각 컨텍스트 및 사용자 그룹을 나타낸다고 하자(식 1). 비선형 활성화 함수가 H_i에 적용된다(식 2). T_i는 i번째 컨텍스트에서 시퀀스화된(sequenced) 아이템의 수를 나타낸다(식 3). 상기 시퀀스의 표현 r_i는 이러한 출력 벡터들의 가중합에 의해 형성된다(식 4). 식 4를 이용하여 컨텍스트별 어텐션이 획득된 후, r_i는 사용자 임베딩들을 검색하기 위해 함께 합산된다(식 5). 특정 실시예들에서, 식 5의 연산은 부분적으로 다른 계층들로 대체될 수 있다. 위에서 제공된, 알고리즘 1은 상기 어텐션 연산에 대한 의사-코드(pseudo-code)를 예시한다.
도 12a 내지 도 13b는 도 7 내지 도 10에 도시된 아키텍처(700)의 각 계층에 의해 수행되는 연산들(operations)의 상세한 예를 도시한다. 상기 예는 "u1"으로 표시된 사용자에 대해 포착된 사용자 행동 데이터에 기초하여 이종 해시 코드를 준비하는 단계를 포함한다. 도 12a 및 도 12b는 입력 계층(1220) 및 임베딩 계층들(1230a-1230b)의 입력 및 출력을 도시한다. 테이블(1210)은 다양한 사용자 디바이스들로부터 수신되는 사용자 행동 데이터를 나타내며, 상기 사용자 행동 데이터는 u1의 활동과 관련된 것이다. 상기 사용자 행동 데이터는, 상기 정보가 이종 해싱 모델(430)에 의해 처리되도록 검색될 때까지, 사용자 행동 데이터 데이터베이스(410)에 저장될 수 있다. 상기 사용자 행동 데이터는, 상기 테이블에서 먼저 등장하는 사용자 행동 데이터가 특정 아이템들과의 보다 앞선 상호작용들을 포함하도록, 연대순으로 정리되어(organized) 있다. 상기 테이블은 따라서 다음과 같이 정리된다: 상기 표는 사용자의 식별자(identifier)를 기술한다(본 사례에서, 모든 상호작용들은 동일한 사용자 u1에 의한 것이지만, 실제로는, 많은 사용자들의 활동이 기록될 수 있다); 상기 테이블은 사용자가 상호작용한 아이템에 대한 식별자(예를 들면, i1, i2 등)를 기록한다; 다음으로 상기 테이블은 상호작용과 연관된 다양한 컨텍스트들을 기록한다. 이용 가능한 특정 컨텍스트들은, 예를 들면, 상호작용의 유형, 상호작용되는 아이템의 유형, 상호작용을 기록하는 디바이스 등에 의존할 수 있다. 테이블(1210)에서, 기록된 상호작용들은 컨텍스트 1(상호작용의 위치), 컨텍스트 2(상호작용의 대략적 타이밍), 컨텍스트 3(상호작용을 기록하는 애플리케이션), 컨텍스트 4(상호작용을 기록하는 디바이스의 운영 체제(operating system)), 컨텍스트 5(상호작용을 기록하는 디바이스에 대한 모델 식별자(model identifier)), 및 컨텍스트 6(추가적 컨텍스트 정보에 대한 플레이스홀더(placeholder))를 포함한다.
입력 계층(1220)(예를 들면, 입력 계층(710))을 통해, 상기 데이터는, 처리될 컨텍스트에 기초하여, 그룹화된다. 특정 실시예들에서, 상기 행동 데이터(예를 들면, 상호작용한 아이템) 또는 이에 대한 포인터(pointer)는 컨텍스트 데이터 아이템들로 처리될 수 있다. 상기 그룹화는 도 10과 관련하여 상술된 기법들과 실질적으로 부합되도록 수행될 수 있다. 예를 들면, 특정 고객 애플리케이션에 대한 이종 해시 코드들을 처리하는 데 모든 컨텍스트들이 필요한 것은 아닌 경우, 모든 컨텍스트들이 그룹화되는 것은 아닐 수 있다. 본 예에서, 테이블(1210) 내의 아이템들은 컨텍스트 1(1225a), 컨텍스트 2(1225b), 및 컨텍스트 3(1225c)에 대해 그룹화되어 있다.
다음으로, 임베딩 계층(1230a)(예를 들면, 임베딩 계층(1010))을 통해, 각각의 특정 컨텍스트 그룹 내 각 아이템에 대해 임베딩들이 생성된다. 예를 들면, 도 12a에 도시된 바와 같이, 임베딩(1235-1a-1235-1f)은 컨텍스트 1(1225a) 내의 각 아이템에 대해 생성된다. 도 12b에 도시된 바와 같이, 임베딩(1235-2a-1235-2f)은 컨텍스트 2(1225c) 내의 각 아이템에 대해 생성된다. 상기 임베딩들은, 특정 실시예들에서, 주어진 차원(dimensionality)의 실제 수치 벡터들(real-valued vectors)을 포함한다. 상기 차원은 상기 이종 해싱 모델에 의해 또는 상기 해시 코드들을 이용할 애플리케이션 시스템에 의해 지정될 수 있다. 본 예에서, 임베딩들은 컨텍스트 아이템들 그 자체의 값들에 대해서만 생성되며, 따라서 동일한 위치에서 발생한 모든 아이템 상호작용들에 대해서는 유사한 임베딩이 생성될 것이다. 따라서, "거실(Living room)" 컨텍스트 값과 연관된 4개의 상호작용들에 대해 생성된 4개의 동일한 임베딩들(1235-1a, 1235-1c, 1235-1d, 및 1235-1f), 및 "가족실(Family room)" 컨텍스트 값(1235-1b) 및 "침실(Bedroom)" 컨텍스트 값(1235-1e)과 연관된 나머지 2개의 상호작용들에 대해 생성된 2개의 고유한 임베딩들이 있다. 상기 임베딩들은 유사한 컨텍스트 값들이 유사한 컨텍스트 임베딩들을 갖게 되도록 생성된다(예를 들면, 임베딩 공간에서 서로 가까운 임베딩들을 갖는 유사한 컨텍스트 값들). 따라서, 컨텍스트 1(1225a) 예에서, 휴리스틱하게 말하자면, 거실은 침실보다 가족실과 더 많은 유사점들을 가지기 때문에, "거실" 아이템들에 대한 임베딩들(1235-1a, 1235-1c, 1235-1d, 및 1235-1f)은 "침실" 아이템들(1235-1e)보다 "가족실" 아이템들(1235-1b)에 대한 임베딩들과 더 가까이 위치할 것이다. 도 12b에 도시된 예시적 임베딩들로 돌아가면, "토요일 저녁" 컨텍트스 아이템에 대해 생성된 고유한 임베딩(1235-2b), 각각의 "일요일 아침" 컨텍스트 아이템(1235-2a 및 1235-2f)에 대해 생성된 공통 임베딩(common embedding), "일요일 저녁" 컨텍스트 아이템에 대해 생성된 고유한 임베딩(1235-2e), 및 각각의 "월요일 저녁" 컨텍스트 아이템(1235-2c 및 1235-2d)에 대해 생성된 공통 임베딩이 있다. 상기 임베딩들은 유사한 컨텍스트 값들은 유사한 컨텍스트 임베딩들을 갖게 되도록 생성된다. 따라서, 컨텍스트 2(1225b) 예에서, 휴리스틱하게 말하자면, 토요일 저녁은 월요일 저녁보다 일요일 저녁과 더 많은 유사점들을 가지기 때문에, "토요일 저녁" 아이템들(1235-2b)에 대한 임베딩들은 "월요일 저녁" 아이템들(1235-2c 및 1235-2d)보다 "일요일 저녁" 아이템들(1235-2e)에 대한 임베딩들과 더 가까이 위치할 것이다. 상기 임베딩들은 학습가능 트레이닝 프로세스(learnable training process)로부터 생성되고, 예를 들면, 딥 러닝 프레임워크(deep learning framework)로부터 제공될 수 있다.
도 13a 및 도 13b는 임베딩 계층(1230), 집계 계층(예를 들면, 집계 계층(730)), 어텐션 계층(1300), 완전 연결 계층(fully connected layer)(1320), 및 부호 함수(1330)의 입력 및 출력을 도시한다. 도 13a 및 도 13b는 도 12a 및 도 12b에 도시된 예를 계속한다. 각 컨텍스트에 대하여, 상기 테이블에서 매번 생성된 임베딩들은 상기 집계 계층(예를 들면, 730)으로부터의 임베딩과 함께 상기 어텐션 계층으로 전달된다. 집계 계층(730)으로부터의 값은, 가중합을 이용하여 결합된, 컨텍스트 정보 임베딩의 값 및 상응하는 트레이닝가능 게이트로부터의 값의 집계(aggregation)를 포함한다. 예를 들면, 컨텍스트 1에 대하여, 임베딩들(1235-1a-1235-1f)은 어텐션 계층(1300)으로 전달된다. 상기 임베딩들의 값들은 또한, 어텐션 계층(1300)에서, 상기 값의 특정한 결정적 영향(determinative impact)에 상응하는 가중치들(1303-1a-1303-1c)과 연관된다. 예를 들면, 상기 거실 컨텍스트 아이템에 대해 생성된 임베딩들(1235-1a, 1235-1c, 1235-1d, 및 1235-1f)은 모두, 일부 실시예들에서, 가중치 W1(1303-1a)과 연관될 수 있다. 상기 가족실 컨텍스트 아이템에 대해 생성된 임베딩(1235-1b)은 가중치 W2(1303-1b)와 연관될 수 있다. 침실 컨텍스트 아이템에 대해 생성된 임베딩(1235-1c)은 가중치 W3(1303-1c)과 연관될 수 있다. 집계 임베딩(1305a)도 또한 가중치 W4(1307a)와 함께 어텐션 계층(1300)으로 전달될 수 있다. 특정 실시예들에서, 가중치들(1303-1a-1303-1c 및 1307a)은 어텐션 계층(1300)에 의해 생성될 수 있다. 상기 가중치들은 가중치 행렬들로서 기록될 수 있다. 상기 가중치들은, 경사 하강법(gradient descent) 프로세스와 같은, 기계 학습 모델로부터 생성된 학습된 가중치들(learned weights)일 수 있다. 일단 상기 가중치들이 안정화되면, 어텐션 계층(1300)의 출력은, 복수의 블록들 또는 스테이지들(1323 및 1325)로 분할될 수 있는, 완전 연결 계층(1320)으로 전달된다. 완전 연결 계층(1320)의 출력은 부호 함수(1330)로 전달될 수 있다. 부호 함수(1330)는 완전 연결 계층(1320)의 상기 출력의 구성요소들을 평가하고, 예를 들면, 각 구성요소가 어떤 임계 값을 만족하는지 또는 만족하지 않는지를 결정하며 컨텍스트(1340a)에 대한 해시 코드 내 값을 결정할 수 있다. 상기 임계값을 만족하는 값들에 대하여, 부호 함수(1330)는 해시 코드(1340a) 내 값이 1임을 지정할 수 있고, 상기 임계값을 만족하지 못한 값들에 대하여, 부호 함수(1330)는 해시 코드(1340a) 내 값이 0임을 지정할 수 있다. 결과는 컨텍스트 1(1340a)에 대한 해시 코드이다.
컨텍스트 2의 예에 대하여, 임베딩들(1235-2a-1235-2f)은 어텐션 계층(1300)으로 전달된다. 상기 임베딩들의 값들은 또한, 어텐션 계층(1300)에서, 상기 값의 특정한 결정적 영향(determinative impact)에 상응하는 가중치들(1303-2a-1303-2d)과 연관된다. 예를 들면, 상기 일요일 아침 컨텍스트 아이템에 대해 생성된 임베딩들(1235-2a 및 1235-2e)은 모두, 일부 실시예들에서, 가중치 W1(1303-2a)과 연관될 수 있다. 상기 토요일 저녁 컨텍스트 아이템에 대해 생성된 임베딩(1235-2b)은 가중치 W3(1303-2c)과 연관될 수 있다. 상기 월요일 저녁 아이템들에 대해 생성된 임베딩들(1235-2c 및 1235-2f)은 가중치 W4(1303-2d)와 연관될 수 있다. 상기 일요일 저녁 아이템에 대해 생성된 임베딩(1235-2d)은 가중치 W2(1303-2b)와 연관될 수 있다. 집계 임베딩(1305b)도 또한 가중치 W5(1307b)와 함께 어텐션 계층(1300)으로 전달될 수 있다. 상기 어텐션 계층은 위에서 제공된 아키텍처 및 공식 설명(formal description)(예를 들면, 식 (4) 및 식 (5) 및 도 10)에 따라 출력을 생성할 수 있다. 어텐션 계층(1300)의 출력은, 복수의 블록들 또는 스테이지들(1323 및 1325)로 분할될 수 있는, 완전 연결 계층(1320)으로 전달된다. 완전 연결 계층(1320)의 출력은 부호 함수(1330)로 전달될 수 있다. 부호 함수(1330)는 완전 연결 계층(1320)의 상기 출력의 구성요소들을 평가하고, 예를 들면, 각 구성요소가 어떤 임계 값을 만족하는지 또는 만족하지 않는지를 결정하며 컨텍스트(1340b)에 대한 해시 코드 내 값을 결정할 수 있다. 부호 함수(1330)의 출력은 컨텍스트 1(1340a)에 대한 해시 코드이다. 특정 실시예들에서, 완전 연결 계층(1320) 및 부호 함수(1330)는 다양한 컨텍스트 간에 실질적으로 유사할 수 있거나 또는 컨텍스트의 유형 및 해당 컨텍스트가 해시 코드의 유사도 예측 능력(similarity predicting capability)에 미치는 영향에 따라 달라질 수 있다.
해시 코드(1340a-1340b)는, 데이터 세트 내 각 사용자와 연관된, 각각의 컨텍스트, 또는 각각의 실질적 컨텍스트(substantial context)에 대해 생성된다. 도 14에 도시된 바와 같이, 상기 결과는 해시 코드 부분들(1410a-1410d)의 시퀀스이다. 해시 코드 부분들(1410a-1410d)의 수는 평가되는 컨텍스트의 수에 따라 자연스럽게 달라질 수 있다. 각각의 해시 코드 부분(1410a-1410d)은 사용자에 대한 이종 해시 코드의 일부를 형성한다. 모든 해시 코드들이 생성된 후, 이들은 전체(full) 이종 해시 코드(1400)를 생성하도록 결합된다(예를 들면, 연결(concatenation)을 통해). 이종 해시 코드(1400)의 도시된 부분들은 모두 동일한 길이를 갖지만, 각 컨텍스트에 대한 해시 코드들의 크기는 가변적일 수 있음이 예상된다. 이종 해시 코드(1400)는, 활동이 사용자 활동 데이터베이스에 저장되어 있는, 각 사용자에 대해 실질적으로 동일한 방식으로 생성될 수 있다.
이종 해시 코드의 각각의 컨텍스트 부분의 길이를 지정하는 구성 파일(configuration file)의 이용을 통해 해시 코드 크기들이 용이하게 가변적이 될 수 있다. 도 17은 해싱 시스템 및 애플리케이션의 아키텍처 표현(architectural representation)(1700)을 도시한다. 상기 시스템은 구성 파일(1710)의 이용을 포함할 수 있다. 도시된 바와 같이, 상기 구성 파일은, 최소한, 컨텍스트에 대한 지시자(예를 들면, 컨텍스트 1, 컨텍스트 2, ...) 및 각 컨텍스트와 연관된 이종 해시 코드(1400)의 비트 범위(bit range)를 포함한다. 상기 구성 파일은 또한 각 해시 코드(또는 해시 코드 부분)의 시작 비트 위치 및 길이를 지정할 수 있다. 상기 구성 파일은 상기 시스템의 다양한 구성요소들에 의해 지정되거나, 또는 사용자(애플리케이션 고객(customer)의 사용자 또는 관리자(administrator))에 의해 지정될 수 있다. 구성 파일(1710)은 시스템(1720)의 모델 트레이닝 모듈(model training module)로 전달되거나 또는 이에 의해 액세스 될 수 있다. 이러한 맥락에서, 모델 트레이닝 모듈(1720)은 이종 해시 코드를 생성하기 위한 모델의 트레이닝에 관여된 아키텍처의 임의의(any) 부분들을 포함할 수 있다. 모델 트레이닝 모듈(1720)은 구성 파일(1710)을 이용하여 모델(1730)로 하여금 구성 파일(1710)을 만족하는 이종 해시 코드들(예를 들면, 해시 코드 부분들)만을 생성하도록 할 수 있다. 예를 들면, 구성 파일(1710)의 요건들을 만족하지 않는 생성된 해시 코드들은 트레이닝 모듈(1720)에 의해 완전히 거부될(rejected) 수 있다. 모델 트레이닝 모듈(1720)은 이종 해싱 모델(1730)을 생성할 수 있다. 모델(1730)이 반드시 구성 파일(1710)을 직접 액세스할 수 있는 것은 아니지만, 모델(1730)은 그 트레이닝의 특성상 여전히 구성 파일(1710)을 준수할 수 있다. 또한, 상기 구성은 상기 아키텍처의 모델 추론 모듈(model inference module)(1740)에 의해 암시적으로 이용될 수 있다. 모델 추론 모듈(1740)은, 결국 이종 해시 코드 데이터베이스(440)에 저장되는 이종 해시 코드들(1400)의 생성을 담당하는, 상기 아키텍처의 부분들을 나타낸다. 구성 파일(1710)은 또한 상기 이종 해시 코드들에 의존하는 애플리케이션(455)에 의해 이용될(또는 지정될) 수 있다. 예를 들면, 애플리케이션(455)은, 애플리케이션(455)이 실행되는 경우(예를 들면, 유사 확장 애플리케이션이 해시 코드 유사점들을 검사하는(examine) 경우), 구성 파일(1710)을 이용하여 이종 해시 코드들(1400)의 어느 부분들이 해시 코드 데이터베이스(440)로부터 검색되는지 지정할 수 있다.
도 18은 이종 해싱 모델(1840)을 트레이닝하는 예시적 프레임워크(1800)를 도시한다. 프레임워크(1800)는 모델(1840)을 병렬적 또는 샴(Siamese) 방식으로 트레이닝하도록 설정되는데, 여기서 트레이닝 입력(training input)은 2명의 사용자들에 관한 활동 데이터 및 컨텍스트 정보를 포함하고, 트레이닝은 상기 사용자들이 유사 또는 비유사하다는 결정에 기초한 실측 정보(ground truth)에 대한 교차 엔트로피 및 손실 감소(cross entropy and loss reduction)의 함수로서 수행된다. 2명의 사용자들(1810a 및 1810b)에 관한 정보는 각각 입력 모듈(1820a 및 1820b)에 제공된다. 각 사용자(1810a 및 1810b)와 연관된 컨텍스트 정보도 또한 각각의 입력 모듈(1820a 및 1820b)에 제공된다. 입력 모듈들(1820a 및 1820b)은, 특정 실시예들에서, 일반적으로 이종 해싱 모델(1840)이 데이터를 수신하도록 준비하기 위해 상기 데이터의 전처리를 처리(handle)할 수 있다. 상기 전처리는 앞서 설명된 방법들과 유사할 수 있다. 특정 실시예들에서, 동일한 모델(1840)이 동시에 2명의 사용자들(1810a 및 1810b)에 대한 정보를 효과적으로 처리하도록, 상기 데이터는 2개의 파이프라인들로(pipelines) 모델(1840)에 제공될 수 있다. 먼저, 모델(1840)의 상응하는 네트워크 계층들(1843a 및 1843b)에 의해 입력이 수신된다. 상기 네트워크 계층들은 상기 아키텍처의 상술된 네트워크 계층들과 실질적으로 유사할 수 있다. 네트워크 계층들(1843a 및 1843b)의 출력은 이종 해싱 모델(1840)의 상응하는 이진 해싱 계층들(1845a 및 1845b)로 전달될 수 있다. 이진 해싱 계층들(1845a 및 1845b)은 이진 비교 데이터를 포함하는 해시 코드들을 생성할 수 있다. 이진 해싱 계층들(1845a 및 1845b)의 출력은, 모델(1840)에 의해 생성된 이진 해시들에 기초하여, 상기 사용자들이 유사하다고 또는 비유사하다고 결정될 것인지 평가하는, 비교기(comparator)(1850)에 제공될 수 있다. 비교기(1850)의 결과는 실측 정보 값과 비교될 수 있고, 이러한 최종 비교의 결과들은 모델(1840)을 개정하는(revise) 데 이용될 수 있다. 상기 개정들(revisions)의 특성(nature)은 1843a 및 1843b 및 이진 해싱 계층들(1845a 및 1845b)을 구성하는 데 이용되는 근본적(underlying) 기계 학습 프로세스에 기초할 수 있다. 상이한 심층 신경망들은, 설명된 CAA 네트워크 및 TAACNN과 같은, 네트워크 계층들(1843a 및 1845b)에 적용될 수 있다.
도 4b는, 특정 실시예들에 따른, 이종 해시 코드들을 생성 및 이용하는 시스템(400b)의 다른 예시적 아키텍처를 도시한다. 시스템(400b)은 병렬적으로 동작하는 복수의 이종 해시 코드 생성 및 저장 시스템들을 포함하며, 여기서 해싱 코드들은, 컨텍스트 해시 코드들이 생성되기 전에, 컨텍스트 정보의 유형에 기초하여 분리된다. 따라서, 상기 출력된 해시 코드들은, 이종 해시 코드를 구성하도록(construct) 여러 방식으로 결합될 수 있는, 컨텍스트 해시 코드들이다. 본 실시예의 한 가지 이점은, 오직 특정 컨텍스트 정보 유형들만 타겟팅하고자 하는 애플리케이션 고객들의 경우, 그들은 불필요한 컨텍스트 정보를 관리 또는 검색해야(retrieve) 한다는 것일 수 있다. 따라서, 시스템(400b)은, 특정 실시예들에서, 특정 고객들에 대해 더 효율적으로 동작할 수 있다.
시스템(400b)은 복수의 사용자 행동 데이터 데이터베이스들(410a-410b)을 포함한다. 사용자 행동 데이터베이스들(410a-410b)은, 사용자 디바이스들에 의해 추적되는, 다양한 애플리케이션들, 콘텐트 아이템들, 매체들(media), 웹사이트들, 및 기타 상호작용 가능한 요소들과 사용자들의 상호작용들에 관한 정보를 저장한다. 사용자 행동 데이터베이스들(410a-410b)은 그러한 상호작용들에 관한 메타데이터를 더 저장한다. 시스템(400b)은 복수의 컨텍스트 정보 데이터베이스들(420a-420b)을 포함한다. 컨텍스트 정보 데이터베이스들(420a-420b)은, 특정 사용자 아이템 상호작용에 영향을 미치는 매체들(media) 또는 다른 아이템들과 상호작용하기 위해 사용자들에 의해 이용되는, 다양한 디바이스들로부터 획득된 임의의(any) 추가적 데이터를 저장한다. 그러한 컨텍스트 정보는, 예로서 그리고 이에 제한되지 않고, 사용자의 인구통계적 분포(연령, 성별, 소득 등), 위치 정보, 시간 정보, 디바이스 정보, 및 기타 다양한 적합한 컨텍스트 정보를 포함할 수 있다. 상기 정보가 다양한 디바이스들로부터 수신되므로, 상기 시스템은, 컨텍스트 유형에 기초하여 사용자 행동 데이터 및 컨텍스트 정보를 분리하기 위한 모듈의 이용을 포함할 수 있다. 시스템(400b)은 복수의 이종 해싱 모델들(430a-430b)을 더 포함한다. 이종 해싱 모델들(430a-430b)은 본 명세서에서 설명되는 이종 해싱 모델(430)과 실질적으로 유사할 수 있다. 이종 해싱 모델들(430a-430b)은, 해싱 파이프라인이 할당된 특정 유형의 컨텍스트 정보에 기초하여, 이종 해시 코드들을 생성하도록 구체적으로 트레이닝 될 수 있다. 시스템(400c)은, 사용자들 간의 유사도를 보존하면서 사용자들의 선호도들의 상이한 레벨들 및 측면들을 포착하는, 생성된 해시 코드들을 저장하기 위해 복수의 이종 해시 코드 데이터베이스들(440a-440b)을 포함한다. 애플리케이션 시스템(450) 및 관련된 구성요소들은, 복수의 이종 해시 코드 데이터베이스들(440a-440b)로부터 정보를 검색하도록 구성된다는 추가 사항과 함께, 도 4a와 관련하여 상술 된 것과 실질적으로 유사할 수 있다.
도 15는 복수의 컨텍스트 정보-특정적 해싱 파이프라인들을 포함하는 시스템(400b)에 의해 생성될 수 있는 해싱 코드들을 도시한다. 도시된 예는 "u1"으로 표시된 사용자에 대해 포착된 사용자 행동 데이터에 기초하여 이종 해시 코드를 준비하는 단계를 포함한다. 테이블들(1500a-1500b)은 다양한 사용자 디바이스들로부터 수신되는 사용자 행동 데이터를 나타내며, 상기 사용자 행동 데이터는 u1의 활동에 관한 것이다. 상기 사용자 행동 데이터는, 상기 정보가 이종 해싱 모델(430a-430b)에 의해 처리되도록 검색될 때까지, 복수의 사용자 행동 데이터 데이터베이스들(410a-410b)에 저장될 수 있다. 상기 사용자 행동 데이터는, 테이블(1500a-1500b)에서 먼저 등장하는 사용자 행동 데이터가 특정 아이템들과의 보다 앞선 상호작용들을 포함하도록, 연대순으로 정리되어(organized) 있다. 상기 테이블들은 따라서 다음과 같이 정리된다: 상기 테이블은 사용자의 식별자(identifier)를 기술한다(이 경우, 모든 상호작용들은 동일한 사용자 u1에 의한 것이지만, 실제로는, 많은 사용자들의 활동이 기록될 수 있다); 상기 테이블은 사용자가 상호작용한 아이템에 대한 식별자(예를 들면, i1, i2 등)를 기록한다; 상기 테이블은 다음에 상호작용과 연관된 다양한 컨텍스트들을 기록한다. 이용 가능한 특정 컨텍스트들은, 예를 들면, 상호작용의 유형, 상호작용되는 아이템의 유형, 상호작용을 기록하는 디바이스 등에 의존할 수 있다. 테이블(1500a)에서, 기록된 상호작용들은 컨텍스트 1(상호작용의 위치), 컨텍스트 3(상호작용을 기록하는 애플리케이션), 컨텍스트 4(상호작용을 기록하는 디바이스의 운영 체제), 컨텍스트 5(상호작용을 기록하는 디바이스에 대한 모델 식별자), 및 컨텍스트 6(추가적 컨텍스트 정보에 대한 플레이스홀더)을 포함한다. 테이블(1500b)에서, 기록된 상호작용들은 컨텍스트 2(상호작용의 대략적 타이밍), 컨텍스트 3(상호작용을 기록하는 애플리케이션), 컨텍스트 4(상호작용을 기록하는 디바이스의 운영 체제), 컨텍스트 5(상호작용을 기록하는 디바이스에 대한 모델 식별자), 및 컨텍스트 6(추가적 컨텍스트 정보에 대한 플레이스홀더)을 포함한다. 2개의 테이블들(1500a 및 1500b)에 대하여, 컨텍스트들 3-6은, 그 정보가 2개의 컨텍스트들과 함께 기록 및 저장되어 이에 따라 이종 해싱 모델들(430a-430b)에 의해 각각 생성되는 해시 코드들에 영향을 미칠 수 있기 때문에, 일반 행동(General Behavior) 데이터로 지칭될 수 있다.
해시 코드들은 실질적으로 본 명세서에서 설명되는 기법들에 따라 생성될 수 있는데, 이 때 결과적인 이종 해시 코드들은 한 번에 오직 하나의 특정 컨텍스트에 의해서만 영향을 받도록 제한된다는 것에 유의한다. 생성된 해시 코드들(1510 및 1520)은 2개의 구성요소들: 해시 코드가 컨텍스트 유형의 값을 인코딩하는, 제1 구성요소; 및 해시 코드가 일반 행동 데이터에 기초하는, 제2 구성요소를 포함할 수 있다. 예를 들면, 해시 코드(1510)는, 위치 컨텍스트인, 컨텍스트 1(1505)에 기초하여 생성된다. 해시 코드(1510)는, 위치(1505)에 기초한, 제1 구성요소(1515) 및, 일반 행동 데이터(1509)에 기초한, 제2 구성요소(1519)를 포함한다. 해시 코드(1520)는, 시간 컨텍스트인, 컨텍스트 2(1507)에 기초하여 생성된다. 해시 코드(1520)는 시간(1507)에 기초한 제1 구성요소(1525), 및 일반 행동 데이터(1509)에 기초한 제2 구성요소(1529)를 포함한다. 일반 행동 데이터 해시 코드 부분들은 테이블들(1500a 및 1500b)에 나타낸 컨텍스트 정보에 의해 영향을 받으므로, 이들은, 동일한 일반 행동 데이터가 이용된다 하더라도, 종종 이들의 원시 값(raw value)이 상이할 것임을 유의하라. 해시 코드들(1510 및 1520)은 다양한 방식으로 결합되어 사용자에 대한 이종 해시 코드들을 형성할 수 있다. 각각의 완전한 해시 코드 부분이 함께 연결되어(concatenated), 제1 이종 해시 코드(1530a)가 정리된다. 컨텍스트-기반 부분들이 먼저 연결되고 일반 행동-기반 부분들이 두 번째로 연결되어, 제2 해시 코드(1530b)가 정리된다. 상기 이종 해시 코드들의 배열은 구성 파일에서 지정될 수 있다.
도 4c는, 특정 실시예들에 따른, 이종 해시 코드들을 생성 및 이용하는 시스템(400c)의 다른 예시적 아키텍처를 도시한다. 시스템(400c)은 사용자 행동 데이터 데이터베이스(410)를 포함한다. 사용자 행동 데이터베이스(410)는, 사용자 디바이스들에 의해 추적되는, 다양한 애플리케이션들, 콘텐트 아이템들, 매체들(media), 웹사이트들, 및 기타 상호작용 가능한 요소들과 사용자들의 상호작용들에 관한 정보를 저장한다. 사용자 행동 데이터베이스(410)는 그러한 상호작용들에 관한 메타데이터를 더 저장한다. 시스템(400c)은 컨텍스트 정보 데이터베이스(420)를 포함한다. 컨텍스트 정보 데이터베이스(420)는, 특정한 사용자 아이템 상호작용에 영향을 미치는 매체 또는 다른 아이템들과 상호작용하기 위해 사용자들에 의해 이용되는, 다양한 디바이스들로부터 획득되는 임의의(any) 추가적 데이터를 저장한다. 그러한 컨텍스트 정보는, 제한이 아니라 예로서, 사용자의 인구통계적 분포(연령, 성병, 소득 등), 위치 정보, 시간 정보, 디바이스 정보, 및 기타 다양한 적합한 컨텍스트 정보를 포함할 수 있다.
시스템(400c)은 컨텍스트 분해 모듈(contextual decomposition module)(460)을 더 포함한다. 컨텍스트 분해 모듈(460)은 사용자 행동 데이터를 컨텍스트-특정적 행동으로 분해하도록 구성될 수 있다. 예를 들면, 상호작용의 기록을 모든 컨텍스트 정보에 의존하는 것으로 간주하지 않고, 컨텍스트 분해는 특정 상호작용들을 이들의 컨텍스트 정보로 인해 관련되는 것으로 그룹화할 수 있다. 특정 실시예들에서, 상기 그룹화는 군집화(clustering)를 통한 기계 학습 또는 집계(aggregation)를 통해 수행될 수 있다. 컨텍스트 분해 모듈(460)은 사용자 행동 데이터(예를 들면, 사용자 행동 데이터베이스(410)로부터 검색됨(retrieved)) 및 컨텍스트 정보(420)를 컨텍스트-특정적 행동(470)으로 분해한다. 컨텍스트-특정적 행동(470)은 이들의 연관된 컨텍스트 라벨들에 기초하여 이들의 컨텍스트 세그먼트들로 정리될 수 있다. 컨텍스트-특정적 행동(470)으로부터, 하나 이상의 다중-해싱 및 저장 방법들은 컨텍스트 특성화 행동 세그먼트들(context specification behavior segments)을 효율적인 해시 코드들로 변환하는 데 이용될 수 있다.
또한, 예시적 애플리케이션 시스템(450)이 시스템(400c)의 아키텍처의 일부로 도시되어 있다. 애플리케이션 시스템(450)은, 애플리케이션(450)이 컨텍스트-기반 해시 코드들을 이용하도록 구성된다는 대체 사항을 가진 상태로, 도 4a와 관련하여 상술된 애플리케이션 시스템(450)과 실질적으로 유사할 수 있다.
도 16은 해싱 이전에 컨텍스트 분해 모델을 포함하는 시스템(400c)에 의해 생성될 수 있는 해싱 코드들을 도시한다. 도시된 예는 "u1"으로 표시된 사용자에 대해 포착된 사용자 행동 데이터에 기초하여 이종 해시 코드를 준비하는 단계를 포함한다. 테이블(1600)은 다양한 사용자 디바이스들로부터 수신되는 사용자 행동 데이터를 나타내며, 상기 사용자 행동 데이터는 u1의 활동에 관한 것이다. 상기 사용자 행동 데이터는, 테이블(1600)에서 먼저 등장하는 사용자 행동 데이터가 특정 아이템들과의 보다 앞선 상호작용들을 포함하도록, 연대순으로 정리되어 있다. 상기 테이블은 따라서 다음과 같이 정리된다: 상기 테이블은 사용자의 식별자(identifier)를 기술한다(이 경우, 모든 상호작용들은 동일한 사용자 u1에 의한 것이지만, 실제로는, 많은 사용자들의 활동이 기록될 수 있다); 상기 테이블은 사용자가 상호작용한 아이템에 대한 식별자(예를 들면, i1, i2 등)를 기록한다; 상기 테이블은 다음에 상호작용과 연관된 다양한 컨텍스트들을 기록한다. 이용 가능한 특정 컨텍스트들은, 예를 들면, 상호작용의 유형, 상호작용하는 아이템의 유형, 상호작용을 기록하는 디바이스 등에 의존할 수 있다. 테이블(1600)에서, 기록된 상호작용들은 컨텍스트 1(상호작용의 위치), 컨텍스트 2(상호작용의 대략적 타이밍), 컨텍스트 3(상호작용을 기록하는 애플리케이션), 컨텍스트 4(상호작용을 기록하는 디바이스의 운영 체제), 컨텍스트 5(상호작용을 기록하는 디바이스에 대한 모델 지시자), 및 컨텍스트 6(추가적 컨텍스트 정보에 대하 플레이스홀더)을 포함한다. 컨텍스트들 3-6은, 그 정보가 모든 컨텍스트들과 함께 기록 및 저장되기 때문에, 일반 행동(General Behavior) 데이터로 지칭될 수 있다. 시스템(400c)은 이러한 컨텍스트들에 대해 컨텍스트 분해(contextual decomposition)를 수행하지 않도록 구성되어 있다.
해시 코드들은 실질적으로 본 명세서에서 설명되는 기법들에 따라 생성될 수 있는데, 이 때 결과적인 이종 해시 코드들은 컨텍스트 분해에 관한 정보를 포함하도록 생성된다는 것에 유의한다. 상기 컨텍스트 분해를 수행하기 위해, 컨텍스트 분해 모듈(460)(또는, 일부 실시예들에서, 다른 담당 모듈)은 분해가 발생할 특정 컨텍스트 유형을 선택한다. 본 예에서, 상기 분해는 컨텍스트 1(상호작용의 위치)에 기초할 것이다. 컨텍스트 분해 모듈(460)은 컨텍스트 1(1605)(예를 들면, "가족실", "거실", 및 "침실")과 연관된 사용자 행동 데이터베이스(410) 내의 다양한 값들을 식별한다. 해싱-특정적 행동 모듈(470)(또는 일부 실시예들에서 다른 담당 모듈(other responsible module))은 컨텍스트 1과 연관된 값들에 기초하여 상기 상호작용 기록들을 그룹화한다. 예를 들면, 상기 "가족실" 값과 연관된 모든 기록들이 그룹화되고, 상기 "거실" 값과 연관된 모든 기록들이 그룹화되며, 상기 "침실" 값과 연관된 모든 기록들이 그룹화된다. 다음으로, 다중-해싱 및 저장 모듈(480)은 이러한 그룹화된 값들을 이용하여 해시 코드 부분들을 생성한다(예를 들면, 이러한 그룹화된 값들은 이종 해싱 모델에 대한 입력으로 이용될 수 있다).
생성된 해시 코드들(1610, 1620, 및 1630)은 2개의 구성요소들: 해시 코드가 컨텍스트 유형 값(1605)을 인코딩하는, 제1 구성요소; 및 해시 코드가 일반 행동 데이터(예를 들면, 나머지 컨텍스트 값들)에 기초한, 제2 구성요소를 포함할 수 있다. 예를 들면, 해시 코드(1610)는 상기 "거실" 값에 기초하여 생성된다. 해시 코드(1610)는, 상기 "거실" 값을 인코딩하는, 제1 구성요소(1615) 및, 상기 일반 행동 데이터에 기초한, 제2 구성요소(1619)를 포함한다. 해시 코드(1620)는 상기 "침실" 값에 기초하여 생성된다. 해시 코드(1620)는, 상기 "침실" 값을 인코딩하는, 제1 구성요소(1625) 및, 상기 일반 행동 데이터에 기초한, 제2 구성요소(1629)를 포함한다. 해시 코드(1630)는 상기 "가족실" 값에 기초하여 생성된다. 해시 코드(1630)는, 상기 "가족실" 값을 인코딩하는, 제1 구성요소(1635) 및, 상기 일반 행동 데이터에 기초한, 제2 구성요소(1639)를 포함한다. 해시 코드들(1610, 1620, 및 1630)은 다양한 방식으로 결합되어 사용자에 대한 해당 특정 컨텍스트에 대한 이종 해시 코드들을 형성할 수 있다. 각각의 완전한 해시 코드 부분이 함께 연결되어(concatenated)(예를 들면, 해시 코드들(1610, 1620, 및 1630) 전부가 연결됨), 제1 이종 해시 코드(1630a)가 정리된다. 컨텍스트-기반 부분들이 먼저 연결되고 일반 행동-기반 부분들이 두 번째로 연결되어(예를 들면, 부분들(1615, 1625, 및 1635)이 먼저 연결되고 부분들(1619, 1629, 및 1639)이 두 번째로 연결됨), 제2 해시 코드(1630b)가 정리된다. 상기 이종 해시 코드들의 배열은 구성 파일에서 지정될 수 있다. 다음으로, 상기 생성된 해시 코드들은 사용자와 연관되어 저장될 수 있다. 상기 시스템은 상이한 컨텍스트 값들(예를 들면, 위치에 대한, 시간에 대한, 인구 통계에 대한)에 기초하여 복수의 해시 코드들을 생성할 수 있다. 상기 시스템은 복수의 해시 코드들을 사용자에 대한 단일 해시 코드로 결합할(예를 들면, 연결할(concatenate)) 수 있다.
도 6은, 본 명세서에 개시된 아키텍처의 일 실시예에 따른, 이종 해시 코드들을 생성 및 이용하는 개시된 시스템의 동작 방법(600)을 도시한다. 방법(600)은 컨텍스트 분해를 포함하는 시스템 아키텍처(400c)와 유사하게 구성된 시스템과 함께 이용될 프로세스를 포함할 수 있다. 방법(600)은, 컴퓨팅 시스템이 하나 이상의 클라이언트 디바이스들로부터 사용자 행동 데이터를 수신할 수 있는, 단계(610)에서 시작될 수 있다. 예를 들면, 상기 시스템은 애플리케이션과의 사용자 상호작용들의 기록들, 또는 사용자가 특정 비디오를 시청했다는 표시(indication)를 수신할 수 있다. 단계(615)에서, 상기 시스템은 또한 상기 사용자 행동 데이터와 연관된 컨텍스트 정보도 수신할 수 있다. 본 명세서에서 설명되는 바와 같이, 상기 컨텍스트 정보는, 상호작용의 시간, 상호작용의 위치, 상호작용에 이용된 디바이스, 사용자 및 사용자의 가정과 연관된 인구 통계 등과 같은, 정보를 포함할 수 있다. 단계(620)에서, 상기 시스템은 특정 컨텍스트에 기초하여 사용자 행동 및 컨텍스트 정보를 필터링할 수 있다. 상기 시스템은 상기 컨텍스트의 특정한 값에 기초하여 사용자 행동을 더 필터링할 수 있다. 특정 실시예들에서, 상기 시스템은 사용자 행동을 필터링하기 위해 컨텍스트 분해 모듈(460) 및 컨텍스트-특정적 행동 모듈(470)을 이용할 수 있다. 일 예에서, 상술된 바와 같이, 상기 시스템은 위치에 기초하여 사용자 행동을 필터링하고, 특정한 위치 값들에 기초하여 상기 데이터를 더 필터링할 수 있다. 특정 실시예들에서, 단계들(610-620)은, 데이터를 전처리하거나 또는 모든 사용자들에 대한 이종 해시 코드들을 생성하는, 추론 또는 모델링 스테이지(stage)에 대한 입력들을 구성하는 것에 관한 것으로 간주될 수 있다. 단계(625)에서, 상기 시스템은 상기 전처리 단계가 결과적으로 성공했음을 확인할 수 있다. 상기 결정이 상기 처리가 성공하지 못했다는 것인 경우, 상기 방법은 단계(610)로 돌아가서 다시 시도할 수 있다. 상기 처리는, 사용자에 대해 불충분한 양의 데이터가 수집되었다는 점, 데이터가 의미 있는 표현을 생성하기에는 너무 희소했을 수 있다는 점, 또는 다양한 다른 이유들을 비롯하여, 다양한 이유들로 인해 성공하지 못할 수 있다. 상기 결정이 상기 처리가 성공했다는 것인 경우, 상기 방법은 단계(630)로 진행될 수 있다.
단계(630)에서, 상기 시스템은 상기 필터링 된 데이터에 기초하여 이종 해시 코드를 생성하기 위해 이종 해싱 모델(430)을 이용할 수 있다. 특정 실시예들에서, 상기 시스템은 다중-해싱 및 저장 모듈(480)을 이용할 수 있다. 이종 해싱 모델(430)은 다중-해싱 및 저장 모듈(480)에 포함될 수 있다. 본 명세서에서 더 설명되는 바와 같이, 이종 해싱 모델(430)이 이종 해시 코드들을 생성하도록 트레이닝 된 기계 학습 모델일 수 있기 때문에, 이 프로세스는 모델 추론으로 다양하게 지칭될 수 있다. 상기 생성된 해시 코드들은, 행동 및 컨텍스트에 있어서 사용자들의 유사도를 계산하는 데 필요한, 사용자 활동 데이터에 관한 정보 및 컨텍스트 정보를 보존하도록 구성될 수 있다. 특정 실시예들에서, 상기 생성된 해시 코드들은 행동들 및 컨텍스트들의 정확한(exact) 히스토리를 보존하지 않을 수 있다. 그렇게 하면, 상기 해시 코드들은 이들이 인코딩하는 원본 데이터보다 훨씬 더 적고 이에 따라 비교하기에 더 빠를 수 있다. 단계(635)에서, 상기 시스템은 상기 해시 코드가 성공적으로 생성되었음을 확인하기 위해 상기 생성된 해시 코드를 평가할 수 있다. 단계(635)는 상기 해시 코드가 포맷화(formatting), 데이터의 정리(organization of data), 오류 검사(error checking), 및 기타 관련 요건들에 관한 규칙들을 준수함을 확인하는 단계를 포함할 수 있다. 이러한 요건들은, 상기 해시 코드들이 생성되는, 상기 시스템 또는 애플리케이션 시스템에 의해 미리 지정될 수 있다. 단계들(630 및 635)은, 함께, 상기 사용자 데이터 및 컨텍스트 정보에 대한 상기 해시 코드들의 생성을 담당할 수 있다.
특정 실시예들에서, 단계들(640-675)은, 상기 이종 해시 코드들을 이용하여, 애플리케이션 시스템(예를 들면, 애플리케이션 시스템(450))에 의해 부분적으로 또는 전부 수행될 수 있다. 단계(640)에서, 애플리케이션 시스템(450)은 사용자들의 시드 세그먼트를 수신할 수 있다. 상기 사용자들의 시드 세그먼트는, 애플리케이션 시스템(450)에 의해 또는, 사용자가 식별하고자 하는 확장된 사용자 그룹을 대표하는, 애플리케이션 시스템(450)의 사용자에 의해, 선택된 사용자들의 컬렉션일 수 있다. 특정 실시예들에서, 상기 시드 세그먼트는 이미 광고 타겟으로 지목된 사용자들 또는 유사 확장(lookalike expansion)에 대해 성공적인 매칭으로 식별된 사용자들을 포함할 수 있다. 단계(645)에서, 애플리케이션 시스템(450)은 애플리케이션 시스템(450)의 상기 사용자가 타겟팅하고자 하는 컨텍스트 조건(460)을 수신할 수 있다. 단계(650)에서, 애플리케이션 시스템(450)은 이전 세그먼트들에서 수신된 컨텍스트 조건 정보를 이용하여 상기 시드 세그먼트를 분해할 수 있다. 이는 상기 타겟 조건에 기초하여 상기 시드 세그먼트를 분해하는 단계를 포함할 수 있다. 애플리케이션 시스템(450)은 컨텍스트 분해 모듈(460)이 사용자 행동 데이터(410)를 분해하는 방식과 유사한 방식으로 상기 분해를 수행할 수 있다. 특정 실시예들에서, 애플리케이션 시스템(450)은 이를 위한 컨텍스트 분해 모듈을 포함할 수 있다. 단계(655)에서, 애플리케이션 시스템(450)은, 분해된 시드 세그먼트(453) 및 컨텍스트 조건(460)에 기초하여, 다중-해싱 및 저장 모듈(470)로부터 시드 해시 코드들을 획득할 수 있다. 특정 실시예들에서, 상기 시드 세그먼트는, 상기 분해된 시드 해시 코드들이 미리 준비되지 않은 경우 상기 시드 해시 코드들을 생성하기 위해, 분해된 행동들에 대한 다중-해싱의 수행을 필요로 할 수 있다. 본 명세서에서 설명되는 바와 같이, 상기 이종 해시 코드들은, 애플리케이션 시스템(450)이 컨텍스트 조건(460)에 기초하여 오직 가장 관련된 해시 코드들만 검색할 수 있도록 하는 방식으로, 저장되기 때문에, 애플리케이션 시스템(450)은 시드 세그먼트(453)가 동일하더라도 다양한 컨텍스트 조건들(460)에 대해 상이한 이종 해시 코드들을 검색할 수 있다. 따라서, 정확한(correct) 이종 해시 코드들의 검색은 본 설명된 기술의 기술적 이점인 해시 코드 비교 속도 향상을 구현하는 주요 구성요소이다.
단계들(660 및 665)에서, 애플리케이션 시스템(450)은 상기 이종 해시 코드들이 검색된 애플리케이션을 수행할 수 있다. 예를 들면, 애플리케이션 시스템(450)은 유사 확장(lookalike expansion)을 수행할 수 있다. 단계(660)에서, 애플리케이션 시스템(450)은 시드 세그먼트(453)에 속하지 않은 다양한 사용자들에 대한 분해된 해시 코드들을 시드 이종 해시 코드들과 비교할 수 있다. 상기 비교는, 특정 실시예들에서, 임베딩 공간에서 상기 이종 해시 코드들 간의 비트-단위 비교(bit-wise comparison) 또는 거리를 계산하는 단계를 포함할 수 있다. 상기 이종 해시 코드들은, 근본적인(underlying) 사용자 활동 데이터가 유사한 경우 유사한 이종 해시 코드들을 생성하고 근본적인 사용자 활동 데이터가 비유사한 경우 비유사한 이종 해시 코드들을 생성하도록 트레이닝 된, 이종 해싱 모델(430)에 의해 생성되었을 수 있다. 따라서, 2개의 이종 해시 코드들 간의 거리는 근본적인 사용자 활동 데이터 간의 차이를 대략적으로 반영한다. 단계(665)에서, 애플리케이션 시스템(450)은 시드 세그먼트(453) 내의 사용자들과 가장 유사한 사용자들을 검색할 수 있다. 상기 가장 유사한 사용자들은, 상응하는 이종 해시 코드가 임베딩 공간에서 상기 시드 이종 해시 코드들과 가장 근접한, 사용자들일 수 있다. 특정 실시예들에서, 애플리케이션 시스템(450)은 임계 거리 내의 모든 사용자들을 식별할 수 있다. 특정 실시예들에서, 애플리케이션 시스템(450)은 임계사용자수(threshold number of users), 예를 들면, 가장 가까운 50명의 사용자들을 식별할 수 있다. 애플리케이션 시스템(450)은, 컨텍스트 조건들을 필터로 이용하여, 거리 계산을 이용하여 상기 사용자들을 버킷들(buckets)로 해싱하고 일반 사용자들을 순위 매길(rank) 수 있다.
특정 실시예들에서, 애플리케이션 시스템(450)은 상기 검색된 사용자들에 관하여 신규성 결정(novelty determination)을 하도록 구성될 수 있다. 예를 들면, 단계(670)에서, 애플리케이션 시스템(450)은, 상기 검색된 세그먼트가 충분한 수의 사용자들을 가지고 있는지 또는 상기 검색된 사용자 세그먼트가 임계 유사도를 만족하는지 여부를 결정하기 위해, 상기 검색된 사용자 세그먼트를 상기 시드 사용자 세그먼트와 비교할 수 있다. 애플리케이션 시스템(450)은 상기 검색된 사용자 세그먼트가 상기 시드 사용자 세그먼트와 너무 높은 중복도를 가진다고 결정하고, 애플리케이션 시스템(450)이 상기 시드 사용자 세그먼트와 비교할 추가적인 해시 코드들을 식별할 수 있는, 단계(655)로 진행할 수 있다. 애플리케이션 시스템(450)이 상기 검색된 사용자 세그먼트가 상기 임계치를 만족한다고 결정하는 경우, 애플리케이션 시스템(450)은, 애플리케이션 시스템(450)이 사용자 세그먼트들의 컬렉션(예를 들면, 적절한 경우, 상기 시드 세그먼트를 포함하거나 또는 포함하지 않음)을 집계하고 애플리케이션 시스템(450)의 상기 사용자에 대한 반환(return)을 위한 확장된 사용자 세그먼트를 준비하는, 단계(675)로 진행할 수 있다.
사용자들을 비교하는 프로세스는 가중치 행렬에 의존적일 수 있다. 본 명세서에서 설명되는 바와 같이, 이종 해시 코드들을 생성하는 프로세스는, 특정 컨텍스트 정보에 대해 실질적으로 유사한 해시 값들을 갖고 다른 컨텍스트 정보에 대해 실질적으로 비유사한 해시 값들을 갖는, 해시 코드들을 결과로서 생성할 수 있다. 상기 해시 값들을 비교하는 시스템 또는 애플리케이션 시스템은, 예를 들면, 유사한 사용자 세그먼트들을 식별함에 있어 중요한 해시 코드의 섹션들(예를 들면, 특정 컨텍스트 정보)을 식별하는 가중 행렬(weighting matrix)에 따라, 상기 해시 코드 비교의 특정 부분들에 가중치를 부여하도록 구성될 수 있다. 가중 행렬은 또한 상기 비교의 속도를 향상시키는 방법으로서 상기 이종 해시 코드들을 생성하는 경우에도 이용될 수 있다. 상기 가중 행렬에 저장된 가중치들은 기계-학습되거나 또는, 상기 시스템 또는 애플리케이션 시스템의 운용자가 이용 가능한 기초되는 지식(knowledge)에 따른, 휴리스틱 값들(heuristic values)에 기초할 수 있다.
앞서 설명된 바와 같이, 사용자 행동 히스토리들의 심층 해싱을 통해 최근접 이웃 탐색을 수행하는 다른 방법은, 특정 실시예들에서, 시간-인식 어텐션 CNN(TAACNN)을 이용하여 사용자들의 비교를 위한 해시 코드들을 생성하는 것에 관한 것이다. 상기 TAACNN은 다양한 시간 스케일들에서 사용자들의 행동을 추상화한다. 특정 실시예들에서, 이 모델은 사용자의 장기적 선호도들의 특징들을 상기 사용자의 단기적 선호도들과 결합한다. 따라서, RACNN/TAACNN 모델은 사용자의 보다 동적인 행동 패턴들을 모델링하는 데 적합할 수 있다.
상기 TAACNN은 사용자 활동 모델링 분야에서 여러 기술적 문제들에 대한 질문(interrogation)으로부터 비롯된다. 예를 들면, 제1 질문은 딥 러닝 알고리즘에 의해 이용될 순차 행동 데이터를 어떻게 적절히 전처리하는가에 관한 것이다. 딥 러닝 알고리즘들은 순차 데이터를 처리함에 있어 가능성을 보여준다. 그러나, 순차 데이터에 대한 현재의 딥 러닝 모델들은 텍스트 분석 또는 비디오 분석을 위해 설계된 것이다. 순차 행동 데이터는 상이한 클래스의 데이터이다. 예를 들면, 첫째로, 상기 순차 행동 데이터는, 이미지 데이터에서와 같은 유사도 구조(similarity structure)를 포함하지 않는, 기본적으로 1차원 데이터이다. 둘째로, 순차 행동 데이터는 불연속적이다(discontinuous). 제2 질문은 데이터의 특정한 부분들만이 메타데이터 정보를 확실하게(reliably) 가지는 경우 순차 행동 데이터에 대한 사용자 표현(user representation)을 어떻게 일반화하는가에 관한 것이다. 보완 데이터(complementary data)가 없는 텍스트 및 비디오와 같은 다른 순차 데이터와 달리, 순차 행동 데이터는 메타데이터와 링크될 수 있다. 메타데이터 정보는 이진 해싱에 유용한 것으로 판명될 수도 있다. 따라서, 해결할 문제는, 이용 가능한 경우 메타데이터를 이용하지만 전적으로 이에 의존하지는 않는, 사용자 표현을 생성하기 위한 일반화된 딥 러닝 알고리즘을 만드는 방법이었다. 제3 질문은 사용자의 장기적 및 단기적 행동을 어떻게 처리하는가(address)에 관한 것이다. 순차 행동 데이터는 본질적으로 그 안에 사용자의 장기적 및 단기적 행동 정보를 저장하고 있다. 예를 들면, 상기 행동 데이터는 몇 달 또는 몇 년에 걸친 사용자의 선호도들뿐 아니라 매 순간의 사용자 선호도들을 드러낼 수 있다. 장기적 행동 및 단기적 행동은 다양한 패턴들을 보여줄 수 있기 때문에, 문제는 해싱 성능에 부정적인 영향을 미치지 않고 정확한 특징들을 추상화하기 위해 어떻게 이들을 별도로 처리하는가 하는 것이다. 제4 질문은 복수의 시간-인식 스케일 레벨들에서 어떻게 사용자의 행동 패턴을 추상화하는가에 관한 것이다. 장기적 또는 단기적 특징들을 구체적으로 타겟팅하는 경우라 해도, 상이한 시간-스케일 레벨들에서 어떻게 동적으로 특징들을 식별하는가 하는 것은 복잡하고 어려운 문제이다.
특정 실시예들에서, 본 개시에 의해 고려된 하나의 해결책은, 순차 행동 데이터에 대한 이진 해싱을 수행하기 위해 시간-인식 어텐션 컨볼루션 신경망(Time-Aware Attention Convolutional Neural Network: TAACNN)이 있는 것과 같이, 문제들을 해결하는 것이다. 이러한 이진 해싱 모델은, 사용자들에 관한 정보(세그먼트 확장, 사용자 분석 등)를 비교해야 하는, 매우 단순화된 다양한 네트워크들 및 애플리케이션들에 통합될 수 있다. 이 새로운 딥 러닝-기반 모델은 앞서 언급된 문제들을 적어도 다음과 같은 방식들로 해결한다. TAACNN 모델은 사용자의 순차 행동을 전처리하고 1차원 데이터를 3차원으로 매핑하는 입력 계층(input layer)을 도입한다. 이는 어쨌든 일차원 데이터가 컨볼루션 신경망에 의해 처리될 수 있도록 한다. 저차원 데이터로부터 고차원 데이터로 매핑 시, 순차 행동 데이터는 상기 고차원 데이터에 심각한 희소성 문제가 초래되지 않도록 집계된다(aggregated). 추가 이점으로, 분석 중인 데이터(data under analysis)는 연속 데이터(continuous data)로서 보다 자유롭게 취급될 수 있다. 상기 제안된 입력 계층 및 상기 제안된 임베딩 계층은 상기 TAACNN을 다양한 상이한 임베딩 알고리즘들에 대해 적응적이고 호환 가능하게 만든다. 이러한 특징은 메타데이터 정보가 있거나 또는 없는 데이터와 호환될 수 있게 한다. 상기 TAACNN의 시간-인식 어텐션 계층 내 2개의 커널 세트들은 상기 TAACNN 모델이 사용자의 장기적 및 단기적 행동 어텐션을 분리하는 것을 돕고 이들의 특징들을 별도로 추상화한다. 이는 관련 없는 어텐션 특징들과 다른 것들의 혼동을 방지하여 TAACNN으로부터 생성되는 해시 코드의 품질을 향상시키는 데 도움이 된다. 상기 제안된 TAACNN은, 상이한 시간-스케일 레벨들에서 장기적 및 단기적 행동의 인식을 용이하게 하도록, 상기 제안된 시간-인식 어텐션 계층에서 상이한 커널 크기들을 지원한다. 이는 이 모델의 시간 인식(time awareness)의 커버리지를 증가시키고 사용자의 프로파일의 보다 심오한 표현을 생성한다.
도 19는 제안된 TAACNN을 트레이닝하고 이용하는 시스템들의 예시적 모델을 도시한다. 모델(1900)이 제안하는 바와 같이, 트레이닝 시스템(training system)(1980) 및 해싱 시스템(1990)은 밀접하게 연결되어 있다. 본 명세서에서 설명될 바와 같이, TAACNN(1920)은, 해싱 성능을 향상시킬 수 있는, 트레이닝 프로시저 동안 (때때로 온라인으로 )업데이트될 수 있다.
트레이닝 프로시저(1980) 시, 사용자 쌍(2명의 사용자들(1910a 및 1910b)에 관한 데이터를 포함)은 샴(Siamese) 또는 병렬 트레이닝 구조로 로딩될 수 있다. 2명의 사용자들(1910a 및 1910b)로부터의 데이터는 딥 러닝-기반의 TAACNN 모델(1920)로 전달된다. TAACNN(1920)은 본 명세서에서 더 설명되는 방법들을 이용하여 양 사용자들에 대한 사용자 임베딩들을 생성한다. 2명의 사용자들(1910a 및 1910b)로부터의 이러한 연속적 임베딩들은, 2명의 사용자들(1910a 및 1910b) 각각에 대한 이진 해싱 코드를 생성하기 위해, 2개의 이진 해싱 계층들(1930a 및 1930b)로 전달된다. 이진 해싱 계층들(1930a 및 1930b)은, 제한이 아니라 예로서, 상이한 활성화 함수들(activation functions) 또는 상이한 임계치들(thresholds)을 포함하는, 해싱 코드들을 생성하기 위한 다양한 알고리즘들을 이용하도록 구성될 수 있다. 특정 실시예들에서, 사용자 1(1910a) 및 사용자 2(1910b)에 대한 이진 해싱 계층들(1930a 및 1930b)은 동일한 이진 해싱 알고리즘을 공유할 수 있다. 특정 실시예들에서, 사용자 1(1910a) 및 사용자 2(1910b)에 대한 이진 해싱 계층들(1930a 및 1930b)은, 상기 사용자들의 데이터의 배열에 기초하여 필요한 경우, 상이한 알고리즘들을 이용할 수 있다. 상기 사용자 쌍에 대해 2개의 해시 코드들이 생성된 후, 상기 해시 코드들은 이들의 유사도 라벨을 계산하기 위해 유사도 판단 계층(similarity judge layer)(1940)에 제공된다. 유사도 판단 계층(1940)은, 해밍 거리, 유클리드 거리 등을 포함하되 이에 제한되지 않는, 다양한 비교 방법들을 지원할 수 있다. 유사도 판단 계층(1940)이 이 사용자 쌍에 대한 유사도 결과를 계산한 후, 상기 유사도 결과는 트레이닝 프로시저(1980)의 관리자(administrator)에 의해 제공되는 실측 정보 진성 유사도 라벨(ground-truth genuine similarity label)과 비교될 것이다. 상기 유사도 결과와 상기 진성 유사도 라벨 간의 임의의(any) 오차는 상기 아키텍처를 통해 역전파 된(back-propagated), 트레이닝 프로세스에서 TAACNN 모델(1920)을 업데이트할 수 있다.
해싱 프로세스(1990) 시, 트레이닝 프로세스(1980)로부터 트레이닝 된 TAACNN 모델(1920)은, 사용자 데이터베이스(1960)에 저장된, 대규모(large scale) 사용자 순차 행동 데이터에 대한 해시 코드들을 생성하는 데 이용된다. 사용자 데이터베이스(1960)는, 특정 실시예들에서, 사용자 활동 데이터 데이터베이스(410)와 동등할 수 있다. 다른 이진 해싱 계층(1930c)은 TAACNN 모델(1920)에 의해 생성된 상기 해시 코드들로부터 이진 해시들을 생성한다. 상기 출력(예를 들면, 해시 코드들)은 사용자 해싱 코드 데이터베이스(1970)에 저장된다. 사용자 해싱 코드 데이터베이스(1970)는, 특정 실시예들에서, 이종 해시 코드 데이터베이스(440)와 동등할 수 있는데, 이 때, 사용자 해싱 코드 데이터베이스(1970)는, 이종 해시 코드들을 저장하기 보다는, TAA-기반의 사용자 해시 코드들을 저장함을 유의한다. 해싱 프로세스(1990)에서 TAACNN 모델(1920)은 트레이닝 프로세스(1980)로부터 직접 비롯되며, 상기 트레이닝 프로세스 시 변경이 이루어짐에 따라 업데이트된다. 본 개시는 TAACNN 모델(1920)을 업데이트하는 적어도 2개의 방법들: 온라인 업데이팅(online updating) 및 배치 업데이팅(batch updating)을 예상하고 있다. 온라인 업데이팅 시, 트레이닝 프로세스(1980) 및 해싱 프로세스(1990)는 본질적으로 동시에 실행되고 TAACNN 모델(1920)은, 시스템 설계에 따라, 양 프로세스들에서 동시에 또는 프로세스 동안 특정한 체크 포인트들에서(예를 들면, 업데이트 없이 일정 시간 경과 후) 업데이트된다. 특정 실시예들에서, 온라인 업데이팅은 스트리밍 데이터를 처리하기 위한 해시 프로세스(1990) 유연성을 제공할 수 있다. 배치 처리(batching processing)의 경우, TAACNN 모델(1920) 업데이트는 전체 트레이닝 프로세스 동작의 말미(end)에 발생한다. 특정 실시예들에서, 배치 업데이트는 오직 완전히 업데이트된 TAACNN 모델들(1920)만이 해싱 모델(1990)로 전파되도록 한다.
도 20a는 TAACNN(1920)에 대한 예시적 아키텍처(2000a)를 도시한다. TAACNN(1920)의(및 실제로는 예시적 아키텍처(2000a)의) 출력은 각 사용자의 해시 코드들을 계산하기 위한 이진 해싱 계층(예를 들면, 1930a 및 1930b)에 대한 사용자 임베딩(2050)이다. 사용자 임베딩(2050)의 품질은 상기 해시 코드의 품질 및 이에 따른 비교의 품질에 대해 매우 결정적이다. 입력 계층(2010)은, 순차 행동 데이터 입력(특정 실시예들에서, 메타데이터가 있거나 또는 없는)을 CNN에 의해 처리될 수 있는 3차원 구조로 매핑하는, 데이터 전처리 계층이다. 전처리의 결과는, 도 21을 참조하여 더 이해될 수 있는, 사용자 행동 표현(2015)이다.
사용자 행동 데이터는 종종 특정 아이템들과의 사용자 상호작용들의 기록들에 의해 표현된다. 데이터 전처리 스테이지에서 제1 단계는 각 아이템을 벡터 표현으로 임베딩하는 것이다. 여기서, 예를 들면, 입력 데이터가 이와 연관된 메타데이터를 갖는지 여부에 따라, 적절한 알고리즘들이 다양하게 이용될 수 있다. 메타데이터가 없는 경우, 여기서 word2vec와 유사한 임베딩 알고리즘이 이용될 수 있다. 메타데이터가 이용 가능한 경우, 상기 메타데이터의 특정 배열에 따라 원-핫 또는 멀티-핫 임베딩과 유사한 임베딩 알고리즘이 이용될 수 있다. 상기 데이터 전처리 스테이지에서 다음 단계는 원하는 시간 단위만큼 사용자의 활동 히스토리를 세션화하는(sessionize) 것이다. 각 세션에 대한 시간 단위의 선택은 특정 시간-스케일들과 관련된 사용자 임베딩(2050)의 신뢰성에 영향을 미칠 수 있다. 일 예로, 한 시간의 세션 길이가 선택될 수 있다. 특정 실시예들에서, 더 길거나 또는 더 짧은 세션 길이가 예상된다. 각 세션에 대해, 고려 대상인 사용자가 세션 타임프레임 동안 상호작용했던 모든 아이템들은 이전 단계로부터 생성된 상응하는 아이템들의 임베딩을 이용하여 집계된다. 예를 들면, 시간 = 0과 시간 = 1시간(hour) 사이에, 모든 상호작용들은 제1 세션에 배치되고, 시간 = 1시간(hour)과 시간 = 2시간(hours) 사이에, 모든 상호작용들은 제2 세션에 배치된다. 상기 집계(aggregation)는 주어진 세션에 대한 사용자의 행동의 요약(summary)을 나타낸다.
세션화 후, 각 사용자의 행동 입력은 고차원 공간 U RH×W×C으로 변환되거나(reshaped) 또는 매핑되는데, 여기서 H는 단기적 차원(예를 들면, 일(day))이고, W는 장기적 차원(예를 들면, 월(month))이며, C는 카테고리/임베딩 크기이다. 각 차원에서 필요한 정확한 시간(exact time)은 세션에 대해 선택된 시간의 길이에 상대적일 수 있다. 도 21은 매핑 후 사용자 순차 행동 데이터의 인스턴스가 개념적으로 어떻게 나타나는지 도시한다. 도면에서, 단기 축(2110)은 단기적 시간 단위들(예를 들면, 매 시간 기준)에 상응하고, 장기 축(2120)은 장기적 시간 단위들(예를 들면, 매일 기준)에 상응하며, 임베딩 축(2130)은 아이템들의 임베딩에 대한 상이한 임베딩 크기들에 상응한다. 특정 실시예들에서, 상기 단기적 시간 단위는 상기 선택된 세션 타임프레임의 길이와 동등할 수 있지만, 이는 필수적인 것은 아니다. 특정 실시예들에서, 상기 단기적 차원 및 장기적 차원은 상기 사용자 표현에서 대략 균형을 이루도록(또는 불균형을 피하도록) 선택될 수 있다. 예를 들면, 1시간의 단기적 차원이 선택된 경우, 장기적 차원으로 1년을 선택하는 것은 부적절하거나 또는 비효율적일 수 있다. 이는 고객 애플리케이션들에 의해 설정된 휴리스틱 모델들을 통해 지정될 수 있다.
특정 실시예들에서, 입력 계층(2010)으로부터의 임베딩은 희소하거나(sparse) 또는 수작업된(hand-crafted) 임베딩의 결과일 수 있다. 따라서, 사용자 행동 표현(2015)은 실제 유사도 정보(actual similarity information) 보다 더 개념적인 정보(more conceptual information)를 운반할 수 있다. 이 시나리오는 TAACNN의 전반적 성능, 특히 대규모로 유사도 정보를 보존하는 능력에 부정적인 영향을 미치게 될 것이다. 이 한계를 극복하기 위해, 임베딩 계층(2020)이 아키텍처(2000a)의 일부로서 도입된다. 임베딩 계층(2020)은, 희소 표현(sparse representation)에 기초한 입력 계층(2010)의 출력을 적응적 분산 표현(adaptive distributed representation)으로 변환하기 위해, 컨볼루션 커널(2025)(예를 들면, 매핑 또는 임베딩 커널)을 적용한다. 임베딩 계층(2020)은 상기 저차원의 희소 입력 U를 고차원의 적응적 밀집 임베딩 Ue RH×W×E로 매핑하기 위해 1 × 1 컨볼루션 커널(2025)을 이용할 수 있으며, 여기서 E는 임베딩 크기(예를 들면, 128)이다.
시간-인식 어텐션 계층(2030)은 상기 TAACNN 모델의 아키텍처(2000a)에서 시간-인식 어텐션 특징들을 추상화하는 데 이용된다. 시간-인식 어텐션 계층(2030)은 어텐션 특징들을 단기적 및 장기적 특징들로 분리한다. 단기적 어텐션 특징들(도 21에서 축(2110)으로 도시됨)은 상대적으로 작은 시간 스케일 상관관계(time scale correlation)를 포함하는 특징 추상들(feature abstractions)이다. 장기적 어텐션 특징들(도 21에서 축(2120)으로 도시됨)은 장기간 동안 상대적인 독립적 활동들의 중요도를 캡슐화하는(encapsulate) 특징 추상들이다. 일 예로, 단기적 어텐션 특징들은, 오늘 오후 8;00시에 사용자의 TV 시청 행동이 오늘 오후 9;00시에 사용자의 TV 시청 행동과 상관관계가 높은, 사용자 시나리오를 묘사할 수 있다. 다음으로, 장기적 어텐션 특징들은 지난 월요일 오후 8:00시에 사용자의 TV 시청 행동과 비교하여 월요일 오후 8:00시에 사용자의 TV 시청 행동을 묘사할 수 있다. 시간 단위 표현의 차이로 인해, 단기적 어텐션 특징들 및 장기적 어텐션 특징들은 쉽게 결합될 수 없다. 그러므로, 이들은 TAACNN의 아키텍처(2000a)에서 별도로 표현되고 처리된다. 이로부터, 이전의 CNN들에서 이용되는, 전통적인 정사각형(square shaped) 컨볼루션 커널들은, 순차적 행동 데이터가 있는 본 개시의 시간-인식 어텐션 메커니즘에 대한 최선의 커널 옵션이 아니라, 시간-인식 어텐션 계층(2030)에 대한 차선의 커널 옵션이다.
이를 해결하기 위해, 단기적 및 장기적 어텐션 특징들을 위한 2개의 상이한 커널 세트들의 2개의 별도 설계들이 개발되었다. 도 20a에 도시된 예시적 아키텍처(2000a)에서, 단기적 커널 세트(2035a-2035c)는, 1xN(2035a), 1xM(2035b), 및 1xV(2035c)(여기서 N<M<V임)라는 상이한 차원들을 갖는 커널들을 이용하여, 사용자 행동 표현(2015)의 단기 축(2110)을 따라 적용된다. 이 커널들은 각각 단단기(small short-term: SST), 중단기(middle short-term: MST), 및 장단기(large short-term: LST) 어텐션 특징들의 추상들(abstractions)이다. 장기적 커널 세트(2035d-2035f)는, Tx1(2035d), Yx1(2035e), 및 Ux1(2035f)(여기서 T<Y<U임)라는 상이한 차원들을 갖는 커널들을 이용하여, 사용자 행동 표현(2015)의 장기 축(2120)을 따라 적용된다. 상기 장기적 커널 세트는 각각 단장기(small long-term: SLT), 중장기(middle long-term: MLT), 및 장장기(large long-term: LLT) 어텐션 특징들이다. 각 커널 세트에 대하여, 커널 세트 내의 상이한 커널 크기들은 특징 손실(feature loss)의 경우에 시간 인식 커버리지(time awareness coverage)를 증가시키기 위해 이용된다. 본 예에서, 각 커널 세트는 3개의 커널들을 포함하지만, 적절한 경우, 세트당 더 많거나 또는 더 적은 커널들이 이용될 수 있으며 상기 세트들은 크기가 동등하지 않을 수 있다. 일부 실시예들에서, 상기 커널 세트들의 크기는 사용되는 순차 행동 데이터세트의 특성들(예를 들면, 희소성(sparsity), 데이터세트의 시간 범위 등)에 기초할 수 있다. 일부 실시예들에서, 하나의 세트 내에 아무리 많은 커널들이 있더라도, 이들의 크기들은 다음의 규칙을 따를 수 있다:
2(i+1)
R은 이 커널 세트에 몇 개의 커널이 있는가를 나타낸다.
단기 및 장기 어텐션 특징들 간의 가능한 상호작용들 동안 정보 손실을 방지하기 위해, 풀링(poling) 계층(2037)이 상관관계 특징(correlation feature)을 보완 특징들로서 추상화하기 위해 시간-인식 어텐션 계층(2030)에 도입된다. 풀링 계층(2037) 및 다양한 컨볼루션 커널들(2035a-v35f)은 사용자 행동 표현(컨볼루션 블록들(2039 및 2038)로 도시됨)을 컨볼루션하는(convolve) 데 이용된다. 상기 시간-인식 계층들이 특징들을 어떻게 추상화하는지를 설명하는 의사-코드 알고리즘은 위에서 알고리즘 2로서 논의되었다. 알고리즘 2는, 특정 실시예들에 따라, 시간-인식 어텐션 계층에서 특징들을 계산하는 방법을 보여준다.
컨볼루션 블록들(2039 및, 총괄적으로, 2038)의 출력은 상관관계 특징(2045a) 및 다양한 어텐션 특징들(2045b-2045g)이다. 단단기 특징(2045b), 중단기 특징(2045c), 및 장단기 특징(2045d)은 각각 컨볼루션 커널들(2045a, 2035b, 및 2035c)에 의한 사용자 행동 표현(2015)의 컨볼루션의 결과들이다. 단장기 특징(2045e), 중장기 특징(2045f), 및 장장기 특징(2045g)은 각각 컨볼루션 커널들(2045d, 2035e, 및 2035f)에 의한 사용자 행동 표현(2015)의 컨볼루션의 결과들이다. 집계 계층(2040)에서, 시간-인식 어텐션 계층(2030)으로부터 출력되는 모든 특징들은 평탄화되고(flattened) 함께 연결된다(concatenated). 이로부터, 최종 사용자 임베딩(2050)이 준비된다. 사용자 임베딩(2050)은 궁극적으로 유사도 트레이닝 및/또는 해싱에 이용될 것이다.
도 20b는 TAACNN(1920)에 대한 다른 예시적 아키텍처(2000b)를 도시한다. 아키텍처(2000b)는 도 20a에 도시된 아키텍처(2000a)에 기초를 두며, 유사하게 번호 매겨진 구성요소들은 구체적으로 달리 언급되는 경우를 제외하고 유사하게 행동하는 것으로 이해되어야 한다. 도 20b에 도시된 아키텍처(2000b)는 집계 계층(2040) 이후에 추가적인 어텐션 계층(2060)을 포함한다. 순차 데이터의 시간 범위가 너무 큰(예를 들면, 수십 년을 넘는) 경우, 또는 세션 크기에 의해 커버되는 시간 스케일과 단기 축(2110) 및 장기 축(2120) 중 하나 이상에 대한 시간 스케일 간에 차이가 큰 경우, 시간 인식의 분석을 가능한 한 깊게 커버하기 위해, 추가적인 커널들이 구현되어야 할 수 있다. 특정 실시예들에서, 이는 딥 러닝 모델들의 트레이닝 및 집계 계층(2040)으로부터 직접적인 사용자 임베딩들의 생성을 비현실적으로 만들 수 있는데, 왜냐하면 집계 계층(2040)이 너무 많은 파라미터들을 갖는 것으로 간주될 수 있기 때문이다(예를 들면, 결과적인 사용자 임베딩(2050)은 효율적으로 저장, 검색, 및 비교되기에는 너무 높은 차원(dimensionality)을 가질 수 있다). 이러한 경우, 결합된 단기 어텐션 특징(2065) 및 장기 어텐션 특징(2067)을 추상화하기 위해 어텐션 계층(2060)이 추가된다. 단기 어텐션 특징(2065)은 단단기 특징(2045b), 중단기 특징(2045c), 및 장단기 특징(2045d), 및, 사용자 행동 표현(2015)을 처리하도록 선택된 추가적 커널들의 결과로서 생성된, 기타 추가적 특징들을 추상화한다. 장기 어텐션 특징(2067)은 단장기 특징(2045e), 중장기 특징(2045f), 및 장장기 특징(2045g), 및, 사용자 행동 표현(2015)을 처리하도록 선택된 추가적 커널들의 결과로서 생성된, 기타 추가적 특징들을 추상화한다. 본 예에서, 상관관계 특징(2045a)의 추가적인 추상화가 필요하지 않음에 따라, 상관관계 특징(2045a)은 단순히 이월된다(carried forward). 상관관계 특징(2045a), 단기 어텐션 특징(2065), 및 장기 어텐션 특징(2067)(및 이용될 수 있는 어텐션 특징들 중 어떤 것)은 결합되어 사용자 임베딩(2050)을 형성한다.
도 20c는 TAACNN(1920)에 대한 다른 예시적 아키텍처(2000b)를 도시한다. 아키텍처(2000c)는 도 20a에 도시된 아키텍처(2000a)와 관련되며, 유사하게 번호 매겨진 구성요소들은 구체적으로 달리 언급되는 경우를 제외하고 유사하게 행동하는 것으로 이해되어야 한다. 일반적으로 말하면, 아키텍처(2000c)는 아키텍처(2000a)의 단순화된 버전이다. 사용자 순차 행동 데이터의 시간 범위가 작은(예를 들면, 오직 하루의 행동 데이터만 이용 가능한) 경우, 상기 장기 어텐션 및 단기 어텐션은 서로 밀접하게 관련될 수 있다. 이러한 경우, 아키텍처(2000a)의 비대칭 컨볼루션 커널들(2035a-2035f)은 특징들을 추상화하기 위해 보다 전통적인 정사각형의(square-like) 풀링(2053) 및 컨볼루션 커널들(2055 및 2057)로 대체될 수 있다. 풀링(2053), NxN 컨볼루션 커널(2055), 및 MxM 컨볼루션 커널(2057)(N<M) 각각은 사용자 행동 표현(2015)과 컨볼루션되어 어텐션 특징을 생성할 수 있다. 본 아키텍처에서, 단기 어텐션 특징(2073)은 풀링(2053)의 결과이고, 중기 어텐션 특징(2075)은 NxN 컨볼루션 커널(2055)의 결과이며, 장기 어텐션 특징(2077)은 MxM 컨볼루션 커널(2057)의 결과이다. 집계 계층(2040)에서, 어텐션 특징들(2073, 2075, 및 2077)은 결합되어 사용자 임베딩(2050)을 형성한다.
특정 실시예들에서, 상기 TAACNN, 및 이러한 적응형 아키텍처들은 특히 다양한 애플리케이션 시스템들과 함께 이용될 수 있다. 예를 들면, 본 명세서에 개시된 접근법은 빠르고 효율적인 사용자 분석에 이용될 수 있다. 사용자 행동에 관한 장기 및 단기 어텐션들 둘 모두에 대한 정확한(accurate) 시간 인식을 제공함으로써, 상기 TAACNN은, 사용자 분석 모델의 기초를 이루도록 다양한 애플리케이션 고객들에 의해 이용될 수 있는, 고품질의 사용자 임베딩들을 제공한다. 특히, 상기 임베딩들은, 데이터 희소성 및 노이즈와 연관된 문제를 방지하면서 미래의 시스템들에 대한 강력하고 적응적인 시작점을 제공함으로써, 정확한(accurate) 사용자 분석 모델의 보다 빠른 개발을 용이하게 할 수 있다. 예를 들면, 광고 분석은 적절한 타겟 고객들을 식별하도록 인구 통계 분석 모델을 실행하기 위해 각 사용자의 해시 코드를 이용할 수 있다. 다른 예로, 본 명세서에 개시된 접근법은 빠르고 효율적인 추천 시스템에 이용될 수 있다. 상기 TAACNN은 사용자들에 대한 고품질의 해시 코드들 및 아이템들에 대한 임베딩들을 제공할 수 있기 때문에(상기 TAACNN의 입력 계층으로부터), 상기 TAACNN은 고성능 추천 시스템을 제공하는 데 도움이 될 수 있다. 추가적으로, 상기 TAACNN은 유사 모델링 시스템(lookalike modeling system)을 지원하는 데 이용될 수 있다. 상기 TAACNN은 각 사용자에 대한 고품질의 해시 코드를 제공하기 때문에, 상기 TAACNN은 상술된 바와 같은 고성능의 유사 시스템(lookalike system)을 생성하는 데 이용될 수 있다. 예를 들면, 광고팀이 프로그래밍 유형에 관심있는 시드 사용자 그룹을 가지고 있는 경우, 사용자 해시 코드들을 비교함으로써, 상기 광고팀은 시드 그룹 사용자들과 비교하여 유사한 해시 코드들을 갖는 사용자들을 도입함으로써 상기 시드 그룹을 쉽게 확장할 수 있다.
기존 다른 이진 해싱 기법들과 대비하여 본 개시된 기법들의 성능을 평가하기 위해 여러 실험들이 수행되었다. 보다 구체적으로, 본 개시된 기술은 공개적(public)(무비렌즈(MovieLens), 굿리즈(Goodreads)) 및 독점적(proprietary) 익명 사용자 활동 데이터에 관해 LSH 및 VDSH-S와 같은 다른 기본(baseline) 해싱 방법들과 비교된다. 이러한 모든 데이터세트들은 특정 아이템들에 대한 순차적 사용자 활동들을 포함한다.
평가 결과들이 보다 정확하게(precise) 되도록 하기 위해, 모든 데이터세트들은, 이상치들(outliers)로 보이는 일부 사용자 활동들(예를 들면, 단일 사용자에 의한 너무 많은 평가들(ratings))을 제거함으로써, 전처리된다. 표 1은 그러한 전처리된 데이터세트들의 요약 통계를 포함한다.
표 1: 데이터세트 통계(전처리 후)
주어진 데이터세트들에 관한 사용자 유사도 레벨들에 대한 실측 정보(ground-truth)가 없으므로, 실측 정보 라벨들은 각 데이터세트에 대한 가장 최근의 타임 슬롯으로부터 자카드 인덱스(Jaccard index)를 이용하여 생성된다. 다음으로, 각 사용자에 대해 가장 유사한 및 비유사한 사용자들(즉, 5명의 유사한 사용자들 대 5명의 비유사한 사용자들)이 상기 미리 정의된 자카드 인덱스 값에 기초하여 카테고리화된다. 상기 가장 최근 타임 슬롯 전의 그러한 인스턴스들로부터, 본 개시된 모델들(카테고리적 어텐션 및 RACNN/TAACNN)을 위해 입력 특징들이 추출된다. 다음에, 상기 추출된 특징들은 유사도 라벨들(현재로부터 비롯된)과 재통합되고, 트레이닝 및 테스트 세트들을 생성하도록 각각 80%/20%로 분할된다.
정확한(correct) 예측 횟수를, 해시 코드 길이를 달리하는, 트레이닝 된 카테고리적 어텐션 및 RACNN/TAACNN 모델들을 통해 이루어진, 총 예측 횟수로 나누는(즉, 정확도(accuracy)) 계산을 할 수 있다. LSH의 경우, 사용자-아이템 상호작용들에서 나타나는, 아이템 카테고리들의 상대적 빈도(relative frequency)에 기초하여, 모델이 구성된다. 다음에, 사용자 쌍 유사도 또는 비유사도를 추론하기 위해, 대략적인 유사도 조인(similarity join)은 트레이닝 된 LSH 모델에 대해 수행된다. VDSH-S의 경우, 사용자가 가장 자주 본 아이템 카테고리를 라벨(label)로서 이용함과 함께, 사용자 상호작용 히스토리에 존재하는 모든 아이템들에 대해 계산된 tf-idf 값들을 이용하여, 모델이 트레이닝된다. 다음으로, 주어진 해시 코드들 간의 해밍 거리에 기초하여 쌍-단위의(pairwise) 사용자 유사도를 예측하기 위해, 상기 트레이닝 된 VDSH-S 모델에 의해 생성되는 해시 코드들이 추출된다. LSH 및 VDSH-S의 정확도는 이들의 예측 출력(prediction output)을 본 개시된 기술의 유사도 라벨들과 비교함으로써 측정된다.
표 2 및 도 22는 상기 실험들에서 고려된 3개의 데이터세트들에 대한 모든 방법들의 성능을 보여준다. 도 22는 상기 3개의 설명된 사용자 행동 데이터세트들인, 굿리즈(2200), 무비렌즈(2210), 및 독점적 사용자 활동 데이터(2220)로부터의 정확도 평가 결과를 도시한다.
주어진 결과들로부터, 카테고리적 어텐션 및 RACNN/TAACNN 둘 모두 다양한 해시 비트 길이들에 걸쳐 모든 데이터세트들 상에서 다른 기본 해싱 기법들을 크게 능가함을 알 수 있다. 이는 LSH 및 VDSH-S 둘 모두 사용자-아이템 상호작용 히스토리에서 카테고리 선호도들 또는 시간 스케일들을 고려할 수 없다는 것에 대한 검증(validation)을 제공한다. 무비렌즈 데이터세트의 경우 가장 큰 정확도 향상(VDSH-S/LSH 대비 0.34/0.2)이 관찰되었음을 또한 알 수 있다. 이는 무비렌즈 데이터세트가 다른 데이터세트들(표 2 참조)보다 사용자당 훨씬 더 희소한 상호작용 데이터 포인트들을 갖기 때문이다. 본 명세서에서 설명되는 기법들은 상위-레벨 메타데이터 및 다양한 시간 스케일들을 이용하여 높은 정밀도로 사용자의 순차 행동을 모델링할 수 있기 때문에, 각 사용자에 대해 생성되는 해시 코드들은 다른 기본 모델들보다 더 정확하다.
카테고리적 어텐션은 무비렌즈 및 굿리즈와 같은 데이터세트들에 대해 강력한 성능을 보여주는데, 여기서 카테고리적 어텐션은 장기적 선호도들을 포착하는 카테고리적 임베딩들을 생성하기 때문에 사용자 활동은 희소하다. RACNN/TAACNN은, 시간-변화에 더 민감하기 때문에, 본 개시된 기술의 독점적 사용자 활동 데이터에서와 같이 보다 밀집된 사용자-아이템 상호작용 데이터 포인트들을 갖는 데이터세트들에 적합할 수 있다.
순차적 행동 데이터에 대한 유사도-보존적 이진 해시 코드들을 도출하기 위해, 2가지의 예시적인 심층 이진 해싱 아키텍처 실시예들이 본 명세서에서 설명된다. 카테고리적 어텐션은 사용자의 선호도들을 포착하기 위해 상위-레벨 메타데이터를 이용한다. RACNN/TAACNN은 상이한 시간 스케일들에 걸쳐 진화하는 사용자의 선호도들을 탐구한다(explore). 다양한 데이터세트들이 수반된 실험들은, 다른 잘 알려진 해싱 방법들에 비해 본 개시된 기술의 실시예들의 큰 성능 향상을 통해, 본 개시된 기술의 실시예들의 유효성(effectiveness)을 입증한다. 카테고리적 어텐션은 시간에 따른 사용자 활동이 매우 빈번하지 않은 그러한 데이터세트들에 더 효과적인 반면, RACNN/TAACNN은 시간에 따른 사용자 활동이 보다 빈번한 그러한 데이터세트들에 더 효과적이라는 것을 또한 본 명세서에서 알 수 있다. 본 개시는 특히 순차 행동 데이터에 대한 이진 해싱에 대해 정밀한 모델들을 개발하는 것의 중요성을 예시하고 있다.
도 23은 예시적 컴퓨터 시스템(2300)을 도시한다. 특정 실시예들에서, 하나 이상의 컴퓨터 시스템들(2300)은 본 명세서에서 설명 또는 예시된 하나 이상의 방법들의 하나 이상의 단계들을 수행한다. 특정 실시예들에서, 하나 이상의 컴퓨터 시스템들(2300)은 본 명세서에서 설명 또는 예시된 기능(functionality)을 제공한다. 특정 실시예들에서, 하나 이상의 컴퓨터 시스템들(2300)에서 실행되는 소프트웨어는 본 명세서에서 설명 또는 예시된 하나 이상의 방법들의 하나 이상의 단계들을 수행하거나 또는 본 명세서에서 설명 또는 예시된 기능을 제공한다. 특정 실시예들은 하나 이상의 컴퓨터 시스템들(2300)의 하나 이상의 부분들을 포함한다. 본 명세서에서, 적절한 경우, 컴퓨터 시스템에 대한 언급은 컴퓨팅 디바이스를 포함할 수 있으며, 그 반대의 경우도 마찬가지다. 또한, 컴퓨터 시스템에 대한 언급은, 적절한 경우, 하나 이상의 컴퓨터 시스템들을 포함할 수 있다.
본 개시는 어떤 적절한 수의 컴퓨터 시스템들(2300)이라도 고려하고 있다. 본 개시는 어떤 적절한 물리적 형태라도 취하는 컴퓨터 시스템(2300)을 고려하고 있다. 제한이 아닌 예로서, 컴퓨터 시스템(2300)은 내장형(embedded) 컴퓨터 시스템, 시스템-온-칩(system-on-chip: SOC), 단일-보드 컴퓨터 시스템(single-board computer system: SBC)(예를 들면, 컴퓨터-온-모듈(computer-on-module: COM) 또는 시스템-온-모듈(system-on-module: SOM)), 데스크탑 컴퓨터 시스템, 랩탑 또는 노트북 컴퓨터 시스템, 대화형 키오스크(interactive kiosk), 메인 프레임, 컴퓨터 시스템들의 메쉬(mesh), 모바일 전화, 개인 휴대 정보 단말기(personal digital assistant: PDA), 서버, 태블릿 컴퓨터 시스템, 증강/가상 현실 디바이스, 또는 이들 중 둘 이상의 조합일 수 있다. 적절한 경우, 컴퓨터 시스템(2300)은 하나 이상의 컴퓨터 시스템들(2300)을 포함할 수 있거나; 단일형(unitary) 또는 분산형(distributed)일 수 있거나; 복수의 장소들에 걸쳐 있을 수 있거나; 복수의 머신들(machines)에 걸쳐 있을 수 있거나; 복수의 데이터 센터들에 걸쳐 있을 수 있거나; 또는, 하나 이상의 네트워크들에서 하나 이상의 클라우드 구성요소들을 포함할 수 있는, 클라우드에 상주할 수 있다. 적절한 경우, 하나 이상의 컴퓨터 시스템들(2300)은, 실질적인 공간적 또는 시간적 제한 없이, 본 명세서에서 설명 또는 예시된 하나 이상의 방법들의 하나 이상의 단계들을 수행할 수 있다. 제한이 아닌 예로서, 하나 이상의 컴퓨터 시스템들(2300)은, 실시간으로 또는 배치 모드(batch mode)로, 본 명세서에서 설명 또는 예시된 하나 이상의 방법들의 하나 이상의 단계들을 수행할 수 있다. 하나 이상의 컴퓨터 시스템들(2300)은, 적절한 경우, 상이한 시간들에 또는 상이한 장소들에서, 본 명세서에서 설명 또는 예시된 하나 이상의 방법들의 하나 이상의 단계들을 수행할 수 있다.
특정 실시예들에서, 컴퓨터 시스템(2300)은 프로세서(2302), 메모리(2304), 스토리지(storage)(2306), 입/출력(input/output: I/O) 인터페이스(2308), 통신 인터페이스(2310), 및 버스(2312)를 포함한다. 본 개시는 특정 배치로 특정한 수의 특정 구성요소들을 갖는 특정 컴퓨터 시스템을 설명 및 예시하고 있지만, 본 개시는 어떤 적절한 배치로 어떤 적절한 수의 어떤 적절한 구성요소들을 갖는 어떤 적절한 컴퓨터 시스템이라도 고려하고 있다.
특정 실시예들에서, 프로세서(2302)는, 컴퓨터 프로그램을 구성하는 명령어들(instructions)과 같은, 명령어들을 실행하기 위한 하드웨어를 포함한다. 예로서 그리고 이에 제한되지 않고, 명령어들을 실행하기 위해, 프로세서(2302)는 내부 레지스터(internal register), 내부 캐시(internal cache), 메모리(2304), 또는 스토리지(2306)로부터 상기 명령어들을 검색(또는 페치(fetch))할 수 있고; 이들을 디코딩 및 실행할 수 있고; 다음으로 하나 이상의 결과들을 내부 레지스터, 내부 캐시, 메모리(2304), 또는 스토리지(2306)에 기입할(write) 수 있다. 특정 실시예들에서, 프로세서(2302)는 데이터, 명령어들, 또는 주소들(addresses)을 위한 하나 이상의 내부 캐시들을 포함할 수 있다. 본 개시는, 적절한 경우, 어떤 적절한 수의 어떤 적절한 내부 캐시들이라도 포함하는 프로세서(2302)를 고려하고 있다. 제한이 아닌 예로서, 프로세서(2302)는 하나 이상의 명령어 캐시들, 하나 이상의 데이터 캐시들, 및 하나 이상의 변환 색인 버퍼들(translation lookaside buffers: TLBs)을 포함할 수 있다. 상기 명령어 캐시들 내의 명령어들은 메모리(2304) 또는 스토리지(2306) 내의 명령어들의 복사본들일 수 있으며, 상기 명령어 캐시들은 프로세서(2302)에 의한 그러한 명령어들의 검색(retrieval) 속도를 높일 수 있다. 상기 데이터 캐시들 내의 데이터는 프로세서(2302)에서 실행되는 명령어들이 작용할 메모리(2304) 또는 스토리지(2306) 내의 데이터의 복사본들이거나; 프로세서(2302)에서 실행되는 후속 명령어들에 의한 액세스를 위한 또는 메모리(2304) 또는 스토리지(2306)에 기입하기 위한, 프로세서(2302)에서 실행된 이전 명령어들의 결과들이거나; 또는 기타 적절한 데이터일 수 있다. 상기 데이터 캐시들은 프로세서(2302)에 의한 읽기(read) 또는 기입(write) 동작들의 속도를 높일 수 있다. 상기 TLB들은 프로세서(2302)에 대한 가상 주소 변환(virtual-address translation)의 속도를 높일 수 있다. 특정 실시예들에서, 프로세서(2302)는 데이터, 명령어들, 또는 주소들을 위한 하나 이상의 내부 레지스터들을 포함할 수 있다. 본 개시는, 적절한 경우, 어떤 적절한 수의 어떤 적절한 내부 레지스터들이라도 포함하는 프로세서(2302)를 고려하고 있다. 적절한 경우, 프로세서(2302)는 하나 이상의 산술 논리 장치(arithmetic logic unit: ALU)들을 포함하거나; 멀티-코어(multi-core) 프로세서이거나; 또는 하나 이상의 프로세서들(2302)을 포함할 수 있다. 본 개시는 특정 프로세서를 설명 및 예시하고 있지만, 본 개시는 어떤 적절한 프로세서라도 고려하고 있다.
특정 실시예들에서, 메모리(2304)는 프로세서(2302)가 실행할 명령어들 또는 프로세서(2302)가 작용할 데이터를 저장하기 위한 메인 메모리를 포함한다. 제한이 아닌 예로서, 컴퓨터 시스템(2300)은 스토리지(2306) 또는 다른 소스(예를 들면, 다른 컴퓨터 시스템(2300))로부터 메모리(2304)로 명령어들을 로딩할 수 있다. 다음으로, 프로세서(2302)는 메모리(2304)로부터 내부 레지스터 또는 내부 캐시로 상기 명령어들을 로딩할 수 있다. 상기 명령어들을 실행하기 위해, 프로세서(2302)는 상기 내부 레지스터 또는 내부 캐시로부터 상기 명령어들을 검색하고(retrieve) 이들을 디코딩할 수 있다. 상기 명령어들의 실행 중 또는 실행 후에, 프로세서(2302)는 하나 이상의 결과들(이는 중간 또는 최종 결과들일 수 있음)을 상기 내부 레지스터 또는 내부 캐시에 기입할 수 있다. 다음으로, 프로세서(2302)는 그러한 결과들 중 하나 이상을 메모리(2304)에 기입할 수 있다. 특정 실시예들에서, 프로세서(2302)는 하나 이상의 내부 레지스터들 또는 내부 캐시들 내의 또는 메모리(2304) 내의(스토리지(2306) 또는 다른 곳이 아니라) 명령어들만 실행하고 하나 이상의 내부 레지스터들 또는 내부 캐시들 내의 또는 메모리(2304) 내의(스토리지(2306) 또는 다른 곳이 아니라) 데이터에만 작용한다. 하나 이상의 메모리 버스들(각각이 어드레스 버스 및 데이터 버스를 포함할 수 있음)은 프로세서(2302)를 메모리(2304)에 결합할 수 있다. 버스(2312)는, 후술되는 바와 같이, 하나 이상의 메모리 버스들을 포함할 수 있다. 특정 실시예들에서, 하나 이상의 메모리 관리 유닛들(memory management units: MMUs)은 프로세서(2302)와 메모리(2304) 사이에 상주하여 프로세서(2302)에 의해 요청되는 메모리(2304)에 대한 액세스를 용이하게 한다. 특정 실시예들에서, 메모리(2304)는 랜덤 액세스 메모리(random access memory: RAM)를 포함한다. 이 RAM은, 적절한 경우, 휘발성 메모리일 수 있다. 적절한 경우, 이 RAM은 동적 RAM(dynamic RAM: DRAM) 또는 정적 RAM(static RAM: SRAM)일 수 있다. 또한, 적절한 경우, 이 RAM은 단일-포트(single-ported) 또는 다중-포트(multi-ported) RAM일 수 있다. 본 개시는 어떤 적절한 RAM이라도 고려하고 있다. 메모리(2304)는, 적절한 경우, 하나 이상의 메모리들(2304)을 포함할 수 있다. 본 개시는 특정 메모리를 설명 및 예시하고 있지만, 본 개시는 어떤 적절한 메모리라도 고려하고 있다.
특정 실시예들에서, 스토리지(2306)는 데이터 또는 명령어들을 위한 대용량 스토리지(mass storage)를 포함한다. 제한이 아닌 예로서, 스토리지(2306)는 하드 디스크 드라이브(hard disk drive: HDD), 플로피 디스크 드라이브, 플래시 메모리, 광디스크, 광자기(magneto-optical) 디스크, 자기 테이프, 또는 범용 직렬 버스(Universal Serial Bus: USB) 드라이브 또는 이들 중 둘 이상의 조합을 포함할 수 있다. 스토리지(2306)는, 적절한 경우, 탈착식(removable) 또는 비탈착식(non-removable)(또는 고정식(fixed)) 매체들을 포함할 수 있다. 저장소(2306)는, 적절한 경우, 컴퓨터 시스템(2300)의 내부 또는 외부에 있을 수 있다. 특정 실시예들에서, 스토리지(2306)는 비휘발성의, 고체상태(solid-state) 메모리이다. 특정 실시예들에서, 스토리지(2306)는 읽기 전용 메모리(read-only memory: ROM)를 포함한다. 적절한 경우, 이 ROM은 마스크-프로그램된(mask-programmed) ROM, 프로그램가능 ROM(programmable ROM: PROM), 소거가능 PROM(erasable PROM: EPROM), 전기적 소거가능 PROM(electrically erasable PROM: EEPROM), 전기적 변경가능 ROM(electrically alterable ROM: EAROM), 또는 플래시 메모리 또는 이들 중 둘 이상의 조합일 수 있다. 본 개시는 어떤 적절한 물리적 형태라도 취하는 대용량 스토리지(2306)를 고려하고 있다. 스토리지(2306)는, 적절한 경우, 프로세서(2302)와 스토리지(2306) 간의 통신을 용이하게 하는 하나 이상의 스토리지 제어 유닛들(storage control units)을 포함할 수 있다. 적절한 경우, 스토리지(2306)는 하나 이상의 스토리지들(2306)을 포함할 수 있다. 본 개시는 특정 스토리지를 설명 및 예시하고 있지만, 본 개시는 어떤 적절한 스토리지라도 고려하고 있다.
특정 실시예들에서, I/O 인터페이스(2308)는, 컴퓨터 시스템(2300)과 하나 이상의 I/O 디바이스들 간의 통신을 위한 하나 이상의 인터페이스들을 제공하는, 하드웨어, 소프트웨어, 또는 이 둘 모두를 포함한다. 컴퓨터 시스템(2300)은, 적절한 경우, 이러한 I/O 디바이스들 중 하나 이상을 포함할 수 있다. 이러한 I/O 디바이스들 중 하나 이상은 사람과 컴퓨터 시스템(2300) 간의 통신을 가능하게 할 수 있다. 제한이 아닌 예로서, I/O 디바이스는 키보드, 키패드, 마이크(microphone), 모니터, 마우스, 프린터, 스캐너, 스피커, 스틸 카메라(still camera), 스타일러스(stylus), 태블릿, 터치 스크린, 트랙볼(trackball), 비디오 카메라, 다른 적절한 I/O 디바이스, 또는 이들 중 둘 이상의 조합을 포함할 수 있다. I/O 디바이스는 하나 이상의 센서들을 포함할 수 있다. 본 개시는 어떤 적절한 I/O 디바이스들 및 이들을 위한 어떤 적절한 I/O 인터페이스들(2306)이라도 고려하고 있다. 적절한 경우, I/O 인터페이스(2308)는, 프로세서(2302)가 이러한 I/O 디바이스들 중 하나 이상을 구동할 수 있도록 하는, 하나 이상의 디바이스 또는 소프트웨어 드라이버들을 포함할 수 있다. I/O 인터페이스(2308)는, 적절한 경우, 하나 이상의 I/O 인터페이스들(2306)을 포함할 수 있다. 본 개시가 특정 I/O 인터페이스를 설명 및 예시하고 있지만, 본 개시는 어떤 적절한 I/O 인터페이스라도 고려하고 있다.
특정 실시예들에서, 통신 인터페이스(2310)는, 컴퓨터 시스템(2300)과 하나 이상의 다른 컴퓨터 시스템들(2300) 또는 하나 이상의 네트워크들 간의 통신(예를 들면, 패킷-기반 통신)을 위한 하나 이상의 인터페이스들을 제공하는, 하드웨어, 소프트웨어, 또는 이 둘 모두를 포함한다. 제한이 아닌 예로서, 통신 인터페이스(2310)는 이더넷(Ethernet) 또는 기타 유선-기반 네트워크와 통신하기 위한 네트워크 인터페이스 컨트롤러(network interface controller: NIC) 또는 네트워크 어댑터, 또는 WI-FI 네트워크와 같은 무선 네트워크와 통신하기 위한 무선 NIC(wireless NIC: WNIC) 또는 무선 어댑터를 포함할 수 있다. 본 개시는 어떤 적절한 네트워크 및 이를 위한 어떤 적절한 통신 인터페이스(2310)라도 고려하고 있다. 제한이 아닌 예로서, 컴퓨터 시스템(2300)은 애드혹(ad hoc) 네트워크, 개인 영역 네트워크(personal area network: PAN), 로컬 영역 네트워크(local area network: LAN), 광역 네트워크(wide area network: WAN), 대도시 영역 네트워크(metropolitan area network: MAN), 또는 인터넷의 하나 이상의 부분들 또는 이들 중 둘 이상의 조합과 통신할 수 있다. 이러한 네트워크들 중 하나 이상의 네트워크의 하나 이상의 부분들은 유선 또는 무선일 수 있다. 일 예로, 컴퓨터 시스템(2300)은 무선 PAN(wireless PAN: WPAN)(예를 들면, 블루투스 WPAN), WI-FI 네트워크, WI-MAX 네트워크, 셀룰러 전화 네트워크(예를 들면, 이동 통신을 위한 글로벌 시스템(Global System for Mobile Communications: GSM) 네트워크), 또는 기타 적절한 무선 네트워크 또는 이들 중 둘 이상의 조합과 통신할 수 있다. 컴퓨터 시스템(2300)은, 적절한 경우, 이러한 네트워크들 중 어떤 것을 위한 어떤 적절한 통신 인터페이스(2310)라도 포함할 수 있다. 통신 인터페이스(2310)는, 적절한 경우, 하나 이상의 통신 인터페이스들(2310)을 포함할 수 있다. 본 개시는 특정 통신 인터페이스를 설명 및 예시하고 있지만, 본 개시는 어떤 적절한 통신 인터페이스라도 고려하고 있다.
특정 실시예들에서, 버스(2312)는, 컴퓨터 시스템(2300)의 구성요소들을 서로 결합시키는, 하드웨어, 소프트웨어, 또는 이 둘 모두를 포함한다. 제한이 아닌 예로서, 버스(2312)는 가속 그래픽 포트(Accelerated Graphics Port: AGP) 또는 기타 그래픽 버스, 향상된 산업 표준 아키텍처(Enhanced Industry Standard Architecture: EISA) 버스, 프론트 사이드 버스(front-side bus: FSB), 하이퍼트랜스포트(HYPERTRANSPORT: HT) 인터커넥트(interconnect), 산업 표준 아키텍처(Industry Standard Architecture: ISA) 버스, 인피니밴드(INFINIBAND) 인터커넥트, 로우 핀 카운트(low-pin-count: LPC) 버스, 메모리 버스, 마이크로채널 아키텍처(Micro Channel Architecture: MCA) 버스, 주변 구성요소 인터커넥트(Peripheral Component Interconnect: PCI) 버스, PCI-익스프레스(PCI-Express: PCIe) 버스, 직렬 고급 기술 결합(serial advanced technology attachment: SATA) 버스, 비디오 전자공학 표준 위원회 로컬 버스(Video Electronics Standards Association local bus: VLB), 또는 다른 적절한 버스 또는 이들 중 둘 이상의 조합을 포함할 수 있다. 버스(2312)는, 적절한 경우, 하나 이상의 버스들(2312)을 포함할 수 있다. 본 개시는 특정 버스를 설명 및 예시하고 있지만, 본 개시는 어떤 적절한 버스 또는 인터커넥트도 고려하고 있다.
본 명세서에서, 컴퓨터-판독가능(computer-readable) 비일시적(non-transitory) 저장 매체 또는 매체들은, 적절한 경우, 하나 이상의 반도체-기반 또는 기타 집적 회로들(integrated circuits: ICs)(예를 들면, 필드-프로그램가능 게이트 어레이(FPGA)들 또는 애플리케이션-특정적 IC들(application-specific ICs: ASICs)), 하드 디스크 드라이브들(HDDs), 하이브리드 하드 드라이브들(hybrid hard drives: HHDs), 광디스크들, 광디스크 드라이브들(optical disc drives: ODDs), 광자기 디스크들, 광자기 드라이브들, 플로피 디스켓들, 플로피 디스크 드라이브들(floppy disk drives: FDDs), 자기 테이프들, 고체-상태 드라이브들(solid-state drives: SSDs), RAM-드라이브들, 시큐어 디지털(SECURE DIGITAL) 카드들 또는 드라이브들, 다른 어떤 적절한 컴퓨터-판독가능 비일시적 저장 매체들, 또는 이들 중 둘 이상의 어떤 적절한 조합을 포함할 수 있다. 컴퓨터-판독가능 비일시적 저장 매체는, 적절한 경우, 휘발성이거나, 비휘발성이거나, 또는 휘발성 및 비휘발성의 조합일 수 있다.
본 명세서에서, 명백히(expressly) 달리 표시되거나 또는 문맥상(by context) 달리 표시되지 않는 한, "또는(or)"은 포괄적(inclusive)이며 배타적(exclusive)이지 않다. 그러므로, 본 명세서에서, 명백히 달리 표시되거나 문맥상 달리 표시되지 않는 한, "A 또는 B"는 "A, B, 또는 둘 모두"를 의미한다. 또한, 명백히 달리 표시되거나 문맥상 달리 표시되지 않는 한, "및(그리고)(and)"은 공동적(joint)인 동시에 개별적(several)이다. 그러므로, 본 명세서에서, 명백히 달리 표시되거나 문맥상 달리 표시되지 않는 한, "A 및 B"는 "공동으로 또는 개별적으로, A 및 B"를 의미한다.
본 명세서에서, 명백히 달리 표시되거나 문맥상 달리 표시되지 않는 한, "자동적으로(automatically)" 및 그 파생어들은 "인간의 개입 없이"를 의미한다.
본 개시의 범위는, 본 개시가 속하는 기술분야의 통상의 지식을 가진 자가 이해할 수 있는, 본 명세서에서 설명되거나 또는 예시된 예시적인 실시예들에 대한 모든 변경들, 치환들, 및 변형들을 포괄한다. 본 개시의 범위는 본 명세서에서 설명 또는 예시된 예시적인 실시예들에 제한되지 않는다. 또한, 본 개시는 본 명세서에서 각각의 실시예들이 특정 구성요소들(components), 요소들(elements), 특징들(features), 기능들(functions), 동작들(operations), 또는 단계들(steps)을 포함하는 것으로 설명 및 예시하고 있지만, 이러한 실시예들 중 어떤 것이라도, 본 개시가 속하는 기술분야의 통상의 지식을 가진 자가 이해할 수 있는, 본 명세서 어디에서라도 설명 또는 예시된 구성요소들, 요소들, 특징들, 기능들, 동작들, 또는 단계들 중 어떤 것의 어떤 조합(combination) 또는 순열(permutation)이라도 포함할 수 있다. 나아가, 첨부된 청구범위에서 장치(apparatus) 또는 시스템 또는 장치 또는 시스템의 구성요소가 특정 기능을 수행하도록 적응되다(adapted to), 배치되다(arranged to), 할 수 있게 되다(capable of), 구성되다(configured to), 가능하게 되다(enabled to), 작동 가능하다(operable to), 또는 작동적이다(operative to)라고 언급하는 것은, 해당 장치, 시스템, 또는 구성요소가 그렇게 적합화되거나, 배치되거나, 할 수 있게 되거나, 구성되거나, 가능하게 되거나, 작동 가능하거나, 또는 작동적인 한, 그것 또는 해당 특정 기능이 활성화되거나(activated), 켜지거나(turned on), 또는 잠금해제되어(unlocked) 있는지 여부에 상관 없이, 해당 장치, 시스템, 또는 구성요소를 포함한다. 또한, 본 개시는 특정 실시예들이 특정 이점들을 제공하는 것으로 설명 또는 예시하고 있지만, 특정 실시예들은 이러한 이점들 중 아무것도 제공하지 않거나 또는 이러한 이점들 중 일부 또는 전부를 제공할 수 있다.
Claims (15)
- 사용자 행동 데이터(user behavior data) 및 상기 사용자 행동 데이터와 연관된 컨텍스트 정보(contextual information)를 수신하고, 상기 컨텍스트 정보는 제1 컨텍스트 유형과 연관된 제1 데이터 부분을 포함하는 단계;
해싱 알고리즘(hashing algorithm)을 이용하여, 상기 사용자 행동 데이터 및 상기 컨텍스트 정보로부터, 상기 사용자 행동 데이터를 나타내는 제1 해시 코드 부분 및 상기 제1 컨텍스트 유형과 연관된 상기 제1 데이터 부분을 나타내는 제2 해시 코드 부분을 포함하는 제1 이종 해시 코드(first heterogeneous hash code)를 생성하는 단계;
상기 제1 컨텍스트 유형과 연관된 제2 데이터 부분을 나타내는 제3 해시 코드 부분을 포함하는 제2 이종 해시 코드(second heterogeneous hash code)에 액세스하는 단계; 및
상기 제1 이종 해시 코드의 상기 제2 해시 코드 부분과 상기 제2 이종 해시 코드의 상기 제3 해시 코드 부분 간의 유사도(similarity)를 결정하는 단계를 포함하는, 상기 제1 이종 해시 코드와 상기 제2 이종 해시 코드를 비교하는 단계;를 포함하는, 컴퓨터-구현 방법. - 제1 항에 있어서, 상기 컨텍스트 정보는 제2 컨텍스트 유형과 연관된 제3 데이터 부분을 더 포함하고, 상기 제1 이종 해시 코드는 상기 제2 컨텍스트 유형과 연관된 상기 제3 데이터 부분을 나타내는 제4 해시 코드 부분을 더 포함하는, 컴퓨터-구현 방법.
- 제2 항에 있어서, 상기 제1 컨텍스트 유형은 위치 유형, 날짜/시간 유형, 또는 인구통계(demographic) 유형 중 적어도 하나를 포함하며, 상기 제1 컨텍스트 유형은 상기 제2 컨텍스트 유형과는 상이한, 컴퓨터-구현 방법.
- 제2 항에 있어서, 상기 제2 이종 해시 코드는 상기 제2 컨텍스트 유형과 연관된 제4 데이터 부분을 나타내는 제5 해시 코드 부분을 포함하고;
상기 제1 이종 해시 코드와 상기 제2 이종 해시 코드를 비교하는 단계는 상기 제1 이종 해시 코드의 상기 제4 해시 코드 부분과 상기 제2 이종 해시 코드의 상기 제5 해시 코드 부분 간의 유사도를 결정하는 단계;를 더 포함하는, 컴퓨터-구현 방법. - 제1 항에 있어서, 상기 제2 해시 코드 부분은 상기 제1 데이터 부분과 상기 제3 데이터 부분 간의 상관관계(correlation)에 더 기초하고;
상기 제4 해시 코드 부분은 상기 제3 데이터 부분과 상기 제1 데이터 부분 간의 상관관계에 더 기초하는, 컴퓨터-구현 방법. - 제1 항에 있어서, 상기 제1 해시 코드 부분은 상기 사용자 행동 데이터와 상기 제1 데이터 부분 간의 상관관계에 더 기초하고;
상기 제2 해시 코드 부분은 상기 제1 데이터 부분과 상기 사용자 행동 데이터 간의 상관관계에 더 기초하는, 컴퓨터-구현 방법. - 제1 항에 있어서,
상기 제1 이종 해시 코드와 상기 제2 이종 해시 코드를 비교하는 단계에 기초하여, 주어진 한 명 이상의 사용자들의 세트와의 유사도의 임계 레벨(threshold level of similarity) 내의 한 명 이상의 사용자들의 새로운 세그먼트(new segment)를 식별하는 단계; 및
상기 새로운 세그먼트로부터 적어도 한 명의 사용자를 추가함으로써 상기 주어진 세트를 확장하는(expanding) 단계;를 더 포함하는, 컴퓨터-구현 방법. - 제1 항에 있어서,
이종 해시 코드 데이터베이스에 상기 제1 이종 해시 코드를 저장하는(storing) 단계;를 더 포함하고, 저장된 상태에서, 상기 제1 해시 코드 부분은 상기 제2 해시 코드 부분과는 별도로 액세스 가능하고, 상기 제2 해시 코드 부분은 상기 제1 컨텍스트 유형과 연관되어 저장되는, 컴퓨터-구현 방법. - 제8 항에 있어서, 상기 제1 이종 해시 코드와 상기 제2 이종 해시 코드를 비교하는 단계는:
상기 제1 컨텍스트 유형에 기초하여 상기 제1 이종 해시 코드와 상기 제2 이종 해시 코드를 비교하는 요청을 수신하는 단계; 및
상기 이종 해시 코드 데이터베이스로부터, 상기 제1 컨텍스트 유형과 연관된, 상기 제1 이종 해시 코드 및 상기 제2 이종 해시 코드의 해시 코드 부분들을 검색하는(retrieving) 단계;를 포함하는, 컴퓨터-구현 방법. - 제1 항에 있어서, 상기 제1 이종 해시 코드의 상기 제2 해시 코드 부분과 상기 제2 이종 해시 코드의 상기 제3 해시 코드 부분 간의 유사도를 결정하는 단계는:
상기 제2 해시 코드 부분과 상기 제3 해시 코드 부분 간의 비트-단위 거리(bitwise distance)를 계산하는 단계;를 포함하는, 컴퓨터-구현 방법. - 명령어들(instructions)을 구현하는 하나 이상의 컴퓨터-판독가능 저장 매체들(computer-readable storage media); 및
상기 저장 매체들과 결합되고,
사용자 행동 데이터 및 상기 사용자 행동 데이터와 연관된 컨텍스트 정보를 수신하고, 상기 컨텍스트 정보는 제1 컨텍스트 유형과 연관된 제1 데이터 부분을 포함하고;
해싱 알고리즘을 이용하여, 상기 사용자 행동 데이터 및 상기 컨텍스트 정보로부터, 상기 사용자 행동 데이터를 나타내는 제1 해시 코드 부분 및 상기 제1 컨텍스트 유형과 연관된 상기 제1 데이터 부분을 나타내는 제2 해시 코드 부분을 포함하는 제1 이종 해시 코드를 생성하고;
상기 제1 컨텍스트 유형과 연관된 제2 데이터 부분을 나타내는 제3 해시 코드 부분을 포함하는 제2 이종 해시 코드에 액세스하고;
상기 제1 이종 해시 코드의 상기 제2 해시 코드 부분과 상기 제2 이종 해시 코드의 상기 제3 해시 코드 부분 간의 유사도를 결정하는 단계를 포함하여, 상기 제1 이종 해시 코드와 상기 제2 이종 해시 코드를 비교하는 상기 명령어들을 실행하는, 하나 이상의 프로세서들;을 포함하는, 장치(apparatus). - 제11 항에 있어서, 상기 컨텍스트 정보는 제2 컨텍스트 유형과 연관된 제3 데이터 부분을 더 포함하고, 상기 제1 이종 해시 코드는 상기 제2 컨텍스트 유형과 연관된 상기 제3 데이터 부분을 나타내는 제4 해시 코드 부분을 더 포함하는, 장치.
- 제12 항에 있어서, 상기 제1 컨텍스트 유형은 위치 유형, 날짜/시간 유형, 또는 인구통계 유형 중 적어도 하나를 포함하며, 상기 제1 컨텍스트 유형은 상기 제2 컨텍스트 유형과는 상이한, 장치.
- 제12 항에 있어서, 상기 제2 이종 해시 코드는 상기 제2 컨텍스트 유형과 연관된 제4 데이터 부분을 나타내는 제5 해시 코드 부분을 포함하고;
상기 제1 이종 해시 코드와 상기 제2 이종 해시 코드를 비교하는 단계는 상기 제1 이종 해시 코드의 상기 제4 해시 코드 부분과 상기 제2 이종 해시 코드의 상기 제5 해시 코드 부분 간의 유사도를 결정하는 단계를 더 포함하는, 장치. - 제1 항 내지 제10 항 중 어느 한 항의 방법을 수행하도록 실행되는 경우 작동 가능한 명령어들을 구현하는, 하나 이상의 컴퓨터-판독가능 저장 매체들.
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962814418P | 2019-03-06 | 2019-03-06 | |
US62/814,418 | 2019-03-06 | ||
US16/796,739 | 2020-02-20 | ||
US16/796,739 US11797843B2 (en) | 2019-03-06 | 2020-02-20 | Hashing-based effective user modeling |
PCT/KR2020/003213 WO2020180164A1 (en) | 2019-03-06 | 2020-03-06 | Hashing-based effective user modeling |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20210125590A true KR20210125590A (ko) | 2021-10-18 |
Family
ID=72335358
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020217031609A KR20210125590A (ko) | 2019-03-06 | 2020-03-06 | 해싱-기반의 효과적인 사용자 모델링 |
Country Status (5)
Country | Link |
---|---|
US (2) | US11797843B2 (ko) |
EP (1) | EP3903206A4 (ko) |
KR (1) | KR20210125590A (ko) |
CN (1) | CN113544659A (ko) |
WO (2) | WO2020180164A1 (ko) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11797843B2 (en) * | 2019-03-06 | 2023-10-24 | Samsung Electronics Co., Ltd. | Hashing-based effective user modeling |
CN113811893A (zh) * | 2019-05-23 | 2021-12-17 | 谷歌有限责任公司 | 用于引导架构演进的连接权重学习 |
AU2020337927B2 (en) | 2019-08-27 | 2023-03-09 | Netflix, Inc. | High efficiency interactive testing platform |
US11693849B2 (en) * | 2019-11-21 | 2023-07-04 | Dell Products L.P. | Consistent structured data hash value generation across formats and platforms |
US10909461B1 (en) * | 2020-05-08 | 2021-02-02 | Google Llc | Attention neural networks with locality-sensitive hashing |
US11455146B2 (en) * | 2020-06-22 | 2022-09-27 | Bank Of America Corporation | Generating a pseudo-code from a text summarization based on a convolutional neural network |
US20220318332A1 (en) * | 2021-03-30 | 2022-10-06 | Traceable Inc. | Intelligent naming of application program interfaces |
US11601718B2 (en) * | 2021-06-01 | 2023-03-07 | Hulu, LLC | Account behavior prediction using prediction network |
CN113377981B (zh) * | 2021-06-29 | 2022-05-27 | 山东建筑大学 | 基于多任务深度哈希学习的大规模物流商品图像检索方法 |
CN114036380A (zh) * | 2021-11-08 | 2022-02-11 | 重庆邮电大学 | 一种基于时间门控循环单元的跨领域序列智能推荐方法 |
US11676180B1 (en) * | 2022-08-05 | 2023-06-13 | Samsung Electronics Co., Ltd. | AI-based campaign and creative target segment recommendation on shared and personal devices |
Family Cites Families (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6281801B1 (en) | 1997-06-04 | 2001-08-28 | Bechtel Bwxt Idaho, Llc | System and method for monitoring water content or other dielectric influences in a medium |
US6965895B2 (en) * | 2001-07-16 | 2005-11-15 | Applied Materials, Inc. | Method and apparatus for analyzing manufacturing data |
JP2008535073A (ja) * | 2005-03-31 | 2008-08-28 | ブリティッシュ・テレコミュニケーションズ・パブリック・リミテッド・カンパニー | コンピュータネットワーク |
US7809752B1 (en) | 2005-04-14 | 2010-10-05 | AudienceScience Inc. | Representing user behavior information |
US8543598B2 (en) * | 2010-03-01 | 2013-09-24 | Microsoft Corporation | Semantic object characterization and search |
EP2902921B1 (en) | 2012-09-27 | 2019-07-24 | NEC Corporation | Method, device, and program for converting binary data |
US9880915B2 (en) * | 2014-03-05 | 2018-01-30 | Microsoft Technology Licensing, Llc | N-gram analysis of inputs to a software application |
US11323525B2 (en) | 2014-03-31 | 2022-05-03 | Jive Software, Inc. | Stream engine using compressed bitsets |
US9330104B2 (en) * | 2014-04-30 | 2016-05-03 | International Business Machines Corporation | Indexing and searching heterogenous data entities |
US10976404B2 (en) | 2014-06-23 | 2021-04-13 | Here Global B.V. | Fingerprint provision control based on device properties |
US10103890B2 (en) | 2014-08-08 | 2018-10-16 | Haw-Minn Lu | Membership query method |
KR101666740B1 (ko) | 2015-03-23 | 2016-10-17 | 성균관대학교산학협력단 | 빅 데이터 환경에서 의미론적 분석에 기반한 데이터마이닝을 위한 연관 규칙 생성 방법 |
US10402750B2 (en) | 2015-12-30 | 2019-09-03 | Facebook, Inc. | Identifying entities using a deep-learning model |
US9489410B1 (en) * | 2016-04-29 | 2016-11-08 | Umbel Corporation | Bitmap index including internal metadata storage |
US10270788B2 (en) | 2016-06-06 | 2019-04-23 | Netskope, Inc. | Machine learning based anomaly detection |
US10628382B2 (en) * | 2017-03-04 | 2020-04-21 | Vmware, Inc. | Teleporting content over network using hash matches |
US10255314B2 (en) * | 2017-03-16 | 2019-04-09 | International Business Machines Corporation | Comparison of block based volumes with ongoing inputs and outputs |
KR20170080551A (ko) | 2017-06-26 | 2017-07-10 | 아주대학교산학협력단 | 라이프스타일 데이터 관리 시스템 및 방법 |
US20190034497A1 (en) * | 2017-07-27 | 2019-01-31 | Nec Laboratories America, Inc. | Data2Data: Deep Learning for Time Series Representation and Retrieval |
US11190358B2 (en) | 2017-08-11 | 2021-11-30 | Secure Open Systems, Inc. | Hash-based data verification system |
US11251964B2 (en) | 2017-08-11 | 2022-02-15 | Secure Open Systems, Inc. | Hash contract generation and verification system |
CN107886243A (zh) * | 2017-11-10 | 2018-04-06 | 阿里巴巴集团控股有限公司 | 风险识别模型构建和风险识别方法、装置及设备 |
US20200065124A1 (en) | 2018-08-22 | 2020-02-27 | International Business Machines Corporation | Shortening just-in-time code warm up time of docker containers |
US11494618B2 (en) * | 2018-09-04 | 2022-11-08 | Nec Corporation | Anomaly detection using deep learning on time series data |
US11057373B2 (en) | 2018-11-16 | 2021-07-06 | Bank Of America Corporation | System for authentication using channel dependent one-time passwords |
DE102018221703A1 (de) | 2018-12-13 | 2020-06-18 | HELLA GmbH & Co. KGaA | Verifizierung und Identifizierung eines neuronalen Netzes |
US11409980B2 (en) | 2018-12-19 | 2022-08-09 | Acoustic Arc International Limited | Audio-effect-activated scent generation method and system |
US11797843B2 (en) | 2019-03-06 | 2023-10-24 | Samsung Electronics Co., Ltd. | Hashing-based effective user modeling |
US20210012426A1 (en) | 2019-07-08 | 2021-01-14 | Novodynamics, Inc. | Methods and systems for anamoly detection in dental insurance claim submissions |
US11537560B2 (en) | 2019-07-11 | 2022-12-27 | Samsung Electronics Co., Ltd. | Markers for hash code calculations on occupied portions of data blocks |
US20210182387A1 (en) * | 2019-12-12 | 2021-06-17 | International Business Machines Corporation | Automated semantic modeling of system events |
US11604834B2 (en) | 2020-05-08 | 2023-03-14 | Intel Corporation | Technologies for performing stochastic similarity searches in an online clustering space |
-
2020
- 2020-02-20 US US16/796,739 patent/US11797843B2/en active Active
- 2020-02-20 US US16/796,813 patent/US11615302B2/en active Active
- 2020-03-06 KR KR1020217031609A patent/KR20210125590A/ko unknown
- 2020-03-06 CN CN202080019076.2A patent/CN113544659A/zh active Pending
- 2020-03-06 EP EP20765778.4A patent/EP3903206A4/en active Pending
- 2020-03-06 WO PCT/KR2020/003213 patent/WO2020180164A1/en unknown
- 2020-03-13 WO PCT/KR2020/003560 patent/WO2020180170A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
US11797843B2 (en) | 2023-10-24 |
US11615302B2 (en) | 2023-03-28 |
US20200285960A1 (en) | 2020-09-10 |
EP3903206A1 (en) | 2021-11-03 |
US20200286112A1 (en) | 2020-09-10 |
CN113544659A (zh) | 2021-10-22 |
WO2020180170A1 (en) | 2020-09-10 |
EP3903206A4 (en) | 2022-03-16 |
WO2020180164A1 (en) | 2020-09-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11615302B2 (en) | Effective user modeling with time-aware based binary hashing | |
Oh et al. | Time-series data augmentation based on interpolation | |
US11687384B2 (en) | Real-time synthetically generated video from still frames | |
US10650245B2 (en) | Generating digital video summaries utilizing aesthetics, relevancy, and generative neural networks | |
Bolón-Canedo et al. | Feature selection for high-dimensional data | |
US20210374605A1 (en) | System and Method for Federated Learning with Local Differential Privacy | |
US20180068023A1 (en) | Similarity Search Using Polysemous Codes | |
US20140324879A1 (en) | Content based search engine for processing unstructured digital data | |
Gkoulalas-Divanis et al. | Modern privacy-preserving record linkage techniques: An overview | |
JP2022535165A (ja) | 多数の分類モジュールから集約された情報を使用するデータ分類 | |
Li et al. | Discover and mitigate unknown biases with debiasing alternate networks | |
CN117836765A (zh) | 基于多模态超图的点击预测 | |
CN113656699B (zh) | 用户特征向量确定方法、相关设备及介质 | |
US11775813B2 (en) | Generating a recommended target audience based on determining a predicted attendance utilizing a machine learning approach | |
Grob et al. | A recurrent neural network survival model: Predicting web user return time | |
EP3293696A1 (en) | Similarity search using polysemous codes | |
CN116805039A (zh) | 特征筛选方法、装置、计算机设备和数据扰动方法 | |
Arya et al. | Node classification using deep learning in social networks | |
Christen et al. | Advanced record linkage methods and privacy aspects for population reconstruction—a survey and case studies | |
US20220156336A1 (en) | Projecting queries into a content item embedding space | |
Xu et al. | Multi-view Heterogeneous Temporal Graph Neural Network for “Click Farming” Detection | |
Luengo et al. | Dimensionality reduction for big data | |
Wang et al. | Efficient sampling of training set in large and noisy multimedia data | |
US11989660B1 (en) | Transaction entity prediction with a global list | |
Cai et al. | Toward Sequential Recommendation Model for Long‐Term Interest Memory and Nearest Neighbor Influence |