KR102110265B1 - 온라인 시스템에서 사용자 행위에 기초한 특성 질의 - Google Patents

온라인 시스템에서 사용자 행위에 기초한 특성 질의 Download PDF

Info

Publication number
KR102110265B1
KR102110265B1 KR1020167026766A KR20167026766A KR102110265B1 KR 102110265 B1 KR102110265 B1 KR 102110265B1 KR 1020167026766 A KR1020167026766 A KR 1020167026766A KR 20167026766 A KR20167026766 A KR 20167026766A KR 102110265 B1 KR102110265 B1 KR 102110265B1
Authority
KR
South Korea
Prior art keywords
feature
user
store
incremental
cumulative
Prior art date
Application number
KR1020167026766A
Other languages
English (en)
Other versions
KR20160116050A (ko
Inventor
라이언 알렌 스타우트
밍 후아
홍 얀
Original Assignee
페이스북, 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 페이스북, 인크. filed Critical 페이스북, 인크.
Publication of KR20160116050A publication Critical patent/KR20160116050A/ko
Application granted granted Critical
Publication of KR102110265B1 publication Critical patent/KR102110265B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/101Collaborative creation, e.g. joint development of products or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/01Social networking

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Human Resources & Organizations (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Strategic Management (AREA)
  • Data Mining & Analysis (AREA)
  • General Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Tourism & Hospitality (AREA)
  • Economics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Primary Health Care (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Computational Linguistics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

온라인 시스템, 예컨대 소셜 네트워킹 시스템은 온라인 시스템에 표현되는 엔터티들 사이의 관계를 서술하는 특징들을 저장한다. 특징을 서술하는 정보는 그래프로 표현된다. 온라인 시스템은 누적 특징 그래프 및 증분 특징 그래프를 유지한다. 최근 사용자 행위에 기초한 특징 값들은 증분 그래프에 저장되고 이전 행위에 기초한 특징 값들은 누적 그래프에 저장된다. 주기적으로 증분 특징 그래프에 저장된 정보가 누적 특징 그래프에 저장된 정보에 병합된다. 증분 그래프는 병합 동안 비활성으로 표시되고 새로운 사용자 행위에 치고한 정보는 활성 증분 그래프에 저장된다. 특정 정보의 요청이 수신되면, 누적 특징 그래프, 비활성 증분 특징 그래프 및 활성 증분 특징 그래프로부터 획득된 특징 정보가 특징 정보를 결정하기 위하여 결합된다.

Description

온라인 시스템에서 사용자 행위에 기초한 특성 질의{QUERYING FEATURES BASED ON USER ACTIONS IN ONLINE SYSTEMS}
본 발명은 온라인 시스템, 예컨대 소셜 네트워킹 시스템에서 사용자 행위를 서술하는 특성들을 업데이트하는 것에 관한 것으로, 구체적으로 온라인 시스템에서 사용자 행위에 기초하여 실시간으로 업데이트되는 특성을 질의하는 것에 관한 것이다.
온라인 시스템은 사용자에게 유용한 정보를 제시하고 사용자가 종종 온라인 시스템과 상호작용하게 한다. 온라인 시스템은 사용자에게 정보를 제시하기 전에 사용자가 관심을 가질 수 있는 정보를 결정하기 위하여 다양한 기술을 사용할 수 있다. 사용자는 그들이 좋아하는 정보가 제시된다면 규치적으로 온라인 시스템을 방문할 확률이 높다. 온라인 시스템은 종종 광고로부터 수입을 올린다. 광고는 그들의 사용자에 의해 규칙적으로 방문되는 온라인 시스템에서 광고되는 것이 바람직하다. 따라서 사용자의 충성도가 온라인 시스템에 의해 생성된 수입을 결정할 수 있다. 결과적으로 사용자에게 흥미있는 정보를 제시하는 온라인 시스템의 능력은 통상 온라인 시스템에 의해 얻어지는 수입에 영향을 준다.
온라인 시스템은 종종 온라인 시스템에 의해 행해진 행위에 관한 결정을 하기 위하여 과거 사용자 행위들을 사용한다. 예컨대, 과거 사용자 행동은 사용자가 흥미를 발견할 수 있는 정보를 사용자에게 제시하기 위하여 온라인 시스템에 의해 사용될 수 있다. 온라인 시스템의 예는 사용자가 서로 연결을 형성할 수 있게 하는 소셜 네트워킹 시스템이다. 소셜 네트워킹 시스템은 사용자에게 흥미있을 수 있는 뉴스피드 스토리를 식별하거나 사용자에게 추천하기 위하여 사용자의 잠재적 친구들을 식별하기 위하여 과거 사용자 행위를 사용할 수 있다. 온라인 시스템은 사용자에게 흥미있을 수 있는 정보를 결정하기 위하여 예컨대 기계 학습 모델인 예측기 모델을 사용할 수 있다. 이러한 모델은 온라인 시스템에서 사용자 및 그들의 행위를 서술하는 특징들에 기초하여 행위를 예측한다.
온라인 시스템은 종종 온라인 시스템과 규칙적으로 상호작용하며 온라인 시스템에서 많은 양의 정보를 생성하는 많은 수의 사용자들, 예컨대 수십만 또는 수백만의 사용자들을 가질 수 있다. 생성된 정보는 온라인 시스템의 모델 또는 특징에 기초하여 결정을 하는 다양한 모듈들에 의해 사용되는 특징 값들을 결정하기 위하여 사용될 수 있다. 통상, 온라인 시스템은 과거에 취해진 사용자 행위들의 세트에 기초하여 특징들을 유지한다. 특징을 업데이트하는 것은 계산 집약적이며 복잡한 동작일 수 있다. 따라서, 특징 값은 매우 자주 업데이트될 수 없다. 결과적으로 온라인 시스템과의 상호작용의 패턴에 있어서 최근 변화들은 상당히 늦게까지 특징에 반영될 수 없다. 예컨대, 온라인 시스템의 사용자 인터페이스가 변하면, 온라인 시스템과의 사용자 상호작용이 상당히 변할 수 있다. 마찬가지로, 기술에 변화가 있다면, 온라인 시스템과의 사용자 상호작용이 상당히 변할 수 있다. 예컨대, 이전에 모바일 장치를 통하여 접근할 수 없었던 온라인 시스템이 모바일 장치를 통하여 접근할 수 있게 되면, 사용자들은 이전에 가능하지 않았거나 일반적이지 않았던 새로운 방식으로 온라인 시스템과 상호작용할 수 있다. 그러나, 온라인 시스템의 특징 값들이 이러한 최근 변화를 반영하지 않는다면, 특징 값들을 기초로 온라인 시스템에 의해 이루어진 결정은 사용자 행동에 있어서 최근 변화를 반영하지 않는다. 결과적으로, 온라인 시스템은 더 이상 사용자와 관련이 없는 행위를 행하거나 사용자에게 흥미롭지 않은 정보를 제시할 수 있다.
본 발명은 온라인 시스템, 예컨대 소셜 네트워킹 시스템에서 사용자 행위를 서술하는 특성들을 업데이트하는 것에 관한 것으로, 구체적으로 온라인 시스템에서 사용자 행위에 기초하여 실시간으로 업데이트되는 특성을 질의하는 것에 관한 것이다.
본 발명의 실시예들은 온라인 시스템이 사용자에 의해 수행된 행위들에 기초하여 사용자와 엔터티 사이의 관계를 나타내는 특징 값들을 질의하도록 한다. 예컨대, 소셜 네트워킹 시스템은 사용자와 사용자에 연결된 다른 사용자 사이의 상호작용에 기초하여 특징 값들을 저장할 수 있다. 각 특징은 사용자, 타겟 엔터티 및 타겟 엔터티에 관하여 사용자에 의해 수행된 사용자 행위에 기초한 값과 관련될 수 있다. 온라인 시스템은 누적 특징 스토어 및 증분 특징 스토어를 유지한다. 누적 특징 스토어는 주어진 시점 전에 수행된 사용자 행위로부터 결정된 특징 값들을 저장하고, 증분 특징 스토어는 주어진 시점 후에 수행된 사용자 행위로부터 결정된 특징 값들을 저장한다.
사용자 및 특징 유형을 식별하는 특징 값의 요청이 수신된다. 주어진 시점 전에 수행된 사용자 행위로부터 결정된 특징 값에 대한 제1 부분 결과가 누적 특징 스토어로부터 수신된다. 주어진 시점 후에 수행된 사용자 행위로부터 결정된 특징 값에 대한 제2 부분 결과가 증분 특징 스토어로부터 수신된다. 특징 값은 제1 부분 결과가 감쇠 인자에 의해 가중되도록 제1 부분 결과와 제2 부분 결과를 결합하는 것에 의해 결정된다. 결정된 특징은 요청자에게 리턴된다.
일 실시예로, 증분 특징 스토어에 저장된 특징 값들은 온라인 시스템의 사용자에 의해 수행된 현재 사용자 행위에 응답하여 업데이트된다. 또한 이후 시점에 증분 특징 스토어에 대한 업데이트가 정지된다. 새로운 증분 특징 스토어가 이후 시점 후에 일어나는 사용자 행위를 사용하여 결정된 특징 값들을 저장하기 위하여 유지된다. 특징에 대한 요청에 응답하여, 이후 시간 가격 후에 수신된 사용자 행위를 사용하여 결정된 제3 부분 결과가 새로운 증분 특징 스토어로부터 검색된다. 특징 값은 제1 부분 결과, 제2 부분 결과 및 제3 부분 결과를 결합하는 것에 의해 결정된다. 부분 결과들의 결합은 감쇠 인자에 의해 제1 부분 결과를 가중하는 것에 의해 수행된다. 제2 부분 결과는 다른 감쇠 인자에 의해 가중될 수 있다. 증분 특징 스토어로부터의 특징 값들은 누적 스토어의 특징 값들과 병합될 수 있으며, 증분 특징 스토어는 리셋된다.
본 발명의 내용 및 이하의 상세한 설명에 서술된 특징 및 이점은 모두를 포함하는 것은 아니다. 많은 추가 특징 및 이점들이 도면, 상세한 설명 및 청구범위의 고려하여 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 자명할 것이다.
본 발명에 따른 실시예들은 방법, 매체 및 시스템에 관한 첨부된 특허청구범위에 개시되며, 여기서 한 청구범위 카테고리, 예컨대 방법에 언급된 임의의 특징은 다른 청구범위 카테고리, 예컨대, 시스템에도 역시 청구될 수 있다.
본 발명에 따른 일 실시예로,
온라인 시스템에 의해 시점 전에 수행된 사용자 행위로부터 결정된 특징 값들을 저장하는 누적 특징 스토어를 유지하는 단계;
온라인 시스템에 의해 시점 후에 수행된 사용자 행위로부터 결정된 특징 값들을 저장하는 증분 특징 스토어를 유지하는 단계;
사용자 및 특징을 식별하는 특징 값 요청을 수신하는 단계;
누적 특징 스토어로부터 상기 시점 전에 사용자에 의해 수행된 유형의 사용자 행위로부터 결정된 제1 부분 결과를 수신하는 단계;
증분 특징 스토어로부터 상기 시점 후에 사용자에 의해 수행된 유형의 사용자 행위로부터 결정된 제2 부분 결과를 수신하는 단계;
상기 제1 및 제2 부분 결과를 포함하는 가중된 결합을 결정하는 단계; 및
상기 가중된 결합을 요청된 특징 값으로 리턴하는 단계를 포함하며,
상기 증분 특징 스토어를 유지하는 단계는 사용자 행위를 서술하는 정보를 수신하는 것에 응답하여 증분 특징 스토어의 특징 값들을 업데이트하는 단계를 포함하고,
상기 제1 부분 결과는 감쇠 인자에 의해 가중되는, 컴퓨터-구현 방법이 제공된다.
상기 감쇠 인자는 1보다 작은 값일 수 있다.
상기 감쇠 인자는 특징과 관련된 유형에 더 기초할 수 있다.
청구범위에서 청구될 수 있는 본 발명의 다른 실시예에서,
상기 증분 특징 스토어는 제1 증분 특징 스토어이며,
온라인 시스템에 의해 제2 증분 특징 스토어를 유지하는 단계;
이후 시점에 제1 증분 특징 스토어를 비활성으로 표시하고 상기 이후 시점 이후에 온라인 시스템에 의해 수신된 사용자 행위에 응답하여 제2 증분 특징 스토어의 특징들을 업데이트하는 단계; 및
상기 요청을 수신하는 단계에 응답하여, 제2 증분 특징 스토어로부터 제3 부분 결과를 수신하는 단계를 더 포함하는 컴퓨터-구현 방법이 제공된다.
바람직하게 상기 가중된 결합은 제3 부분 결과를 더 포함한다.
바람직하게 상기 가중된 결합은 제2 감쇠 인자에 의해 제3 부분 결과를 가중한다.
특징은 사용자 행위 또는 다른 특징 값들을 서술하는 값들 중 하나 이상에 기초한 식으로 표현될 수 있다.
역시 청구될 수 있는 다른 실시예에서,
증분 특징 스토어를 비활성으로 표시하고 증분 특징 스토어에 저장된 특징 값들에 대한 업데이트를 중단하는 단계;
증분 특징 스토어로부터의 특징 값들 및 누적 특징 스토어로부터의 해당 특징 값들의 가중된 결합을 결정하는 단계; 및
누적 특징 스토어의 특징 값들을 가중된 결합으로 업데이트하는 단계를 더 포함하며,
상기 누적 특징 스토어의 특징 값들은 감쇠 인자에 의해 가중되는 컴퓨터-구현 방법이 제공된다.
상기 컴퓨터-구현 방법은 누적 특징 스토어에 사용되는 데이터 스토어와 비교하여, 더 빠른 데이터 접속을 제공하는 데이터 스토어에 증분 특징 스토어를 저장하는 단계를 더 포함할 수 있다.
증분 특징 스토어는 랜덤 액세스 메모리에 저장될 수 있다.
각 특징은 사용자, 타겟 엔터티 및 타겟 엔터티와 관련된 사용자에 의해 수행된 사용자 행위에 기초한 특징 값과 관련될 수 있다.
청구범위에 청구될 수 있는 본 발명에 따른 실시예에서, 컴퓨터-실행가능한 코드를 저장하는 비-일시적 컴퓨터-판독가능한 저장 매체를 가지는 컴퓨터 프로그램 제품이 제공되며, 상기 코드는,
시점 전에 수행된 사용자 행위로부터 결정된 특징 값들을 저장하는 누적 특징 스토어를 유지하고, 시점 후에 수행된 사용자 행위로부터 결정된 특징 값들을 저장하는 증분 특징 스토어를 유지하도록 구성된 온라인 시스템의 특징 관리기 모듈; 및
사용자 및 한 유형의 사용자 행위와 관련된 특징을 식별하는, 특징 값에 대한 요청을 수신하고; 누적 특징 스토어로부터 상기 시점 전에 사용자에 의해 수행된 유형의 사용자 행위로부터 결정된 제1 부분 결과를 수신하며; 증분 특징 스토어로부터 상기 시점 후에 사용자에 의해 수행된 유형의 사용자 행위로부터 결정된 제2 부분 결과를 수신하고; 상기 제1 및 제2 부분 결과를 포함하는 가중된 결합을 결정하며; 상기 가중된 결합을 요청된 특징 값으로 리턴하도록 구성된 요청 프로세서 모듈을 포함하며,
상기 증분 특징 스토어를 유지하는 것는 사용자 행위를 서술하는 정보를 수신하는 것에 응답하여 증분 특징 스토어의 특징 값들을 업데이트하는 것을 포함하고,
상기 제1 부분 결과는 감쇠 인자에 의해 가중된다.
청구범위에 청구될 수 있는 다른 실시예는:
상기 특징 관리기가
제2 증분 특징 스토어를 유지하고;
이후 시점에 제1 증분 특징 스토어를 비활성으로 표시하고 상기 이후 시점 이후에 온라인 시스템에 의해 수신된 사용자 행위에 응답하여 제2 증분 특징 스토어의 특징들을 업데이트하도록 더 구성되며,
상기 요청 프로세서 모듈이
상기 요청을 수신하는 것에 응답하여, 제2 증분 특징 스토어로부터 제3 부분 결과를 수신하도록 더 구성되는 컴퓨터 프로그램 제품을 포함한다.
상기 특징 관리기는:
증분 특징 스토어를 비활성으로 표시하고 증분 특징 스토어에 저장된 특징 값들에 대한 업데이트를 중단하며;
증분 특징 스토어로부터의 특징 값들 및 누적 특징 스토어로부터의 해당 특징 값들의 가중된 결합을 결정하고;
누적 특징 스토어의 특징 값들을 가중된 결합으로 업데이트하도록 더 구성될 수 있으며,
상기 누적 특징 스토어의 특징 값들은 감쇠 인자에 의해 가중되는 것을 특징으로 한다.
상기 특징 관리기는 누적 특징 스토어에 사용되는 데이터 스토어에 비하여 빠른 데이터 접속을 제공하는 데이터 스토어에 증분 특징 스토어를 저장하도록 더 구성될 수 있다
청구범위에 청구될 수 있는 다른 실시예는,
온라인 시스템에 의해 시점 전에 수행된 사용자 행위로부터 결정된 특징 값들을 저장하는 누적 특징 스토어를 유지하는 단계;
온라인 시스템에 의해 시점 후에 수행된 사용자 행위로부터 결정된 특징 값들을 저장하는 증분 특징 스토어를 유지하는 단계;
특징 값에 대하여 사용자 및 특징을 식별하는 요청을 수신하는 단계;
누적 특징 스토어로부터 상기 시점 전에 사용자에 의해 수행된 유형의 사용자 행위로부터 결정된 제1 부분 결과를 수신하는 단계;
증분 특징 스토어로부터 상기 시점 후에 사용자에 의해 수행된 유형의 사용자 행위로부터 결정된 제2 부분 결과를 수신하는 단계;
상기 제1 및 제2 부분 결과를 포함하는 가중된 결합을 결정하는 단계; 및
상기 가중된 결합을 요청된 특징 값으로 리턴하는 단계를 포함하며,
상기 증분 특징 스토어를 유지하는 단계는 사용자 행위를 서술하는 정보를 수신하는 것에 응답하여 증분 특징 스토어의 특징 값들을 업데이트하는 단계를 포함하고,
상기 제1 부분 결과는 감쇠 인자에 의해 가중되는, 특히 예측기 모델의 입력 값으로 사용되는 많은 양의 특징 값들을 핸들링하기 위한 컴퓨터-구현 방법을 포함한다.
바람직하게 특징은 사용자 행위 또는 다른 특징 값들을 서술하는 값들 중 하나 이상에 기초한 식으로 표현될 수 있으며,
구체적으로 특징은,
둘 이상의 사용자들 사이의 상호작용율에 기초한 온라인 시스템의 둘 이상의 사용자들 사이의 근접성, 및/또는
예컨대 과거에 사용자에 의해 검색된 정보의 유형과 같이 사용자 또는 사용자 상호작용에 의해 특정된 사용자 관심과 같이 사용자를 서술하는 정보에 기초한 사용자가 특정 정보에 관심이 있을 수 있는 확률, 및/또는
사용자가 특정 정보를 서술하는 페이지에 접속할 확률, 및/또는
사용자가 이미지, 비디오, 또는 온라인 시스템 상에서 이용가능한 임의의 다른 유형의 컨텐츠에 접속할 확률과 같이,
온라인 시스템의 사용자들 또는 온라인 시스템과 온라인 시스템의 사용자의 상호작용, 또는 온라인 시스템에 의해 표현되는 엔터티들을 서술하는 정보에 기초한 값일 수 있다.
누적 특징 스토어의 특징 값들을 업데이트하는 단계는:
누적 특징 스토어에 증분 특징 스토어를 병합하는 단계를 포함할 수 있으며,
증분 특징 스토어로부터의 새로운 특징이 포함되고,
증분 특징 스토어와 누적 특징 스토어 사이의 중복 특징들을 변경하고,
특징 값들의 업데이트 및/또는 집계는 특징 자체에 따를 수 있다.
청구범위에 청구될 수 있는 본 발명의 다른 실시예에서, 실행시 본 발명 또는 상술한 실시예들 중 임의의 것에 따른 방법을 수행하도록 동작할 수 있는 소프트웨어를 구현하는 하나 이상의 컴퓨터 판독가능한 비-일시적 저장 매체가 제공된다.
청구범위에 청구될 수 있는 본 발명의 다른 실시예에서, 하나 이상의 프로세서; 및 프로세서에 연결된 메모리를 포함하며, 상기 메모리는 프로세서에 의해 실행가능한 명령어들을 포함하며, 상기 프로세서는 명령어들을 실행시 본 발명 또는 상술한 실시예들 중 임의의 것에 따른 방법을 수행하도록 동작가능한 시스템이 제공된다.
본 명세서 내용 중에 포함되어 있음.
도 1은 본 발명의 실시예에 따른, 온라인 시스템, 예컨대 소셜 네트워킹 시스템에 사용하기 위한 사용자 행위에 기초하여 특징을 유지하기 위한 시스템 환경의 도면이다.
도 2는 본 발명의 실시예에 따른, 온라인 시스템에서 표현되는 두 엔터티 사이의 상호작용을 나타내는 특징들을 도시하는 도면이다.
도 3은 본 발명의 실시예에 따른, 누적 특징 그래프와 증분 특징 그래프의 병합을 도시하는 도면이다.
도 4a는 본 발명의 실시예에 따른, 해당 사용자 행위가 이용가능해짐에 따라 처리를 위하여 다른 모듈들이 특징을 이용가능하게 하는 온라인 시스템, 예컨대 소셜 네트워킹 시스템의 시스템 구조를 도시한다.
도 4b는 본 발명의 실시예에 따른, 온라인 시스템의 특징을 관리하게 하는 특징 관리기 모듈의 서브 모듈들을 도시한다.
도 5는 본 발명의 실시예에 따른, 증분 특징 스토어와 누적 특징 스토어를 병합하는 전체 프로세서를 도시한다.
도 6은 본 발명의 실시예에 따른, 데이터를 누적 증분 특징과 병합하기 위한 활성 증분 특징 스토어 및 비활성 증분 특징 스토어를 도시하는 도면이다.
도 7a 내지 7c는 본 발명의 실시예에 따른, 누적 특징 스토어 및 증분 특징 스토어와 관련된 시간 간격을 도시한다.
도 8은 본 발명의 실시예에 따른, 증분 특징 스토어 및 누적 특징 스토어를 유지하는 시스템을 위한 특징 값 요청을 처리하기 위한 전체 프로세스를 도시한다.
도면은 설명을 위하여 본 발명의 다양한 실시예들을 도시한다. 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면, 이하의 논의로부터 본 명세서에 개시된 발명의 범위를 벗어나지 않는 범위 내에서 본 명세서에 개시된 구조 및 방법의 대안 실시예들이 채용될 수 있음을 용이하게 인식할 수 있을 것이다.
다양한 실시예들에 대한 참조하 좀 더 상세히 이루어질 것이며, 그 예가 첨부된 도면에 도시된다. 가능한 곳이라면 유사하거나 동일한 참조번호가 도면들에 사용될 것이며, 유사하거나 동일한 기능을 가리킬 수 있음을 주지하라. 도면은 오직 설명을 위하여 개시된 시스템(또는 방법)의 실시예들을 도시한다. 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면, 이하의 논의로부터 본 명세서에 개시된 발명의 범위를 벗어나지 않는 범위 내에서 본 명세서에 개시된 구조 및 방법의 대안 실시예들이 채용될 수 있음을 용이하게 인식할 수 있을 것이다.
시스템 환경
도 1은 본 발명의 실시예에 따른, 온라인 시스템, 예컨대 소셜 네트워킹 시스템에서 사용하기 위한 사용자 행위에 기초하여 특징들을 유지하는 시스템 환경의 도면이다. 본 명세서에 개시된 발명은 비록 소셜 네트워킹 시스템을 사용하여 서술되지만, 사용자가 온라인 시스템과 상호작용할 수 있게 하는 임의의 온라인 시스템에 적용될 수 있다. 구체적으로, 소셜 네트워킹 시스템은 그들의 사용자에게 소셜 네트워킹 시스템의 다른 사용자와 통신하거나 상호작용하는 능력을 제공한다. 사용자는 소셜 네트워킹 시스템에 가입한 후, 그들이 연결되기 원하는 다수의 다른 사용자와의 연결을 추가한다. 본 명세서에 개시된 바와 같이 "친구"라는 용어는 소셜 네트워킹 시스템을 통하여 사용자가 연결, 연관 또는 관계를 형성한 임의의 다른 사용자를 말한다.
도 1 및 다른 도면들은 유사한 요소를 식별하기 위하여 유사한 참조번호를 사용한다. "110a"와 같이 참조번호 뒤의 문자는 본 명세서가 특정 참조번호를 가지는 요소를 구체적으로 언급함을 나타낸다. "110"와 같이 뒤따르는 문자가 없는 명세서 내의 참조번호는 그 참조번호를 가지고 있는 도면들 내의 임의의 또는 모든 요소들(예컨대, 명세서 내의 도면들 내의 참조번호 "110"는 "110a" 및/또는 "110b"를 언급한다)을 언급한다.
사용자들은 클라이언트 장치(110)를 사용하여 소셜 네트워킹 시스템(200)과 상호작용한다. 일 실시예로, 클라이언트 장치(110)는 예컨대, 마이크로소프트 윈도우-호환 운영 시스템(OS), 애플 OS X 및/또는 리눅스 배포판인 운영 시스템을 실행하는 개인용 컴퓨터(PC), 데스크탑 컴퓨터, 랩탑 컴퓨터, 노트북 태블릿 PC일 수 있다. 다른 실시예로, 클라이언트 장치(110)는 개인 휴대용 단말기(PDA), 모바일 전화, 스마트폰 등과 같은 컴퓨터 기능을 가지는 임의의 장치일 수 있다.
온라인 시스템(100)은 온라인 시스템(100)과 사용자 상호작용을 나타내는 다양한 신호(105)를 수신한다. 이러한 신호(105)를 서술하는 정보는 온라인 시스템에 특징으로 저장된다. 특징은 온라인 시스템의 사용자들, 또는 온라인 시스템(100) 또는 온라인 시스템(100)에 표현된 엔터티와 온라인 시스템의 사용자의 상호작용을 서술하는 정보에 기초한 값일 수 있다. 예컨대, 특징은 두 사용자 사이의 상호작용률에 기초하여 온라인 시스템의 두 사용자 사이의 접근성을 서술할 수 있다. 특징은 사용자를 서술하는 정보, 예컨대 사용자에 의해 특정된 사용자 관심이나 과거에 사용자에 의해 검색된 정보 유형인 사용자 상호작용에 의해 특정된 사용자 관심인 정보에 기초하여 사용자가 특정 정보에 관심이 있을 확률을 서술할 수 있다. 특징은 특정 정보를 서술하는 페이지에 사용자가 접속할 확률, 또는 사용자가 이미지, 비디오 또는 온라인 시스템(100) 상에서 이용가능한 임의의 다른 유형의 컨텐츠에 접속할 확률을 나타낼 수 있다. 일 실시예로, 온라인 시스템(100)은 시스템에 객체 쌍들에 대한 특징 벡터를 저장하며, 여기서 특징 벡터는 객체들 사이의 관계를 서술하는 다수의 특징을 포함한다. 소셜 네트워킹 시스템에서, 예컨대, 타겟 사용자와 소스 사용자의 관계에 대한 특징 벡터가 저장될 수 있으며, 여기서 특징 벡터는 소스 사용자가 타겟 사용자에 관한 정보를 열람한 빈도 값, 타겟 사용자와 통신을 시작한 빈도 값, 소스 사용자와 타겟 사용자 사이의 관계를 서술하는 다양한 다른 측정값과 같은 특징들을 포함한다. 특징 관리기(150)는 다양한 특징 값들을 결정하기 위하여 온라인 시스템(100)에 의해 수신된 신호(105)를 처리하고 특징 스토어(130) 내에 특징 값을 저장한다.
온라인 시스템(100)은 온라인 시스템에 표현되는 엔터티들을 순위화하기 위하여 특징 스토어(130)에서 이용가능한 정보를 사용할 수 있다. 예컨대, 소셜 네트워킹 시스템은 가까운 친구들의 세트를 결정하기 위하여 사용자의 서로 다른 친구들을 순위화할 수 있다. 또는, 소셜 네트워킹 시스템은 타겟 사용자에게 제시하기 위한 타겟 사용자의 잠재적 친구들의 세트를 결정하기 위하여 타겟 사용자와 관련된 사용자들의 세트를 순위화할 수 있다. 온라인 시스템은 또한 사용자에게 제시될 정보를 결정하기 위하여 특징 값들을 사용할 수 있다.
온라인 시스템(100)은 사용자들에게 서로 다른 유형의 정보를 제시할 수 있다. 예컨대, 소셜 네트워킹 시스템은 사용자에게 다른 사용자, 소셜 그룹, 소셜 이벤트, 컨텐츠, 이미지 등을 서술하는 정보를 제시할 수 있다. 사용자와 관련하여 온라인 시스템(100)에서 일어나는 수많은 행위들이 있다. 사용자는 통상 온라인 시스템(100) 상에서 제한된 시간을 소비하며, 온라인 시스템(100)의 사용자 인터페이스에서 이용가능한 공간의 양 또한 제한되기 때문에, 온라인 시스템(100)은 사용자에게 제시하기 위하여 사용자가 관심이 있을 확률이 높은 정보를 선택할 수 있다. 온라인 시스템(100)은 사용자에게 제시하기 위하여 다양한 이용가능한 옵션들로부터 정보를 선택하는 하나 이상의 제안 모듈(140)을 포함할 수 있다.
제안 모듈(140)은 사용자에게 제시된 정보에 기초하여 사용자가 소정 행위를 수행할 가능성이 있는지 여부를 결정하기 위하여 특징 스토어에서 이용가능한 정보를 사용할 수 있다. 예컨대, 온라인 시스템은 사용자 행동을 예측하기 위하여 하나 이상의 예측기 모델을 포함할 수 있다. 제안 모듈(140)은 예측된 사용자 행동에 기초하여 사용자에게 제안(115)을 할 수 있다. 예측기 모델은 사용자에게 제시된 정보에 관한 결정을 하기 위하여 제안 모듈에 의해 호출될 수 있다. 예측기 모델은 사용자 행위를 예측하기 위하여 특징 스토어에서 이용가능한 정보를 이용한다. 예컨대, 예측기 모델은 특징 스토어(130)에서 이용가능한 특징 값들을 사용하여 훈련될 수 있다. 예로서, 온라인 시스템은 사용자에게 제시된 뉴스피드와 관련하여 사용자가 좀 더 많은 정보를 요청할 확률을 결정하는 예측기 모델을 포함할 수 있다. 또는 예측기 모델은 사용자에게 제시된 이미지에 사용자가 코멘트를 할 확률을 결정할 수 있다. 대안으로, 예측기 모델은 사용자가 소셜 네트워킹 시스템에 의해 추천된 잠재적 연결과의 연결 요청을 전송할 확률을 결정할 수 있다.
온라인 시스템(100)은 소프트웨어 모듈을 실행하는 하나 이상의 컴퓨터 프로세서를 포함한다. 시스템(100 및 110)의 일부 실시예들은 본 명세서에 개시된 것과 다른 모듈 및/또는 추가 모듈들을 가질 수 있으며, 기능은 본 명세서에 개시된 것과 다른 방식으로 모듈들 사이에 분포될 수 있다. 온라인 시스템(100)은 도 1에 도시된 것과 다른 모듈들, 예컨대 도 4에 도시된 모듈들을 포함할 수 있으며, 본 명세서에서 추가로 서술된다.
도 2는 본 발명의 실시예에 따른, 온라인 시스템에서 표현된 엔터티들(220) 사이의 상호작용을 나타내는 특징(230)을 도시하는 도면이다. 특징(230)은 소스 엔터티와 타겟 엔터티 사이의 상호작용을 나타낼 수 있다. 예컨대, 특징 f11, f12 및 f13는 소스 엔터티 220m 및 220p 사이의 상호작용을 나타내며, 특징 f21, f22 및 f23은 소스 엔터티 220m 및 220q 사이의 상호작용을 나타낸다. 예컨대, 특징들은 두 사용자 사이의 상호작용률, 두 사용자가 최근 서로 얼마나 상호작용을 했는지, 엔터티에 관하여 한 사용자에 의해 검색된 정보의 비율 또는 양, 또는 엔터티에 관하여 사용자에 의해 포스트된 코멘트의 유형들을 나타낼 수 있다. 특징은 또한 특정 엔터티, 예컨대 사용자를 서술하는 정보를 나타낼 수 있다. 예로서, 특징은 사용자가 특정 토픽에 대하여 가지고 있는 관심 레벨, 사용자가 온라인 시스템에 로그인한 비율, 또는 사용자에 관한 인구학적 정보를 서술하는 정보를 나타낼 수 있다.
일반적으로, 온라인 시스템(100)의 다양한 특징은 특징 그래프로서 표현될 수 있다. 각 특징은 소스 엔터티, 타겟 엔터티 및 특징 값과 관련될 수 있다. 특징은 소스 엔터티, 타겟 엔터티, 또는 소스 엔터티와 타겟 엔터티 사이의 상호작용을 서술하는 값에 기초한 식으로 특정될 수 있다. 특징 식들은 구성될 수 있다. 즉, 특징 식들은 다른 특징 식들의 함수일 수 있다. 온라인 시스템은 다수의 사용자들, 예컨대, 백만 또는 심지어 수백만의 사용자들을 가질 수 있다. 사용자와 온라인 시스템과의 수많은 상호작용, 사용자들 사이의 상호작용 및 사용자를 서술하는 많은 양의 정보가 있을 수 있다. 따라서, 온라인 시스템(100)에 의해 표현된 특징 그래프는 지속적으로 수신되는 정보에 기초하여 지속적으로 업데이트될 수 있다.
도 3은 본 발명의 실시예예 따른, 누적 특징 그래프 및 증분 특징 그래프의 병합을 도시하는 도면이다. 다양한 노드들(220)은 온라인 시스템(100)에서 표현되는 엔터티들에 해당하며 소스 엔터로부터 타겟 엔터티로의 에지(230)는 소스 엔터티와 타겟 엔터티와 관련된 특징에 해당한다. 누적 특징 그래프(320a)는 엔터티 220a, 220b, 220c, 220d 및 220e와 에지 230m, 230n, 230p 및 230q를 포함한다. 증분 특징 그래프(330)는 온라인 시스템(100)에 의해 최근 수신된 사용자 행위, 예컨대, 주어진 시점 이래로 수신된 모든 사용자 행위에 해당하는 특징 그래프를 표현한다. 누적 특징 그래프(320)는 주어진 시점 전에 발생한 모든 사용자 행위의 전체 정보에 기초하여 특징들을 나타낸다. 주어진 시점 이래의 사용자 행위에 기초한 증분 특징 그래프(330)에 도시된 바와 같이, 새로운 엔터티(220f)가 도입되어 두 개의 새로운 에지(230r, 230s)가 도입된다. 증분 특징 그래프(330)는 또한 기존 에지(230q)를 변경한 에지(230q')를 포함한다.
증분 특징 그래프(480)의 특징 값이 누적 특징 그래프에 병합되기 전에 증분 특징 그래프(480)가 특징들을 누적하는 시간 간격의 길이는 설정가능할 수 있다. 예컨대, 온라인 시스템의 시스템 관리자는 증분 특징 그래프와 관련된 시간 간격의 길이가 하루인지, 몇 시간인지 또는 며칠인지를 결정할 수 있다. 일 실시예로, 시간 간격의 길이는 사용자들의 특정 세트에 대하여 설정가능하다. 따라서, 사용자들의 특정 세트에 대한 증분 특징 스토어를 위한 시간 각격의 길이는 사용자들의 다른 세트에 대한 것과 서로 다를 수 있다. 예컨대, 사용자들의 세트가 더 빠른 속도의 사용자 행위와 관련된다면, 이 사용자들의 세트에 대한 시간 간격의 길이는 온라인 시스템을 사용하여 더 낮은 빈도로 사용자 행위를 수행하는 사용자들의 세트보다 더 작게 설정될 수 있다. 일 실시예로, 증분 특징 스토어에 대한 시간 각격의 길이는 각 개별 사용자들에 대하여 설정될 수 있다.
변경된 누적 특징 그래프(320b)는 증분 특징 그래프(330)를 누적 특징 그래프(320a)와 병합하는 것에 의하여 획득된다. 변경된 누적 특징 그래프(320b)는 증분 특징 그래프(330)뿐 아니라 누적 특징 그래프(320a)로부터의 그래프의 부분들을 포함한다. 증분 특징 그래프(320)로부터의 새로운 엔터티 및 에지는 누적 특징 그래프(320b)에 포함된다. 또한, 누적 특징 그래프(320a)의 기존 에지(230q)에 해당하는 증분 특징 그래프(330)의 임의의 에지(230q')는 기존 에지(230q)를 에지 230q"로 변경하는 결과를 가져온다. 에지 230q"는 에지 230q에 해당하는 특징 값을 230q'에 해당하는 특징 값과 집계하는 것에 의해 획득된다. 특징 값들의 집계는 특징에 의존할 수 있다. 서로 다른 유형의 특징은 구성 값들의 통합을 위한 서로 다른 동작을 요구할 수 있다. 예컨대, 에지 230q는 소스 엔터티가 타겟 엔터티로부터의 정보를 요청하는 비율을 나타낼 수 있으며, 에지 230q'는 주어진 시점 이후로 타겟 엔터티로부터의 정보에 대한 소스 엔터티에 의한 요청의 횟수를 나타낼 수 있다. 에지 230q"에 의해 도시된 바와 같이, 주어진 시점 이후의 통신은 소스 엔터티가 타겟 엔터티로부터의 정보를 요청하는 전체 비율의 변화를 가져온다.
누적 특징 그래프(320)는 그래프 병합 연산(310) 동안 업데이트된다. 그러나, 병합 연산이 수행되는 않는 경우 누적 특징 그래프(320)는 없데이트되지 않는다. 온라인 시스템에 의해 수신된 최근 사용자 행위에 기초한 업데이트는 증분 특징 그래프(330)에서 수행된다. 일 실시예로, 병합 연산(310) 동안 증분 특징 그래프는 비활성으로 표시되고, 비활성 증분 특징 그래프에 대한 업데이트는 중단된다. 새로운 증분 특징 그래프가 병합 연산(310) 동안 최근 사용자 행위에 기초하여 업데이트하기 위하여 사용된다. 누적 특징 그래프 또는 병합 중인 비활성 증분 특징 그래프 중 하나가 업데이트되지 않기 때문에, 병합 연산이 효율적으로 수행될 수 있다. 병합 연산의 두 입력 그래프가 병합 연산 동안 업데이트될 수 있다면, 그래프의 많은 부분들이 잠겨야 하며, 그에 의하여 연산 동작이 비효율적이 될 수 있다.
도 3은 누적 특징 그래프와 증분 특징 그래프에서 몇 개의 노드와 에지를 가지는 예를 도시한다. 그러나, 수많은 사용자가 있는 온라인 시스템에서, 누적 특징 그래프 및 증분 특징 그래프는 모두 수많은 노드 및 에지를 가질 수 있다. 누적 특징 그래프는 특징 값들을 요청하는 온라인 시스템(100)의 다른 모듈들에 대하여 이용가능하다.
시스템 구조
도 4는 온라인 시스템(100)의 예로서 소셜 네트워킹 시스템(200)을 구현하는 시스템 구조의 도면이다. 본 명세서에서는 소셜 네트워킹 시스템(200)이 예시적인 온라인 시스템으로 서술되고 있으나, 본 명세서에 서술된 이론은 다른 온라인 시스템에도 적용가능하다. 소셜 네트워킹 시스템(200)은 뉴스피드 생성기(435), 웹 서버(415), 행위 로거(440), 행위 로그(245), 연결 스토어(430), 사용자 프로필 스토어(425), 제안 모듈(140) 및 특징 관리기(150)를 포함한다. 다른 실시예로, 소셜 네트워킹 시스템(200)은 다양한 적용을 위하여 추가의, 더 적은 또는 다른 모듈들을 포함할 수 있다. 네트워크 인터페이스, 보안 메커니즘, 부하 균형기, 장애복구 서버, 관리 및 네트워크 운영 콘솔 등과 같은 종래 구성요소들은 시스템의 상세사항을 모호하게 하지 않기 위하여 도시되지 않는다.
소셜 네트워킹 시스템(200)은 사용자 프로필 스토어(425)에 사용자 프로필을 저장한다. 사용자 프로필 스토어(425)는 경력, 학력, 성적 기호, 취미나 기호, 위치 등과 같이, 인명 정보, 인구학적 정보 및 다른 유형의 서술적 정보를 포함하여 소셜 네트워킹 시스템(200)의 사용자를 서술하는 정보를 저장한다. 사용자 프로필 스토어(425)는 또한 예컨대 이미지, 비디오, 코멘트 및 상태 업데이트와 같이 사용자에 의해 제공된 컨텐츠를 저장할 수 있다. 일 실시예로, 소셜 네트워킹 시스템(200)의 사용자는 예컨대, 사업체, 비영리 단체, 제조자, 제공자 등인 단체일 수 있다. 단체의 사용자 프로필에 저장된 정보의 유형은 개인의 사용자 프로필에 저장된 정보와 다를 수 있다. 예컨대, 단체는 사업 유형, 단체와 관련된 재정 정보, 단체의 구조 등을 서술하는 정보를 저장할 수 있다. 사용자는 소셜 네트워킹 시스템(200)에서 표현될 수 있는 임의 유형의 엔터티일 수 있다.
소셜 네트워킹 시스템(200)은 사용자가 그들이 연결되기 원하는 소셜 네트워킹 시스템(200)의 다수의 다른 사용자와의 연결을 추가하게 한다. 연결은 예컨대, 사용자가 특정 다른 사용자를 친구로서 선택하는 것에 의해 명시적으로 추가될 수 있거나, 사용자의 공통된 특성(예컨대, 동일 교육기관의 졸업생인 사용자들)에 기초하여 소셜 네트워킹 시스템에 의해 자동으로 생성될 수 있다. 소셜 네트워킹 시스템은 사용자에게 특정된 정보와 함께 사용자의 연결을 서술하는 정보를 저장할 수 있다.
소셜 네트워킹 시스템(200)은 연결 스토어(430)에 서로 다른 회원들 사이의 하나 이상의 연결을 서술하는 데이터를 저장한다. 연결 정보는 유사하거나 공통된 경력, 그룹 멤버쉽, 취미 또는 학력을 가지는 회원들을 가리킬 수 있다. 추가로, 소셜 네트워킹 시스템(200)은 사용자들이 다른 사용자들과 그들의 관계를 특정할 수 있도록 서로 다른 사용자들 사이의 사용자-정의 연결을 포함할 수 있다. 예컨대, 이러한 사용자-정의 연결은 회원들이 가령 친구들, 직장동료들, 파트너들 등과 같은 사용자들의 실생활 관계에 상응하는 다른 사용자들과의 관계를 생성할 수 있도록 한다. 사용자는 기정의된 유형의 연결로부터 선택하거나 필요에 따라 그 자신의 연결 유형을 정의할 수 있다. 각 사용자를 서술하는 사용자 정보는 사용자의 연결을 서술하는 정보를 포함할 수 있다. 게다가, 사용자의 연결을 서술하는 정보는 사용자가 수행한 행위와 관련하여 접속될 수 있다. 예컨대, 사용자가 소셜 네트워킹 시스템에 대한 코멘트를 게시하면, 소셜 네트워킹 시스템은 그 행위를 서술하는 정보를 사용자의 연결에게 제공할 수 있다. 정보는 뉴스피드를 통해 사용자의 연결에게 제공될 수 있다.
소셜 네트워킹 시스템(200)은 데이터베이스 또는 다른 데이터 저장소에 유지되는 정보를 통하여, 사용자에 의해 취해진 행위를 사용자의 프로필에 연관시킬 수 있다. 그러한 행위는 무엇보다 예컨대, 다른 사용자에게 메시지를 전송하는 행위, 다른 사용자로부터의 메시지를 읽는 행위, 다른 사용자와 관련된 컨텐츠를 열람하는 행위를 포함할 수 있다. 추가로, 다른 사용자들과 관련하여 수행된 다수의 행위들은 특정 사용자를 향한 것일 수 있으며, 이러한 행위는 또한 이들 사용자와 연관된다.
행위 로거(440)는 소셜 네트워킹 시스템(200) 상에서 및/또는 외부에서 사용자 행위에 대한 웹 서버(415)로부터의 통신을 수신할 수 있다. 행위 로거(440)는 사용자 행위에 대한 정보를 추적하기 위하여 그들을 행위 로그(245)에 추가(populate)한다. 특정 사용자가 다른 사용자에 대해 행하는 임의의 행위는 가령 행위 로그(445)와 같은 데이터베이스나 다른 데이터 저장소에서 관리되는 정보를 통해, 각 사용자 프로필과 관련된다. 이런 행위들은 무엇보다 예컨대 다른 사용자와의 연결을 추가하는 행위, 다른 사용자에게 메시지를 송신하는 행위, 다른 사용자로부터 메시지를 읽는 행위, 다른 사용자와 관련된 컨텐츠를 열람하는 행위, 다른 사용자에 의해 게시된 이벤트에 참여하는 행위 등을 포함할 수 있다.
소셜 네트워킹 시스템(200)은 소셜 네트워킹 시스템(200)에서 이용가능한 정보의 정기적인 업데이트를 사용자에게 제공하는 뉴스피드 채널을 관리한다. 뉴스피드 채널을 통해 보고된 정보는 뉴스피드 생성기(435)에 의해 결정된다. 뉴스피드 생성기(435)는 행위 로그(445)에 저장된 행위를 기초로 사용자와 관련이 있을 수 있는 정보에 대한 각 사용자에 대한 메시지를 생성한다. 이런 메시지를 "스토리(stories)"이라고 한다; 각 스토리는 특정 회원과 관련된 행위 로그 내 하나 이상의 행위를 기초로 하나 또는 몇몇 라인의 정보를 포함하는 메시지이다. 예컨대, 사용자의 연결이 거래를 수행한다면, 그 행위는 뉴스피드 스토리를 통해 사용자에게 보고될 수 있다. 뉴스피드를 통해 보고되는 행위는 통상 사용자의 연결이 수행한 행위들이지만 이에 국한되지 않는다. 예컨대, 사용자의 연결과 관계가 없는 특정 정보가 사용자에게 유용하다고 결정되면, 정보는 뉴스피드를 통해 사용자에게 보고될 수 있다.
웹 서버(415)는 네트워크(410)를 통해 소셜 네트워킹 시스템(200)을 하나 이상의 클라이언트 장치(110)로 연결한다; 웹 서버(415)는 웹페이지뿐 아니라, 가령 Flash, XML 등과 같은 다른 웹-관련 컨텐츠를 서비스한다. 웹 서버(415)는 소셜 네트워킹 시스템(200)과 클라이언트 장치(110) 사이에서 메시지를 수신하고 라우팅하는 기능을 제공한다. 이런 메시지는 인스턴트 메시지, 큐잉된 메시지(예컨대, 이메일), 텍스트와 SMS(단문 메시지 서비스) 메시지 또는 임의의 다른 적절한 메시징 기술일 수 있다. 일부 실시예로, 사용자에 의해 다른 사용자에게 송신된 메시지는 예컨대 메시지를 수신하는 사용자의 연결과 같은 소셜 네트워킹 시스템(200)의 다른 사용자들에 의해 열람될 수 있다. 메시지의 수신자 이외에 소셜 네트워킹 시스템(200)의 다른 사용자들에 의해 열람될 수 있는 메시지의 유형의 예는 웰 포스트(wall post)이다.
소셜 네트워킹 시스템(200)은 웹사이트에 의해 지원되는 다양한 유형의 엔티티에 대해 행위를 행하는 능력을 사용자에게 제공할 수 있다. 이런 엔티티는 웹사이트의 회원들이 속할 수 있는 그룹 또는 네트워크(여기서, "네트워크"는 물리적 통신 네트워크라기보다는 사람의 소셜 네트워크를 말한다), 회원이 관심을 가질 수 있는 이벤트 또는 캘린더 엔트리, 회원이 웹사이트를 통해 사용할 수 있는 컴퓨터-기반 애플리케이션 및 회원이 웹사이트를 통해 아이템을 구입, 판매, 경매, 임차 또는 교환할 수 있도록 해주는 거래(transactions)를 포함할 수 있다. 사용자 프로필은 다양한 엔티티와 사용자의 연관성을 저장할 수 있다.
소셜 네트워킹 시스템(200)은 사용자들이 서로 통신하거나, 예컨대 친구들이 관여된 활동, 친구들이 설치하고 있는 애플리케이션, 다른 친구들의 활동에 대해 친구들이 행한 코멘트 등과 같이 사용자들이 흥미를 느끼는 정보를 획득하는 다양한 메커니즘을 사용자에게 제공할 수 있다. 회원 간의 통신의 메커니즘을 채널이라고 한다. 사용자가 다른 사용자와 통신한다면, 이들 두 사용자의 사용자 정보는 예컨대 통신 행위를 송신자 및 수신자와 연관시키도록 접속되어야 한다.
특징 관리기(150)는 소셜 네트워킹 시스템(200)에 의해 수신된 신호(105)로부터 사용자 행위에 해당하는 특징 값들을 추출한다. 특징 관리기(150)는 특징 값들을 저장하고 소셜 네트워킹 시스템의 다양한 모들들에 특징 값들을 제공한다. 특징 관리기(150)는 도 1의 상세한 설명에 서술되며, 본 명세서와 도 4b에서 좀 더 자세히 설명될 것이다.
제안 모듈(140)은 다양한 사용자에 대한 관심 정보를 식별하고 그 정보를 그들에게 송신한다. 예컨대, 소셜 네트워킹 시스템(200)은 사용자와 연결되는 다른 사용자들에 의해 행해진 행위를 서술하는 스토리를 사용자에게 송신할 수 있다. 스토리는 예컨대, 뉴스피드 채널과 같이 소셜 네트워킹 시스템(200)의 통신의 채널을 통해 사용자로 통신될 수 있다. 제안 모듈(140)은 다양한 사용자들의 사용자 프로필들에서 이용가능한 정보를 사용하여 각 사용자가 관심이 있는 스토리를 결정한다. 제안 모듈은 사용자에게 제시하기 위한 정보를 결정하기 위해 특징 스토어(130)에서 이용가능한 정보를 사용할 수 있다. 일부 실시예로, 제안 모듈(140)은 사용자에게 제시될 정보를 선택하기 위하여 예측기 모델, 예컨대 기계 학습 모델을 사용할 수 있다. 이러한 예측기 모델은 특징 스토어(130)로부터 획득된 데이터를 사용하여 훈련된다. 다양한 다른 모듈들이 판단을 위하여 특징 스토어(130)에 저장된 정보를 사용할 수 있다. 예컨대, 모듈은 사용자에게 제안하기 위하여 사용자를 위한 잠재적 친구들을 선택하기 위하여 특징 스토어(130)에 저장된 정보를 사용할 수 있다. 뉴스피드 생성기(435)는 사용자에게 제시하기 위한 뉴스피드 아이템을 선택하기 위하여 특징 스토어(130)에 저장된 정보를 사용할 수 있다. 특징들은 온라인 시스템에서 다양한 다른 목적으로 사용될 수 있는데, 예컨대 소셜 네트워킹 시스템은 예컨대 사용자의 친구들, 사용자의 잠재적 친구들, 사용자에게 흥미있을 수 있는 페이지, 사용자에게 흥미있을 수 있는 컨텐츠, 주어진 사용자에 표시할 검색 용어, 사용자가 흥미있을 수 있는 광고 등을 순위화하는 것과 같이 사용자에 대하여 다양한 엔터티들을 순위화할 수 있다.
클라이언트 장치(110)는 사용자가 소셜 네트워킹 시스템(200)과 상호작용할 수 있게 해주는 브라우저(405)를 실행한다. 브라우저(405)는 사용자가 소셜 네트워킹 시스템(200)을 사용하여 다양한 행위를 수행할 수 있게 해준다. 이런 행위는 사용자가 관심이 있는 정보를 검색하는 행위, 다른 사용자들에게 컨텐츠를 추천하는 행위, 소셜 네트워킹 시스템(200)으로 컨텐츠를 업로드하는 행위, 소셜 네트워킹 시스템의 다른 사용자들과 상호작용하는 행위, 소셜 네트워킹 시스템의 사용자와의 연결을 확립하는 행위 등을 포함한다.
통상, 클라이언트 장치(110)와 온라인 시스템(100) 사이의 상호작용은 예컨대 인터넷과 같은 네트워크(410)를 통해 수행된다. 네트워크(410)는 클라이언트 장치(110)와 소셜 네트워킹 시스템(200) 사이의 통신을 가능하게 한다. 일 실시예로, 네트워크(410)는 표준 통신 기술 및/또는 프로토콜을 사용한다. 따라서, 네트워크(410)는 가령 이더넷, 802.11, WiMAX(worldwide interoperability for microwave access), 3G, DSL(digital subscriber line), 비동기 전송 모드(ATM), 인피니밴드(InfiniBand), PCI Express Advanced Switching 등과 같은 기술을 사용하는 링크를 포함할 수 있다. 마찬가지로, 네트워크(410)에서 사용되는 네트워킹 프로토콜은 MPLS(multiprotocol label switching), TCP/IP(transmission control protocol/Internet protocol), UDP(User Datagram Protocol), HTTP(hypertext transport protocol), SMTP(simple mail transfer protocol) 및 FTP(file transfer protocol) 등을 포함할 수 있다. 네트워크(410)를 통하여 교환되는 데이터는 하이퍼텍스트 마크업 언어(HTML)와 확장형 마크업 언어(XML) 등을 포함하는 기술 및/또는 포맷을 사용하여 표현될 수 있다. 또한, 링크의 전부 또는 일부는 가령 SSL(secure socket layer), TLS(transport layer security), VPNs(virtual private networks) 및 IPsec(Internet Protocol security) 등과 같은 종래의 암호화 기술을 사용하여 암호화될 수 있다. 다른 실시예로, 엔티티는 상술한 것들 대신에 또는 그 외에 커스텀 및/또는 전용 데이터 통신 기술을 사용할 수 있다. 본 실시예에 따르면, 네트워크(410)는 가령 인터넷과 같은 다른 네트워크들로의 링크를 또한 포함할 수 있다.
도 4b는 본 발명의 한 실시예에 따라 소셜 네트워킹 시스템(200)의 특징 관리기(150)의 시스템 구조의 도면이다. 특징 관리기(150)는 특징 추출기(455), 요청 프로세서(470), 특징 병합기(475), 스케줄러(465), 특징 메타데이터 스토어(420), 누적 특징 스토어(490) 및 하나 이상의 증분 특징 스토어(480a, 480b)를 포함하는 모듈들을 포함한다. 특징 관리기(150)은 특징 스토어(480, 490)에 저장된 특징 값들을 결정하기 위하여 사용자 행위를 처리한다. 특징 관리기(150)는 특징 값들을 제공하기 위하여 소셜 네트워킹 시스템(200)의 다양한 모듈들로부터 요청을 수신한다. 일부 실시예로, 특징 관리기(150)는 예컨대 응용 프로그래밍 인터페이스(APIs)를 통해 소셜 네트워킹 시스템 내에서 기능을 호출하는 외부 시스템과 같은 외부 시스템으로부터 특징 값들의 요청을 수신할 수 있다.
다양한 유형의 특징들을 서술하는 메타데이터가 특징 메타데이터 스토어(420)에 저장된다. 특징은 소셜 네트워킹 시스템(200)에서 표현되는 엔터티 및 소셜 네트워킹 시스템(200)에서 수행된 행위와 관련된 값들에 기초한 식으로 표현될 수 있다. 특징을 나타내는 이러한 식들은 전문가에 의해 제공되거나 예컨대 시스템 관리기와 같은 특권 사용자에 의해 시스템에 추가될 수 있다. 일 실시예로, 특징은 소셜 네트워킹 시스템에 로그된 행위의 함수, 즉 특징 = 함수(로그된_행위)로 표현될 수 있다. 특징은 또한 예컨대, 다른 특징 또는 행위에 기초한 식 또는 둘의 결합과 같이 다른 특징들의 함수일 수 있다. 특징 식의 예로서, 타겟이 사용자이며, view_profile이 타겟 사용자의 프로필을 열람한 소스 사용자에 해당하고, view_photo가 타겟 사용자의 사진을 열람한 소스 사용자에 해당하며, view_comment가 타겟 사용자에 의해 포스트된 코멘트를 열람한 소스 사용자에 해당한다면, observation으로 불리는 특징은 다음과 같이 정의될 수 있다.
observation = view_profile + view_photo + 0.5 * view_comment
상기 식에서, view_profile 항의 값은 행위가 일어나면 1이고 행위가 일어나지 않으면 0이다. 다른 실시예로, 각 항의 값은 예컨대 시간 간격 내에서 사용자에 의해 행위가 수행된 횟수와 같이 특정 행위를 서술하는 정보에 기초한 점수값, 또는 사용자가 다른 사진을 검색하기 전에 사진을 관찰한 기간과 같은 행위와 관련된 시간의 길이에 기초한 점수일 수 있다.
일 실시예로, 특징은 다수의 타겟에 관하여 소스 사용자에 의해 수행된 행위에 기초한 집계 값일 수 있다. 예컨대, 특징은 소스 사용자에게 연결된 모든 다른 사용자에 대하여 주어진 시간 간격으로 소스 사용자에 의해 수행된 모든 페이지 열람의 집계를 나타낼 수 있다. 다른 특징은 사용자가 사용자에게 연결된 다른 사용자에 의해 포스트된 이미지를 열람한 비율을 나타낼 수 있다. 특징은 소스 사용자에게 연결된 모든 다른 사용자들에 대하여 소스 사용자의 행동에 기초하여 정규화된, 타겟 사용자에 대하여 소스 사용자에 의해 수행된 행위를 나타낼 수 있다. 예컨대, 특징은 소스 사용자에게 연결된 다른 사용자들과 소스 사용자의 상호작용의 평균 수를 사용하여 정규화된, 소스 사용자가 타겟 사용자와 상호작용의 횟수를 나타낼 수 있다. 특징 메타데이터는 특징 값과 관련된 부분 결과들을 결합하기 위한 식을 특정할 수 있다. 예컨대, 특징을 서술하는 식은 두 개의 서로 다른 시간 간격에 있어서 특징을 평가한 부분 결과들을 결합하는 것에 의해 특징값을 획득하는 방법을 특정할 수 있다.
특징 추출기(455)는 소셜 네트워킹 시스템(200)의 사용자들에 의해 수행된 사용자 행위에 기초하여 특징 값들을 추출한다. 특징 추출기(455)는 특징을 서술하는 메타데이터에 기초하여 특징들을 추출한다. 일 실시예로, 다양한 특징들을 서술하는 메타데이터는 빠른 접속을 위하여 소셜 네트워킹 시스템(200)을 구현하는 프로세서의 메모리에 저장된다. 각 특징 유형은 사용자 행위의 특정 유형과 관련될 수 있다. 예컨대, 소스 사용자와 타겟 사용자의 통신률에 해당하는 특징은 소스 사용자와 타겟 사용자 사이의 모든 통신과 연관될 수 있다. 일 실시예로, 짧은 시간 간격 동안 일어난 특정 유형의 행위의 다수의 인스턴스들이 사용자 행위의 단일 인스턴스로 처리된다. 예컨대, 만약 사용자가 몇 분 동안 여러번 이미지를 클릭한다면, 특징 관리기(150)는 이들 다수의 클릭을 단일 클릭 행위로 처리한다. 마찬가지로, 만약 사용자가 몇 분 동안 사용자가 엔터티를 좋아함을 나타내는 사용자 인터페이스 버튼을 여러 번 클릭한다면, 특징 관리기(150)는 다수의 좋아요 신호를 사용자가 엔터티를 좋아함을 나타내는 단일 사용자 행위로 처리한다. 이러한 일련의 사용자 행위는, 짧은 간격 동안 일어난 인스턴스들의 수가 사용자 행위가 수행되었다는 사실에 비하여 임의의 의미있는 추가 정보를 전달하지 않기 때문에, 단일 사용자 행위로 처리된다.
특정 유형의 사용자 행위가 사용자에 의해 수행되는 경우, 그 사용자 행위와 관련된 모든 특징들이 재평가될 수 있다. 일 실시예로, 특징의 인스턴스는 특징 값을 결정하기 위하여 결합될 수 있는 다양한 구성 값들로 저장될 수 있다. 예컨대, 두 사용자 사이의 개별 통신의 카운트가 서로 다른 시간 간격에 대하여 저장될 수 있다. 두 사용자 사이의 통신 집계율은 특징을 서술하는 표현에 기초하여 서로 다른 카운트 값들을 결합하는 것에 의해 획득될 수 있다. 다른 예로, 만약 특징이 사용자가 사진을 열람한 횟수에 기초한다면, 사진을 열람한 사용자의 각 인스턴스는 특징이 재평가되게 할 수 있다.
일 실시예로, 특징 테이블은 다양한 특징 값들을 저장한다. 예컨대, 특징 테이블은 소스 ID, 타겟 ID, 타겟 유형, 행위 ID 및 다양한 특징 행을 가질 수 있다. 일 실시예로, 다양한 특징 값들은 소스 및 타겟의 각 인스턴스와 관련된 이름값 쌍들로서 표현될 수 있다. 다른 예로, 특정 예측기 모델에 대하여 생성된 데이터는 각 소스 및 타겟이 그 모델과 관련된 다양한 특징들과 연관된 표 1로 표현된다.
열 ID 소스 ID 타겟 ID 특징 F1 특징 F2
2001 100 200 20 512
2002 100 201 20 630
2003 101 202 15 720
특징 스토어(480, 490)는 특징 추출기(455)에 의해 추출된 특징 값들을 저장한다. 각 특징 스토어(480a, 480b 및 490)는 특정 시간 간격에 대한 특징 값을 저장한다. 누적 특징 스토어(490)는 주어진 시점 전에 일어난 사용자 행위에 기초한 특징 값들을 저장한다. 예컨대, 현재 시점에서, 누적 특징 스토어(490)는 어제 또는 그 전에 수신된 사용자 행위에 기초한 특징 값들을 저장할 수 있다. 대조적으로, 증분 특징 스토어(480a)는 주어진 시점 이후에 발생한 사용자 행위들을 저장한다. 예컨대, 특징 스토어는 오늘 일어난 사용자 행위에 기초한 모든 특징값들을 저장할 수 있다.
현재 사용자 행위에 기초한 특징 값들은 결정되어, 증분 특징 스토어(480a)에 저장된 특징값들이 누적 특징 스토어(490)의 특징 값들과 병합되는 주어진 시점까지 증분 특징 스토어(480a)에 저장될 수 있다. 특징 병합기(475)는 증분 특징 스토어(480)로부터의 특징 값들의 누적 특징 스토어(490)와의 병합을 수행한다. 예컨대, 매일 자정에, 특징 병합기(475)는 증분 특징 스토어(480)의 특징 값들을 누적 특징 스토어(490)에 병합한다.
특징 값들이 병합되는 동안 증분 특징 스토어(480a)에 대한 업데이트를 피하기 위하여, 증분 특징 스토어(480a)는 비활성으로 표시된다. 비활성 증분 특징 스토어(480)는 현재 일어나고 있는 사용자 행위에 응답하여 업데이트되지 않는 특징 스토어인 반면, 활성 증분 특징 스토어(480)는 소셜 네트워킹 시스템(200)에서 현재 일어나고 있는 사용자 행위에 응답하여 업데이트되는 특징 스토어이다. 따라서 비활성으로 표시된 증분 특징 스토어(480a)에 대한 업데이트는 증분 특징 스토어(480)에 저장된 정보가 누적 특징 스토어(490)와 병합되는 동안 중단된다. 증분 특징 스토어(480)의 특징 값들이 병합되고 나면, 증분 특징 스토어(480)는 리셋된다. 즉, 증분 특징 스토어(480)는 빈 것으로 처리된다. 증분 특징 스토어(480b)가 활성으로 표시되고 수신된 사용자 행위는 증분 특징 스토어(480b)에 저장된 특징값들을 업데이트하는 결과를 가져온다. 증분 특징 스토어(480b)에 대한 업데이트는 이후 시점에 도달할 때 까지 다른 시간 간격 동안 계속될 수 있다. 상기 프로세스는 반복될 수 있다. 즉, 증분 특징 스토어(480b)는 증분 특징 스토어(480b)의 특징 값들이 누적 특징 스토어(490)에 병합되는 동안 비활성으로 표시된다. 이러한 반복 에서, 비활성으로 표시된 증분 특징 스토어(480b)에 대한 응답으로, 증분 특징 스토어(480a)가 활성으로 표시될 수 있다. 이 단계에서, 증분 특징 스토어(480a)에 이전에 저장된 정보는 누적 특징 스토어(490)에 병합되었고 증분 특징 스토어(480)는 리셋된 것으로 추정된다. 따라서, 증분 특징 스토어(480a)는 새로운 시간 간격 동안의 특징 값들을 업데이트하기 위하여 사용될 수 있다. 따라서, 두 증분 특징 스토어(480a 및 480b)의 상태는 교대로 스위칭될 수 있다. 하나의 시간 간격에서, 제1 증분 특징 스토어가 활성으로 표시되고 업데이트를 수신하는 반면 제2 증분 특징 스토어는 비활성으로 표시되고 누적 특징 스토어와 병합 중이다. 다음 시간 간격에서, 제2 증분 특징 스토어는 활성으로 표시되어 업데이트를 수신하는 반면 제1 증분 특징 스토어는 비활성으로 표시되고 누적 특징 스터어와 병합된다. 이 프로세스는 시스템(100 또는 200)이 실행 중인 동안 계속될 수 있다. 스케줄러(485)는 증분 특징 스토어를 누적 특징 스토어에 병합시키는 작업 및 상술한 바와 같이 적절한 시간에 각 증분 특징 스토어의 상태를 변경하는 작업을 스케줄링한다.
일 실시예로, 증분 특징 스토어(480)는 누적 특징 스토어(490)에 사용되는 스토어의 접속 시간에 비하여 빠른 접속 시간을 가지는 컴퓨터 시스템의 저장장치에 저장된다. 누적 특징 스토어(490)는 많은 양의 데이터를 포함하기 때문에 플래쉬 메모리와 같이 느리지만 덜 비싼 저장장치에 저장된다. 반대로, 증분 특징 스토어(480)는 사용자 행위가 수행됨에 따라 특징 업데이트를 위하여 자주 접속된다. 따라서, 증분 특징 스토어(480)는 RAM(random access memory)과 같이 더 빠른 저장장치에 저장된다. RAM은 통상 2차 저장장치에 비하여 비싸며, 컴퓨터 시스템의 RAM 저장장치의 양은 플래쉬 메모리와 같은 2차 저장 장치에서 이용가능한 양보다 적다. 누적 특징 스토어(490)에 저장된 데이터의 양은 상당할 수 있기 때문에, 실시예들은 각 컴퓨터에 일부가 할당되도록 누적 특징 스토어(490)의 정보를 다수의 컴퓨터에 걸쳐 분할한다. 예컨대, 사용자들의 세트는 부분에 할당될 수 있으며, 그 사용자들과 관련된 특징들은 그 부분에 맵핑된다.
요청 프로세서(470)는 소셜 네트워킹 시스템(200)의 다양한 모듈들로부터 특징 값들의 요청을 수신한다. 요청 프로세서(470)는 특징 값들을 검색하고, 요청자에게 특징 값들을 리턴한다. 일 실시예로, 요청 프로세서(480)는 각 특징 스토어로부터 해당 특징 값들을 검색하고 전체 특징 값을 결정하기 위하여 그들을 결합한다. 예컨대, 요청 프로세서(470)는 소스 엔터티 및 타겟 엔터티와 관련된 특정 특징 유형의 특징 값 요청을 수신할 수 있다. 특징 스토어(480a, 480b 및 490) 각각은 각 특징 스토어와 관련된 시간 간격 동안 일어난 사용자 행위에 기초하여 요청된 특징과 관련된 부분 결과를 저장한다. 요청 프로세서(470)는 각 특징 스토어로부터 특징 값에 대한 부분 결과들을 검색하고 소셜 네트워킹 시스템(200)에 의해 수신된 관련 사용자 행위에 기초하여 특징 값을 결장하기 위하여 그 부분 결과들을 결합한다.
일 실시예로, 요청 프로세서(470)는 최근 데이터에 더 높은 가중치를 주도록 이전 시간 간격과 관련된 부분 결과 값들을 감소시킨다. 예컨대, 결합된 특징 값을 결정하기 위하여 누적 특징 스토어로부터 획득된 부분 결과는 감쇠 인자(붕괴 인자로도 불림)에 의해 곱해질 수 있다. 감쇠 인자의 값은 1보다 작은 기설정된 값, 즉 0.9로 설정될 수 있다. 그 결과, 누적 데이터 스토어의 오래된 사용자 행위의 효과는 시간에 따라 감쇠된다. 예컨대, 특징 값이 서로 다른 시간 간격과 관련된 집계 부분 결과로서 간주될 수 있다면, 상당히 오래된 시간 간격 동안 결정된 부분 결과들은 여러 번 감쇠 인자가 곱해질 수 있는 반면 상대적으로 최근 시간 간격 동안의 부분 결과들은 단지 몇 번만 감쇠 인자가 곱해질 수 있다. 따라서, 오래된 시간 간격들과 관련된 사용자 행위들인 더 새로운 시간 간격들과 관련된 사용자 행위에 비하여 작게 가중된다.
특징 값에 대한 사용자 행위의 영향은 시간에 따라 지수적으로 감소하는 것으로 간주될 수 있다. 일부 실시예로, 감쇠 인자의 값은 특징의 유형에 의존한다. 각 특징은 반감기와 관련될 수 있다. 반감기의 값은 특징에 대한 감쇠 인자를 결정하기 위하여 사용될 수 있다. 예컨대, 일부 특징은 더 긴 반감기를 가질 수 있으며, 다른 특징들은 더 짧은 반감기를 가질 수 있다. 따라서, 더 긴 반감기를 가지는 특징들은 오래된 값들의 감쇠가 천천히 이루어지는 감쇠 인자를 가지고, 더 짧은 반감기를 가지는 특징들은 오래된 값들의 감쇠가 더 빨리 이루어지는 감쇠 인자를 가진다.
특징 값들을 저장하는 전체 프로세스
도 5는 본 발명의 실시예에 따른, 증분 특징 스토어를 누적 특징 스토어에 병합하는 전체 프로세스를 도시한다. 예로서, 증분 특징 스토어(480a)는 활성으로 표시되고 증분 특징 스토어(480)는 도 5에 도시된 프로세스의 실행이 시작될 때 비활성으로 표시되는 것으로 추정된다. 웹 서버(415)는 다양한 사용자 행위를 수행하기 위한 사용자로부터의 요청을 수신한다. 이러한 행위는 행위 로그(445)에 행위 로거(440)에 의해 로그된다. 특징 추출기(455)는 이러한 사용자 행위를 서술하는 정보에 기초하여 특징 값 또는 특징 값과 관련된 부분 결과를 추출할 수 있다. 특징 추출기(455)는 사용자 행위가 수신됨에 따라 행위 로거(440)로부터 또는 정보가 행위 로그(445)에 로그된 후 행위 로그들을 처리하는 것에 의해 사용자 행위를 서술하는 정보를 획득할 수 있다. 특징 추출기(455)는 특징 값 또는 특징 값의 부분 결과에 기초하여 활성 증분 특징 스토어(480a)를 업데이트한다. 사용자 행위를 수신하고 증분 특징 스토어(480a)를 업데이트하는 프로세스는 주어진 시간 간격 동안 계속된다.
스케줄러(465)는 증분 특징 스토어(480a)에 저장된 부분 결과들을 누적 특징 스토어(490)의 특징 값들과 병합할지 여부를 결정하기 위하여 시간 간격의 길이가 임계값을 초과하는지 여부를 체크(530)한다. 다른 실시예로, 스케줄러(465)는 다른 조건, 예컨대 증분 특징 스토어(480a)에 저장된 정보의 양이 임계값을 초과하거나 수신된 사용자 행위의 수가 임계값을 초과하는지 여부에 기초하여 증분 특징 스토어(480a)에 저장된 부분 결과를 누적 특징 스토어(490)의 특징 값들과 병합할 때를 결정할 수 있다.
만약 스케줄러(465)가 증분 특징 스토어(480a)의 결과들이 누적 특징 스토어(490)의 특징 값들과 병합될 준비가 되었다고 판단하면, 스케줄러(465)는 증분 특징 스토어(480a)를 비활성으로 증분 특징 스토어(480b)를 활성으로 표시한다. 따라서, 두 개의 증분 특징 스토어(480)의 상태는 스위칭된다. 일 실시예로, 특징 관리기(450)는 두 개의 증분 특징 스토어 사이의 스위칭 대신 새로운 시간 간격에 대한 업데이트를 저장하기 위하여 새로운 증분 특징 스토어(480)를 할당할 수 있다. 예컨대, 증분 특징 스토어는 증분 특징 스토어들의 풀에서 선택될 수 있다. 일 실시예로, 새로운 증분 특징 스토어가 각각의 새로운 시간 간격에 대하여 할당될 수 있다. 특징 병합기(475)는 증분 특징 스토어(480a)로부터의 특징 값들을 누적 특징 스토어(490)에 병합한다. 상기 단계들 510, 520, 530, 540 및 550은 예컨대 소셜 네트워킹 시스템(200)이 실행되는 한 여러 번 반복된다. 일 실시예로, 특징 병합기(475)는 병합 동작을 수행하는 배경 스레드(thread)로 실행된다.
도 6은 본 발명의 일 실시예에 따른, 데이터를 누적 증분 특징에 병합하기 위한 활성 증분 특징 스토어 및 비활성 증분 특징 스토어를 도시하는 도면이다. 도 6은 다양한 단계들을 통하여 특징 관리기(150)의 특징 스토어들을 도시한다. 도 6에 도시된 바와 같이, 단계 650a에서, 증분 특징 스토어(480a)는 활성으로 표시되고, 신호(105)는 증분 특징 스토어(480a)를 업데이트하게 한다.
단계 650b에서, 증분 특징 스토어(480a)는 비활성으로 표시(615)되고, 증분 특징 스토어(480b)는 활성으로 표시된다. 따라서, 신호(105)에 기초한 업데이트가 증분 특징 스토어(480b)에 대하여 수행되고, 비활성 증분 특징 스토어(480a)에 대한 업데이트가 중단된다. 단계 650c에서, 비활성 증분 특징 스토어(480a)로부터의 특징 값들이 누적 특징 스토어(490)에 병합(625)된다. 병합(625) 동작 동안, 신호(105)는 증분 특징 스토어(480b)를 업데이트하게 한다. 상기 프로세스는 예컨대 소셜 네트워킹 시스템(200)이 실행 중안 동안 여러번 반복(645)된다.
도 7a 내지 7c는 본 발명의 실시예에 따른, 누적 특징 스토어 및 증분 특징 스토어와 관련된 시간 간격들을 도시한다. 도 7a는 도 6에 도시된 단계 650a에 해당하는 시간 간격을 나타낸다. 도 7a는 시점(time point; 720a)이 타임라인을 두 개의 시간 간격(time intervals; 710a 및 710b)으로 분할한 타임라인을 나타낸다. 시간 간격 710a는 시점 720a 전의 시간에 해당하며, 시간 간격 710b는 시점 720a 후의 시간에 해당한다. 누적 특징 스토어(490)는 시간 간격 710a 동안 일어난 사용자 행위를 사용하여 결정된 특징 값들을 저장한다. 증분 특징 스토어(480a)는 시간 간격 710b 동안 일어난 사용자 행위를 사용하여 결정된 특징 값들을 저장하며, 현재 일어나고 있는 사용자 행위에 응답하여 업데이트된다. 현재 시간은 시점 720a의 오른쪽에 대하여 발생한 점으로 표현될 수 있으며, 타임라인을 따라 오른쪽으로 움직이는 것으로 간주될 수 있다.
현재 시점이 720b에 도달하는 경우, 증분 특징 스토어(480a)는 비활성으로 표시되고, 새로운 증분 특징 스토어(480b)가 활성 증분 특징 스토어로 사용된다. 도 7b는 도 6에 도시된 단계 650b에 해당하는 시간 간격을 도시한다. 도 7b는 시점 720a 전의 시간에 해당하는 시간 간격(710a), 시점 720a와 720b 사이의 시간에 해당하는 시간 간격(710b') 및 시점 720b 이후의 시간에 해당하는 시간 간격(710c)인 세 개의 시간 간격을 가지는 타임라인을 나타낸다. 누적 특징 스토어(490)는 시간 간격(710a') 동안 일어난 사용자 행위를 사용하여 결정된 특징 값들을 저장한다. 비활성 증분 특징 스토어(480a)는 시간 간격(710b') 동안 일어난 사용자 행위를 사용하여 결정된 특징 값들을 저장하고 활성 증분 특징 스토어(480b)는 시간 간격(710c) 동안 일어난 사용자 행위를 사용하여 결정된 특징 값들을 저장하고 현재 일어나고 있는 사용자 행위에 응답하여 업데이트된다.
도 7c는 도 6에 도시된 단계 650c에 해당하는 시간 간격들을 도시한다. 도 7c는 시점 720b 전의 시간에 해당하는 시간 간격(710a') 및 시점 720b 이후의 시간에 해당하는 시간 간격(710c)인 두 개의 시간 간격을 가지는 타임라인을 나타낸다. 이 단계 650c에서, 증분 특징 스토어(480a)는 누적 특징 스토어(490)에 병합된다. 누적 특징 스토어(490)는 시간 간격(710a') 동안 일어난 사용자 행위를 사용하여 결정된 특징 값들을 저장한다. 활성 증분 특징 스토어(480b)는 시간 간격(710c) 동안 일어난 사용자 행위를 사용하여 결정된 특징 값들을 저장하고 현재 일어나고 있는 사용자 행위에 응답하여 업데이트된다.
특징 값들을 질의하는 전체 프로세스
요청 프로세서(470)는 특징 값들에 대한 요청을 수신하고 그것을 처리한다. 요청은 요청되는 특징을 식별하는 정보를 제공한다. 예컨대, 요청은 특징 값과 관련된 사용자, 특징 값과 관련된 타겟 엔터티 및 특징의 유형을 식별하는 정보를 식별할 수 있다. 서로 다른 특징 스토어들(490, 480a, 480b)은 특정 특징 값들에 해당하는 부분 결과들을 저장하며, 각 부분 결과는 예컨대 특정 시간 간격 동안 일어난 사용자 행위들인 사용자 행위들의 세트를 사용하여 결정된다. 예로서, 특징 값이 사용자 행위와 관련된 값들을 집계하는 것에 의해 결정된다면, 한 스토어에 해당하는 부분 결과 값은 그 스토어 내의 모든 관련 행위들을 사용하여 결정된 집계값에 해당할 수 있다. 따라서, 요청 프로세서(470)는 각 특징 스토어(490, 480a, 480b)로부터 획득된 특징 값에 해당하는 부분 결과들을 결합하는 것에 의해 특징 값을 결정한다. 특정 특징 스토어는 예컨대 그 특징 스토어에 해당하는 시간 간격 동안 어떠한 사용자 행위도 발생하지 않는다면 특징에 해당하는 임의의 부분 결과 값들을 가지지 않을 수 있다. 이러한 상황에서, 요청 프로세서(470)는 그 특징 값을 위한 부분 결과들을 가지는 특징 스토어들로부터의 부분 결과들을 결합한다.
도 8은 본 발명의 실시예에 따른, 증분 특징 스토어 및 누적 특징 스토어를 유지하는 시스템에서 특징 값에 대한 요청을 처리하는 전체 프로세스를 도시한다. 요청 프로세서(470)는 특징 값에 대한 요청을 수신(810)한다. 요청 프로세서(470)는 특징 값에 해당하는 누적 특징 스토어(490)로부터의 제1 부분 결과를 수신(820)한다. 제1 부분 결과는 누적 특징 스토어(490)의 특징 값이 업데이트된 사용자 행위들을 사용하여 결정된다. 요청 프로세서(470)는 특징 값에 해당하는 증분 특징 스토어(480a)로부터의 제2 부분 결과를 수신(830)한다. 제2 부분 결과는 증분 특징 스토어(480a)의 특징 값이 업데이트된 사용자 행위를 사용하여 결정된다. 요청 프로세서(470)는 특징 값에 해당하는 증분 특징 스토어(480b)로부터의 제3 부분 결과를 수신(840)한다. 제3 부분 결과는 증분 특징 스토어(480b)의 특징 값이 업데이트되는 사용자 행위를 사용하여 결정된다. 요청 프로세서(470)는 제1 부분 결과, 제2 부분 결과 및 제3 부분 결과의 가중된 결합을 결정(850)을 결정하고 결합된 부분 결과를 요청된 특징 값으로 리턴(860)한다.
요청 프로세서에 의해 결정(850)된 가중된 결합은 감쇠 인자(감소 인자라고도 함)에 의해 오래된 사용자 행위와 관련된 부분 결과들을 가중한다. 이는 특징 값들에서 오래된 사용자 행위의 효과를 감소시킨다. 감쇠 인자는 1보다 작은 값, 예컨대 0.9이다. 일 실시예로, 각 특징은 서로 다른 감쇠 인자와 관련될 수 있다. 일 실시예로, 각 특징값은 반감기 및 반감기에 기초하여 결정된 특징에 대한 감쇠 인자와 관련될 수 있다. 예컨대, 특정 특징에 대하여, 오래된 사용자 행위는 다른 특징들에 비교할 때 좀 더 관련있을 수 있다. 만약 오래된 사용자 행위가 관련성이 높다면, 감쇠 인자는 더 클 수 있으며 따라서 오래된 사용자 행위의 감쇠를 느리게 한다. 한편, 오래된 사용자 행위가 특징의 계산에 관련성이 낮다면, 감쇠 인자는 더 작을 수 있으며 이는 오래된 사용자 행위의 빠른 감쇠를 가져온다. 일 실시예로, 감쇠 인자 값은 설정가능할 수 있다.
요청된 특징에 대한 부분 결과들은 예컨대 만약 특징에 대한 요청이 단계 650a 동안 수신된다면, 단일 증분 특징 스토어 및 누적 특징 스토어에서 이용가능할 수 있다. 특징 값(f)은 식 (1)을 사용하여 결정될 수 있으며, 여기서 x는 증분 특징 스토어(480a)로부터 획득된 부분 결과를 나타내며, y는 누적 특징 스토어(490)로부터 획득된 부분 결과를 나타내고, α는 감쇠 인자를 나타낸다.
f=x + α×y (1)
요청된 특징에 대한 부분 결과들은 예컨대 만약 특징에 대한 요청이 단계 650b 동안 수신된다면, 증분 특징 스토어(480a), 증분 특징 스토어(480b) 및 누적 특징 스토어에서 이용가능할 수 있다. 특징 값(f)은 식 (2)을 사용하여 결정될 수 있으며, 여기서 x는 증분 특징 스토어(480a)로부터 획득된 부분 결과를 나타내며, y는 누적 특징 스토어(490)로부터 획득된 부분 결과를 나타내고, z는 증분 특징 스토어(480b)로부터 획득된 부분 결과를 나타내고, α는 증분 특징 스토어(480a)로부터의 부분 결과들에 대한 감쇠 인자를 나타내며, β는 증분 특징 스토어(480b)로부터의 부분 결과들에 대한 감쇠 인자를 나타낸다.
f=x + α×y +β×z (2)
식 (1)은 도 5에 도시된 바와 같이 증분 특징 스토어(480)로부터의 특징 값들을 누적 특징 스토어(490)에 병합(550) 또는 도 6에 도시된 바와 같은 병합(625)하기 위하여 수행되는 계산에 해당한다.
대안 응용
본 발명의 상세한 설명에 서술된 특징 및 이점이 모두를 포함한 것은 아니며, 특히 많은 추가적인 특징 및 이점이 본 발명의 도면, 상세한 설명 및 청구범위의 관점에서 당업자에게 명백할 것이다. 게다가, 본 발명의 상세한 설명에서 사용되는 언어는 주로 판독하기 쉽도록 그리고 훈시적인 목적으로 선택되었고, 발명의 주제를 정확히 서술하거나 제한하도록 선택되지 않았다는 점을 유의해야 한다.
예컨대, 예측기 모델은 다른 유형의 온라인 시스템에서 생성되고 사용될 수 있으며 소셜 네트워킹 시스템으로 제한되지 않을 수 있다. 예컨대, 사용자 프로필을 저장하고 사용자가 행위를 행할 수 있게 해주는 온라인 시스템은 사용자가 행할 수 있는 다양한 행위에 대한 예측기를 생성하고 사용할 수 있다. 예컨대, 온라인 시스템은 사용자가 다양한 유형의 데이터의 피드를 수신할 수 있게 해줄 수 있다. 사용자가 사용자에게 제시되는 피드를 오픈할 예정인지를 예측하기 위한 예측기 모델이 개발될 수 있다. 예측기 모델은 사용자에게 제시되는 피드를 주문하도록 온라인 시스템에 의해 사용될 수 있다. 예컨대, 피드는 사용자가 피드를 오픈할 예정이거나 피드로부터 추가 정보를 요청할 가능성을 기초로 주문될 수 있다.
본 발명의 실시예들의 상기 설명은 설명의 목적으로 제시되었을 뿐, 배타적이거나 개시된 구체적인 형태로 시스템이나 방법을 제한하고자 하는 것은 아니다. 본 발명이 속하는 설명분야에서 통상의 지식을 가진 자라면 상기 개시로부터 다양한 변형 및 변경이 가능함을 인식할 수 있을 것이다.
본 명세서의 일부 부분은 시스템 및 방법의 실시예들을 정보에 대한 동작의 알고리즘적 및 기호적 표현으로 서술한다. 이러한 알고리즘적 설명이나 표현은 본 설명분야에서 통상의 지식을 가진 자들에게 효과적으로 그들의 작업의 실체를 전달하기 위하여 데이터 프로세싱 분야에서 통상의 지식을 가진 자에 의하여 공통적으로 사용되는 것이다. 기능적으로, 계산적으로 또는 논리적으로 서술되고 있는 이들 동작은 컴퓨터 프로그램 또는 등가의 전기 회로, 마이크로 코드 등에 의해 구현되는 것으로 이해된다. 또한, 종종 이러한 동작의 배열은 일반성의 손실 없이 모듈로 언급될 수 있는 것으로 확인된다. 서술된 동작 및 그와 관련된 모듈들은 소프트웨어, 펌웨어, 하드웨어 또는 이들의 임의의 조합으로 구현될 수 있을 것이다.
본 명세서에 서술된 임의의 단계들, 동작들 또는 프로세스들은 하나 이상의 하드웨어 또는 소프트웨어 모듈들에 의해 또는 이들과 다른 장치들의 결합에 의해 수행되거나 구현될 수 있다. 일실시예에서, 소프트웨어 모듈은 서술된 단계들, 동작들 또는 프로세스들 일부 또는 전부를 수행하기 위하여 컴퓨터 프로세서에 의해 실행될 수 있는 컴퓨터 프로그램 코드를 포함하는 컴퓨터 판독가능한 매체를 포함하는 컴퓨터 프로그램 제품으로 구현된다.
본 시스템 및 방법의 실시예들은 또한 본 명세서의 동작들을 수행하기 위한 장치와 관련될 수 있다. 이 장치는 요청된 목적을 위하여 구체적으로 구성될 수 있으며/있거나 컴퓨터에 저장된 컴퓨터 프로그램에 의해 선택적으로 활성화되거나 재구성되는 범용 컴퓨팅 장치를 포함할 수 있다. 이런 컴퓨터 프로그램은 유형의 컴퓨터 판독가능한 저장 매체나 컴퓨터 시스템 버스에 결합될 수 있는 전자 명령어를 저장하기에 적절한 임의의 유형의 매체에 저장될 수 있다. 게다가, 본 명세서에서 언급된 임의의 컴퓨팅 시스템들은 단일 프로세서를 포함할 수 있거나, 증가한 컴퓨팅 능력을 위해 다중 프로세서 설계를 채용한 구조일 수 있다.
마지막으로, 본 명세서에서 사용된 언어는 원칙적으로 읽기 쉬운 지침상의 목적으로 선택되었으며, 발명의 요지를 상세히 서술하거나 제한하려고 선택된 것은 아닐 수 있다. 따라서, 본 발명의 범위는 본 명세서에 의해서가 아니라 본 명세서를 기초로 출원된 임의의 청구범위들에 의해 한정되는 것으로 의도된다. 그러므로, 본 발명의 실시예들에 관한 설명은 하기의 청구범위에 제시된 본 발명의 범위는 설명을 위한 것으로, 이에 제한되지 않아야 한다.

Claims (21)

  1. 한 시점 전에 수행된 사용자 행위로부터 결정된 특징 값들을 저장하는 누적 특징 스토어에 액세스하는 단계;
    상기 시점 후에 수행된 사용자 행위로부터 결정된 특징 값들을 저장하는 증분 특징 스토어에 액세스하는 단계;
    온라인 시스템의 컴퓨터 프로세서에 의해, 증분 특징 스토어로부터의 특징 값들과 누적 특징 스토어로부터의 해당 특징 값들의 가중된 결합을 계산하는 단계;
    누적 특징 스토어의 해당 특징 값들을 특징 값들의 가중된 결합으로 대체함으로써 누적 특징 스토어를 업데이트하는 단계;
    하나 이상의 특징 값들에 대한 새로운 값을 포함하는, 증분 특징 스토어에 저장된 하나 이상의 특징 값들에 대한 업데이트를 수신하는 단계; 및
    증분 특징 스토어의 해당 특징 값들을 수신된 업데이트의 특징 값들로 대체함으로써 수신된 업데이트에 기초하여 증분 특징 스토어를 업데이트하는 단계를 포함하는, 컴퓨터-구현 방법.
  2. 제 1 항에 있어서,
    특징은 사용자 행위를 서술하는 값들 또는 다른 특징 값들 중 하나 이상에 기초한 식(expression)으로 표현되는, 컴퓨터-구현 방법.
  3. 제 1 항에 있어서,
    특징 값들의 가중된 결합은 제3의 대응하는 특징 값을 포함하는, 컴퓨터-구현 방법.
  4. 제 1 항에 있어서,
    상기 증분 특징 스토어는 제1 증분 특징 스토어이며,
    온라인 시스템에 의해 제2 증분 특징 스토어를 유지하는 단계;
    이후 시점에 제1 증분 특징 스토어를 비활성으로 표시하는 단계; 및
    상기 이후 시점 이후에 온라인 시스템에 의해 수신된 사용자 행위에 응답하여 제2 증분 특징 스토어의 특징들을 업데이트하는 단계를 더 포함하는, 컴퓨터-구현 방법.
  5. 제 4 항에 있어서,
    컴퓨터 프로세서에 의해, 제1 증분 특징 스토어, 제2 증분 특징 스토어 및 누적 특징 스토어로부터의 특징 값들의 가중된 결합을 계산하는 단계를 더 포함하는, 컴퓨터-구현 방법.
  6. 제 1 항에 있어서,
    누적 특징 스토어에 사용되는 데이터 스토어와 비교하여, 더 빠른 데이터 액세스를 제공하는 데이터 스토어에 증분 특징 스토어를 저장하는 단계를 더 포함하는, 컴퓨터-구현 방법.
  7. 제 1 항에 있어서,
    증분 특징 스토어는 랜덤 액세스 메모리에 저장되는, 컴퓨터-구현 방법.
  8. 제 1 항에 있어서,
    각 특징은 사용자, 타겟 엔터티 및 타겟 엔터티와 관련된 사용자에 의해 수행된 사용자 행위에 기초한 특징 값과 관련되는, 컴퓨터-구현 방법.
  9. 제 1 항에 있어서,
    각 특징은 감쇠 인자에 의해 가중되는, 컴퓨터-구현 방법.
  10. 삭제
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
KR1020167026766A 2012-11-30 2013-11-25 온라인 시스템에서 사용자 행위에 기초한 특성 질의 KR102110265B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/690,225 US8788487B2 (en) 2012-11-30 2012-11-30 Querying features based on user actions in online systems
US13/690,225 2012-11-30
PCT/US2013/071728 WO2014085341A1 (en) 2012-11-30 2013-11-25 Querying features based on user actions in online systems

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020157017043A Division KR101802877B1 (ko) 2012-11-30 2013-11-25 온라인 시스템에서 사용자 행위에 기초한 특성 질의 방법

Publications (2)

Publication Number Publication Date
KR20160116050A KR20160116050A (ko) 2016-10-06
KR102110265B1 true KR102110265B1 (ko) 2020-05-13

Family

ID=49641639

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020157017043A KR101802877B1 (ko) 2012-11-30 2013-11-25 온라인 시스템에서 사용자 행위에 기초한 특성 질의 방법
KR1020167026766A KR102110265B1 (ko) 2012-11-30 2013-11-25 온라인 시스템에서 사용자 행위에 기초한 특성 질의

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020157017043A KR101802877B1 (ko) 2012-11-30 2013-11-25 온라인 시스템에서 사용자 행위에 기초한 특성 질의 방법

Country Status (11)

Country Link
US (2) US8788487B2 (ko)
EP (1) EP2738733A1 (ko)
JP (1) JP6072287B2 (ko)
KR (2) KR101802877B1 (ko)
CN (1) CN104956365B (ko)
AU (2) AU2013352429B2 (ko)
BR (1) BR112015012452A2 (ko)
CA (1) CA2891898C (ko)
IL (1) IL238975A (ko)
MX (2) MX361475B (ko)
WO (1) WO2014085341A1 (ko)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9037592B2 (en) 2012-09-12 2015-05-19 Flipboard, Inc. Generating an implied object graph based on user behavior
US9712575B2 (en) 2012-09-12 2017-07-18 Flipboard, Inc. Interactions for viewing content in a digital magazine
US10289661B2 (en) 2012-09-12 2019-05-14 Flipboard, Inc. Generating a cover for a section of a digital magazine
US9778820B2 (en) * 2013-01-18 2017-10-03 Salesforce.Com, Inc. Managing applications on a computing device
EP3975014A1 (en) 2013-03-15 2022-03-30 INTEL Corporation Technologies for secure storage and use of biometric authentication information
US9590966B2 (en) 2013-03-15 2017-03-07 Intel Corporation Reducing authentication confidence over time based on user history
US9160730B2 (en) 2013-03-15 2015-10-13 Intel Corporation Continuous authentication confidence module
US10198834B2 (en) * 2013-04-29 2019-02-05 Microsoft Technology Licensing, Llc Graph partitioning for massive scale graphs
US9552360B2 (en) * 2013-09-27 2017-01-24 International Business Machines Corporation Resource reconciliation based on external factors
US10437901B2 (en) 2013-10-08 2019-10-08 Flipboard, Inc. Identifying similar content on a digital magazine server
US10331661B2 (en) * 2013-10-23 2019-06-25 At&T Intellectual Property I, L.P. Video content search using captioning data
US9361338B2 (en) * 2013-11-26 2016-06-07 International Business Machines Corporation Offloaded, incremental database statistics collection and optimization
US10366150B2 (en) 2014-09-22 2019-07-30 Flipboard, Inc. Generating a section of a digital magazine including content from one or more users
CN104809209A (zh) 2015-04-28 2015-07-29 小米科技有限责任公司 社交网络信息流的显示方法、装置及服务器
US10606866B1 (en) 2017-03-30 2020-03-31 Palantir Technologies Inc. Framework for exposing network activities
US10417340B2 (en) 2017-10-23 2019-09-17 International Business Machines Corporation Cognitive collaborative moments
US10803251B2 (en) 2018-06-30 2020-10-13 Wipro Limited Method and device for extracting action of interest from natural language sentences
US10602207B2 (en) * 2018-08-03 2020-03-24 Facebook, Inc. Neural network based content distribution in an online system
KR102186412B1 (ko) * 2019-04-25 2020-12-03 넷마블 주식회사 게임 컨텐츠 제공 방법
JP7227349B2 (ja) * 2019-12-05 2023-02-21 グーグル エルエルシー 寄与増分機械学習モデル
CN112311629B (zh) * 2020-10-30 2022-04-26 广州华多网络科技有限公司 数据处理方法、装置、服务器及计算机可读存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007093490A2 (en) 2006-02-14 2007-08-23 International Business Machines Corporation Point-in-time recovery of a computing system

Family Cites Families (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6049777A (en) * 1995-06-30 2000-04-11 Microsoft Corporation Computer-implemented collaborative filtering based method for recommending an item to a user
US6112186A (en) * 1995-06-30 2000-08-29 Microsoft Corporation Distributed system for facilitating exchange of user information and opinion using automated collaborative filtering
US6041311A (en) * 1995-06-30 2000-03-21 Microsoft Corporation Method and apparatus for item recommendation using automated collaborative filtering
US6092049A (en) * 1995-06-30 2000-07-18 Microsoft Corporation Method and apparatus for efficiently recommending items using automated collaborative filtering and feature-guided automated collaborative filtering
US6421675B1 (en) 1998-03-16 2002-07-16 S. L. I. Systems, Inc. Search engine
US7181438B1 (en) * 1999-07-21 2007-02-20 Alberti Anemometer, Llc Database access system
US20010030667A1 (en) * 2000-04-10 2001-10-18 Kelts Brett R. Interactive display interface for information objects
US7987491B2 (en) * 2002-05-10 2011-07-26 Richard Reisman Method and apparatus for browsing using alternative linkbases
US6946715B2 (en) * 2003-02-19 2005-09-20 Micron Technology, Inc. CMOS image sensor and method of fabrication
US7302422B2 (en) * 2004-04-14 2007-11-27 International Business Machines Corporation Query workload statistics collection in a database management system
US20080077570A1 (en) 2004-10-25 2008-03-27 Infovell, Inc. Full Text Query and Search Systems and Method of Use
US7461059B2 (en) 2005-02-23 2008-12-02 Microsoft Corporation Dynamically updated search results based upon continuously-evolving search query that is based at least in part upon phrase suggestion, search engine uses previous result sets performing additional search tasks
US8838588B2 (en) * 2005-03-30 2014-09-16 International Business Machines Corporation System and method for dynamically tracking user interests based on personal information
US7818196B2 (en) 2005-06-13 2010-10-19 Avaya Inc. Real time estimation of rolling averages of cumulative data
US7991764B2 (en) * 2005-07-22 2011-08-02 Yogesh Chunilal Rathod Method and system for communication, publishing, searching, sharing and dynamically providing a journal feed
US20070060335A1 (en) * 2005-09-09 2007-03-15 Microsoft Corporation Action charging in a turn-based video game
US8429630B2 (en) * 2005-09-15 2013-04-23 Ca, Inc. Globally distributed utility computing cloud
US9552420B2 (en) * 2005-10-04 2017-01-24 Thomson Reuters Global Resources Feature engineering and user behavior analysis
US8176004B2 (en) * 2005-10-24 2012-05-08 Capsilon Corporation Systems and methods for intelligent paperless document management
US8019752B2 (en) * 2005-11-10 2011-09-13 Endeca Technologies, Inc. System and method for information retrieval from object collections with complex interrelationships
US7669123B2 (en) 2006-08-11 2010-02-23 Facebook, Inc. Dynamically providing a news feed about a user of a social network
US7980466B2 (en) * 2006-05-24 2011-07-19 Ebay Inc. Point-of-sale promotions
US7885937B2 (en) * 2007-10-02 2011-02-08 International Business Machines Corporation Mapping online contact information into a contacts list
US8019700B2 (en) * 2007-10-05 2011-09-13 Google Inc. Detecting an intrusive landing page
US20090164287A1 (en) 2007-12-24 2009-06-25 Kies Jonathan K Method and apparatus for optimizing presentation of media content on a wireless device based on user behavior
US9959547B2 (en) * 2008-02-01 2018-05-01 Qualcomm Incorporated Platform for mobile advertising and persistent microtargeting of promotions
US20090197582A1 (en) * 2008-02-01 2009-08-06 Lewis Robert C Platform for mobile advertising and microtargeting of promotions
US9111286B2 (en) * 2008-02-01 2015-08-18 Qualcomm, Incorporated Multiple actions and icons for mobile advertising
US20090198579A1 (en) * 2008-02-01 2009-08-06 Lewis Robert C Keyword tracking for microtargeting of mobile advertising
CN102227737A (zh) * 2008-11-28 2011-10-26 Est软件公司 使用访问时间和频率的网页搜索系统和方法
WO2010085773A1 (en) * 2009-01-24 2010-07-29 Kontera Technologies, Inc. Hybrid contextual advertising and related content analysis and display techniques
CN102414705A (zh) * 2009-03-03 2012-04-11 谷歌公司 用于向社交网络的用户提供广告的方法和系统
US20110055683A1 (en) * 2009-09-02 2011-03-03 Facebook Inc. Page caching for rendering dynamic web pages
US9126120B2 (en) * 2009-09-30 2015-09-08 Zynga Inc. Apparatuses, methods and systems for a virtual security camera
US9547676B2 (en) * 2010-03-30 2017-01-17 Disos Pty Ltd. Cloud computing operating system and method
US8533043B2 (en) * 2010-03-31 2013-09-10 Yahoo! Inc. Clickable terms for contextual advertising
US20110313942A1 (en) * 2010-06-22 2011-12-22 Empco, Inc. System and method for providing departments with candidate test scores and profiles
WO2012047933A2 (en) * 2010-10-04 2012-04-12 Block Torin J Goal management method and system
US8903960B2 (en) * 2010-12-21 2014-12-02 Cisco Technology, Inc. Activate attribute for service profiles in unified computing system
CN102654860B (zh) * 2011-03-01 2015-05-06 北京彩云在线技术开发有限公司 一种个性化音乐推荐方法及系统
CN102760124B (zh) * 2011-04-25 2014-11-12 阿里巴巴集团控股有限公司 一种推荐数据的推送方法及系统
US9110992B2 (en) * 2011-06-03 2015-08-18 Facebook, Inc. Context-based selection of calls-to-action associated with search results
US9268857B2 (en) * 2011-06-03 2016-02-23 Facebook, Inc. Suggesting search results to users before receiving any search query from the users
US8909637B2 (en) * 2011-06-03 2014-12-09 Facebook, Inc. Context-based ranking of search results
JP2013061756A (ja) * 2011-09-13 2013-04-04 Sony Computer Entertainment Inc 情報処理システム、情報処理方法、プログラム及び情報記憶媒体
US8799987B2 (en) * 2011-12-05 2014-08-05 Facebook, Inc. Updating system behavior dynamically using feature expressions and feature loops
WO2013084206A1 (en) * 2011-12-09 2013-06-13 Visual Bearing Limited Web-based social content aggregation and discovery facility
US9355095B2 (en) * 2011-12-30 2016-05-31 Microsoft Technology Licensing, Llc Click noise characterization model
US20140040226A1 (en) * 2012-07-31 2014-02-06 Microsoft Corporation Providing application result and preview

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007093490A2 (en) 2006-02-14 2007-08-23 International Business Machines Corporation Point-in-time recovery of a computing system

Also Published As

Publication number Publication date
IL238975A (en) 2017-10-31
CN104956365A (zh) 2015-09-30
AU2013352429A1 (en) 2015-06-04
AU2017202596B2 (en) 2018-02-01
MX347986B (es) 2017-05-22
AU2017202596A1 (en) 2017-05-11
JP2016505940A (ja) 2016-02-25
AU2017202596C1 (en) 2018-08-23
IL238975A0 (en) 2015-07-30
MX361475B (es) 2018-12-05
WO2014085341A1 (en) 2014-06-05
BR112015012452A2 (pt) 2017-07-11
CA2891898C (en) 2016-06-21
AU2013352429B2 (en) 2017-03-02
KR101802877B1 (ko) 2017-11-29
JP6072287B2 (ja) 2017-02-01
EP2738733A1 (en) 2014-06-04
US20140156637A1 (en) 2014-06-05
CA2891898A1 (en) 2014-06-05
KR20160116050A (ko) 2016-10-06
MX2015006811A (es) 2016-01-12
US9195705B2 (en) 2015-11-24
US8788487B2 (en) 2014-07-22
CN104956365B (zh) 2018-07-03
US20140250137A1 (en) 2014-09-04
KR20150092198A (ko) 2015-08-12

Similar Documents

Publication Publication Date Title
KR102110265B1 (ko) 온라인 시스템에서 사용자 행위에 기초한 특성 질의
US9690871B2 (en) Updating features based on user actions in online systems
US10708324B1 (en) Selectively providing content on a social networking system
AU2013352309B2 (en) Customized predictors for user actions in an online system
CA2919438C (en) Selecting content items for presentation to a social networking system user in a newsfeed
US20140317184A1 (en) Pre-Fetching Newsfeed Stories from a Social Networking System for Presentation to a User
US10387516B2 (en) Selecting content with an external link for presentation based on user interaction with external content
US10812437B1 (en) Ranking items using a unified model

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant