KR20220081992A - 센서 데이터에 기초한 기계 학습식 신뢰 채점 - Google Patents

센서 데이터에 기초한 기계 학습식 신뢰 채점 Download PDF

Info

Publication number
KR20220081992A
KR20220081992A KR1020227012335A KR20227012335A KR20220081992A KR 20220081992 A KR20220081992 A KR 20220081992A KR 1020227012335 A KR1020227012335 A KR 1020227012335A KR 20227012335 A KR20227012335 A KR 20227012335A KR 20220081992 A KR20220081992 A KR 20220081992A
Authority
KR
South Korea
Prior art keywords
data
user account
score
video game
machine learning
Prior art date
Application number
KR1020227012335A
Other languages
English (en)
Inventor
예스틴 블리스데일-셰퍼드
스캇 달튼
리차드 케이슬러
Original Assignee
밸브 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US16/663,041 external-priority patent/US11052311B2/en
Application filed by 밸브 코포레이션 filed Critical 밸브 코포레이션
Publication of KR20220081992A publication Critical patent/KR20220081992A/ko

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/23Input arrangements for video game devices for interfacing with the game device, e.g. specific interfaces between game controller and console
    • A63F13/235Input arrangements for video game devices for interfacing with the game device, e.g. specific interfaces between game controller and console using a wireless connection, e.g. infrared or piconet
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/79Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories
    • A63F13/795Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories for finding other players; for building a team; for providing a buddy list
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/33Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using wide area network [WAN] connections
    • A63F13/335Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using wide area network [WAN] connections using Internet
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/45Controlling the progress of the video game
    • A63F13/48Starting a game, e.g. activating a game device or waiting for other players to join a multiplayer session
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • A63F13/67Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor adaptively or by learning from player actions, e.g. skill level adjustment or by storing successful combat sequences for re-use
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/71Game security or game management aspects using secure communication between game devices and game servers, e.g. by encrypting game data or authenticating players
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/73Authorising game programs or game devices, e.g. checking authenticity
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/75Enforcing rules, e.g. detecting foul play or generating lists of cheating players

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Security & Cryptography (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Software Systems (AREA)
  • User Interface Of Digital Computer (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

훈련된 기계 학습 모델(들)은 비디오 게임 서비스에 등록된 사용자 계정에 대한 점수를 결정하는 데 사용되며, 점수는 멀티플레이어 비디오 게임 설정에서 플레이어를 함께 매칭시키는 데 사용된다. 예를 들어, 클라이언트 머신으로부터 수신된 센서 데이터는 훈련된 기계 학습 모델(들)에 입력될 수 있고, 모델(들)은 점수를 출력으로 생성하며, 이는 해당 클라이언트 머신으로부터 수신된 게임 제어 데이터가, 소프트웨어를 사용하여 합성 및/또는 수정된 것과는 대조적으로, 핸드헬드 장치에 의해 생성되었던 확률과 관련된다. 이러한 방식으로, 비디오 게임을 실행하는 로그인한 사용자 계정들의 서브셋은 로그인한 사용자 계정들에 대해 결정된 점수들에 적어도 부분적으로 기초하여 (예를 들어, 비인간 플레이어를 인간 플레이어로부터 격리함으로써) 서로 다른 경기에 할당될 수 있으며, 각 로그인한 사용자 계정에 대해 할당된 경기에서 비디오 게임이 실행된다.

Description

센서 데이터에 기초한 기계 학습식 신뢰 채점
관련 출원의 교차 참조
본 출원은, 2018년 9월 7일자로 "MACHINE-LEARNED TRUST SCORING FOR PLAYER MATCHMAKING"이라는 명칭으로 출원되어 계류 중인 미국 특허 출원 제16/125,224호의 일부 계속 출원으로서 35 U.S.C. §120 하의 우선권을 주장하는, 2019년 10월 24일자로 "MACHINE-LEARNED TRUST SCORING BASED ON SENSOR DATA"라는 명칭으로 출원되어 계류 중인 미국 특허 출원 제16/663,041호의 우선권을 주장하는 PCT 출원이다. 출원 제16/663,041호 및 제16/125,224호 각각은 그 전체가 본원에 원용되어 포함된다.
클라이언트 머신의 기능 증가와 더불어 광역 네트워크 통신의 지속적인 또는 거의 지속적인 가용성은 온라인 멀티플레이어 비디오 게임의 인기를 높여왔다. 이러한 멀티플레이어 비디오 게임에서, 비디오 게임 서비스는 매치메이킹 시스템을 사용하여 플레이어들을 함께 그룹으로 매칭해서 그룹을 이룬 플레이어들이 멀티플레이어 모드에서 함께 비디오 게임을 플레이할 수 있다. 플레이어들이 멀티플레이어 모드에서 자주 플레이하는 인기 있는 비디오 게임 장르 중 하나는 1인칭 슈팅(first-person shooter) 장르이다. 이러한 예시적인 장르에서, 둘 이상의 플레이어 팀은 경기에서 승리하기에 충분한 라운드를 획득할 목표로 여러 라운드에서 경쟁할 수 있다. 같은 팀의 플레이어들은 목적을 달성하기 위해 협력하면서 상대 팀의 플레이어들과 경쟁할 수 있다.
대다수의 비디오 게임 플레이어는 부정행위 행동에 가담하지 않지만, 다른 플레이어보다 우위를 차지하기 위해 부정행위를 하는 소수의 플레이어가 있는 경우가 있다. 종종, 부정행위 플레이어는 다른 플레이어에 비해 일부 정보 또는 기계적 이점을 제공하는 타사 소프트웨어(third party software)를 이용한다. 예를 들어, 타사 소프트웨어는 다른 플레이어의 위치에 대한 위치 데이터를 추출하도록 구성될 수 있으며 이러한 위치를 부정행위 플레이어에게 제공할 수 있다. 이러한 정보 이점을 통해 부정행위 플레이어는 다른 플레이어를 매복하여 공격하거나, 아니면 타사 소프트웨어에서 공개한 위치 정보를 악용할 수 있다. 더 두드러진 부정행위 방식은 (예를 들어, 마우스 커서를 프로그래밍 방식으로 대상 플레이어로 이동시켜서 무기를 자동화 방식으로 발사함으로써) 다른 플레이어의 위치를 검출하고 부정행위자의 아바타의 동작을 자동화할 수 있는 타사 소프트웨어를 사용하는 것이다. 다시 말해서, 일부 플레이어는 기계적인 관점에서 부정행위 플레이어의 성능을 향상시키는 컴퓨터화된 알고리즘을 사용하여 타사 소프트웨어가 자신을 대신해서 비디오 게임을 플레이하게 함으로써 부정행위를 한다.
일반적으로, 부정행위와 같은 불량 플레이어 행동은 게임을 합법적으로 플레이하려는 플레이어의 게임 플레이 경험을 망친다. 따라서, 불량 행동에 가담하려는 플레이어가 선한 행동을 보이는 다른 플레이어와 매칭되면, 선행 플레이어에게 있어서는 멀티플레이어 비디오 게임 경험이 망가진다. 향후 불량 행동에 가담할 가능성이 있는 플레이어를 식별하려는 현재 사용중인 시스템은 예측이 다소 정확하지 않다. 이러한 시스템은 또한 정적으로 규정된 규칙 및 입력을 기반으로 한다는 점에서 대체로 정적인데, 이는 시스템의 출력을 변경하기 위해 수동으로 조정되어야 함을 의미한다. 본원에서 이루어진 개시내용은 이러한 고려사항 및 기타 고려사항과 관련하여 제시된다.
상세한 설명은 첨부된 도면을 참조하여 기술된다. 도면에서, 도면 부호의 맨 왼쪽 숫자(들)는 도면 부호가 처음으로 나타나는 도면을 식별한다. 서로 다른 도면에서의 동일한 도면 부호의 사용은 유사하거나 동일한 구성요소 또는 특징부를 나타낸다.
도 1은 기계 학습 모델(들)을 훈련하고 사용하여 플레이어(들)의 가능한 행동과 관련된 신뢰 점수를 결정하고 기계 학습된 신뢰 점수에 기초하여 플레이어들을 함께 매칭시키도록 구성된 원격 컴퓨팅 시스템을 포함하는 예시적인 환경을 나타낸 도면이다.
도 2는 도 1의 원격 컴퓨팅 시스템의 예시적인 구성요소를 나타낸 블록도로서, 기계 학습식 신뢰 채점이 플레이어 매치메이킹에 어떻게 사용될 수 있는지를 예시하는 도면이다.
도 3은 특정 행동에 따라 플레이어가 행동하거나 행동하지 않을 확률을 예측하기 위해 기계 학습 모델(들)을 훈련하기 위한 예시적인 프로세스의 흐름도이다.
도 4는 특정 행동에 따라 플레이어가 행동하거나 행동하지 않을 확률과 관련된 신뢰 점수인, 사용자 계정에 대한 신뢰 점수를 결정하기 위해 훈련된 기계 학습 모델(들)을 이용하기 위한 예시적인 프로세스의 흐름도이다.
도 5는 가능성이 있는 플레이어 행동과 관련된 기계 학습된 신뢰 점수에 기초하여 멀티플레이어 비디오 게임의 상이한 경기에 사용자 계정을 할당하기 위한 예시적인 프로세스의 흐름도이다.
도 6은 핸드헬드 장치의 예시적인 구성요소를 나타낸 블록도를 포함하는 예시적인 환경을 나타낸 도면으로서, 도 6은 원격 컴퓨팅 시스템이 수신한 센서 데이터가 기계 학습식 신뢰 채점에 어떻게 사용될 수 있는지를 보여주고 있다.
도 7은 핸드헬드 장치에 의해 생성된 클라이언트 머신으로부터 수신된 게임 제어 데이터의 확률을 예측하기 위해 센서 데이터를 포함하는 데이터를 사용하여 기계 학습 모델(들)을 훈련하기 위한 예시적인 프로세스의 흐름도이다.
도 8은 사용자 계정에 대한 신뢰 점수를 결정하기 위해 훈련된 기계 학습 모델(들)을 이용하기 위한 예시적인 프로세스의 흐름도로서, 신뢰 점수는 핸드헬드 장치에 의해 생성된 게임 제어 데이터의 확률에 관한 것이다.
도 9는 핸드헬드 장치에 의해 생성된 게임 제어 데이터의 확률과 관련된 기계 학습된 신뢰 점수에 기초하여 멀티플레이어 비디오 게임의 상이한 경기에 사용자 계정을 할당하기 위한 예시적인 프로세스의 흐름도이다.
본원에서 설명되는 것은, 무엇보다도, 기계 학습 접근법을 사용하여 신뢰 점수를 생성한 후 기계 학습된 신뢰 점수를 사용하여 멀티플레이어 비디오 게임 설정에서 플레이어를 함께 매칭시키기 위한 기술, 장치, 및 시스템이다. 개시된 기술은 비디오 게임 서비스의 일부로서 사용자 커뮤니티의 클라이언트 머신에 비디오 게임(및 그의 콘텐츠)을 배포하는 원격 컴퓨팅 시스템에 의해 적어도 부분적으로 구현될 수 있다. 이러한 클라이언트 머신은 원격 컴퓨팅 시스템으로부터 수신된(예를 들어, 다운로드된, 스트리밍된 등) 비디오 게임을 실행하도록 구성되는 클라이언트 애플리케이션을 개별적으로 설치할 수 있다. 이러한 비디오 게임 플랫폼을 통해 커뮤니티의 등록된 사용자는 "플레이어"로서 비디오 게임을 플레이할 수 있다. 예를 들어, 사용자는 클라이언트 애플리케이션을 로딩하고, 등록된 사용자 계정으로 로그인하고, 원하는 비디오 게임을 선택하고, 클라이언트 애플리케이션을 통해 자신의 클라이언트 머신에서 비디오 게임을 실행할 수 있다.
전술한 사용자가 이러한 비디오 게임 플랫폼에 액세스하여 이를 사용할 때마다, 데이터는 원격 컴퓨팅 시스템에 의해 수집될 수 있으며 이러한 데이터는 등록된 사용자 계정과 관련하여 원격 컴퓨팅 시스템에 의해 유지될 수 있다. 시간이 지남에 따라, 등록된 사용자 계정에 결부된 대량의 이력 데이터 모음을 원격 컴퓨팅 시스템에서 사용할 수 있음을 알 수 있다. 그 후, 원격 컴퓨팅 시스템은 이력 데이터의 일부를 훈련 데이터로 사용하여 하나 이상의 기계 학습 모델을 훈련시킬 수 있다. 예를 들어, 샘플링된 세트의 사용자 계정들과 연관된 이력 데이터의 일부는 한 세트의 피쳐(feature)들로 표현될 수 있으며, 비디오 게임(들)을 플레이하는 동안 이전에 특정 방식으로 행동한 플레이어를 나타내도록 라벨링될 수 있다. 이러한 데이터에 대해 훈련된 기계 학습 모델(들)은 비디오 게임 서비스에 등록된 사용자 계정에 대한 기계 학습된 점수(예를 들어, 신뢰 점수)를 출력하여 플레이어 행동을 예측할 수 있다. 이러한 기계 학습된 점수는 플레이어 매치메이킹에 사용할 수 있으므로 특정 행동에 따라 행동하거나 행동하지 않을 가능성이 있는 플레이어는 멀티플레이어 비디오 게임 설정에서 함께 그룹화될 수 있다.
예시적인 프로세스에서, 컴퓨팅 시스템은 비디오 게임 서비스에 등록된 복수의 사용자 계정에 대한 점수(예를 들어, 신뢰 점수)를 결정할 수 있다. 개별 사용자 계정과 연관된 데이터에 액세스하고, 그 데이터를 훈련된 기계 학습 모델(들)로의 입력으로 제공하고, 개별 사용자 계정과 연관된 점수를 훈련된 기계 학습 모델로부터의 출력으로서 생성함으로써, 개별 점수를 결정할 수 있다. 점수는 개별 사용자 계정과 연관된 플레이어가 멀티플레이어 모드에서 하나 이상의 비디오 게임을 플레이하는 동안 특정 행동에 따라 행동하거나 행동하지 않을 확률과 관련된다. 그 후, 컴퓨팅 시스템은 비디오 게임을 실행하는 클라이언트 애플리케이션에 로그인되는 로그인한 사용자 계정을 나타내는 정보인 정보를 복수의 클라이언트 머신으로부터 수신할 수 있으며, 컴퓨팅 시스템은 플레이어가 멀티플레이어 모드에서 비디오 게임을 플레이하기 위해 그룹화될 다수의 경기를 규정할 수 있다. 이러한 다수의 경기는 적어도 제1 경기 및 제2 경기를 포함할 수 있다. 컴퓨팅 시스템은 로그인한 사용자 계정에 대해 결정된 점수에 적어도 부분적으로 기초하여 로그인한 사용자 계정들의 제1 서브셋을 제1 경기에 할당하고 로그인한 사용자 계정들의 제2 서브셋을 제2 경기에 할당할 수 있고, 로그인한 사용자 계정들의 제1 서브셋과 연관된 클라이언트 머신들의 제1 서브셋이 제1 경기에서 비디오 게임을 실행하게 하면서 로그인한 사용자 계정들의 제2 서브셋과 연관된 클라이언트 머신들의 제2 서브셋이 제2 경기에서 비디오 게임을 실행하게 할 수 있다.
비디오 게임을 합법적으로 플레이하려는 인간 플레이어는 비디오 게임을 플레이하기 위해 종종 핸드헬드 장치(예를 들어, 핸드헬드 게임 컨트롤러)를 이용하고, 그리고 부정행위 목적으로 게임 제어 데이터를 합성 및/또는 수정하도록 구성된 소프트웨어는 합성 및/또는 수정된 게임 제어 데이터를 생성하기 위해 핸드헬드 장치를 사용하지 않기 때문에, 핸드헬드 장치의 하나 이상의 센서와 연관된 센서 데이터는 합법적인 인간 플레이어를 부정행위하도록 프로그래밍된 소프트웨어와 구별하기 위해 기계 학습식 채점을 사용하여 활용될 수 있으므로 부정행위하기 위해 소프트웨어를 사용하는 플레이어는 합법적인 인간 플레이어와 구별될 수 있다. 따라서, 비디오 게임 플랫폼과 상호작용하는 하나 이상의 클라이언트 머신으로부터 게임 제어 데이터 및 센서 데이터를 수신하고, 적어도 그 센서 데이터를 훈련된 기계 학습 모델(들)로의 입력으로 제공하여, 사용자 계정(들)과 연관된 신뢰 점수(들)를 생성하기 위한 기술, 장치, 및 시스템이 본원에 설명된다. 이러한 예에서, 신뢰 점수는 주어진 클라이언트 머신으로부터 수신된 게임 제어 데이터가 주어진 클라이언트 머신과 연관된 핸드헬드 장치에 의해 생성된 확률과 관련될 수 있다. 따라서, 비디오 게임을 한 명 이상의 다른 인간 플레이어와 합법적으로 플레이하려는 인간 플레이어에게 비인간 플레이어(예를 들어, 부정행위를 위해 설계된 소프트웨어)가 매칭되는 경우를 줄이기 위해 신뢰 점수(들)를 플레이어 매치메이킹에 활용할 수 있다.
예를 들어, 사용자들은 비디오 게임 플랫폼을 통해 비디오 게임을 플레이할 때마다 비디오 게임의 양태(들)를 제어하기 위해 핸드헬드 게임 컨트롤러와 같은 핸드헬드 장치를 사용할 수 있다. 소정의 핸드헬드 장치는 다른 가능한 센서들 중에서도 특히, 자이로스코프(들), 가속도계(들), 및/또는 터치 센서(들)와 같은 하나 이상의 센서를 이에 국한되지 않고 포함할 수 있다. 예를 들어, 터치 센서(들)(예를 들어, 용량성 패드(들))는 장치의 표면 아래나 그 표면에, 및/또는 손가락 조작형 제어 장치 내부나 그 상에 배치될 수 있다. 이러한 터치 센서(들)는 표면 또는 손가락 조작형 제어 장치로의 손가락(들)의 근접을 검출하도록 구성될 수 있고, 터치 센서(들)는 이에 응답하여 터치 센서(들)로의 손가락(들)의 근접을 나타내는 센서 데이터를 생성할 수 있다. 다른 예로서, 핸드헬드 장치의 하우징에 장착된 자이로스코프(들) 및/또는 가속도계(들)는 핸드헬드 장치의 다양한 방향으로의 움직임(예를 들어, 병진, 회전, 및/또는 기울임 움직임 등에 의한 움직임)을 검출할 수 있고, 자이로스코프(들) 및/또는 가속도계(들)는 이에 응답하여 이러한 움직임의 특성(들)을 나타내는 센서 데이터를 생성할 수 있다. 일반적으로, 센서 데이터는 예를 들어 비디오 게임의 양태(들)를 제어하기 위해(예를 들어, 플레이어 제어형 캐릭터를 제어하기, 디스플레이에 보이는 것을 지시하는 가상 카메라를 회전시키기 등등을 위해) 다양한 목적으로 이용될 수 있다. 이러한 방식으로 센서 데이터가 게임 제어 데이터로 사용되는 경우, 센서 데이터는 일부 경우에 비디오 게임의 양태(들)를 제어하는 데 사용되기 전에 변경(예를 들어, 필터링/완화, 증폭 등)될 수 있다. 그러나, 본원에 설명된 기술 및 시스템은 핸드헬드 장치의 하나 이상의 센서에 의해 생성된 원시의 미필터링된 센서 데이터를 (예를 들어, 연관된 클라이언트 머신을 통해 센서 데이터를 전송함으로써) 원격 컴퓨팅 시스템으로 전송하도록 구성된 핸드헬드 장치에 관한 것이다. 이러한 원시 센서 데이터는 비디오 게임의 양태를 제어하기 위해 처리될 게임 제어 데이터(예를 들어, 버튼 누름, 조이스틱 편향 등으로 생성된 데이터 및 변경된 센서 데이터)와 함께 전송될 수 있다.
시간이 지남에 따라, 사용자가 하나 이상의 센서를 갖는 핸드헬드 장치를 사용하여 비디오 게임 플랫폼과 상호작용함에 따라, 전술한 그리고 본원의 다른 곳에서 설명된 바와 같이, 이력 센서 데이터 및 게임 제어 데이터의 대규모 모음이 등록된 사용자 계정과 연관되어 기계 학습 모델(들)을 훈련시키는 데 사용될 수 있다. 예를 들어, 원격 컴퓨팅 시스템은 이력 센서 데이터의 일부를 훈련 데이터로 사용하여 하나 이상의 기계 학습 모델을 훈련시킬 수 있다. 예를 들어, 샘플링된 세트의 사용자 계정들과 연관된 이력 센서 데이터의 일부는 한 세트의 피쳐들로 표현될 수 있고, 샘플링된 세트의 각 사용자 계정은 그 사용자 계정과 연관된 이력 게임 제어 데이터가, 플레이어가 핸드헬드 장치를 잡고 조작하여 게임 제어 데이터를 생성하는 중에 실제 핸드헬드 장치에 의해 생성되었는지 여부를 나타내도록 라벨링될 수 있다. 이러한 센서 데이터에 대해 훈련된 기계 학습 모델(들)은 특정 사용자 계정과 관련된 게임 제어 데이터가 소프트웨어에 의해 합성 및/또는 수정된 것과는 대조적으로 물리적 핸드헬드 장치에 의해 생성되었는지 여부를 결정할 수 있다. 이러한 방식으로, 기계 학습 모델(들)은 기계 학습 모델(들)로의 입력으로 제공된 센서 데이터에 기초하여 부정행위 행동을 검출할 수 있다. 예를 들어, 사람이 핸드헬드 게임 컨트롤러와 같은 핸드헬드 장치를 조작할 때, 의도하지 않은 움직임인 핸드헬드 장치의 미묘한 움직임이 있을 수 있지만, 그 미묘한 움직임은 핸드헬드 장치의 하나 이상의 물리적 센서(예를 들어, 터치 센서(들), 자이로스코프(들), 및/또는 가속도계(들) 등)에 의해 생성된 센서 데이터에 나타날 수 있다. 인간 플레이어와 비인간 플레이어를 구별하기 위해 적어도 이러한 센서 데이터를 훈련 데이터로 사용하여 기계 학습 모델(들)을 훈련시킬 수 있다. 예를 들어, 기계 학습 모델(들)은 클라이언트 머신으로부터 수신된 신규 센서 데이터의 미묘한 뉘앙스를 인식함으로써, (예를 들어, 인간 사용자에 의해) 기계적으로 작동되는 장치와 같은 실제 핸드헬드 장치의 물리적 센서(들)에 의해 생성된 대응하는 게임 제어 데이터를 나타내는 신뢰 점수를 출력할 수 있다. 반대로, 기계 학습 모델(들)은 다른 클라이언트 머신으로부터 센서 데이터를 수신하지 못하거나, 또는 센서 데이터에 나타날 것으로 예상되는 다른 클라이언트 머신으로부터 수신된 센서 데이터의 미묘한 뉘앙스를 인식하지 못함으로써, 예컨대, 자동화된 방식으로 사람의 개입 없이 플레이어 제어형 캐릭터의 무기를 조준하고 발사하도록 게임 제어 데이터를 프로그래밍 방식으로 생성하는 소위 "에임봇(aimbot)"에 의해 합성 및/또는 수정된 게임 제어 데이터와 같은, 소프트웨어를 사용하여 합성 및/또는 수정된 대응하는 게임 제어 데이터를 나타내는 신뢰 점수를 출력할 수 있다. 이와 같이, 플레이어 매치메이킹에 기계 학습된 점수를 사용하면 비디오 게임을 합법적으로 플레이하려는 인간 플레이어를 비디오 게임의 멀티플레이어 모드에서 부정행위하도록 설계된 소프트웨어와 같은 비인간 플레이어와의 매칭을 피할 수 있다.
예시적인 프로세스에서, 컴퓨팅 시스템은 클라이언트 머신으로부터 게임 제어 데이터 및 센서 데이터를 수신할 수 있고, 수신된 데이터와 연관되고 비디오 게임 서비스에 등록된 사용자 계정에 대한 점수(예를 들어, 신뢰 점수)를 결정할 수 있다. 예를 들어, 컴퓨팅 시스템은 수신된 센서 데이터를 훈련된 기계 학습 모델(들)로의 입력으로 제공하고, 사용자 계정과 연관된 점수를 훈련된 기계 학습 모델(들)로부터의 출력으로서 생성할 수 있다. 점수는 클라이언트 머신과 연관된 핸드헬드 장치에 의해 생성된 수신된 게임 제어 데이터의 확률과 관련된다. 점수에 기초하여, 컴퓨팅 시스템은 인간 플레이어를 위해 지정된 제1 경기 또는 비인간 플레이어를 위해 지정된 제2 경기 중 적어도 하나를 포함하는 다수 경기 중 할당된 경기에 사용자 계정을 할당할 수 있다. 따라서, 할당된 경기에서 사용자 계정으로 비디오 게임을 실행할 수 있다.
본원에 설명된 기술 및 시스템은 비디오 게임을 플레이하고자 하는 방식으로 멀티플레이어 모드에서 플레이하기를 원하는 사용자에게 개선된 게임 경험을 제공할 수 있다. 이는 본원에 설명된 기술 및 시스템이 불량하게 행동을 할(예를 들어, 부정행위를 할) 가능성이 있는 플레이어들("에임봇"과 같은 비인간 플레이어를 포함)을 함께 매칭하여, 그 플레이어들을, 비디오 게임을 합법적으로 플레이할 가능성이 있는 다른 신뢰성 갖춘 플레이어들로부터 격리할 수 있기 때문이다. 예를 들어, 훈련된 기계 학습 모델(들)은 각 플레이어의 부정행위를 할(또는 부정행위를 하지 않을) 성향을 나타내는 사용자 계정에 대응하는 신뢰 점수를 부여하여 어느 플레이어가 부정행위를 할 가능성이 있는지 그리고 어느 플레이어가 부정행위를 할 가능성이 없는지를 예측하는 것을 학습할 수 있다. 이러한 방식으로, 낮은(예를 들어, 임계치 미만) 신뢰 점수를 갖는 플레이어는 함께 매칭될 수 있으며, 사용자 계정이 높은(예를 들어, 임계치 초과) 신뢰 점수로 귀속되는 다른 플레이어로부터 격리될 수 있어, 신뢰성 갖춘 플레이어는 부정행위를 할 가능성이 있는 플레이어 없이 경기에서 플레이할 수 있다. 임계 점수의 사용이 경기 할당을 제공하는 하나의 예시적인 방식으로 설명되지만, 클러스터링 알고리즘, 또는 신뢰 점수를 사용하여 "유사한" 신뢰 점수로 함께(예를 들어, 거리 메트릭, 분산 메트릭 등과 같은 유사성 메트릭에 기초하여) 사용자 계정(플레이어)을 우선적으로 매칭시키는 다른 통계적 접근법과 같은 다른 기술이 고려된다.
본원에 설명된 기술 및 시스템은 또한 사용자의 신뢰 수준을 결정하기 위해 정적 규칙을 사용하는 기존의 매치메이킹 기술을 개선한다. 그러나, 기계 학습 모델(들)은 플레이어 행동의 복잡한 관계를 식별하는 것을 학습하여 플레이어 행동을 더 잘 예측할 수 있는 데, 이는 정적 규칙 기반 접근법으로는 불가능하다. 따라서, 본원에 설명된 기술 및 시스템은 기존의 신뢰 시스템과 비교하여 플레이어 행동을 더 정확하게 예측하는 신뢰 점수를 생성할 수 있게 하여, 위양성률(false positive rate)을 낮추고 부정확한 신뢰 점수로 귀속되는 플레이어의 경우를 줄인다. 본원에 설명된 기술 및 시스템은 또한, 플레이어 행동이 변함에 따라 시간이 지나면서 플레이어 행동에 대한 기계 학습 모델(들) 이해를 조정하기 위해 기계 학습 모델(들)이 새로운 데이터로 재훈련되기 때문에 기존의 시스템보다 플레이어 행동의 변화하는 역학에 더 적응할 수 있다. 본원에 설명된 기술 및 시스템은 또한, 하나 이상의 장치가 본원에 설명된 다양한 방식으로 처리 리소스, 메모리 리소스, 네트워킹 리소스 등에 관한 리소스를 보존하게 할 수 있다.
본원에 설명된 많은 예는 플레이어가 매치메이킹 목적을 위해 채점되고 그룹화될 수 있는 대상 행동으로서 "부정행위"를 언급하지만, 본원에 설명된 기술 및 시스템은 기계 학습식 채점 접근법을 사용하여 임의의 유형의 행동(선한 또는 불량)을 식별하고 플레이어 매치메이킹의 목적을 위해 플레이어가 해당 행동에 참여할 가능성을 예측하도록 구성될 수 있다. 따라서, 기술 및 시스템은 부정행위와 같은 불량 행동과 관련하여 "신뢰" 채점의 개념을 넘어서 확장할 수 있으며, 플레이어 간의 호환성 또는 친화성을 나타내는 사용자 계정에 점수를 더 광범위하게 부여할 수 있다.
도 1은 기계 학습 모델(들)을 훈련하고 사용하여 플레이어(들)의 가능한 행동과 관련된 신뢰 점수를 결정하고 기계 학습된 신뢰 점수에 기초하여 플레이어를 함께 매칭시키도록 구성된 원격 컴퓨팅 시스템을 포함하는 예시적인 환경(100)을 나타낸 도면이다. 사용자(102)의 커뮤니티는 하나 이상의 클라이언트 머신(104)과 연관될 수 있다. 도 1에 도시된 클라이언트 머신(104(1) 내지 104(N))은 비디오 게임과 같은 프로그램을 실행하기 위해 사용자(102)에 의해 이용될 수 있는 컴퓨팅 장치를 나타낸다. 이 때문에, 도 1에 도시된 사용자(102)는 때때로 "플레이어"(102)로 지칭되고, 이러한 명칭은 본원에서 클라이언트 머신(104)의 인간 조작자를 지칭하기 위해 상호교환적으로 사용될 수 있다. 클라이언트 머신(104)은 비디오 게임을 실행하고 개인용 컴퓨터(PC), 데스크톱 컴퓨터, 랩톱 컴퓨터, 휴대폰(예를 들어, 스마트 폰), 태블릿 컴퓨터, 휴대용 디지털 단말기(PDA), 웨어러블 컴퓨터(예를 들어, 가상 현실(VR) 헤드셋, 증강 현실(AR) 헤드셋, 스마트 안경 등), 차량 내(예를 들어, 자동차 내) 컴퓨터, 텔레비전(스마트 텔레비전), 셋톱 박스(STB), 게임 콘솔, 및/또는 임의의 유사한 컴퓨팅 장치를 이에 국한되지 않고 포함하는, 관련 디스플레이에 그래픽을 렌더링하도록 구성된 임의의 적절한 유형의 컴퓨팅 장치로 구현될 수 있다. 더욱이, 클라이언트 머신(104)은 각각의 플랫폼(예를 들어, 하드웨어 및 소프트웨어)에 따라 달라질 수 있다. 예를 들어, 도 1에 도시된 복수의 클라이언트 머신(104)은 처리 능력(예를 들어, 중앙 처리 유닛(CPU) 모델, 그래픽 처리 유닛(GPU) 모델 등), 그래픽 드라이버 버전 등의 관점에서 다양한 능력을 갖는 상이한 유형의 클라이언트 머신(104)을 나타낼 수 있다.
클라이언트 머신(104)은 컴퓨터 네트워크(108)를 통해 원격 컴퓨팅 시스템(106)(때때로 본원에서 "컴퓨팅 시스템(106)" 또는 "원격 시스템(106)"으로 축약됨)과 통신할 수 있다. 컴퓨터 네트워크(108)는 인터넷, 기타 유형의 데이터 및/또는 음성 네트워크, 유선 인프라(예를 들어, 동축 케이블, 광섬유 케이블 등), 무선 인프라(예를 들어, 무선 주파수(RF), 셀룰러, 위성 등), 및/또는 기타 연결 기술을 이에 국한되지 않고 의미하는 것이고/이거나 포함할 수 있다. 컴퓨팅 시스템(106)은, 일부 경우에, 컴퓨터 네트워크(108)를 통해 유지되고 액세스 가능한 네트워크 액세스 가능 컴퓨팅 플랫폼의 일부일 수 있다. 이와 같은 네트워크 액세스 가능 컴퓨팅 플랫폼은 "주문형 컴퓨팅", "서비스형 소프트웨어(SaaS)", "플랫폼 컴퓨팅", "네트워크 액세스 가능 플랫폼", "클라우드 서비스", "데이터 센터" 등과 같은 용어를 사용하는 것으로 지칭될 수 있다.
일부 실시예에서, 컴퓨팅 시스템(106)은 비디오 게임(110)(및 그의 콘텐츠)을 클라이언트 머신(104)에 배포(예를 들어, 다운로드, 스트리밍 등)하기 위해 비디오 게임 서비스를 구현하는 비디오 게임 플랫폼으로서 역할을 하거나 이에 액세스 한다. 일 예에서, 클라이언트 머신(104)은 각각 그 위에 클라이언트 애플리케이션을 설치할 수 있다. 설치된 클라이언트 애플리케이션은 비디오 게임 클라이언트(예를 들어, 비디오 게임(110)을 플레이하기 위한 게임 소프트웨어)일 수 있다. 클라이언트 애플리케이션이 설치된 클라이언트 머신(104)은 컴퓨터 네트워크(108)를 통해 컴퓨팅 시스템(106)으로부터 프로그램(예를 들어, 비디오 게임(110) 및 그의 콘텐츠)을 다운로드, 스트리밍, 또는 수신하도록 구성될 수 있다. 프로그램(예를 들어, 비디오 게임(110))이 클라이언트 머신(104)에 다운로드 및 실행되기 위해 개별적으로 구매될 수 있는 직접 구매 모델, 구독 기반 모델, 프로그램이 일정 기간 동안 임대 또는 리스되거나, 스트리밍되거나, 또는 이와 달리 클라이언트 머신(104)에 이용 가능하게 이루어지는 콘텐츠 배포 모델과 같은 임의의 유형의 콘텐츠 배포 모델이 이러한 목적을 위해 이용될 수 있다. 따라서, 개별 클라이언트 머신(104)은 클라이언트 애플리케이션을 로딩함으로써 실행 가능한 하나 이상의 설치된 비디오 게임(110)을 포함할 수 있다.
도 1의 참조 부호 112로 나타낸 바와 같이, 클라이언트 머신(104)은 비디오 게임 서비스에 등록하고 그 후에 로그인하는데 사용될 수 있다. 사용자(102)는 이러한 목적을 위해 사용자 계정을 생성하고 등록된 사용자 계정에 결부된 자격 증명(예를 들어, 암호, PIN, 생체 인식 ID 등)을 지정/설정할 수 있다. 복수의 사용자(102)가 (예를 들어, 등록된 사용자 계정으로 사용자/플레이어 프로파일에 액세스하고, 각각의 클라이언트 머신(104)에서 비디오 게임(110)을 플레이하는 등에 의해) 비디오 게임 플랫폼과 상호작용할 때, 클라이언트 머신(104)은 데이터(114)를 원격 컴퓨팅 시스템(106)에 전송한다. 주어진 클라이언트 머신(104)에 대해 원격 컴퓨팅 시스템(106)으로 전송된 데이터(114)는 사용자 입력 데이터, 비디오 게임 데이터(예를 들어, 원격 시스템에 업로드된 게임 성능 통계), 소셜 네트워킹 메시지와 관련 활동, 클라이언트 머신(104)에서 플레이되는 비디오 게임(110)의 식별자(ID) 등을 이에 국한되지 않고 포함할 수 있다. 이러한 데이터(114)는 실시간(또는 실질적으로 실시간)으로 스트리밍되고, 규정된 간격으로 원격 시스템(106)으로 전송되고/되거나 이벤트(예를 들어, 비디오 게임 종료)에 응답하여 업로드될 수 있다.
도 1은 컴퓨팅 시스템(106)이 클라이언트 머신(104)으로부터 수집한 데이터(114)를 데이터저장소(116) - 데이터저장소는 원격 컴퓨팅 시스템(106)에 의해 유지되고 이에 액세스 가능한 데이터 보관소를 나타낼 수 있음 - 에 저장할 수 있다는 것을 도시하고 있다. 데이터(114)는 사용자 계정을 해당 사용자 계정과 관련된 데이터(114)의 관련 부분과 연관시키기 위해 임의의 적절한 방식으로 데이터저장소(116) 내에서 구성될 수 있다. 시간이 지남에 따라, 비디오 게임 플랫폼과 자주 상호작용하는 사용자(102)의 대규모 커뮤니티를 고려할 때, 때때로 주어진 세션 중 장기간 동안, 대량의 데이터(114)가 데이터저장소(116)에 수집되고 유지될 수 있다.
도 1의 단계 1에서, 컴퓨팅 시스템(106)은 데이터저장소(116)로부터 샘플링된 이력 데이터(114)를 사용하여 기계 학습 모델(들)을 훈련시킬 수 있다. 예를 들어, 컴퓨팅 시스템(106)은 비디오 게임 서비스에 등록된 사용자 계정들의 샘플링된 세트와 연관된 이력 데이터(114)의 일부에 액세스하고, 샘플링된 데이터(114)를 사용하여 기계 학습 모델(들)을 훈련시킬 수 있다. 일부 실시예에서, 훈련 데이터로 사용되는 데이터(114)의 일부는 한 세트의 피쳐들로 표현되고, 샘플링된 세트의 각 사용자 계정은 사용자 계정이 이전에 적어도 하나의 비디오 게임을 플레이하는 동안 특정 행동에 따라 행동한 플레이어와 연관되는지 여부를 나타내는 라벨로 라벨링된다. 예를 들어, 특정 사용자 계정을 가진 플레이어가 이전에 부정행위로 인해 비디오 게임 서비스에 의해 금지된 경우, 이러한 "금지"는 특정 사용자 계정에 대한 여러 클래스 라벨들 중 하나로 사용될 수 있다. 이러한 방식으로, 향후 부정행위를 할 가능성이 있는 플레이어를 예측하기 위해 기계 학습 모델(들)을 훈련시키도록 지도 학습 접근법을 취할 수 있다.
단계 2에서, 컴퓨팅 시스템(106)은 훈련된 기계 학습 모델(들)을 사용하여 복수의 등록된 사용자 계정을 채점할 수 있다. 예를 들어, 컴퓨팅 시스템(106)은 데이터저장소(116)로부터 복수의 등록된 사용자 계정과 연관된 데이터(114)에 액세스하고, 그 데이터(114)를 훈련된 기계 학습 모델(들)로의 입력으로 제공하고, 복수의 사용자 계정과 연관된 점수를 훈련된 기계 학습 모델(들)로부터의 출력으로서 생성할 수 있다. 이러한 점수(때때로 본원에서 "신뢰 점수(trust score)" 또는 "신뢰 계수(trust factor)"로 지칭됨)는 복수의 사용자 계정과 연관된 플레이어가 멀티플레이어 모드에서 하나 이상의 비디오 게임을 플레이하는 동안 특정 행동에 따라 행동하거나 행동하지 않을 확률과 관련된다. 부정행위와 같은 "불량" 행동의 경우, 신뢰 점수는 플레이어가 부정행위를 하지 않을 확률과 관련될 수 있다. 이 경우, 높은 신뢰 점수는 신뢰성 갖춘 사용자 계정을 나타내지만, 낮은 신뢰 점수는 부정행위와 같은 불량 행동을 보일 가능성이 있는 플레이어의 지표로서 사용될 수 있는 신뢰할 수 없는 사용자 계정을 나타낸다. 일부 실시예에서, 점수는 [0,1]의 범위에서 정규화되는 변수이다. 이러한 신뢰 점수는 플레이어가 비디오 게임(110)을 플레이하는 동안 특정 행동에 따라 행동할(또는 경우에 따라 행동하지 않을 수 있음) 확률과 단조로운 관계를 가질 수 있다. 점수와 특정 행동과 연관된 실제 확률 간의 관계는 단조롭지만 선형 관계일 수도 있고 아닐 수도 있다. 물론, 채점은 사용자 계정에 결부된 플레이어가 특정 방식으로 행동할지 여부를 예측하기 위해 임의의 적절한 방식으로 구현될 수 있다. 도 1은 본원에 설명된 기술에 따라 채점되는 복수의 사용자 계정(120)을 도시하고 있다. 예를 들어, 등록된 사용자 계정(120)의 임의의 적절한 수에 대해, 제1 점수(118(1))(점수=X)는 제1 사용자 계정(120(1))에 귀속되고, 제2 점수(118(2))(점수=Y)는 제2 사용자 계정(120(2))에 귀속되는 등으로 될 수 있다.
복수의 등록된 사용자 계정(120)에 대해 결정된 기계 학습된 점수(118)와 더불어, 컴퓨팅 시스템(106)은 기계 학습된 점수(118)에 적어도 부분적으로 기초하여 멀티플레이어 비디오 게임 설정에서 플레이어를 함께 매칭하도록 구성될 수 있다. 예를 들어, 도 1은 컴퓨팅 시스템(106)이 비디오 게임(110)의 실행을 시작한 복수의 클라이언트 머신(104)으로부터 정보(122)를 수신할 수 있음을 도시하고 있다. 이러한 정보(122)는 한 세트의 로그인한 사용자 계정들(120)이 설치된 클라이언트 애플리케이션을 통해 각 클라이언트 머신(104)에서 비디오 게임(110)을 현재 실행하고 있음을 컴퓨팅 시스템(106)에 나타낼 수 있다. 다시 말해서, 플레이어(102)가 그의 사용자 계정(120)으로 로그인하고 특정 비디오 게임(110)을 실행하기 시작하여 멀티플레이어 모드에서 플레이를 요청함에 따라, 그 각각의 클라이언트 머신(104)은 그만큼을 나타내는 정보(122)를 컴퓨팅 시스템(106)에 제공할 수 있다.
단계 3에서, 컴퓨팅 시스템(106)은, 클라이언트 머신(104)으로부터 이러한 정보(122)를 수신한 것에 응답하여, 멀티플레이어 모드에서 비디오 게임(110)을 플레이하기 위해 플레이어(102)가 그룹화될 다수의 경기를 규정함으로써, 그리고 로그인한 사용자 계정(120)에 대해 결정된 기계 학습된 점수(118)에 적어도 부분적으로 기초하여 다수의 경기 중 상이한 경기에 로그인한 사용자 계정들(120)의 서브셋을 할당하기 위해 클라이언트 머신들(104)에 경기 할당(124)을 제공함으로써, 플레이어(102)를 함께 매칭시킬 수 있다. 이러한 방식으로, 훈련된 기계 학습 모델(들)이 로그인한 사용자 계정들(120)의 제1 서브셋에 낮은(예를 들어, 임계치 미만) 점수(118)를 할당하고 로그인한 사용자 계정들(120)의 제2 서브 셋에 높은(예를 들어, 임계치 초과) 점수(118)를 할당하면, 로그인한 사용자 계정들(120)의 제1 서브셋은 여러 경기 중 제1 경기에 할당될 수 있고 로그인한 사용자 계정들(120)의 제2 서브셋은 여러 경기 중 다른 제2 경기에 할당될 수 있다. 이러한 방식으로, 유사한 점수(118)를 갖는 플레이어들(102)의 서브셋은 함께 그룹화될 수 있고, 플레이어들(102)의 점수들(118)의 서브셋과 다른 점수(118)를 갖는 다른 플레이어들로부터 격리된 상태로 유지될 수 있다.
단계 4에서, 비디오 게임(110)을 실행하는 각 머신(104)의 클라이언트 애플리케이션은 로그인한 해당 사용자 계정(120)에 대해 할당된 경기에서 비디오 게임(110)을 실행할 수 있다. 예를 들어, 클라이언트 머신들(104)의 제1 서브셋은 제1 경기에 할당된 로그인한 사용자 계정들(120)의 제1 서브셋과 연관될 수 있고, 클라이언트 머신들(104)의 이러한 제1 서브셋은 제1 경기에서 비디오 게임(110)을 실행할 수 있으면서, 제2 경기에 할당된 로그인한 사용자 계정들(120)의 제2 서브셋과 연관된 클라이언트 머신들(104)의 제2 서브셋은 제2 경기에서 비디오 게임(110)을 실행할 수 있다. 플레이어들이 기계 학습된 점수(118)에 적어도 부분적으로 기초하여 경기에 그룹화됨으로써, 시스템은 (예를 들어, 부정행위를 함으로써) 불량하게 행동할 것으로 예측된 플레이어들을 함께 동일한 경기에 그룹화시킬 수 있기 때문에, 그룹의 플레이어들(102) 중 적어도 일부에 있어서는 게임 내 경험이 개선될 수 있으며, 이렇게 함으로써, 악행 플레이어들을, 비디오 게임(110)을 합법적으로 플레이하고자 하는 다른 플레이어들로부터 격리시킬 수 있다.
도 2는 도 1의 원격 컴퓨팅 시스템(106)의 예시적인 구성요소를 나타낸 블록도로서, 기계 학습식 신뢰 채점이 플레이어 매치메이킹에 어떻게 사용될 수 있는지를 예시하는 도면이다. 예시된 구현예에서, 컴퓨팅 시스템(106)은, 다른 구성요소들 중에서도 특히, 하나 이상의 프로세서(202)(예를 들어, 중앙 처리 유닛(들)(CPU(들))), 메모리(204)(또는 비일시적 컴퓨터 판독 가능 매체(204)), 및 통신 인터페이스(들)(206)를 포함한다. 메모리(204)(또는 비일시적 컴퓨터 판독 가능 매체(204))는 컴퓨터 판독 가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성 메모리, 착탈식 및 비착탈식 매체를 포함할 수 있다. 이러한 메모리는 RAM, ROM, EEPROM, 플래시 메모리 또는 기타 메모리 기술, CD-ROM, 디지털 다용도 디스크(DVD) 또는 기타 광학 스토리지, 자기 카세트, 자기 테이프, 자기 디스크 스토리지 또는 기타 자기 저장 장치, RAID 저장 시스템 또는 원하는 정보를 저장하는 데 사용될 수 있고 컴퓨팅 장치에 의해 액세스될 수 있는 임의의 기타 매체를 포함하지만, 이에 국한되는 것은 아니다. 컴퓨터 판독 가능 매체(204)는 컴퓨터 판독 가능 저장 매체("CRSM")로서 구현될 수 있으며, 이는 메모리(204)에 저장된 명령어를 실행하기 위해 프로세서(들)(202)에 의해 액세스 가능한 임의의 이용 가능한 물리적 매체일 수 있다. 하나의 기본 구현예에서, CRSM은 랜덤 액세스 메모리("RAM") 및 플래시 메모리를 포함할 수 있다. 다른 구현예에서, CRSM은 읽기 전용 메모리("ROM"), 전기적으로 소거 가능한 프로그래머블 읽기 전용 메모리("EEPROM") 또는 원하는 정보를 저장하는 데 사용될 수 있고 프로세서(들)(202)에 의해 처리될 수 있는 임의의 다른 유형의 매체를 포함할 수 있지만, 이에 국한되는 것은 아니다. 비디오 게임 서비스(208)는 프로세서(들)(202)에 의해 실행될 때 컴퓨팅 시스템(106)이 본원에 설명된 기술 및 작업을 수행하게 하는 메모리(204)에 저장된 명령어를 나타낼 수 있다.
예를 들어, 비디오 게임 서비스(208)는, 다른 가능한 구성요소들 중에서도 특히, 훈련 구성요소(210), 채점 구성요소(212), 및 매치메이킹 구성요소(214)를 포함할 수 있다. 훈련 구성요소(210)는 샘플링된 세트의 사용자 계정들(120)과 연관된 데이터저장소(116)의 데이터(114)의 일부를 훈련 데이터로 사용하여 기계 학습 모델(들)을 훈련시켜 훈련된 기계 학습 모델(들)(216)을 획득하도록 구성될 수 있다. 훈련된 기계 학습 모델(들)(216)은 복수의 등록된 사용자 계정(120)에 대한 점수(118)(예를 들어, 신뢰 점수(118))를 결정하기 위해 채점 구성요소(212)에 의해 사용 가능하다. 매치메이킹 구성요소(214)는 기계 학습된 점수(118)에 적어도 부분적으로 기초하여 경기 할당(124)을 제공해서, 플레이어는 멀티플레이어 모드에서 비디오 게임(110)을 플레이하기 위해 다수의 경기(218)(예를 들어, 제1 경기(218(1)), 제2 경기(218(2)) 등) 중 상이한 경기로 그룹화된다. 도 2는 로그인한 사용자 계정들(120)의 제1 서브셋과 연관된 제1 그룹의 플레이어(102)(예를 들어, 10명의 플레이어(102))를 제1 경기(218(1))에 할당하고, 로그인한 사용자 계정들(120)의 제2 서브셋과 연관된 제2 그룹의 플레이어(102)(예를 들어, 다른 10명의 플레이어(102))를 제2 경기(218(2))에 할당하는 방법을 도시하고 있다. 물론, 멀티플레이어 모드에서 비디오 게임(110)을 실행하도록 요청하는 로그인한 사용자 계정(120)의 수, 컴퓨팅 시스템(106)이 처리할 수 있는 네트워크 트래픽의 용량 제한, 및/또는 기타 인자에 따라 달라질 수 있는 임의의 수의 경기(218)가 규정될 수 있다. 일부 실시예에서, 다른 인자(예를 들어, 숙련도, 지리적 지역 등)이 매치메이킹 프로세스에서 고려되며, 이는 플레이어를 더 적거나 더 많은 수의 경기(218)로 추가 분류 및/또는 세분화할 수 있다.
전술한 바와 같이, 채점 구성요소(212)에 의해 결정된 점수(118)(예를 들어, 훈련된 기계 학습 모델(들)(216)에 의한 출력)는 기계 학습된 점수(118)이다. 기계 학습은 일반적으로 기계 학습 모델을 훈련시키기 위해 일련의 사례("훈련 데이터"라고 함)를 처리하는 것을 포함한다. 일단 훈련된 기계 학습 모델(들)(216)은 새로운 데이터를 입력으로 수신하고 결과를 출력으로 추정하거나 예측할 수 있는 학습된 메커니즘이다. 예를 들어, 훈련된 기계 학습 모델(216)은 미지의 입력(예를 들어, 미지의 이미지)을 다수의 클래스 라벨 중 하나로 분류하는(예를 들어, 이미지를 고양이 또는 개로 라벨링) 작업을 수행하는 분류기를 포함할 수 있다. 일부 경우에, 훈련된 기계 학습 모델(216)은 다중 라벨 분류 작업(예를 들어, 이미지를 "고양이", "개", "오리", "펭귄" 등으로 라벨링)을 구현하도록 구성된다. 추가적으로 또는 대안적으로, 훈련된 기계 학습 모델(216)은 입력으로서 수신된 미지의 데이터에 기초한 분류 작업을 위해 하나의 확률 또는 한 세트의 확률들을 추론하도록 훈련될 수 있다. 본 개시내용의 맥락에서, 미지의 입력은 비디오 게임 서비스에 등록된 개별 사용자 계정(120)과 연관된 데이터(114)일 수 있고, 훈련된 기계 학습 모델(들)(216)은 개별 사용자 계정(120)이 다수의 클래스 중 하나에 있을 확률을 나타내거나 또는 이와 관련되는 점수(118)(예를 들어, 신뢰 점수(118))를 출력하는 작업을 수행할 수 있다. 예를 들어, 점수(118)는 개별 사용자 계정(120)과 연관된 플레이어(102)가 멀티플레이어 모드에서 비디오 게임(110)을 플레이하는 동안 특정 행동에 따라 행동할(또는 경우에 따라 행동하지 않을 수 있음) 확률과 관련될 수 있다. 일부 실시예에서, 점수(118)는 [0,1]의 범위에서 정규화되는 변수이다. 이러한 신뢰 점수(118)는 플레이어(102)가 비디오 게임(110)을 플레이하는 동안 특정 행동에 따라 행동할(또는 경우에 따라 행동하지 않을 수 있음) 확률과 단조로운 관계를 가질 수 있다. 점수(118)와 특정 행동과 연관된 실제 확률 간의 관계는 단조롭지만 선형 관계일 수도 있고 아닐 수도 있다. 일부 실시예에서, 훈련된 기계 학습 모델(들)(216)은 한 세트의 확률(예를 들어, 2개의 확률) 또는 이와 관련된 점수를 출력 할 수 있으며, 하나의 확률(또는 점수)은 플레이어(102)가 특정 행동에 따라 행동할 확률과 관련되고, 다른 확률(또는 점수)은 플레이어(102)가 특정 행동에 따라 행동하지 않을 확률과 관련된다. 훈련된 기계 학습 모델(들)(216)에 의해 출력되는 점수(118)는 매치메이킹 프로세스를 안내하기 위해 이러한 확률 중 어느 하나와 관련될 수 있다. 예시적인 예에서, 특정 행동은 부정행위일 수 있다. 이러한 예에서, 훈련된 기계 학습 모델(들)(216)에 의해 출력되는 점수(118)는 개별 사용자 계정(120)과 연관된 플레이어(102)가 멀티플레이어 모드에서 비디오 게임(110)을 플레이하는 과정 동안 부정행위를 할 가능성, 또는 하지 않을 가능성, 계속해서 부정행위를 할 가능성과 관련된다. 따라서, 점수(118)는, 일부 실시예에서, 개별 사용자 계정(120)과 연관된 플레이어(102)의 신뢰도 수준을 나타낼 수 있으며, 이는 본원에 설명된 점수(118)가 때때로 "신뢰 점수"(118)로 지칭되는 이유이다.
훈련된 기계 학습 모델(들)(216)은 단일 모델을 나타내거나, 또는 기본 수준 기계 학습 모델들의 앙상블을 나타낼 수 있으며, 임의의 유형의 기계 학습 모델(216)로서 구현될 수 있다. 예를 들어, 본원에 설명된 기술 및 시스템과 함께 사용하기 위한 적합한 기계 학습 모델(216)은 신경망, 트리 기반 모델, 지원 벡터 머신(SVM), 커널 방법, 랜덤 포레스트, 스플라인(예를 들어, 다변량 적응 회귀 스플라인), 은닉 마르코프 모델(HMM), 칼만 필터(또는 강화된 칼만 필터), 베이지안 네트워크(또는 베이지안 빌리프 네트워크), 기대 최대화, 유전 알고리즘, 선형 회귀 알고리즘, 비선형 회귀 알고리즘, 로지스틱 회귀 기반 분류 모델, 또는 이의 앙상블을 이에 국한되지 않고 포함한다. "앙상블"은 가중 평균화 또는 투표를 사용하는 것과 같이 출력(예측)이 조합되는 기계 학습 모델(216)의 모음을 포함할 수 있다. 앙상블의 개별 기계 학습 모델은 전문 지식이 다를 수 있으며, 앙상블은 앙상블의 임의의 개별 기계 학습 모델보다 총괄적으로 "더 스마트"한 개별 기계 학습 모델의 커미티로 작동할 수 있다.
기계 학습 모델(216)을 훈련시키는 데 사용되는 훈련 데이터는 다양한 유형의 데이터(114)를 포함할 수 있다. 일반적으로, 기계 학습을 위한 훈련 데이터는 두 가지 구성요소, 피쳐 및 라벨을 포함할 수 있다. 그러나, 기계 학습 모델(들)(216)을 훈련시키는 데 사용되는 훈련 데이터는 일부 실시예에서 라벨링되지 않을 수 있다. 따라서, 기계 학습 모델(들)(216)은 지도 학습, 비지도 학습, 반지도 학습, 강화 학습 등과 같은 임의의 적절한 학습 기술을 사용하여 훈련 가능할 수 있다. 훈련 데이터에 포함된 피쳐들은, 예컨대 훈련 데이터의 속성에 대한 정량화 가능한 정보의 n 차원 피쳐 벡터의 형태인, 한 세트의 피쳐들로 표현될 수 있다. 다음은 본원에 설명된 기계 학습 모델(들)(216)을 훈련시키기 위해 훈련 데이터에 포함될 수 있는 예시적인 피쳐들의 목록이다. 그러나, 다음의 피쳐 목록은 완전하지 않으며, 훈련에 사용되는 피쳐는 본원에 설명되지 않은 추가 피쳐를 포함할 수 있으며, 일부 경우에는 본원에 열거된 피쳐들 중 일부(전체는 아님)를 포함할 수 있다. 훈련 데이터에 포함된 예시적인 피쳐는, 플레이어가 일반적으로 비디오 게임(110)을 플레이하는 데 소비한 시간, 플레이어가 특정 비디오 게임(110)을 플레이하는 데 소비한 시간, 플레이어가 비디오 게임(110)에 로그인되어 이를 플레이한 하루 중 시간, 플레이어에 대한 경기 이력 데이터- 예를 들어 (경기당, 라운드 당 등) 총 점수, 헤드샷 백분율, 킬 카운트, 사망 카운트, 어시스트 카운트, 플레이어 랭크 등, 플레이어 부정행위에 대한 신고의 수 및/또는 빈도, 플레이어에 대한 부정행위 무죄판결의 수 및/또는 빈도, 플레이어에 대한 부정행위 유죄판결의 수 및/또는 빈도, 비디오 게임 중 부정행위 플레이어를 검출한 기계 학습 모델에 의해 출력된 신뢰도 값(점수), 단일 플레이어와 연관된 사용자 계정(120)의 수(여러 사용자 계정(120)에 결부된 공통 주소, 전화 번호, 결제 수단 등으로부터 추론될 수 있음), 사용자 계정(120)이 비디오 게임 서비스에 등록된 기간, 플레이어와 결부된 이전에 금지된 사용자 계정(120)의 수, 비디오 게임 플랫폼에서 플레이어의 금전 거래의 수 및/또는 빈도, 거래당 달러 액수, 플레이어의 사용자 계정(120)과 연관된 금전적 가치의 디지털 항목의 수, 사용자 계정(120)이 소유를 변경한 횟수(예를 들어, 서로 다른 소유자/플레이어 간에 전송된 횟수), 사용자 계정(120)이 플레이어 간에 전송되는 빈도, 플레이어가 비디오 게임 서비스에 로그인한 지리적 위치, 사용자 계정(120)과 연관된 상이한 결제 수단, 전화 번호, 우편 주소 등의 수 및/또는 이러한 항목이 변경된 빈도, 및/또는 특정 행동에 참여하려는 플레이어의 성향을 나타내는 신뢰 점수(118)를 계산하는 데 관련될 수 있는 임의의 다른 적절한 피쳐를, 이에 국한되지 않고 포함할 수 있다. 훈련 프로세스의 일부로서, 훈련 구성요소(210)는 기계 학습에 대한 가중치를 설정할 수 있다. 이러한 가중치는, 데이터저장소(116)의 이력 데이터(114)로부터 도출된 것과 같은, 훈련 데이터에 포함된 한 세트의 피쳐들에 적용될 수 있다. 일부 실시예에서, 훈련 프로세스 동안 설정되는 가중치는 기계 학습 모델(들)(예를 들어, 신경망의 은닉 층에서의 뉴런에 대한 가중치)의 내부에 있는 파라미터에 적용될 수 있다. 기계 학습 모델의 이러한 내부 파라미터는 한 세트의 피쳐들 중 개별 입력 피쳐들과 일대일로 매핑될 수 있거나, 혹은 매핑되지 않을 수도 있다. 가중치는 임의의 주어진 피쳐 또는 파라미터가 훈련된 기계 학습 모델(216)에 의해 출력되는 점수(118)에 미치는 영향을 나타낼 수 있다.
특히 플레이어를 매칭하기 위한 기반으로 사용될 수 있는 행동 유형의 예시적인 예인 부정행위와 관련하여, 비디오 게임(110)에서 부정행위를 계획 중인 플레이어의 사용자 계정(120)과 연관된 행동이 있을 수 있고, 이는 비부정행위자의 사용자 계정(120)과 연관된 행동과는 다르다. 따라서, 기계 학습 모델(216)은 부정행위를 할 가능성이 있는 플레이어가 높은 신뢰도로 식별되고 적절하게 채점될 수 있도록 훈련 데이터로부터 해당 행동 패턴을 식별하는 것을 학습할 수 있다. 시스템이 이상치에 대한 일부 알려진 정보에 기초하여 보호하도록 구성될 수 있는 생태계에서 이상치가 있을 수 있음을 이해해야 한다. 예를 들어, 전문 플레이어는 일반 플레이어와는 다른 행동을 보일 수 있으며, 이러한 전문 플레이어는 부정확하게 채점될 위험이 있을 수 있다. 또 다른 예로, 비디오 게임 서비스의 서비스 제공자의 고용인은 조사 목적 또는 품질 관리 목적으로 사용자 계정으로 로그인할 수 있으며, 일반 플레이어의 행동과는 다른 방식으로 행동할 수 있다. 이러한 유형의 플레이어/사용자(102)는 이상치로서 취급될 수 있고, 이러한 플레이어/사용자(102)에 높은 신뢰를 부여하는 기계 학습 컨텍스트의 외부에서 점수(118)가 사전에 할당될 수 있다. 이러한 방식으로, 주지된 전문 플레이어, 서비스 제공자의 고용인 등은 채점 구성요소(212)에 의해 수정될 수 없는 권위 있는 점수(118)가 할당되어 해당 플레이어/사용자(102)가 악행 플레이어와 매칭되는 것을 방지할 수 있다.
훈련 데이터는 지도 학습 접근법을 위해 라벨링될 수도 있다. 또 다시, 플레이어를 함께 매칭시키는 데 사용될 수 있는 예시적인 유형의 행동으로서 부정행위를 사용하여, 이러한 예의 라벨은 사용자 계정(120)이 비디오 게임 서비스를 통해 비디오 게임(110)을 플레이하는 것이 금지되었는지 여부를 나타낼 수 있다. 데이터저장소(116)의 데이터(114)는 부정행위로 인해 금지된 플레이어와 연관된 일부 데이터(114), 및 부정행위로 인해 금지되지 않은 플레이어와 연관된 일부 데이터(114)를 포함할 수 있다. 이러한 유형의 금지의 예로는 Valve Corporation of Bellevue, Washington에서 이용하는 Valve Anti-Cheat(VAC) 금지가 있다. 예를 들어, 컴퓨팅 시스템(106) 및/또는 컴퓨팅 시스템(106)의 인가된 사용자는 비인가된 타사 소프트웨어가 부정행위에 사용된 경우를 검출할 수 있다. 이러한 경우에, 결정이 정확한지 확인하기 위해 엄격한 검증 프로세스를 거친 후, 부정행위 사용자 계정(120)은 데이터저장소(116)에서 금지된 것으로 표시함으로써 금지될 수 있다. 따라서, 사용자 계정(120)이 금지되었는지 여부에 관한 사용자 계정의 상태는 긍정적인 훈련 사례 및 부정적인 훈련 사례로 사용될 수 있다.
이전의 부정행위와 같은 이전 플레이어 행동은 다른 방식으로 표시될 수 있음을 이해해야 한다. 예를 들어, 부정행위가 의심되는 플레이어를 검출하고 신고하기 위해 사용자(102) 또는 심지어 별도의 기계 학습 모델을 위한 메커니즘이 제공될 수 있다. 이러한 신고된 플레이어는 신고된 플레이어의 게임 재생을 검토하고 평결을 내리는(예를 들어, 부정행위 또는 부정행위 없음) 동료의 배심원 앞에 배치될 수 있다. 충분한 수의 다른 플레이어들이 신고된 플레이어의 행동이 부정행위에 해당한다고 판단하면, 높은 신뢰도 임계치에 도달할 수 있으며 신고된 플레이어는 부정행위로 유죄판결을 받고, 그의 사용자 계정(120)에 대한 금지령을 받는데, 이것들도 또한, 연관된 훈련 데이터에 대한 라벨을 구성할 수 있다.
도 2는 부정행위 외에 플레이어 매치메이킹을 위한 기초로 사용될 수 있는 다른 행동의 예를 도시하고 있다. 예를 들어, 훈련된 기계 학습 모델(들)(216)은 플레이어가 (예를 들어, 경기 도중 비디오 게임을 포기(또는 종료)하는 것에 의한) 게임 포기 행동에 따라 행동하거나 혹은 행동하지 않을 확률과 관련된 신뢰 점수(118)를 출력하도록 구성될 수 있다. 게임을 포기하는 것은, 부정행위와 아주 유사하게, 포기하지 않는 플레이어의 게임 플레이 경험을 망치는 경향이 있는 행동이다. 또 다른 예로, 훈련된 기계 학습 모델(들)(216)은 플레이어가 괴롭히는(griefing) 행동에 따라 행동하거나 혹은 행동하지 않을 확률과 관련된 신뢰 점수(118)를 출력하도록 구성될 수 있다. "괴롭히는자(griefer)"는 비디오 게임(110) 내의 다른 플레이어를 고의적으로 짜증나게 하고 괴롭히는 멀티플레이어 비디오 게임의 플레이어로서, 괴롭히지 않는 플레이어의 게임 플레이 경험을 망칠 수 있다. 또 다른 예로, 훈련된 기계 학습 모델(들)(216)은 플레이어가 저속한 언어 행동에 따라 행동하거나 혹은 행동하지 않을 확률과 관련된 신뢰 점수(118)를 출력하도록 구성될 수 있다. 종종, 멀티플레이어 비디오 게임은 플레이어가 비디오 게임(110)에서 다른 플레이어가 볼 수 있는 채팅 세션 또는 기타 소셜 네트워킹 통신에 참여할 수 있게 하고, 플레이어가 저속한 언어(예를 들어, 악담, 공격적인 언어 등)를 사용할 때, 저속한 언어를 사용하지 않는 플레이어의 게임 플레이 경험을 망칠 수 있다. 또 다른 예로, 훈련된 기계 학습 모델(들)(216)은 플레이어가 "하이 스킬" 행동에 따라 행동하거나 혹은 행동하지 않을 확률과 관련된 신뢰 점수(118)를 출력하도록 구성될 수 있다. 이러한 방식으로, 채점은 플레이어들의 집합으로부터 고도로 숙련된 플레이어 또는 초보 플레이어를 식별하는 데 사용될 수 있다. 이는 숙련된 게이머가 아마추어 플레이어와 플레이할 수 있도록 초보자 숙련도의 플레이어인 것처럼 가장해서 새로운 사용자 계정을 생성하는 상황을 방지하는 데 유용할 수 있다. 따라서, 제1 경기(218(1))에서 함께 매칭된 플레이어는 특정 "불량" 행동에 따라 행동할 (기계 학습된 점수(118)로부터 결정된 대로) 가능성이 있는 플레이어일 수 있는 반면, 제2 경기(218(2))와 같은 다른 경기에서 함께 매칭될 플레이어는 특정 "불량" 행동에 따라 행동할 가능성이 없는 플레이어일 수 있다.
복수의 플레이어(사용자 계정(120))에 대해 출력된 신뢰 점수들(118)의 분포가 대체로 이원화된 경우일 수 있다. 예를 들어, 점수(118)의 통계적 분포의 하나의 피크는 특정 불량 행동에 따라 행동할 가능성이 있는 플레이어와 연관될 수 있는 반면, 점수(118)의 통계적 분포의 다른 피크는 불량 행동에 따라 행동할 가능성이 없는 플레이어와 연관될 수 있다. 다시 말해서, 악행 및 선행 플레이어의 인구는 통계적 분포에서 명확한 마진으로 구분될 수 있다. 이러한 점에서, 새로운 사용자 계정이 비디오 게임 서비스에 등록되고 통계적 분포에서 두 피크 사이에 있는 신뢰 점수가 할당되면, 해당 사용자 계정은 플레이어가 비디오 게임 플랫폼과 상호작용할 때 일 방식 또는 다른 방식으로 빠르게 구동된다. 이러한 경향으로 인해, 매치메이킹 구성요소(214)에 의해 사용되는 매치메이킹 파라미터는 유사하게 통계적 분포의 하단 피크 내에 있지 않은 신뢰 점수(118)를 가진 플레이어를 처리하도록 조정될 수 있으며, 매치메이킹 구성요소(214)는 주로 통계적 분포의 하단 피크 내에 있는 신뢰 점수(118)를 가진 악행 플레이어를 분리/격리시키는 것과 관련될 수 있다. 임계 점수의 사용이 경기 할당을 제공하는 하나의 예시적인 방식으로 본원에서 설명되지만, 클러스터링 알고리즘, 또는 신뢰 점수를 사용하여 "유사한" 신뢰 점수와(예를 들어, 거리 메트릭, 분산 메트릭 등과 같은 유사성 메트릭에 기초하여) 사용자 계정(플레이어)을 우선적으로 매칭시키는 다른 통계적 접근법과 같은 다른 기술이 고려된다.
또한, 매치메이킹 구성요소(214)는 최근 비디오 게임 서비스에 등록된 새로운 사용자 계정(120)에 대해 플레이어 매치메이킹을 사용하지 않을 수 있다. 오히려, 플레이어가 비디오 게임(110)의 멀티플레이어 모드에서 채점되고 다른 플레이어와 매칭되기 전에 개별 플레이 모드에서 일정 수준의 경험/성능을 축적하는 규칙이 구현될 수 있다. 처음으로 비디오 게임(110)을 론칭할 때부터 플레이어 매치메이킹에 액세스할 때까지 플레이어의 경로는 플레이어에 따라 매우 다를 수 있음을 이해해야 한다. 일부 플레이어는 매치메이킹을 통해 멀티플레이어 모드에 액세스하는 데 오랜 시간이 걸리는 반면, 다른 사용자는 인증 과정을 빠르게 진행한다. 이러한 인증 과정이 마련되면, 매치메이킹 목적으로 채점될 사용자 계정은 비디오 게임을 플레이할 것이고 사용자 계정(120)을 정확하게 채점(118)하기에 충분한 데이터(114)를 제공할 것이다.
또 다시, 전술한 바와 같이, 본원에 설명된 많은 예는 플레이어가 매치메이킹 목적을 위해 채점되고 그룹화될 수 있는 대상 행동으로서 부정행위, 게임 포기, 괴롭힘, 저속 언어 등과 같은 "불량" 행동을 언급하지만, 본원에 설명된 기술 및 시스템은 기계 학습식 채점 접근법을 사용하여 임의의 유형의 행동을 식별하고 플레이어 매치메이킹의 목적을 위해 플레이어가 해당 행동에 참여할 가능성을 예측하도록 구성될 수 있다.
본원에 설명된 프로세스는 하드웨어, 소프트웨어, 또는 이들의 조합으로 구현될 수 있는 일련의 작업을 나타내는 논리 흐름 그래프의 블록 집합으로서 예시된다. 소프트웨어의 경우, 블록은 하나 이상의 프로세서에 의해 실행될 때 언급된 작업을 수행하는 컴퓨터 실행 가능 명령어를 나타낸다. 일반적으로, 컴퓨터 실행 가능 명령어는 특정 기능을 수행하거나 또는 특정 추상 데이터 유형을 구현하는 루틴, 프로그램, 객체, 구성요소, 데이터 구조 등을 포함한다. 작업이 설명되는 순서는 제한적으로 해석되지 않으며, 설명된 블록의 임의의 수는 임의의 순서로 및/또는 병렬로 조합되어 방법을 구현할 수 있다.
도 3은 특정 행동에 따라 플레이어가 행동하거나 행동하지 않을 확률을 예측하기 위해 기계 학습 모델(들)을 훈련하기 위한 예시적인 프로세스(300)의 흐름도이다. 논의를 위해, 프로세스(300)는 이전 도면을 참조하여 설명된다.
302에서, 컴퓨팅 시스템(106)은 사용자(102)에게 비디오 게임 서비스에 대한 액세스를 제공할 수 있다. 예를 들어, 컴퓨팅 시스템(106)은 사용자가 비디오 게임(110)의 카탈로그에 액세스 및 이를 브라우징하고, 사용자 프로파일을 수정하고, 거래를 수행하고, 소셜 미디어 활동에 참여하고, 기타 유사한 및/또는 관련 동작을 수행하게 할 수 있다. 컴퓨팅 시스템(106)은 비디오 게임 서비스의 일부로서 클라이언트 머신(104)에 비디오 게임(110)(및 그의 콘텐츠)을 배포할 수 있다. 예시적인 예에서, 비디오 게임 서비스에 액세스할 수 있는 사용자(102)는 설치된 클라이언트 애플리케이션을 로딩하고, 등록된 사용자 계정으로 로그인하고, 원하는 비디오 게임(110)을 선택하고, 클라이언트 애플리케이션을 통해 자신의 클라이언트 머신(104)에서 비디오 게임(110)을 실행할 수 있다.
304에서, 컴퓨팅 시스템(106)은 비디오 게임 서비스에 등록된 사용자 계정(120)과 연관된 데이터(114)를 수집하고 저장할 수 있다. 이러한 데이터(114)는 사용자(102)가 그의 등록된 사용자 계정(120)으로 비디오 게임 서비스에 액세스하고, 예를 들어 그 상에서 비디오 게임(110)을 플레이하기 위해 이러한 비디오 게임 플랫폼을 사용할 때마다 블록 304에서 수집될 수 있다. 시간이 지남에 따라, 등록된 사용자 계정에 결부된 대량의 데이터(114) 모음을 컴퓨팅 시스템(106)에서 사용할 수 있음을 알 수 있다.
306에서, 컴퓨팅 시스템(106)은, 훈련 구성요소(210)를 통해, 비디오 게임 서비스에 등록된 사용자 계정들(120)의 샘플링된 세트와 연관된 (이력) 데이터(114)에 액세스할 수 있다. (이력) 데이터(114) 중 적어도 일부는 플레이어가 비디오 게임 서비스에 의해 제공되는 비디오 게임 플랫폼에서 하나 또는 다수의 비디오 게임(110)을 플레이한 결과로서 생성될 수 있다. 예를 들어, 306에서 액세스된 (이력) 데이터(114)는 (예를 들어, 경기에 참여함으로써 멀티플레이어 모드에서) 하나 또는 다수의 비디오 게임(110)을 플레이한 플레이어의 경기 이력 데이터를 나타낼 수 있다. 일부 실시예에서, (이력) 데이터(114)는 샘플링된 세트의 사용자 계정들(120)이 플레이어들 간에 전송되었는지 또는 사용자 계정들(120)에 대한 다른 유형의 사용자 활동이 전송되었는지 여부를 나타낼 수 있다.
308에서, 컴퓨팅 시스템(106)은, 훈련 구성요소(210)를 통해, 샘플링된 세트의 사용자 계정들(120)의 각 사용자 계정(120)에 사용자 계정이 이전에 적어도 하나의 비디오 게임(110)을 플레이하는 동안 특정 행동에 따라 행동한 플레이어와 연관되는지 여부를 나타내는 라벨로 라벨링할 수 있다. 사용자 계정(120)이 이전에 부정행위로 금지되었는지 여부와 같은 라벨의 예가 본원에 설명되어 있으며, 이는 경우에 따라 부정행위를 하거나 부정행위를 하지 않는 성향에 대해 플레이어를 채점하는 맥락에서 라벨로 사용될 수 있다. 그러나, 라벨은 사용자 계정이 이전에 게임을 포기한 플레이어, 이전에 게임 중에 괴롭힌 플레이어, 이전에 게임 중에 저속한 언어를 사용한 플레이어 등과 연관되었는지 여부를 나타내는 라벨과 같은 다른 유형의 행동에 대응할 수 있다.
310에서, 컴퓨팅 시스템(106)은, 훈련 구성요소(210)를 통해, 훈련 데이터로서 (이력) 데이터(114)를 사용하여 기계 학습 모델(들)을 훈련시켜 훈련된 기계 학습 모델(들)(216)을 획득할 수 있다. 서브 블록 312로 나타낸 바와 같이, 블록 310에서 기계 학습 모델(들)의 훈련은 기계 학습에 대한 가중치 설정을 포함할 수 있다. 이러한 가중치는 이력 데이터(114)로부터 도출된 한 세트의 피쳐들에 적용될 수 있다. 도 2를 참조하여 전술한 바와 같은 예시적인 피쳐들이 여기에서 설명된다. 일부 실시예에서, 블록 312에서 설정된 가중치는 기계 학습 모델(들)(예를 들어, 신경망의 은닉 층에서의 뉴런에 대한 가중치)의 내부에 있는 파라미터에 적용될 수 있다. 기계 학습 모델의 이러한 내부 파라미터는 한 세트의 피쳐들 중 개별 입력 피쳐들과 일대일로 매핑될 수 있거나, 혹은 매핑되지 않을 수도 있다. 블록 310부터 블록 304까지 화살표로 나타낸 바와 같이, 기계 학습 모델(들)(216)은 업데이트된 (이력) 데이터(114)를 사용하여 재훈련되어 최근 플레이어 행동에 적응되는 새로 훈련된 기계 학습 모델(216)을 획득할 수 있다. 이를 통해 기계 학습 모델(들)(216)은 시간이 지남에 따라 변화하는 플레이어 행동에 적응할 수 있다.
도 4는 플레이어가 특정 행동에 따라 행동하거나 혹은 행동하지 않을 확률과 관련된(또는 나타내는) 신뢰 점수(118)인, 사용자 계정(120)에 대한 신뢰 점수(118)를 결정하기 위해 훈련된 기계 학습 모델(들)(216)을 이용하기 위한 예시적인 프로세스(400)의 흐름도이다. 논의를 위해, 프로세스(400)는 이전 도면을 참조하여 설명된다. 또한, 도 3 및 도 4에서 오프 페이지 참조 "A"로 나타낸 바와 같이, 프로세스(400)는 프로세스(300)의 블록 310으로부터 계속될 수 있다.
402에서, 컴퓨팅 시스템(106)은, 채점 구성요소(212)를 통해, 비디오 게임 서비스에 등록된 복수의 사용자 계정(120)과 연관된 데이터(114)에 액세스할 수 있다. 이러한 데이터(114)는 본원에 설명된 바와 같이, 기계 학습 모델(들)(216)을 훈련하는 데 사용된 피쳐들인 한 세트의 피쳐들 내의 임의의 정보(예를 들어, 정량화 가능한 정보)를 포함할 수 있다. 이러한 데이터(114)는 훈련된 기계 학습 모델(들)(216)에 입력될 미지의 입력을 구성한다.
404에서, 컴퓨팅 시스템(106)은, 채점 구성요소(212)를 통해, 블록 402에서 액세스된 데이터(114)를 훈련된 기계 학습 모델(들)(216)로의 입력으로 제공할 수 있다.
406에서, 컴퓨팅 시스템(106)은, 채점 구성요소(212)를 통해, 복수의 사용자 계정(120)과 연관된 신뢰 점수(118)를 훈련된 기계 학습 모델(들)(216)로부터의 출력으로 생성할 수 있다. 개별적으로, 점수(118)는 복수의 사용 계정(120) 중 개별 사용자 계정(120)과 연관되고, 점수(118)는 개별 사용자 계정(120)과 연관된 플레이어(102)가 멀티플레이어 모드에서 하나 이상의 비디오 게임(110)을 플레이하는 동안 특정 행동에 따라 행동하거나 행동하지 않을 확률과 관련된다. 이러한 맥락에서, 특정 행동은 데이터(114)에 보여지는 임의의 적절한 행동일 수 있어서, 기계 학습 모델(들)은 해당 행동에 참여하는 성향을 가진 플레이어를 예측하도록 훈련될 수 있다. 예로는 부정행위 행동, 게임 포기 행동, 괴롭힘 행동, 또는 저속한 언어 행동이 있지만, 이에 국한되는 것은 아니다. 일부 실시예에서, 점수(118)는 [0,1]의 범위에서 정규화되는 변수이다. 이러한 신뢰 점수(118)는 플레이어가 비디오 게임(110)을 플레이하는 동안 특정 행동에 따라 행동할(또는 경우에 따라 행동하지 않을 수 있음) 확률과 단조로운 관계를 가질 수 있다. 점수(118)와 특정 행동과 연관된 실제 확률 간의 관계는 단조롭지만 선형 관계일 수도 있고 아닐 수도 있다.
따라서, 프로세스(400)는 기계 학습식 채점 접근법을 나타내며, 점수(118)(예를 들어, 신뢰 점수(118))는 사용자 계정(120)에 대해 결정되고, 점수는 해당 사용자 계정(120)을 사용하는 플레이어가 향후 특정 행동에 참여할 확률을 나타낸다. 이러한 채점 프로세스에서 기계 학습 모델(들)의 사용을 통해, 플레이어 행동을 예측하려는 기존 접근법에 비해, 플레이어 행동의 복잡한 관계를 식별하여 플레이어 행동을 더 잘 예측할 수 있다. 이를 통해 사람의 개입 없이 플레이어 행동의 변화하는 역학에 적응할 수 있는 보다 적응적이고 다재다능한 시스템으로 플레이어 행동을 보다 정확하게 예측할 수 있다.
도 5는 가능성이 있는 플레이어 행동과 관련된 기계 학습된 신뢰 점수(118)에 기초하여 멀티플레이어 비디오 게임의 상이한 경기에 사용자 계정(120)을 할당하기 위한 예시적인 프로세스(500)의 흐름도이다. 논의를 위해, 프로세스(500)는 이전 도면을 참조하여 설명된다. 또한, 도 4 및 도 5에서 오프 페이지 참조 "B"로 나타낸 바와 같이, 프로세스(500)는 프로세스(400)의 블록 406으로부터 계속될 수 있다.
502에서, 컴퓨팅 시스템(106)은 복수의 클라이언트 머신(104)으로부터 정보(122)를 수신할 수 있으며, 정보(122)는 각 클라이언트 머신(104)에서 비디오 게임(110)을 실행하는 클라이언트 애플리케이션에 로그인된 로그인한 사용자 계정(120)을 나타낸다. 예를 들어, 복수의 플레이어(102)는 멀티플레이어 모드에서 비디오 게임(110)을 플레이하려는 특정 비디오 게임(110)(예를 들어, 1인칭 슈팅 게임)의 실행을 시작했을 수 있다. 블록 502에서 수신된(122) 정보(112)는 적어도 해당 플레이어에 대한 로그인한 사용자 계정(120)을 나타낼 수 있다.
504에서, 컴퓨팅 시스템(106)은, 매치메이킹 구성요소(214)를 통해, 플레이어들(102)이 비디오 게임(110)을 멀티플레이어 모드에서 플레이하도록 그룹화될 다수의 경기를 규정할 수 있다. 수요, 용량, 및 매치메이킹 프로세스에 기여하는 기타 인자를 포함한 다양한 인자에 따라 경기의 수를 규정할 수 있다. 일 예에서, 블록 504에서 다수의 규정된 경기는 적어도 제1 경기(218(1)) 및 제2 경기(218(2))를 포함할 수 있다.
506에서, 컴퓨팅 시스템(106)은, 매치메이킹 구성요소(214)를 통해, 로그인한 사용자 계정들(120)에 대해 결정된 점수들(118)에 적어도 부분적으로 기초하여 로그인한 사용자 계정들(120)의 제1 서브셋을 제1 경기(218(1))에 할당하고 로그인한 사용자 계정들(120)의 제2 서브셋을 제2 경기(218(2))에 할당할 수 있다. 전술한 바와 같이, 블록 506에서 사용자 계정에 추가 분류 및 추가 경기가 할당될 수 있도록 임의의 수의 경기가 규정될 수 있다.
서브 블록 508에 의해 나타낸 바와 같이, 상이한 경기에 대한 사용자 계정(120)의 할당은 임계 점수에 기초할 수 있다. 예를 들어, 매치메이킹 구성요소(214)는 로그인한 사용자 계정들(120)의 제1 서브셋과 연관된 점수들(118)이 임계 점수 미만인지 결정할 수 있고 해당 점수들이 임계 점수 미만인 것에 기초하여 로그인한 사용자 계정들(120)의 제1 서브셋을 제1 경기에 할당할 수 있다. 유사하게, 매치메이킹 구성요소(214)는 로그인한 사용자 계정들(120)의 제2 서브셋과 연관된 점수들(118)이 임계 점수 이상인지 결정할 수 있고 해당 점수들이 임계 점수 이상인 것에 기초하여 로그인한 사용자 계정들(120)의 제2 서브셋을 제2 경기에 할당할 수 있다. 이는 단지 경기 할당(124)을 제공하는 예시적인 방법일 뿐이며, 다른 기술이 고려된다. 예를 들어, 임계 점수의 사용에 추가로 또는 그에 대한 대안으로 클러스터링 알고리즘 또는 기타 통계적 접근법이 사용될 수 있다. 일 예에서, 신뢰 점수(118)는 "유사한" 신뢰 점수를 갖는 사용자 계정들(플레이어들)을 함께 우선적으로 매칭시키는 데 사용될 수 있다. 신뢰 점수(118)의 분포가 복수의 사용자 계정(120)에 걸쳐 대체로 이원화(bimodal)되는 자연스러운 경향을 고려할 때, 유사성 메트릭(예를 들어, 거리 메트릭, 분산 메트릭 등)에 기초하여 신뢰 점수들(118)을 함께 그룹화하는 것은 임계 점수를 사용하는 것과 유사한 결과를 제공할 수 있다. 그러나, 매치메이킹 목적을 위해 사용자 계정들을 함께 그룹으로 매칭하기 위해 유사성 메트릭을 사용하는 것은 매치메이킹 풀이 작은 경우(예를 들어, 덜 인기 있는 게임 모드를 플레이하려는 플레이어들이 작은 지리적 지역에 있는 경우)에 유용할 수 있는 데, 그 이유는, 숙련도와 같은, 기타 매치메이킹 인자에 대비되는 신뢰 점수의 상대적 중요성을 점진적으로 조정할 수 있게 하는 보다 세밀한 접근법을 제공할 수 있기 때문이다. 일부 실시예에서, 사용자 계정들(120)을 다수의 상이한 경기로 "분류하기" 위해 다수의 임계치가 사용될 수 있다.
서브 블록 510로 나타낸 바와 같이, 신뢰 점수(118) 이외의 다른 인자들이 블록 506의 매치메이킹 할당에서 고려될 수 있다. 예를 들어, 블록 506에서 결정된 경기 할당(124)은 로그인한 사용자 계정과 연관된 플레이어의 숙련도, 로그인한 사용자 계정이 여러 경기 중 하나에 배치되기를 기다리는 시간, 로그인한 사용자 계정과 연관된 지리적 지역, 및/또는 기타 인자에도 추가로 기초할 수 있다.
512에서, 컴퓨팅 시스템(106)은 (예를 들어, 제어 명령어를 제공함으로써) 정보(122)를 전송한 각 클라이언트 머신(104)에서 비디오 게임(110)을 실행하는 클라이언트 애플리케이션이 해당 클라이언트 머신(104)과 연관된 로그인한 사용자 계정(120)에 적어도 부분적으로 기초하여 규정된 경기들 중 하나(예를 들어, 제1 경기(218(1)) 또는 제2 경기(218(2)) 중 하나)를 개시할 수 있게 한다. 예를 들어, 제1 경기(218(1)) 및 제2 경기(218(2))가 규정되면, 컴퓨팅 시스템(106)은 로그인한 사용자 계정들(120)의 제1 서브셋과 연관된 복수의 클라이언트 머신(104)의 제1 서브셋이 제1 경기(218(1))에서 비디오 게임(110)을 실행하게 할 수 있고, 로그인한 사용자 계정들(120)의 제2 서브셋과 연관된 복수의 클라이언트 머신(104)의 제2 서브셋이 제2 경기(218(2))에서 비디오 게임(110)을 실행하게 할 수 있다.
기계 학습된 신뢰 점수(118)가 매치메이킹 프로세스의 한 인자로 사용되기 때문에, 비디오 게임을 플레이하고자 하는 방식으로 멀티플레이어 모드에서 플레이하기를 원하는 사용자에게 개선된 게임 경험을 제공할 수 있다. 그 이유는, 본원에 설명된 기술 및 시스템은, 불량하게 행동을 할(예를 들어, 부정행위를 할) 가능성이 있는 플레이어들을 함께 매칭하여, 그 플레이어들을, 비디오 게임을 합법적으로 플레이할 가능성이 있는 다른 신뢰성 갖춘 플레이어들로부터 격리하는 데 사용될 수 있기 때문이다.
도 6은 핸드헬드 장치(602)의 예시적인 구성요소를 나타낸 블록도를 포함하는 예시적인 환경(600)을 나타낸 도면으로서, 도 6은 원격 컴퓨팅 시스템(106)이 수신한 센서 데이터(604)가 기계 학습식 신뢰 채점에 어떻게 사용될 수 있는지를 보여주고 있다. 도 6의 핸드헬드 장치(602)는 본원에 설명된 바와 같이 비디오 게임 플랫폼과 상호작용하기 위해 사용자(102)에 의해 사용될 수 있다. 예를 들어, 사용자(102)는 비디오 게임 클라이언트(예를 들어, 비디오 게임(110)를 플레이하기 위한 게임 소프트웨어)를 실행하는 클라이언트 머신(104)과 핸드헬드 장치(602)를 페어링할 수 있다. 핸드헬드 장치(602)가 클라이언트 머신(104)과 페어링되고 (예를 들어, 클라이언트 머신(104)으로/으로부터 데이터를 송신/수신함으로써) 클라이언트 머신과 통신할 수 있게 되면, 핸드헬드 장치(602)는 본원에 설명된 비디오 게임 플랫폼과 상호작용하기 위해, 예를 들어 핸드헬드 장치(602)를 사용자 계정(120)에 등록하고, 원격 컴퓨팅 시스템(106)으로부터 이용 가능한 비디오 게임(110)에 액세스하고, 핸들헬드 장치(602)를 사용하여 비디오 게임(110)을 플레이하기 위해, 사용될 수 있다.
핸드헬드 장치(602)는 사용자(102)의 한 손 또는 양손으로 잡도록 설계되고 사용자(102) 손(들)의 손가락 및/또는 엄지로 조작될 하나 이상의 손가락 조작형 제어 장치로 구성된 게임 컨트롤러와 같은 핸드헬드 게임 컨트롤러를 나타낼 수 있다. 일부 실시예에서, 핸드헬드 장치(602)는, 추가로, 3차원(3D) 공간에서 게임 컨트롤러를 움직임(예를 들어, 패닝, 회전, 기울임 등)으로써 작동되도록 구성될 수 있다. 핸드헬드 장치(602)는 휴대폰(예를 들어, 스마트 폰), 태블릿 컴퓨터, 휴대용 디지털 어시스턴트(PDA), 웨어러블 컴퓨터(예를 들어, 스마트워치, 머리 장착형 디스플레이(HMD)), 휴대용 게임 플레이어, 및/또는 임의의 유사한 핸드헬드 전자 장치와 같은 기타 적합한 유형의 핸드헬드 장치를 나타낼 수 있음을 이해해야 한다. 핸드헬드 장치(602)를 설명하기 위해 본원에서 사용된 바와 같은 "핸드헬드"란 용어는 장치가 사용자(102)의 손(들)으로 또는 사용자(102) 신체의 다른 부분으로 잡혀 있는지 여부와 관계없이 사용자(102)가 잡도록 구성된 장치를 의미한다(예를 들어, 손목, 팔, 다리, 허리, 머리 등에 착용되는 웨어러블 장치는 본원에서 사용되는 용어로 "핸드헬드" 장치로 간주됨).
도 6에 도시된 바와 같이, 핸드헬드 장치(602)는 손가락 조작형 제어 장치(예를 들어, 조이스틱, 트랙패드, 트리거, 누름식 버튼 등)와 같은 하나 이상의 입력/출력(I/O) 장치(608), 터치스크린(들)과 같은 잠재적으로 다른 유형의 입력 또는 출력 장치, 사용자 음성 입력과 같은 오디오 입력을 수신하기 위한 마이크(들), 카메라(들) 또는 핸드헬드 장치(602)의 동작 및/또는 사용자(102)의 손과 같은 제스처 입력을 수신하기 위한 입력 장치로서 기능할 수 있는 다른 유형의 센서(예를 들어, 센서(들)(610))를 포함한다. 일부 실시예에서, 추가 입력 장치는 키보드, 키패드, 마우스, 터치 스크린, 조이스틱, 제어 버튼 등의 형태로 제공될 수 있다. 입력 장치(들)는 볼륨을 증가/감소시키기 위한 기본 볼륨 제어 버튼(들)뿐만 아니라 파워 및 리셋 버튼과 같은 제어 메커니즘을 더 포함할 수 있다. 입력 장치(들)는 사용자(102)의 생체 인식/인증을 위해 지문 또는 장문 획득, 사용자의 눈 및/또는 얼굴 스캔, 사용자 음성 포착 등과 같은 사용자(102)의 생체 인식 데이터 입력을 용이하게 할 수 있다.
한편, 출력 장치는 디스플레이, 조명 요소(예를 들어, LED), 촉각 느낌을 생성하기 위한 진동기, 스피커(들)(예를 들어, 헤드폰), 및/또는 기타 등등을 포함할 수 있다. 예를 들어, 파워가 온일 때와 같은 상태를 나타내는 간단한 조명 요소(예를 들어, LED)가 있을 수도 있다. 몇 가지 예를 제공하였지만, 핸드헬드 장치(602)는 추가적으로 또는 대안적으로 임의의 다른 유형의 출력 장치를 포함할 수 있다. 일부 경우에, 하나 이상의 출력 장치에 의한 출력은 입력 장치들 중 하나 이상이 수신하는 입력에 기초할 수 있다. 예를 들어, 제어 장치의 작동은 제어 장치에 인접하게(예를 들어, 아래에) 또는 임의의 다른 위치에 위치된 진동기에 의한 촉각 응답의 출력을 발생시킬 수 있다.
또한, 핸드헬드 장치(602)는 네트워크에 및/또는 하나 이상의 원격 시스템(예를 들어, 애플리케이션, 게임 콘솔, 무선 액세스 포인트 등을 실행하는 클라이언트 머신(104))에 용이하게 무선 연결하기 위한 하나 이상의 통신 인터페이스(612)를 포함할 수 있다. 통신 인터페이스(612)는 Wi-Fi, 블루투스, 무선 주파수(RF) 등과 같은 다양한 무선 기술 중 하나 이상을 구현할 수 있다. 핸드헬드 장치(602)는 네트워크, 연결된 주변 장치, 또는 다른 무선 네트워크와 통신하는 플러그인 네트워크 장치에 용이하게 유선 연결하기 위한 물리적 포트를 더 포함할 수 있음을 이해해야 한다.
예시된 구현예에서, 핸드헬드 장치(602)는 하나 이상의 프로세서(614) 및 컴퓨터 판독 가능 매체(616)를 더 포함한다. 일부 구현예에서, 프로세서(들)(614)는 중앙 처리 유닛(CPU), 그래픽 처리 유닛(GPU), CPU 및 GPU 둘 모두, 마이크로프로세서, 디지털 신호 프로세서, 또는 당업계에 알려진 다른 처리 유닛 또는 구성요소를 포함할 수 있다. 대안적으로 또는 추가적으로, 본원에 기능적으로 설명된 것은 적어도 부분적으로 하나 이상의 하드웨어 로직 구성요소에 의해 수행될 수 있다. 비제한적인 예로, 사용될 수 있는 하드웨어 로직 구성요소의 예시적 유형에는 필드 프로그래머블 게이트 어레이(FPGA), 주문형 집적 회로(ASIC), 주문형 표준 제품(ASSP), 시스템 온 칩 시스템(SOC), 복잡한 프로그래머블 로직 장치(CPLD) 등이 포함된다. 추가적으로, 프로세서(들)(614)의 각각은 프로그램 모듈, 프로그램 데이터, 및/또는 하나 이상의 운영 체제를 저장할 수도 있는 자체 로컬 메모리를 가질 수 있다.
컴퓨터 판독 가능 매체(616)는 컴퓨터 판독 가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성 메모리, 착탈식 및 비착탈식 매체를 포함할 수 있다. 이러한 메모리는 RAM, ROM, EEPROM, 플래시 메모리 또는 기타 메모리 기술, CD-ROM, 디지털 다용도 디스크(DVD) 또는 기타 광학 스토리지, 자기 카세트, 자기 테이프, 자기 디스크 스토리지 또는 기타 자기 저장 장치, RAID 저장 시스템 또는 원하는 정보를 저장하는 데 사용될 수 있고 컴퓨팅 장치에 의해 액세스될 수 있는 임의의 기타 매체를 포함하지만, 이에 국한되는 것은 아니다. 컴퓨터 판독 가능 매체(616)는 컴퓨터 판독 가능 저장 매체("CRSM")로서 구현될 수 있으며, 이는 컴퓨터 판독 가능 매체(616)에 저장된 명령어를 실행하기 위해 프로세서(들)(614)에 의해 액세스 가능한 임의의 이용 가능한 물리적 매체일 수 있다. 하나의 기본 구현예에서, CRSM은 랜덤 액세스 메모리("RAM") 및 플래시 메모리를 포함할 수 있다. 다른 구현예에서, CRSM은 읽기 전용 메모리("ROM"), 전기적으로 소거 가능한 프로그래머블 읽기 전용 메모리("EEPROM") 또는 원하는 정보를 저장하는 데 사용될 수 있고 프로세서(들)(614)에 의해 처리될 수 있는 임의의 다른 유형의 매체를 포함할 수 있지만, 이에 국한되는 것은 아니다.
명령어, 데이터저장소 등과 같은 여러 모듈은 컴퓨터 판독 가능 매체(616) 내에 저장되고 프로세서(들)(614)에서 실행되도록 구성될 수 있다. 동일한 기능이 하드웨어, 펌웨어, 또는 시스템 온 칩(SOC)에서 대안적으로 구현될 수 있지만, 몇 가지 예시적인 기능 모듈은 컴퓨터 판독 가능 매체(616)에 저장되고 프로세서(들)(614)에서 실행되는 것으로 도시되어 있다.
운영 체제 모듈(618)은 다른 모듈의 이익을 위해 핸드헬드 장치(602) 내에 그리고 이에 결합되는 하드웨어를 관리하도록 구성될 수 있다. 또한, 컴퓨터 판독 가능 매체(616)는 핸드헬드 장치(602)가 통신 인터페이스(612)를 통해 애플리케이션(예를 들어, 게임 애플리케이션), 게임 콘솔, 원격 컴퓨팅 시스템(106) 등을 실행하는 클라이언트 머신(104)(예를 들어, PC)과 같은 하나 이상의 다른 장치와 통신할 수 있게 하는 네트워크 통신 모듈(620)을 저장할 수 있다. 컴퓨터 판독가능 매체(616)는 핸드헬드 장치(602) 또는 핸드헬드 장치(602)에 연결된 클라이언트 머신(104)에서 실행되는 게임(또는 다른 애플리케이션)과 연관된 데이터를 저장하기 위한 게임 세션 데이터베이스(622)를 더 포함할 수 있다. 컴퓨터 판독가능 매체(616)는 클라이언트 머신(104)(예를 들어, PC, 게임 콘솔 등), 원격 컴퓨팅 시스템(106) 등과 같은 핸드헬드 장치(602)가 결합하는 장치와 연관된 데이터를 저장하는 장치 기록 데이터베이스(624)를 포함할 수도 있다. 컴퓨터 판독 가능 매체(616)는, 핸드헬드 장치(602)를 게임 컨트롤러로서 기능하도록 구성하는 게임 제어 명령어(626), 및 핸드헬드 장치(602)를 다른 비게임 장치의 컨트롤러로서 기능하도록 구성하는 범용 제어 명령어(628)도 추가로 저장할 수 있다.
핸드헬드 장치(602)는 또한 하나 이상의 센서(610)를 포함하는 것으로 도시되어 있다. 예를 들어, 센서(들)(610)는 관성 측정 유닛(들)(IMU(들))과 같은 모션 센서(들)를 포함할 수 있고, 이는 하나 이상의 자이로스코프, 및/또는 가속도계, 및/또는 자력계, 및/또는 나침반, 또는 기타 적합한 모션 센서를 포함할 수 있다. 일부 실시예에서, 센서(들)(610)는 독립형 자이로스코프(들), 가속도계(들), 자력계(들), 나침반(들) 등으로서 구현될 수 있고, 반드시 IMU(들)로서 구현될 필요는 없다. 일부 실시예에서, 이러한 센서들 중 하나 이상은 6-성분 모션 감지를 제공하기 위해 사용될 수 있다. 예를 들어, IMU는 3D 공간에 대한 병진 운동 및/또는 회전 운동을 나타내는 센서 데이터(604)를 감지하고 생성하도록 구성될 수 있다. 이러한 센서(들)(610)에 의해 생성된 센서 데이터(604)는 3D 공간에서 병진 운동(X, Y, 및 Z 운동)의 정도, 비율, 및/또는 가속도뿐만 아니라, 3D 공간에서 회전 운동(롤, 피치, 및 요)의 정도, 비율, 및/또는 가속도와 관련될 수 있다. 측정치는 데카르트(X, Y, 및 Z) 또는 구형 좌표계와 같은 3D 좌표계의 관점에서 생성될 수 있다. 센서 데이터(604)는 예를 들어 변위(예를 들어, 이전 시간 로그 이후의 변위), 속도, 및/또는 병진 운동의 가속도(변수로 표시됨: d, v, a) 및 각도 운동(변수로 표시됨: θ, ω, α)의 관점에서 측정치를 포함할 수 있다. 센서 데이터(604)는 센서 데이터(604)가 예를 들어 임의의 적합한 시간 간격으로 생성 및/또는 전송되는 시간도 또한 포함할 수 있으므로, 센서 데이터(604)의 이력이 수집될 수 있고 핸드헬드 장치(602)에 일시적으로 또는 영구적으로 저장될 수 있다.
다른 예로서, 센서(들)(610)는 터치 센서(들)로의 손가락, 손바닥 등과 같은 객체의 근접을 감지하도록 구성된 터치 센서(들)를 포함할 수 있으며, 이는 용량성 터치 센서, 저항성 터치 센서, 적외선 터치 센서, 음향 음파를 이용하여 손가락(102)의 근접을 검출하는 터치 센서, 또는 기타 유형의 터치 센서와 같은 임의의 적합한 터치 감지 기술에 기초할 수 있다. 예를 들어, 터치 센서(들)는 표면 또는 손가락 조작형 제어 장치로의 손가락(들)의 근접을 검출하기 위해 장치의 아래 또는 표면에, 및/또는 손가락 조작형 제어 장치 내부 또는 그 상에 배치될 수 있다. 근접(예를 들어, 손가락이 표면과 접촉 또는 그 위에서 호버링)의 검출에 응답하여, 터치 센서(들)는 손가락(들)의 근접을 나타내는 센서 데이터(604)를 생성할 수 있다. 터치 센서(들)는 사용자(102) 그립을 검출하기 위해 핸드헬드 장치(602)의 핸들(들)에 및/또는 트랙패드, 조이스틱, 버튼 등을 포함하는 다양한 제어 장치 내에 내장될 수 있다. 용량성 기반 감지를 이용하는 구현예에서, 터치 센서(들)는 전극(예를 들어, 트랜스커패시티브형 센서의 송신기 전극 및 수신기 전극)을 포함할 수 있고, 전압이 전극에 인가될 수 있어 전극은 전극에서 정전용량 변화를 측정하도록 구성될 수 있으며, 이는 센서(들)(610)로의 객체의 근접을 나타내는 정전용량 값의 형태로 센서 데이터(604)로 변환될 수 있다. 예를 들어, 용량성 기반 터치 센서(들)의 전극에서 정전용량 변화는 전극에 근접한 객체(예를 들어, 손가락)에 의해 영향을 받을 수 있다. 원시 정전용량은 센서 데이터(604)를 생성하기 위해 근접 값으로 디지털화될 수 있다.
다른 예로서, 센서(들)(610)는 힘 감지 저항기(들)(FSR(s))와 같은 압력 센서(들)를 포함할 수 있다. 예를 들어, FSR은 저항성 멤브레인으로부터 이격된 전도성 재료(예를 들어, 잉크 조성물과 같은 반도체 재료)뿐만 아니라 저항성 멤브레인에 힘을 전달하도록 구성된 액츄에이터를 포함할 수 있어 저항성 재료는 액츄에이터에 가해지는 압축력의 적용 하에서 전도성 재료와 접촉한다. FSR은 저항 값에 대응하는 센서 데이터(604)를 생성하기 위해 가변 힘에 응답하여 가변 저항을 나타낼 수 있다. FSR은 "션트모드(ShuntMode)" FSR 또는 "스루모드(ThruMode)" FSR일 수 있다. ShuntMode FSR을 사용하여, 저항성 멤브레인으로부터 이격된 전도성 재료는 복수의 깍지형 금속 핑거일 수 있다. FSR의 액츄에이터에 힘이 가해지면, 저항성 멤브레인은 금속 핑거를 션팅하는 깍지형 금속 핑거의 일부와 접촉하여 FSR의 출력 단자에 걸쳐 저항을 변화시키며, 이는 센서 데이터(604)를 생성하기 위해 FSR 값으로 디지털화될 수 있다. 일부 실시예에서, 압력 센서(들)는 추가적으로 또는 대안적으로 압전 센서, 스트레인 게이지 등과 같은 다른 유형의 압력 감지 메커니즘을 포함할 수 있다.
대응하는 센서 데이터(604)를 생성하도록 구성된 센서(610)의 다른 예는 온도 센서(들), 습도 센서(들), 카메라(들) 등을 이에 국한되지 않고 포함할 수 있다. 핸드헬드 장치(602)의 센서(들)(610) 유형과 관계없이, 센서(들)(610)는 어떤 식으로든 핸드헬드 장치(602)의 물리적 상태와 관련된 센서 데이터(604)를 생성하도록 구성된다. 예를 들어, 터치 센서(들)는 객체(예를 들어, 손가락)가 터치 센서(들)를 포함하는 장치(602)의 일부(예를 들어, 방향 패드(D-패드), 조이스틱, 트리거 버튼, 범퍼 버튼, 선택기 버튼 등)와 접촉하고 있는지 또는 그 근처에 있는지 여부를 나타내는 센서 데이터(604)를 생성할 수 있다. 다른 예로서, 압력 센서(들)는 객체가 장치(602)의 일부를 누르고 있는지 여부, 및 장치(602)의 해당 부분이 객체에 의해 가볍게 또는 강하게 눌려지는지 여부를 나타내는 센서 데이터(604)를 생성할 수 있다. 또 다른 예로서, 모션 센서(예를 들어, 자이로스코프 및/또는 가속도계)는 핸드헬드 장치(602)가 3D 공간 내에서 배향 및/또는 공간적 위치가 변경되었는지 여부, 그리고/또는 핸드헬드 장치(602)가 빠르게 또는 느리게 움직이는지 여부를 나타내는 센서 데이터(604)를 생성할 수 있다. 따라서, 핸드헬드 장치(602)의 센서(들)(610)는 장치(602)의 이러한 및 다른 종류의 물리적 상태를 나타내는 센서 데이터(604)를 생성하도록 구성된다.
도 6은 핸드헬드 장치(602)가 암호화 하드웨어(630)를 더 포함할 수 있음을 도시하고 있다. 예를 들어, 비디오 게임 서비스의 서비스 제공자 및/또는 제3자 제조업체는 "신뢰성 갖춘" 핸드헬드 장치(602)를 제조할 수 있으며, 이는 제조 시 그 내부에 내장된 변조 방지 하드웨어 구성요소를 갖도록 제조된다. 이러한 내장형 하드웨어 구성요소는 도 6에 도시된 암호화 하드웨어(630)를 포함할 수 있으며, 결과적으로 개인 키(632)를 저장할 수 있다. 예를 들어, 개인 키(632)는 핸드헬드 장치(602)의 비휘발성 메모리에 유지될 수 있다.
일부 실시예에서, 암호화 하드웨어(630)는 변조 방지된다. 예를 들어, 암호화 하드웨어(630)는 변조 방지 케이싱 내에 포함되거나 매입될 수 있고, 암호화 하드웨어(630)는 변조 방지 케이싱이 손상된 경우 자체적으로 비활성화되도록 구성될 수 있다. 예를 들어, 암호화 하드웨어(630)는 변조 방지 케이싱이 손상되거나 이와 달리 변조된 경우 개인 키(632)를 소거하거나 삭제하고 및/또는 원격 컴퓨팅 시스템(106)에 경고를 보내도록 구성될 수 있다. 이는 사용자가 개인 키(632)에 불법적으로 액세스하거나 적어도 감지되지 않은 상태로 액세스하는 것을 어렵게 하여, 개인 키(632)를 다른 사람과 공유하고 개인 키(632)를 사용하여 다른 사용자 계정(120)을 통해 "스머프(smurf)" 역할을 하는 것을 방지한다. 온라인 게임에서, "스머핑"은 특정 숙련도의 플레이어가 다른 사람의 계정 또는 보조 계정으로 더 낮은 순위 또는 숙련도로 보이도록 플레이하는 행위이다.
일부 실시예에서, 사용자(102)는 초기에 핸드헬드 장치(602)를 자신의 사용자 계정(120)과(및 가능하게는 가족 구성원 계정과 같은 추가 사용자 계정(120)과) 연관시키거나 등록할 수 있다. 이는 핸드헬드 장치(602)에 대한 초기 등록 절차를 수행함으로써 달성될 수 있다. 초기 등록 절차는 예를 들어 추가 보안을 위해 이중 인증(2FA) 단계를 사용하는 최초 활성화 절차를 포함할 수 있다. 예를 들어, 사용자(102)는 예를 들어 블루투스와 같은 근거리 무선 프로토콜을 사용하여 핸드헬드 장치(602)를 핸드헬드 장치(602) 부근의 클라이언트 머신(104)과 페어링할 수 있다. 사용자(102)는 클라이언트 머신(104)에서 또는 사용자(102)의 모바일 장치(예를 들어, 휴대폰)에서 실행되는 클라이언트 애플리케이션(예를 들어, 비디오 게임 클라이언트)을 사용하여 자신의 사용자 계정(120)에 로그인할 수 있다. 사용자(102)의 로그인에 응답하여, 원격 컴퓨팅 시스템(602)은 페어링되었지만 미등록/비활성화된 장치(602)의 표시를 수신할 수 있고, 예를 들어 사용자 계정(120)에 지정된 휴대폰 번호로 문자 또는 이메일 주소로 이메일과 같은 메시지를 보냄으로써 활성화 코드를 사용자(102)에게 전송할 수 있다. 사용자(102)는 활성화 코드를 얻기 위해 메시지에 액세스할 수 있고, (예를 들어, 핸드헬드 장치(602)를 사용하여 활성화 코드를 입력함으로써) 사용자의 폰 또는 클라이언트 머신(104)에서 실행되는 비디오 게임 클라이언트를 통해 활성화 코드를 입력할 수 있다. 원격 시스템(106)이 규정된 시간 제한 내에 정확한 활성화 코드를 수신하면, 핸드헬드 장치(602)는, 예컨대 사용자 계정(120)에, 핸드헬드 장치(602)가 사용자 계정(120)의 등록된 장치라는 것, 등록 시간 및 날짜, 핸드헬드 장치(602)가 활성화된 위치 등을 나타냄으로써, 사용자(102)의 사용자 계정(120)과 연관될 수 있다. 원격 컴퓨팅 시스템(106)은 사용자 계정(120)을 핸드헬드 장치(602)의 개인 키(632) 및/또는 예를 들어 사용자(102)가 향후 자신의 사용자 계정(120)에 로그인하고 해당 사용자 계정(120)에 등록된 핸드헬드 장치(602)를 사용할 때 향후에 사용자(102)를 인증하는 수단으로서 핸드헬드 장치(602)의 입력 장치에 의해 획득된 사용자(102)의 생체 인식 데이터(예를 들어, 지문, 안문, 얼굴 지문, 성문 등)와 연관시킬 수도 있다.
일부 실시예에서, 핸드헬드 장치(602)를 하나의 사용자 계정(120)으로부터 다른 사용자 계정(120)으로 보다 안전하게 전환하기 위해 추가적인 보안 계층이 구현될 수 있으며, 이는 예를 들어 장치(602)가 도난당하거나 분실된 경우 신뢰성 갖춘 핸드헬드 장치(602)의 불법 사용을 방지하는 데 도움이 될 수 있다. 예를 들어, 원격 컴퓨팅 시스템(106)은 (예를 들어, 제1 사용자 계정(120)으로부터 장치(602)를 분리/등록 해제하고 장치(602)를 제2 사용자 계정(120)과 연관/등록함으로써) 장치(602)가 제2 사용자 계정(120)으로 전환되게 가능해지기 전에 장치(602)를 제1 사용자 계정(120)과 연관/등록한 이후의 대기 기간(예를 들어, 며칠의 대기 기간)을 시행할 수 있다. 원격 컴퓨팅 시스템(106)은 추가적으로 또는 대안적으로 사용자(102)가 주어진 시간 기간 내에 사용자 계정(120) 사이에서 핸드헬드 장치(602)를 전환하게 가능해지는 횟수를 제한할 수 있다(예를 들어, 사용자(102)는 한 시간 동안 두 번 이하로 한 사용자 계정(120)으로부터 다른 사용자 계정(120)으로 핸드헬드 장치(602)를 전환하게 가능해질 수 있음). 이러한 추가 계층은 신뢰성 갖춘 핸드헬드 장치(602)의 무단 사용을 억제하는 데 도움이 될 수 있다.
핸드헬드 장치(602)가 사용자 계정(들)(120)에 등록되면, 사용자(102)는 예를 들어 핸드헬드 장치(602)를 그의 클라이언트 머신(104)에 연결하고(예를 들어, 무선 통신 링크를 통해 클라이언트 머신(104)과 장치(602)를 페어링함으로써) - 이는 장치 기록 데이터베이스(624)를 사용하여 제1 페어링 절차 후에 자동으로 발생할 수 있음 - 비디오 게임(110)을 플레이하기 위해 핸드헬드 게임 컨트롤러로서 장치(602)를 사용함으로써 비디오 게임 플랫폼과 상호작용하도록 장치(602)를 사용할 수 있다. 이러한 시나리오에서, 클라이언트 머신(104)은 사용자(102)가 핸드헬드 장치(602)를 조작함으로써 비디오 게임(110)을 플레이하는 동안 비디오 게임(110)의 이미지를 표시하는 데 사용될 수 있다. 비디오 게임 플랫폼과의 상호작용 중 임의의 적합한 시간에, 핸드헬드 장치(602)는 핸드헬드 장치(602)의 입력 장치를 통해 사용자(102)의 생체 인식 데이터(예를 들어, 지문, 안문, 얼굴 지문, 성문 등)를 획득할 수 있고, 통신 인터페이스(들)(612)를 통해 (예를 들어, 클라이언트 머신(104)을 통해 원격 컴퓨팅 시스템(106)으로 생체 인식 데이터를 라우팅함으로써) 획득된 생체 인식 데이터를 원격 컴퓨팅 시스템(106)으로 전송할 수 있고, 생체 인식 데이터는 사용자 계정(120)을 인증하고, 사용자(102)를 인증하고/하거나 핸드헬드 장치(602)를 인증하기 위해 원격 컴퓨팅 시스템(106)에 의해 사용될 수 있다. 더 나아가, 비디오 게임 플랫폼과의 상호작용 중 임의의 적합한 시간에, 개인 키(632)는 장치(602)의 사용 동안 핸드헬드 장치(602)에 의해 전송되는 게임 제어 데이터(606) 및/또는 센서 데이터(604)와 같은 장치 출력을 암호화하기 위해 핸드헬드 장치(602)의 로직에 의해 사용될 수 있다. 예를 들어, 개인 키(632)는 게임 제어 데이터(606) 및/또는 센서 데이터(604)에 서명하여 임의의 적합한 암호화 알고리즘을 사용하여 데이터를 암호문 형식으로 변환하는 데 사용될 수 있고, 장치(602)는 통신 인터페이스(612)를 통해 (예를 들어, 클라이언트 머신(104)을 통해 원격 컴퓨팅 시스템(106)으로 암호화된 데이터를 라우팅함으로써) 암호화된 데이터를 원격 컴퓨팅 시스템(106)으로 전송할 수 있다. 원격 컴퓨팅 시스템(106)은 신뢰성 갖춘 핸드헬드 장치에 대한 데이터저장소(116)(또는 데이터베이스(116))에 개인 키의 보관소를 유지할 수 있으며, 이는 원격 컴퓨팅 시스템(106)에 전송하는 데이터를 암호화하기 위해 핸드헬드 장치(602)에 의해 사용되는 개인 키(632)의 사본을 포함할 수 있다. 원격 컴퓨팅 시스템(106)은 신뢰성 갖춘 핸드헬드 장치의 제조 시에 또는 그 후에 데이터저장소(116)에 개인 키를 기록했을 수 있다. 원격 컴퓨팅 시스템(106)에 액세스 가능한 개인 키를 사용하여, 시스템(106)은 수신된 데이터가 예상 개인 키(632)로 암호화되었음을 검증하기 위해 핸드헬드 장치(602)로부터 수신한 암호화된 데이터를 해독할 수 있다. 따라서, 장치 출력을 암호화하기 위해 핸드헬드 장치(602)에 의해 사용되는 개인 키(632)에 대한 지식이 있는 원격 시스템(106)은, 개인 키(632)의 다른 가능한 사용들 중에서도 특히, 사용자 계정(120) 인증, 사용자(102) 인증, 및/또는 핸드헬드 장치(602) 인증을 위해 개인 키(632)의 사본을 사용할 수 있다. 일부 실시예에서, 원격 컴퓨팅 시스템(106)은 로그인한 사용자 계정(120)과 연관된 데이터의 수신에 응답하여 사용자(102)가 코드(예를 들어, 개인 식별 번호(PIN), 패스코드, 패스프레이즈 등)를 입력하여 사용자 계정(120)의 각 로그인에 대해 사용자(102)를 인증하도록 요청할 수 있다. 이러한 요청은 사용자(102)의 2FA 장치를 통해(예를 들어, 휴대폰을 통해, 클라이언트 머신(104) 등을 통해) 전송될 수 있고, 요청에 대한 응답은 사용자(102)의 동일한 2FA 장치로부터 원격 시스템(106)에 의해 수신될 수 있다. 일부 실시예에서, 대응하는 로그인한 사용자 계정(120)과 관련하여 이미 등록된 핸드헬드 장치(602)를 사용하기 위해 추가적인 사용자 동작이 필요하지 않다. 즉, 장치(602)가 등록된 사용자 계정(120)과 관련하여 핸드헬드 장치(602)를 사용하는 데 필요할 수 있는 모든 것은 개인 키(632)를 사용하여 데이터를 암호화하고 암호화된 데이터를 원격 컴퓨팅 시스템(106)에 전송하는 장치(602)이고, 원격 컴퓨팅 시스템(106)은 수신된 데이터가 예상 개인 키(632)로 암호화되었음을 검증하기 위해 데이터를 해독한다. 예를 들어, 원격 시스템(106)은 핸드헬드 장치(602)에 데이터 청크를 전송할 수 있고, 장치는 데이터 청크를 암호화하고 암호화된 데이터를 원격 시스템(106)에 반환할 수 있고, 그 후 원격 시스템(106)은 키(632) 자체가 전송될 필요 없이 암호화가 올바르게 수행되었음을 검증할 수 있다.
예를 들어, 원격 컴퓨팅 시스템(106)에 액세스 가능한 데이터저장소(116)(또는 데이터베이스(116))는 생체 인식 데이터 및/또는 핸드헬드 장치(602)와 같은 복수의 신뢰성 갖춘 핸드헬드 장치와 연관된 복수의 개인 키를 유지할 수 있고, 원격 컴퓨팅 시스템(106)은 수신된 생체 인식 데이터 및/또는 개인 키가 데이터베이스(116)에 유지되는 생체 인식 데이터 및/또는 개인 키 중 임의의 것과 일치함을 결정하기 위해 생체 인식 데이터 및/또는 클라이언트 머신(104) 및/또는 핸드헬드 장치로부터 수신된 데이터를 암호화하는 데 사용되는 개인 키(632)와 같은 개인 키를 비교할 수 있다. 이러한 작업은 본원에 설명된 바와 같이 인증 목적 및/또는 신뢰 점수 계산을 위해 수행될 수 있다. 다시 말해서, 데이터베이스(116)에 유지되는, 생체 인식 데이터와 일치하는 생체 인식 데이터 및/또는 개인 키와 일치하는 개인 키(632)로 암호화된 암호화 데이터의 수신은 사용자(102), 장치(602), 및/또는 이와 연관된 사용자 계정(120)을 인증하는 데 사용될 수 있고, 그리고/또는 일치하는 생체 인식 데이터 및/또는 일치하는 개인 키(632)로 암호화된 암호화 데이터의 수신은 플레이어 매치메이킹에 사용될 수 있는 연관된 사용자 계정(120)에 대한 신뢰 점수를 생성하는 데 사용될 수 있다. 이러한 의미에서, 일치하는 생체 인식 데이터 및/또는 일치하는 개인 키(632)를 사용하여 암호화된 암호화 데이터를 원격 컴퓨팅 시스템(106)에 제공하는 핸드헬드 장치(602)와 연관된 사용자 계정(120)은 (예를 들어, 일부 경우에 추가 사용자 동작 없이) 원활하게 인증될 수 있고, 비인간 플레이어(예를 들어, 부정행위를 위해 설계된 소프트웨어)와 연관될 가능성이 있는 "신뢰성 없는" 사용자 계정(120)과 매칭되는 것과는 대조적으로 다른 인간 플레이어의 사용자 계정(120)과 매칭될 가능성이 더 높다.
따라서, 사용자(102)가 비디오 게임 플랫폼과 상호작용하기 위해 - 예를 들어, 각각의 클라이언트 머신(104)에서 하나 이상의 비디오 게임(110)을 플레이하기 위해 핸드헬드 장치(602)를 이용함에 따라, 센서 데이터(604) 및 게임 제어 데이터(606)는 클라이언트 머신(104)으로 전송되고 클라이언트 머신(104)으로부터 원격 컴퓨팅 시스템(106)으로 전달된다. 게임 제어 데이터(606)는 비디오 게임(110)의 양태(들)를 제어하는 데 사용 가능하고, 이에 의해, 비디오 게임(110)의 다음 프레임을 렌더링하는 방법을 결정하기 위해 비디오 게임(110)에 의해 처리된다. 센서 데이터(604)는 자이로스코프에 의해 생성된 원시 데이터, 가속도계에 의해 생성된 원시 데이터, 및/또는 터치 센서(예를 들어, 용량성 터치 패드)에 의해 생성된 원시 데이터와 같은 원시의 미필터링된 센서 데이터(604)를 나타낸다. 스트리밍 구현예에서, 비디오 게임(110)은 원격 컴퓨팅 시스템(106)에서 실행될 수 있고, 원격 컴퓨팅 시스템(106)은 비디오 게임(110) 데이터를 포착할 수 있고 비디오 게임(110) 데이터를 네트워크(108)를 통해 사용자(102)의 클라이언트 머신(104)으로 전송할 수 있다. 이는 원격 컴퓨팅 시스템(106)이 비디오 게임(110)의 상태를 포착하고, 비디오 및 오디오 데이터를 비트로 인코딩하고, 인코딩된 비트를 컴퓨터 네트워크(108)를 통해 클라이언트 머신(104)으로 전송하는 것을 포함할 수 있고, 클라이언트 머신(104)에서 실행되는 애플리케이션(예를 들어, 비디오 게임 클라이언트)은 디스플레이(들)를 통해 이미지를 출력하고 주어진 프레임에 대해 클라이언트 머신(104)의 스피커(들)를 통해(또는 이에 연결된 헤드폰을 통해) 오디오를 출력하기 위해 비트를 디코딩할 수 있다. 사용자(102)는 핸드헬드 장치(602)를 조작함으로써 자신이 보고 있는 비디오 및 오디오에 반응할 수 있다. 예를 들어, 사용자(102)는 핸드헬드 장치의 제어 장치를 작동시킬 수 있고(예를 들어, 방향 패드(D-패드) 누르기, 조이스틱 편향, 트랙패드 상의 손가락 스와이프 등), 및/또는 3D 공간에서 핸드헬드 장치(602)를 기울이거나 움직여서 비디오 게임(110)의 양태(들)를 제어할 수 있다. 핸드헬드 장치(602)의 작동에 응답하여, 핸드헬드 장치(602)는 무선 액세스 포인트를 통해 직접적으로 컴퓨터 네트워크(108)를 거쳐 또는 핸드헬드 장치(602)가 연관된 클라이언트 머신(104)을 통해 원격 컴퓨팅 시스템(106)으로 전송되는 게임 제어 데이터(606)를 생성할 수 있다. 어느 경우든, 게임 제어 데이터(606)는 비디오 게임(110)의 양태(들)를 제어하기 위해 실시간으로 원격 컴퓨팅 시스템(106)에 전송될 수 있다. 예를 들어, 게임 제어 데이터(606)는 비디오 게임(110)에 의해 처리되어 비디오 게임(110)의 가상 객체(예를 들어, 플레이어 제어 캐릭터)의 움직임을 제어할 수 있도록 가상 객체를 클라이언트 머신(104)의 디스플레이 상의 장면으로 표현되는 가상 세계 내에서 움직이게 한다.
게임 제어 데이터(606)는 필터링/완화된 센서 데이터(604) 및/또는 증폭된 센서 데이터(604)와 같은 장치(602)의 센서(들)(610)에 의해 생성된 적어도 일부 센서 데이터(604)를 포함할 수 있지만, 도 6에 도시된 바와 같이 장치(602)에 의해 원격 컴퓨팅 시스템(106)으로 전송되는 센서 데이터(604)는, 비디오 게임(110)의 양태를 제어하는 데 사용되지 않지만 연관된 사용자 계정(120)에 대한 기계 학습된 신뢰 점수를 생성하는 데 사용되는 원시의 미필터링 센서 데이터(604)를 나타낸다.
도 6의 단계 1에서, 컴퓨팅 시스템(106)은 데이터저장소(116)로부터 샘플링된 적어도 이력 센서 데이터(604)를 사용하여 기계 학습 모델(들)(216)을 훈련시킬 수 있다. 예를 들어, 컴퓨팅 시스템(106)은 비디오 게임 서비스에 등록된 사용자 계정들(120)의 샘플링된 세트와 연관된 이력 센서 데이터(604)의 일부에 액세스하고, 샘플링된 센서 데이터(604)를 사용하여 기계 학습 모델(들)(216)을 훈련시킬 수 있다. 본원에 설명된 바와 같이, 이력 센서 데이터(604)는 사용자(102)가 핸드헬드 장치(602)를 사용하여 비디오 게임 플랫폼과 상호작용한 결과로서 이력 게임 제어 데이터(606)와 함께 클라이언트 머신(104)으로부터 수신되었을 수 있다. 일부 실시예에서, 훈련 데이터로 사용되는 센서 데이터(604)의 일부는 한 세트의 피쳐들로 표현되고, 샘플링된 세트의 각 사용자 계정(120)은, 소프트웨어를 사용하여 합성 및/또는 수정된 것과 대조적으로 인간 플레이어가 장치(602)를 잡고 조작하는 동안 대응하는 사용자 계정(120)과 연관된 이력 게임 제어 데이터(606)가 핸드헬드 장치(602)에 의해 생성되었는지 여부를 나타내는 라벨로, 라벨링된다. 다시 말해서, 핸드헬드 장치(602)를 조작하는 인간 사용자(102) 덕분에 인간이 생성한 게임 제어 데이터(606)와 연관되는 것으로 결정된 사용자 계정(120)은 이와 같이 라벨링될 수 있는 반면, 합성 및/또는 수정된 게임 제어 데이터(즉, 비디오 게임의 양태를 제어하기 위해 소프트웨어에 의해 합성 및/또는 수정된 데이터)와 연관되는 것으로 결정된 다른 사용자 계정(120)은 이와 같이 라벨링될 수 있다. 이러한 방식으로, 부정행위를 위해 설계된 비인간 소프트웨어와 대조적으로, 핸드헬드 장치(602)를 조작하는 합법적인 인간 플레이어일 가능성이 있는 플레이어를 예측하기 위해 기계 학습 모델(들)(216)을 훈련시키도록 지도 학습 접근법을 취할 수 있다.
예를 들어, 사람이 핸드헬드 장치(602)를 조작할 때, 의도하지 않은 움직임인 핸드헬드 장치(602)의 미묘한 움직임이 있을 수 있지만, 그 움직임은 핸드헬드 장치(602)의 하나 이상의 물리적 센서(610)에 의해 검출될 수 있고 결과적으로 센서 데이터(604)에 나타날 수 있다. 이러한 센서 데이터(604)가 이러한 미묘한 움직임을 나타낼 것이라는 개념에 기초하여, 기계 학습 모델(들)(216)을, 센서 데이터(604)에서 이러한 미묘한 움직임들 - 예를 들어, 핸드헬드 장치(602)가 (예를 들어, 인간 사용자(102)에 의해) 기계식으로 작동된 결과로서 실제 물리적 핸드헬드 장치(602)의 물리적 센서(들)(610)에 의해 생성된 움직임, 손가락 근접 등 - 을 인식함으로써 인간 플레이어와 비인간 플레이어를 구별하도록 하기 위해, 센서 데이터(604)를 훈련 데이터로 사용하여 훈련시킬 수 있다. 반대로, 센서 데이터(604)가 수신되었지만 핸드헬드 장치(602)의 인간 조작으로 인해 예상되는 뉘앙스를 나타내지 않으면, 대응하는 게임 제어 데이터(606)가 실제 유형의 핸드헬드 장치(602)의 작동의 결과로 생성되지 않고 대신 소프트웨어를 사용하여 합성 및/또는 수정된 것으로 추론될 수 있다. 예를 들어, 부정행위 플레이어는 (예를 들어, 프로그램에 따라 마우스 커서를 타겟으로 이동시켜서 자동화 방식으로 무기를 발사함으로써) 부정행위자의 아바타 동작을 자동화하도록 구성된 타사 소프트웨어를 이용하거나 자체 소프트웨어를 개발할 수 있다. 이러한 소위 "에임봇" 소프트웨어는 인간 플레이어를 대신하여 비디오 게임(110)을 효과적으로 플레이하여, 인간 플레이어가 실제로 비디오 게임(110)을 플레이하고 있지 않고 소프트웨어가 실제 게임 제어 데이터(606)가 처리되는 것과 동일한 방식으로 비디오 게임(110)에 의해 처리되는 게임 제어 데이터(606)를 합성 및/또는 수정하여, 부정행위를 하지 않는 합법적인 인간 플레이어보다 부정행위 플레이어에게 이점을 제공한다. 이러한 합성 및/또는 수정된 게임 제어 데이터(606)가 검출되지 않으면, 컴퓨터 알고리즘은 편재되어 멀티플레이어 게임에서 부정행위 플레이어의 성능을 향상시키는 데 널리 사용될 수 있으며, 이는 비디오 게임(110)을 합법적으로 플레이하기 원하고 이러한 컴퓨터화된 알고리즘과 매칭될 수 있는 인간 플레이어의 경험을 망칠 수 있다. 이러한 경우에, 핸드헬드 장치(602)의 인간 조작에 의해 생성된 센서 데이터(604)를 모방하려는 시도는 인간 플레이어와 비인간 플레이어를 구별하도록 훈련된 기계 학습 모델(들)(216)에 의해 검출될 수 있고, 이러한 및 다른 유형의 부정행위 행동은 예를 들어 멀티플레이어 비디오 게임의 자체 경기에서 비인간 플레이어를 격리시킴으로써 교정될 수 있다.
기계 학습 모델(들)(216)은 전술한 이력 센서 데이터(604)에 더하여 또는 그 대신에 추가 데이터를 사용하여 훈련될 수 있음을 이해해야 한다. 예를 들어, 이력 게임 제어 데이터(606)는 시간이 지남에 따라 클라이언트 머신(104)으로부터 수집될 수 있으며, 게임 제어 데이터(606)는 비디오 게임(110)의 양태(들)를 제어하기 위해 핸드헬드 장치에 인간 사용자에 의해 제공된 사용자 입력에 기초하여 생성되었다. 이러한 사용자 입력은 버튼 누름, 조이스틱 편향, 트랙패드 상의 손가락 스와이프 등과 같은 핸드헬드 장치(602)에서 제어 장치의 작동, 및/또는 3D 공간에서 핸드헬드 장치(602)의 기울임 또는 움직임을 포함할 수 있다. 따라서, 이력 게임 제어 데이터(606)(예를 들어, 비디오 게임(110)의 양태(들)를 제어하기 위해 핸드헬드 장치(602)에 제공된 사용자 입력을 나타내는 데이터)는 이력 센서 데이터(604)와 함께 또는 이를 사용하는 대신 훈련 데이터로 사용될 수 있다. 이력 센서 데이터(604)와 이력 게임 제어 데이터(606) 둘 모두를 훈련 데이터로 사용하면 게임 제어 데이터(606)와 동시 생성된 센서 데이터(604) 사이에 상관관계가 이루어질 수 있다. 또 다른 예로서, 무선 통신 데이터는 시간이 지남에 따라 클라이언트 머신(104)으로부터 수집될 수 있고, 이력 무선 통신 데이터는 이력 센서 데이터(604)와 함께 또는 이를 사용하는 대신 훈련 데이터로서 사용될 수 있다. 이러한 무선 통신 데이터는, 무선(예를 들어, WiFi, 블루투스 등) 신호 강도 값(들), 핸드헬드 장치(602)로부터 연관된 클라이언트 머신(104)으로 전송된 드롭된 데이터 패킷의 인스턴스(들)를 나타내는 데이터, 핸드헬드 장치(602)로부터 연관된 클라이언트 머신(104)으로 전송된 다수의 드롭된 데이터 패킷 등을, 이에 국한되지 않고 포함할 수 있다. 이러한 무선 통신 데이터는 핸드헬드 장치(602), 클라이언트 머신(104), 및/또는 사용자(102)의 환경에 로컬인 기타 적합한 장치에 의해 획득될 수 있다.
전술한 바와 같이, 훈련 데이터는 두 가지 구성요소, 즉 피쳐 및 라벨을 포함할 수 있다. 그러나, 기계 학습 모델(들)(216)을 훈련시키는 데 사용되는 훈련 데이터는 일부 실시예에서 라벨링되지 않을 수 있다. 따라서, 기계 학습 모델(들)(216)은 지도 학습, 비지도 학습, 반지도 학습, 강화 학습 등과 같은 임의의 적절한 학습 기술을 사용하여 훈련 가능할 수 있다. 훈련 데이터에 포함된 피쳐들은, 예컨대 훈련 데이터의 속성에 대한 정량화 가능한 정보의 n 차원 피쳐 벡터의 형태인, 한 세트의 피쳐들로 표현될 수 있다. 훈련 데이터에 포함된 예시적인 피쳐는, 센서 데이터(604) 값(예를 들어, 정전용량 값, 저항 값, 변위 값, 속도 값, 가속도 값, 온도 값, 습도 값 등), 게임 제어 데이터(606) 값(예를 들어, 전위차계 및 손가락 조작형 제어 장치의 다른 스위치에 의해 생성된 값), 생체 인식 데이터 값, 원격 컴퓨팅 시스템(106)으로 전송된 데이터를 암호화하기 위해 개인 키(632)를 사용한 핸드헬드 장치(602)와 연관된 개인 키(632) 값, 개인 키(632)(및 이에 따른 신뢰성 갖춘 핸드헬드 장치(602))가 사용자 계정(120)과 연관/등록된 시간, 신뢰성 갖춘 핸드헬드 장치(602)(및/또는 이의 개인 키(632))가 사용자 계정(120)과 함께 사용된 횟수, 무선 통신 데이터 값(예를 들어, 무선 신호 강도 값, 핸드헬드 장치(602)로부터 연관된 클라이언트 머신(104)으로 전송된 드롭된 데이터 패킷의 인스턴스를 나타내는 값, 핸드헬드 장치(602)로부터 연관된 클라이언트 머신(104)으로 전송된 드롭된 데이터 패킷의 수 또는 빈도를 나타내는 값 등), 신뢰성 갖춘 핸드헬드 장치(602)(및/또는 이의 개인 키(632))가 상이한 사용자 계정(120) 간에 전환된 횟수, 플레이어가 일반적으로 비디오 게임(110)을 플레이하는 데 소비한 시간, 플레이어가 특정 비디오 게임(110)을 플레이하는 데 소비한 시간, 플레이어가 비디오 게임(110)에 로그인되어 이를 플레이한 하루 중 시간, 플레이어에 대한 경기 이력 데이터- 예를 들어 (경기당, 라운드 당 등) 총 점수, 헤드샷 백분율, 킬 카운트, 사망 카운트, 어시스트 카운트, 플레이어 랭크 등, 플레이어 부정행위에 대한 신고의 수 및/또는 빈도, 플레이어에 대한 부정행위 무죄판결의 수 및/또는 빈도, 플레이어에 대한 부정행위 유죄판결의 수 및/또는 빈도, 비디오 게임 중 부정행위의 플레이어를 검출한 기계 학습 모델에 의해 출력된 신뢰도 값(점수), 단일 플레이어와 연관된 사용자 계정(120)의 수(여러 사용자 계정(120)에 결부된 공통 주소, 전화 번호, 결제 수단 등으로부터 추론될 수 있음), 사용자 계정(120)이 비디오 게임 서비스에 등록된 기간, 플레이어와 결부된 이전에 금지된 사용자 계정(120)의 수, 비디오 게임 플랫폼에서 플레이어의 금전 거래의 수 및/또는 빈도, 거래당 달러 액수, 플레이어의 사용자 계정(120)과 연관된 금전적 가치의 디지털 항목의 수, 사용자 계정(120)이 소유를 변경한 횟수(예를 들어, 서로 다른 소유자/플레이어 간에 전송된 횟수), 사용자 계정(120)이 플레이어 간에 전송되는 빈도, 플레이어가 비디오 게임 서비스에 로그인한 지리적 위치, 사용자 계정(120)과 연관된 상이한 결제 수단, 전화 번호, 우편 주소 등의 수 및/또는 이러한 항목이 변경된 빈도, 및/또는 사용자 계정과 연관된 게임 제어 데이터가 소프트웨어를 사용하여 합성 및/또는 수정된 것과는 대조적으로 인간 플레이어에 의해 유지 및 작동되는 핸드헬드 장치(602)에 의해 생성되었을 확률을 나타내는 신뢰 점수(118)를 계산하는 데 관련될 수 있는 기타 적합한 피쳐를, 이에 국한되지 않고 포함할 수 있다.
도 6의 단계 1에서 훈련의 일부로서, 훈련 구성요소(210)는 기계 학습에 대한 가중치를 설정할 수 있다. 이러한 가중치는 이력 센서 데이터(604)를 비롯하여, 데이터저장소(116)의 이력 데이터로부터 도출된 것과 같은, 훈련 데이터에 포함된 한 세트의 피쳐들에 적용될 수 있다. 일부 실시예에서, 훈련 프로세스 동안 설정되는 가중치는 기계 학습 모델(들)(예를 들어, 신경망의 은닉 층에서의 뉴런에 대한 가중치)의 내부에 있는 파라미터에 적용될 수 있다. 기계 학습 모델의 이러한 내부 파라미터는 한 세트의 피쳐들 중 개별 입력 피쳐들과 일대일로 매핑될 수 있거나, 혹은 매핑되지 않을 수도 있다. 가중치는 임의의 주어진 피쳐 또는 파라미터가 훈련된 기계 학습 모델(216)에 의해 출력되는 점수(118)에 미치는 영향을 나타낼 수 있다.
도 6의 단계 2에서, 컴퓨팅 시스템(106)은 훈련된 기계 학습 모델(들)(216)을 사용하여 하나 이상의 등록된 사용자 계정(120)을 채점할 수 있다. 예를 들어, 컴퓨팅 시스템(106)은 하나 이상의 클라이언트 머신(104)으로부터 하나 이상의 로그인되고 등록된 사용자 계정(120)과 연관된 신규 센서 데이터(604) 및 신규 게임 제어 데이터(606)를 수신할 수 있다. 예시적인 예에서, 컴퓨팅 시스템(106)은 로그인한 사용자 계정(들)(120)이 현재 비디오 게임(110)을 플레이 중이거나 시작했음을 나타내는 정보(122)를 수신할 수 있다. 비디오 게임(110)은 설치된 클라이언트 애플리케이션을 통해 클라이언트 머신(들)(104)에서 실행될 수 있거나, 또는 비디오 게임(110)은 원격 컴퓨팅 시스템(106)에서 실행되는 동안 클라이언트 머신(들)(104)로 스트리밍될 수 있다. 어떤 경우든, 플레이어(102)가 그의 사용자 계정(120)으로 로그인하고 특정 비디오 게임(110)을 실행하여 멀티플레이어 모드에서 플레이를 요청함에 따라, 그 각각의 클라이언트 머신(104)은 그만큼을 나타내는 정보(122)를 컴퓨팅 시스템(106)에 제공할 수 있고, 센서 데이터(604) 및 게임 제어 데이터(606)는 비디오 게임(110)이 개시되고 플레이어가 게임플레이를 시작함에 따라 클라이언트 머신(들)(104)으로부터 원격 컴퓨팅 시스템(106)에 실시간으로 스트리밍될 수 있다. 컴퓨팅 시스템(106)은 훈련된 기계 학습 모델(들)(216)로의 입력으로서 수신한 신규 센서 데이터(604)를 제공할 수 있고, 훈련된 기계 학습 모델(들)(216)로부터의 출력으로서 로그인되고 신규 게임 제어 데이터(606)와 연관된 개별 사용자 계정(120)과 연관된 점수(118)를 생성할 수 있다. 이러한 예에서, 점수(118)는 클라이언트 머신과 연관된 핸드헬드 장치(602)에 의해 생성된 수신된 신규 게임 제어 데이터(606)의 확률과 관련될 수 있다. 이 경우, 높은 신뢰 점수는 신뢰성 갖춘 사용자 계정(120)(예를 들어, 핸드헬드 장치(602)를 조작하는 인간 플레이어와 연관될 가능성이 있는 계정)을 나타내는 반면, 낮은 신뢰 점수는 신뢰성 없는 사용자 계정(120)(예를 들어, 실제 핸드헬드 장치(602)에 의해 생성된 실제 게임 제어 데이터(606)와 유사하게 보이는 합성 및/또는 수정된 게임 제어 데이터(606)를 생성하는 소프트웨어와 같은 비인간 플레이어와 연관될 가능성이 있는 계정)을 나타낸다. 일부 실시예에서, 점수(118)는 [0,1]의 범위에서 정규화되는 변수이다. 이러한 신뢰 점수(118)는 핸드헬드 장치(602)에 의해 생성된 신규 게임 제어 데이터(606)의 확률과 단조로운 관계를 가질 수 있다. 점수(118)와 실제 확률 간의 관계는 단조롭지만 선형 관계일 수도 있고 아닐 수도 있다. 물론, 채점은 신규 게임 제어 데이터(606)가 핸드헬드 장치(602)에 의해 생성되었는지 또는 소프트웨어를 사용하여 합성 및/또는 수정되었는지 여부를 예측하기 위해 임의의 적합한 방식으로 구현될 수 있다.
일부 실시예에서, 신규 게임 제어 데이터(606) 자체는 훈련된 기계 학습 모델(들)(216)로의 추가 입력으로 제공되어, 훈련된 기계 학습 모델(들)(216)로의 추가 입력으로 제공되는 게임 제어 데이터(606)에 적어도 부분적으로 기초하여 점수(118)를 생성할 수 있다. 예를 들어, 사용자(102)는 핸드헬드 장치(602)의 제어 장치를 작동(예를 들어, 방향 패드(D-패드)와 같은 버튼 누르기, 조이스틱 편향, 트랙패드 상의 손가락 스와이프 등)시키고 및/또는 비디오 게임(110)의 양태(들)를 제어하기 위해 3D 공간에서 핸드헬드 장치(602)를 기울이거나 움직임으로써 게임플레이 동안 핸드헬드 장치(602)를 조작할 수 있다. 핸드헬드 장치(602)의 사용자 조작에 응답하여, 핸드헬드 장치(602)는 원격 컴퓨팅 시스템(106)으로 전송되는 게임 제어 데이터(606)를 생성할 수 있다. 핸드헬드 장치(602)에 제공된 사용자 입력을 나타내는 이러한 신규 게임 제어 데이터(606)는 훈련된 기계 학습 모델(들)(216)로의 입력으로 제공될 수 있다. 센서 데이터(604)를 훈련된 기계 학습 모델(들)(216)로의 입력으로 제공하는 것에 더하여, 새로운 게임 제어 데이터(606)가 훈련된 기계 학습 모델(들)(216)로의 입력으로 제공될 수 있음을 이해해야 한다. 게임 제어 데이터(606)를 훈련된 기계 학습 모델(들)(216)로의 입력으로 제공하는 예시적인 이유는 핸드헬드 장치(602)에 사용자 입력을 제공하는 사람이 동일한 유형의 사용자 입력을 시뮬레이션하는 컴퓨터 프로그램만큼 "더 시끄러울" 수 있거나 깨끗하지 않을 수 있기 때문이다. 따라서, 훈련된 기계 학습 모델(들)(216)은 클라이언트 머신(104)으로부터 수신되고 훈련된 기계 학습 모델(들)(216)로의 입력으로 제공된 게임 제어 데이터(606)에 적어도 부분적으로 기초하여 인간 사용자와 비인간 플레이어(예를 들어, 부정행위하도록 설계된 소프트웨어)를 구별하도록 훈련될 수 있다.
일부 실시예에서, 신규 무선 통신 데이터는 훈련된 기계 학습 모델(들)(216)로의 추가 입력으로 제공되어, 훈련된 기계 학습 모델(들)(216)로의 추가 입력으로 제공되는 무선 통신 데이터에 적어도 부분적으로 기초하여 점수(118)를 생성할 수 있다. 예를 들어, 무선(예를 들어, WiFi, 블루투스 등) 신호 강도는 클라이언트 머신(104)과 같이 통신하는 다른 장치에 대해 핸드헬드 장치(602)와 관련하여 결정될 수 있고, 이러한 신호 강도는 환경에서 무선 신호의 간섭 및/또는 핸드헬드 장치(602)가 통신하는 다른 장치와 이격된 거리에 따라 변할 수 있다(예를 들어, 증가 또는 감소). 무선 신호 강도 값의 존재 및/또는 시간이 지남에 따라 변하는(예를 들어, 신호 강도 값의 변화 관찰) 무선 신호 강도는 인간 플레이어가 핸드헬드 장치(602)를 사용 중임을 나타낼 수 있고, 이는 이러한 특성이 게임 시스템 설정에서 일반적으로 발생하기 때문이다. 대조적으로, 신호 강도 값이 없거나 시간이 지남에 따라 변하지 않는 일정한 신호 강도 값은 비인간 플레이어(예를 들어, 부정행위하도록 설계된 소프트웨어)를 나타낼 수 있다. 다른 예로서, 핸드헬드 장치(602)로부터 연관된 클라이언트 머신(104)으로 전송된 드롭된 데이터 패킷의 인스턴스(들), 및/또는 핸드헬드 장치(602)로부터 연관된 클라이언트 머신(104)으로 전송된 드롭된 데이터 패킷의 수를 나타내는 무선 통신 데이터는 훈련된 기계 학습 모델(들)(216)로의 입력으로서 결정되고 사용될 수 있다. 예를 들어, 하나 이상의 드롭된 패킷의 존재 및/또는 시간이 지남에 따라 변하는 드롭된 데이터 패킷의 수는 인간 플레이어가 핸드헬드 장치(602)를 사용 중임을 나타낼 수 있다. 대조적으로, 무선 통신 데이터에 드롭된 패킷이 없는 경우 및/또는 드롭된 데이터 패킷의 수가 시간이 지남에 따라 일정하게 유지되는 경우(예를 들어, 변하지 않음), 이는 비인간 플레이어(예를 들어, 부정행위하도록 설계된 소프트웨어)를 나타낼 수 있다.
일부 실시예에서, 점수(118)의 결정은, 클라이언트 머신(104)으로부터 수신된 생체 인식 데이터 및/또는 클라이언트 머신(104)으로부터 수신된 데이터를 암호화하는 데 사용되는 개인 키(632)가 생체 인식 데이터 및/또는 복수의 신뢰성 갖춘 핸드헬드 장치(602)와 연관된 데이터베이스(116)에 유지되는 복수의 개인 키 중 하나와 일치한다는 결정에도 추가로 기초한다. 즉, 생체 인식 데이터 및/또는 개인 키(632)는 시스템(106)에 의해 신뢰성 갖춘 실제 핸드헬드 컨트롤러(602)가 게임 제어 데이터(606)를 전송하고 있음을 원격 컴퓨팅 시스템(106)에 증명하기 위해 신뢰를 위한 프록시로서 사용될 수 있다.
도 6의 단계 3에서, 대응하는 클라이언트 머신(104)으로부터 수신된 신규 센서 데이터(604)에 기초하여 로그인한 등록된 사용자 계정(들)(120)에 대해 결정된 기계 학습된 점수(118)를 사용하여, 컴퓨팅 시스템(106)은 멀티플레이어 모드에서 비디오 게임(110)을 플레이하기 위해 로그인한 사용자 계정(120)에 대해 결정된 기계 학습된 점수(118)에 적어도 부분적으로 기초하여 다수의 경기 중 상이한 경기에 로그인한 사용자 계정(120)의 서브셋을 할당하기 위해 클라이언트 머신(104)에 경기 할당(124)을 제공함으로써 다수의 경기로 플레이어(102)를 함께 매칭시킬 수 있다. 이러한 방식으로, 훈련된 기계 학습 모델(들)(216)이 로그인한 사용자 계정들(120)의 제1 서브셋에 낮은(예를 들어, 임계치 미만) 점수(118)를 할당하고 로그인한 사용자 계정들(120)의 제2 서브셋에 높은(예를 들어, 임계치 초과) 점수(118)를 할당하면, 로그인한 사용자 계정(120)의 제1 서브셋은 여러 경기 중 제1 경기에 할당될 수 있고 로그인한 사용자 계정(120)의 제2 서브셋은 여러 경기 중 다른 제2 경기에 할당될 수 있다. 이는 비디오 게임(110)의 시작 시(예를 들어, 경기가 개시되기 전) 경기에 사용자 계정(120)을 할당하는 것, 및/또는 비디오 게임(110) 도중(예를 들어, 경기가 개시된 후) 사용자 계정(120)을 신규 경기에 재할당하는 것을 포함할 수 있다. 예를 들어, 제1 로그인한 사용자 계정(120)이 인간 플레이어(102)를 위해 지정된 제1 경기에 초기에 할당되고, 이어서 훈련된 기계 학습 모델(들)(216)로의 입력으로 제공되는 실시간 데이터에 기초하여 해당 사용자 계정(120)에 대해 기계 학습된 점수(118)가 생성되는 경우, 점수(118)는 제1 사용자 계정(120)이 게임 제어 데이터(606)를 합성 및/또는 수정하는 비인간 플레이어(예를 들어, 소프트웨어)와 연관될 가능성이 있음을 나타낸 후, 컴퓨팅 시스템(106)은 비인간 플레이어(102)(예를 들어, 게임 제어 데이터를 합성 및/또는 수정하기 위해 소프트웨어를 사용하는 부정행위 플레이어)를 위해 지정된 제2 경기에 제1 사용자 계정을 재할당할 수 있다. 일부 실시예에서, 클라이언트 머신(104)이 게임 제어 데이터(606)를 전송하고 게임 제어 데이터(606)와 함께 원시의 미필터링된 센서 데이터(604)를 전송하지 않는 경우, 이와 연관된 사용자 계정(120)은 원시 센서 데이터(604)의 부재에 기초하여 신뢰할 수 없는 것으로 간주될 수 있다. 다른 실시예에서, 게임 제어 데이터(606)는 원시 센서 데이터(604)가 없는 경우에도 사용자 계정에 대한 점수(118)를 생성하기 위해 훈련된 기계 학습 모델(들)(216)로의 입력으로 제공될 수 있고, 기계 학습된 점수(118)는 사용자 계정(120)과 연관된 플레이어의 부정행위 성향을 결정하기 위해 본원에 설명된 기타 적합한 방식으로 이러한 사용자 계정(120)에 대해 생성될 수 있다.
도 6의 단계 4에서, 컴퓨팅 시스템(106)은 각 사용자 계정(120)으로 할당된 경기에서 비디오 게임(110)의 실행을 야기할 수 있다. 스트리밍 구현예에서, 이는 원격 컴퓨팅 시스템(106)이 비디오 게임(110)의 상태를 포착하고, 원격 시스템(106)에서 실행하고, 비디오 및 오디오 데이터를 비트로 인코딩하고, 인코딩된 비트를 컴퓨터 네트워크(108)를 통해 클라이언트 머신(104)으로 전송하는 것을 포함할 수 있고, 클라이언트 머신(104)에서 실행되는 애플리케이션(예를 들어, 비디오 게임 클라이언트)은 디스플레이(들)를 통해 이미지를 출력하고 주어진 프레임에 대해 클라이언트 머신(104)의 스피커(들)를 통해(또는 이에 연결된 헤드폰을 통해) 오디오를 출력하기 위해 비트를 디코딩할 수 있다. 도 1의 컴퓨터 네트워크(108)가 일부 실시예에서 "가내(in-home)" 비디오 게임 스트리밍 시나리오의 경우일 수 있는 근거리 통신망(LAN)을 나타낼 수 있음을 이해해야 한다. 이러한 시나리오에서, 컴퓨팅 시스템(106)은 클라이언트 머신(104)의 동일한 지리적 위치에 또는 그 근처에 위치된 호스트 컴퓨팅 시스템을 나타낼 수 있다. 광역 통신망(WAN) 또는 LAN 구현예에서, 클라이언트 머신(104)은 클라이언트 머신(104) 자체에서 최소한의 데이터 처리로(예를 들어, 클라이언트 머신(104) 자체에서 비디오 게임(110)을 실행할 필요 없이) 컴퓨팅 시스템(106)에 대해 데이터를 전송 및 수신하도록 구성된 씬 클라이언트로 구현될 수 있다. 씬 클라이언트 구현예에서, 게임 제어 데이터(606) 및 센서 데이터(604)는 컴퓨팅 시스템(106)으로부터 수신될 수 있고, 컴퓨팅 시스템(106)은 이미지 데이터 및 오디오 데이터의 프레임을 클라이언트 머신(104)과 연관된 디스플레이에 나타내기 위해 클라이언트 머신(104)에 전송할 수 있다. 각 머신(104) 상의 클라이언트 애플리케이션이 비디오 게임(110)을 실행하는 구현예에서, 정보는 단계 4에서 클라이언트 머신(104)에서 실행되는 각 클라이언트 애플리케이션으로 전송되어 로그인한 해당 사용자 계정(120)으로 할당된 경기에서 클라이언트 머신(104)에서 비디오 게임(110)의 실행을 야기할 수 있다. 플레이어들이 기계 학습된 점수(118)에 적어도 부분적으로 기초하여 경기에 그룹화됨으로써, 시스템은 (예를 들어, 부정행위를 함으로써) 불량하게 행동할 것으로 예측된 플레이어들 - 비인간 플레이어(예를 들어, 부정행위하도록 설계된 소프트웨어)를 포함 - 을 함께 동일한 경기에 그룹화시킬 수 있기 때문에, 그룹의 플레이어들(102) 중 적어도 일부에 있어서는 게임 내 경험이 개선될 수 있으며, 이렇게 함으로써, 악행 플레이어들을, 비디오 게임(110)을 합법적으로 플레이하고자 하는 다른 플레이어들로부터 격리시킬 수 있다.
도 7은 핸드헬드 장치(602)에 의해 생성된 클라이언트 머신(104)으로부터 수신된 게임 제어 데이터(606)의 확률을 예측하기 위해 센서 데이터(604)를 포함하는 데이터를 사용하여 기계 학습 모델(들)(216)을 훈련하기 위한 예시적인 프로세스(700)의 흐름도이다. 논의를 위해, 프로세스(700)는 이전 도면을 참조하여 설명된다.
702에서, 컴퓨팅 시스템(106)은 사용자(102)에게 비디오 게임 서비스에 대한 액세스를 제공할 수 있다. 예를 들어, 컴퓨팅 시스템(106)은 사용자가 비디오 게임(110)의 카탈로그에 액세스 및 이를 브라우징하고, 사용자 프로파일을 수정하고, 거래를 수행하고, 소셜 미디어 활동에 참여하고, 기타 유사한 동작을 수행하게 할 수 있다. 컴퓨팅 시스템(106)은 비디오 게임 서비스의 일부로서 클라이언트 머신(104)에 비디오 게임(110)(및 그의 콘텐츠)을 배포할 수 있다. 예시적인 예에서, 비디오 게임 서비스에 액세스할 수 있는 사용자(102)는 설치된 클라이언트 애플리케이션을 로딩하고, 등록된 사용자 계정으로 로그인하고, 원하는 비디오 게임(110)을 선택하고, 비디오 게임(110)을 스트리밍하고, 비디오 게임(110)을 다운로딩하고, 클라이언트 머신(104) 또는 기타 적합한 게임 배포/실행 플랫폼에서 로컬로 게임을 실행함으로써 클라이언트 애플리케이션을 통해 자신의 클라이언트 머신(104)에서 비디오 게임(110)을 실행할 수 있다.
704에서, 컴퓨팅 시스템(106)은 비디오 게임 서비스에 등록된 사용자 계정(120)과 연관된 데이터를 수집하고 저장할 수 있다. 이러한 데이터는 적어도 본원에 설명된 센서 데이터(604)를 포함할 수 있지만, 본원에 설명된 데이터(114) 및 게임 제어 데이터(606)도 역시 포함할 수 있다. 이러한 데이터는, 예를 들어 사용자(102)가 그의 등록된 사용자 계정(120)으로 비디오 게임 서비스에 액세스하고 예를 들어 그 상에서 비디오 게임(110)을 플레이하기 위해 이러한 비디오 게임 플랫폼을 사용할 때, 임의의 적절한 시간에 블록 704에서 수집될 수 있다. 클라이언트 머신(104) 및/또는 핸드헬드 장치(602)에 의해 로컬에서 생성되는 데이터는 그 데이터가 (예를 들어, 클라이언트 머신(104)으로부터 실시간 스트리밍된 데이터를 수신함으로써) 생성됨에 따라 실시간으로 수집되고, 규정된 간격으로 수신되고, 그리고/또는 (예를 들어, 사용자 계정(120)이 비디오 게임을 종료할 때, 네트워크 대역폭이 데이터를 전송하기에 충분한 때 등) 이벤트에 응답할 수 있다. 시간이 지남에 따라, 등록된 사용자 계정(120)에 결부된 대량의 데이터 모음을 컴퓨팅 시스템(106)에서 사용할 수 있음을 알 수 있다.
706에서, 컴퓨팅 시스템(106)은, 훈련 구성요소(210)를 통해, 비디오 게임 서비스에 등록된 사용자 계정들(120)의 샘플링된 세트와 연관된 (이력) 센서 데이터(604)를 포함하는 (이력) 데이터에 액세스할 수 있다. (이력) 센서 데이터(604)는 비디오 게임(110)의 양태(들)를 제어하기 위하여 게임 제어 데이터(606)가 수신되었을 때 비디오 게임(110)에 의해 처리된 (이력) 게임 제어 데이터(606)와 함께 클라이언트 머신(104)으로부터 수신되었을 수 있다. 그러므로, (이력) 센서 데이터(604)는 동시에 생성된 대응하는 (이력) 게임 제어 데이터(606)와 상관될 수 있다. 일 예에서, 블록 706에서 액세스된 센서 데이터(604)는 사용자(102)가 비디오 게임 플랫폼에서 비디오 게임(110)을 플레이하기 위해 해당 핸드헬드 장치(602)를 조작함에 따라 핸드헬드 장치(602)의 하나 이상의 물리적 센서(610)에 의해 생성된 원시 센서 데이터(604)를 포함할 수 있다.
708에서, 컴퓨팅 시스템(106)은, 훈련 구성요소(210)를 통해, 인간 플레이어가 사용자 계정(120)과 연관된 (이력) 게임 제어 데이터(606)를 생성하기 위해 핸드헬드 장치(602)를 잡고 조작하는 동안 사용자 계정(120)과 연관된 (이력) 게임 제어 데이터(606)가 핸드헬드 장치(602)에 의해 생성되었는지 여부를 나타내는 라벨로, 샘플링된 세트의 사용자 계정들(120)의 각 사용자 계정(120)에 라벨링할 수 있다.
710에서, 컴퓨팅 시스템(106)은, 훈련 구성요소(210)를 통해, 훈련 데이터로서 본원에 설명된 바와 같이 (이력) 센서 데이터(604), 및 가능하게는 추가 데이터(예를 들어, (이력) 게임 제어 데이터(606), (이력) 무선 통신 데이터 등)를 사용하여 기계 학습 모델(들)(216)을 훈련시켜 훈련된 기계 학습 모델(들)(216)을 획득할 수 있다. 서브 블록 712로 나타낸 바와 같이, 블록 710에서 기계 학습 모델(들)(216)의 훈련은 기계 학습에 대한 가중치 설정을 포함할 수 있다. 이러한 가중치는 이력 센서 데이터(604)로부터 도출된 한 세트의 피쳐들에 적용될 수 있다. 일부 실시예에서, 블록 712에서 설정된 가중치는 기계 학습 모델(들)(예를 들어, 신경망의 은닉 층에서의 뉴런에 대한 가중치)의 내부에 있는 파라미터에 적용될 수 있다. 기계 학습 모델(들)(216)의 이러한 내부 파라미터는 한 세트의 피쳐들 중 개별 입력 피쳐들과 일대일로 매핑될 수 있거나, 혹은 매핑되지 않을 수도 있다. 블록 710부터 블록 704까지 화살표로 나타낸 바와 같이, 기계 학습 모델(들)(216)은 업데이트된 (이력) 센서 데이터(604)를 포함하는 업데이트된 (이력) 데이터를 사용하여 재훈련되어 최근 플레이어 행동에 적응되는 새로 훈련된 기계 학습 모델(216)을 획득할 수 있다. 이를 통해 기계 학습 모델(들)(216)은 시간이 지남에 따라 변화하는 플레이어 행동에 자동으로 적응할 수 있다.
도 8은 사용자 계정에 대한 신뢰 점수를 결정하기 위해 훈련된 기계 학습 모델(들)(216)을 이용하기 위한 예시적인 프로세스(800)의 흐름도로서, 신뢰 점수는 핸드헬드 장치(602)에 의해 생성된 게임 제어 데이터(606)의 확률에 관한 것이다. 논의를 위해, 프로세스(800)는 이전 도면을 참조하여 설명된다. 더 나아가, 도 7 및 도 8에서 오프 페이지 참조 "C"로 나타낸 바와 같이, 프로세스(800)는 프로세스(700)의 블록 710으로부터 계속될 수 있다.
802에서, 컴퓨팅 시스템(106)은 클라이언트 머신(들)(104)으로부터 게임 제어 데이터(606) 및 센서 데이터(604)를 수신할 수 있다. 게임 제어 데이터(606) 및 센서 데이터(604)는 비디오 게임 서비스에 로그인되고 등록된 사용자 계정(들)(120)과 연관될 수 있다. 게임 제어 데이터(606)는 비디오 게임(110)의 양태(들)를 제어하기 위해 비디오 게임(110)에 의해 처리될 데이터일 수 있다. 블록 802에서 수신된 센서 데이터(604)는 정전용량 값, 저항 값, 변위 값, 속도 값, 가속도 값, 온도 값, 습도 값 등을 이에 국한되지 않고 포함할 수 있다. 일부 실시예에서, 이러한 값은 핸드헬드 장치(602)의 실제 물리적 센서(610)에 의해 생성된다고 가정할 때 원시(예를 들어, 미필터링된, 미증폭된) 값을 나타낸다. 더 나아가, 블록 802에서 수신된 데이터의 일부 또는 전부는 암호화될 수 있다(예를 들어, 장치(602)는 원격 시스템(106)에 데이터를 전송하기 전에 개인 키(632)를 사용하여 데이터를 암호화할 수 있다).
804에서, 컴퓨팅 시스템(106)은 클라이언트 머신(들)(104)으로부터 생체 인식 데이터도 또한 수신할 수 있다. 예를 들어, 핸드헬드 장치(602)의 입력 장치(예를 들어, 터치 센서, 카메라, 마이크 등)는 핸드헬드 장치(602)의 사용자로부터 생체 인식 데이터를 획득할 수 있고, 핸드헬드 장치(602)는 획득된 생체 인식 데이터를 클라이언트 머신(104)으로 전송할 수 있고, 클라이언트 머신(104)은 생체 인식 데이터를 컴퓨터 네트워크(108)를 통해 원격 컴퓨팅 시스템(106)으로 전달할 수 있다. 이러한 생체 인식 데이터는 암호화된 데이터로도 수신될 수 있다(예를 들어, 장치(602)는 데이터를 원격 시스템(106)에 전송하기 전에 개인 키(632)를 사용하여 생체 인식 데이터를 암호화할 수 있다).
806에서, 컴퓨팅 시스템(106)은 개인 키(632) 및/또는 생체 인식 데이터를 평가할 수 있다. 서브 블록 808, 810, 및 812로 나타낸 바와 같이, 이러한 평가는 다양한 작업을 포함할 수 있다. 예를 들어, 원격 시스템(106)은 예상 개인 키(632)가 수신된 데이터를 암호화하는 데 사용되었음을 검증하기 위해 블록 802 및/또는 블록 804에서 수신된 임의의 암호화된 데이터를 해독할 수 있다. 서브 블록 808에서, 컴퓨팅 시스템(106)은 생체 인식 데이터 및/또는 개인 키(632)가 블록 802에서 수신된 게임 제어 데이터(606) 및 센서 데이터(604)와 연관된 사용자 계정(120)과 연관됨을 결정할 수 있다. 이는 생체 인식 데이터를 사용자 계정(120)과 연관된 생체 인식 데이터와 비교하고 및/또는 암호화된 데이터가 실제로 사용자 계정(120)과 연관된 개인 키(들)(632)를 사용하여 암호화되었음을 결정함으로써 결정될 수 있다.
서브 블록 810에서, 컴퓨팅 시스템(106)은 생체 인식 데이터가 데이터베이스(116)에 유지된 생체 인식 데이터와 일치한다는 결정 및/또는 개인 키(632)가 데이터베이스(116)에 유지되는 복수의 개인 키 중 하나와 일치한다는 결정을 할 수 있다. 데이터베이스(116)에 유지되는 생체 인식 데이터 및/또는 개인 키는 복수의 신뢰성 갖춘 핸드헬드 장치(602)와 연관될 수 있으므로, 암호화된 데이터로부터 파생된 개인 키(632)가 데이터베이스(116) 내의 개인 키들 중 하나와 일치하는 경우 및/또는 수신된 생체 인식 데이터가 데이터베이스(116) 내의 임의의 생체 인식 데이터와 일치하는 경우, 컴퓨팅 시스템(106)은 일치하는 데이터가 신뢰성 갖춘 핸드헬드 장치(602)로부터 전송되었음을 알고 신뢰를 위한 프록시로 사용할 수 있다.
서브 블록 812에서, 컴퓨팅 시스템(106)은 생체 인식 데이터 및/또는 개인 키(632)와 연관된 데이터를 결정할 수 있다. 예를 들어, 컴퓨팅 시스템(106)은 생체 인식 데이터 및/또는 개인 키(632)가 사용자 계정(120)과 연관되었던 시간의 길이를 결정할 수 있다. 컴퓨팅 시스템(106)은 추가적으로 또는 대안적으로 생체 인식 데이터 및/또는 개인 키(632)가 사용자 계정(120)과 함께 사용되었거나 이에 로그인하는 데 사용된 횟수를 결정할 수 있다. 컴퓨팅 시스템(106)은 추가적으로 또는 대안적으로, 예를 들어 제1 사용자 계정(120)으로부터 분리/등록 해제되고 이어서 제2 사용자 계정(120)과 연관/등록됨으로써, 개인 키(632)가 서로 다른 사용자 계정(120) 사이에서 전환된 횟수를 결정할 수 있다.
814에서, 컴퓨팅 시스템(106)은, 채점 구성요소(212)를 통해, 데이터를 훈련된 기계 학습 모델(들)(216)로의 입력으로 제공할 수 있다. 서브 블록 816, 818, 및 820으로 나타낸 바와 같이, 일부 실시예에서, 이는 블록 806에서 다양한 유형의 데이터를 훈련된 기계 학습 모델(들)(216)로의 입력으로 제공하는 것을 포함할 수 있다. 예를 들어, 서브 블록 816에서, 블록 802에서 수신된 센서 데이터(604)는 훈련된 기계 학습 모델(들)(216)로의 입력으로 제공될 수 있다. 서브 블록 818에서, 블록 802에서 수신된 게임 제어 데이터(606)는 훈련된 기계 학습 모델(들)(216)로의 추가 입력으로 제공될 수 있다. 서브 블록 820에서, 개인 키(632) 데이터 및/또는 생체 인식 데이터는 개인 키(632)의 값 및/또는 서브 블록 812에서 결정된 임의의 데이터와 같은 훈련된 기계 학습 모델(들)(216)로의 또 다른 추가 입력으로 제공될 수 있다. 일부 실시예에서, 무선 통신 데이터(예를 들어, 무선 신호 강도 데이터, 드롭된 데이터 패킷에 관한 데이터 등)는 블록 814에서 훈련된 기계 학습 모델(들)(216)로의 입력으로 제공될 수 있다. 일부 실시예에서, 본원에 설명된 데이터(114)는 블록 814에서 훈련된 기계 학습 모델(들)(216)로의 입력으로 제공될 수 있다. 일반적으로, 본원에 설명된 바와 같이 기계 학습 모델(들)(216)을 훈련시키는 데 사용된 한 세트의 피쳐들에 포함된 임의의 정량화 가능한 데이터는 훈련된 기계 학습 모델(들)(216)로의 입력으로 제공될 수 있다. 센서 데이터(604)가 모델(들)(216)로의 입력 데이터로 제공되는 실시예에서, 센서 데이터(604)는 해당 사용자 계정(120)을 채점하는 데 사용되는 미지의 입력을 구성한다.
822에서, 컴퓨팅 시스템(106)은, 채점 구성요소(212)를 통해, 훈련된 기계 학습 모델(들)(216)로부터의 출력으로서, 블록 802에서 수신된 게임 제어 데이터(606)와 연관된 사용자 계정(들)(120)과 연관된 신뢰 점수(118)를 생성할 수 있다. 점수(118)는 게임 제어 데이터(606)가 원격 컴퓨팅 시스템(106)에 게임 제어 데이터(606)를 전송한 클라이언트 머신(104)과 연관된 핸드헬드 장치(602)에 의해 생성된 확률과 관련된다. 이러한 점수(118)는 또한 소프트웨어(예를 들어, 에임봇)에 의해 합성 및/또는 수정된 것과는 대조적으로 "인간이 생성한" 게임 제어 데이터(606)의 확률과 관련된 것으로 생각할 수 있다. 점수(118)를 생성하기 위해 훈련된 기계 학습 모델(들)(216)에 입력될 수 있는 다양한 유형의 데이터 때문에, 점수(118)를 결정하는 것은 센서 데이터(604)에 적어도 부분적으로 기초하고, 게임 제어 데이터(606)에 적어도 부분적으로 기초하고, 개인 키가 데이터베이스(116) 내의 개인 키와 일치한다는 결정에 적어도 부분적으로 기초하고, 그리고/또는 개인 키(632)가 사용자 계정(120)과 연관되었던 시간의 길이에 적어도 부분적으로 기초하는 등으로 이루어질 수 있다. 일부 실시예에서, 점수(118)는 [0,1]의 범위에서 정규화되는 변수이다. 이러한 신뢰 점수(118)는 핸드헬드 장치(602)에 의해 생성된 게임 제어 데이터(606)의 확률과 단조로운 관계를 가질 수 있다. 점수(118)와 특정 행동과 연관된 실제 확률 간의 관계는 단조롭지만 선형 관계일 수도 있고 아닐 수도 있다.
따라서, 프로세스(800)는 기계 학습식 채점 접근법을 나타내며, 점수(118)(예를 들어, 신뢰 점수(118))는 사용자 계정(120)에 대해 결정되고, 점수는 핸드헬드 장치(602)에 의해 생성된 게임 제어 데이터(606)의 확률을 나타낸다. 따라서, 프로세스(800)에서 생성된 신뢰 점수(118)는 비디오 게임(110)을 플레이하기 위해 실제 핸드헬드 장치(602)를 사용함으로써 플레이어가 비부정행위 행동에 참여할 확률을 나타낼 수 있다. 이러한 채점 프로세스에서 기계 학습 모델(들)(216)의 사용은 인간 플레이어와 비인간 플레이어(예를 들어, 부정행위하기 위해 설계된 소프트웨어)의 구별을 가능하게 한다.
도 9는 핸드헬드 장치(602)에 의해 생성된 게임 제어 데이터(606)의 확률과 관련된 기계 학습된 신뢰 점수(118)에 기초하여 멀티플레이어 비디오 게임(110)의 상이한 경기에 사용자 계정(120)을 할당하기 위한 예시적인 프로세스(900)의 흐름도이다. 논의를 위해, 프로세스(900)는 이전 도면을 참조하여 설명된다. 더 나아가, 도 8 및 도 9에서 오프 페이지 참조 "D"로 나타낸 바와 같이, 프로세스(900)는 프로세스(800)의 블록 822로부터 계속될 수 있다.
902에서, 프로세스(800)에 따라 채점된 로그인한 사용자 계정(들)(120)에 대해, 컴퓨팅 시스템(106)은, 매치메이킹 구성요소(214)를 통해, 로그인한 사용자 계정(들)(120)을 다수의 경기(218) 중 할당된 경기(218)에 할당할 수 있고, 할당은 사용자 계정(들)(120)에 대해 생성되고 이와 연관된 기계 학습된 점수(들)(118)에 적어도 부분적으로 기초한다. 다수의 경기(218)는 인간 플레이어를 위해 지정된 적어도 하나의 경기(218(1)), 및 게임 제어 데이터(606)를 합성 및/또는 수정하기 위해 소프트웨어를 사용하는 것과 같은 비인간 플레이어를 위해 지정된 제2 경기(218(2))를 포함할 수 있다. 전술한 바와 같이, 블록 902에서 사용자 계정(120)에 추가 분류 및 추가 경기가 할당될 수 있도록 임의의 수의 경기가 규정될 수 있다. 예를 들어, 컴퓨팅 시스템(106)은, 매치메이킹 구성요소(214)를 통해, 수요, 용량, 및 매치메이킹 프로세스에 기여하는 기타 인자를 포함한 다양한 인자에 따라 플레이어들(102)이 비디오 게임(110)을 멀티플레이어 모드에서 플레이하도록 그룹화될 임의의 적합한 수의 경기를 규정할 수 있다.
서브 블록 904로 나타낸 바와 같이, 할당된 경기(들)에 대한 사용자 계정(120)의 할당은 임계 점수에 기초할 수 있다. 예를 들어, 매치메이킹 구성요소(214)는 로그인한 사용자 계정(들)(120)과 연관된 점수(들)(118)가 임계 점수 미만인 것으로 결정할 수 있고 그 점수(들)가 임계 점수 미만인 것에 기초하여 로그인한 사용자 계정(들)(120)을 비인간 플레이어를 위해 지정된 제2 경기(218(2))에 할당할 수 있다. 유사하게, 매치메이킹 구성요소(214)는 로그인한 사용자 계정(들)(120)과 연관된 점수(118)가 임계 점수 이상인 것으로 결정할 수 있고 그 점수(들)가 임계 점수 이상인 것에 기초하여 로그인한 사용자 계정(들)(120)을 인간 플레이어를 위해 지정된 제1 경기(218(1))에 할당할 수 있다. 이는 단지 경기 할당(124)을 제공하는 예시적인 방법일 뿐이며, 다른 기술이 고려된다. 예를 들어, 임계 점수의 사용에 추가로 또는 그에 대한 대안으로 클러스터링 알고리즘 또는 기타 통계적 접근법이 사용될 수 있다. 일 예에서, 신뢰 점수(118)는 "유사한" 신뢰 점수를 갖는 사용자 계정들(플레이어들)을 함께 우선적으로 매칭시키는 데 사용될 수 있다. 신뢰 점수(118)의 분포가 복수의 사용자 계정(120)에 걸쳐 대체로 이원화되는 자연스러운 경향을 고려할 때, 유사성 메트릭(예를 들어, 거리 메트릭, 분산 메트릭 등)에 기초하여 신뢰 점수들(118)을 함께 그룹화하는 것은 임계 점수를 사용하는 것과 유사한 결과를 제공할 수 있다. 그러나, 매치메이킹 목적을 위해 사용자 계정들을 함께 그룹으로 매칭하기 위해 유사성 메트릭을 사용하는 것은 매치메이킹 풀이 작은 경우(예를 들어, 덜 인기 있는 게임 모드를 플레이하려는 플레이어들이 작은 지리적 지역에 있는 경우)에 유용할 수 있는 데, 그 이유는, 숙련도와 같은, 기타 매치메이킹 인자에 대비되는 신뢰 점수의 상대적 중요성을 점진적으로 조정할 수 있게 하는 보다 세밀한 접근법을 제공할 수 있기 때문이다. 일부 실시예에서, 사용자 계정들(120)을 다수의 상이한 경기로 "분류하기" 위해 다수의 임계치가 사용될 수 있다.
서브 블록 906으로 나타낸 바와 같이, 신뢰 점수(118) 이외의 다른 인자들이 블록 902에서의 매치메이킹 할당(들)에서 고려될 수 있다. 예를 들어, 블록 902에서 결정된 경기 할당(들)(124)은 로그인한 사용자 계정과 연관된 플레이어의 숙련도, 로그인한 사용자 계정이 여러 경기 중 하나에 배치되기를 기다리는 시간, 로그인한 사용자 계정과 연관된 지리적 지역, 및/또는 기타 인자에도 추가로 기초할 수 있다.
서브 블록 908로 나타낸 바와 같이, 블록 902에서의 할당 작업은 제1 경기(218(1))에 현재 할당된 사용자 계정(120)이 제2 경기(218(2))에 재할당되거나 그 반대인 재할당 작업을 포함할 수 있다. 예를 들어, 서브 블록 908에서의 재할당은 사용자 계정(들)(120)에 대해 생성된 신뢰 점수(들)(118)에 기초하여 제1 경기(218)로부터 사용자 계정(들)(120)을 제거하고 제2 경기(218)에 사용자 계정(들)(120)을 재할당하는 것을 포함할 수 있다. 이는 비디오 게임이 플레이되는 동안 런타임에 신뢰 점수(118)가 발생할 수 있고, 플레이어가 예측되는 경우 게임을 플레이하는 도중에 플레이어(들)가 (예를 들어, "에임봇" 소프트웨어를 사용하여) 부정행위하는 기계 학습된 신뢰 점수(들)(118)에 기초하여 상당히 높은 확률로 재할당될 수 있음을 의미한다. 따라서, 멀티플레이어 비디오 게임(110)이 시작되기 전에 기계 학습된 신뢰 점수(118)에 기초하여 경기 할당이 이루어질 수 있지만, 컴퓨팅 시스템(106)은 게임플레이 중 임의의 적합한 시간에 신뢰 점수(118)를 재생성하여 플레이어가 다른 경기에 재할당되는지 여부를 결정할 수 있다.
910에서, 컴퓨팅 시스템(106)은 비디오 게임(110)을 플레이하기 위해 이용되는 클라이언트 머신(104)과 연관된 로그인한 사용자 계정(들)(120)으로 할당된 경기(들)(예를 들어, 제1 경기(218(1)) 또는 제2 경기(218(2)) 중 하나)에서 비디오 게임(110)의 실행을 야기할 수 있다. 예를 들어, 컴퓨팅 시스템(106)은 제1 신뢰 점수(118(1))와 연관된 제1 사용자 계정(120(1))에 대한 제1 경기(218(1))에서 비디오 게임(110)의 실행을 야기할 수 있고, 제2 신뢰 점수(118(2))와 연관된 제2 사용자 계정(120(2))에 대한 제2 경기(218(2))에서 비디오 게임(110)의 실행을 야기할 수 있다. 스트리밍 구현예에서, 비디오 게임(110)은 블록 910에서 원격 컴퓨팅 시스템(106)에서 실행될 수 있고, 클라이언트 머신(들)(104)으로 스트리밍될 수 있다. 다른 구현예에서, 원격 컴퓨팅 시스템(106)은 할당된 경기(들)에서 비디오 게임(110)을 실행하기 위해 클라이언트 머신(들)(104)에서 비디오 게임(110)을 실행하는 클라이언트 애플리케이션(들)에 제어 명령어를 제공할 수 있다.
기계 학습된 신뢰 점수(118)가 매치메이킹 프로세스의 한 인자로 사용되기 때문에, 비디오 게임을 플레이하고자 하는 방식으로 멀티플레이어 모드에서 플레이하기를 원하는 사용자에게 개선된 게임 경험을 제공할 수 있다. 그 이유는, 본원에 설명된 기술 및 시스템은, 불량하게 행동을 할(예를 들어, 소프트웨어를 사용하여 게임 제어 데이터(606)를 합성 및/또는 수정함으로써 부정행위를 할) 가능성이 있는 플레이어들(예를 들어, 비인간 플레이어)을 함께 매칭하여, 그 플레이어들을, 비디오 게임을 합법적으로 플레이할 가능성이 있는 다른 신뢰성 갖춘 플레이어들로부터 격리하는 데 사용될 수 있기 때문이다.
기술 요지는 구조적 특징부에 특정적인 언어로 설명되었지만, 첨부된 청구범위에 정의된 기술 요지가 반드시 기술된 특정 특징부로 한정되는 것은 아니라는 점을 이해해야 한다. 오히려, 특정 특징부는 청구범위를 구현하는 예시적인 형태로 개시된다.

Claims (20)

  1. 하나 이상의 프로세서에 의해 실행될 때 작업을 수행하게 하는 컴퓨터 실행 가능 명령어를 저장하는 하나 이상의 비일시적 컴퓨터 판독 가능 매체로서, 상기 작업은,
    비디오 게임 서비스에 등록된 사용자 계정과 연관된, 게임 제어 데이터 및 센서 데이터를 클라이언트 머신으로부터 수신하는 것;
    상기 센서 데이터를 훈련된 기계 학습 모델로의 입력으로 제공하는 것;
    상기 사용자 계정과 연관된 신뢰 점수로서, 상기 게임 제어 데이터가 상기 클라이언트 머신과 연관된 핸드헬드 게임 컨트롤러에 의해 생성되었을 확률과 관련되는, 신뢰 점수를 상기 훈련된 기계 학습 모델로부터의 출력으로 생성하는 것;
    상기 신뢰 점수에 적어도 부분적으로 기초하여, 상기 사용자 계정을 멀티플레이어 모드에서 비디오 게임을 플레이하기 위한 다수 경기 중 할당된 경기에 할당하는 것 - 상기 다수의 경기는 적어도 인간 플레이어를 위해 지정된 제1 경기 및 소프트웨어를 사용하여 합성되거나 수정된 게임 제어 데이터를 생성하는 비인간 플레이어를 위해 지정된 제2 경기를 포함함 -; 및
    상기 사용자 계정으로 상기 할당된 경기에서 상기 비디오 게임의 실행시키는 것을 포함하는, 하나 이상의 비일시적 컴퓨터 판독 가능 매체.
  2. 제1항에 있어서, 상기 센서 데이터는 상기 핸드헬드 게임 컨트롤러의 하나 이상의 물리적 센서에 의해 생성된 원시 센서 데이터를 포함하고, 상기 할당된 경기는 상기 인간 플레이어를 위해 지정된 상기 제1 경기인, 하나 이상의 비일시적 컴퓨터 판독가능 매체.
  3. 제1항에 있어서, 상기 게임 제어 데이터 또는 상기 센서 데이터 중 적어도 하나는 암호화된 데이터로서 수신되고, 상기 작업은,
    상기 암호화된 데이터를 해독하는 것;
    상기 암호화된 데이터를 암호화하는 데 사용된 개인 키가 상기 사용자 계정과 연관된다는 결정을 하는 것; 및
    상기 개인 키가 데이터베이스에 유지되는 복수의 개인 키 중 하나와 일치한다는 결정을 하는 것을 더 포함하고, 상기 복수의 개인 키는 복수의 신뢰성 갖춘 핸드헬드 게임 컨트롤러와 연관되고,
    상기 신뢰 점수의 생성은 상기 개인 키가 상기 복수의 개인 키 중 하나와 일치한다는 결정에 추가로 기초하는, 하나 이상의 비일시적 컴퓨터 판독가능 매체.
  4. 제1항에 있어서, 상기 사용자 계정을 할당된 경기에 할당하는 것은,
    상기 제1 경기로부터 상기 사용자 계정을 제거하는 것; 및
    상기 사용자 계정을 상기 제2 경기에 재할당하는 것을 포함하는, 하나 이상의 비일시적 컴퓨터 판독가능 매체.
  5. 방법으로서,
    컴퓨팅 시스템에 의해, 클라이언트 머신으로부터 게임 제어 데이터 및 센서 데이터를 수신하는 단계로서, 상기 게임 제어 데이터 및 상기 센서 데이터는 비디오 게임 서비스에 로그인한 사용자 계정과 연관되고, 상기 게임 제어 데이터는 비디오 게임의 양태를 제어하기 위해 상기 비디오 게임에 의해 처리되게 되는, 단계;
    컴퓨팅 시스템에 의해, 사용자 계정과 연관된 점수를 결정하는 단계로서,
    상기 센서 데이터를 훈련된 기계 학습 모델로의 입력으로서 제공함으로써; 그리고
    상기 클라이언트 머신과 연관된 핸드헬드 장치에 의해 생성된 상기 게임 제어 데이터의 확률을 나타내는 점수를 상기 훈련된 기계 학습 모델로부터의 출력으로 생성함으로써, 사용자 계정과 연관된 점수를 결정하는 단계;
    상기 점수에 적어도 부분적으로 기초하여, 다수의 경기 중 할당된 경기에 상기 사용자 계정을 할당하는 단계 - 상기 할당된 경기는 제1 경기 또는 제2 경기 중 적어도 하나를 포함함 -; 및
    상기 컴퓨팅 시스템에 의해, 상기 할당된 경기에서 상기 사용자 계정에 대해 비디오 게임을 실행시키는 단계를 포함하는, 방법.
  6. 제5항에 있어서, 상기 센서 데이터는 상기 핸드헬드 장치의 하나 이상의 물리적 센서에 의해 생성된 원시 센서 데이터를 포함하는, 방법.
  7. 제6항에 있어서, 상기 원시 센서 데이터는 원시 자이로스코프 데이터, 원시 가속도계 데이터, 또는 원시 용량성 센서 데이터 중 적어도 하나를 포함하는, 방법.
  8. 제6항에 있어서, 상기 핸드헬드 장치는 핸드헬드 게임 컨트롤러인, 방법.
  9. 제5항에 있어서, 상기 점수를 결정하기 전에,
    상기 컴퓨팅 시스템에 의해, 상기 비디오 게임 서비스에 등록된 사용자 계정들의 샘플링된 세트와 연관된 이력 센서 데이터로서, 상기 비디오 게임 또는 다른 비디오 게임에 의해 처리된 이력 게임 제어 데이터와 함께 상기 클라이언트 머신들로부터 수신된, 이력 센서 데이터에 액세스하여 상기 비디오 게임 또는 상기 다른 비디오 게임의 양태를 제어하는 단계;
    상기 샘플링된 세트의 사용자 계정들의 각 사용자 계정에, 인간 플레이어가 상기 사용자 계정과 연관된 상기 이력 게임 제어 데이터를 생성하기 위해 핸드헬드 장치를 잡고 조작하는 동안 상기 사용자 계정과 연관된 상기 이력 게임 제어 데이터가 상기 핸드헬드 장치에 의해 생성되었는지 여부를 나타내는 라벨로, 라벨링하는 단계; 및
    상기 이력 센서 데이터를 훈련 데이터로 사용하여 기계 학습 모델을 훈련시켜 훈련된 기계 학습 모델을 획득하는 단계를 더 포함하는, 방법.
  10. 제9항에 있어서, 상기 기계 학습 모델의 훈련은 기계 학습 모델 내부의 파라미터 또는 상기 이력 센서 데이터로부터 도출된 한 세트의 피쳐들 중 적어도 하나에 대한 가중치를 설정하는 단계를 포함하는, 방법.
  11. 제5항에 있어서, 상기 점수를 결정하는 단계는,
    상기 센서 데이터를 상기 훈련된 기계 학습 모델로의 입력으로 제공하는 것에 더하여, 상기 게임 제어 데이터를 상기 훈련된 기계 학습 모델로의 추가 입력으로 제공하는 단계를 더 포함하고,
    상기 점수는 상기 훈련된 기계 학습 모델로의 추가 입력으로 제공되는 상기 게임 제어 데이터에 적어도 부분적으로 기초하여 생성되는, 방법.
  12. 제5항에 있어서, 상기 게임 제어 데이터 또는 상기 센서 데이터 중 적어도 하나가 암호화된 데이터로 수신되고, 상기 방법은,
    상기 컴퓨팅 시스템에 의해, 상기 암호화된 데이터를 해독하는 단계;
    상기 컴퓨팅 시스템에 의해, 상기 암호화된 데이터를 암호화하는 데 사용된 개인 키가 상기 사용자 계정과 연관된다는 결정을 하는 단계; 및
    상기 컴퓨팅 시스템에 의해, 상기 개인 키가 데이터베이스에 유지되는 복수의 개인 키 중 하나와 일치한다는 결정을 하는 단계를 더 포함하고, 상기 복수의 개인 키는 복수의 신뢰성 갖춘 핸드헬드 장치와 연관되고,
    상기 점수의 결정은 상기 개인 키가 상기 복수의 개인 키 중 하나와 일치한다는 결정에 추가로 기초하는, 방법.
  13. 제12항에 있어서, 상기 개인 키가 상기 사용자 계정과 연관되었던 시간의 길이를 결정하는 단계를 더 포함하고, 상기 점수의 결정은 상기 시간의 길이에 추가로 기초하는, 방법.
  14. 제5항에 있어서, 상기 점수에 적어도 부분적으로 기초하여 상기 제1 경기 또는 상기 제2 경기 중 적어도 하나에 상기 사용자 계정을 할당하는 단계는 상기 점수가 임계 점수를 충족시키는지 여부를 결정하는 단계를 포함하는, 방법.
  15. 시스템으로서,
    하나 이상의 프로세서; 및
    컴퓨터 실행 가능 명령어를 저장하는 메모리를 포함하고, 상기 컴퓨터 실행 가능 명령어는 상기 하나 이상의 프로세서에 의해 실행될 때 상기 시스템으로 하여금,
    복수의 클라이언트 머신으로부터 게임 제어 데이터 및 센서 데이터를 수신하게 하고, - 상기 게임 제어 데이터 및 상기 센서 데이터는 비디오 게임 서비스에 등록된 복수의 사용자 계정 중 로그인한 사용자 계정들과 연관되고, 상기 게임 제어 데이터는 비디오 게임의 하나 이상의 양태를 제어하기 위해 상기 비디오 게임에 의해 처리되게 됨 -;
    로그인한 사용자 계정들에 대한 점수를 결정하게 하되,
    개별 사용자 계정과 연관된 상기 센서 데이터를 훈련된 기계 학습 모델로의 입력으로 제공함으로써; 그리고
    상기 개별 사용자 계정과 연관된 점수로서, 상기 개별 사용자 계정과 연관된 상기 게임 제어 데이터가 상기 복수의 클라이언트 머신 중 한 클라이언트 머신과 연관된 핸드헬드 장치에 의해 생성되었을 확률과 관련되는, 점수를 상기 훈련된 기계 학습 모델로부터의 출력으로 생성함으로써, 로그인한 사용자 계정에 대한 점수를 결정하게 하게 하고;
    상기 로그인한 사용자 계정들에 대해 결정된 상기 점수들에 적어도 부분적으로 기초하여 상기 로그인한 사용자 계정들의 제1 서브셋을 제1 경기에 할당하고 상기 로그인한 사용자 계정들의 제2 서브셋을 제2 경기에 할당하게 하고;
    상기 로그인한 사용자 계정들의 제1 서브셋에 대해 상기 제1 경기에서 비디오 게임을 실행하게 하고 상기 로그인한 사용자 계정들의 제2 서브셋에 대해 상기 제2 경기에서 비디오 게임을 실행하게 하는, 시스템.
  16. 제15항에 있어서, 상기 로그인한 사용자 계정들의 제1 서브셋과 연관된 상기 센서 데이터는 핸드헬드 장치의 하나 이상의 물리적 센서에 의해 생성된 원시 센서 데이터를 포함하는, 시스템.
  17. 제16항에 있어서, 상기 원시 센서 데이터는 원시 자이로스코프 데이터, 원시 가속도계 데이터, 또는 원시 용량성 센서 데이터 중 적어도 하나를 포함하는, 시스템.
  18. 제15항에 있어서, 상기 점수들 중 개별 점수는,
    상기 개별 사용자 계정과 연관된 상기 센서 데이터를 상기 훈련된 기계 학습 모델로의 입력으로 제공하는 것에 더하여, 상기 개별 사용자 계정과 연관된 상기 게임 제어 데이터를 상기 훈련된 기계 학습 모델로의 추가 입력으로 제공함으로써 추가로 결정되고,
    상기 개별 사용자 계정과 연관된 상기 점수는 상기 훈련된 기계 학습 모델로의 추가 입력으로 제공된 상기 개별 사용자 계정과 연관된 상기 게임 제어 데이터에 적어도 부분적으로 기초하여 생성되는, 시스템.
  19. 제15항에 있어서, 상기 게임 제어 데이터 또는 상기 센서 데이터 중 적어도 하나가 암호화된 데이터로서 수신되고, 상기 컴퓨터 실행 가능 명령어는 상기 하나 이상의 프로세서에 의해 실행될 때, 추가로, 상기 시스템으로 하여금,
    상기 암호화된 데이터를 해독하게 하고;
    상기 암호화된 데이터를 암호화하는 데 사용된 개인 키가 상기 로그인한 사용자 계정들 중 하나와 연관된다는 결정을 하게 하고;
    상기 개인 키가, 데이터베이스에 유지되며 복수의 신뢰성 갖춘 핸드헬드 장치와 연관된 복수의 개인 키 중 하나와 일치한다는 결정을 하게 하고,
    상기 로그인한 사용자 계정들 중 하나와 연관된 개별 점수는 상기 개인 키가 상기 복수의 개인 키 중 하나와 일치한다는 결정에 기초하여 추가로 결정되는, 시스템.
  20. 제19항에 있어서, 상기 컴퓨터 실행 가능 명령어는 상기 하나 이상의 프로세서에 의해 실행될 때, 추가로, 상기 시스템으로 하여금, 상기 개인 키가 상기 로그인한 사용자 계정들 중 하나와 연관되었던 시간 길이를 결정하게 하고, 상기 로그인한 사용자 계정들 중 하나와 연관된 상기 개별 점수는 상기 시간의 길이에 추가로 기초하는, 시스템.
KR1020227012335A 2019-10-24 2020-10-22 센서 데이터에 기초한 기계 학습식 신뢰 채점 KR20220081992A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/663,041 US11052311B2 (en) 2018-09-07 2019-10-24 Machine-learned trust scoring based on sensor data
US16/663,041 2019-10-24
PCT/US2020/056920 WO2021081248A1 (en) 2019-10-24 2020-10-22 Machine-learned trust scoring based on sensor data

Publications (1)

Publication Number Publication Date
KR20220081992A true KR20220081992A (ko) 2022-06-16

Family

ID=75620846

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227012335A KR20220081992A (ko) 2019-10-24 2020-10-22 센서 데이터에 기초한 기계 학습식 신뢰 채점

Country Status (5)

Country Link
EP (1) EP4025312A4 (ko)
JP (1) JP2022552878A (ko)
KR (1) KR20220081992A (ko)
CN (1) CN114630701A (ko)
WO (1) WO2021081248A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117537786B (zh) * 2024-01-09 2024-04-26 中国海洋大学 用于深海潜水器的多传感器快速接驳方法及装置、系统

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020187828A1 (en) * 2001-06-12 2002-12-12 Jamal Benbrahim Method and apparatus for securing gaming machine operating data
US7169050B1 (en) * 2002-08-28 2007-01-30 Matthew George Tyler Online gaming cheating prevention system and method
US7677970B2 (en) * 2004-12-08 2010-03-16 Microsoft Corporation System and method for social matching of game players on-line
US8221238B1 (en) * 2005-04-19 2012-07-17 Microsoft Corporation Determination of a reputation of an on-line game player
JP4765384B2 (ja) * 2005-04-21 2011-09-07 株式会社セガ ゲームシステム
US20100203960A1 (en) * 2005-07-20 2010-08-12 Wms Gaming Inc. Wagering game with encryption and authentication
US7976376B2 (en) * 2007-08-13 2011-07-12 Bally Gaming, Inc. Methods for providing amusement
US20100323794A1 (en) * 2009-06-18 2010-12-23 Yui-Zhang Su Sensor based human motion detection gaming with false positive detection
US9839838B1 (en) * 2013-05-14 2017-12-12 Take-Two Interactive Software, Inc. System and method for online community management
EP3259678B1 (en) * 2015-02-18 2021-03-31 OS - New Horizon Personal Computing Solutions Ltd. Device and systems to securely remotely access, manage and store an enterprise's data, using employees' mobile devices
US20170193845A1 (en) * 2015-12-30 2017-07-06 International Business Machines Corporation Detection of anomalous behavior in digital education settings based on portable device movement
US10319182B2 (en) * 2016-02-15 2019-06-11 Zynga Inc. Automatically identifying potentially fraudulent gaming accounts
US10207189B1 (en) * 2018-04-16 2019-02-19 Huuuge Global Ltd. System and method for determining type of player in online game
US11973745B2 (en) * 2018-12-04 2024-04-30 Journey.ai Performing concealed transactions using a zero-knowledge data management network

Also Published As

Publication number Publication date
JP2022552878A (ja) 2022-12-20
CN114630701A (zh) 2022-06-14
EP4025312A4 (en) 2023-09-20
EP4025312A1 (en) 2022-07-13
WO2021081248A1 (en) 2021-04-29

Similar Documents

Publication Publication Date Title
US11052311B2 (en) Machine-learned trust scoring based on sensor data
US20210154587A1 (en) Machine-learned trust scoring for player matchmaking
US10776476B2 (en) System, device, and method of visual login
US11741476B2 (en) Method, device, and system of detecting mule accounts and accounts used for money laundering
US10685355B2 (en) Method, device, and system of detecting mule accounts and accounts used for money laundering
US10949514B2 (en) Device, system, and method of differentiating among users based on detection of hardware components
US10032010B2 (en) System, device, and method of visual login and stochastic cryptography
US11717748B2 (en) Latency compensation using machine-learned prediction of user input
US8172675B2 (en) Personalization using a hand-pressure signature
US20170091450A1 (en) System, device, and method of detecting malicious automatic script and code injection
US20220350869A1 (en) User authentication method and device for executing same
US10279267B2 (en) Monitoring game activity to detect a surrogate computer program
KR20220081992A (ko) 센서 데이터에 기초한 기계 학습식 신뢰 채점
JP2015231482A (ja) プログラム及びゲームシステム
EP4375808A1 (en) Content control method and system
US11745101B2 (en) Touch magnitude identification as input to game