KR102125990B1 - 비공개 상태와 공개 상태 사이의 전환 - Google Patents

비공개 상태와 공개 상태 사이의 전환 Download PDF

Info

Publication number
KR102125990B1
KR102125990B1 KR1020197026070A KR20197026070A KR102125990B1 KR 102125990 B1 KR102125990 B1 KR 102125990B1 KR 1020197026070 A KR1020197026070 A KR 1020197026070A KR 20197026070 A KR20197026070 A KR 20197026070A KR 102125990 B1 KR102125990 B1 KR 102125990B1
Authority
KR
South Korea
Prior art keywords
message exchange
participants
likelihood
client
thread
Prior art date
Application number
KR1020197026070A
Other languages
English (en)
Other versions
KR20190108171A (ko
Inventor
산드로 푀즈
세바스티안 밀리우스
Original Assignee
구글 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 구글 엘엘씨 filed Critical 구글 엘엘씨
Publication of KR20190108171A publication Critical patent/KR20190108171A/ko
Application granted granted Critical
Publication of KR102125990B1 publication Critical patent/KR102125990B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • H04L51/16
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/216Handling conversation history, e.g. grouping of messages in sessions or threads
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/107Computer-aided management of electronic mailing [e-mailing]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/06Message adaptation to terminal or network requirements
    • H04L51/063Content adaptation, e.g. replacement of unsuitable content
    • H04L51/32
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/52User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail for supporting social networking services
    • H04L67/22
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/535Tracking the activity of the user

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Theoretical Computer Science (AREA)
  • Strategic Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • General Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Economics (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Evolutionary Computation (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Biology (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Mathematical Physics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

본 명세서는 일반적으로 메시지 및/또는 참여자 자신과 관련된 다양한 신호에 기초하여 애플리케이션들, 특히 사용자들 간의 메시지 교환을 가능하게 하는 애플리케이션을 비공개 상태로 및/또는 비공개 상태로부터 자동으로 전환하기 위한 기술에 관한 것이다. 다양한 구현예에서, 둘 이상의 개별 메시지 교환 클라이언트를 작동시키는 둘 이상의 참가자 간의 진행중인 메시지 교환 스레드가 검사될 수 있다. 그 검사에 적어도 부분적으로 기초하여, 진행중인 메시지 교환 스레드의 일부로서 참가자들 중 하나에 의해 그 참가자들 중 다른 참가자에게 향하는 메시지(들)가 둘 이상의 참가자들 중 적어도 주어진 참가자에 의해 비공개로 간주될 우도가 결정될 수 있다. 그 결정된 우도가 하나 이상의 임계치를 만족하는지 여부에 대한 결정이 이루어질 수 있고, 이에 응답하여, 메시지 교환 클라이언트들 중 하나 이상이 비공개 상태로 전환될 수 있다.

Description

비공개 상태와 공개 상태 사이의 전환
채팅, 이메일 교환, 문자 메시지 등과 같은 메시지 교환 스레드는 하나 이상의 참가자에게 민감할(sensitive) 수 있는(예를 들어, 기밀의) 정보를 포함할 수 있다. 메시지 교환 스레드의 참가자는 그 메시지 교환 스레드의 적어도 일부 컨텐츠가 (예를 들어, 로그(log)로) 유지되지 않거나 적어도 원래의 민감한 형태로 이용 가능하지 않기를 원할 수 있다. 사용자가 민감한 것으로 간주되는 활동에 참여하는 경우 많은 인터넷 애플리케이션은 사용자가 그 애플리케이션을 비공개 상태 (private state)(예를 들어, "오프 더 레코드(Off the Record)", "시크릿 모드 (Incognito mode)", "보호 모드(InPrivate)")로 전환(transition)할 수 있게 한다. 그러나, 이러한 전환은 대부분의 경우, 특히 채팅 클라이언트, 문자 메시지 클라이언트, 이메일 클라이언트 등과 같은 메시지 교환 클라이언트의 경우 사용자가 수동으로 개시해야 한다. 게다가, 사용자는 또한 애플리케이션을 비공개 상태로부터(out of the private state) 전환해야 하는데, 이것은 특히 메시지 교환 클라이언트에서 일반적으로 자동으로 발생하지 않는다. 결과적으로, 사용자가 기밀로 유지하기를 원하거나 전혀 유지되지 않기를 선호하는 정보는 사용자가 애플리케이션을 비공개 상태로 전환하는 것을 잊었기 때문에 (예를 들어, 메시지 교환 스레드의 전사로서 메시지 교환 로그에) 실수로 유지되거나 저장될 수 있다. 이 유지된 정보는 비승인 당사자들에게 잠재적으로 노출될 수 있다. 마찬가지로, 사용자가 채팅 클라이언트와 같은 애플리케이션을 비공개 상태에서 전환하는 것을 잊어 버린 경우, 사용자는 유지하고자 하는 컨텐츠를 실수로 잃을 수 있다.
본 명세서는 일반적으로 애플리케이션, 특히 사용자들 간 메시지 교환(예를 들어, 채팅 애플리케이션, 이메일 클라이언트, 메시지 교환 스레드를 용이하게 하는 웹 페이지와 같은 메시지 교환 클라이언트)을 가능하게 하는 애플리케이션을 메시지 및/또는 참가자와 관련된 다양한 신호에 기초하여 비공개 상태로 자동 전환하는 기술에 관한 것이다. 일단 비공개 상태에서, 민감한 것으로 간주되는 정보는 난독화(예를 들어, 이름 또는 다른 민감한 단어 또는 문구가 스크램블됨)될 수 있거나, 애플리케이션이 민감한 정보를 (예를 들어, 로그 또는 메시지 교환 스레드 전사에) 저장하는 것을 억제할 수 있다.
애플리케이션을 비공개 상태로(그리고 일부 경우 비공개 상태로부터) 자동으로 전환하는 것은 많은 장점이 있다. 이들은 사용자와 그들의 디바이스 사이에서 요구되는 상호 작용의 양을 감소시킴으로써 그러한 정보를 처리하는데 필요한 프로세싱을 감소시키는 것을 포함할 수 있다. 또한, 일부 경우에, 데이터는 저장되지 않거나 난독화되기 때문에 사용자 데이터의 보안이 향상될 수 있다.
다양한 구현예에서, 하나 이상의 참가자들 간의 진행중인 메시지 교환 스레드는 예를 들어, 개별 참가자들에 의해 작동되는 개별 메시지 교환 클라이언트에서 및/또는 메시지 교환 스레드를 용이하게 하는 하나 이상의 서버에서 중심적으로 검사될 수 있다. 그 검사에 기초하여, 진행중인 메시지 교환 스레드의 일부로서 참가자들 중 하나에 의해 다른 참가자에게 향하는 하나 이상의 메시지가 적어도 주어진 참가자에 의해 비공개로 간주될 우도(likelihood, 가능성)가 결정(계산)될 수있다. 이러한 우도는 다양한 신호에 기초하여 다양한 방식으로 결정될 수 있다.
일부 구현예에서, 우도는 하나 이상의 메시지 자체의 컨텐츠에 기초하여 결정될 수 있다. 예를 들어, 일부 구현예에서, 소정(certain) 문구들은 "프라이버시 트리거 문구들"로 분류될 수 있는데, 이는 감지될 때, 진행중인 메시지 교환 스레드의 참가자에 의해 작동되는 하나 이상의 메시지 교환 클라이언트로 하여금 비공개 상태로 전환되게 한다. 이들 프라이버시 트리거 문구에는 "오프 더 레코드(off the record)", "우리끼리 이것을 유지하자", "누구에게도 말하지 않겠다고 약속할 수 있어?"등과 같은 문구가 포함될 수 있다. 그러한 일부 구현예에서, 그러한 프라이버시 트리거 문구를 따르는(및 일부 경우에, 선행하는) 하나 이상의 메시지는, 예를 들어, 사용자가 메시지 교환 클라이언트를 비공개 상태로부터 수동으로 전환하거나 또는 토론 토픽(topic)이 덜 민감한 주제로 변경되었다는 것이 검출될 때까지는 유지되지 않을 수 있다.
다른 구현예에서, 특정 n-그램 또는 n-그램의 조합(그들이 인접한지 여부)은 비공개 상태로의 전환을 트리거하는데 사용될 수있다. 예를 들어, 사용자가 메시지 교환 스레드에, "빌이 $를 훔친 것이 적발되어 해고당했다고 들었어"라는 문장을 제공한다고 가정한다. "해고되다", "적발되다" 및 "훔치다"과 같은 N-그램은 단독으로 또는 조합하여, 비공개 상태로의 전환을 트리거할 수 있다. 일부 구현예에서, 엔티티 이름(예를 들어, "빌")과 조합된 하나 이상의 n-그램은 비공개 상태로의 전환을 트리거할 수 있다. 그러한 일부 구현예에서, 비공개 상태에 있을 때, 문장은 잠재적으로 사용자를 식별하는 n-그램을 더이상 사용할 수 없도록 그 문장이 (예를 들어, 메시지 교환 스레드의 전사의 일부로) 유지될 때 난독화(예를 들어, "\들었어*해고당했다고*돈을 훔치는 것이 발각되어")될 수 있다. 다른 구현예에서, 전체 문장은 수정되거나 단순히 메시지 교환 스레드 전사(transcript)에 저장되지 않을 수 있다.
부가적으로 또는 대안적으로, 일부 구현예에서, 하나 이상의 메시지 교환 참가자들과 관련된 하나 이상의 다른 신호들은 메시지 교환 스레드에서 교환된 하나 이상의 메시지가 적어도 하나의 참가자에 의해 비공개로 간주될 우도를 결정하는데 사용될 수 있다. 일부 구현예에서, 하나 이상의 메시지 교환 스레드 참가자와 관련된 이력 행동 또는 일부 경우 메시지 교환 스레드 참가자들(즉, 다른 메시지 교환 스레드들의 참가자들)과 관련된 이력 행동이 일반적으로 고려될 수 있다. 이력 행동은 예를 들어, 하나 이상의 참가자의 브라우징 이력, 하나 이상의 참가자에 의한 브라우저 비공개 상태의 이력 이용, 하나 이상의 참가자들에 의한 메시지 교환 클라이언트와 관련된 비공개 상태의 이력 이용 등을 포함할 수 있다. 예를 들어, 고용주-촉진(employer-facilitated) 메시지 교환 스레드내의 하나 이상의 고용인은 소정 주제가 고용주-촉진 메시지 교환 스레드의 일부로 논의될 때마다 그들의 개별 메시지 교환 클라이언트를 수동으로 비공개 상태로 전환한다고 가정한다. 다양한 구현예에서, 이들 고용인과 관련된 이러한 이력 행동은 "학습"되어 유사한 행동이 나중에 검출되어 비공개 상태로의 자동 전환이 트리거될 수 있다.
일부 구현예에서, 컨볼루션 신경망 모델들 및/또는 순환 신경망 모델들과 같은 하나 이상의 트레이닝된 기계 학습 모델이 메시지 교환 컨텐츠가 하나 이상의 참가자에 의해 비공개인 것으로 간주될 우도를 결정하기 위해 이용될 수 있다. 예를 들어, 기계 학습 모델은 메시지 교환 스레드 참여자들이 메시지 교환 클라이언트들을 비공개 상태로 수동 전환한 사례와 관련된 라벨링된 트레이닝 예제를 사용하여 트레이닝될 수 있다. 이들 트레이닝 예제의 특징은, 예를 들어, 메시지 교환 스레드에 포함된 n-그램(들), 메시지 교환 스레드에 포함된 문구(예를 들어, "너는 우리 사이에 이것을 유지할 수 있니?"), 문맥 큐(예를 들어, 참가자의 신원, 참가자의 위치), 하나 이상의 참가자와 관련된 이력 사용자 행동 등을 포함할 수 있다. 일단 기계 학습 모델이 트레이닝되면, 이것은 입력들이 주어지면, 하나 이상의 메시지 교환 스레드 참가자가 메시지 교환 스레드의 적어도 일부를 비공개로 간주할 우도를 결정하기 위해 복수의 입력에 대해, 예를 들어, 메시지 교환 클라이언트를 작동시키는 개별 컴퓨팅 디바이스에 적용되거나 또는 메시지 교환 스레드들을 용이하게 하는 중앙 노드들에 적용될 수 있다. 일부 구현예에서, 그러한 기계 학습 모델은 개별 참가자의 컴퓨팅 디바이스에 저장 및/또는 적용될 수 있다.
다양한 구현예에서, 특정 메시지 교환 스레드 참가자가 메시지 교환 스레드의 적어도 일부를 비공개로 간주할 우도는 하나 이상의 임계치와 비교될 수 있다. 예를 들어, 우도는 수치적으로 (예를 들어, 1~100, 0.0~1.0 등의 범위에서) 계산되어 일부 최소 임계치(예를 들어, 60, 0.7 등)와 비교될 수 있다. 우도가 최소 임계치를 초과하면, 메시지 교환 스레드 참가자에 의해 작동되는 메시지 교환 클라이언트는 비공개 상태로 전환될 수 있다. 일부 구현예에서, 참가자에게는 메시지 교환 클라이언트를 비공개 상태로 전환하기 위한 허가를 요청하는 프롬프트가 (예를 들어, 메시지 교환 클라이언트에 의해) 제공될 수 있다. 다른 구현예에서, 어떠한 허가도 요구될 수 없다. 또 다른 구현예에서, 우도 측정치가 제1 최소 임계치(예를 들어, 50, 0.5)을 만족하지만 예를 들어 그 임계치보다 높은 제2 임계치를 만족하지 않는 경우에만 비공개 상태로 전환하기 위한 허가가 요청될 수 있다.
단일 참가자의 메시지 교환 클라이언트만 비공개 상태로 전환되는 경우, 잠재적으로 비공개로 간주되는 메시지 교환 스레드 컨텐츠는 해당 참가자의 컴퓨팅 디바이스에 유지되지 않지만 다른 참가자의 컴퓨팅 디바이스들에 유지될 수 있다. 따라서, 일부 구현예에서, 단일 참가자의 메시지 교환 클라이언트가 비공개 상태로 천이하면, 해당 메시지 교환 클라이언트(또는 그 메시지 교환 스레드를 관리하는 중앙 클라우드 기반 컴포넌트와 같은 다른 컴포넌트)는 비공개 상태로 전환하도록다른 참가자의 메시지 교환 클라이언트들에 커맨드를 전송할 수 있다. 일부 구현예에서, 다른 참가자들에게는 (예를 들어, 각각의 메시지 교환 클라이언트에서) 예를 들어 이유에 대한 설명과 함께 비공개 상태로 진입하기 위한 허가가 프롬프트될 수 있다. 다른 구현예에서, 다른 참가자의 메시지 교환 클라이언트는 자동으로 비공개 상태로 전환될 수 있다.
일부 구현예에서, 하나 이상의 프로세서에 의해 수행되는 방법은, 하나 이상의 프로세서에 의해, 둘 이상의 개별 메시지 교환 클라이언트를 작동시키는 둘 이상의 참가자 사이에서 진행중인 메시지 교환 스레드를 검사하는 단계와, 하나 이상의 프로세서에 의해, 그 검사에 적어도 부분적으로 기초하여, 진행중인 메시지 교환 스레드의 일부로서 둘 이상의 참가자 중 하나에 의해 둘 이상의 참가자 중 다른 하나로 향하는 하나 이상의 메시지가 둘 이상의 참가자 중 적어도 주어진 참가자에 의해 비공개로 간주될 우도(likelihood)를 결정하는 단계와, 하나 이상의 프로세서에 의해, 상기 결정된 우도가 하나 이상의 임계치를 만족하는지 결정하는 단계와, 상기 결정된 우도가 하나 이상의 임계치를 만족한다는 결정에 응답하여 둘 이상의 메시지 교환 클라이언트 중 하나 이상을 비공개 상태로 전환(transit)시키는 단계를 포함한다.
이들 및 다른 구현예들은 선택적으로 다음 특징들 중 하나 이상을 포함할 수 있다. 다양한 구현예에서, 우도를 결정하는 단계는 진행중인 메시지 교환 스레드의 일부를 형성하는 하나 이상의 메시지의 컨텐츠에 적어도 부분적으로 기초할 수 있다. 다양한 구현예에서, 우도를 결정하는 단계는 주어진 참가자와 관련된 이력 사용자 행동에 더 기초할 수 있다. 다양한 구현예에서, 이력 사용자 행동은 주어진 참가자의 브라우징 이력을 포함할 수 있다. 다양한 구현예에서, 이력 사용자 행동은 웹 브라우저와 관련된 비공개 상태의 주어진 참가자에 의한 이력 이용을 더 포함할 수 있다. 다양한 구현예에서, 이력 사용자 행동은 메시지 교환 클라이언트와 관련된 비공개 상태의 주어진 참가자에 의한 과거 이용을 포함할 수 있다.
다양한 구현예에서, 우도를 결정하는 단계는 진행중인 메시지 교환 스레드에서 둘 이상의 참가자와 관련된 이력 행동에 더 기초할 수 있다. 다양한 구현예에서, 우도를 결정하는 단계는 진행중인 메시지 교환 스레드 외부의 복수의 메시지 교환 스레드에서 복수의 참가자와 관련된 이력 행동에 더 기초할 수 있다. 다양한 구현예에서, 복수의 메시지 교환 스레드에서 복수의 참가자와 관련된 이력 행동은, 복수의 메시지 교환 스레드에서 교환된 하나 이상의 메시지의 컨텐츠와 복수의 참가자 중 하나 이상에 의한 비공개 상태로의 개별 메시지 교환 클라이언트의 수동 전환 사이의 하나 이상의 연관성(associations)을 포함할 수 있다.
다양한 구현예에서, 우도를 결정하는 단계는 신경망 모델을 통해 주어진 참가자와 관련된 복수의 입력을 적용하는 단계를 포함할 수 있고, 신경망 모델은 복수의 입력에 기초하여, 우도를 포함하는 출력을 제공하도록 트레이닝된다. 다양한 구현예에서, 신경망 모델은 진행중인 메시지 교환 스레드에 참여하기 위해 주어진 참가자가 사용하는 컴퓨팅 디바이스에 저장될 수 있다. 다양한 구현예에서, 신경망 모델은 주어진 참가자에 의해 사용되는 컴퓨팅 디바이스로 다운로드되고, 신경망 모델은 진행중인 메시지 교환 스레드 외부의 복수의 메시지 교환 스레드로부터 획득된 트레이닝 예제를 사용하여 트레이닝될 수 있다.
다양한 구현예에서, 상기 방법은, 둘 이상의 메시지 교환 클라이언트의 제1 메시지 교환 클라이언트로부터 그 둘 이상의 메시지 교환 클라이언트의 제2 메시지 교환 클라이언트로, 제2 메시지 교환 클라이언트가 비공개 상태로 천이되게 하는 커맨드를 전송하는 단계를 더 포함하고, 상기 전송은 결정된 우도가 하나 이상의 임계치를 만족시킨다는 결정에 응답하여 수행된다. 이와 같이, 제1 클라이언트는 제2 클라이언트가 비공개 상태로 전환하도록 제어함으로써 제2 클라이언트에서의 사용자 상호 작용을 감소시킬 수 있고, 또한 각 클라이언트와 관련하여, 클라이언트가 비공개 상태로 전환해야하는지의 여부는 결정해야할 필요성이 잠재적으로 제거될 수 있다. 대신에, 그 결정은 제1 클라이언트에 대해서만 수행될 수 있으며, 제2 클라이언트도 해당 결정에 기초하여 제어된다. 이것은 전체 처리를 줄일 수 있다. 다양한 구현예에서, 비공개 상태에서, 둘 이상의 메시지 교환 클라이언트 중 하나 이상은 진행중인 메시지 교환 스레드의 일부로서 교환된 메시지의 로그의 적어도 일부를 난독화할 수 있다. 다양한 구현예에서, 비공개 상태에서, 둘 이상의 메시지 교환 클라이언트 중 하나 이상은 진행중인 메시지 교환 스레드의 일부로서 교환된 메시지의 로그를 업데이트하는 것을 적어도 일시적으로 억제할 수 있다.
다양한 구현예에서, 상기 방법은 둘 이상의 메시지 교환 클라이언트의 주어진 메시지 교환 클라이언트에 의해 상기 우도가 하나 이상의 임계치를 만족한다는 결정에 응답하여, 상기 주어진 메시지 교환 클라이언트를 비공개 상태로 전환하기 위한 허가를 요청하는 프롬프트를 제공하는 단계를 더 포함할 수 있다.
또한, 일부 구현예는 하나 이상의 컴퓨팅 디바이스의 하나 이상의 프로세서를 포함하고, 하나 이상의 프로세서는 관련 메모리에 저장된 명령들을 실행하도록 동작 가능하고, 상기 명령들은 전술한 방법 중 임의의 방법의 성능을 발생하도록 구성된다. 일부 구현예는 전술한 방법들 중 임의의 것을 수행하기 위해 하나 이상의 프로세서에 의해 실행 가능한 컴퓨터 명령들을 저장하는 적어도 하나의 비-일시적 컴퓨터 판독 가능 저장 매체를 포함한다.
본 명세서에서 더 상세하게 설명된 전술한 개념 및 추가 개념의 모든 조합은 본 명세서에 개시된 주제의 일부인 것으로 고려된다는 것을 이해해야 한다. 예를 들어, 본 발명의 끝에 나타나는 청구된 주제의 모든 조합은 본 명세서에 개시된 주제의 일부인 것으로 고려된다.
도 1은 본 명세서에 기술된 구현예들이 구현될 수 있는 예시적인 환경의 도면이다.
도 2는 애플리케이션 전환을 비공개 상태로 트리거링하는데 있어서 도 1의 예시적인 환경의 컴포넌트들을 사용하는 예를 도시한다.
도 3은 하나 이상의 기계 학습 모델을 트레이닝시키기데 있어서 도 1의 예시적인 환경의 컴포넌트들을 사용하는 예를 도시한다.
도 4a 및 4b는 예시적인 클라이언트 디바이스 및 비공개 상태가 자동으로 트리거될 수 있는 방법의 하나 이상의 예를 도시한다.
도 4c는 부분적으로 난독화된 메시지 교환 스레드 전사의 예를 도시한다.
도 5는 본 명세서에 개시된 구현예들에 따라 애플리케이션을 비공개 상태로 자동 전환하는 예시적인 방법을 도시한 흐름도이다.
도 6은 컴퓨팅 디바이스의 예시적인 아키텍처를 도시한다.
도 1에는 본 명세서에 개시된 기술이 구현될 수 있는 예시적인 환경이 도시되어 있다. 예시적인 환경은 그 환경 내의 다양한 컴포넌트들 간의 통신을 용이하게 하는 통신 네트워크(101)를 포함한다. 일부 구현예에서, 통신 네트워크(101)는 인터넷, 하나 이상의 인트라넷 및/또는 하나 이상의 버스 서브 시스템을 포함할 수 있다. 통신 네트워크(101)는 하나 이상의 표준 통신 기술, 프로토콜 및/또는 프로세스간 통신 기술을 선택적으로 이용할 수 있다.
예시적인 환경은 또한 하나 이상의 클라이언트 디바이스(1061-N), 전자 통신 시스템(110), 프라이버시 상태 시스템(120), 트레이닝 엔진(135) 및 트레이닝 예제 (examples) 엔진(137)을 포함한다. 예시적인 환경은 사용자 데이터(158), 트레이닝 예제(152) 및 기계 학습 모델(들)(156)을 더 포함한다. 사용자 데이터(158), 트레이닝 예제(152) 및 기계 학습 모델(들)(156)은 각각 하나 이상의 대응하는 컴퓨터 판독 가능 매체에 저장될 수 있다.
클라이언트 디바이스(들)(1061-N)의 일부 비-제한적인 예는 데스크탑 컴퓨팅 디바이스, 랩탑 컴퓨팅 디바이스, 태블릿 컴퓨팅 디바이스, 휴대 전화 컴퓨팅 디바이스, 차량의 컴퓨팅 디바이스(예를 들어, 차량 내 통신 시스템, 차량 내 엔터테인먼트 시스템, 차량 내비게이션 시스템), 독립형 대화식 스피커(예를 들어, 소위 "스마트 스피커"), 또는 컴퓨팅 디바이스를 포함하는 웨어러블 장치(예를 들어, 컴퓨팅 디바이스를 갖는 시계, 컴퓨팅 디바이스를 갖는 안경, 가상 또는 증강 현실 컴퓨팅 디바이스) 중 하나 이상을 포함한다. 추가 및/또는 대체 클라이언트 디바이스들이 제공될 수 있다. 본 명세서의 다양한 예에 대해, 클라이언트 디바이스(1061)는 제1 사용자의 클라이언트 디바이스, 클라이언트 디바이스(IO62)는 제2 사용자의 클라이언트 디바이스, 클라이언트 디바이스(IO63)는 제3 사용자의 클라이언트 디바이스인 것으로 가정될 것이다. 그러나, 프라이버시 상태 시스템(120)은 주어진 사용자의 클라이언트 디바이스들의 조정된 "생태계"를 형성하는 주어진 사용자의 복수의 클라이언트 디바이스 및/또는 다른 전자 디바이스들 각각과 인터페이스할 수 있다는 것을 이해할 수 있다. 예를 들어, 본 명세서에 기술된 바와 같이, 프라이버시 상태 시스템(120)에 의해 이용되는 사용자 데이터(158)는 클라이언트 디바이스(IO61)에 기초한 센서 기반 데이터 및/또는 다른 데이터뿐만 아니라 클라이언트 디바이스(IO61)의 사용자의 다른 전자 디바이스들에 기초한 다른 데이터를 포함할 수 있다. 그러나, 간결함을 위해, 본 발명에서 기술된 일부 예는 대응하는 사용자의 단일 클라이언트 디바이스에 중점을 둘 것이다.
전자 통신 시스템(110), 프라이버시 상태 시스템(120) 및/또는 엔진(135 및/또는 137)은 예를 들어 네트워크(예를 들어, 네트워크(101) 및/또는 다른 네트워크)를 통해 통신하는 하나 이상의 컴퓨팅 디바이스에서 각각 구현될 수 있다. 전자 통신 시스템(110), 프라이버시 상태 시스템(120) 및 엔진(135 및 137)은 본 명세서에 기술된 시스템 및 기술이 구현될 수 있고 및/또는 본 명세서에 기술된 시스템 및 기술이 인터페이스할 수 있는 예시적인 컴포넌트이다. 이들은 데이터 및 소프트웨어 애플리케이션의 저장을 위한 하나 이상의 메모리, 데이터를 액세스하고 애플리케이션을 실행하기 위한 하나 이상의 프로세서, 및 네트워크를 통한 통신을 용이하게 하는 다른 컴포넌트를 포함할 수 있다. 일부 구현예에서, 전자 통신 시스템(110), 프라이버시 상태 시스템(120) 및/또는 엔진(135 및/또는 137)은 도 6의 예시적인 컴퓨팅 디바이스의 하나 이상의 컴포넌트를 포함할 수 있다. 전자 통신 시스템(110), 프라이버시 상태 시스템(120) 및/또는 엔진(135 및/또는 137)에 의해 수행되는 동작들은 하나 이상의 클라이언트 디바이스(106)상에서 전적으로 또는 부분적으로 수행하는 것을 포함하여 다수의 컴퓨터 시스템에 걸쳐 분산될 수 있다.
일부 구현예에서, 전자 통신 시스템(110), 프라이버시 상태 시스템(120) 및/또는 엔진(135 및/또는 137) 중 하나 이상의 하나 이상의 양태는 단일 시스템으로 결합될 수 있고 및/또는 하나 이상의 양태는 하나 이상의 클라이언트 디바이스(들)(1061-N) 상에 구현될 수 있다. 예를 들어, 클라이언트 디바이스(1061)는 프라이버시 상태 시스템(120)의 하나 이상의 양태의 인스턴스를 포함할 수 있고, 추가 클라이언트 디바이스(들)(1062-N) 각각은 또한 프라이버시 상태 시스템(120)의 하나 이상의 양태의 인스턴스를 포함할 수 있다. 다른 예로서, 클라이언트 디바이스(들)(1061-N) 각각은 전자 통신 시스템(110)의 인스턴스를 각각 포함할 수 있다(예를 들어, 전자 통신 시스템(110)은 각 디바이스에 설치되어 실행되는 애플리케이션 일 수 있다). 또 다른 예로서, 전자 통신 시스템(110)과 프라이버시 상태 시스템(120)의 하나 이상의 양태는 결합될 수 있다.
전자 통신 시스템(110)은 클라이언트 디바이스들 사이에서 하나 이상의 유형의 전자 통신의 교환과 관련된 하나 이상의 원격 서버 및/또는 하나 이상의 클라이언트-측(side) 애플리케이션(종종 본 명세서에서 "메시지 교환 스레드"로 지칭됨)을 포함할 수 있다. 메시지 교환 스레드에서 교환될 수 있는 전자 통신의 유형은 예를 들어, 이메일, RCS(Rich Communication Services) 메시지, SMS(Short Message Service) 메시지, MMS(Multimedia Messaging Service) 메시지, OTT(Over-the-Top) ( OTT) 채팅 메시지, 소셜 네트워킹 메시지, 가청 통신(예를 들어, 전화 통화), 오디오-비디오 통신 등을 포함한다. 일 예로서, 전자 통신 시스템(110)은 다양한 클라이언트 디바이스(106) 사이에서 메시지 교환 스레드를 관리하는 하나 이상의 원격 서버를 포함할 수 있고, 이러한 다양한 클라이언트 디바이스(106)는 선택적으로 각각 대응하는 메시지 교환 클라이언트(107)를 포함할 수 있다. 다른 예로서, 전자 통신 시스템(110)은 대응하는 클라이언트 디바이스상에서 동작하는 클라이언트 측 애플리케이션을 통해서만 구현될 수 있다.
프라이버시 상태 시스템(120)의 예는 클라이언트 디바이스(1061)의 사용자와 관련하여 본 명세서에서 설명될 것이다. 사용자들이 일반적으로 메시지 교환 스레드에서 참가자에게 클라이언트 디바이스(106)(예를 들어, 1061,...)를 작동시킬 때, 이들 사용자는 메시지 교환 스레드 "참가자"로 지칭될 수 있다. 일부 구현예에서, 프라이버시 상태 시스템(120)은 클라이언트 디바이스(1061)상에서 전적으로 또는 부분적으로 구현될 수 있다. 일부 구현예에서, 프라이버시 상태 시스템(120)의 컴포넌트들 중 하나 이상은 클라이언트 디바이스(1061)로부터 원격인 하나 이상의 서버에 부가적으로 또는 대안적으로 구현될 수 있다. 예를 들어, 하나 이상의 컴포넌트가 전자 통신 시스템(110)의 원격 서버 상에 구현될 수 있다.
다양한 구현에서, 프라이버시 상태 시스템(120)은 데이터 엔진(122), 프라이버시 우도(likelihood) 엔진(124), 프라이버시 전환 엔진(126) 및/또는 피드백 엔진(132)을 포함할 수 있다. 일부 구현예에서, 엔진(122, 124, 126 및/또는 132)의 양태는 프라이버시 상태 시스템(120)과 별개인 컴포넌트에서 생략, 결합 및/또는 구현될 수 있다.
데이터 엔진(122)은 메시지 교환 스레드 참가자가 진행중인 메시지 교환 스레드의 컨텐츠가 민감한 것으로 간주할 우도(likelihood)를 결정하는데 사용하기 위해 사용자 데이터(158)를 선택한다. 일부 구현에에서, 사용자 데이터(158)는 클라이언트 디바이스(IO61)의 센서들 및/또는 참가자의 다른 전자 디바이스(들)로부터의 출력에 기초하여 생성되는 센서-기반 데이터를 포함한다. 일부 구현예에서, 사용자 데이터(158)는 클라이언트 디바이스(IO61) 및/또는 참가자의 다른 전자 디바이스(들)를 통한 참가자 활동에 기초하여 생성된 컴퓨터-기반 액션 데이터를 추가로 또는 대안적으로 포함한다. 일부 구현예에서, 사용자 데이터(158)는 참가자와 관련된 이력 행동(historical behavior)을 나타내는 이력 데이터를 추가로 또는 대안적으로 포함한다. 일부 구현예에서, 이러한 이력 행동은 참가자의 브라우징 이력, 웹 브라우저와 같은 애플리케이션과 관련된 비공개 상태(private state)의 참가자에 의한 이용, 채팅 이력 및/또는 메시지 교환 클라이언트(107)와 관련된 비공개 상태의 참가자에 의한 이력적 이용을 포함할 수 있다.
일부 구현예에서, 사용자 데이터(158)는 복수의 사용자(또는 메시지 교환 스레드 참가자)와 연관된 집합 데이터(aggregate data)를 포함할 수 있다. 예를 들어 일부 구현예에서, 집합 사용자 데이터는 진행중인 메시지 교환 스레드의 둘 이상의 참가자 및/또는 진행중인 메시지 교환 스레드 외부의 복수의 메시지 교환 스레드의 복수의 참가자와 관련된 이력 행동을 나타낼 수 있다. 일부 구현예에서, 복수의 메시지 교환 스레드에서 복수의 참가자와 관련된 이력 행동은 복수의 메시지 교환 스레드들에서 교환된 하나 이상의 메시지의 컨텐츠 및 복수의 참가자 중 하나 이상에 의해, 비공개 상태로의 개별 메시지 교환 클라이언트의 수동 전환 사이의 하나 이상의 연관(associations)을 포함할 수 있다. 본 명세서에 기술되는 바와 같이, 클라이언트 디바이스(IO61)의 사용자(즉, 참가자)는 사용자 데이터(158)가 데이터 엔진(122) 및/또는 프라이버시 상태 시스템(120)의 다른 컴포넌트에 액세스 가능한지 여부 및/또는 어느 사용자 데이터(158)가 데이터 엔진(122) 및/또는 프라이버시 상태 시스템(120)의 다른 컴포넌트에 액세스 가능한지를 제어할 수 있는 기회를 제공한다.
센서 기반 데이터는 예를 들어 GPS(global position system) 센서, 가속도계, 마이크로폰, 카메라, 자이로스코프 및/또는 다른 센서(들)로부터의 출력에 기초하여 생성될 수 있다. 센서 기반 데이터는 원시(raw) 센서 데이터(예를 들어, 센서로부터 수신된 출력)를 포함할 수 있고 및/또는 하나 이상의 센서로부터의 출력에 기초하여 결정된 일반화된 센서 데이터를 포함할 수 있다. 예를 들어, 센서 기반 데이터는 마이크로폰으로부터의 원시 오디오 데이터를 포함할 수 있고 및/또는 그 원시 오디오 데이터의 일반화(들)를 포함할 수 있다. 원시 오디오 데이터의 일반화(들)는, 예를 들어, 시간 기간에 따른 평균(및/또는 다른 통계적 측정치) 데시벨 레벨, 데이터를 분류기에 적용하는 것에 기초한 원시 오디오 데이터의 분류(들)(예를 들어, "시끄러운", "조용한", "음악" 등과 같은 분류(들))을 포함할 수 있다. 다른 예로서, 센서 기반 데이터는 원시 GPS 데이터를 추가로 또는 대안적으로 포함할 수 있고 및/또는 그 GPS 데이터의 일반화(들)를 포함할 수 있다. GPS 데이터의 일반화(들)는 예를 들어 GPS 데이터에 의해 표시된 위치(예를 들어, 식당, 영화관, 운동 시설), GPS 데이터에 의해 표시된 특정 위치(예를 들어, 식당 A, 영화 A) 등의 분류를 포함할 수 있다. 또 다른 예로서, 센서 기반 데이터는 추가로 또는 대안적으로 원시 가속도계 데이터 및/또는 이러한 데이터의 일반화(들)를 포함할 수 있다. 원시 가속도계 데이터의 일반화(들)는 가속도계로부터의 데이터에 기초한 평균(및/또는 다른 통계적 측정치) 속도, 데이터를 분류기에 적용하는 것에 기초한 활동의 분류(예를 들어, "달리기", "걷기", "고정(stagnant)"과 같은 분류(들))등을 포함할 수 있다.
클라이언트 디바이스(IO61) 및/또는 사용자의 다른 전자 디바이스(들)를 통한 사용자 활동들에 기초하여 생성된 컴퓨터 기반 액션 데이터는 예를 들어, 디바이스(들)를 통해 생성된 캘린더 항목들 및/또는 다른 전자 문서; 그 디바이스(들)를 통해 상호 작용(예를 들어 방문)하는 문서(들); 그 디바이스(들)를 통해 현재 또는 최근에 이용된 애플리케이션(들); 그 디바이스(들)를 통해 현재 또는 최근에 이용된 애플리케이션(들)의 상태(들); 최근 시간 기간 동안 소비된 평균(또는 다른 통계적 측정치) 프로세싱 파워를 포함할 수 있다.
프라이버시 우도 엔진(124)은 데이터 엔진(122)에 의해 선택된 데이터를 이용하여, 특정 메시지 교환 스레드 참가자(예를 들어, 클라이언트 디바이스(IO61)의 사용자)가 진행중인 메시지 교환 스레드의 컨텐츠가 민감한 것으로 간주할 우도를 결정한다. 프라이버시 우도 엔진(124)에 의해 결정된 우도는 사용자 데이터(158) 및 메시지 교환 스레드 컨텐츠에 의존할 것이다. 다양한 구현예에서, 프라이버시 우도 엔진(124)은 데이터 엔진(122)으로부터 "프레시(fresh)" 데이터를 연속적으로, 주기적으로 또는 다른 규칙적 및/또는 비규칙적으로 수신하여, 메시지 교환 스레드 참여자가 진행중인 메시지 교환 스레드의 컨텐츠가 민감한 것으로 간주할 우도의 동적 결정을 가능하게 할 수 있다. 일부 구현예에서, 프라이버시 우도 엔진(124)은 데이터를 하나 이상의 기계 학습 모델(들)(156)의 입력으로 적용하고, 그 입력에 기초하여 기계 학습 모델(들)(156)을 통해 출력을 생성하고, 그 생성된 출력에 기초하여 우도를 결정한다.
프라이버시 전환 엔진(126)은 하나 이상의 클라이언트 디바이스(106)상에서 동작하는 하나 이상의 애플리케이션을 소위 "비공개 상태"로 및/또는 비공개 상태로부터(out of private state) 전환하도록 구성할 수 있다. 본 명세서에서 사용되는 바와 같이, 애플리케이션의 "비공개 상태"는 애플리케이션이 그 애플리케이션의 동작과 관련된 다양한 정보가 보호, 난독화 또는 단순히 유지되지 않도록 보장하기 위해 다양한 조치를 취하는 애플리케이션 상태를 지칭한다. 예를 들어, 웹 브라우저가 비공개 상태로 전환될 때, 웹 브라우저는 비공개 상태에 있는 동안 웹 브라우저에 의해 방문되거나 액세스된 웹 사이트 또는 다른 네트워크 리소스의 이력을 저장하는 것을 억제할 수 있다. 부가적으로, 웹 브라우저는 비공개 상태에 있는 동안 쿠키, 사용자 크리덴셜 등과 같은 정보를 저장하는 것을 억제할 수 있다.
메시지 교환 클라이언트 애플리케이션(1071-N)의 컨텍스트에서, 비공개 상태는 메시지 교환 클라이언트(107)가 메시지 교환 스레드의 하나 이상의 참가자들 사이 및/또는 메시지 교환 스레드의 참가자와 소위 "자동화 어시스턴트"사이에서 교환된 메시지들을 저장, 난독화 및/또는 필터링하는 것을 억제하는 상태를 지칭할 수 있다. "자동화 어시스턴트"는, 예를 들어, 타이핑된 텍스트 또는 (텍스트로 변환될 수 있는) 발화 입력을 사용하여 사용자가 대화식으로 상호 작용할 수 있는 소프트웨어 프로세스를 지칭할 수 있다. 예를 들어, 독립형 대화식 스피커 형태의 클라이언트 디바이스들(106)는 사용자가 질문을 요청하고(예를 들어, 문서를 검색하고, 정보를 찾고, 날씨/스코어를 요청하는 등) 및/또는 커맨드를 발행(특정 노래 재생, 조명 켜기, 타이머 설정, 알림 저장 등)할 수 있는 자동화 어시스턴트를 이용하여 사용자-대-컴퓨터 대화에 사용자들이 참여할 수 있게 한다. 스마트폰, 태블릿 컴퓨터, 스마트 워치 등과 같은 다른 클라이언트 디바이스들(106)는 사용자와 유사 대화식 대화(dialog)를 용이하게 하는 자동화 어시스턴트를 포함할 수 있다.
프라이버시 전환 엔진(126)은 프라이버시 우도 엔진(124)에 의해 결정된 우도가 하나 이상의 임계치를 만족한다고 결정할 수 있다. 그러한 결정에 기초하여, 프라이버시 전환 엔진(126)은 하나 이상의 메시지 교환 클라이언트(107)(또는 보다 일반적으로, 클라이언트 디바이스(106))를 비공개 상태로 전환시키거나 그 전환을 트리거할 수 있다. 다양한 유형의 임계치가 메시지 교환 스레드의 컨텐츠가 적어도 하나의 참가자에게 민감한 것으로 간주될 우도에 비교될 수 있다. 프라이버시 우도 엔진(124)에 의해 계산된 우도가 수 또는 측정치(예를 들어, 0.0~1.0, 0~100 등의 범위)로 계산되는 일부 구현예에서, 수치 임계치가 사용될 수 있다. 일부 구현예에서, 다수의 임계치가 이용될 수 있다. 예를 들어, 프라이버시 우도 엔진(124)에 의해 결정된 우도가 제1 임계치를 만족하지만 높은 제2 임계치를 만족하진 않으면, 하나 이상의 메시지 교환 클라이언트(107)는 메시지 교환 클라이언트(107)를 비공개 상태로 전환하기 위한 허가를 요청하는 프롬프트의 형태로 가청 또는 시각적 출력을 제공할 수 있다. 그러나, 제1 및 제2 임계 값이 모두 만족되면, 진행중인 메시지 교환 스레드의 참가자에 의해 작동되는 하나 이상의 메시지 교환 클라이언트 (107)는 예를 들어, 메시지 교환 클라이언트를 동작시키는 개별 참가자에게 통지하거나 통지하지 않고 자동으로 비공개 상태로 전환할 수 있다.
진행중인 메시지 교환 스레드가 다수의 메시지 교환 클라이언트(107)를 작동하는 다수의 참가자를 포함하는 다양한 구현예에서, 하나의 메시지 교환 클라이언트(107)를 비공개 상태로 전환하는 것은 하나 이상의 다른 메시지 교환 클라이언트 들(107)을 비공개 상태로 전환하는 것을 초래할 수 있고 그렇지 않을 수도 있다. 예를 들어, 일부 구현예에서, 비공개 상태로 천이하는 제1 메시지 교환 클라이언트 (107)는 제2 메시지 교환 클라이언트가 비공개 상태로 전환하게 하는 커맨드를 제 2 메시지 교환 클라이언트로 전송할 수 있다. 일부 구현예에서, 이 전송은, 예를 들어 프라이버시 전환 엔진(126)에 의해, 프라이버시 우도 엔진(124)에 의해 결정된 우도가 하나 이상의 임계치를 만족한다는 결정에 응답하여 발생할 수 있다.
주어진 클라이언트 디바이스(106)상에서 동작하는 (데이터 엔진(122), 프라이버시 우도 엔진(124) 및/또는 프라이버시 전환 엔진(126)의 개별 인스턴스를 포함하는) 프라이버시 상태 시스템(120)의 인스턴스에 의해, 그 주어진 클라이언트 디바이스(106)상에서 개별 메시지 교환 클라이언트(107)를 작동하는 참가자가 진행중인 메시지 교환 스레드의 컨텐츠가 민감한 것으로 간주될 특별한 우도가 있다고 가정한다. 그 우도는 제1 임계치를 만족하지만 높은 제2 임계치를 만족시키지 않는다고 가정한다. 일부 구현예에서, 이러한 시나리오는 프라이버시 전환 엔진(126)이 로컬 메시지 교환 클라이언트(107)를 비공개 상태로만 전환하게 할 것이다. 다른 구현예에서, 이러한 시나리오는 로컬 메시지 교환 클라이언트(107)가 비공개 상태로 전환하고 메시지 교환 스레드에 참여하는 다른 메시지 교환 클라이언트(107)에게 비공개 상태로 전환하도록 요청(예를 들어, 개별 메시지 교환 스레드 참가자에게 허가를 프롬프트)하게 할 수 있다.
피드백 엔진(132)은 클라이언트 디바이스(106)의 사용자/참가자의 요청된 및/또는 요청되지 않은 피드백을 사용하여 트레이닝 예제 엔진(137)에 제공할 수 있다. 트레이닝 예제 엔진(137)은 그 피드백을 하나 이상의 기계 학습 모델(들)(156)을 개선하기 위한 추가 트레이닝 예제들을 생성하는데 이용할 수 있다. 일 예로서, 메시지 교환 스레드의 참가자가 자신의 개별 메시지 교환 클라이언트(107)를 비공개 상태로 수동으로 전환한다고 가정한다. 피드백 엔진(132)은 트레이닝 예제 엔진(137)에게, 수동으로 전환하는 참가자에게 현재 적용 가능한 다양한 입력(예를 들어, 사용자 데이터(158), 메시지 교환 스레드의 컨텐츠) 뿐만 아니라 수동 전환의 표시를 제공할 수 있다. 이어서 트레이닝 예제 엔진(137)은 그 데이터를 이용하여 프레이닝 예제의 트레이닝 예제 입력을 생성할 수 있고, 비공개 상태로의 메시지 교환 클라이언트(107)의 수동 전환에 기초하여 트레이닝 예제의 트레이닝 예제 출력을 생성할 수 있다.
도 2는 메시지 교환 스레드 참가자들이 진행중인 메시지 교환 스레드의 컨텐츠가 민감한 것으로 판단할 우도를 결정하는데 도 1의 예시적인 환경의 컴포넌트들을 사용하는 예를 도시한다. 도 2에서, 사용자 데이터(158)는 클라이언트 디바이스(1061)의 센서(204)로부터의 출력, 클라이언트 디바이스(1061)의 애플리케이션 들(206)로부터의 상태 및/또는 다른 데이터, 클라이언트 디바이스(1061)를 통해 생성된 및/또는 액세스된 문서(208) 및 클라이언트 디바이스(1061)를 동작시키는 메시지 교환 스레드 참가자와 관련된 이력 행동를 나타내는 이력 데이터(210)에 기초하여 생성될 수 있다. 센서(들)(204)로부터의 출력은 사용자 데이터(158)의 센서 기반 데이터를 생성하는데 사용된다. 애플리케이션(들)(206) 및 문서(들)(208)로부터의 출력은 사용자 데이터(158)의 컴퓨터 기반 액션 데이터를 생성하는데 사용된다. 이력 데이터(210)는 사용자 데이터(158)의 이력 행동를 생성/식별하는데 사용된다. 일부 구현예에서, 사용자 데이터(158)는 사용자의 추가적이거나 대안적인 전자 디바이스(예를 들어, 클라이언트 디바이스(1061)와 전자 통신하는 사용자의 시계의 센서)를 통한 센서들 및/또는 사용자 액션들에 의해 생성된 출력에 기초하여 생성될 수 있다.
데이터 엔진(122)은 사용자 데이터(158)로부터, 프라이버시 우도 엔진(124)에 제공하기 위한 데이터(201A)의 서브 세트를 선택한다. 도 2에서, 프라이버시 우도 엔진(124)은 기계 학습 모델들(156) 중 하나에 대한 입력으로서, 메시지 교환 스레드 컨텐츠(212)와 함께 데이터(201A)를 적용하고, 그 적용된 입력에 기초하여 기계 학습 모델에 대한 출력을 생성할 수 있다. 생성된 출력은 메시지 교환 스레드 참가자가 메시지 교환 스레드의 컨텐츠가 민감한 것으로 간주할 우도를 직접 나타낼 수 있으며, 프라이버시 전환 엔진(126)으로 제공될 수 있다. 일 에로서, 기계 학습 모델에 적용되는 입력은 데이터(201A)에 기초하고 센서 기반 데이터, 컴퓨터 기반 액션 데이터 및 이력 행동 데이터에 기초한 값들뿐만 아니라 진행중인 메시지 교환 스레드의 컨텐츠(212)를 포함하는 값들의 벡터일 수 있다. 진행중인 메시지 교환 스레드의 컨텐츠(212)는 (예를 들어, 메시지 교환 클라이언트(107)를 작동하는 참가자에 의해) 그 진행중인 메시지 교환 스레드에 삽입된 텍스트 및/또는 다른 컨텐츠(예를 들어, 이미지, 사운드 등)를 포함할 수 있다. 출력(203A)은 예를 들어, 메시지 교환 스레드 참여자가 메시지 교환 스레드의 컨텐츠가 민감한 것으로 (이미 스레드에 삽입되었는지 또는 예정되어 있는지) 간주할 우도를 나타낼 수 있다.
출력(203A)에 기초하여, 프라이버시 전환 엔진(126)은 클라이언트 디바이스(1O61)상에서 동작하는 로컬 메시지 교환 클라이언트(107)를 비공개 상태로 전환할지를 결정한다. 일부 구현예에서, 프라이버시 전환 엔진(126)은 또한, 예를 들어, 진행중인 메시지 교환 스레드에 참여하기 위해 참가자들에 의해 사용되고 있는 메시지 교환 스레드(1071-N)를 작동하는 하나 이상의 다른 클라이언트 디바이스(IO62-N)로 프라이버시 커맨드(2051-N)를 전송한다. 위에서 언급한 바와 같이, 다양한 구현예에서, 다른 클라이언트 디바이스들(IO62-N)은 자동으로 비공개 상태로 전환할 수 있고, 개별 참가자들에게 비공개 상태로의 전환에 대한 허가를 프롬프트할 수 있다
일부 구현예에서, 프라이버시 전환 엔진(126)은 프라이버시 커맨드(2051-N)를 대응하는 추가 클라이언트 디바이스들(106)에 직접 전송한다. 일부 다른 구현예에서, 프라이버시 전환 엔진(126)은 프라이버시 커맨드(2051-N)를 하나 이상의 중간 컴포넌트들(예를 들어, 전자 통신 시스템(110))에 전송한 다음, 상태 통지를 대응하는 추가 클라이언트 디바이스들로 전송한다. 일부 구현예에서, 프라이버시 전환 엔진(126)은 프라이버시 커맨드(2051-N)를 자동으로 전송한다. 일부 다른 구현예에서, 프라이버시 전환 엔진(126)은 클라이언트 디바이스(1061)를 통해 제공된 사용자의 긍정적인 사용자 인터페이스 입력에 응답하여 프라이버시 커맨드(2051-N)를 단지 전송한다. 도 2a는 상이한 클라이언트 디바이스에 제공되고 있는 3개의 개별 프라이버시 커맨드를 제공하는 것을 도시하지만, 일부 구현에서는 더 많거나 적은 프라이버시 커맨드가 전송될 수 있고 및/또는 더 많거나 적은 추가 메시지 교환 스레드 참가자에게 프리젠테이션을 위해 전송될 수 있다.
도 3은 메시지 교환 참가자가 컨텐츠를 민감한 것으로 간주할 우도를 결정할 때, 도 2에서 사용하기 위해 하나 이상의 기계 학습 모델(들)(156)을 트레이닝시키는데 도 1의 예시적인 환경의 컴포넌트들을 사용하는 예를 도시한다.
도 3에서, 트레이닝 데이터 인스턴스(1361-N)는 트레이닝 예제 엔진(137)에 의해 수신된다. 트레이닝 데이터 인스턴스들 각각은, 참가자에 의해 작동되는 메시지 교환 클라이언트(107)가 (자동으로 또는 수동으로) 비공개 상태로 또는 그로부터 전환되었을 때, 예를 들어 특정 메시지 교환 스레드 참가자에게 적용 가능했던 메시지 교환 스레드의 컨텐츠 및 다른 입력(예를 들어, 센서 기반 데이터, 컴퓨팅 기반 액션 데이터, 이력 데이터)을 포함한다. 예를 들어, 트레이닝 데이터 인스턴스(1361)는 메시지 교환 스레드 컨텐츠의 제1 벡터, 데이터 값 및 비공개 상태로의 천이가 자동인지 수동이었는지 여부의 표시를 포함할 수 있다. 또한, 예를 들어, 트레이닝 데이터 인스턴스(1362)는 메시지 교환 스레드 컨텐츠의 제2 벡터, 데이터 값 및 비공개 상태로의 천이가 자동인지 수동이었는지 여부의 표시를 포함할 수 있다. 일부 구현예에서, 트레이닝 데이터 인스턴스들 중 적어도 일부는 메시지 교환 클라이언트(107)를 비공개 상태로(또는 비공개 상태로부터) 수동으로 천이시키는 대응하는 메시지 교환 스레드 참가자에 기초하여 생성될 수 있다. 부가적으로 또는 대안적으로, 일부 구현예에서, 트레이닝 데이터 인스턴스들 중 적어도 일부는 대응하는 메시지 교환 클라이언트(107)가 자동으로 비공개 상태로(또는 비공개 상태로부터) 전환되는 것에 기초하여 생성될 수 있다. 트레이닝 데이터 인스턴스를 생성하기 위한 추가 또는 대안적 기술들이 이용될 수 있다.
트레이닝 예제 엔진(137)은 트레이닝 인스턴스들을 이용하여 트레이닝 예제(1541-N)를 생성한다. 각각의 트레이닝 예제(1541-N)는 대응하는 트레이닝 데이터 인스턴스의 데이터에 기초하는 트레이닝 예제 입력, 및 예를 들어, (예를 들어, 피드백 엔진(132)으로부터 결정될 수 있는) 비공개 상태로의(또는 그로부터의) 전환이 바람직한지 또는 바람직하지 않은지(예를 들어, 피드백 엔진(132)으로부터 결정될 수 있는지)를 나타내는 트레이닝 예제 출력을 포함한다.
생성된 트레이닝 예제(1541-N)는 기계 학습 모델들(156) 중 적어도 하나를 트레이닝하기 위해 트레이닝 엔진(135)에 의해 이용되는 트레이닝 예제(152)로서 저장된다. 일부 구현예에서, 트레이닝 엔진(135)은 트레이닝 예제들의 트레이닝 예제 입력의 적용 및 그 트레이닝 예제들의 트레이닝 예제 출력에 기초한 역 전파에 기초하여 그 트레이닝 예제들(152)에 근거하여 기계 학습 모델을 트레이닝한다.
일부 구현예에서, 동일한 트레이닝된 기계 학습 모델(156)이 클라이언트 디바이스(1061) 및 다른 사용자들의 다른 클라이언트 디바이스에 이용될 수 있다. 일부 구현예에서, 클라이언트 디바이스(1061)를 위해 이용되는 트레이닝된 기계 학습 모델(156)은 클라이언트 디바이스(1061)를 작동시키는 메시지 교환 스레드 참가자의 사용자 데이터(158) 및/또는 피드백 엔진(132)에 의해 제공된 참가자의 피드백에 기초하여 선택적으로 추가 트레이닝될 수 있다. 사용자 데이터(158) 및/또는 메시지 교환 스레드 참가자의 피드백에 기초한 기계 학습 모델(156)의 추가 트레이닝은 기계 학습 모델이 특정 클라이언트 디바이스(106)를 작동시키는 메시지 교환 스레드 참가자에 추가로 맞춤화될 수 있게 할 수 있다. 일 예로, 사용자 데이터(158)의 과거 데이터는 비공개 상태로/비공개 상태로부터의 전환 및 참가자에 대한 관련 데이터를 직접 나타낼 수 있고, 트레이닝 예제 엔진(137)에 의해 이용되어 트레이닝 엔진(135)에 의해 사용되기 위한 하나 이상의 추가 트레이닝 예제를 생성할 수 있다.
이제 도 4a 내지 도 4c를 참조하면, 본 명세서에 설명된 다양한 컴포넌트 및 기술에 대한 추가 설명이 제공된다. 도 4a 및 도 4b는 도 1의 예시적인 클라이언트 디바이스(1061) 및 진행중인 메시지 교환 스레드의 적어도 하나의 참가자가 메시지 교환 스레드의 컨텐츠를 민감한 것으로 간주할 충분한 우도가 있다는 결정에 응답하여 (도 4a-b에 도시되지 않은) 메시지 교환 클라이언트가 비공개 상태로 전환될 수 있는 방법의 하나 이상의 예를 도시한다. 도 4a 및 4b의 클라이언트 디바이스(1061)는 디스플레이 스크린(140)을 포함한다. 디스플레이 스크린(140)은 또한 클라이언트 디바이스(1061)가 하나 이상의 액션을 수행하도록 사용자에 의해 그와 상호 작용될 수 있는 시스템 인터페이스 엘리먼트(481, 482, 483)를 포함한다.
도 4a에서, 클라이언트 디바이스(1061)를 작동시키는 제1 메시지 교환 스레드 참가자(도 4a의 "(You)")는 "너에게 무언가.. 말하고 싶어(I want to tell you something...)"의 진행중인 메시지 교환 스레드에 제1 메시지를 제공하였다. 다른 참가자 샐리는 "뭔데?(What is it?)"라고 대답했다. 그런 다음 제1 참가자는 "이것을 우리끼리 유지할 수 있니?(Can you keep it between us?)"라고 말한다. 다양한 구현예에서, 그러한 문장은 "프라이버시 트리거 문구"로 간주될 수 있고, 이는 검출될 때, 제1 참가자에 의해 작동되는 메시지 교환 클라이언트(107)(도 4a에 미도시)가 비공개 상태로 전환되게 한다(또는 최소한 제1 참가자에게 비공개 상태로 전환할 것인지를 프롬프트함). 위에서 언급한 바와 같이, 프라이버시 트리거 문구에는 "오프 더 레코드", "우리끼리 유지하자", "아무에게도 말하지 않겠다고 약속할 수 있어?"등과 같은 다른 유사한 문구가 포함될 수 있다. 이러한 일부 구현예에서, 이러한 프라이버시 트리거 문구를 따르는(또는 일부 경우, 선행하는) 하나 이상의 메시지는, 예를 들어, 제1 참가자가 메시지 교환 클라이언트를 프라이버시 상태로부터 수동으로 전환할 때까지 또는 토론 토픽이 덜 민감한 주제로 변경되었다는 것이 검출될 때까지 유지되지 않을 수 있다. 결과적으로, "그래(OK)"라는 샐리(Sally)의 회신과 그 후 제1 참가자가 제공한 메시지 컨텐츠(즉, 박스(480)으로 둘러싸인 컨텐츠)는 예를 들어, 진행중인 메시지 교환 스레드의 전사 또는 로그에 보관되지 않을 수 있다. 부가적으로 또는 대안적으로, 일부 구현예에서, 전환 후 교환된 메시지는 전사 또는 로그에 저장되기 전에 난독화(예를 들어, 무의미한 텍스트 또는 심볼로 대체되거나 수정)될 수 있다.
프라이버시 트리거 문구는 시간이 지남에 따라 수동으로 구성되거나 학습될 수 있다. 예를 들어, 프라이버시 트리거 문구는 메시지 교환 스레드 참가자가 메시지 교환 스레드가 민감한 것으로 간주할 우도를 결정하기 위해 기계 학습 모델에 대해 (하나 이상의 다른 입력과 함께) 적용되는 스레드 컨텐츠(212)(도 2 참조)의 하나의 컴포넌트일 수 있다. 일부 구현예에서, 프라이버시 트리거 문구들은 메시지 교환 스레드 참가자들이 메시지 교환 클라이언트들(107)을 비공개 상태로 수동으로 전환하기 직전 또는 직후에 특정 문구를 제공할 때 학습될 수 있다. 따라서, 예를 들어, 더 많은 메시지 교환 스레드 참가자가 "우리 이것을 은밀히 유지할 수 있니?"와 같은 말을 하기 전 또는 후에 자신들의 메시지 교환 클라이언트(107)를 비공개 상태로 전환함에 따라 이러한 문구는 기계 학습 모델을 트레이닝시키는 점점 더 많은 트레이닝 예제의 일부로 사용될 수 있다. 물론, 메시지 교환 스레드는 다른 소위 "비-프라이버시 트리거 문구"에 대한 응답으로 비공개 상태로부터 전환될 수 있다. 예를 들어, "심각한 이야기는 접어 두고(on a lighter note...)" 또는 "온 더 레코드로 돌아 가자(let's go back on the record)"와 같은 문구는 하나 이상의 메시지 교환 클라이언트(107)를 비공개 상태에서 공개 상태(non-private states)로 전환시킬 수 있다.
프라이버시 트리거 문구에 추가하여 또는 대신에, 일부 구현예에서, 메시지 교환 스레드 컨텐츠의 일부를 형성하는 하나 이상의 n-그램이 단독으로 또는 조합되어 신호로서 사용될 수 있다. 예를 들어, 도 4b에서, 클라이언트 디바이스(1061)를 작동시키는 제1 메시지 교환 스레드 참가자는 "어땋게 생각해?(Guess what?)"라는 진행중인 메시지 교환 스레드에 제1 메시지를 제공하였다. 다른 참가자인 샐리는 "뭘?"라고 대답했다. 그런 다음 제1 참가자는 "밥(Bob)이 $를 훔쳐서 해고 되었 대 !"(Bob got fired for stealing $ !)"라고 말한다. 다양한 구현예에서, 특정 알려진 엔티티의 이름("Bob")과 같은 이러한 문장의 다양한 n-그램 또는 다른 n-그램(예를 들어, "해고되다(fired)", 훔치다(steal)")는 단독으로 또는 조합하여, 제1 참가자에 의해 작동되는 메시지 교환 클라이언트(107)(도 4b에 미도시)를 비공개 상태로 전환하도록(또는 적어도 제1 참가자에게 비공개 상태로 전환할 것인지 여부에 대해 프롬프트하도록) 트리거할 수 있다. 부가적으로, 도 4b의 모든 트리거링 n-그램이 제1 참가자에 의해 단일 문장에 포함되지만, 이는 제한적인 것으로 의도되지 않는다. 다양한 구현예에서, 상이한 참가자들에 의해 제공되는 상이한 메시지들로부터의 n-그램이 비공개 상태로의 메시지 교환 클라이언트의 전환을 트리거하기 위해 조합하여 사용될 수도 있다.
도 4c는 도 4b에 도시된 메시지 교환 스레드의 저장된 전사의 일부의 예를 도시한다. 이 예에서, "밥이 $을 훔쳐서 해고 되었대!"라는 제1 참가자의 메시지가 적어도 부분적으로 난독화되어 "밥"이라는 이름과 n-gram "훔쳐서(stealing)"가 스크램블되었다. 다양한 구현예에서, 이 컨텐츠는 미검열된(uncensored) 컨텐츠 대신에 다른 사람들이 잠재적으로 민감한 문장을 보지 못하도록 하기 위해 유지될 수 있다.
비공개 상태로의 메시지 교환 클라이언트의 전환을 트리거할 수 있는 위에서 식별된 신호에 부가하여 또는 그 대신에, 일부 구현예에서, 일반적인 토론 토픽은 (단독으로 또는 이력적 사용자 행동의 양태와의 조합하여) 비공개 상태로의 전환을 트리거할 수 있다. 예를 들어, 일부 구현예에서, 건강 문제, 거친 말투, 정치, 개인 정보, 재무 정보 등과 같은 잠재적으로 민감한 토픽에 대한 논의는 메시지 교환 클라이언트(또는 메시지 교환 스레드에 참여하는 모든 메시지 교환 클라이언트)가 비공개 상태로 전환되게 할 수 있다. 물론, 비공개 상태로의 전환을 트리거하는 토픽은 시간이 지남에 따라 변경 및/또는 진화할 수 있다. 예를 들어, 전술한 바와 같이, 잠재적으로 민감한 토픽이 논의되는 때를 식별하기 위해 다양한 기계 학습 모델이 시간에 따라 지속적으로 트레이닝될 수 있다. 예를 들어, 하나 이상의 기계 학습 모델은 특정 토픽이 메시지 교환 스레드에서 논의되고 하나 이상의 메시지 교환 스레드 참가자가 그들의 개별 메시지 교환 클라이언트를 비공개 상태로 수동 전환하는 인스턴스를 나타내는 트레이닝 예제로 트레이닝될 수 있다.
부가적으로 또는 대안적으로, 하나 이상의 기계 학습 모델은 특정 토픽이 메시지 교환 스레드에서 논의되는 사례를 나타내는 트레이닝 예제로 트레이닝될 수 있으며, 하나 이상의 메시지 교환 클라이언트는 자동으로 비공개 상태로 전환된다(그리고 개별 참가자는 부정적인 피드백을 제공하지 않거나 긍정적인 피드백을 제공하지 않는다). 메시지 교환 클라이언트를 비공개 상태로부터 자동으로 전환하기 위해 유사한 기술이 사용될 수 있다. 예를 들어, 메시지 교환 스레드의 하나 이상의 참가자가 민감한 토픽을 논의하고 있고, 그로 인해 하나 이상의 그들의 개별 메시지 교환 클라이언트(107)가 비공개 상태로 전환된 것으로 가정한다. 그 참가자들은 토론 토픽을 덜 민감한 토픽으로 변경한다고 가정한다. 다양한 구현예에서, 그 토픽의 변경은 하나 이상의 메시지 교환 클라이언트(107)에 의한 비공개 상태로부터 다시 (메시지 교환 스레드 컨텐츠가 난독화되지 않고 고유한 형태로 유지되는) 공개 상태로의 전환을 트리거할 수 있다.
메시지 교환 스레드에서의 논의 토픽을 결정하기 위해 다양한 기술이 사용될 수 있다. 일부 구현에에서, 하나 이상의 토픽 분류기(Topic classifiers)는 예를 들어, 메시지 교환 스레드 컨텐츠의 슬라이딩 윈도우를 사용하여 지속적으로 기초하여 하나 이상의 현재 토론 토픽을 식별할 수 있다. 토픽 분류기는 기계 학습 모델 또는 규칙-기반 모델의 형태를 취할 수 있다. 기계 학습 기반 토픽 분류기를 사용하면, 일부 구현예에서, 토픽 분류기는 특정 토픽이 논의되고 있는지(예를 들어, 이진 출력 또는 확률)를 나타내는 출력을 제공하도록 트레이닝될 수 있다. 다른 구현예에서, 토픽 분류기는 복수의 상이한 토픽들이 논의되고 있는지 여부를 나타내는 출력을 제공하도록 트레이닝될 수 있다. 예를 들어, 토픽 분류기는 복수의 상이한 토픽이 논의될 우도 또는 신뢰도를 나타내는 출력을 제공하도록 구성될 수 있다. 일부 구현예에서, 하나 이상의 임계치를 만족시킬 우도/신뢰도를 갖는 이들 토픽만이 토론 토픽으로서 식별될 수 있다. 다른 구현예에서, n개의 가장 높은 우도/신뢰도를 갖는 이들 토픽만이 토론 토픽으로서 식별될 수 있다.
전술한 바와 같이, 메시지 교환 스레드의 컨텐츠에 부가하여, 진행중인 메시지 교환 스레드의 컨텐츠가 적어도 하나의 메시지 교환 스레드 참가자에 의해 민감한 것으로 간주될 우도를 결정할 때 다른 신호들이 고려될 수 있다. 일부 구현예에서, 메시지 교환 스레드 참가자들에 의해 작동되는 하나 이상의 클라이언트 디바이스(106)(예를 들어, 도 2의 센서 데이터(204))과 관련된 문맥 신호들 또는 큐들이 분석될 수 있다. 특정 메시지 교환 스레드 참가자가 하루의 특정 시간 동안 및/또는 참가자가 특정 위치에 있는 동안 메시지 교환 클라이언트를 비공개 상태로 수동으로 전환하는 경향이 있다고 가정한다. 다양한 구현예에서, 하루의 동일한 시간 동안 및/또는 참가자가 동일한 특정 위치에 있는 동안, 그 참가자의 메시지 교환 클라이언트는 자동으로 비공개 상태로 전환될 수 있다.
일부 구현예에서, 클라이언트 디바이스(106)상에서 동작하는 하나 이상의 애플리케이션의 상태는 진행중인 메시지 교환 스레드의 컨텐츠가 적어도 하나의 메시지 교환 스레드 참가자에 의해 민감한 것으로 간주될 우도를 결정하기 위해 또한 사용될 수 있다. 클라이언트 디바이스(106)상의 메시지 교환 클라이언트(107)를 작동시키는 특정 메시지 교환 스레드 참가자는 또한 클라이언트 디바이스(106)를 여는 웹 브라우저를 가지며, 그 웹 브라우저는 수동으로 비공개 상태로 전환된다고 가정한다. 일부 구현예에서, 특히 참여자(또는 일반적으로 참가자들)가 비공개 상태에서 브라우징하는 동안 메시지 교환 클라이언트(107)를 비공개 상태로 전환시키는 경향이 있다면, 그 웹 브라우저가 현재 비공개 상태에 있다는 사실은 단독으로 또는 본 명세서에 기술된 다른 신호들과 조합하여) 메시지 교환 클라이언트를 트리거할 수 있다. 보다 일반적으로, 일부 구현예에서, 메시지 교환 클라이언트(107)가 (메시지 교환 참가자에 의해 수동으로 또는 부정적인 피드백없이 자동으로) 비공개 상태로 전환될 때, 그 참가자의 클라이언트 디바이스(106) 상에서 동작하는 하나 이상의 다른 애플리케이션의 하나 이상의 상태는 기계 학습 모델을 (추가로) 트레이닝시키기 위한 트레이닝 예제로 사용되는 벡터의 특징으로서 사용될 수 있다.
하나 이상의 메시지 교환 스레드 참여자가 메시지 교환 스레드 컨텐츠를 민감한 것으로 간주할 우도를 결정할 때 문서들(예를 들어, 도 2의 208)의 다양한 측면들이 고려될 수 있다. 사용자가 자신의 클라이언트 디바이스(106)(및/또는 클라우드 저장소)에 문서를 저장하고, 그 문서가 강력한 보안 보호(예를 들어, 비밀번호로 보호, 액세스 권한이 있는 제한된 수의 사용자, 암호화 등)로 구성되어 있다고 가정한다. 일부 구현예에서, 해당 문서 및/또는 그의 메타 데이터와 관련된 토픽들은 강력한 보안 보호에 기초하여 민감한 것으로 플래그될 수 있다. 일부 구현예에서, 메시지 교환 스레드내의 문서의 소유자에 의한 이러한 토픽들의 토론은 그 소유자에 의해 작동되는 메시지 교환 클라이언트(107)의 비공개 상태로의 전환을 트리거할 수 있다. 부가적으로 또는 대안적으로, 문서 소유자 또는 다른 메시지 교환 스레드가 메시지 교환 스레드내의 문서를 구체적으로 참조하는 경우(예를 들어, 문서에 대한 링크, 문서에 대한 액세스 권한을 제공하는 경우), 메시지 교환 스레드의 참가자들에 의해 작동하는 하나 이상의 메시지 교환 클라이언트(107)는 비공개 상태로 전환될 수 있다.
본 명세서에 기술된 예들은 전형적으로 다수의 인간 메시지 교환 스레드 참가자들을 포함하지만, 이는 제한하는 것으로 의도되지 않는다. 위에서 언급한 바와 같이, 일부 구현예에서, 메시지 교환 스레드는 단일 인간 참가자 및 자동화 어시스턴트와 같은 비인간 참가자 사이에 존재할 수 있다. 이러한 일부 구현에에서, 본 명세서에 기술된 기술들은 인간 참가자에 의해 사용되는 메시지 교환 클라이언트를 비공개 상태로 자동 전환하기 위해, 예를 들어 자동화 어시스턴트와 교환된 메시지들이 지속되거나 난독화되지 않도록 하기 위해 이용될 수 있다.
일부 구현예에서, 본 명세서에 설명된 기술들은 순전히 비-인간 참가자들 사이에서 교환된 메시지를 난독화하거나 다른 방식으로 억제하는데 사용될 수 있다. 예를 들어, 상이한 애플리케이션, 도메인(예를 들어, 음식 배달 자동화 어시스턴트와 메시지를 교환하는 개인용 자동화 어시스턴트)등과 관련된 다수의 자동화 어시스턴트 사이에서 교환되는 메시지들은, 하나 이상의 인간, 예를 들어, 하나 이상의 자동화 어시스턴트를 작동하는 사용자 및/또는 하나 이상의 자동화 어시스턴트에 의해 서비스되는 사용자에게 민감한 것으로 여겨지는 컨텐츠를 포함하는 메시지들에 기초하여 난독화 및/또는 저장되지 않을 수 있다.
제1 개인이 제2 개인을 위한 생일 선물을 쇼핑하고 있다고 가정한다. 예를 들어, 그 두 개인은 가정내의 독립형 대화식 스피커에 의해 작동되는 동일한 자동화 어시스턴트와 상호 작용하는 경향이 있다고 가정한다. 제1 개인이 인간 대 컴퓨터 대화에 참여하여 적절한 생일 선물을 검색하면, 제1 개인은 제2 개인이 그 컨텐츠를 사용하기를 원하지 않기 때문에 제1 개인은 자동화 어시스턴트와 교환된 임의의 메시지를 민감한 것으로 간주할 수 있다. 따라서, 자동화 어시스턴트는 예를 들어 "생일 선물"과 같은 발화된 음성 n-그램 및 제2 개인의 신원에 응답하여 또는 "앨리스 생일인데 무엇을 해줘야 할까?"와 같은 발언에 응답하여, 비공개 상태로 전환하여, 자동화 어시스턴트는 제1 개인과 자동화 어시스턴트 사이에서 인간 대 컴퓨터 대화의 컨텐츠를 유지하는 것을 중단할 수 있다. 부가적으로 또는 대안적으로, 제1 개인이 메시지 교환 클라이언트(107)와 같은 그래픽 사용자 인터페이스를 사용하여 자동화 어시스턴트와 대화하는 경우, 메시지 교환 클라이언트(107)는 비공개 상태로 전환할 수 있다. 예를 들어, 인간이 재정, 건강 또는 민감한 것으로 알려진 또는 학습된 다른 토픽과 같은 잠재적으로 민감한 토픽들을 토론할 때 인간 대 컴퓨터 대화 중에 유사한 비공개 상태로의 전환이 발생할 수 있다.
도 5는 본명세서에 개시된 구현예에 따라, 메시지 교환 스레드의 컨텐츠가 하나 이상의 참가자들에 의해 민감한 것으로 간주될 우도를 결정하고, 하나 이상의 메시지 교환 클라이언트 또는 다른 컴포넌트들을 비공개 상태로 전환시키는 예시적인 방법(500)을 도시하는 흐름도이다. 편의상, 흐름도의 동작들은 그 동작을 수행하는 시스템을 참조하여 설명된다. 이 시스템은 프라이버시 상태 시스템(120)의 하나 이상의 컴포넌트와 같은 다양한 컴퓨터 시스템의 다양한 컴포넌트를 포함할 수 있다. 게다가, 방법(500)의 동작들은 특정 순서로 도시되어 있지만, 이는 제한적인 의미가 아니다. 하나 이상의 동작들이 재정렬, 생략 또는 추가될 수 있다.
블록(502)에서, 시스템은 진행중인 메시지 교환 스레드의 컨텐츠를 검사한다. 전술한 바와 같이, 일부 구현예에서, 시스템은 슬라이딩 윈도우를 이용하여, 진행중인 메시지 교환 스레드의 특정 부분을 검사할 수 있다. 다양한 구현예에서, 슬라이딩 윈도우의 크기는 시간적으로 및/또는 공간적으로 결정될 수 있다. 예를 들어, 검사된 컨텐츠의 슬라이딩 윈도우는 마지막 x 분의 컨텐츠, 마지막 y 메시지 등만을 포함할 수 있다(여기서 x 및 y는 0이 아닌 정수임). 다른 구현예에서, 메시지 교환 스레드에 통합된 각 메시지 또는 심지어 각 메시지의 일부가 검사될 수 있다. 다양한 구현예에서, 메시지 교환 참가자들은 이 검사를 디스에이블하는 옵션을 가질 수 있다(이는 방법(500)의 나머지 동작들이 수행되는 것을 방지할 것이다).
블록(504)에서, 시스템은 블록(502)의 검사에 적어도 부분적으로 기초하여, 메시지 교환 스레드의 컨텐츠가 하나 이상의 메시지 교환 스레드 참가자들에 의해 민감한 것으로 간주될 우도를 결정할 수 있다. 일부 구현에에서, 이 우도는 메시지 교환 스레드의 컨텐츠(예를 들어, 프라이버시 트리거 문구, 다양한 n-그램의 조합, 민감한 토론 토픽 등)에 기초하여 결정될 수 있다. 다른 구현예에서, 이러한 우도는 메시지 교환 스레드 참여자들에 의해 작동되는 하나 이상의 클라이언트 디바이스의 센서 데이터, 하나 이상의 메시지 교환 참여자들에 의해 저장되거나 제어되는 문서, 하나 이상의 메시지 교환 스레드 참가자들의 이력 행동(어떤 상황에서 참가자(들)가 수동으로 비공개 상태로의 전환을 트리거하거나 비공개 상태로의 자동 전환에 바대하지 않는 경우)와 같은 다른 신호들에 부가적으로 기초하여 결정될 수 있다. 위에서 언급된 바와 같이, 일부 구현예에서, 다양한 입력들이 메시지 교환 스레드 컨텐츠 및/또는 이들 다른 신호들로부터 취해질 수 있고 기계 학습 모델에 대한 입력으로서 적용될 수 있다. 기계 학습 모델은 우도를 나타내는 출력을 제공하도록 트레이닝될 수 있다.
블록(506)에서, 시스템은 블록(504)에서 결정된 우도가 제1 임계치를 만족하는지 여부를 결정할 수 있다. 응답이 아니오인 경우(예를 들어, 임의의 참가자가 메시지 교환 스레드 컨텐츠가 민감한 것으로 간주될 우도가 비교적 낮음), 방법(500)은 블록(502)으로 진행하여 메시지 교환 스레드 컨텐츠의 검토가 재개될 수 있다. 그러나 블록(506)에서의 답변이 예이면, 방법(500)은 블록(508)으로 진행할 수 있다. 블록(508)에서, 시스템은 블록(504)에서 결정된 우도가 많은 경우 블록(506)과 관련된 제1 임계치보다 높을 수 있는 제2 임계치를 만족하는지 여부를 결정할 수 있다. 블록(508)에서 응답이 예인 경우(예를 들어, 메시지 교환 컨텐츠가 하나 이상의 메시지 교환 스레드 참여자에게 민감한 것으로 간주되는 경우), 방법(500)은 블록(510)으로 진행할 수 있다.
블록(510)에서, 하나 이상의 메시지 교환 스레드 참가자에 의해 운영되는 하나 이상의 메시지 교환 클라이언트는 메시지 교환 스레드의 내용이 난독 화되거나 유지되지 않는 개인 상태로 자동 전환 될 수있다.
한편, 블록(508)에서의 응답이 아니오인 경우(예를 들어, 메시지 교환 스레드 참가자가 메시지 교환 스레드 컨텐츠가 민감한 것으로 간주할 우도가 있지만, 그 우도가 그다지 높지 않음), 방법(500)은 블록(512)으로 진행할 수 있다. 블록(512)에서, 메시지 교환 클라이언트를 비공개 상태로 전환하기 위해 하나 이상의 메시지 교환 스레드 참가자로부터의 허가를 요청하는 프롬프트는 예를 들어, 메시지 교환 클라이언트에 의해 가청 또는 시각적 출력으로서 제공될 수 있다. 블록(514)에서, 참가자가 요청된 허가를 승인하면, 방법(500)은 이전에 설명된 블록(510)으로 진행할 수 있다. 블록(514)에서 응답이 아니오이면, 방법(500)은 블록(502)으로 다시 진행할 수 있고, 비공개 상태로의 전환은 트리거되지 않을 수 있다.
블록(510)으로 돌아가서, 일부 구현예에서, 시스템은 메시지 교환 스레드의 참가자에게 사용되는 다른 메시지 교환 클라이언트들(또는 더 일반적으로는 클라이언트 디바이스들)에게 하나 이상의 프라이버시 커맨드를 전송하거나 하나 이상의 메시지 교환 클라이언트로 하여금 전송하게 할 수 있다. 이들 프라이버시 커맨드는 수신자 메시지 교환 클라이언트들(또는 보다 일반적으로 수신자 클라이언트 디바이스들)로 하여금 (예를 들어, 자동으로 또는 사용자가 프롬프트에서 허가를 제공하는 것에 응답하여) 비공개 상태로 전환되게 할 수 있다. 도 5에 도시되지 않았지만, 일부 구현예에서, 다양한 메시지 교환 클라이언트로의 프라이버시 커맨드들의 전송은 블록(504)에서 결정된 우도에 조건화될(conditioned) 수 있다. 우도가 특정 임계치(예를 들어, 블록(508)과 관련된 제2 임계치)을 만족하면, 프라이버시 커맨드가 자동으로 전송될 수 있다. 그러나, 우도가 그러한 임계치를 만족시키지 못하면, 프라이버시 커맨드는 예를 들어 그러한 허가를 요청하는 프롬프트에 응답하여 그러한 허가를 승인하는 참가자에 응답해서만 전송될 수 있다.
메시지 교환 스레드 참가자들에게 메시지 교환 클라이언트를 비공개 상태로 천이시키기 위한 허가를 프롬프트하는 것에 부가하여 또는 대신에, 일부 구현예에서, 메시지 교환 클라이언트들은 자동적으로 전환될 수 있고, 참가자들은 그 자동 전환에 피드백을 제공할 수 있다. 예를 들어, 사용자는 예를 들어, 가청 또는 시각적 출력을 통해 자신의 클라이언트 디바이스 및/또는 메시지 교환 클라이언트가 비공개 상태로 전환되었음을 통지받을 수 있다. 그런 다음 참가자는 수동으로 공개 상태로 다시 천이하거나 천이의 비승인을 나타내는 일부 다른 입력을 제공하는 것과 같은 피드백을 제공할 수 있다. 이 피드백에 기초하여, 시스템은 현재 상황 하에서, 참가자가 비공개 상태로 전환하기를 원하지 않는다는 것을 (예를 들어, 기계 학습 모델 트레이닝 예제를 위한 베이스로서 해당 인스턴스를 사용함으로써 "학습"할 수 있다. 물론, 도 5에 도시된 것과 유사한 기술들이 메시지 교환 클라이언트 (또는 더 일반적으로 클라이언트 디바이스)를 자동으로 비공개 상태로부터 그리고 공개(또는 덜 비공개인) 상태로 전환하는데 사용될 수 있다.
다양한 구현예에서, 메시지 교환 클라이언트들은 임의의 수의 다른 애플리케이션과 함께 클라이언트 디바이스들에서 작동될 수 있다. 일부 구현예에서, 이들 다른(예를 들어, 제3자) 애플리케이션들 중 하나 이상은 메시지 교환 클라이언트들에 의해 참여된 메시지 교환 스레드들을 "청취하고 있을(listen in)" 수 있다. 예를 들어, 테이크-아웃 주문 애플리케이션은, 예를 들어, 사용자들이 저녁 식사를 논의하고 있는지 여부를 결정하기 위해 사용자들 간의 메시지 교환 스레드들을 청취할 수있다(이 경우 테이크-아웃 주문 애플리케이션은 메시지 교환 스레드에 참여하여 테이크-아웃 주문을 제공할 수 있음). 다른 예로서, 일부 구현예에서, 하나 이상의 검색 애플리케이션은 교환 컨텐츠를 사용하여 검색 쿼리를 준비하고 제출할지 여부를 결정하기 위해 메시지 교환 스레드들을 청취하고 있을 수 있다. 임의의 경우에서, 일부 구현예에서, 메시지 교환의 참가자들이 잠재적으로 민감한 정보를 논의하는 것으로 결정되면, 이에 의해 하나 이상의 메시지 교환 클라이언트가 비공개 상태로 천이하게 되고, 메시지 교환 스레드의 컨텐츠는 난독화되거나 그렇지 않으면 그러한 제3자 애플리케이션으로 제공되지 않을 수 있다.
도 6은 본 명세서에 기술된 기술들의 하나 이상의 양태를 수행하기 위해 선택적으로 사용될 수 있는 예시적인 컴퓨팅 디바이스(610)의 블록도이다. 일부 구현예에서, 하나 이상의 클라이언트 컴퓨팅 디바이스(1061-N), 프라이버시 상태 시스템(120) 및/또는 다른 컴포넌트(들)는 예시적인 컴퓨팅 디바이스(610)의 하나 이상의 컴포넌트를 포함할 수 있다.
컴퓨팅 디바이스(610)는 전형적으로 버스 서브시스템(612)을 통해 다수의 주변 디바이스와 통신하는 적어도 하나의 프로세서(614)를 포함한다. 이들 주변 디바이스는, 예를 들어, 메모리 서브시스템(625) 및 파일 저장 서브시스템(626), 사용자 인터페이스 출력 디바이스들(620), 사용자 인터페이스 입력 디바이스들(622) 및 네트워크 인터페이스 서브시스템(616)을 포함하는 저장 서브시스템(624)을 포함할 수있다. 입력 및 출력 디바이스는 컴퓨팅 디바이스(610)와의 사용자 상호 작용을 가능하게 한다. 네트워크 인터페이스 서브시스템(616)은 외부 네트워크들로 인터페이스를 제공하고 다른 컴퓨팅 디바이스들의 대응하는 인터페이스 디바이스들에 결합된다.
사용자 인터페이스 입력 디바이스(622)는 키보드, 포인팅 디바이스(예컨대, 마우스, 트랙볼, 터치 패드 또는 그래픽 태블릿), 스캐너, 디스플레이에 통합된 터치 스크린, 오디오 입력 디바이스(에컨대, 음성 인식 시스템, 마이크로폰 및/또는 다른 유형의 입력 디바이스)를 포함할 수 있다. 일반적으로, "입력 디바이스"라는 용어의 사용은 모든 가능한 유형의 디바이스와 정보를 컴퓨팅 디바이스(610) 또는 통신 네트워크에 입력하는 방법을 포함하도록 의도된다.
사용자 인터페이스 출력 디바이스(620)는 디스플레이 서브시스템, 프린터, 팩스기, 또는 오디오 출력 디바이스와 같은 비-시각적 디스플레이를 포함할 수 있다. 디스플레이 서브시스템은 음극선관 CRT), 액정 디스플레이(LCD)와 같은 평판 디스플레이, 프로젝션 디바이스, 또는 가시적 이미지를 생성하기 위한 다른 메커니즘을 포함할 수 있다. 디스플레이 서브 시스템은 또한 오디오 출력 디바이스를 통한 것과 같은 비-시각적 디스플레이를 제공할 수 있다. 일반적으로, "출력 디바이스"라는 용어의 사용은 모든 가능한 유형의 디바이스 및 정보를 컴퓨팅 디바이스(610)로부터 사용자 또는 다른 기계 또는 컴퓨팅 디바이스로 출력하는 방법을 포함하도록 의도된다.
저장 서브시스템(624)은 본 명세서에 기술된 일부 또는 모든 모듈의 기능을 제공하는 프로그래밍 및 데이터 구성을 저장한다. 예를 들어, 저장 서브시스템(624)은 도 5의 방법(500)의 선택된 양태들을 수행하기 위한 로직을 포함할 수 있다.
이들 소프트웨어 모듈은 일반적으로 프로세서(614)에 의해 단독으로 또는 다른 프로세서와 조합하여 실행된다. 저장 서브시스템(624)에 사용되는 메모리(625)는 프로그램 실행 동안 명령들 및 데이터의 저장을 위한 메인 랜덤 액세스 메모리 (RAM)(630) 및 고정 명령이 저장되는 판독 전용 메모리(ROM)(632)를 포함하는 다수의 메모리를 포함할 수 있다. 파일 저장 서브시스템(626)은 프로그램 및 데이터 파일들을 위한 영구 저장을 제공할 수 있으며, 하드 디스크 드라이브, 플로피 디스크 드라이브 및 관련 이동식 매체, CD-ROM 드라이브, 광학 드라이브 또는 이동식 매체 카트리지를 포함할 수 있다. 특정 구현예들의 기능을 구현하는 모듈은 파일 저장 서브시스템(626)에 의해 스토리지 서브시스템(624)에 저장되거나 또는 프로세서(들)(614)에 의해 액세스 가능한 다른 머신에 저장될 수 있다.
버스 서브시스템(612)은 컴퓨팅 디바이스(610)의 다양한 컴포넌트 및 서브시스템이 의도된 대로 서로 통신하도록 하는 메커니즘을 제공한다. 버스 서브시스템(612)이 단일 버스로서 개략적으로 도시되어 있지만, 버스 서브시스템의 대안적인 구현은 다중 버스를 사용할 수 있다.
컴퓨팅 디바이스(610)는 워크스테이션, 서버, 컴퓨팅 클러스터, 블레이드 서버, 서버 팜, 또는 임의의 다른 데이터 처리 시스템 또는 컴퓨팅 디바이스를 포함하는 다양한 유형일 수 있다. 컴퓨터 및 네트워크의 끊임없이 변화하는 특성 (nature)으로 인해, 도 6에 도시된 컴퓨팅 디바이스(610)의 설명은 일부 구현예를 설명하기 위한 특정 예로서만 의도된다. 컴퓨팅 디바이스(610)의 많은 다른 구성은도 6에 도시된 컴퓨팅 디바이스보다 더 많거나 적은 컴포넌트를 가질 수 있다.
본 명세서에 기술된 시스템이 사용자들에 관한 개인 정보를 수집 또는 모니터링하거나, 개인 및/또는 모니터링된 정보(예를 들어, 메시지 교환 스레드에서 교환된 메시지)를 이용할 수 있는 상황에서, 사용자는 프로그램 또는 특징이 사용자 정보(예를 들어, 사용자의 소셜 네트워크, 소셜 액션 또는 활동, 직업, 사용자의 선호도 또는 사용자의 현재 지리적 위치에 관한 정보)를 수집하는지 여부를 제어하거나 또는 사용자에게 더 관련될 수 있는 컨텐츠를 컨텐츠 서버로부터 수신할지 여부 및/또는 방법을 제어할 기회를 제공받을 수 있다. 또한, 소정 데이터는 개인 식별 정보가 제거되도록 저장 또는 사용하기 전에 하나 이상의 방식으로 처리될 수 있다. 예를 들어, 사용자의 신원은 사용자에 대한 개인 식별 정보가 결정되지 않도록 처리될 수 있거나, 지리적 정보는 사용자의 특정 지리적 위치가 결정될 수 없도록 지리적 위치가 획득된 곳(예를 들어, 도시, 우편번호 또는 주 수준과 같은)으로 일반화 될 수 있다. 따라서, 사용자는 사용자에 관한 정보가 수집되고 및/또는 사용되는 방법을 제어할 수 있다. 예를 들어, 일부 구현예에서, 본 발명의 선택된 양태들로 구성된 메시지 교환 클라이언트들을 작동시키는 메시지 교환 스레드 참여자들은, 예를 들어, 메시지 교환 클라이언트를 비공개 상태로 또는 비공개 상태로부터의 전환을 원하는 참가자가 수동으로 그렇게 할 수 있도록, 메시지 교환 스레드 컨텐츠를 모니터링하지 않을 수 있다.
여러 구현예가 본 명세서에서 설명되고 도시되었지만, 그 기능을 수행하고 및/또는 결과를 획득하기 위한 다양한 다른 수단 및/또는 구조 및/또는 본 명세서에 기술된 하나 이상의 장점이 이용될 수 있으며, 이러한 각각의 변형 및/또는 수정은 본 명세서에 기술된 구현들의 범위 내에 있는 것으로 간주된다. 보다 일반적으로, 본 명세서에 기술된 모든 파라미터, 치수, 재료 및 구성들은 예시적인 것이며 실제 파라미터, 치수, 재료 및/또는 구성들은 그 교시(들)(teaching)가 사용되는 특정 애플리케이션 또는 애플리케이션에 의존할 것이다. 당업자는 일상적인 실험을 사용하여 본 명세서에 기술된 특정 구현들에 대한 많은 등가물을 인식하거나 확인할 수 있을 것이다. 따라서, 전술한 구현예들은 단지 예로서 제시된 것이며 첨부된 청구 범위 및 그 등가의 범위 내에서, 구체적으로 기술되고 청구된 것과 다르게 구현될 수 있음을 이해해야 한다. 본 발명의 구현은 본 명세서에 기술된 각각의 개별 특징, 시스템, 물품, 재료, 키트 및/또는 방법에 관한 것이다. 더욱이, 이러한 특징, 시스템, 물품, 재료, 키트 및/또는 방법이 서로 일치하지 않으면, 둘 이상의 이러한 특징, 시스템, 물품, 재료, 키트 및/또는 방법의 조합이 본 발명의 범위 내에 포함된다.

Claims (21)

  1. 컴퓨터 구현 방법으로서,
    하나 이상의 프로세서에 의해, 둘 이상의 개별 메시지 교환 클라이언트를 작동하는 둘 이상의 참가자 사이에서 진행중인 메시지 교환 스레드를 검사하는 단계;
    하나 이상의 프로세서에 의해, 검사에 적어도 부분적으로 기초하여, 진행중인 메시지 교환 스레드의 일부로서 둘 이상의 참가자 중 하나에 의해 둘 이상의 참가자 중 다른 하나로 향하는 하나 이상의 메시지가 둘 이상의 참가자 중 적어도 주어진 참가자에 의해 비공개(private)로 간주될 우도(likelihood)를 결정하는 단계;
    하나 이상의 프로세서에 의해, 상기 결정된 우도가 하나 이상의 임계치를 만족하는지 결정하는 단계;
    결정된 우도가 하나 이상의 임계치를 만족한다는 결정에 응답하여 둘 이상의 메시지 교환 클라이언트의 제1 메시지 교환 클라이언트를 비공개 상태로 자동으로 전환(transit)시키는 단계; 및
    둘 이상의 메시지 교환 클라이언트의 제2 메시지 교환 클라이언트로, 제2 메시지 교환 클라이언트가 비공개 상태로 전환되게 하는 커맨드를 전송하는 단계로서, 상기 전송은 결정된 우도가 하나 이상의 임계치를 만족한다는 결정에 응답하여 수행되는 컴퓨터 구현 방법.
  2. 제1항에 있어서,
    우도를 결정하는 단계는,
    진행중인 메시지 교환 스레드의 일부를 형성하는 하나 이상의 메시지의 컨텐츠에 적어도 부분적으로 기초하는 컴퓨터 구현 방법.
  3. 제1항 또는 제2항에 있어서,
    우도를 결정하는 단계는,
    주어진 참가자와 관련된 이력 사용자 행동(historical user behavior)에 더 기초하는 컴퓨터 구현 방법.
  4. 제3항에 있어서,
    상기 이력 사용자 행동은 주어진 참가자의 브라우징 이력을 포함하는 컴퓨터 구현 방법.
  5. 제4항에 있어서,
    이력 사용자 행동은 웹 브라우저와 관련된 비공개 상태의 주어진 참가자에 의한 이력 이용(utilization)을 더 포함하는 컴퓨터 구현 방법.
  6. 제3항에 있어서,
    이력 사용자 행동은 메시지 교환 클라이언트와 관련된 비공개 상태의 주어진 참가자에 의한 이력 이용을 포함하는 컴퓨터 구현 방법.
  7. 제1항에 있어서,
    우도를 결정하는 단계는,
    진행중인 메시지 교환 스레드에서 둘 이상의 참가자와 관련된 이력 행동에 더 기초하는 컴퓨터 구현 방법.
  8. 제1항에 있어서,
    우도를 결정하는 단계는,
    진행중인 메시지 교환 스레드 외부의 복수의 메시지 교환 스레드에서 복수의 참가자와 관련된 이력 행동에 더 기초하는 컴퓨터 구현 방법.
  9. 제8항에 있어서,
    복수의 메시지 교환 스레드에서 복수의 참가자와 관련된 이력 행동은,
    복수의 메시지 교환 스레드에서 교환된 하나 이상의 메시지의 컨텐츠와 복수의 참가자 중 하나 이상에 의한 비공개 상태로의 개별 메시지 교환 클라이언트의 수동 전환 사이의 하나 이상의 연관성을 포함하는 컴퓨터 구현 방법.
  10. 제8항에 있어서,
    우도를 결정하는 단계는,
    신경망 모델을 통해 주어진 참가자와 관련된 복수의 입력을 적용하는 단계를 포함하고, 상기 신경망 모델은 복수의 입력에 기초하여, 우도를 포함하는 출력을 제공하도록 트레이닝되는 컴퓨터 구현 방법.
  11. 제10항에 있어서,
    신경망 모델은 진행중인 메시지 교환 스레드에 참여하기 위해 주어진 참가자가 사용하는 컴퓨팅 디바이스에 저장되는 컴퓨터 구현 방법.
  12. 제11항에 있어서,
    신경망 모델은 주어진 참가자가 사용하는 컴퓨팅 디바이스로 다운로드되고, 상기 신경망 모델은 진행중인 메시지 교환 스레드 외부의 복수의 메시지 교환 스레드로부터 획득된 트레이닝 예제를 사용하여 트레이닝되는 컴퓨터 구현 방법.
  13. 제1항에 있어서,
    둘 이상의 메시지 교환 클라이언트의 제1 메시지 교환 클라이언트로부터 둘 이상의 메시지 교환 클라이언트의 제2 메시지 교환 클라이언트로, 제2 메시지 교환 클라이언트가 비공개 상태로 전환되게 하는 커맨드를 전송하는 단계를 포함하는 컴퓨터 구현 방법.
  14. 제1항에 있어서,
    비공개 상태에서, 둘 이상의 메시지 교환 클라이언트 중 하나 이상은,
    진행중인 메시지 교환 스레드의 일부로서 교환된 메시지 로그(log)의 적어도 일부를 난독화(obfuscates)하는 컴퓨터 구현 방법.
  15. 제1항에 있어서,
    비공개 상태에서, 둘 이상의 메시지 교환 클라이언트 중 하나 이상은,
    진행중인 메시지 교환 스레드의 일부로서 교환된 메시지의 로그를 업데이트하는 것을 적어도 일시적으로 억제하는 컴퓨터 구현 방법.
  16. 제1항에 있어서,
    둘 이상의 메시지 교환 클라이언트의 주어진 메시지 교환 클라이언트에 의해 상기 우도가 하나 이상의 임계치를 만족한다는 결정에 응답하여, 주어진 메시지 교환 클라이언트를 비공개 상태로 전환하기 위한 허가를 요청하는 프롬프트를 제공하는 단계를 더 포함하는 컴퓨터 구현 방법.
  17. 하나 이상의 프로세서 및 그 하나 이상의 프로세서와 동작 가능하게 결합된 메모리를 포함하는 시스템으로서, 상기 메모리는 하나 이상의 프로세서에 의한 명령들의 실행에 응답하여 하나 이상의 프로세서로 하여금:
    개별 메시지 교환 클라이언트를 작동하는 적어도 하나의 인간 참가자를 포함하는 진행중인 메시지 교환 스레드를 검사하고;
    검사에 적어도 부분적으로 기초하여, 적어도 하나의 인간 참가자에 의해 메시지 교환 스레드에 통합된 하나 이상의 메시지가 적어도 하나의 참가자에 의해 비공개로 간주될 우도를 결정하고;
    결정된 우도가 하나 이상의 임계치를 만족하는지 결정하고; 그리고
    결정된 우도가 하나 이상의 임계치를 만족한다는 결정에 응답하여 메시지 교환 클라이언트를 비공개 상태로 자동으로 전환시키고,
    상기 메시지 교환 클라이언트는 자동 전환 전에는 메시지 교환 클라이언트를 실행하는 컴퓨팅 디바이스에서 이용 가능한 메시지의 로그에, 메시지 교환 스레드에 통합된 모든 메시지를 저장하고;
    상기 메시지 교환 클라이언트는 자동 전환 후에는 상기 메시지의 로그에, 메시지 교환 스레드에 통합된 적어도 일부 메시지의 저장을 억제하는 것을 특징으로 하는 시스템.
  18. 제17항에 있어서,
    우도는 적어도 하나의 참가자와 관련된 이력 행동에 기초하여 추가로 결정되는 것을 특징으로 하는 시스템.
  19. 제17항에 있어서,
    진행중인 메시지 교환 스레드는 적어도 하나의 참가자와 자동화 어시스턴트사이의 인간 대 컴퓨터 대화를 포함하는 시스템.
  20. 하나 이상의 프로세서에 의한 명령들의 실행에 응답하여, 하나 이상의 프로세서로 하여금 다음의 동작들을 수행하게 하는 명령들을 포함하는 적어도 하나의 비-일시적 컴퓨터 판독 가능 매체로서, 상기 동작들은,
    둘 이상의 개별 메시지 교환 클라이언트를 작동하는 둘 이상의 참가자 사이에서 진행중인 메시지 교환 스레드를 검사하는 단계;
    검사에 적어도 부분적으로 기초하여, 진행중인 메시지 교환 스레드의 일부로서 둘 이상의 참가자 중 하나에 의해 둘 이상의 참가자 중 다른 하나로 향하는 하나 이상의 메시지가 둘 이상의 참가자 중 적어도 주어진 참가자에 의해 비공개로 간주될 우도를 결정하는 단계로서, 상기 우도를 결정하는 단계는 기계 학습 모델을 통해 복수의 입력을 적용하는 단계를 포함하고, 상기 기계 학습 모델은 복수의 입력에 기초하여 우도를 포함하는 출력을 제공하도록 트레이닝되고, 상기 복수의 입력은 주어진 참가자와 관련된 적어도 하나의 입력 및 상기 둘 이상의 참가자 중 하나 이상에 의해 둘 이상의 참가자 중 다른 하나로 향하는 하나 이상의 메시지에 대응하는 다른 입력을 포함하고;
    결정된 우도가 하나 이상의 임계치를 만족하는지 결정하는 단계; 및
    결정된 우도가 하나 이상의 임계치를 만족한다는 결정에 응답하여 둘 이상의 메시지 교환 클라이언트 중 하나 이상을 비공개 상태로 자동으로 전환시키는 단계를 포함하며, 상기 비공개 상태에서, 상기 둘 이상의 참가자는 진행중인 메시지 교환 스레드의 일부로서 교환된 메시지의 로그를 업데이트하는 것을 적어도 일시적으로 억제하는 비-일시적 컴퓨터 판독 가능 매체.
  21. 삭제
KR1020197026070A 2017-02-17 2017-10-31 비공개 상태와 공개 상태 사이의 전환 KR102125990B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/436,163 US10439966B2 (en) 2017-02-17 2017-02-17 Transitioning between private and non-private state
US15/436,163 2017-02-17
PCT/US2017/059400 WO2018151776A1 (en) 2017-02-17 2017-10-31 Transitioning between private and non-private state

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020207017351A Division KR102192066B1 (ko) 2017-02-17 2017-10-31 비공개 상태와 공개 상태 사이의 전환

Publications (2)

Publication Number Publication Date
KR20190108171A KR20190108171A (ko) 2019-09-23
KR102125990B1 true KR102125990B1 (ko) 2020-07-08

Family

ID=60481694

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020207035478A KR102296872B1 (ko) 2017-02-17 2017-10-31 비공개 상태와 공개 상태 사이의 전환
KR1020207017351A KR102192066B1 (ko) 2017-02-17 2017-10-31 비공개 상태와 공개 상태 사이의 전환
KR1020197026070A KR102125990B1 (ko) 2017-02-17 2017-10-31 비공개 상태와 공개 상태 사이의 전환

Family Applications Before (2)

Application Number Title Priority Date Filing Date
KR1020207035478A KR102296872B1 (ko) 2017-02-17 2017-10-31 비공개 상태와 공개 상태 사이의 전환
KR1020207017351A KR102192066B1 (ko) 2017-02-17 2017-10-31 비공개 상태와 공개 상태 사이의 전환

Country Status (8)

Country Link
US (4) US10439966B2 (ko)
EP (1) EP3568818A1 (ko)
JP (3) JP6862568B2 (ko)
KR (3) KR102296872B1 (ko)
CN (2) CN108460285B (ko)
DE (2) DE102017125200A1 (ko)
GB (1) GB2559830A (ko)
WO (1) WO2018151776A1 (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10439966B2 (en) * 2017-02-17 2019-10-08 Google Llc Transitioning between private and non-private state
US11605304B2 (en) * 2017-03-06 2023-03-14 International Business Machines Corporation Learning of policy for selection of associative topic in dialog system
US10355912B2 (en) * 2017-04-06 2019-07-16 At&T Intellectual Property I, L.P. Network trouble shooting digital assistant system
US10540521B2 (en) * 2017-08-24 2020-01-21 International Business Machines Corporation Selective enforcement of privacy and confidentiality for optimization of voice applications
US10999278B2 (en) 2018-10-11 2021-05-04 Spredfast, Inc. Proxied multi-factor authentication using credential and authentication management in scalable data networks
US10601937B2 (en) * 2017-11-22 2020-03-24 Spredfast, Inc. Responsive action prediction based on electronic messages among a system of networked computing devices
US11095621B2 (en) * 2018-09-18 2021-08-17 International Business Machines Corporation Selective cognitive security for communication data
US11024299B1 (en) * 2018-09-26 2021-06-01 Amazon Technologies, Inc. Privacy and intent-preserving redaction for text utterance data
US11379546B2 (en) * 2019-02-13 2022-07-05 The Toronto-Dominion Bank System and method for controlling visibility of elements of displayed electronic content
US11489818B2 (en) 2019-03-26 2022-11-01 International Business Machines Corporation Dynamically redacting confidential information
EP3731201B1 (en) * 2019-04-24 2022-11-09 ABB Schweiz AG A support system for an operator
CN111130989B (zh) * 2019-11-19 2021-07-20 维沃移动通信有限公司 一种信息显示、发送方法及电子设备
US20230037085A1 (en) * 2020-01-07 2023-02-02 Google Llc Preventing non-transient storage of assistant interaction data and/or wiping of stored assistant interaction data

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6510458B1 (en) 1999-07-15 2003-01-21 International Business Machines Corporation Blocking saves to web browser cache based on content rating
US20020191020A1 (en) 2001-06-18 2002-12-19 International Business Machines Corporation Method and apparatus for removing confindential information from a history
US7496500B2 (en) * 2004-03-01 2009-02-24 Microsoft Corporation Systems and methods that determine intent of data and respond to the data based on the intent
JP2005332343A (ja) * 2004-05-21 2005-12-02 Seishi Yagi 広告配信システム
US7603413B1 (en) * 2005-04-07 2009-10-13 Aol Llc Using automated agents to facilitate chat communications
US20070143423A1 (en) * 2005-12-21 2007-06-21 Oliver Kieselbach Method and system for allowing a session initiating user to select one or more privacy settings to be applied to an instant messaging session from among multiple possible privacy controls
JP4299846B2 (ja) * 2006-07-28 2009-07-22 Necインフロンティア株式会社 クライアント・サーバ型分散システム、クライアント装置、サーバ装置及びそれらに用いるメッセージ暗号方法
US7509384B1 (en) 2008-05-29 2009-03-24 International Business Machines Corporation Integrated method of ensuring instant messaging security on confidential subject matter
US20100005402A1 (en) 2008-07-01 2010-01-07 International Business Machines Corporation System and Apparatus for Whispering in Group Chats
US20100082751A1 (en) * 2008-09-29 2010-04-01 Microsoft Corporation User perception of electronic messaging
US20100162388A1 (en) 2008-12-19 2010-06-24 Ernest Samuel Baugher Wireless mobile device with automatic segregation of received messages for private and public access
US9154564B2 (en) * 2010-11-18 2015-10-06 Qualcomm Incorporated Interacting with a subscriber to a social networking service based on passive behavior of the subscriber
US8789198B2 (en) 2011-01-14 2014-07-22 International Business Machines Corporation Triggering a private browsing function of a web browser application program
US8464350B2 (en) 2011-03-14 2013-06-11 International Business Machines Corporation System and method for in-private browsing
US20120284618A1 (en) * 2011-05-06 2012-11-08 Microsoft Corporation Document based contextual communication
KR101328389B1 (ko) * 2011-09-30 2013-11-13 고려대학교 산학협력단 메신저 피싱을 탐지하는 장치 및 방법
US20130117391A1 (en) 2011-11-07 2013-05-09 LaVoult.com, LLC Messaging System
US8935798B1 (en) 2011-11-08 2015-01-13 Google Inc. Automatically enabling private browsing of a web page, and applications thereof
US8893287B2 (en) 2012-03-12 2014-11-18 Microsoft Corporation Monitoring and managing user privacy levels
US20130246525A1 (en) * 2012-03-16 2013-09-19 Salesforce.Com, Inc. Instant transition from a public conversation thread to a private chat or instant message environment
US9634977B2 (en) 2012-10-01 2017-04-25 Salesforce.Com, Inc. Systems and methods of redactive messaging
KR102050814B1 (ko) * 2013-04-02 2019-12-02 삼성전자주식회사 그룹 대화에서 사적 대화 제공 장치 및 방법
US9800525B1 (en) * 2013-09-25 2017-10-24 Amazon Technologies, Inc. Profile-based integrated messaging platform
US9553833B2 (en) 2013-12-06 2017-01-24 Verizon Patent And Licensing Inc. Confidential messages in a group chat
US9519408B2 (en) 2013-12-31 2016-12-13 Google Inc. Systems and methods for guided user actions
US20150215247A1 (en) * 2014-01-27 2015-07-30 applicant Selecting a communication mode
US9544257B2 (en) * 2014-04-04 2017-01-10 Blackberry Limited System and method for conducting private messaging
MX2016013962A (es) 2014-04-24 2017-04-27 Idis Tech Ip Ltd Aplicacion de mensajeria privada y metodos asociados.
US20150319141A1 (en) 2014-04-30 2015-11-05 Frankly Co. Unsend feature in messaging applications
CN105554711A (zh) 2014-10-29 2016-05-04 宇龙计算机通信科技(深圳)有限公司 一种短信保护方法、装置及终端
WO2016082194A1 (zh) 2014-11-28 2016-06-02 华为技术有限公司 消息处理方法及装置
CN106034068A (zh) * 2015-03-20 2016-10-19 阿里巴巴集团控股有限公司 群聊中进行私聊的方法、装置、客户端、服务器及系统
CN105119799B (zh) * 2015-06-15 2019-11-19 阿里巴巴集团控股有限公司 即时通讯消息处理方法及客户端
US9954808B2 (en) * 2015-06-24 2018-04-24 International Business Machines Corporation Collecting messages from a group chat window that mention a specific user
US9788200B2 (en) * 2016-02-29 2017-10-10 Motorola Solutions, Inc. Mobile communications device with a private zone and a non-private zone and methods of displaying communications in the same
CN106055941A (zh) * 2016-05-24 2016-10-26 珠海市魅族科技有限公司 一种终端方法及装置
US11068519B2 (en) * 2016-07-29 2021-07-20 Microsoft Technology Licensing, Llc Conversation oriented machine-user interaction
US20180089308A1 (en) * 2016-09-27 2018-03-29 International Business Machines Corporation Notification of potentially problematic textual messages
US10008128B1 (en) * 2016-12-02 2018-06-26 Imam Abdulrahman Bin Faisal University Systems and methodologies for assisting communications
US20180165582A1 (en) * 2016-12-08 2018-06-14 Facebook, Inc. Systems and methods for determining sentiments in conversations in a chat application
US10140274B2 (en) * 2017-01-30 2018-11-27 International Business Machines Corporation Automated message modification based on user context
US10439966B2 (en) 2017-02-17 2019-10-08 Google Llc Transitioning between private and non-private state
KR102365688B1 (ko) * 2017-04-06 2022-02-22 삼성전자주식회사 자연어 이해에 기반한 콘텐트 제공 방법 및 이를 수행하는 전자 장치

Also Published As

Publication number Publication date
JP7331032B2 (ja) 2023-08-22
US10439966B2 (en) 2019-10-08
US11695716B2 (en) 2023-07-04
GB201717537D0 (en) 2017-12-06
DE102017125200A1 (de) 2018-08-23
US20230308407A1 (en) 2023-09-28
JP6862568B2 (ja) 2021-04-21
KR20200074269A (ko) 2020-06-24
JP7528328B2 (ja) 2024-08-05
KR20190108171A (ko) 2019-09-23
GB2559830A (en) 2018-08-22
KR102192066B1 (ko) 2020-12-16
US11153241B2 (en) 2021-10-19
WO2018151776A1 (en) 2018-08-23
DE202017106516U1 (de) 2018-03-06
CN108460285A (zh) 2018-08-28
CN114579989A (zh) 2022-06-03
US20180241703A1 (en) 2018-08-23
KR20200142106A (ko) 2020-12-21
JP2023160819A (ja) 2023-11-02
US20210409361A1 (en) 2021-12-30
EP3568818A1 (en) 2019-11-20
CN108460285B (zh) 2022-02-01
JP2021119468A (ja) 2021-08-12
KR102296872B1 (ko) 2021-09-01
US20190394151A1 (en) 2019-12-26
US12120075B2 (en) 2024-10-15
JP2020507867A (ja) 2020-03-12

Similar Documents

Publication Publication Date Title
KR102125990B1 (ko) 비공개 상태와 공개 상태 사이의 전환
CN110710170B (zh) 向群组聊天参与者的对新内容的前摄提供
US10635832B2 (en) Conditional disclosure of individual-controlled content in group contexts
CN110622126A (zh) 通过自动化助理来提供对用户控制资源的访问
JP2020502682A (ja) 対話型アシスタントモジュールによるアクセスの条件付き提供

Legal Events

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