KR20170141248A - 컴퓨팅 디바이스의 사용자에게 권고들을 선행적으로 제공하기 위한 시스템들 및 방법들 - Google Patents

컴퓨팅 디바이스의 사용자에게 권고들을 선행적으로 제공하기 위한 시스템들 및 방법들 Download PDF

Info

Publication number
KR20170141248A
KR20170141248A KR1020177034706A KR20177034706A KR20170141248A KR 20170141248 A KR20170141248 A KR 20170141248A KR 1020177034706 A KR1020177034706 A KR 1020177034706A KR 20177034706 A KR20177034706 A KR 20177034706A KR 20170141248 A KR20170141248 A KR 20170141248A
Authority
KR
South Korea
Prior art keywords
application
computing device
mobile computing
search
user
Prior art date
Application number
KR1020177034706A
Other languages
English (en)
Other versions
KR102029568B1 (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 KR20170141248A publication Critical patent/KR20170141248A/ko
Application granted granted Critical
Publication of KR102029568B1 publication Critical patent/KR102029568B1/ko

Links

Images

Classifications

    • G06F9/4446
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • G06F9/4451User profiles; Roaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/453Help systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72448User interfaces specially adapted for cordless or mobile telephones with means for adapting the functionality of the device according to specific conditions
    • H04M1/72454User interfaces specially adapted for cordless or mobile telephones with means for adapting the functionality of the device according to specific conditions according to context-related or environment-related conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72469User interfaces specially adapted for cordless or mobile telephones for operating the device by selecting functions from two or more displayed items, e.g. menus or icons
    • H04M1/72472User interfaces specially adapted for cordless or mobile telephones for operating the device by selecting functions from two or more displayed items, e.g. menus or icons wherein the items are sorted according to specific criteria, e.g. frequency of use
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus

Abstract

본 명세서에 기술된 실시예들은 사용자가 그의 또는 그녀의 모바일 컴퓨팅 디바이스 상에서 검색 애플리케이션을 활성화시킬 때를 식별하고, 사용자로부터 검색 파라미터들의 입력을 수신하기에 앞서, 사용자가 액세스하는 데에 관심이 있을 수 있는 하나 이상의 애플리케이션들의 예측치를 제시하기 위한 기법들을 설명한다. 일부 실시예들에 따르면, 검색 애플리케이션은 검색 애플리케이션이 활성화될 때마다 "애플리케이션 예측 엔진"과 인터페이싱하도록, 그리고 사용자가 액세스하는 데에 관심이 있을 수 있는 하나 이상의 애플리케이션들의 예측치에 대해 애플리케이션 예측 엔진에 질의하도록 구성될 수 있다. 이어서, 애플리케이션 예측 엔진은 모바일 컴퓨팅 디바이스 상에 설치된 애플리케이션들과 연관된 정보를 분석하여 예측치를 생성할 수 있다. 예측치를 사용하여, 검색 애플리케이션은 사용자에 의한 선택을 위해 검색 애플리케이션의 사용자 인터페이스 내에 예측된 하나 이상의 애플리케이션들을 디스플레이할 수 있다.

Description

컴퓨팅 디바이스의 사용자에게 권고들을 선행적으로 제공하기 위한 시스템들 및 방법들
기술되는 실시예들은 컴퓨팅 디바이스의 사용자에게 권고들을 선행적으로(proactively) 제공하기 위한 기법을 설명한다.
최근 몇 년 동안은 모바일 컴퓨팅 디바이스들(예컨대, 스마트폰들 및 태블릿들)의 소비자 채택의 폭이 넓어졌다는 것을 보여주었다. 모바일 컴퓨팅 디바이스들과 전통적인 컴퓨팅 디바이스들(예컨대, 데스크톱 컴퓨터들) 사이의 눈에 띄는 차이점은 모바일 컴퓨팅 디바이스들이 이들의 사용자들에게 고도로 개인맞춤화된 다양한 기능들을 수행하도록 온종일 지속적으로 사용되는 경향이 있다는 점이다. 그러한 기능들은 사용자가, 예를 들어, 메시지들(예컨대, 이메일들, 채팅들 등)을 전송 및 수신할 수 있게 하고 웹을 브라우징할 수 있게 하고 음악을 들을 수 있게 하고 사진을 찍을 수 있게 하고 등등을 할 수 있게 하는 애플리케이션들을 활성화 및 비활성화시키는 것을 포함할 수 있다. 특히, 사용자의 그의 또는 그녀의 모바일 컴퓨팅 디바이스와의 상호작용은, 적어도 일부 영역들에서는, 강력하고 신뢰할 수 있는 거동 패턴을 따를 수 있다. 예를 들어, 사용자는, 전형적으로, 식별가능한 방식으로 온종일 여러 차례 상이한 서브세트의 애플리케이션들에 액세스하는데, 이는 - 특히, 사용자가 그의 또는 그녀의 모바일 컴퓨팅 디바이스 상에서 용이하게 액세스가능하지 않은 (예컨대, 홈 스크린 상에서 보이는) 애플리케이션들을 검색하는 번거로운 프로세스를 겪는 시나리오들에서 - 사용자의 전반적인 경험을 향상시킬 가능성을 야기한다.
본 명세서에 기술되는 실시예들은 사용자가 그의 또는 그녀의 모바일 컴퓨팅 디바이스 상에서 검색 애플리케이션을 활성화시킬 때의 마찰을 감소시키기 위한 기법들을 설명한다. 구체적으로는, 이 기법은, 사용자로부터 검색 파라미터들의 입력을 수신하기에 앞서, 사용자가 액세스하는 데에 관심이 있을 수 있는 하나 이상의 애플리케이션들의 예측치(prediction)를 제시하는 것을 수반하는데, 이는 사용자가 검색 파라미터들을 검색 애플리케이션에 수동으로 제공해야 할 가능성 또는 필요성을 감소시킬 수 있다. 일부 실시예들에 따르면, 검색 애플리케이션은 검색 애플리케이션이 활성화될(예컨대, 모바일 컴퓨팅 디바이스의 사용자 인터페이스 내에 디스플레이될) 때마다 예측 엔진 - 본 명세서에서 "애플리케이션 예측 엔진"이라고 지칭됨 - 과 인터페이싱하도록 구성될 수 있다. 더 구체적으로는, 검색 애플리케이션이 애플리케이션 예측 엔진과 인터페이싱할 때, 검색 애플리케이션은 사용자가 액세스하는 데에 관심이 있을 수 있는 하나 이상의 애플리케이션들의 예측치에 대한 요청을 발행할 수 있다. 이어서, 애플리케이션 예측 엔진은 모바일 컴퓨팅 디바이스 상에 설치된 애플리케이션들과 연관된 정보를 분석하여 예측치를 생성할 수 있다. 이어서, 검색 애플리케이션은 사용자에 의한 선택을 위해 검색 애플리케이션의 사용자 인터페이스 내에 예측된 하나 이상의 애플리케이션들을 디스플레이할 수 있다.
일 실시예는 모바일 컴퓨팅 디바이스의 사용자에게 예측치들을 제공하기 위한 방법을 설명한다. 구체적으로는, 방법은 모바일 컴퓨팅 디바이스 상에서 실행되는 애플리케이션 예측 엔진에 의해 구현되고, (1) 모바일 컴퓨팅 디바이스 상에서 실행되는 검색 애플리케이션으로부터, 모바일 컴퓨팅 디바이스 상에 설치되고 사용자가 활성화에 관심이 있을 수 있는 하나 이상의 애플리케이션들의 예측치를 제공하라는 요청을 수신하는 단계, (2) 모바일 컴퓨팅 디바이스 상에 설치되는 애플리케이션들의 리스트를 식별하는 단계, (3) 애플리케이션들의 리스트에 포함된 각각의 애플리케이션에 대해: (i) 애플리케이션에 대응하는 하나 이상의 데이터 신호들에 대해 하나 이상의 기능들을 수행함으로써 애플리케이션에 대한 스코어를 생성하는 단계, 및 (ii) 스코어를 애플리케이션과 연관시키는 단계, (4) 생성된 스코어들에 따라 애플리케이션들의 리스트를 필터링하여 애플리케이션들의 필터링된 리스트를 생성하는 단계, (5) 애플리케이션들의 필터링된 리스트로 예측치를 채우는 단계, 및 (6) 예측치를 검색 애플리케이션에 제공하는 단계를 포함한다.
다른 실시예는 모바일 컴퓨팅 디바이스의 사용자에게 예측치들을 제시하기 위한 방법을 설명한다. 구체적으로는, 방법은 모바일 컴퓨팅 디바이스 상에서 실행되는 검색 애플리케이션에 의해 구현되고, (1) 검색 애플리케이션의 활성화를 검출하는 단계, (2) 모바일 컴퓨팅 디바이스 상에 설치되고 사용자가 활성화에 관심이 있을 수 있는 하나 이상의 애플리케이션들의 예측치에 대한 요청을 애플리케이션 예측 엔진에 발행하는 단계, (3) 애플리케이션 예측 엔진으로부터 예측치를 수신하는 단계 - 예측치는 하나 이상의 애플리케이션들의 리스트를 포함하고, 각각의 애플리케이션은 각각의 스코어와 연관됨 -, 및 (4) 스코어들에 따라, 검색 애플리케이션의 사용자 인터페이스 내에, 하나 이상의 애플리케이션들 중 적어도 하나의 애플리케이션에 대한 사용자 인터페이스 엔트리를 디스플레이하는 단계를 포함한다.
또 다른 실시예는 모바일 컴퓨팅 디바이스의 사용자에게 예측치들을 제시하도록 구성된 모바일 컴퓨팅 디바이스를 설명한다. 구체적으로는, 모바일 컴퓨팅 디바이스는 검색 애플리케이션을 실행하도록 구성된 프로세서를 포함하고, 검색 애플리케이션은, (1) 검색 애플리케이션의 활성화를 검출하는 단계, 및 (2) 검색 애플리케이션의 사용자 인터페이스 내에 사용자로부터의 입력을 수신하기에 앞서: (i) 모바일 컴퓨팅 디바이스 상에 설치되고 사용자가 활성화에 관심이 있을 수 있는 하나 이상의 애플리케이션들의 리스트에 대한 요청을, 모바일 컴퓨팅 디바이스 상에서 실행되는 애플리케이션 예측 엔진에 발행하는 단계, (ii) 애플리케이션 예측 엔진으로부터 리스트를 수신하는 단계, 및 (iii) 검색 애플리케이션의 사용자 인터페이스 내에, 리스트에 포함된 하나 이상의 애플리케이션들 중 적어도 하나의 애플리케이션에 대한 사용자 인터페이스 엔트리를 디스플레이하는 단계를 포함하는 단계들을 수행하도록 구성된다. 상기 나타낸 바와 같이, 프로세서는 또한 애플리케이션 예측 엔진을 실행하도록 구성되고, 여기서 애플리케이션 예측 엔진은, (1) 검색 애플리케이션으로부터, 사용자가 활성화에 관심이 있을 수 있는 하나 이상의 애플리케이션들의 리스트에 대한 요청을 수신하는 단계, (2) 리스트를 생성하는 단계, 및 (3) 리스트를 검색 애플리케이션에 제공하는 단계를 포함하는 단계들을 수행하도록 구성된다.
다른 실시예들은, 프로세서에 의해 실행될 때, 프로세서로 하여금 본 명세서에 설명되는 전술한 기법들 중 임의의 것을 구현하게 하는 명령어들을 저장하도록 구성된 비일시적 컴퓨터 판독가능 매체를 포함한다.
본 발명의 내용은 단지 본 명세서에 기술되는 주제의 일부 태양들에 대한 기본적인 이해를 제공하도록 일부 예시적인 실시예들을 요약하기 위한 목적으로 제공될 뿐이다. 따라서, 전술된 특징들은 단지 예시일 뿐이고 본 명세서에 기술되는 주제의 범주 또는 사상을 어떤 방식으로든 한정하여 해석되어서는 안된다는 것을 이해할 것이다. 본 명세서에 기술되는 주제의 다른 특징들, 태양들 및 이점들은 하기의 상세한 설명, 도면 및 청구범위로부터 명백해질 것이다.
본 명세서에 기술되는 실시예들의 다른 태양들 및 이점들은 기술되는 실시예들의 원리들을 예로서 도시하는 첨부 도면들과 함께 취해지는 하기의 상세한 설명으로부터 명백하게 될 것이다.
포함된 도면들은 예시의 목적을 위한 것이며 무선 컴퓨팅 디바이스들에의 적용을 위해 개시되는 발명 장치들 및 방법들에 대한 가능한 구조들 및 배열들의 예들을 제공하는 역할을 할 뿐이다. 이러한 도면들은 실시예들의 기술적 사상 및 범주를 벗어나지 않고서 당업자에 의해 실시예들에 행해질 수 있는 형태 및 세부사항의 어떠한 변경에도 결코 제한을 두지 않는다. 실시예들은 첨부 도면들과 함께 하기의 발명을 실시하기 위한 구체적인 내용에 의해 용이하게 이해될 것이며, 도면에서 유사한 도면 부호들은 유사한 구조적 요소들을 지정한다.
도 1은 일부 실시예들에 따른, 본 명세서에 기술되는 다양한 기법들을 구현하도록 구성된 모바일 컴퓨팅 디바이스의 상이한 컴포넌트들의 블록 다이어그램을 도시한다.
도 2는 일부 실시예들에 따른, 도 1의 애플리케이션 예측 엔진에 의해 구현되는 방법을 도시한다.
도 3은 일부 실시예들에 따른, 도 1의 검색 애플리케이션에 의해 구현되는 방법을 도시한다.
도 4는 일부 실시예들에 따른, 도 1의 검색 애플리케이션의 예시적인 사용자 인터페이스의 개념적 다이어그램을 도시한다.
도 5는 일부 실시예들에 따른, 본 명세서에 기술되는 다양한 컴포넌트들을 구현하는 데 사용될 수 있는 컴퓨팅 디바이스의 상세도를 도시한다.
이 섹션에서는 현재 기술되는 실시예들에 따른 장치들 및 방법들의 대표적인 응용예들이 제공된다. 이러한 예들은 단지 내용을 부가하고 기술되는 실시예들의 이해에 도움을 주기 위해서만 제공되고 있다. 따라서, 당업자에게는 현재 기술되는 실시예들이 이러한 구체적인 상세사항들의 일부 또는 전부가 없이도 실시될 수 있음이 명백할 것이다. 다른 경우들에서, 잘 알려진 프로세스 단계들은 현재 기술되는 실시예들을 불필요하게 모호하게 하는 것을 회피하기 위해 상세히 기술되지 않았다. 다른 적용예들이 가능하여, 하기의 예들이 제한하는 것으로 간주되어서는 안 된다.
본 명세서에 기술되는 실시예들은, 사용자가 그의 또는 그녀의 모바일 컴퓨팅 디바이스 상에서 검색 애플리케이션을 활성화시킬 때를 식별하고, 사용자로부터 검색 파라미터들의 입력을 수신하기에 앞서, 사용자가 액세스하는 데에 관심이 있을 수 있는 하나 이상의 애플리케이션들의 예측치를 제시하기 위한 기법들을 설명한다. 일부 실시예들에 따르면, 검색 애플리케이션은 검색 애플리케이션이 활성화될(예컨대, 모바일 컴퓨팅 디바이스의 사용자 인터페이스 내에 디스플레이될) 때마다 애플리케이션 예측 엔진과 인터페이싱하도록, 그리고 사용자가 액세스하는 데에 관심이 있을 수 있는 하나 이상의 애플리케이션들의 예측치에 대해 애플리케이션 예측 엔진에 질의하도록 구성될 수 있다. 이어서, 애플리케이션 예측 엔진은 모바일 컴퓨팅 디바이스 상에 설치된 애플리케이션들과 연관된 정보를 분석하여 예측치를 생성할 수 있다. 이러한 정보는, 예를 들어, 애플리케이션 설치 타임스탬프들, 애플리케이션 활성화 타임스탬프들, 애플리케이션 활성화 총계들, 애플리케이션 사용 메트릭(metric)들, 메인 사용자 인터페이스 내(예컨대, 홈 스크린 상, 폴더 내 등)의 애플리케이션 아이콘들의 위치들, 사용자에 의해 최근에 제공된 검색 파라미터들, 이전 예측치들이 정확하였는지 여부를 나타내는 수집된 피드백 등을 포함할 수 있는데, 이는 애플리케이션 예측 엔진이 검색 애플리케이션에 의미있고 관련있는 예측치들을 제공할 수 있게 할 수 있다. 이어서, 검색 애플리케이션은 사용자에 의한 선택을 위해 검색 애플리케이션의 사용자 인터페이스 내에 예측된 하나 이상의 애플리케이션들을 디스플레이할 수 있다. 특히, 이러한 기법은 사용자가 특정 애플리케이션에 액세스하려고 시도하고 있을 때마다 그 또는 그녀가 검색 파라미터들을 입력하는 번거로운 프로세스를 겪게 되는 사건들을 실질적으로 감소시킬 수 있는데, 이는 사용자의 모바일 컴퓨팅 디바이스에 대한 그의 또는 그녀의 전반적인 만족도에 대해 실질적인 개선을 제공할 수 있다.
본 명세서에 설명되는 실시예들은 사용자가 액세스하기를 원할 수 있는 애플리케이션들을 예측하도록 구성된 애플리케이션 예측 엔진들을 주로 수반하지만, 상이한 종류들의 예측치들(예컨대, 사용자가 접촉할 가능성이 있는 사람들)을 제공하는 역할을 하는 다른 예측 엔진들이 모바일 컴퓨팅 디바이스 내에서 구현될 수 있다는 것에 주목한다. 더 구체적으로는, 일부 실시예들에 따르면, 각각의 예측 엔진은 자신을 모바일 컴퓨팅 디바이스 내의 특정 예측 카테고리에 대한 "전문가"로서 할당하도록 구성될 수 있다. 예를 들어, 애플리케이션 예측 엔진은 자신을 "애플리케이션" 예측 카테고리에 대한 전문가로서 할당하여, 애플리케이션 예측 엔진이 모바일 컴퓨팅 디바이스의 사용자가 액세스하는 데에 관심이 있을 수 있는 애플리케이션들을 예측하는 것을 전문으로 함을 나타낼 수 있다. 일부 실시예들에 따르면, 애플리케이션 예측 엔진은 애플리케이션 예측 엔진이 데이터(예컨대, 전술된 정보)를 분석할 수 있게, 그리고 데이터에 따라 예측치들을 제공할 수 있게 하는 학습 모델들을 채용할 수 있다. 본 발명은 학습 모델들을 구현하도록 구성된 애플리케이션 예측 엔진을 주로 논의하지만, 거동 데이터를 분석하기 위한, 그리고 예측치들을 제공하기 위한 임의의 기법이 본 명세서에 기술된 애플리케이션 예측 엔진에 의해 채용될 수 있다는 것에 주목한다. 더욱이, 애플리케이션 예측 엔진은 상이한 유형들의 사용자 디바이스들에 대한 전문화된 예측치들을 제공하기 위해 상이한 유형들의 사용자 디바이스들(예컨대, 스마트폰들, 태블릿들, 시계들, 랩톱들 등)에 걸쳐 기능이 달라질 수 있다는 것에 주목한다. 예를 들어, 제1 유형의 애플리케이션 예측 엔진은 스마트폰들에 할당될 수 있고, 제2 유형의 애플리케이션 예측 엔진은 태블릿들에 할당될 수 있고, 등등이다.
상기에 설명된 바와 같이, 모바일 컴퓨팅 디바이스 상에서 구현되는 각각의 예측 엔진은 자신을 모바일 컴퓨팅 디바이스 내의 하나 이상의 예측 카테고리들에 대한 전문가로서 할당할 수 있다. 그 결과, 일부 경우들에서, 2개 이상의 애플리케이션 예측 엔진들이 자신을 "애플리케이션" 예측 카테고리에 대한 전문가들로서 할당할 수 있다. 이러한 시나리오에서, 본 명세서에 기술되는 검색 애플리케이션이 예측치에 대한 요청을 발행할 때, 2개 이상의 애플리케이션 예측 엔진들의 각각의 애플리케이션 예측 엔진은 (예컨대, 애플리케이션 예측 엔진들에 의해 채용된 학습 모델들에 따라) 그 자신의 분석을 수행하고, 요청에 따라 예측치를 생성할 것이다. 이러한 시나리오에서, 예측치에 대한 요청에 응답하여 적어도 2개 이상의 예측치들이 생성되는데, 이는 검색 애플리케이션이 해석하는 것이 가능하지 않을 수도 있는 리던던시(redundancy)들 및 경쟁 예측치들을 확립할 수 있다.
따라서, 실시예들은 또한 애플리케이션 예측 엔진들과 검색 애플리케이션 사이의 중개자로서 역할을 하도록 구성된 "예측 센터"를 설명한다. 이러한 기능을 제공하기 위해, 예측 센터는 자신을 예측 엔진들(예컨대, 애플리케이션 예측 엔진들)이 하나 이상의 예측 카테고리들(예컨대, "애플리케이션" 예측 카테고리)에 대한 전문가들로서 할당할 것을 초기화 및 시도할 때 이들에 대한 레지스트라(registrar)로서 역할을 하도록 구성될 수 있다. 유사하게, 일부 실시예들에 따르면, 예측 센터는, 또한, 모바일 컴퓨팅 디바이스 내에서 상이한 유형들의 예측 카테고리들을 관리하도록 구성될 수 있어서, 소비자 애플리케이션들(예컨대, 본 명세서에 기술되는 검색 애플리케이션)은 제공될 수 있는 예측치들의 카테고리들을 식별하도록 예측 센터에 질의할 수 있다. 이러한 방식으로, 소비자 애플리케이션이 특정 예측 카테고리에 대한 예측치에 대한 요청을 발행하고 2개 이상의 예측 엔진들이 이들의 각각의 예측치(들)로 응답할 때, 예측 센터는 소비자 애플리케이션에 의해 발행된 요청에 응답하기에 앞서 예측치들을 수신 및 프로세싱하도록 구성될 수 있다. 예측치들을 프로세싱하는 것은, 예를 들어, 예측치들에 걸쳐 존재하는 중복 정보를 제거하는 것, 예측 엔진들과 연관된 이력 성능(즉, 정확도) 메트릭들에 따라 예측치들에 가중치들을 적용하는 것, 예측치들을 생성할 때 예측 엔진들에 의해 통지된 스코어들에 따라 예측치들을 분류하는 것 등을 수반할 수 있다. 이러한 방식으로, 예측 센터는 다수의 예측치들을 최적화된 예측치로 추출할 수 있고, 최적화된 예측치를 소비자 애플리케이션에 제공할 수 있다. 따라서, 이러한 설계는 유리하게 소비자 애플리케이션들의 동작 요건들을 단순화하고(이는 이들이 다수의 예측치들을 프로세싱할 수 있을 필요가 없기 때문이다), 손이 많이 가는 작업(heavy lifting)을 예측 센터에 통합시키고, 소비자 애플리케이션들이 관심 예측 카테고리에 대한 전문가들로서 자신을 할당한 다양한 예측 엔진들의 입력을 나타내는 예측치를 획득할 수 있게 한다.
따라서, 상기에 설명된 상이한 기법들은 검색 애플리케이션이 예측 센터와 상호작용하여 잠재적으로 전반적인 사용자 경험을 향상시키는 데 이용될 수 있는 예측치들을 수신할 수 있게 한다. 일부 경우들에서, 검색 애플리케이션이 예측 센터/애플리케이션 예측 엔진에 피드백을 제공하여 예측치가 정확하였는지 여부를 나타내는 것이 유익할 수 있다. 그러한 피드백은, 예를 들어 학습 알고리즘들이 애플리케이션 예측 엔진들에 의해 구현될 때 유리할 수 있는데, 이는 피드백이 학습 알고리즘들을 "훈련"하고 이들의 예측치들의 전반적인 정확도를 개선시키는 데 이용될 수 있기 때문이다. 예를 들어, 애플리케이션 예측 엔진이 특정 애플리케이션이 사용자에 의해 활성화될 가능성이 가장 큰 예측치를 생성할 때(예컨대, 사용자로부터 검색 입력을 수신하기에 앞서 검색 애플리케이션 내에 디스플레이될 때), 검색 애플리케이션은 예측치가 유효함(예컨대, 특정 애플리케이션이 사용자에 의해 선택 및 활성화되었음)을 나타내는 피드백을 제공할 수 있다. 이어서, 애플리케이션 예측 엔진은 유사한 예측치 및 후속 예측치가 예측 엔진에 의해 생성될 때 통지되는 스코어들을 증가시킬 수 있다.
또한, 예측 센터의 아키텍처는, 본 명세서에 기술되는 상이한 엔티티들 - 예컨대, 애플리케이션 예측 엔진들 - 이 모바일 컴퓨팅 디바이스 내의 모듈러 컴포넌트들로서 기능할 수 있게 하는 방식으로 구성될 수 있다는 것에 주목한다. 하나의 아키텍처 접근법에서, 각각의 애플리케이션 예측 엔진은 포맷(예컨대, 트리형 구조)이 예측 센터에 의해 이해되고 예측 센터가 애플리케이션 예측 엔진의 기능을 구현하기 위한 플랫폼으로서 기능할 수 있게 하는 번들로서 구성될 수 있다. 이러한 접근법에 따르면, 예측 센터는, 예를 들어, 모바일 컴퓨팅 디바이스 내에 상주하는 상이한 번들들을 식별하기 위해 (예컨대, 초기화할 때) 상이한 파일 시스템 경로들을 파싱하도록 구성될 수 있다. 이러한 방식으로, 번들들은, 편리하게, 모바일 컴퓨팅 디바이스의 파일 시스템에 추가되고, 그 내에서 업데이트되고, 그로부터 제거되어, 그에 의해 모바일 컴퓨팅 디바이스에 대한 실질적인 업데이트들(예컨대, 운영 체제 업그레이드들)을 필요로 하지 않고서 시간이 지남에 따라 효율적으로 진화할 수 있는 모듈러 구성을 촉진시킬 수 있다. 예를 들어, 애플리케이션 예측 엔진은 애플리케이션 예측 엔진에 의해 구현되는 로직의 전부 또는 일부가 (예컨대, OTA(over the air) 업데이트를 통해) 업데이트될 수 있게 하는 방식으로 구성될 수 있다. 전술한 아키텍처들은 예시적인 것이고, 본 명세서에 기술되는 다양한 엔티티들이 서로 통신할 수 있게 그리고 이들의 상이한 기능들을 제공할 수 있게 하는 임의의 아키텍처가 사용될 수 있다는 것에 주목한다.
추가적으로, 예측 센터/애플리케이션 예측 엔진들은, 또한, 예측치들을 생성할 때 발생하는 프로세싱의 양을 감소시키는 데 사용될 수 있는 하나 이상의 캐시들을 구현하도록 구성될 수 있다. 일부 실시예들에 따르면, 예측치는, 생성 시에, 예측치가 저장되는 캐시로부터 예측치가 제거되어야 하는 때를 나타내는 "유효성 파라미터들"에 의해 수반될 수 있다. 유효성 파라미터들 - 본 명세서에서 "만료 정보"로도 지칭됨 - 은, 예를 들어, 시간 기반 만료들, 이벤트 기반 만료들 등을 정의할 수 있다. 이러한 방식으로, 애플리케이션 예측 엔진이 검색 애플리케이션으로부터의 예측치에 대한 요청들을 빈번하게 수신할 때, 애플리케이션 예측 엔진은 예측치에 대한 반복된 요청들을 프로세싱할 때 다르게 발생할 장래의 프로세싱의 양을 실질적으로 감소시키기 위해 예측치를 생성 및 캐싱할 수 있다. 예측 센터/애플리케이션 예측 엔진들은 다양한 접근법들을 이용하여 예측치들을 캐싱하도록 구성될 수 있다는 것에 주목한다. 예를 들어, 이용가능한 캐시 메모리가 제한될 때, 예측 센터/애플리케이션 예측 엔진들은 임계 횟수로(예컨대, 시간 윈도우 내에서) 예측치들을 생성하도록, 그리고 임계치가 만족될 때, 예측치를 캐싱하고 (만료 정보가 예측치가 유효함을 나타내는 한) 예측치에 대한 후속 요청들에 대해 캐시를 참조하는 것으로 이행하도록 구성될 수 있다.
따라서, 본 명세서에 기술되는 실시예들은, 사용자가 그의 또는 그녀의 모바일 컴퓨팅 디바이스 상에서 검색 애플리케이션을 활성화시킬 때를 식별하고, 사용자로부터 검색 파라미터들의 입력을 수신하기에 앞서, 사용자가 액세스하는 데에 관심이 있을 수 있는 하나 이상의 애플리케이션들의 예측치를 제시하기 위한 기법들을 설명한다. 이러한 기법들에 대한 더 상세한 논의는 아래에 설명되며, 이러한 기법들을 구현하는 데 사용될 수 있는 시스템들, 방법들, 및 사용자 인터페이스들의 상세한 다이어그램들을 도시하는 도 1 내지 도 5와 관련하여 기술된다.
도 1은 일부 실시예들에 따른, 본 명세서에 기술된 다양한 기법들을 구현하도록 구성된 모바일 컴퓨팅 디바이스(100)의 상이한 컴포넌트들의 블록 다이어그램을 도시한다. 더 구체적으로, 도 1은, 도시된 바와 같이, 예측 센터(102), 애플리케이션 예측 엔진(104), 및 검색 애플리케이션(116)을 구현하도록 구성된 모바일 컴퓨팅 디바이스(100)의 하이 레벨 오버뷰(high-level overview)를 도시한다. 일부 실시예들에 따르면, 예측 센터(102), 애플리케이션 예측 엔진(104), 및 검색 애플리케이션(116)은 모바일 컴퓨팅 디바이스(100) 상에서 실행하도록 구성된 운영 체제(OS)(도 1에 도시되지 않음) 내에서 구현될 수 있다. 도 1에 도시된 바와 같이, 예측 센터(102)는 애플리케이션 예측 엔진(104)과 검색 애플리케이션(116) 사이의 중개자로서의 역할을 하도록 구성될 수 있다. 도 1에 도시되지 않았지만, 예측 센터(102)는, 예컨대, 2개 이상의 애플리케이션 예측 엔진들(104)이 구현되고 검색 애플리케이션(116)에 의해 발행된 요청에 응답하여 2개 이상의 예측치들이 생성될 때, 다수의 예측치들을 통합하도록 구성된 집합자를 구현하도록 구성될 수 있다. 그러나, 애플리케이션 예측 엔진(104)과 검색 애플리케이션(116) 양측 모두는 예측 센터(102)가 모바일 컴퓨팅 디바이스(100) 내에서 구현될 필요성을 감소시키거나 심지어 제거하기 위해 서로 직접적으로 통신하도록 구성될 수 있다는 것에 주목한다. 또한, 애플리케이션 예측 엔진(104) 및 검색 애플리케이션(116)은 논리적으로 서로 분리될 필요가 없고, 이러한 엔티티들에 의해 구현되는 상이한 기능들이 결합되어 동일한 결과들을 제공하는 상이한 아키텍처 접근법들을 확립할 수 있다는 것에 주목한다.
도 1에 도시된 바와 같이, 애플리케이션 예측 엔진(104)과 검색 애플리케이션(116) 사이에서 예측치들(112)이 통신될 수 있는데, 예컨대, 예측 센터(102)는 애플리케이션 예측 엔진(104)에 의해 생성된 예측치들(112)을 수신하고 예측치들(112)을 검색 애플리케이션(116)에 포워딩할 수 있다. 애플리케이션 예측 엔진(104)과 검색 애플리케이션(116) 사이에서 피드백(114)이 또한 통신될 수 있는데, 예컨대, 예측 센터(102)는 검색 애플리케이션(116)으로부터 피드백(114)을 수신할 수 있고, 피드백(114)을 애플리케이션 예측 엔진(104)에 제공할 수 있어서, 애플리케이션 예측 엔진(104)이 시간이 지남에 따라 예측치(112)의 정확도를 증가시킬 수 있게 할 수 있다.
추가적으로, 예측 센터(102)는 예측 센터(102)/애플리케이션 예측 엔진(104)이 모바일 컴퓨팅 디바이스(100)에서 프로세싱 및 에너지 소비 효율을 증가시키려는 시도 시에 예측치들(112)을 캐싱할 수 있게 하는 캐시를 구현하도록 구성될 수 있다. 예를 들어, 캐시는 다수의 엔트리들을 포함할 수 있고, 여기서 각각의 엔트리는 예측치(112)뿐만 아니라 예측치(112)가 얼마나 오랫동안 유효한 것으로 간주되는지를 나타내는 만료 정보를 포함한다. 만료 정보는, 예를 들어, 시간 기반 만료들, 이벤트 기반 만료들 등을 포함할 수 있다. 이러한 방식으로, 애플리케이션 예측 엔진(104)이 예측치(112)에 대한 요청들을 빈번하게 수신할 때, 애플리케이션 예측 엔진(104)은 모바일 컴퓨팅 디바이스(100)에서 다르게 발생할 수 있는 프로세싱의 양을 실질적으로 감소시키기 위해 예측치(112)를 생성 및 캐싱하여, 그에 의해 성능을 향상시킬 수 있다.
본 명세서에 이전에 설명된 바와 같이, 애플리케이션 예측 엔진(104)은 다양한 아키텍처 접근법들을 사용하여 구현될 수 있는데, 예컨대, 애플리케이션 예측 엔진(104)은, 예측 센터(102)에 의해 지원되고 애플리케이션 예측 엔진(104)에 의해 이용되는 애플리케이션 프로그래밍 인터페이스(API) 커맨드들을 통해 예측 센터(102)와 통신하고 예측 센터(102)의 외부에 있는 독립형 실행가능물(standalone executable)일 수 있고, 애플리케이션 예측 엔진(104)은 모바일 컴퓨팅 디바이스(100)의 파일 시스템 내에 저장되고 예측 센터(102)에 의해 해석 및 구현되는 번들일 수 있고, 등등일 수 있다. 도 1에 도시된 바와 같이, 애플리케이션 예측 엔진(104)은 애플리케이션 예측 엔진(104)이 검색 애플리케이션(116)에 대한 예측치들을 생성하는 방식을 지시하는 구성 파라미터들(106)을 포함할 수 있다. 특히, 구성 파라미터들(106)은 데이터 신호들(110) - 이들은 모바일 컴퓨팅 디바이스(100) 내의 애플리케이션 예측 엔진(104)에 이용가능한 설치된 애플리케이션 정보(108)에 대응함 - 이 애플리케이션 예측 엔진(104)에 의해 수신되고 애플리케이션 예측 엔진(104)에 의해 프로세싱되는 방식을 정의할 수 있다. 일부 실시예들에 따르면, 데이터 신호들(110)은 애플리케이션 설치 타임스탬프들(즉, 각각의 애플리케이션이 설치되었을 때), 애플리케이션 활성화 타임스탬프들(예컨대, 각각의 애플리케이션이 활성화된 마지막 시간), 애플리케이션 활성화 총계들(예컨대, 애플리케이션이 활성화된 총 횟수), 애플리케이션 사용 메트릭들(예컨대, 애플리케이션이 활성화되는, 가능하다면 시각 또는 위치와 같은 인자들에 의해 조절되는 빈도) 등을 나타낼 수 있다. 데이터 신호들(110)은, 또한, 모바일 컴퓨팅 디바이스(100)의 메인 사용자 인터페이스 내(예컨대, 홈 스크린 상, 폴더 내 등)의 애플리케이션 아이콘들의 위치들, 사용자에 의해 최근에 제공된 애플리케이션 검색 파라미터들, 애플리케이션 예측 엔진(104)에 의해 제공된 이전 예측치들이 정확하였는지 여부를 나타내는 수집된 피드백 등을 포함할 수 있다.
도 1에 도시되지 않았지만, 애플리케이션 예측 엔진(104)은, 애플리케이션 예측 엔진(104)이 시간이 지남에 따라 진화하고 모바일 컴퓨팅 디바이스(100)의 사용자와 관련된 상태로 남아 있는 예측치들(112)을 제공할 수 있게 하는 학습 모델들을 구현하도록 구성될 수 있다. 일부 실시예들에 따르면, 학습 모델들은 정보(예컨대, 데이터 신호들(110))를 분석하도록, 그리고 모바일 컴퓨팅 디바이스(100)를 동작시킬 때 사용자의 전반적인 경험을 향상시킬 수 있는 예측치들(112)을 생성하도록 구성된 알고리즘들을 나타낼 수 있다. 일부 실시예들에 따르면, 애플리케이션 예측 엔진(104)에 의해 프로세싱된 정보는 모바일 컴퓨팅 디바이스(100) 내의 다양한 소스들, 예컨대, 모바일 컴퓨팅 디바이스(100) 상에서 구현된 파일 시스템들, 검색 애플리케이션(116)에 의해 제공된 피드백 정보, 모바일 컴퓨팅 디바이스(100)의 센서들(예컨대, 글로벌 포지셔닝 시스템(GPS) 센서들, 마이크로폰 센서들, 온도 센서들, 가속도계 센서들 등)에 의해 수집된 정보, 외부 소스들(예컨대, 모바일 컴퓨팅 디바이스(100) 상에서 실행되는 다른 애플리케이션들, OS 커널들 등)에 의해 제공된 정보 등으로부터 수집될 수 있다.
추가적으로, 그리고 도 1에 도시된 바와 같이, 모바일 컴퓨팅 디바이스(100)는 애플리케이션 예측 엔진(104), 예측 센터(102), 및 검색 애플리케이션(116) 중 하나 이상을 부분적으로 또는 완전히 업데이트하는 데 사용될 수 있는 OTA 업데이트들(122)을 수신하기 위해 (예컨대, 인터넷 접속을 통해) 하나 이상의 서버들과 인터페이싱하도록 구성될 수 있다. 따라서, 도 1은 본 명세서에 설명되는 기법들을 구현하는 데 사용될 수 있는 다양한 컴포넌트들의 하이 레벨 오버뷰를 제공한다.
도 2는 일부 실시예들에 따른, 애플리케이션 예측 엔진(104)에 의해 구현되는 방법(200)을 도시한다. 방법(200)이 애플리케이션 예측 엔진(104) 및 검색 애플리케이션(116)이 서로 직접 통신하는 것으로서 기술되어 있지만, 예측 센터(102)는 본 명세서에 기술된 예측 센터(102)에 의해 제공되는 다양한 기능들에 따라 애플리케이션 예측 엔진(104)과 검색 애플리케이션(116) 사이의 중개자로서의 역할을 할 수 있다는 것에 주목한다. 도시된 바와 같이, 방법(200)은 단계 202에서 시작하고, 여기서 애플리케이션 예측 엔진(104)은, 모바일 컴퓨팅 디바이스(100)의 사용자가 액세스하는 데에 관심이 있을 수 있는, 모바일 컴퓨팅 디바이스(100) 상에 설치된 하나 이상의 애플리케이션들의 예측치(112)를 제공하라는 요청을 검색 애플리케이션(116)으로부터 수신한다. 이러한 요청은, 예컨대, 모바일 컴퓨팅 디바이스(100)의 사용자가 검색 애플리케이션을 활성화시키게 하는 제스처를 입력할 때, 검색 애플리케이션이 모바일 컴퓨팅 디바이스(100) 상에서 활성화되는 것에 응답하여 검색 애플리케이션(116)에 의해 발행될 수 있다.
단계 204에서, 애플리케이션 예측 엔진(104)은 모바일 컴퓨팅 디바이스(100) 상에 설치되는 애플리케이션들의 리스트를 식별한다. 이러한 정보는, 예를 들어, 설치된 애플리케이션 정보(108) 및 데이터 신호들(110)에 의해 획득될 수 있다. 일부 실시예들에 따르면, 애플리케이션들의 리스트는 대응하는 아이콘들이 모바일 컴퓨팅 디바이스(100)의 메인 사용자 인터페이스(예컨대, 홈 스크린) 내에 디스플레이되는 애플리케이션들을 생략하도록 필터링될 수 있는데, 이는 이러한 애플리케이션들이 사용자에 의해 검색될 가능성이 없기 때문이다. 이러한 방식으로, 애플리케이션 예측 엔진(104)은 이러한 애플리케이션들에 대한 스코어들을 생성하는 데 필요한 프로세싱을 수행하는 것을 회피할 수 있고, 이는 효율성을 증가시킬 수 있다. 애플리케이션 예측 엔진(104)이 본 명세서에 기술되는 다양한 기법들(예컨대, 도 2와 관련하여 아래에 기술되는 단계 206 내지 단계 212)에 따라 애플리케이션들의 리스트를 분석하고 있을 때 고려되어서는 안 되는 애플리케이션들을 애플리케이션들의 리스트로부터 제거하기 위해 다른 필터링 기법들이 구현될 수 있다는 것에 주목한다.
단계 206에서, 애플리케이션 예측 엔진(104)은 현재 애플리케이션을 애플리케이션들의 리스트 내의 제1 애플리케이션으로서 설정한다. 단계 208에서, 애플리케이션 예측 엔진(104)은 현재 애플리케이션에 대한 스코어를 생성하기 위해 현재 애플리케이션에 대응하는 하나 이상의 데이터 신호들(110)에 대해 하나 이상의 기능들을 수행한다. 일부 실시예들에 따르면, 데이터 신호(110)에 대해 기능을 수행하는 초기 단계는 데이터 신호(110)에 대한 예비 스코어를 확립하는 것을 수반할 수 있다. 예를 들어, 데이터 신호(110)가 애플리케이션의 설치 날짜에 대응할 때, 예비 스코어는 애플리케이션이 설치된 이후에 경과된 시간, 예컨대, 더 최근의 설치 날짜에 대한 더 높은 포인트들에 기초할 수 있다. 다른 예에서, 데이터 신호(110)가 모바일 컴퓨팅 디바이스(100)의 사용자 인터페이스 내의 애플리케이션에 대한 아이콘의 위치를 식별하는 정보에 대응할 때, 예비 스코어는 사용자 인터페이스 페이지 번호(예컨대, 홈 스크린에 대해 아이콘이 상주하는 페이지 번호), 아이콘이 사용자 인터페이스 폴더에 포함되는지 여부 등에 기초할 수 있다. 이러한 방식으로, 예비 스코어는 데이터 신호(110)에 대응하는 가중치들에 따라 추가로 조정될 수 있는 베이스라인 값을 확립하는데, 이는 아래에 더 상세히 기술된다.
일부 실시예들에 따르면, 그리고 전술된 바와 같이, 데이터 신호(110)에 대해 기능을 수행하는 것은 데이터 신호(110)와 연관되는 고정 가중치에 따라 예비 스코어를 조정하는 것을 수반하는 추가 단계를 포함할 수 있다. 대안적으로, 가중치는 본질적으로 동적이고 시간이 지남에 따라 변경될 수 있는데, 예컨대, 가중치는 시간이 지남에 따라 감쇠(decay)하는 값(예컨대, 반감기)을 나타낼 수 있고, 이는 애플리케이션들과 연관된 시간 정보를 나타내는 데이터 신호들(110)(예컨대, 애플리케이션 설치 타임스탬프들, 애플리케이션 활성화 타임스탬프들 등)에 대해 유리하다. 어떤 경우든, 예비 스코어에 가중치를 적용함으로써 업데이트된 스코어가 생성될 수 있다. 이러한 방식으로, 그리고 현재 애플리케이션에 대응하는 하나 이상의 데이터 신호들(110)에 대한 하나 이상의 기능들의 완료 시에, 예측 엔진은 현재 애플리케이션에 대한 스코어의 최종 형태(예컨대, 개별 스코어들의 합산)를 생성할 수 있다.
단계 210에서, 애플리케이션 예측 엔진(104)은 추가 애플리케이션들이 애플리케이션들의 리스트에 포함되는지 여부를 판정한다. 단계 210에서, 애플리케이션 예측 엔진(104)이 추가 애플리케이션들이 애플리케이션들의 리스트에 포함된다고 판정하는 경우, 방법(200)은 단계 212로 진행한다. 그렇지 않으면, 방법(200)은 단계 214로 진행하고, 이는 아래에 더 상세히 기술된다. 단계 212에서, 애플리케이션 예측 엔진(104)은 현재 애플리케이션을 애플리케이션들의 리스트 내의 다음 애플리케이션으로서 설정한다. 단계 214에서, 애플리케이션 예측 엔진(104)은 (1) 생성된 스코어들, 및 (2) 단계 202에서 수신된 요청에 따라 애플리케이션들의 리스트를 필터링한다. 예를 들어, 요청은 (예컨대, 스크린 사이즈 또는 해상도 설정에 따라) 모바일 컴퓨팅 디바이스(100)의 사용자 인터페이스 내에 단지 3개의 애플리케이션 제안들만이 디스플레이될 수 있음을 나타낼 수 있는데, 이는, 애플리케이션 예측 엔진(104)이, 애플리케이션들의 리스트로부터, 스코어들이 리스트의 상부의 3개의 위치들에 있지 않은 임의의 애플리케이션들을 제거하게 할 수 있다. 단계 216에서, 애플리케이션 예측 엔진(104)은 애플리케이션들의 필터링된 리스트로 예측치(112)를 채우고, 예측치(112)를 검색 애플리케이션(116)에 제공한다.
도 3은 일부 실시예들에 따른, 검색 애플리케이션(116)에 의해 구현되는 방법(300)을 도시한다. 도시된 바와 같이, 방법(300)은 단계 302에서 시작하고, 여기서 검색 애플리케이션(116)이 활성화된다. 단계 304에서, 검색 애플리케이션(116)은 사용자가 액세스하는 데에 관심이 있을 수 있는 하나 이상의 애플리케이션들의 예측치(112)에 대한 요청을 발행한다. 단계 306에서, 검색 애플리케이션(116)은 요청에 응답하여 예측치(112)를 수신하고, 여기서 예측치(112)는 하나 이상의 애플리케이션들의 리스트를 포함하고, 각각의 애플리케이션은 (예컨대, 도 2와 관련하여 전술된 기법들에 따라) 각각의 스코어와 연관된다. 단계 308에서, 검색 애플리케이션(116)은 (예컨대, 도 4에 도시되고 아래에 기술되는 바와 같이) 스코어들에 따라, 검색 애플리케이션(116)의 사용자 인터페이스 내에, 하나 이상의 애플리케이션들 중 적어도 하나의 애플리케이션에 대한 사용자 인터페이스 엔트리를 디스플레이한다. 단계 310에서, 검색 애플리케이션(116)은 사용자 인터페이스를 통해 사용자 입력을 수신한다.
단계 312에서, 검색 애플리케이션(116)은 사용자 입력이 사용자 인터페이스 엔트리에 대응하는지 여부를 판정한다. 단계 312에서, 검색 애플리케이션(116)이 사용자 입력이 사용자 인터페이스 엔트리에 대응한다고 판정하는 경우, 방법(300)은 단계 314로 진행한다. 그렇지 않으면, 방법(300)은 단계 318로 진행하고, 이는 아래에 더 상세히 기술된다. 단계 314에서, 검색 애플리케이션(116)은 사용자 인터페이스 엔트리에 대응하는 애플리케이션을 활성화시킨다. 단계 316에서, 검색 애플리케이션(116)은 애플리케이션이 활성화되었음을 나타내는 피드백을 제공한다. 마지막으로, 단계 318에서, 검색 애플리케이션(116)은 자신을 비활성화시킨다.
도 4는 일부 실시예들에 따른, 본 명세서에 기술된 검색 애플리케이션(116)의 예시적인 사용자 인터페이스(402)의 개념적 다이어그램(400)을 도시한다. 도 4에 도시된 바와 같이, 사용자 인터페이스(402)는 모바일 컴퓨팅 디바이스(100)의 사용자가 (예컨대, 사용자 인터페이스(402)에 포함된 가상 키보드(408)를 사용하여) 검색 파라미터들을 입력할 수 있게 하는 검색 필드(404)를 포함할 수 있다. 더욱이, 사용자 인터페이스(402)는, 본 명세서에 기술된 애플리케이션 예측 엔진(104)에 의해 생성된 예측치들(112)에 의해 획득될 수 있는, 사용자가 활성화에 관심이 있을 수 있는 애플리케이션들에 대한 다수의 사용자 인터페이스 엔트리들(406)의 리스팅을 포함할 수 있다. 이어서, 피드백이 사용자에 의해 제공될 때 - 이는, 예를 들어, 검색을 취소하는 것, 제안된 앱들을 무시하고 검색 파라미터들을 입력하는 것, 또는 사용자 인터페이스 엔트리들(406) 중 하나를 선택하는 것을 포함할 수 있음 -, 피드백은 처리를 위해 애플리케이션 예측 엔진(104)으로 포워딩될 수 있다.
도 5는 일부 실시예들에 따른, 본 명세서에 기술된 다양한 컴포넌트들을 구현하는 데 사용될 수 있는 컴퓨팅 디바이스(500)의 상세도를 도시한다. 특히, 상세도는 도 1에 도시된 모바일 컴퓨팅 디바이스(100)에 포함될 수 있는 다양한 컴포넌트들을 도시한다. 도 5에 도시된 바와 같이, 컴퓨팅 디바이스(500)는 컴퓨팅 디바이스(500)의 전반적인 동작을 제어하기 위한 마이크로프로세서 또는 제어기를 나타내는 프로세서(502)를 포함할 수 있다. 컴퓨팅 디바이스(500)는 또한 컴퓨팅 디바이스(500)의 사용자가 컴퓨팅 디바이스(500)와 상호작용하게 하는 사용자 입력 디바이스(508)를 포함할 수 있다. 예를 들어, 사용자 입력 디바이스(508)는 버튼, 키패드, 다이얼, 터치 스크린, 오디오 입력 인터페이스, 시각/이미지 포착 입력 인터페이스, 센서 데이터 형태의 입력 등과 같은 다양한 형태를 취할 수 있다. 게다가, 컴퓨팅 디바이스(500)는 사용자에게 정보를 디스플레이하도록 프로세서(502)에 의해 제어될 수 있는 디스플레이(510)(스크린 디스플레이)를 포함할 수 있다. 데이터 버스(516)는 적어도 저장 디바이스(540), 프로세서(502), 및 제어기(513) 간의 데이터 전달을 용이하게 할 수 있다. 제어기(513)는 장비 제어 버스(514)를 통해 그리고 상이한 장비와 인터페이싱하고 이를 제어하는 데 사용될 수 있다. 컴퓨팅 디바이스(500)는 또한 데이터 링크(512)에 결합되는 네트워크/버스 인터페이스(511)를 포함할 수 있다. 무선 접속의 경우, 네트워크/버스 인터페이스(511)는 무선 송수신기를 포함할 수 있다.
컴퓨팅 디바이스(500)는 또한 단일의 디스크 또는 복수의 디스크들(예컨대, 하드 드라이브들)을 포함할 수 있는 저장 디바이스(540)를 포함하고, 저장 디바이스(540) 내의 하나 이상의 파티션들을 관리하는 저장 관리 모듈을 포함한다. 일부 실시예들에서, 저장 디바이스(540)는 플래시 메모리, 반도체(솔리드 스테이트) 메모리 등을 포함할 수 있다. 컴퓨팅 디바이스(500)는 또한 랜덤 액세스 메모리(RAM)(520) 및 판독 전용 메모리(ROM)(522)를 포함할 수 있다. ROM(522)은 실행될 프로그램들, 유틸리티들 또는 프로세스들을 비휘발성 방식으로 저장할 수 있다. RAM(520)은 휘발성 데이터 저장장치를 제공할 수 있고, 컴퓨팅 디바이스(500)의 동작에 관련된 명령어들을 저장한다.
기술된 실시예들의 다양한 태양들, 실시예들, 구현들 또는 특징들은 개별적으로 또는 임의의 조합으로 사용될 수 있다. 기술된 실시예들의 다양한 태양들이 소프트웨어, 하드웨어, 또는 하드웨어와 소프트웨어의 조합에 의해 구현될 수 있다. 기술된 실시예들은 또한 컴퓨터 판독가능 매체 상에 컴퓨터 판독가능 코드로서 구현될 수 있다. 컴퓨터 판독가능 매체는, 나중에 컴퓨터 시스템에 의해 판독될 수 있는 데이터를 저장할 수 있는 임의의 데이터 저장 디바이스이다. 컴퓨터 판독가능 매체의 예들은 판독 전용 메모리, 랜덤 액세스 메모리, CD-ROM들, DVD들, 자기 테이프, 하드 디스크 드라이브들, 솔리드 스테이트 드라이브들, 및 광학 데이터 저장 디바이스들을 포함한다. 컴퓨터 판독가능 매체는 또한 컴퓨터 판독가능 코드가 분산 방식으로 저장 및 실행되도록 네트워크로 결합된 컴퓨터 시스템들에 걸쳐 분산될 수 있다.
전술한 설명은, 설명의 목적을 위해, 기술된 실시예들의 충분한 이해를 제공하도록 특정 명명법을 사용하였다. 그러나, 많은 특정 상세사항들은 기술된 실시예들을 실시하는 데 필수적인 것은 아니라는 것이 당업자에게 명백할 것이다. 따라서, 특정 실시예들에 대한 전술한 설명은 예시 및 설명의 목적을 위해 제시되어 있다. 이들은 기술된 실시예들을 개시된 정밀한 형태들로 제한하려거나 총망라하려고 의도되지 않는다. 많은 수정들 및 변형들이 상기 교시 내용들에 비추어 가능하다는 것이 당업자에게는 명백할 것이다.

Claims (46)

  1. 모바일 컴퓨팅 디바이스의 사용자에게 예측치(prediction)들을 선행적으로(proactively) 제공하기 위한 방법으로서,
    상기 모바일 컴퓨팅 디바이스 상에서 실행되는 애플리케이션 예측 엔진에서:
    상기 모바일 컴퓨팅 디바이스 상에 설치된 애플리케이션들의 리스트에 포함된 각각의 애플리케이션에 대해:
    상기 애플리케이션에 대한 스코어를 확립하기 위해 상기 애플리케이션에 대응하는 적어도 하나의 데이터 신호에 대해 적어도 하나의 기능을 수행하는 단계 - 상기 스코어는 상기 애플리케이션이 상기 사용자에 의해 활성화될 가능성을 나타냄 -, 및
    상기 스코어를 상기 애플리케이션과 연관시키는 단계; 및
    상기 모바일 컴퓨팅 디바이스 상에서 실행되는 검색 애플리케이션에 예측치를 제공하는 단계 - 상기 예측치는 상기 애플리케이션들의 리스트 및 그의 연관된 스코어들을 포함함 - 를 포함하는, 방법.
  2. 제1항에 있어서, 상기 검색 애플리케이션에 예측치를 제공하는 단계에 앞서:
    상기 검색 애플리케이션으로부터, 상기 예측치에 대한 요청을 수신하는 단계 - 상기 검색 애플리케이션은 상기 검색 애플리케이션의 활성화에 응답하여 그리고 상기 사용자로부터의 검색 입력을 수신하기에 앞서 상기 요청을 발행함 - 를 추가로 포함하는, 방법.
  3. 제2항에 있어서, 상기 요청은 상기 예측치에 포함된 상기 애플리케이션들의 리스트에 포함되어야 하는 특정 수의 애플리케이션들을 나타내는, 방법.
  4. 제1항에 있어서, 상기 애플리케이션들의 리스트에 포함된 각각의 애플리케이션에 대해:
    상기 적어도 하나의 데이터 신호와 연관되는 가중치에 따라 상기 스코어를 조정하는 단계를 추가로 포함하는, 방법.
  5. 제4항에 있어서, 상기 적어도 하나의 데이터 신호가 상기 모바일 컴퓨팅 디바이스 내의 애플리케이션 액세스의 시간적 양태에 대응할 때, 상기 적어도 하나의 데이터 신호에 대해 적어도 하나의 기능을 수행하는 단계는, 상기 적어도 하나의 데이터 신호와 연관되는 가중치에 따라 상기 스코어를 조정하는 단계에 앞서:
    상기 적어도 하나의 데이터 신호에 적용되는 감쇠 인자(decay factor)에 따라 상기 적어도 하나의 데이터 신호에 대한 상기 스코어를 조정하는 단계를 추가로 포함하는, 방법.
  6. 제1항에 있어서, 상기 적어도 하나의 데이터 신호는 애플리케이션 설치 타임스탬프들, 애플리케이션 활성화 타임스탬프들, 애플리케이션 활성화 총계들, 애플리케이션 사용 메트릭(metric)들, 상기 모바일 컴퓨팅 디바이스의 메인 사용자 인터페이스 내의 애플리케이션 아이콘들의 위치들, 상기 사용자에 의해 최근에 제공된 검색 파라미터들, 및 이전 예측치들이 정확하였는지 여부를 나타내는 수집된 피드백 중 하나 이상으로부터 선택되는, 방법.
  7. 제6항에 있어서, 상기 모바일 컴퓨팅 디바이스의 메인 사용자 인터페이스 내의 애플리케이션 아이콘의 위치는,
    상기 애플리케이션 아이콘이 포함되는 상기 메인 사용자 인터페이스의 페이지 번호, 및
    상기 애플리케이션이 상기 메인 사용자 인터페이스 내의 폴더에 포함되는지 여부를 나타낼 수 있는, 방법.
  8. 제6항에 있어서, 상기 검색 애플리케이션에 예측치를 제공하는 단계에 후속하여:
    상기 검색 애플리케이션에서 상기 예측치를 뷰잉(viewing)한 것에 후속하여 상기 사용자의 거동을 나타내는 피드백을 상기 검색 애플리케이션으로부터 수신하는 단계; 및
    상기 검색 애플리케이션으로부터 수신된 상기 피드백을 반영하기 위해 상기 수집된 피드백을 업데이트하는 단계를 추가로 포함하는, 방법.
  9. 명령어들을 저장하도록 구성된 비일시적 컴퓨터 판독가능 저장 매체로서,
    상기 명령어들은, 모바일 컴퓨팅 디바이스에 포함된 프로세서에 의해 실행될 때, 상기 모바일 컴퓨팅 디바이스로 하여금,
    상기 모바일 컴퓨팅 디바이스 상에서 실행되는 애플리케이션 예측 엔진에서:
    상기 모바일 컴퓨팅 디바이스 상에 설치된 애플리케이션들의 리스트에 포함된 각각의 애플리케이션에 대해:
    상기 애플리케이션에 대한 스코어를 확립하기 위해 상기 애플리케이션에 대응하는 적어도 하나의 데이터 신호에 대해 적어도 하나의 기능을 수행하는 단계 - 상기 스코어는 상기 애플리케이션이 사용자에 의해 활성화될 가능성을 나타냄 -, 및
    상기 스코어를 상기 애플리케이션과 연관시키는 단계; 및
    상기 모바일 컴퓨팅 디바이스 상에서 실행되는 검색 애플리케이션에 예측치를 제공하는 단계 - 상기 예측치는 상기 애플리케이션들의 리스트 및 그의 연관된 스코어들을 포함함 - 를 포함하는 단계들을 수행함으로써, 상기 모바일 컴퓨팅 디바이스의 상기 사용자에게 예측치들을 선행적으로 제공하게 하는, 비일시적 컴퓨터 판독가능 저장 매체.
  10. 제9항에 있어서, 상기 단계들은, 상기 검색 애플리케이션에 예측치를 제공하는 단계에 앞서:
    상기 검색 애플리케이션으로부터, 상기 예측치에 대한 요청을 수신하는 단계 - 상기 검색 애플리케이션은 상기 검색 애플리케이션의 활성화에 응답하여 그리고 상기 사용자로부터의 검색 입력을 수신하기에 앞서 상기 요청을 발행함 - 를 추가로 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
  11. 제10항에 있어서, 상기 요청은 상기 예측치에 포함된 상기 애플리케이션들의 리스트에 포함되어야 하는 특정 수의 애플리케이션들을 나타내는, 비일시적 컴퓨터 판독가능 저장 매체.
  12. 제9항에 있어서, 상기 단계들은, 상기 애플리케이션들의 리스트에 포함된 각각의 애플리케이션에 대해:
    상기 적어도 하나의 데이터 신호와 연관되는 가중치에 따라 상기 스코어를 조정하는 단계를 추가로 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
  13. 제12항에 있어서, 상기 적어도 하나의 데이터 신호가 상기 모바일 컴퓨팅 디바이스 내의 애플리케이션 액세스의 시간적 양태에 대응할 때, 상기 적어도 하나의 데이터 신호에 대해 적어도 하나의 기능을 수행하는 단계는, 상기 적어도 하나의 데이터 신호와 연관되는 가중치에 따라 상기 스코어를 조정하는 단계에 앞서:
    상기 적어도 하나의 데이터 신호에 적용되는 감쇠 인자에 따라 상기 적어도 하나의 데이터 신호에 대한 상기 스코어를 조정하는 단계를 추가로 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
  14. 제9항에 있어서, 상기 적어도 하나의 데이터 신호는 애플리케이션 설치 타임스탬프들, 애플리케이션 활성화 타임스탬프들, 애플리케이션 활성화 총계들, 애플리케이션 사용 메트릭들, 상기 모바일 컴퓨팅 디바이스의 메인 사용자 인터페이스 내의 애플리케이션 아이콘들의 위치들, 상기 사용자에 의해 최근에 제공된 검색 파라미터들, 및 이전 예측치들이 정확하였는지 여부를 나타내는 수집된 피드백 중 하나 이상으로부터 선택되는, 비일시적 컴퓨터 판독가능 저장 매체.
  15. 제14항에 있어서, 상기 모바일 컴퓨팅 디바이스의 메인 사용자 인터페이스 내의 애플리케이션 아이콘의 위치는,
    상기 애플리케이션 아이콘이 포함되는 상기 메인 사용자 인터페이스의 페이지 번호, 및
    상기 애플리케이션이 상기 메인 사용자 인터페이스 내의 폴더에 포함되는지 여부를 나타낼 수 있는, 비일시적 컴퓨터 판독가능 저장 매체.
  16. 제14항에 있어서, 상기 단계들은, 상기 검색 애플리케이션에 예측치를 제공하는 단계에 후속하여:
    상기 검색 애플리케이션에서 상기 예측치를 뷰잉한 것에 후속하여 상기 사용자의 거동을 나타내는 피드백을 상기 검색 애플리케이션으로부터 수신하는 단계; 및
    상기 검색 애플리케이션으로부터 수신된 상기 피드백을 반영하기 위해 상기 수집된 피드백을 업데이트하는 단계를 추가로 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
  17. 모바일 컴퓨팅 디바이스의 사용자에게 예측치들을 선행적으로 제공하도록 구성된 모바일 컴퓨팅 디바이스로서, 상기 모바일 컴퓨팅 디바이스는 프로세서를 포함하고, 상기 프로세서는, 상기 모바일 컴퓨팅 디바이스로 하여금,
    상기 모바일 컴퓨팅 디바이스 상에서 실행되는 애플리케이션 예측 엔진에서:
    상기 모바일 컴퓨팅 디바이스 상에 설치된 애플리케이션들의 리스트에 포함된 각각의 애플리케이션에 대해:
    상기 애플리케이션에 대한 스코어를 확립하기 위해 상기 애플리케이션에 대응하는 적어도 하나의 데이터 신호에 대해 적어도 하나의 기능을 수행하는 단계 - 상기 스코어는 상기 애플리케이션이 상기 사용자에 의해 활성화될 가능성을 나타냄 -, 및
    상기 스코어를 상기 애플리케이션과 연관시키는 단계; 및
    상기 모바일 컴퓨팅 디바이스 상에서 실행되는 검색 애플리케이션에 예측치를 제공하는 단계 - 상기 예측치는 상기 애플리케이션들의 리스트 및 그의 연관된 스코어들을 포함함 - 를 포함하는 단계들을 수행하게 하도록 구성된, 모바일 컴퓨팅 디바이스.
  18. 제17항에 있어서, 상기 단계들은, 상기 검색 애플리케이션에 예측치를 제공하는 단계에 앞서:
    상기 검색 애플리케이션으로부터, 상기 예측치에 대한 요청을 수신하는 단계 - 상기 검색 애플리케이션은 상기 검색 애플리케이션의 활성화에 응답하여 그리고 상기 사용자로부터의 검색 입력을 수신하기에 앞서 상기 요청을 발행함 - 를 추가로 포함하는, 모바일 컴퓨팅 디바이스.
  19. 제18항에 있어서, 상기 요청은 상기 예측치에 포함된 상기 애플리케이션들의 리스트에 포함되어야 하는 특정 수의 애플리케이션들을 나타내는, 모바일 컴퓨팅 디바이스.
  20. 제17항에 있어서, 상기 단계들은, 상기 애플리케이션들의 리스트에 포함된 각각의 애플리케이션에 대해:
    상기 적어도 하나의 데이터 신호와 연관되는 가중치에 따라 상기 스코어를 조정하는 단계를 추가로 포함하는, 모바일 컴퓨팅 디바이스.
  21. 제20항에 있어서, 상기 적어도 하나의 데이터 신호가 상기 모바일 컴퓨팅 디바이스 내의 애플리케이션 액세스의 시간적 양태에 대응할 때, 상기 적어도 하나의 데이터 신호에 대해 적어도 하나의 기능을 수행하는 단계는, 상기 적어도 하나의 데이터 신호와 연관되는 가중치에 따라 상기 스코어를 조정하는 단계에 앞서:
    상기 적어도 하나의 데이터 신호에 적용되는 감쇠 인자에 따라 상기 적어도 하나의 데이터 신호에 대한 상기 스코어를 조정하는 단계를 추가로 포함하는, 모바일 컴퓨팅 디바이스.
  22. 제17항에 있어서, 상기 적어도 하나의 데이터 신호는 애플리케이션 설치 타임스탬프들, 애플리케이션 활성화 타임스탬프들, 애플리케이션 활성화 총계들, 애플리케이션 사용 메트릭들, 상기 모바일 컴퓨팅 디바이스의 메인 사용자 인터페이스 내의 애플리케이션 아이콘들의 위치들, 상기 사용자에 의해 최근에 제공된 검색 파라미터들, 및 이전 예측치들이 정확하였는지 여부를 나타내는 수집된 피드백 중 하나 이상으로부터 선택되는, 모바일 컴퓨팅 디바이스.
  23. 제22항에 있어서, 상기 모바일 컴퓨팅 디바이스의 메인 사용자 인터페이스 내의 애플리케이션 아이콘의 위치는,
    상기 애플리케이션 아이콘이 포함되는 상기 메인 사용자 인터페이스의 페이지 번호, 및
    상기 애플리케이션이 상기 메인 사용자 인터페이스 내의 폴더에 포함되는지 여부를 나타낼 수 있는, 모바일 컴퓨팅 디바이스.
  24. 제22항에 있어서, 상기 단계들은, 상기 검색 애플리케이션에 예측치를 제공하는 단계에 후속하여:
    상기 검색 애플리케이션에서 상기 예측치를 뷰잉한 것에 후속하여 상기 사용자의 거동을 나타내는 피드백을 상기 검색 애플리케이션으로부터 수신하는 단계; 및
    상기 검색 애플리케이션으로부터 수신된 상기 피드백을 반영하기 위해 상기 수집된 피드백을 업데이트하는 단계를 추가로 포함하는, 모바일 컴퓨팅 디바이스.
  25. 모바일 컴퓨팅 디바이스의 사용자에게 예측치들을 선행적으로 제시하기 위한 방법으로서,
    상기 모바일 컴퓨팅 디바이스 상에서 실행되는 검색 애플리케이션에서:
    상기 검색 애플리케이션의 활성화를 검출하는 단계;
    상기 모바일 컴퓨팅 디바이스 상에 설치되고 상기 사용자가 활성화에 관심이 있을 수 있는 하나 이상의 애플리케이션들의 예측치에 대한 요청을 애플리케이션 예측 엔진에 발행하는 단계;
    상기 애플리케이션 예측 엔진으로부터 상기 예측치를 수신하는 단계 - 상기 예측치는 하나 이상의 애플리케이션들의 리스트를 포함하고, 각각의 애플리케이션은 각각의 스코어와 연관됨 -; 및
    상기 스코어들에 따라, 상기 검색 애플리케이션의 사용자 인터페이스 내에, 상기 하나 이상의 애플리케이션들 중 적어도 하나의 애플리케이션에 대한 사용자 인터페이스 엔트리를 디스플레이하는 단계를 포함하는, 방법.
  26. 제25항에 있어서, 상기 요청은 상기 검색 애플리케이션의 상기 사용자 인터페이스에 포함된 검색 필드를 통해 검색 입력을 수신하기에 앞서 상기 애플리케이션 예측 엔진에 발행되는, 방법.
  27. 제25항에 있어서,
    상기 검색 애플리케이션의 상기 사용자 인터페이스를 통해 사용자 입력을 수신하는 단계; 및
    피드백의 형태로, 상기 사용자 입력과 연관된 정보를 제공하는 단계를 추가로 포함하는, 방법.
  28. 제27항에 있어서, 상기 피드백은 상기 사용자가 상기 적어도 하나의 애플리케이션에 대한 상기 사용자 인터페이스 엔트리를 선택했는지 또는 검색 파라미터들을 입력했는지를 나타내는, 방법.
  29. 제25항에 있어서, 상기 요청은 상기 예측치에 포함되어야 하는 특정 수의 애플리케이션들을 나타내고, 상기 특정 수의 애플리케이션들은 상기 검색 애플리케이션의 상기 사용자 인터페이스 내에서 상기 사용자에게 디스플레이되는 것이 가능한 애플리케이션들에 대한 사용자 인터페이스 엔트리들의 수에 기초하는, 방법.
  30. 명령어들을 저장하도록 구성된 비일시적 컴퓨터 판독가능 저장 매체로서,
    상기 명령어들은, 모바일 컴퓨팅 디바이스에 포함된 프로세서에 의해 실행될 때, 상기 모바일 컴퓨팅 디바이스로 하여금,
    상기 모바일 컴퓨팅 디바이스 상에서 실행되는 검색 애플리케이션에서:
    상기 검색 애플리케이션의 활성화를 검출하는 단계;
    상기 모바일 컴퓨팅 디바이스 상에 설치되고 사용자가 활성화에 관심이 있을 수 있는 하나 이상의 애플리케이션들의 예측치에 대한 요청을 애플리케이션 예측 엔진에 발행하는 단계;
    상기 애플리케이션 예측 엔진으로부터 상기 예측치를 수신하는 단계 - 상기 예측치는 하나 이상의 애플리케이션들의 리스트를 포함하고, 각각의 애플리케이션은 각각의 스코어와 연관됨 -; 및
    상기 스코어들에 따라, 상기 검색 애플리케이션의 사용자 인터페이스 내에, 상기 하나 이상의 애플리케이션들 중 적어도 하나의 애플리케이션에 대한 사용자 인터페이스 엔트리를 디스플레이하는 단계를 포함하는 단계들을 수행함으로써, 상기 모바일 컴퓨팅 디바이스의 상기 사용자에게 예측치들을 선행적으로 제시하게 하는, 비일시적 컴퓨터 판독가능 저장 매체.
  31. 제30항에 있어서, 상기 요청은 상기 검색 애플리케이션의 상기 사용자 인터페이스에 포함된 검색 필드를 통해 검색 입력을 수신하기에 앞서 상기 애플리케이션 예측 엔진에 발행되는, 비일시적 컴퓨터 판독가능 저장 매체.
  32. 제30항에 있어서, 상기 단계들은:
    상기 검색 애플리케이션의 상기 사용자 인터페이스를 통해 사용자 입력을 수신하는 단계; 및
    피드백의 형태로, 상기 사용자 입력과 연관된 정보를 제공하는 단계를 추가로 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
  33. 제32항에 있어서, 상기 피드백은 상기 사용자가 상기 적어도 하나의 애플리케이션에 대한 상기 사용자 인터페이스 엔트리를 선택했는지 또는 검색 파라미터들을 입력했는지를 나타내는, 비일시적 컴퓨터 판독가능 저장 매체.
  34. 제30항에 있어서, 상기 요청은 상기 예측치에 포함되어야 하는 특정 수의 애플리케이션들을 나타내고, 상기 특정 수의 애플리케이션들은 상기 검색 애플리케이션의 상기 사용자 인터페이스 내에서 상기 사용자에게 디스플레이되는 것이 가능한 애플리케이션들에 대한 사용자 인터페이스 엔트리들의 수에 기초하는, 비일시적 컴퓨터 판독가능 저장 매체.
  35. 모바일 컴퓨팅 디바이스의 사용자에게 예측치들을 선행적으로 제시하도록 구성된 모바일 컴퓨팅 디바이스로서, 상기 모바일 컴퓨팅 디바이스는 프로세서를 포함하고, 상기 프로세서는, 상기 모바일 컴퓨팅 디바이스로 하여금,
    상기 모바일 컴퓨팅 디바이스 상에서 실행되는 검색 애플리케이션에서:
    상기 검색 애플리케이션의 활성화를 검출하는 단계;
    상기 모바일 컴퓨팅 디바이스 상에 설치되고 상기 사용자가 활성화에 관심이 있을 수 있는 하나 이상의 애플리케이션들의 예측치에 대한 요청을 애플리케이션 예측 엔진에 발행하는 단계;
    상기 애플리케이션 예측 엔진으로부터 상기 예측치를 수신하는 단계 - 상기 예측치는 하나 이상의 애플리케이션들의 리스트를 포함하고, 각각의 애플리케이션은 각각의 스코어와 연관됨 -; 및
    상기 스코어들에 따라, 상기 검색 애플리케이션의 사용자 인터페이스 내에, 상기 하나 이상의 애플리케이션들 중 적어도 하나의 애플리케이션에 대한 사용자 인터페이스 엔트리를 디스플레이하는 단계를 포함하는 단계들을 수행하게 하도록 구성된, 모바일 컴퓨팅 디바이스.
  36. 제35항에 있어서, 상기 요청은 상기 검색 애플리케이션의 상기 사용자 인터페이스에 포함된 검색 필드를 통해 검색 입력을 수신하기에 앞서 상기 애플리케이션 예측 엔진에 발행되는, 모바일 컴퓨팅 디바이스.
  37. 제35항에 있어서, 상기 단계들은:
    상기 검색 애플리케이션의 상기 사용자 인터페이스를 통해 사용자 입력을 수신하는 단계; 및
    피드백의 형태로, 상기 사용자 입력과 연관된 정보를 제공하는 단계를 추가로 포함하는, 모바일 컴퓨팅 디바이스.
  38. 제37항에 있어서, 상기 피드백은 상기 사용자가 상기 적어도 하나의 애플리케이션에 대한 상기 사용자 인터페이스 엔트리를 선택했는지 또는 검색 파라미터들을 입력했는지를 나타내는, 모바일 컴퓨팅 디바이스.
  39. 제35항에 있어서, 상기 요청은 상기 예측치에 포함되어야 하는 특정 수의 애플리케이션들을 나타내고, 상기 특정 수의 애플리케이션들은 상기 검색 애플리케이션의 상기 사용자 인터페이스 내에서 상기 사용자에게 디스플레이되는 것이 가능한 애플리케이션들에 대한 사용자 인터페이스 엔트리들의 수에 기초하는, 모바일 컴퓨팅 디바이스.
  40. 모바일 컴퓨팅 디바이스의 사용자에게 예측치들을 선행적으로 제시하도록 구성된 모바일 컴퓨팅 디바이스로서, 상기 모바일 컴퓨팅 디바이스는 프로세서를 포함하고, 상기 프로세서는,
    검색 애플리케이션 - 상기 검색 애플리케이션은,
    상기 검색 애플리케이션의 활성화를 검출하는 단계, 및
    상기 검색 애플리케이션의 사용자 인터페이스 내에 상기 사용자로부터의 입력을 수신하기에 앞서:
    상기 모바일 컴퓨팅 디바이스 상에 설치되고 상기 사용자가 활성화에 관심이 있을 수 있는 하나 이상의 애플리케이션들의 리스트에 대한 요청을, 상기 모바일 컴퓨팅 디바이스 상에서 실행되는 애플리케이션 예측 엔진에 발행하는 단계,
    상기 애플리케이션 예측 엔진으로부터 상기 리스트를 수신하는 단계, 및
    상기 검색 애플리케이션의 상기 사용자 인터페이스 내에, 상기 리스트에 포함된 상기 하나 이상의 애플리케이션들 중 적어도 하나의 애플리케이션에 대한 사용자 인터페이스 엔트리를 디스플레이하는 단계를 포함하는 단계들을 수행하도록 구성됨 -; 및
    상기 애플리케이션 예측 엔진 - 상기 애플리케이션 예측 엔진은,
    상기 검색 애플리케이션으로부터, 상기 사용자가 활성화에 관심이 있을 수 있는 상기 하나 이상의 애플리케이션들의 리스트에 대한 상기 요청을 수신하는 단계,
    상기 리스트를 생성하는 단계, 및
    상기 리스트를 상기 검색 애플리케이션에 제공하는 단계를 포함하는 단계들을 수행하도록 구성됨 - 을 실행하도록 구성된, 모바일 컴퓨팅 디바이스.
  41. 제40항에 있어서, 상기 리스트를 생성하는 단계는,
    상기 모바일 컴퓨팅 디바이스 상에 설치된 각각의 애플리케이션에 대해:
    상기 애플리케이션에 대응하는 하나 이상의 데이터 신호들에 대해 하나 이상의 기능들을 수행함으로써 상기 애플리케이션에 대한 스코어를 생성하는 단계, 및
    상기 스코어를 상기 애플리케이션과 연관시키는 단계; 및
    상기 생성된 스코어들에 따라 상기 애플리케이션들을 필터링하는 단계; 및
    상기 필터링된 애플리케이션들을 상기 리스트에 포함시키는 단계를 포함하는, 모바일 컴퓨팅 디바이스.
  42. 제41항에 있어서, 상기 하나 이상의 데이터 신호들 중 한 데이터 신호에 대해 상기 하나 이상의 기능들 중 한 기능을 수행하는 것은,
    상기 데이터 신호와 연관된 정보에 기초하여 상기 데이터 신호에 대한 스코어를 확립하는 것; 및
    상기 데이터 신호와 연관되는 가중치에 따라 상기 스코어를 조정하는 것을 포함하는, 모바일 컴퓨팅 디바이스.
  43. 제42항에 있어서, 상기 데이터 신호가 상기 모바일 컴퓨팅 디바이스 내의 애플리케이션 액세스의 시간적 양태에 대응할 때, 상기 데이터 신호에 대해 상기 기능을 수행하는 것은, 상기 데이터 신호와 연관되는 가중치에 따라 상기 스코어를 조정하는 것에 앞서:
    상기 데이터 신호에 적용되는 감쇠 인자에 따라 상기 데이터 신호에 대한 상기 스코어를 조정하는 것을 추가로 포함하는, 모바일 컴퓨팅 디바이스.
  44. 제41항에 있어서, 상기 하나 이상의 데이터 신호들은 애플리케이션 설치 타임스탬프들, 애플리케이션 활성화 타임스탬프들, 애플리케이션 활성화 총계들, 애플리케이션 사용 메트릭들, 상기 모바일 컴퓨팅 디바이스의 메인 사용자 인터페이스 내의 애플리케이션 아이콘들의 위치들, 사용자에 의해 최근에 제공된 검색 파라미터들, 및 이전 예측치들이 정확하였는지 여부를 나타내는 수집된 피드백을 포함하는, 모바일 컴퓨팅 디바이스.
  45. 제44항에 있어서, 상기 모바일 컴퓨팅 디바이스의 메인 사용자 인터페이스 내의 애플리케이션 아이콘의 위치는,
    상기 애플리케이션 아이콘이 포함되는 상기 메인 사용자 인터페이스의 페이지 번호, 및
    상기 애플리케이션이 상기 메인 사용자 인터페이스 내의 폴더에 포함되는지 여부를 나타낼 수 있는, 모바일 컴퓨팅 디바이스.
  46. 제44항에 있어서, 상기 애플리케이션 예측 엔진은, 상기 리스트를 상기 검색 애플리케이션에 제공하는 단계에 후속하여,
    상기 리스트를 상기 검색 애플리케이션에 제공하는 단계에 후속하여 상기 사용자의 거동을 나타내는 피드백을 상기 검색 애플리케이션으로부터 수신하는 단계; 및
    상기 검색 애플리케이션으로부터 수신된 상기 피드백을 반영하기 위해 상기 수집된 피드백을 업데이트하는 단계를 포함하는 단계들을 수행하도록 추가로 구성된, 모바일 컴퓨팅 디바이스.
KR1020177034706A 2015-06-05 2016-03-25 컴퓨팅 디바이스의 사용자에게 권고들을 선행적으로 제공하기 위한 시스템들 및 방법들 KR102029568B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562172030P 2015-06-05 2015-06-05
US62/172,030 2015-06-05
US14/866,795 US10922094B2 (en) 2015-06-05 2015-09-25 Systems and methods for proactively providing recommendations to a user of a computing device
US14/866,795 2015-09-25
PCT/US2016/024258 WO2016195783A1 (en) 2015-06-05 2016-03-25 Systems and methods for proactively providing recommendations to a user of a computing device

Publications (2)

Publication Number Publication Date
KR20170141248A true KR20170141248A (ko) 2017-12-22
KR102029568B1 KR102029568B1 (ko) 2019-10-07

Family

ID=57441149

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177034706A KR102029568B1 (ko) 2015-06-05 2016-03-25 컴퓨팅 디바이스의 사용자에게 권고들을 선행적으로 제공하기 위한 시스템들 및 방법들

Country Status (4)

Country Link
US (3) US10922094B2 (ko)
KR (1) KR102029568B1 (ko)
CN (2) CN113687897A (ko)
WO (1) WO2016195783A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020171427A1 (ko) * 2019-02-19 2020-08-27 삼성전자 주식회사 어플리케이션을 프리페치하는 전자 장치 및 방법

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10970646B2 (en) 2015-10-01 2021-04-06 Google Llc Action suggestions for user-selected content
US10127597B2 (en) * 2015-11-13 2018-11-13 International Business Machines Corporation System and method for identifying true customer on website and providing enhanced website experience
US10055390B2 (en) * 2015-11-18 2018-08-21 Google Llc Simulated hyperlinks on a mobile device based on user intent and a centered selection of text
US10204265B2 (en) * 2016-01-11 2019-02-12 Electronics And Telecommunications Research Institute System and method for authenticating user
US11630688B2 (en) * 2017-02-02 2023-04-18 Samsung Electronics Co., Ltd. Method and apparatus for managing content across applications
US10802672B2 (en) 2017-05-05 2020-10-13 Servicenow, Inc. Software application portfolio discovery and management
US20180349467A1 (en) 2017-06-02 2018-12-06 Apple Inc. Systems and methods for grouping search results into dynamic categories based on query and result set
CN110914802A (zh) * 2017-06-30 2020-03-24 Oppo广东移动通信有限公司 应用控制方法、装置、存储介质及电子设备
CN109766138A (zh) * 2017-11-08 2019-05-17 广东欧珀移动通信有限公司 应用程序预测模型建立、预加载方法、装置、介质及终端
CN108710516A (zh) * 2018-05-29 2018-10-26 Oppo广东移动通信有限公司 预测样本的采集方法、装置、存储介质及智能终端
US20210406253A1 (en) * 2019-12-05 2021-12-30 Google Llc Systems and methods for low-latency provision of content
KR102194339B1 (ko) * 2020-05-20 2020-12-22 (주)모바일이 지배하는 세상 특정 커머스 앱과 연동이 가능한 sdk모듈을 구비한 사용자 단말 장치, 광고시스템, 및 제어 방법
KR20220064655A (ko) * 2020-11-12 2022-05-19 삼성전자주식회사 전자 장치 및 전자 장치의 어플리케이션 실행 방법
US11456609B1 (en) 2022-02-04 2022-09-27 Lat Enterprises, Inc. Battery harvesting adapter

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130232183A1 (en) * 2011-08-31 2013-09-05 Nhn Corporation System and method based on use information obtained from a user terminal
KR20140040823A (ko) * 2011-08-29 2014-04-03 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 애플리케이션 단위로 단말기 상에서 추정된 qoe 들을 출력하는 방법
KR20140081896A (ko) * 2008-06-06 2014-07-01 애플 인크. 모바일 장치용의 애플리케이션 관리를 위한 사용자 인터페이스
US20150088955A1 (en) * 2013-09-20 2015-03-26 Nuance Communications, Inc. Mobile application daily user engagement scores and user profiles

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6356898B2 (en) * 1998-08-31 2002-03-12 International Business Machines Corporation Method and system for summarizing topics of documents browsed by a user
US20030037034A1 (en) * 2001-08-16 2003-02-20 Tim Daniels System and method for lubricants supply chain management
WO2004097565A2 (en) * 2003-04-24 2004-11-11 Secureinfo Corporation Data preservation across an enterprise
US8204897B1 (en) * 2008-09-09 2012-06-19 Google Inc. Interactive search querying
US20100070871A1 (en) * 2008-09-12 2010-03-18 International Business Machines Corporation Extendable Recommender Framework for Web-Based Systems
US8204987B2 (en) * 2008-12-09 2012-06-19 At&T Intellectual Property I, L.P. Providing reports of received multimedia programs
EP2382780A1 (en) * 2009-01-01 2011-11-02 Orca Interactive Ltd. Adaptive blending of recommendation engines
US20100318535A1 (en) * 2009-06-11 2010-12-16 Microsoft Corporation Providing search results to a computing device
US20110078775A1 (en) * 2009-09-30 2011-03-31 Nokia Corporation Method and apparatus for providing credibility information over an ad-hoc network
KR101643179B1 (ko) 2010-11-11 2016-07-27 네이버 주식회사 추천 키워드를 제공하는 시스템 및 방법
US8468164B1 (en) 2011-03-09 2013-06-18 Amazon Technologies, Inc. Personalized recommendations based on related users
KR101491878B1 (ko) * 2011-08-31 2015-02-09 라인 가부시키가이샤 사용자 단말에서 취득한 정보를 기반으로 모바일 애플리케이션의 순위를 제공하는 시스템 및 방법
KR101812657B1 (ko) * 2011-11-22 2018-01-31 삼성전자주식회사 컨텍스트 정보에 기초한 애플리케이션 추천 시스템 및 방법
US9479552B2 (en) * 2012-05-30 2016-10-25 Verizon Patent And Licensing, Inc. Recommender system for content delivery networks
CN102880501B (zh) * 2012-07-24 2016-05-25 北京奇虎科技有限公司 应用推荐的实现方法、装置和系统
US20140129553A1 (en) * 2012-11-08 2014-05-08 Sriram Sankar Search Results Based on Velocity Vectors
KR20140091633A (ko) 2013-01-11 2014-07-22 삼성전자주식회사 모바일 장치에서의 상황 인지에 따른 추천 항목을 제공하기 위한 방법 및 이를 위한 모바일 장치
US20140280098A1 (en) 2013-03-15 2014-09-18 Quixey, Inc. Performing application search based on application gaminess
CN104063383B (zh) * 2013-03-19 2019-09-27 北京三星通信技术研究有限公司 信息推荐方法及装置
US20150032492A1 (en) * 2013-07-24 2015-01-29 Lithium Technologies, Inc. Methods of Identifying Relevant Content and Subject Matter Expertise for Online Communities
US9390141B2 (en) 2013-09-30 2016-07-12 Google Inc. Systems and methods for determining application installation likelihood based on probabilistic combination of subordinate methods
US9336278B2 (en) * 2013-09-30 2016-05-10 Google Inc. User experience and user flows for third-party application recommendation in cloud storage systems
US20150120722A1 (en) * 2013-10-31 2015-04-30 Telefonica Digital Espana, S.L.U. Method and system for providing multimedia content recommendations
CN104111979A (zh) 2014-06-25 2014-10-22 小米科技有限责任公司 搜索推荐方法和装置
CN104090967B (zh) 2014-07-16 2017-08-25 北京智谷睿拓技术服务有限公司 应用程序推荐方法及推荐装置
US9971972B2 (en) * 2014-12-30 2018-05-15 Oath Inc. Predicting the next application that you are going to use on aviate

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140081896A (ko) * 2008-06-06 2014-07-01 애플 인크. 모바일 장치용의 애플리케이션 관리를 위한 사용자 인터페이스
KR20140040823A (ko) * 2011-08-29 2014-04-03 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 애플리케이션 단위로 단말기 상에서 추정된 qoe 들을 출력하는 방법
US20130232183A1 (en) * 2011-08-31 2013-09-05 Nhn Corporation System and method based on use information obtained from a user terminal
US20150088955A1 (en) * 2013-09-20 2015-03-26 Nuance Communications, Inc. Mobile application daily user engagement scores and user profiles

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020171427A1 (ko) * 2019-02-19 2020-08-27 삼성전자 주식회사 어플리케이션을 프리페치하는 전자 장치 및 방법

Also Published As

Publication number Publication date
US20160357808A1 (en) 2016-12-08
US10922094B2 (en) 2021-02-16
CN107735766B (zh) 2021-08-31
CN113687897A (zh) 2021-11-23
US20230409349A1 (en) 2023-12-21
KR102029568B1 (ko) 2019-10-07
WO2016195783A1 (en) 2016-12-08
US20210240494A1 (en) 2021-08-05
CN107735766A (zh) 2018-02-23

Similar Documents

Publication Publication Date Title
KR102029568B1 (ko) 컴퓨팅 디바이스의 사용자에게 권고들을 선행적으로 제공하기 위한 시스템들 및 방법들
US11561763B2 (en) Electronic device for processing multi-modal input, method for processing multi-modal input and server for processing multi-modal input
KR102355481B1 (ko) 반복된 액션에 대한 스마트 어시스트
US10733360B2 (en) Simulated hyperlinks on a mobile device
EP2950203B1 (en) Application scenario identification method, power consumption management method and apparatus and terminal device
JP5559273B2 (ja) ユーザ端末で取得した情報に基づいてモバイルアプリケーションの順位を提供する方法及びそのシステム
US10169467B2 (en) Query formulation via task continuum
AU2019203747B2 (en) Scoring mechanism for discovery of extremist content
US9292341B2 (en) RPC acceleration based on previously memorized flows
US11630851B2 (en) Systems and methods for providing predictions to applications executing on a computing device
US10986408B1 (en) Systems and methods for recommending linear content
CN110442402A (zh) 数据处理方法、装置、设备及存储介质
KR20190030023A (ko) 사용자의 프라이버시 제어를 추천하는 장치 및 그 방법
CN105378604B (zh) 趋势建议
US20220276067A1 (en) Method and apparatus for guiding voice-packet recording function, device and computer storage medium
JP6100832B2 (ja) メッセンジャの対話内容に基づいて推薦検索語を提供する方法とシステム、および記録媒体
KR102406634B1 (ko) 미래 상호작용 예측 기반의 개인화 추천 방법 및 시스템
US10713312B2 (en) System and method for context-launching of applications
CN114840785A (zh) 数据处理方法和装置、电子设备及存储介质
US9177255B1 (en) Cloud systems and methods for determining the probability that a second application is installed based on installation characteristics
KR101586482B1 (ko) 사용자 상태에 맞춘 검색결과 변환 방법 및 시스템
US20240005201A1 (en) Multi-step forecasting via temporal aggregation

Legal Events

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