(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-04-05
(54)【発明の名称】ナビゲーションシステム
(51)【国際特許分類】
G01C 21/34 20060101AFI20230329BHJP
G08G 1/0969 20060101ALI20230329BHJP
G16Y 10/40 20200101ALI20230329BHJP
G16Y 40/60 20200101ALI20230329BHJP
【FI】
G01C21/34
G08G1/0969
G16Y10/40
G16Y40/60
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2022544848
(86)(22)【出願日】2021-02-04
(85)【翻訳文提出日】2022-09-16
(86)【国際出願番号】 EP2021052659
(87)【国際公開番号】W WO2021156363
(87)【国際公開日】2021-08-12
(32)【優先日】2020-02-04
(33)【優先権主張国・地域又は機関】GB
(81)【指定国・地域】
(71)【出願人】
【識別番号】515288214
【氏名又は名称】トムトム ナビゲーション ベスローテン フエンノートシャップ
【氏名又は名称原語表記】TomTom Navigation B.V.
【住所又は居所原語表記】De Ruijterkade 154, 1011 AC, Amsterdam, Netherlands
(74)【代理人】
【識別番号】110003281
【氏名又は名称】弁理士法人大塚国際特許事務所
(72)【発明者】
【氏名】クロエラー, アレクサンダー
(72)【発明者】
【氏名】ヴァン ハルスト, ミック
(72)【発明者】
【氏名】コスマ, ルカス
(72)【発明者】
【氏名】カザーレ, ピエールルイジ
(72)【発明者】
【氏名】ゼニ, マッティア
【テーマコード(参考)】
2F129
5H181
【Fターム(参考)】
2F129AA03
2F129BB03
2F129BB49
2F129CC25
2F129DD13
2F129DD15
2F129DD20
2F129DD35
2F129DD39
2F129EE02
2F129EE23
2F129EE52
2F129EE78
2F129EE79
2F129EE91
2F129EE94
2F129EE96
2F129FF02
2F129FF12
2F129FF15
2F129FF17
2F129FF20
2F129FF32
2F129FF59
2F129FF62
2F129FF63
2F129FF71
2F129GG17
2F129HH12
5H181AA01
5H181BB04
5H181BB05
5H181BB15
5H181BB20
5H181CC04
5H181FF04
5H181FF10
5H181FF13
5H181FF14
5H181FF22
5H181FF32
5H181FF38
(57)【要約】
本明細書では、ナビゲーションサーバ及び複数のナビゲーションクライアントを動作させる技術が開示される。前記ナビゲーションクライアントの各々は、ローカル訓練データセット上で訓練されたモデルデータを前記ナビゲーションサーバへ送信する。前記ナビゲーションクライアントはまた、前記ローカル訓練データセットを特徴付ける属性データを前記ナビゲーションサーバへ送信する。前記ナビゲーションサーバは、前記属性データを使用して、ローカルモデルデータを改良するために前記ナビゲーションクライアントへの配信のためのモデルパラメータの集約されたセットへの重み付けされた集約を実行するために前記モデルデータの寄与を重み付けする。
【選択図】
図4
【特許請求の範囲】
【請求項1】
ナビゲーションシステムを動作させる方法であって、前記ナビゲーションシステムはサーバおよび複数のナビゲーションクライアントデバイスを含み、前記方法は、
各ナビゲーションクライアントデバイスが、前記ナビゲーションクライアントデバイスによって訪問された位置を表すそれぞれのナビゲーション履歴データを収集するために、時間とともに、それぞれの位置センサを使用することと、前記ナビゲーション履歴データを前記ナビゲーションクライアントデバイスのメモリに記憶することと、
各ナビゲーションクライアントデバイスが、前記ナビゲーションクライアントデバイスの前記メモリに記憶された、それぞれのローカル機械学習モデルを訓練し、前記ローカル機械学習モデルのための更新されたパラメータのそれぞれのセットを決定するために、前記ナビゲーション履歴データのそれぞれの訓練セットを使用することと、
各ナビゲーションクライアントデバイスが、更新されたパラメータの前記それぞれのセットを表すモデルデータを前記サーバへ送信することと、
各ナビゲーションクライアントデバイスが、更新されたパラメータの前記セットを決定するために使用される前記それぞれの訓練セットの共通の特性のそれぞれの値を表す属性データを前記サーバへ送信することと、
前記サーバが、前記ナビゲーションクライアントデバイスから前記モデルデータおよび前記属性データを受信することと、
前記サーバが、更新されたパラメータの前記セットを決定するために使用される前記それぞれの訓練セットの前記特性の前記値に応じて、更新されたパラメータの前記セットの各々が重み付けされる重み付けされた集約を実行することによって、更新されたパラメータの前記セットからパラメータの集約されたセットを決定することと、
前記サーバが、パラメータの前記集約されたセットを表すデータを、前記複数のナビゲーションクライアントデバイスのうちの第1のナビゲーションクライアントデバイスへ送信することと、
前記第1のナビゲーションクライアントデバイスが、前記第1のナビゲーションクライアントデバイスの前記メモリに記憶された前記ローカル機械学習モデルを更新するためにパラメータの前記集約されたセットを使用することと、
を含む、方法。
【請求項2】
前記サーバが、パラメータの前記集約されたセットを表す前記データを前記複数のナビゲーションクライアントデバイスの各々へ送信することと、
前記複数のナビゲーションクライアントデバイスの各々が、前記それぞれのナビゲーションクライアントデバイスの前記メモリに記憶された前記それぞれのローカル機械学習モデルを更新するために、パラメータの前記集約されたセットを使用することと、
を含む、請求項1に記載の方法。
【請求項3】
各ステップは、時間とともに繰り返される、請求項1または2に記載の方法。
【請求項4】
サーバおよび複数のナビゲーションクライアントデバイスを含むナビゲーションシステムであって、
各ナビゲーションクライアントデバイスはそれぞれ、
位置センサと、
メモリと、
処理システムと、
通信モジュールと、を備え、
前記ナビゲーションクライアントデバイスによって訪問された位置を表すそれぞれのナビゲーション履歴データを時間とともに収集するために前記位置センサを使用することと、
前記ナビゲーション履歴データを前記メモリに記憶することと、
前記ナビゲーションクライアントデバイスの前記メモリに記憶された、それぞれのローカル機械学習モデルを訓練し、前記ローカル機械学習モデルのための更新されたパラメータのそれぞれのセットを決定するために、前記ナビゲーション履歴データのそれぞれの訓練セットを使用することと、
更新されたパラメータの前記それぞれのセットを表すモデルデータを前記サーバへ送信することと、
更新されたパラメータの前記セットを決定するために使用される前記それぞれの訓練セットの共通の特性のそれぞれの値を表す属性データを前記サーバへ送信することと、
を行うように構成されており、
前記サーバは、
前記ナビゲーションクライアントデバイスから、前記モデルデータおよび前記属性データを受信することと、
更新されたパラメータの前記セットを決定するために使用される前記それぞれの訓練セットの前記特性の前記値に応じて、更新されたパラメータの前記セットの各々が重み付けされる重み付けされた集約を実行することによって、更新されたパラメータの前記セットからパラメータの集約されたセットを決定することと、
パラメータの前記集約されたセットを表すデータを前記複数のナビゲーションクライアントデバイスのうちの第1のナビゲーションクライアントデバイスへ送信することと、
を行うように構成され、
前記第1のナビゲーションクライアントデバイスは、前記第1のナビゲーションクライアントデバイスの前記メモリに記憶された前記ローカル機械学習モデルを更新するために、パラメータの前記集約されたセットを使用するように構成される、ナビゲーションシステム。
【請求項5】
前記共通の特性は、前記それぞれの訓練セットのエントロピーまたは分散を表す、請求項4に記載のナビゲーションシステム。
【請求項6】
前記共通の特性は、前記訓練セットによってカバーされる地理的エリアのサイズを表す、請求項4または5に記載のナビゲーションシステム。
【請求項7】
各ナビゲーションクライアントデバイスは、
可能な目的地のショートリストを決定することと、
目的地までのルートを予測することと、
目的地への到着時間を予測することと、
ユーザから受け付けた検索クエリに基づいて1つ以上の検索結果を予測することと、
のうちの1つ以上を行うために前記それぞれのローカル機械学習モデルを使用するように構成される、請求項4乃至6の何れか1項に記載のナビゲーションシステム。
【請求項8】
前記サーバは、パラメータの前記集約されたセットを前記複数のナビゲーションクライアントデバイスの各々へ送信するか、または送信しようと試みるように構成される、請求項4乃至7の何れか1項に記載のナビゲーションシステム。
【請求項9】
各ナビゲーションクライアントデバイスは、1つ以上の選択基準を満たす訓練セットを選択するために、前記記憶されたナビゲーション履歴データをフィルタリングするように構成される、請求項4乃至8の何れか1項に記載のナビゲーションシステム。
【請求項10】
位置センサと、
メモリと、
処理システムと、
通信モジュールと、
を含むナビゲーションクライアントデバイスであって、
前記ナビゲーションクライアントデバイスは、
前記ナビゲーションクライアントデバイスによって訪問された位置を表すナビゲーション履歴データを時間とともに収集するために前記位置センサを使用することと、
前記ナビゲーション履歴データを前記メモリに記憶することと、
前記ナビゲーションクライアントデバイスの前記メモリに記憶された、ローカル機械学習モデルを訓練し、前記ローカル機械学習モデルのための更新されたパラメータのセットを決定するために、前記ナビゲーション履歴データの訓練セットを使用することと、
更新されたパラメータの前記セットを表すモデルデータをサーバへ送信することと、
更新されたパラメータの前記セットを決定するために使用される前記訓練セットの特性の値を表す属性データを前記サーバへ送信することと、
を行うように構成される、ナビゲーションクライアントデバイス。
【請求項11】
パラメータの集約されたセットを表すデータを前記サーバから受信することと、
前記ナビゲーションクライアントデバイスの前記メモリに記憶された前記ローカル機械学習モデルを更新するために、パラメータの前記集約されたセットを使用することと、
を行うようにさらに構成される、請求項10に記載のナビゲーションクライアントデバイス。
【請求項12】
前記特性は、前記訓練セットのエントロピーまたは分散を表す、請求項10または11に記載のナビゲーションクライアントデバイス。
【請求項13】
前記特性は、前記訓練セットによってカバーされる地理的エリアのサイズを表す、請求項10乃至12の何れか1項に記載のナビゲーションクライアントデバイス。
【請求項14】
前記位置センサは、衛星測位センサである、請求項10乃至13の何れか1項に記載のナビゲーションクライアントデバイス。
【請求項15】
前記訓練セットは、目的地データまたはルートデータを含む、請求項10乃至14の何れか1項に記載のナビゲーションクライアントデバイス。
【請求項16】
前記ローカル機械学習モデルを訓練するために、前記ナビゲーションクライアントデバイスによって訪問された位置を表すデータに加えて、検索データを使用するように構成される、請求項10乃至15の何れか1項に記載のナビゲーションクライアントデバイス。
【請求項17】
可能な目的地のショートリストを決定するために前記ローカル機械学習モデルを使用するように構成され、可能な目的地の前記ショートリストをユーザに提示するように構成される、請求項10乃至16の何れか1項に記載のナビゲーションクライアントデバイス。
【請求項18】
目的地までのルートを予測するために前記ローカル機械学習モデルを使用するように構成される、請求項10乃至17の何れか1項に記載のナビゲーションクライアントデバイス。
【請求項19】
目的地への到着時間を予測するために前記ローカル機械学習モデルを使用するように構成される、請求項10乃至18の何れか1項に記載のナビゲーションクライアントデバイス。
【請求項20】
ユーザから受け付けた検索クエリに基づいて1つ以上の検索結果を予測するために前記ローカル機械学習モデルを使用するように構成される、請求項10乃至19の何れか1項に記載のナビゲーションクライアントデバイス。
【請求項21】
出力を予測するために前記ローカルモデルに入力データを提供するように構成され、前記入力データは、時間、天候、および現在のユーザのIDのうちの1つ以上を表す、請求項10乃至20の何れか1項に記載のナビゲーションクライアントデバイス。
【請求項22】
前記更新されたパラメータをパラメータの前記集約されたセットで置き換えることによって前記ローカル機械学習モデルを更新するために、パラメータの前記集約されたセットを使用するように構成される、請求項10乃至21の何れか1項に記載のナビゲーションクライアントデバイス。
【請求項23】
1つ以上の選択基準を満たす訓練セットを選択するために、前記記憶されたナビゲーション履歴データをフィルタリングするように構成される、請求項10乃至22の何れか1項に記載のナビゲーションクライアントデバイス。
【請求項24】
位置センサと、メモリと、通信モジュールとを有するナビゲーションクライアントデバイスのプロセッサによって実行されると、前記プロセッサに、
前記ナビゲーションクライアントデバイスによって訪問された位置を表すナビゲーション履歴データを時間とともに収集するために前記位置センサを使用することと、
前記ナビゲーション履歴データを前記メモリに記憶することと、
前記ナビゲーションクライアントデバイスの前記メモリに記憶されたローカル機械学習モデルを訓練し、前記ローカル機械学習モデルのための更新されたパラメータのセットを決定するために、前記ナビゲーション履歴データの訓練セットを使用することと、
更新されたパラメータの前記セットを表すモデルデータをサーバへ送信するように前記通信モジュールを制御することと、
更新されたパラメータの前記セットを決定するために使用される前記訓練セットの特性の値を表す属性データを前記サーバへ送信するように前記通信モジュールを制御することと、
を行わせる命令を含むコンピュータプログラム製品。
【請求項25】
前記プロセッサによって実行されると、前記プロセッサに、
サーバからパラメータの集約されたセットを表すデータを受信するために前記通信モジュールを使用することと、
前記ナビゲーションクライアントデバイスの前記メモリに記憶された前記ローカル機械学習モデルを更新するためにパラメータの前記集約されたセットを使用することと、
を行わせる命令をさらに含む、請求項15に記載のコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ナビゲーションデバイス及びシステム、並びにその動作方法に関する。
【背景技術】
【0002】
GPS(Global Positioning System)信号受信処理機能を含むナビゲーションデバイスが周知であり、車両ナビゲーションシステムとして広く採用されている。概して、最新のナビゲーションデバイスは、プロセッサ、メモリ(揮発性および不揮発性のうちの少なくとも一方、および一般的に両方)、および前記メモリ内に記憶された地図データを備え得る。そのようなナビゲーションデバイスは一般に、デバイスの現在位置を決定するためにGPS位置データを処理することができる。
【0003】
GPS位置データは、デバイスの現在位置に基づいて、ナビゲーション機能を提供するために、または他の位置ベースのサービスを実行するために、デバイスによって使用され得る。例えば、デバイスは、ルートに沿ってナビゲートするときにデバイスのユーザを支援するために、関連するナビゲーション命令(例えば、「次のジャンクションで左折」)を提供することができる。
【0004】
複数のそのようなナビゲーションデバイスからのGPS位置データは、中央サーバに提供され、例えば、道路ネットワーク内の交通状況のピクチャを構築するために使用され得る。そのようなナビゲーション履歴データはまた、例えば、そのようなナビゲーションデバイスによって使用され得る電子地図を更新または構築するために、ある範囲のデジタルマッピング目的のために使用され得る。
【0005】
しかしながら、ナビゲーションクライアントデバイスから、ユーザによって訪問されたルートおよび目的地などのナビゲーションデータをエクスポートすることは、情報が個人的にセンシティブであり得るので、プライバシーの懸念を生じ得る。
【0006】
本発明は、ユーザのプライバシーを維持しながら、ナビゲーションシステムの性能を改善するためにデータを使用することを可能にする、ナビゲーション履歴データを処理するための新しいアプローチを提供することを目的とする。
【発明の概要】
【0007】
第1の態様から、本発明は、ナビゲーションシステムを動作させる方法であって、前記ナビゲーションシステムはサーバおよび複数のナビゲーションクライアントデバイスを含み、前記方法は、
各ナビゲーションクライアントデバイスが、前記ナビゲーションクライアントデバイスによって訪問された位置を表すそれぞれのナビゲーション履歴データを収集するために、時間とともに、それぞれの位置センサを使用することと、前記ナビゲーション履歴データを前記ナビゲーションクライアントデバイスのメモリに記憶することと、
各ナビゲーションクライアントデバイスが、前記ナビゲーションクライアントデバイスのメモリに記憶された、それぞれのローカル機械学習モデルを訓練し、前記ローカル機械学習モデルのための更新されたパラメータのそれぞれのセットを決定するために、前記ナビゲーション履歴データのそれぞれの訓練セットを使用することと、
各ナビゲーションクライアントデバイスが、更新されたパラメータの前記それぞれのセットを表すモデルデータを前記サーバへ送信することと、
各ナビゲーションクライアントデバイスが、更新されたパラメータの前記セットを決定するために使用される前記それぞれの訓練セットの共通の特性のそれぞれの値を表す属性データを前記サーバへ送信することと、
前記サーバが、前記ナビゲーションクライアントデバイスから前記モデルデータおよび前記属性データを受信することと、
前記サーバが、更新されたパラメータの前記セットを決定するために使用される前記それぞれの訓練セットの前記特性の前記値に応じて、更新されたパラメータの前記セットの各々が重み付けされる重み付けされた集約を実行することによって、更新されたパラメータの前記セットからパラメータの集約されたセットを決定することと、
前記サーバが、パラメータの前記集約されたセットを表すデータを、前記複数のナビゲーションクライアントデバイスのうちの第1のナビゲーションクライアントデバイスへ送信することと、
前記第1のナビゲーションクライアントデバイスが、前記第1のナビゲーションクライアントデバイスの前記メモリに記憶された前記ローカル機械学習モデルを更新するためにパラメータの前記集約されたセットを使用することと、
を含む、方法を提供する。
【0008】
第2の態様から、本発明は、サーバおよび複数のナビゲーションクライアントデバイスを含むナビゲーションシステムであって、
各ナビゲーションクライアントデバイスはそれぞれ、
位置センサと、
メモリと、
処理システムと、
通信モジュールと、を備え、
前記ナビゲーションクライアントデバイスによって訪問された位置を表すそれぞれのナビゲーション履歴データを時間とともに収集するために前記位置センサを使用することと、
前記ナビゲーション履歴データを前記メモリに記憶することと、
前記ナビゲーションクライアントデバイスの前記メモリに記憶された、それぞれのローカル機械学習モデルを訓練し、前記ローカル機械学習モデルのための更新されたパラメータのそれぞれのセットを決定するために、前記ナビゲーション履歴データのそれぞれの訓練セットを使用することと、
更新されたパラメータの前記それぞれのセットを表すモデルデータを前記サーバへ送信することと、
更新されたパラメータの前記セットを決定するために使用される前記それぞれの訓練セットの共通の特性のそれぞれの値を表す属性データを前記サーバへ送信することと、
を行うように構成されており、
前記サーバは、
前記ナビゲーションクライアントデバイスから、前記モデルデータおよび前記属性データを受信することと、
更新されたパラメータの前記セットを決定するために使用される前記それぞれの訓練セットの前記特性の前記値に応じて、更新されたパラメータの前記セットの各々が重み付けされる重み付けされた集約を実行することによって、更新されたパラメータの前記セットからパラメータの集約されたセットを決定することと、
パラメータの前記集約されたセットを表すデータを前記複数のナビゲーションクライアントデバイスのうちの第1のナビゲーションクライアントデバイスへ送信することと、
を行うように構成され、
前記第1のナビゲーションクライアントデバイスは、前記第1のナビゲーションクライアントデバイスの前記メモリに記憶された前記ローカル機械学習モデルを更新するために、パラメータの前記集約されたセットを使用するように構成される、ナビゲーションシステムを提供する。
【0009】
第3の態様から、本発明は、
位置センサと、
メモリと、
処理システムと、
通信モジュールと、
を含むナビゲーションクライアントデバイスであって、
前記ナビゲーションクライアントデバイスは、
前記ナビゲーションクライアントデバイスによって訪問された位置を表すナビゲーション履歴データを時間とともに収集するために前記位置センサを使用することと、
前記ナビゲーション履歴データを前記メモリに記憶することと、
前記ナビゲーションクライアントデバイスの前記メモリに記憶された、ローカル機械学習モデルを訓練し、前記ローカル機械学習モデルのための更新されたパラメータのセットを決定するために、前記ナビゲーション履歴データの訓練セットを使用することと、
更新されたパラメータの前記セットを表すモデルデータをサーバへ送信することと、
更新されたパラメータの前記セットを決定するために使用される前記訓練セットの特性の値を表す属性データを前記サーバへ送信することと、
を行うように構成される、ナビゲーションクライアントデバイスを提供する。
【0010】
前記ナビゲーションクライアントデバイスは、
パラメータの集約されたセットを表すデータを前記サーバから受信することと、
前記ナビゲーションクライアントデバイスの前記メモリに記憶された前記ローカル機械学習モデルを更新するために、パラメータの前記集約されたセットを使用することと、
を行うようにさらに構成されてもよい。
【0011】
第4の態様から、本発明は、位置センサと、メモリと、通信モジュールとを有するナビゲーションクライアントデバイスのプロセッサによって実行されると、前記プロセッサに、
前記ナビゲーションクライアントデバイスによって訪問された位置を表すナビゲーション履歴データを時間とともに収集するために前記位置センサを使用することと、
前記ナビゲーション履歴データを前記メモリに記憶することと、
前記ナビゲーションクライアントデバイスの前記メモリに記憶されたローカル機械学習モデルを訓練し、前記ローカル機械学習モデルのための更新されたパラメータのセットを決定するために、前記ナビゲーション履歴データの訓練セットを使用することと、
更新されたパラメータの前記セットを表すモデルデータをサーバへ送信するように前記通信モジュールを制御することと、
更新されたパラメータの前記セットを決定するために使用される前記訓練セットの特性の値を表す属性データを前記サーバへ送信するように前記通信モジュールを制御することと、
を行わせる命令を含むコンピュータプログラム製品を提供する。
【0012】
この態様は、前記コンピュータプログラム製品を搭載する一時的または非一時的な媒体に及ぶ。
【0013】
前記コンピュータプログラム製品は、前記プロセッサによって実行されると、前記プロセッサに、
サーバからパラメータの集約されたセットを表すデータを受信するために前記通信モジュールを使用することと、
前記ナビゲーションクライアントデバイスの前記メモリに記憶された前記ローカル機械学習モデルを更新するためにパラメータの前記集約されたセットを使用することと、
を行わせる命令をさらに含んでもよい。
【0014】
したがって、本発明によれば、単一のクライアントデバイス上の機械学習モデルは、前記クライアントデバイスのいずれも前記クライアントデバイスからセンシティブな履歴データをエクスポートする必要なく、前記システム内の他のナビゲーションクライアントデバイスによって収集されたナビゲーション履歴データから恩恵を受けることができることが分かる。
【0015】
さらに、モデル全体に対する各クライアントデバイスの寄与は、各それぞれのクライアントデバイス上に記憶されたナビゲーションデータの特性に基づいて重み付けされる。これは、それぞれのナビゲーションクライアントデバイスの使用パターンが、ナビゲーションシステムの場合に典型的にそうであるように、互いに大きく異なる場合に、モデル全体において生じる不安定性を防ぐのに役立つことができる。例えば、ユーザは一般に、異なる移動パターンを有し、実質的に異なる地図エリア(すなわち、国全体にわたって異なる物理的位置)で動作する。異なるナビゲーションデバイスが個々の旅で移動する典型的な距離、および/または異なるユーザが所与の道路または道路タイプに沿って移動する速度には、有意な差が存在し得る。異なるデバイスの寄与を重み付けすることによって、不安定性およびバイアスの可能性を低減することができ、これは、パラメータの集約されたセットが、集約されたパラメータが送信される任意のクライアントデバイスのナビゲーション性能を実際に改善することを保証するのに役立ち得る。
【0016】
そのような連合機械学習アプローチは、同じモデルが多数のナビゲーションクライアントデバイスに展開されることを可能にすることができ、それは、ユーザの個人データに従ってそれぞれのローカルモデルパラメータを個別に更新することができる。これらの更新されたパラメータは、各クライアントデバイスからのローカル訓練データの特性に基づく重み付けを使用して、1つの更新された集中モデルとして集約され得る。このプロセスは、すべてのナビゲーションクライアントデバイスにわたって分散されたローカルモデルに対して、進行中の改善が行われることを可能にするために、間隔をおいて繰り返され得る。サーバに送信される更新されたモデルパラメータは、一般に、元の訓練セットを再現するようにリバースエンジニアリングすることができないので、この分散反復アプローチは、強力なユーザプライバシーを可能にすることができる。
【0017】
各訓練セットの共通の特性は、ナビゲーション履歴データの訓練セットの任意の属性に関連し得る。しかしながら、いくつかの実施形態では、共通の特性は、訓練セットのエントロピーまたは情報コンテンツを表す。これは、単に訓練セットの生のサイズと同じではなく、例えば、たとえ生の履歴データがナビゲーションデバイスのメモリ内の同様の量のメモリを占有し得るとしても、異なる日に移動された同じルートの20個のインスタンスからなるナビゲーション履歴データは、20個の完全に異なるルートの20個のインスタンスよりもはるかに低い情報コンテンツを有することになる。したがって、それぞれの値は、エントロピー値であり得る。エントロピーは、ここでは例えばShannonによって定義されるような形式的な数学的意味で、またはより一般的な意味で理解され得る。いくつかの実施形態では、共通の特性は、訓練セットの分散を表す統計値など、の訓練セットの統計値である。
【0018】
いくつかの実施形態では、前記共通の特性は、前記訓練セットによってカバーされる地理的エリアのサイズ、例えば、前記ナビゲーション履歴データに含まれる位置のセットの一部または全部を含む最小凸形状のエリアを表す。前記エリアは、2D位置を正規分布データサンプルとして見るとき、位置のすべて、またはサブセットのみ、たとえば、95%などの所定の値の信頼楕円内の位置を含み得る。共通の特性の値は、カバーされたエリアを、絶対エリアとして、または相対エリアとして、たとえば、所定の地図エリア(たとえば、国)などのより大きいエリアの割合として表すことができる。
【0019】
前記位置センサは、GPSセンサなどの衛星測位センサであってもよい。
【0020】
ナビゲーション履歴データの前記訓練セットは、タイムスタンプされ得る位置データ(例えば、座標データ)を含み得る。位置は、前記ナビゲーションデバイスによって行われるトリップ(移動)の目的地であってもよい。位置は、前記ナビゲーションデバイスによって移動されるルートに沿った地点であってもよい。前記訓練セットは、ルートデータを含むことができる。
【0021】
前記ローカル機械学習モデルは、前記位置センサから収集されないさらなるデータを使用して追加的に訓練されてもよい。いくつかの実施形態では、さらなるデータは、検索データ、例えば、ユーザによって入力された符号化検索用語、またはユーザに対して以前に提示された検索結果を含むことができる。前記クライアントデバイスによって送信される前記属性データは、さらなるデータの1つ以上の特性の値をさらに符号化し得る。前記サーバは、パラメータの前記集約されたセットを決定するために更新されたパラメータの前記セットの各々を重み付けするときに、これらのさらなる値をさらに使用することができる。
【0022】
前記ローカル機械学習モデルは、畳み込みニューラルネットワーク、回帰型ニューラルネットワーク(RNN)、ゲート付き回帰型ユニット(GRU)モデル、ロングショートタームメモリ(LSTM)モデル、微分可能ニューラルコンピュータ(DNC)モデル、フィードフォワードニューラルネットワーク、ペアワイズランキングモデル、または任意の他の適切なモデルなど、任意の適当なモデルであり得る。
【0023】
ナビゲーションクライアントデバイスは、任意の適切な訓練プロセスを使用して、例えば確率的勾配降下法を使用して、そのそれぞれのローカル機械学習モデルを訓練することができる。
【0024】
ナビゲーションクライアントデバイスは、前記ローカル機械学習モデルを使用して、前記デバイスのユーザに機能を提供することができる。
【0025】
前記デバイスは、ユーザ入力を受信するためのタッチスクリーンなどの入力を備え得る。それは、地図などの情報をユーザに表示するための表示画面などの出力を備えてもよい。
【0026】
いくつかの実施形態において、前記モデルは、目的地を予測するために使用される。前記デバイスは、可能な目的地のショートリストを決定するために前記モデルを使用してもよい。それは、ユーザが所望の目的地を選択するために、このリストを前記ユーザに(例えば、表示画面上で)提示することができる。前記デバイスは、各目的地が前記ユーザの所望の目的地である推定尤度によって、可能な目的地をランク付けすることができる。
【0027】
いくつかの実施形態では、前記モデルは、例えば、ユーザから受信された目的地データに応じて、または前記モデルによって予測された目的地に応じて、または前記クライアントデバイス上に記憶されたさらなるローカル機械学習モデルによって、目的地へのルートを予測するために使用される。前記デバイスは、可能なルートのショートリストを決定するために前記ローカル機械学習モデルを使用することができる。ユーザが所望のルートを選択するために、このリストを前記ユーザに提示することができる。前記デバイスは、各ルートが前記ユーザのための所望のルートである推定尤度によって、可能なルートをランク付けすることができる。あるいは、単一のルートを決定してもよい。前記デバイスは、選択されたまたは決定されたルートに沿ってユーザをナビゲートするように構成されてもよい。
【0028】
いくつかの実施形態では、前記モデルは、目的地への到着時間を予測するために使用される。前記デバイスは、例えば、移動を開始する前または移動中に、これを推定到着時間としてユーザに提示することができる。
【0029】
いくつかの実施形態では、前記モデルは、例えば、所望の目的地の検索結果または検索結果のセットを予測するために使用される。前記予測は、ユーザから受信された(受け付けた)検索クエリ、例えば、地名の最初の数文字などの部分検索用語、または「パリの良好なレストラン」などの複数の可能な結果を有するクエリに基づくことができる。前記デバイスは、ユーザによる位置検索のためのコンテキスト化されたランキングを提供するために前記モデルを使用し得る。前記デバイスは、それらを前記ユーザに表示する前に、位置のセットをランク付けすることができる。
【0030】
前記ローカルモデルは、現在の時間、現在の天気、または現在のユーザのアイデンティティ(ID)などの1つ以上の入力を受信することができ、それは、予測を決定するときに使用することができる。
【0031】
前記サーバは、パラメータの前記集約されたセットを、前記複数のナビゲーションクライアントデバイスのうちの1つ以上のさらなるナビゲーションクライアントデバイスへ送信し得る。それは、前記システム内のすべてのナビゲーションクライアントデバイスへ、パラメータの前記集約されたセットを送信するか、または送信しようと試みることができる。
【0032】
第1のナビゲーションクライアントデバイス、およびパラメータの前記集約されたセットを受信する任意の他のクライアントデバイスは、パラメータの前記集約されたセットを使用して、前記ローカル機械学習モデルのための記憶されたパラメータのセット(たとえば、前記サーバに送信される更新されたパラメータ)を、パラメータの前記受信された集約されたセットで置き換えることによって、そのそれぞれのローカル機械学習モデルを更新することができる。
【0033】
各クライアントデバイスは、(たとえば、前記デバイスが電源投入され、ネットワーク接続性を有するときに応じて)規則的または不規則的であり得る間隔で、更新されたパラメータおよび関連する特性値を前記サーバへ送信するように構成され得る。前記クライアントデバイスは、継続的に、または間隔をおいて、例えば、閾値量よりも多くの新たなナビゲーション履歴データが収集されたときに、ローカルモデルを訓練することができる。
【0034】
クライアントデバイスは、前記記憶されたナビゲーション履歴データのすべてを使用してそのローカルモデルを訓練することができる。しかしながら、いくつかの実施形態では、クライアントデバイスは、前記記憶されたナビゲーション履歴データをフィルタリングして、1つ以上の選択基準を満たす訓練セットを選択するように構成される。それは、例えば、特定のタイプのデータを除外することができ、または、それは、ホーム位置または作業(仕事)位置などの除外された目的地に関連付けられたデータを除外することができる。これにより、ユーザのプライバシーをさらに向上させることができる。
【0035】
前記サーバは、例えば、一定の間隔で、またはクライアントデバイスから更新されたパラメータを受信することに応答して、経時的にパラメータの集約されたセットの連続を計算するように構成され得る。それは、前記第1のナビゲーションクライアントデバイスおよび/または前記システム内のさらなるクライアントデバイスに、パラメータの各集約されたセットを連続して送信するか、または送信しようと試みることができる。
【0036】
本明細書に記載の任意の態様または実施形態の特徴は、適切な場合にはいつでも、本明細書に記載の任意の他の態様または実施形態に適用することができる。様々な実施形態または実施形態のセットが参照される場合、これらは必ずしも別個ではなく、重複し得ることを理解されたい。
【図面の簡単な説明】
【0037】
ここで、本発明の特定の好ましい実施形態を、添付の図面を参照して、単なる例として説明する。
【
図1】
図1は、本発明を具体化するクライアントナビゲーションデバイスの概略図である。
【
図2】
図2は、全てが本発明を具体化し、異なるフォームファクタを有する一組の変形クライアントナビゲーションデバイスのセットである。
【
図3】
図3は、本発明を具体化するナビゲーションシステムの概略図である。
【
図4】
図4は、ナビゲーションシステムの機械学習サーバと機械学習クライアントモジュールとの間の構成要素およびデータフローのより詳細を示す概略図である。
【
図5】
図5は、本発明を具体化するナビゲーションシステムにおける機械学習サーバおよび変形機械学習クライアントモジュール内およびそれらの間の構成要素およびデータフローを示す概略図である。
【
図6】
図6は、本発明を具体化するナビゲーションシステムによって使用される連合訓練プロセスのフローチャートである。
【発明を実施するための形態】
【0038】
図1は、本発明を実施するクライアントナビゲーションデバイス1の主要な要素を示す。
【0039】
ナビゲーションデバイス1は、他の構成要素の中でも、プロセッサ2と、プロセッサ2による実行のためのソフトウェアを格納する不揮発性フラッシュメモリ3と、一時データを格納するための揮発性RAM 4と、表示画面5と、GPSモジュール6と、バッテリ7とを含む。
【0040】
フラッシュメモリ3は、プロセッサ2が実行するためのナビゲーションクライアントソフトウェアプログラムを格納する。ナビゲーションクライアントプログラムは、GPSモジュール6から位置データを受信し、これを使用して、表示画面5上に表示された電子地図上にデバイス1の現在位置の視覚的表現を表示することができる。
【0041】
そのようなナビゲーションクライアントソフトウェアを実行することができる広範囲のコンピューティングデバイスが存在する。
【0042】
図2は、タブレットデバイス1'、スマートフォン1''、ラップトップコンピュータ1'''、および複合インフォテインメントシステムであり得る内蔵車載ナビゲーションシステム1''''を含む、いくつかの例を示す。各々は、ユーザにナビゲーションデータ、例えば地図を表示するための表示画面5'、5''、5'''、5''''を有する。これは、ユーザが所望の目的地までナビゲートするのを支援することができる。しかしながら、視覚表示は必須ではなく、例えば、いくつかの実施形態は、音声ナビゲーション命令などの音響出力のみを提供し得る。
【0043】
パーソナルナビゲーションデバイス(PND)は、単一目的のコンピューティングデバイスである。車両はまた、ナビゲーションクライアントと一体化されたコンピューティングデバイスを有する。他のコンピューティングデバイスは、携帯電話、タブレット、およびウェアラブル(腕時計)などの汎用コンピューティングデバイスである。これらのデバイスのいずれかを使用して、本発明の実施形態を実施することができる。
【0044】
図3は、本発明を実施するナビゲーションシステム400の機能図を提供する。
【0045】
システム400は、ナビゲーションクライアントデバイス402と、地図サーバ404と、交通情報サーバ406と、機械学習(ML)サーバ500とを含む。これらのサーバ404、406、500およびそれらのモジュールを有するクライアントデバイス402は、以下でより詳細に説明される。
【0046】
ナビゲーションクライアントデバイス402は、
図1のようなデバイス1であってもよいが、これは必須ではない。その機能は、クライアントナビゲーションデバイス1のプロセッサ2上で実行されるソフトウェアを使用して実装され得る。
【0047】
システム400は、典型的には多くの他のナビゲーションクライアントデバイス(
図3には図示せず)を含み、各々は、このナビゲーションクライアント402と同様である。これらは、例えば、
図2に例示されるように、様々なハードウェアプラットフォームにわたって実装され得る。
【0048】
ナビゲーションクライアント402は、地図サーバ404、交通情報サーバ406、およびMLサーバ500と無線で通信する。より詳細には、ナビゲーションクライアント402上のHTTPSクライアント424が、地図サーバ404上の地図データサービス438および交通情報サーバ406上の交通情報サービス444にアクセスすることができる。ナビゲーションクライアント402上のプローブインタフェース428は、交通情報サーバ406上のプローブデータサービス446と通信することができる。ナビゲーションクライアント402上の機械学習(ML)クライアントモジュール429は、MLサーバ500上の機械学習サービス450と通信することができる。これらの通信は、セルラー電話回線及び/又はBluetoothTMもしくはWiFiTM及び/又は任意の他の好適なデータチャネルを介して行うことができる。
【0049】
地図サーバ404、交通情報サーバ406、およびMLサーバ500は、別個のサーバであってもよく、または単一のサーバシステム内で少なくとも部分的に組み合わされてもよい。サーバ404、406、500は、個々の物理サーバであってもよく、または、ナビゲーションクライアントデバイスのための負荷分散を提供するか、またはアクセスの速度を向上させるために、それぞれが複数の場所にわたって物理的に配置された分散サーバであってもよい。
【0050】
ナビゲーションクライアント402
図3のナビゲーションクライアントデバイス402は、ほとんどのコンピューティングデバイスに共通のユーザ入力デバイス410および出力デバイス(たとえば、表示画面412)を含む。地図データコントローラ414は、地図データを取得し、コンピューティングデバイス(例えば、クライアントナビゲーションデバイス1)の不揮発性メモリ(例えば、フラッシュメモリ3)に格納する。位置センサ416(例えば、GPSモジュール6)は、処理ユニット、メモリ、ディスプレイ、長期記憶装置(フラッシュメモリ)、およびネットワーキングインタフェースなどの従来のコンピューティングハードウェア構成要素に加えて、位置センサ(例えば、GPS受信機)を備える。
【0051】
ナビゲーションクライアント402は、地理的エリアの電子地図を使用して動作する。地図情報は、デバイス上にローカルに長期間(例えば、不揮発性のソリッドステートメモリ内に)記憶されてもよく、または地図サーバ404から必要に応じて、例えば、断片的に取り出されてもよい。ナビゲーションクライアント402は、電子地図を使用して、ディスプレイ412上の関心のある地理的エリアの地図ビューを生成する。通常、地理的エリアは、ナビゲーションクライアントソフトウェアアプリケーションを実行するクライアントデバイスの現在位置を中心とする。衛星測位(GPS、GNSSなど)、WiFiTM、携帯電話追跡、BluetoothTMビーコン、画像解析(例えば、PCT/EP2016/068593、PCT/EP2016/068594、PCT/EP2016/068595、およびPCT/IB2016/001198に記載されているようなTomTomTMからのRoadDNATM)、地図マッチング、デッドレコニング、および他の位置センサなどの既知の位置検出技術を使用する位置センサ416に基づいて現在位置が決定される。位置検出誤差が存在する場合、「地図マッチング」として知られるプロセスを使用して、測定された位置を、地図上の道路セグメントに最もよくマッチングするように調整することができる。
【0052】
ナビゲーションクライアント402は、人間のユーザが現在位置から目的位置までナビゲートするのを支援することができる。目的地は、目的地選択モジュール418を使用して入力することができる。モジュール418は、ユーザが名称(例えば、「London」)または他のクエリ(例えば、「Fish & chip near me」)によって所望の目的地を検索することを可能にする検索インタフェースを提供することができる。それは、ユーザが文字「L」および「O」をタイプするとき、リスト中の「London」、「Loughborough」などを提案するなど、不完全な検索語からの検索語を示唆する可能性がある自動補完機能を提供することができる。ナビゲーションクライアントは、例えば尤度順に、検索提案及び/又は検索結果を順序付けるために順序付けプロセスを使用することができる。順序付け処理は、以下でより詳細に説明するように、機械学習モデルを使用することができ、機械学習モデルは、ユーザの検索履歴およびナビゲーションデータについて訓練することができる。それはまた、本明細書に開示されるような連合(federated)学習アプローチを使用して、他のユーザの検索履歴およびナビゲーションパターンを考慮することができる。
【0053】
ナビゲーションクライアント402のルーティングモジュール420は、選択された目的地までのルートを算出する。ルーティングモジュール420は、地図データコントローラ414を介して電子地図にアクセスすることに加えて、交通情報サーバ406から現在の交通情報を取得して、推定移動時間または推定到着時間を決定(判定)することができる。現在の交通情報は、電子地図の地理的エリアにおける道路ネットワーク上の現在の状況を記述する。これは、現在の平均速度、現在の交通密度、現在の道路閉鎖などを含む。
【0054】
ルーティングモジュール420は、異なる道路または道路タイプ上のユーザの典型的な運転速度などのデータを用いて訓練され得る機械学習モデルを使用して、移動時間または到着時間の推定値を決定し得る。モデルはまた、本明細書に開示される連合学習アプローチを使用して、他のユーザの運転データを考慮に入れてもよい。
【0055】
ルーティングモジュール420は、好ましいルート、ならびに代替ルートを提示することができ、ユーザが好ましいルートを選択することを可能にする。
【0056】
ナビゲーションクライアント402の案内モジュール422は、選択された好ましいルートを使用して、エンドユーザを選択された目的地に案内する。それは、ディスプレイ412を使用して、地図および目的地までの経路の一部を示すことができる。案内は、ディスプレイ412上の追加のグラフィカル表示の形態をとることもできる。ほとんどのナビゲーションクライアント402はまた、ターンバイターン命令を用いて音声案内をサポートする。
【0057】
アクティブナビゲーションクライアント402は、位置プローブジェネレータ426を用いて、位置センサ416を使用して位置プローブを生成し、これらを交通情報サーバ406に提供する。通信は、交通情報サーバ406上のプローブデータサービス446と通信するクライアント402上のプローブインタフェース428を介して行われる。
【0058】
地図サーバ404
地図サーバ404は、電子地図を作成するための大量の情報、およびナビゲーションのための電子地図の使用を記憶し、管理し、作成するためのインフラストラクチャを提供する。
【0059】
地図サーバ404は、広範な国(約200カ国)の107~108キロメートルの道路ネットワークに関連する地図情報を管理する。地図情報は、高品質である必要があるので、サーバインフラストラクチャ404は、毎秒約1000回の更新を平均化する更新レートで、地図情報に対する更新を処理する。さらに、地図情報は、ナビゲーションクライアント402のグローバルインフラストラクチャに配信される。配信は、配信される地図情報を生成するために、クラウドコンピューティングシステムに加えて、高度なコンテンツ配信ネットワーク(図示せず)を必要とする。したがって、地図サーバ404は、複数の物理的位置にわたって分散され得る。
【0060】
地図データソース434は、地図生成モジュール432にデータを供給し、そこから地図コンパイラ430に渡される。これは、情報を使用して、地図情報を適切なフォーマット、例えば、標準化された地図仕様(NDS、OSMなど)に準拠するものにコンパイルするか、または特定のアプリケーション(カーナビゲーション、オンフットナビゲーション、車両タイプ特定ナビゲーション、公共交通航法、自律車両ナビゲーションなど)のための地図情報を生成するバックオフィスアプリケーションである。地図コンパイラは、1つのプレゼンテーションフォーマットから関連情報を取得し、特定の地図エリアに関連する地図情報を生成する。
【0061】
コンパイルされた地図データは、地図データサーバ438および関連する地図メタデータサービス436を介してリモートナビゲーションクライアント402に利用可能にされる。ナビゲーションクライアント402は、時折のみ(例えば、有線インターネット接続を介した単一の大規模なダウンロードとして)、または必要に応じてほぼリアルタイムで(例えば、クライアント402の現在位置に応じて、より小さい地図ユニットまたはタイルを無線でダウンロードする)更新を取得することができる。
【0062】
交通情報サーバ406
交通情報サーバ406は、交通情報コンパイラ440を使用して、交通情報サービス444を介してナビゲーションクライアント402に道路情報および交通情報を提供する。サーバ406はまた、ナビゲーションクライアント402からプローブを受信し、これらのプローブを使用して、リアルタイム交通情報を計算し、更新し、提供する。
【0063】
交通情報サーバ406は、ナビゲーションクライアント402からの位置プローブを、開始位置から目的地まで移動した経路を記述する一連の位置プローブに集約する。そのような時限位置データは機密性の高い個人データである。このようなデータの取り扱いは、欧州の一般データ保護規則などの法規制の対象となる。TomTomTM特許である欧州特許第3095226号明細書は、本システム400において使用され得るリアルタイムプローブデータを取り扱う際のプライバシー問題に対処するためのメカニズムを開示している。これは、トレースデータが「ライブトレース」データベースから「履歴トレース」データベースに移動されるときに、トレース内のすべてのプローブからデバイス識別子の値(ユーザを識別する)を除去する解決策を説明する。プローブは、プローブデータソース442に記憶される。
【0064】
地図情報は、通常、履歴データに基づく静的交通情報を含む。交通密度、駐車場利用可能性、事故、道路閉鎖、更新された道路標識、関心地点などのより動的な交通情報のために、交通情報サーバ406は、ナビゲーションクライアント402からの位置プローブデータを使用する。交通情報コンパイラ440は、現在の位置プローブデータを使用して、現在の交通情報を提供することができる。
【0065】
機械学習サーバ500
MLサーバ500は、ナビゲーションクライアント402に機械学習サービス501を提供する。MLサーバ500は、複数のナビゲーションクライアント402から受信したデータを集約し、ナビゲーションクライアント402へのモデルデータの送信を制御する、モデル更新エンジン520を含む。モデル更新モジュール520は、サーバ500上のメモリに記憶されている中央モデル510にアクセスする。
【0066】
図4は、MLサーバ500およびMLクライアントモジュール429のさらなる詳細を提供する。
【0067】
機械学習サーバ500および複数のナビゲーションクライアントデバイス402のクライアントモジュール429は共に、各クライアントデバイス402がローカルデータを使用して、中央サーバ500から取得されたローカル機械学習モデルを独立して更新し、更新されたモデルを中央サーバ500へ返す、連合(統合)機械学習システムを実装する。MLサーバ500は、受信された更新されたモデルをマージし、更新モデルデータをナビゲーションクライアント402に提供する。このクライアント更新サイクルは、時間とともに(経時的に)繰り返される。
【0068】
このアプローチは、ナビゲーションおよび位置履歴などの機密ユーザデータを含む中央データリポジトリの必要性を回避し、データ漏洩に対する保護を提供し、ユーザプライバシーを改善する。
【0069】
MLサーバ500およびクライアントモジュール429は、最新技術(例:国際公開第2018/057302号で開示されている)で知られている連合機械学習の原則を実装することができる。しかしながら、それらはまた、本明細書に開示されるような追加の新規なプロセスを実施する。
【0070】
図4は、中央モデル510を符号化するデータを記憶するMLサーバ500、および、MLサーバ500と通信する複数のナビゲーションクライアントのうちの代表ナビゲーションクライアント402を示す。各ナビゲーションクライアント402は、(上記で開示したような訓練セットを実施する)クライアントデータ640を含むプライベートデータストアを有する。
【0071】
最初に初期化されると(例えば、ユーザが、購入後にデバイス402を最初にスイッチオンすると)、クライアント402は、中央モデル510を表すデータを受信し、それをクライアントモデル610として使用する。その後、各クライアント402は、そのクライアントデータ640を使用してクライアントモデル610を調整し、間隔を置いて、更新されたクライアントモデル610をサーバへ送信する。サーバ500内の中央モデル更新モジュール520は、これらの更新されたクライアントモデルを集約して、更新されたモデルを生成し、この更新されたモデルは、現在の中央モデル510として記憶される(522)。このプロセスは、時間とともに繰り返され、それによって、各反復で中央モデル510を改善(改良)する。クライアントデータ640は、ローカルに記憶されたままであるので、この方法は、クライアントデータ640のプライバシーを保持するが、それははるかに大きいクライアントデータのセットに基づくクライアントモデル610を各クライアント402に提供し、結果として得られるクライアントモデルの品質を改善する。
【0072】
各ナビゲーションクライアント402は、そのMLクライアントモジュール429内に、現在の中央モデル510を受信し(512)且つ記憶されたクライアントモデル610を最新の受信された中央モデル510に置き換えるクライアントモデル更新モジュール620を有する。クライアントデバイス402は、クライアントデータ640を使用して、ローカル機械学習訓練プロセスを通してローカルクライアントモデル610を変更する更新パラメータ632を決定する学習アルゴリズムモジュール630をさらに有する。クライアント402は、更新されたクライアントモデル610を表すデータ612を、間隔を置いて、MLサーバ500に送り返す。データ612は、モデル更新マトリックスを符号化することができる。例えば、米国特許出願公開第2018/0089587号明細書で開示されている原則を使用することができる。
【0073】
重要なことに、クライアント402はまた、(上記で開示された属性データを具体化する)重みデータ652をMLサーバ500に送信する。クライアント402は、重みデータ652を生成するためにクライアント402のクライアントデータ640にアクセスする重み推定モジュール650を含む。重みデータ652は、学習アルゴリズム630が現在のクライアントモデル610を訓練するために使用したクライアントデータ640の1つ以上の特性を記述する。それは、クライアント402のクライアントデータ640を特徴付けることができる。
【0074】
いくつかの実施形態では、重みデータ652は、クライアントデータの情報エントロピーを表すエントロピー値、すなわち、クライアントデータに含まれる新しい情報または予期しない情報の量を含む。他の実施形態では、重みデータ652は、クライアントデータ640の統計的分散を表すことができる。重みデータ652は、いくつかの実施形態では、ローカルデータのサイズおよび/またはクライアントデータの分散関数を特徴付ける分散パラメータのセットを備え得る。
【0075】
いくつかの実施形態では、重みデータ652は、クライアントデータ640内に表される位置の物理的範囲または幾何学的範囲を表し得る。それは、例えば、クライアントデータ640内の全ての位置のうちの全て又は所定の比率(例えば、90%)を含む領域の面積(例えば、km2)を表し得る。領域は、全ての位置を含む最小の凸領域として、または任意の他の適切な方法で規定することができる。重みデータ652は、全体のデータ空間(例えば、国全体のようなより大きな地図エリア)に対する一般的に移動したエリアの比率として決定されたエリア比率値を符号化することができる。重み値は、追加的に又は代替的に、移動される道路タイプなどの他の要因を使用して決定されてもよい。
【0076】
例えば、主に単一のルート(例えば、自宅と職場との間の移動)上を移動する第1のナビゲーションクライアント402と、多数のルート上を移動する第2のナビゲーションクライアントとは、実質的に異なるローカルクライアントデータ640を有する。いくつかの実施形態では、それぞれの重み推定モジュール650が、2つのクライアント間の重みデータ652におけるこれらの差異を特徴付けることができる。
【0077】
それぞれの重み推定部650は、(上述のように、共通の特性の値を具体化する)重み値としてMLサーバ500へ送信するためのそれぞれの統計値zjを計算することができる。
【0078】
サーバ500は、例えばSoftmax関数を使用して、受信した重み値を正規化することができる。
【数1】
j=1、..K、
ここで、Kは、システム内のナビゲーションクライアント402の数であり、jによってインデックス付けされ、ここで、x=(z
1,...,z
k)∈R
Kは、k個のクライアント402からサーバ500によって受信されたk個の最新の重み値z
Kのセットである。
【0079】
これにより、サーバ500は、重みを確率分布としてスケーリングすることができる(すなわち、合計を1にする)。しかしながら、Softmaxの使用は必須ではなく、サーバ500は、例えば、各受信された重み値を、K個のクライアント402にわたるK個の最新の受信された重み値の合計で単純に除算することができる。
【0080】
システム400を最初に構成するとき、各クライアントモデルの係数(パラメータ)は、例えば、論文「Communication-Efficient Learning of Deep Networks from Decentralized Data」(arXiv:1602.05629)に記載されているように、同じ値に初期化されてもよい。しかしながら、ローカルクライアント学習アルゴリズム630による、クライアントデータ640に基づくクライアントモデル610のさらなる訓練の後、クライアント402は、クライアントモデルデータ612および重みデータ652をサーバ500へ送信する。
【0081】
異なる特性および/またはエントロピーの度合いを有する異なるナビゲーションクライアント402からのクライアントデータ上で動作することができる連合機械学習モデルのこのアプローチは、MLサーバ500が、実質的に異なるクライアントデータ640上で訓練されたナビゲーションクライアント402からローカルモデルデータを受信するときでさえ、安定したモデルを開発することを可能にする。これは、ユーザが通常、ナビゲーションパターン(例えば、カバーされる地図エリア、使用されるルート、頻度、移動回数、移動時間)が実質的に変化するナビゲーションシステムにおいて非常に有用であり、例えば、ほとんどのユーザは、移動時間の大部分を、自宅に比較的近接して過ごすことになる。
【0082】
クライアントナビゲーション履歴データ640から導出された重みデータ652の使用は、ユーザプライバシーも維持しながら、全体的なデータセットとの重複度が広く変化するローカルデータを使用するときでさえ、中央モデル510の速い収束および安定性を提供することができる。
【0083】
サーバ500の中央更新モジュール520は、ナビゲーションクライアント402から受信した重みデータ652を使用して、関連する更新されたクライアントモデル612の寄与を調整し、更新された中央モデル522を生成する。中央モデル更新モジュール520は、関連する重みデータ652に従って重み付けされたクライアントモデル612の重み付けモデル平均化を実行する。たとえば、更新モジュール520は、より多くの「新しい」情報を提供する可能性が高いので、より高いエントロピー重み付けを有するモデルに、より多くの重みを付与することができる。
【0084】
クライアント402からのすべてのモデルおよび重みを処理した後、更新された中央モデル522は、クライアント402への配信のために中央モデル510を置き換える。新しい中央モデル510は、一定の間隔で、または更新されたモデルデータ612が閾値数のクライアント402から受信されたときはいつでも、計算され得る。いくつかの実施形態では、更新は任意の新しいクライアントモデルデータ612および重みデータ652が受信されるたびに実行され得、これは、中央モデル510が可能な限り最新であることを確実にするが、計算効率が低くなり得る。サーバ500の初期化後、中央モデルが安定したバージョンに収束するために、クライアント更新の数回の反復を要することがある。
【0085】
ナビゲーションクライアント402は、典型的には訪問位置、開始位置、終了位置、移動時間、移動速度、地図位置検索、または輸送モードのうちの1つ以上を含むクライアントデータ640を格納する。
【0086】
図5は、変形機械学習モジュール429'を有する変形ナビゲーションクライアントデバイス402'を示す。この実施形態におけるナビゲーションクライアント402'は、
図4に示されるデバイスと同様であるが、学習アルゴリズムモジュール630および重み推定モジュール650において使用されるクライアントデータ640を管理するローカルデータコントローラモジュール660をさらに含む。ローカルデータコントローラ660は、特定のローカルデータが分散学習システムで使用されないように、すなわち、ローカルデータ640の一部のみが訓練セットを形成するように、ローカルデータ640に対してフィルタ演算を実行する。例えば、ナビゲーションクライアント402'は、特定のタイプのデータを除外することができ、または、自宅の位置または職場の位置などの目的地に関連するデータを分散学習システムでの使用から除外することができる。
【0087】
いくつかの実施形態では、クライアント402、402'は、異なる目的を果たす複数の異なるクライアントモデルを記憶することができる。異なる機械学習モデルは、異なる関連する学習アルゴリズム、重み推定モジュール、中央モデルなどを有することができる。モデルは、異なるそれぞれのMLサーバ上に、または同じMLサーバ500上に記憶され得る。したがって、
図4に記載される特徴のうちの少なくともいくつかは、必要に応じて、クライアント402内およびサーバ500上で複製され得る。
【0088】
ここで、本明細書に開示されるようにナビゲーションシステムによって連合して開発された、MLモデルのための多種多様な用途およびユースケースを示すために、いくつかの特定の実施形態が与えられる。これらは限定的なものではなく、他のユースケースも可能である。
【0089】
目的地予測
いくつかの実施形態では、中央およびローカルMLモデル510、610は、ユーザが手動で目的地を挿入する必要なしに、移動のための意図された目的地を予測するために使用される。これは、マルチクラス分類問題である。
【0090】
多くの異なるユーザからのモデルパラメータを組み込んだ中央モデル510を開発することによって、ローカルクライアントモデル610は、特定のユーザのための以前に訪れた位置を予測するだけでなく、たとえば同じクラス「スーパーマーケット」内のいくつかの特性に従って、以前に訪れた目的地に類似する新しい、未訪問の目的地を予測することもできる。
【0091】
プロセスは、以下の観点で、入力として、顧客の過去の行動、すなわち、彼の以前のトリップ(移動)を取る。-GPSトレースのシーケンス(各シーケンスはトリップである)。
-GPSトレースからの地図属性のシーケンス(例えば、地図のバージョン、移動した道路セグメントの個数、移動した道路セグメントについて登録された平均速度、使用した平均ターン回数、等のうちの1つ以上)。
-天気、個人用カレンダーなどの外部データベース。
-以前のトリップにおける最後のインデックスアイテムから、および/または以前の検索クエリから生じるアイテムから導出され得る、以前の目的地。
【0092】
これらは、クライアントデータ640に記憶され、学習アルゴリズム630によって使用されて、ローカルクライアントモデル610を訓練する。
【0093】
このプロセスは、時間とともに繰り返される以下のステップからなる。
-履歴データが利用可能でない場合、ナビゲーションデバイス402は、事前に訓練された中央モデル510を受信し、このモデルも利用可能でない場合、ランダムモデルが初期化される。
-各反復(トリップ、トリップの一部、検索クエリ)の後、ローカルクライアントモデル610は、新しいクライアントデータ640上での訓練によって更新され、地図マッチングプロセスは、トリップ/目的地から地図属性を抽出するためにオンラインで実行され得る。
-周期的に、ローカルモデル610(すなわち、パラメータデータ612)および重みデータ652は、モデル更新モジュール520によって集約動作が実行されるMLサーバ400に送られる。
-周期的に、中央モデル510は、システム400内のすべての個々のナビゲーションデバイス402に送信され、それは、それらのそれぞれのローカルモデル610を、受信された中央モデル510と置き換え、ローカルモデル610を、コンテキスト変更に対してよりロバストにする。
【0094】
図6は、これらのステップを、クライアントデバイス402の観点からのフローチャートとして示す。
【0095】
第1のステップ600において、クライアントデバイス402は、サーバ400から事前訓練(プレトレーニング)モデルデータを受信することによって初期化される。
【0096】
次に、601で、ユーザは、ナビゲーション目的のためにデバイスの使用を開始し、ナビゲーション履歴データがメモリに記憶され始める。これは、ローリングベースで、例えば、固定サイズのバッファに記憶されてもよく、または、履歴は、ローカルモデルが更新されるたびにクリアされてもよい。
【0097】
次いで、602において、適切な量のデータが取得されると(例えば、各トリップが終了した後、または各検索クエリの後)、ローカルモデルは、(例えば、勾配降下法を使用して)新しい材料を組み込むように再訓練される。
【0098】
次いで、603において、訓練が終了した後、または一定の間隔で、更新されたモデルデータ612および属性データ(重みデータ652)がサーバ400に送信され、サーバは、データを重み付けされた集約プロセスに入力して、更新された集約されたモデルデータを生成する。
【0099】
次いで、クライアントデバイス402(他のクライアントデバイスとともに)は、サーバからこれらの集約されたパラメータを受信し(604)、受信されたパラメータに応じてそのローカルモデルを更新する(605)。
【0100】
このプロセスは、新しいナビゲーションデータが取得される(601)と繰り返される。
【0101】
目的地予測の例示的なユースケースでは、学習アルゴリズム630によって実行される機械学習タスクは、マルチクラス分類であり、モデルは、時間次元に依存するために、シーケンスを扱う深層学習モデルである。それは、1次元畳み込みニューラルネットワーク;ゲート付き回帰型ユニット(GRU)、ロングショートタームメモリ(LSTM)、または微分可能ニューラルコンピュータ(DNC)モデルなどの回帰型ニューラルネットワーク(RNN);フィードフォワードニューラルネットワーク;または任意の他の適切なモデルであり得る。
【0102】
ルート予測
いくつかの実施形態では、中央およびローカルMLモデル510、610は、ユーザがルートを手動で選択する必要なしに、移動のための最適なルートを予測するために使用される。
【0103】
問題は、ナビゲーションシステム400が単一のメトリック(例えば、移動時間または距離)に従って最適化することによってではなく、代わりに、例えば、ユーザの運転スタイルおよびコンテキスト情報に基づいて、ルートの異なる部分についての複数のメトリックに基づいて、顧客のルートを予測することとして説明することができる。例えば、システムは「私が目的地Aに遅れているとき、朝、私は常に避けられる特定のハイウェイを除いて、ハイウェイ(最も速い)を取ることを好み、その場合、より短い迂回を取ることを好む」というユーザの好みを学習することができる。
【0104】
本明細書に開示される連合学習アプローチは、現在のユーザによる以前に使用されたルートを予測することだけでなく、いくつかの特性、例えば、クラス「ハイウェイ」などに従って、以前に使用されたルートに類似する新しいルートに一般化することも可能にする。
【0105】
プロセスは、以下の観点で、入力として、顧客の過去の行動、すなわち、彼の以前のトリップを取る。
-GPSトレースのシーケンス(各シーケンスはトリップ)
-GPSトレースからの地図属性のシーケンス
-天気、個人用カレンダーなどの外部データベース。
【0106】
これらは、クライアントデータ640に記憶され、学習アルゴリズム630によって使用されて、ローカルクライアントモデル610を訓練する。
【0107】
この場合のMLモデルは、時間次元に依存するため、シーケンスを扱う深層学習モデルである。さらに、問題の性質および予測されるべき膨大な数のクラスのために、最も適したモデルは、回帰型ニューラルネットワークであり得る。
【0108】
連合学習プロセスは、目的地予測のために上記でしたものと同じまたは同様であり得る。
【0109】
到着時間予測
いくつかの実施形態では、中央およびローカルMLモデル510、610は、ユーザに属する機密情報を共有することなく、自身の個人的な運転スタイルを考慮に入れて、トリップ(移動)中のユーザの推定到着時間(ETA)を予測するために使用される。
【0110】
連合学習アプローチは、以前に使用したルート上のユーザのETAを予測することを可能にするが、新しいルートに一般化することもできる。
【0111】
プロセスは、以下の観点で、入力として、顧客の過去の行動、すなわち、彼の以前のトリップを取る。
-GPSトレースのシーケンス(各シーケンスはトリップ)
-GPSトレースからの地図属性のシーケンス
-天気、個人用カレンダーなどの外部データベース。
【0112】
これらは、クライアントデータ640に記憶され、学習アルゴリズム630によって使用されて、ローカルクライアントモデル610を訓練する。
【0113】
この例におけるML問題は、回帰問題として、またはマルチクラス分類問題として考えることができる。マルチクラス分類モデルの場合、ETAは予め定義される必要があり(例えば、1、5、10、15、30分)、タスクは、次いで、予め定義されたクラスのうちの1つを予測することを含む。回帰タスクの場合、正確な到達時間が推論され、これは、このアプローチが正確な到達時間を予測しようと試みることを意味する。
【0114】
連合学習プロセスは、目的地予測のために上記したものと同じまたは同様であり得る。
【0115】
検索結果のランク付け
いくつかの実施形態では、中央およびローカルMLモデル510、610は、ユーザによる位置検索のためのコンテキスト化されたランキングを提供するために使用される。検索処理は、ローカルおよび/またはリモートで行われ(例えば、地図サーバ404との通信を含む)、結果が生成されると、処理は、顧客に表示する前に位置をランク付けする。
【0116】
ランク付けは、ユーザの個人的な好み(例えば、彼の検索履歴)に基づくが、連合学習に起因して、他のユーザによって、例えば、同じ地域で実行された以前の検索から恩恵を受けることにもなる。
【0117】
プロセスは、以下の観点で、入力として、顧客の過去の行動、すなわち、彼の以前のとリップを取る。
-以前に訪問した目的地(GPSトレースから取得したものなど)
-以前の検索データ(クエリログなど)。
【0118】
これらは、クライアントデータ640に記憶され、学習アルゴリズム630によって使用されて、ローカルクライアントモデル610を訓練する。
【0119】
この例におけるML問題は、機械学習ベースのランキング(MLR)の形態である。学習アルゴリズム630によって使用されるMLモデルは、ペアワイズランキングモデルであってもよい。モデルは、可能な結果のペア(s1、s2)を与えられたときに、顧客のユーザクエリの情報の必要性に対して以下のどちらがより適しているかを予測しようとするものである。。
【0120】
連合学習プロセスは、目的地予測のために上記したものと同じまたは同様であり得る。
【0121】
さらなる一般的な詳細
概して、本明細書に開示される任意の実施形態では、本明細書に開示されるプロセスを実装するために使用され得るシステムおよび装置は、スマートフォン、携帯電話、ポータブルパーソナルコンピュータ(PC)、携帯情報端末(PDA)、専用ポータブルナビゲーションデバイス(PND)、自動車などの車両、またはルート計画およびナビゲーション機能を提供するようにポータブルな方法でナビゲーションソフトウェアを実行するように構成される任意のタイプの処理デバイスを含み得る。
【0122】
いくつかの実施形態は、道路セグメントを参照して説明されている。本発明は、経路、河川、運河、自転車経路、引き船道、鉄道線路などのセグメントなどの他のナビゲート可能なセグメントにも適用可能であり得ることを理解されたい。参照を容易にするために、これらは、本明細書では一般に道路セグメントと呼ばれる。
【0123】
また、ルート計画が本発明のいくつかの実施形態で実行される場合、これは、ユーザがある地点から別の地点へのナビゲート方法に関する命令を求めておらず、単に所与の位置のビューを提供されることを望む状況においても起こり得ることも明らかであろう。そのような状況では、ユーザによって選択された「目的地」位置が、ユーザがナビゲーションを開始することを望む対応する開始位置を有する必要がなく、結果として、本明細書における「目的地」位置または実際に「目的地」ビューへの言及は、ルートの生成が必須であること、「目的地」への移動が行われなければならないこと、または実際に、目的地の存在が対応する開始位置の指定を必要とすることを意味すると解釈されるべきではない。
【0124】
実施形態は、例えば、トンネルや屋根のある駐車場など、圏外でない場合に、全地球測位システム(GPS)を利用してもよい。一般に、GPSは、連続的な位置、速度、時間、および場合によっては無制限の数のユーザのための方向情報を決定することができる衛星無線ベースのナビゲーションシステムである。以前はNAVSTARとして知られていたGPSは、極めて正確な軌道で地球を周回する複数の衛星を組み込んでいる。これらの正確な軌道に基づいて、GPS衛星は、GPSデータとして、それらの位置を任意の数の受信ユニットに中継することができる。しかしながら、GLOSNASS、ヨーロッパガリレオ測位システム、COMPASS測位システム、またはIRNSS(インド地域航法衛星システム)などの他の全地球測位システムが使用され得ることが理解されるのであろう。
【0125】
GPSシステムは、GPSデータを受信するように特別に装備されたデバイス1が、GPS衛星信号の無線周波数の走査を開始するときに実施される。GPS衛星から無線信号を受信すると、デバイス1は、複数の異なる従来の方法のうちの1つを介して、その衛星の正確な位置を決定する。デバイス1は、ほとんどの場合、少なくとも3つの異なる衛星信号を取得するまで、信号を走査し続ける(位置は、通常ではないが、他の三角測量技術を使用して2つの信号のみで決定することができることに留意されたい)。幾何学的三角測量を実施すると、受信機は、3つの既知の位置を利用して、衛星に対するそれ自体の2次元位置を決定する。これは公知の方法で行うことができる。さらに、第4の衛星信号を取得することにより、受信デバイス1は、既知の方法で、同じ幾何学的計算によってその3次元位置を計算することができる。位置および速度のデータは、無制限の数のユーザによって連続的にリアルタイムで更新することができる。
【0126】
本発明を具体化するデバイス1は、デジタル接続、例えば、既知のBluetoothTM技術を介したデジタル接続を確立するために、必要に応じて、モバイル端末、例えば、携帯電話、PDA、および/または移動電話技術を有する任意のデバイスを介して、「モバイル」ネットワークまたは電気通信ネットワークのネットワークハードウェアを用いてデータセッションを確立することが可能であってもよい。その後、そのネットワークサービスプロバイダを介して、モバイルデバイスは、サーバとのネットワーク接続を(例えばインターネットを介して)確立することができる。したがって、「モバイル」ネットワーク接続は、デバイス(単独でおよび/または車両内で移動するのでモバイルであり得、しばしばモバイルである)とサーバとの間で確立され、情報のための「リアルタイム」ゲートウェイまたは少なくとも非常に「最新の」ゲートウェイを提供することができる。
【0127】
モバイル端末(サービスプロバイダを介して)1、402と、サーバ404、406、500などの別のデバイスとの間のネットワーク接続の確立は、例えば、既知の方法で行うことができる。この点において、任意の数の適切なデータ通信プロトコル、例えばTCP/IP階層化プロトコルを使用することができる。さらに、モバイルデバイスは、CDMA2000、GSM、IEEE 802.11a/b/c/g/nなどの任意の数の通信規格を利用することができる。したがって、インターネット接続を利用することができ、これは、例えば、ナビゲーションデバイス内の携帯電話または携帯電話技術を介して、データ接続を介して達成することができることが分かる。
【0128】
デバイス1、402は、セルラーネットワークデータ接続、インターネットを介したパーソナルコンピュータを介した直接接続など、いくつかの異なる構成のいずれかによって実装され得る汎用通信チャネルを介して、サーバ404、406、500と通信することが可能であってもよい。1つの例示的な構成では、通信チャネルは、電話およびコンピュータネットワークを含む。さらに、通信チャネルは、無線通信、たとえば、赤外線通信、マイクロ波周波数通信などの無線周波数通信を収容することが可能であり得る。さらに、通信チャネルは、衛星通信に対応することができる。
【0129】
通信チャネルを介して送信される通信信号は、所与の通信技術のために必要とされ、または所望され得る信号を含むが、これらに限定されない。たとえば、信号は、時分割多元接続(TDMA)、周波数分割多元接続(FDMA)、符号分割多元接続(CDMA)、グローバルシステムフォーモバイルコミュニケーションズ(GSM(登録商標))、汎用パケット無線サービス(GPRS)などのセルラー通信技術において使用されるように適合され得る。デジタル信号およびアナログ信号の両方が、通信チャネルを介して送信され得る。これらの信号は、通信技術にとって望ましい場合があるように、変調され、暗号化され、および/または圧縮された信号であり得る。
【0130】
リモートサーバ404、406、500は、他の構成要素に加えて、メモリに動作可能に接続され、さらに有線または無線接続を介して大容量データ記憶デバイスに動作可能に接続されたプロセッサを含み得る。大容量記憶デバイスは、ナビゲーションデータおよび地図情報の記憶装置を含み、やはりサーバとは別個のデバイスであってもよく、またはサーバに組み込まれてもよい。プロセッサは、通信チャネルを介してナビゲーションデバイス1、402との間で情報を送受信するために、送信機および受信機にさらに動作可能に接続される。送信および受信される信号は、データ、通信、および/または他の伝搬信号を含み得る。送信機および受信機は、ナビゲーションシステムのための通信設計において使用される通信要件および通信技術に従って選択または設計され得る。さらに、送信機および受信機の機能は、単一のトランシーバに組み合わされ得ることに留意されたい。
【0131】
本発明を具体化するデバイス1、402は、プロセッサ2と、デバイスの機能的ハードウェア構成要素とデバイスによって実行されるソフトウェアとの間のインタフェースとして機能するBIOS(Basic Input/Output System)をサポートするように協働し得るメモリ3、4とを備え得る。プロセッサ2は、アプリケーションソフトウェア(たとえば、ルート計画およびナビゲーション機能を実装する)が実行され得る環境を提供する、メモリ3、4からオペレーティングシステムをロードし得る。アプリケーションソフトウェアは、デバイスのコア機能、例えば、地図閲覧、ルート計画、ナビゲーション機能、およびそれに関連する任意の他の機能をサポートするグラフィカルユーザインタフェース(GUI)を含む動作環境を提供することができる。この点に関して、アプリケーションソフトウェアの一部は、ビュー生成モジュールを備えることができる。
【0132】
デバイス1のプロセッサ2は、アンテナによって受信されたGPSデータを受信し、時々、そのGPSデータを、GPSデータが受信されたときのタイムスタンプとともに、メモリ内に記憶して、ナビゲーションデバイスの位置の記録を構築するようにプログラムされ得る。そのように記憶された各データ記録は、GPSフィックスと考えることができ、すなわち、それは、ナビゲーションデバイスの位置のフィックスであり、緯度、経度、タイムスタンプ、および精度レポートを含む。
【0133】
データは、実質的に、例えば5秒毎に、周期的に記憶されてもよい。当業者は、他の期間が可能であり、データ分解能とメモリ容量との間にバランスがあることを理解するのであろう。すなわち、より多くのサンプルを採取することによってデータの分解能が増加するにつれて、データを保持するためにより多くのメモリが必要とされる。しかしながら、他の実施形態では、分解能が実質的に、1秒、10秒、15秒、20秒、30秒、45秒、1分、2.5分(または実際にはこれらの期間の間の任意の期間)ごとであってもよい。したがって、デバイスのメモリ内に、ある時点におけるデバイス200の所在の記録が構築される。
【0134】
いくつかの実施形態では、捕捉されたデータの質は期間が長くなるにつれて低下し、劣化の程度は少なくとも部分的に、デバイス1がおよそ15秒の期間移動していた速度に依存し得るが、適切な上限を提供し得ることが見出され得る。
【0135】
デバイス1は、一般に、その所在の記録を構築するように構成されるが、いくつかの実施形態は、移動の開始または終了時に所定の期間および/または距離の間、データを記録しない。このような構成は、自宅(ホーム)及び他の頻繁な目的地の位置を保護する可能性が高いので、デバイスのユーザのプライバシーを保護するのに役立つ。例えば、デバイス1は、おおよそ移動の最初の5分間、及び/又はおおよそ移動の最初の1マイルの間、データを記憶しないように構成されてもよい。
【0136】
他の実施形態では、GPSは、定期的に記憶されなくてもよいが、所定のイベントが発生したときにメモリ内に記憶されてもよい。例えば、プロセッサは、デバイスが道路ジャンクション、道路セグメント(区分)の変化、または他のそのようなイベントを通過するときに、GPSデータを記憶するようにプログラムされてもよい。
【0137】
さらに、プロセッサ2は、時々、デバイス1、402の所在の記録(すなわち、GPSデータおよびタイムスタンプ、ならびに/または本明細書で説明する光センサまたはマイクロフォンを使用して取得された位置およびタイムスタンプデータ)をサーバ404、406、500にアップロードするようにプログラムされてもよい。デバイスがそれをサーバに接続する永続的な通信チャネル、または少なくとも一般的に存在する通信チャネルを有するいくつかの実施形態では、データのアップロードは、例えば、24時間ごとに1回であってもよい定期に行われる。当業者は、他の期間が可能であり、実質的に以下の期間:15分、30分、毎時、2時間毎、5時間毎、12時間毎、2日毎、毎週、またはこれらの間の任意の時間のいずれかであり得ることを理解するのであろう。実際に、そのような実施形態では、プロセッサは、所在の記録を実質的にリアルタイムベースでアップロードするように構成され得るが、これは、データが実際には送信間の比較的短い期間で時間ごとに送信されることを必然的に意味し得、したがって、より正確には擬似リアルタイムであると考えられ得る。そのような擬似リアルタイム実施形態では、デバイスは、メモリ内のGPSフィックスをバッファリングして、所定の数が記憶されたときにこれらを送信するように構成され得る。この所定の数は、20、36、100、200のオーダー、またはその間の任意の数であってもよい。当業者は、所定の数がメモリのサイズによって部分的に支配されることを理解するのであろう。
【0138】
一般に存在する通信チャネルを有さない他の実施形態では、プロセッサ2は、通信チャネルが確立されると、記録をサーバ404、406、500にアップロードするように構成され得る。これは、たとえば、デバイス1、402がユーザのコンピュータに接続されているとき、またはネットワーク接続がないトンネルまたは他のエリアから出るときであり得る。この場合も、そのような実施形態では、ナビゲーションデバイス1、402は、メモリ内の位置フィックスをバッファリングするように構成され得る。メモリが位置フィックスでいっぱいになった場合、デバイスは最も古い位置フィックスを削除するように構成され得、したがって、それは先入れ先出し(FIFO)バッファと考えられてもよい。
【0139】
いくつかの実施形態では、デバイス1、402の所在の記録は、1つ以上のトレースを含むことができ、各トレースは例えば、24時間以内のデバイスの移動を表す。各期間は暦日と一致するように構成されてもよいが、他の実施形態では、これは必ずしもそうである必要はない。一般に、デバイスのユーザは、サーバにアップロードされるデバイスの所在の記録について、自分の同意を与える。同意が与えられない場合、いくつかの実施形態では、記録はサーバにアップロードされない。デバイス1、402自体、および/またはデバイスが接続されるコンピュータは、所在記録のそのような使用に対するユーザの同意をユーザに求めるように構成され得る。リモートサーバ404、406、500は、デバイスの所在の記録を受信し、処理のために大容量データストレージ内にこれを記憶するように構成され得る。
【0140】
本発明はその様々な特定の実施形態を説明することによって例示されているが、これらの実施形態に限定されるものではなく、添付の特許請求の範囲内で、多くの変形および修正が可能であることが、当業者によって理解されるのであろう。
【手続補正書】
【提出日】2022-09-16
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
ナビゲーションシステムを動作させる方法であって、前記ナビゲーションシステムはサーバおよび複数のナビゲーションクライアントデバイスを含み、前記方法は、
各ナビゲーションクライアントデバイスが、前記ナビゲーションクライアントデバイスによって訪問された位置を表すそれぞれのナビゲーション履歴データを収集するために、時間とともに、それぞれの位置センサを使用することと、前記ナビゲーション履歴データを前記ナビゲーションクライアントデバイスのメモリに記憶することと、
各ナビゲーションクライアントデバイスが、前記ナビゲーションクライアントデバイスの前記メモリに記憶された、それぞれのローカル機械学習モデルを訓練し、前記ローカル機械学習モデルのための更新されたパラメータのそれぞれのセットを決定するために、前記ナビゲーション履歴データのそれぞれの訓練セットを使用することと、
各ナビゲーションクライアントデバイスが、更新されたパラメータの前記それぞれのセットを表すモデルデータを前記サーバへ送信することと、
各ナビゲーションクライアントデバイスが、更新されたパラメータの前記セットを決定するために使用される前記それぞれの訓練セットの共通の特性のそれぞれの値を表す属性データを前記サーバへ送信することと、
前記サーバが、前記ナビゲーションクライアントデバイスから前記モデルデータおよび前記属性データを受信することと、
前記サーバが、更新されたパラメータの前記セットを決定するために使用される前記それぞれの訓練セットの前記特性の前記値に応じて、更新されたパラメータの前記セットの各々が重み付けされる重み付けされた集約を実行することによって、更新されたパラメータの前記セットからパラメータの集約されたセットを決定することと、
前記サーバが、パラメータの前記集約されたセットを表すデータを、前記複数のナビゲーションクライアントデバイスのうちの第1のナビゲーションクライアントデバイスへ送信することと、
前記第1のナビゲーションクライアントデバイスが、前記第1のナビゲーションクライアントデバイスの前記メモリに記憶された前記ローカル機械学習モデルを更新するためにパラメータの前記集約されたセットを使用することと、
を含む、方法。
【請求項2】
前記サーバが、パラメータの前記集約されたセットを表す前記データを前記複数のナビゲーションクライアントデバイスの各々へ送信することと、
前記複数のナビゲーションクライアントデバイスの各々が、前記それぞれのナビゲーションクライアントデバイスの前記メモリに記憶された前記それぞれのローカル機械学習モデルを更新するために、パラメータの前記集約されたセットを使用することと、
を含む、請求項1に記載の方法。
【請求項3】
各ステップは、時間とともに繰り返される、請求項1または2に記載の方法。
【請求項4】
サーバおよび複数のナビゲーションクライアントデバイスを含むナビゲーションシステムであって、
各ナビゲーションクライアントデバイスはそれぞれ、
位置センサと、
メモリと、
処理システムと、
通信モジュールと、を備え、
前記ナビゲーションクライアントデバイスによって訪問された位置を表すそれぞれのナビゲーション履歴データを時間とともに収集するために前記位置センサを使用することと、
前記ナビゲーション履歴データを前記メモリに記憶することと、
前記ナビゲーションクライアントデバイスの前記メモリに記憶された、それぞれのローカル機械学習モデルを訓練し、前記ローカル機械学習モデルのための更新されたパラメータのそれぞれのセットを決定するために、前記ナビゲーション履歴データのそれぞれの訓練セットを使用することと、
更新されたパラメータの前記それぞれのセットを表すモデルデータを前記サーバへ送信することと、
更新されたパラメータの前記セットを決定するために使用される前記それぞれの訓練セットの共通の特性のそれぞれの値を表す属性データを前記サーバへ送信することと、
を行うように構成されており、
前記サーバは、
前記ナビゲーションクライアントデバイスから、前記モデルデータおよび前記属性データを受信することと、
更新されたパラメータの前記セットを決定するために使用される前記それぞれの訓練セットの前記特性の前記値に応じて、更新されたパラメータの前記セットの各々が重み付けされる重み付けされた集約を実行することによって、更新されたパラメータの前記セットからパラメータの集約されたセットを決定することと、
パラメータの前記集約されたセットを表すデータを前記複数のナビゲーションクライアントデバイスのうちの第1のナビゲーションクライアントデバイスへ送信することと、
を行うように構成され、
前記第1のナビゲーションクライアントデバイスは、前記第1のナビゲーションクライアントデバイスの前記メモリに記憶された前記ローカル機械学習モデルを更新するために、パラメータの前記集約されたセットを使用するように構成される、ナビゲーションシステム。
【請求項5】
前記共通の特性は、前記それぞれの訓練セットのエントロピーまたは分散を表す、請求項4に記載のナビゲーションシステム。
【請求項6】
前記共通の特性は、前記訓練セットによってカバーされる地理的エリアのサイズを表す、請求項4または5に記載のナビゲーションシステム。
【請求項7】
各ナビゲーションクライアントデバイスは、
可能な目的地のショートリストを決定することと、
目的地までのルートを予測することと、
目的地への到着時間を予測することと、
ユーザから受け付けた検索クエリに基づいて1つ以上の検索結果を予測することと、
のうちの1つ以上を行うために前記それぞれのローカル機械学習モデルを使用するように構成される、請求項4乃至6の何れか1項に記載のナビゲーションシステム。
【請求項8】
前記サーバは、パラメータの前記集約されたセットを前記複数のナビゲーションクライアントデバイスの各々へ送信するか、または送信しようと試みるように構成される、請求項4乃至7の何れか1項に記載のナビゲーションシステム。
【請求項9】
各ナビゲーションクライアントデバイスは、1つ以上の選択基準を満たす訓練セットを選択するために、前記記憶されたナビゲーション履歴データをフィルタリングするように構成される、請求項4乃至8の何れか1項に記載のナビゲーションシステム。
【請求項10】
位置センサと、
メモリと、
処理システムと、
通信モジュールと、
を含むナビゲーションクライアントデバイスであって、
前記ナビゲーションクライアントデバイスは、
前記ナビゲーションクライアントデバイスによって訪問された位置を表すナビゲーション履歴データを時間とともに収集するために前記位置センサを使用することと、
前記ナビゲーション履歴データを前記メモリに記憶することと、
前記ナビゲーションクライアントデバイスの前記メモリに記憶された、ローカル機械学習モデルを訓練し、前記ローカル機械学習モデルのための更新されたパラメータのセットを決定するために、前記ナビゲーション履歴データの訓練セットを使用することと、
更新されたパラメータの前記セットを表すモデルデータをサーバへ送信することと、
更新されたパラメータの前記セットを決定するために使用される前記訓練セットの特性の値を表す属性データを前記サーバへ送信することと、
を行うように構成される、ナビゲーションクライアントデバイス。
【請求項11】
パラメータの集約されたセットを表すデータを前記サーバから受信することと、
前記ナビゲーションクライアントデバイスの前記メモリに記憶された前記ローカル機械学習モデルを更新するために、パラメータの前記集約されたセットを使用することと、
を行うようにさらに構成される、請求項10に記載のナビゲーションクライアントデバイス。
【請求項12】
前記特性は、前記訓練セットのエントロピーまたは分散を表す、請求項10または11に記載のナビゲーションクライアントデバイス。
【請求項13】
前記特性は、前記訓練セットによってカバーされる地理的エリアのサイズを表す、請求項10乃至12の何れか1項に記載のナビゲーションクライアントデバイス。
【請求項14】
前記位置センサは、衛星測位センサである、請求項10乃至13の何れか1項に記載のナビゲーションクライアントデバイス。
【請求項15】
前記訓練セットは、目的地データまたはルートデータを含む、請求項10乃至14の何れか1項に記載のナビゲーションクライアントデバイス。
【請求項16】
前記ローカル機械学習モデルを訓練するために、前記ナビゲーションクライアントデバイスによって訪問された位置を表すデータに加えて、検索データを使用するように構成される、請求項10乃至15の何れか1項に記載のナビゲーションクライアントデバイス。
【請求項17】
可能な目的地のショートリストを決定するために前記ローカル機械学習モデルを使用するように構成され、可能な目的地の前記ショートリストをユーザに提示するように構成される、請求項10乃至16の何れか1項に記載のナビゲーションクライアントデバイス。
【請求項18】
目的地までのルートを予測するために前記ローカル機械学習モデルを使用するように構成される、請求項10乃至17の何れか1項に記載のナビゲーションクライアントデバイス。
【請求項19】
目的地への到着時間を予測するために前記ローカル機械学習モデルを使用するように構成される、請求項10乃至18の何れか1項に記載のナビゲーションクライアントデバイス。
【請求項20】
ユーザから受け付けた検索クエリに基づいて1つ以上の検索結果を予測するために前記ローカル機械学習モデルを使用するように構成される、請求項10乃至19の何れか1項に記載のナビゲーションクライアントデバイス。
【請求項21】
出力を予測するために前記ローカルモデルに入力データを提供するように構成され、前記入力データは、時間、天候、および現在のユーザのIDのうちの1つ以上を表す、請求項10乃至20の何れか1項に記載のナビゲーションクライアントデバイス。
【請求項22】
前記更新されたパラメータをパラメータの前記集約されたセットで置き換えることによって前記ローカル機械学習モデルを更新するために、パラメータの前記集約されたセットを使用するように構成される、請求項10乃至21の何れか1項に記載のナビゲーションクライアントデバイス。
【請求項23】
1つ以上の選択基準を満たす訓練セットを選択するために、前記記憶されたナビゲーション履歴データをフィルタリングするように構成される、請求項10乃至22の何れか1項に記載のナビゲーションクライアントデバイス。
【請求項24】
位置センサと、メモリと、通信モジュールとを有するナビゲーションクライアントデバイスのプロセッサによって実行されると、前記プロセッサに、
前記ナビゲーションクライアントデバイスによって訪問された位置を表すナビゲーション履歴データを時間とともに収集するために前記位置センサを使用することと、
前記ナビゲーション履歴データを前記メモリに記憶することと、
前記ナビゲーションクライアントデバイスの前記メモリに記憶されたローカル機械学習モデルを訓練し、前記ローカル機械学習モデルのための更新されたパラメータのセットを決定するために、前記ナビゲーション履歴データの訓練セットを使用することと、
更新されたパラメータの前記セットを表すモデルデータをサーバへ送信するように前記通信モジュールを制御することと、
更新されたパラメータの前記セットを決定するために使用される前記訓練セットの特性の値を表す属性データを前記サーバへ送信するように前記通信モジュールを制御することと、
を行わせる命令を含むコンピュータプログラ
ム。
【請求項25】
前記プロセッサによって実行されると、前記プロセッサに、
サーバからパラメータの集約されたセットを表すデータを受信するために前記通信モジュールを使用することと、
前記ナビゲーションクライアントデバイスの前記メモリに記憶された前記ローカル機械学習モデルを更新するためにパラメータの前記集約されたセットを使用することと、
を行わせる命令をさらに含む、請求項
24に記載のコンピュータプログラ
ム。
【国際調査報告】