(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-21
(45)【発行日】2023-11-30
(54)【発明の名称】通信サーバ装置、通信サーバ装置において実行される方法、通信システム、コンピュータプログラム、コンピュータプログラム製品、及び非一時的記憶媒体
(51)【国際特許分類】
G06F 16/9035 20190101AFI20231122BHJP
G06F 16/909 20190101ALI20231122BHJP
【FI】
G06F16/9035
G06F16/909
(21)【出願番号】P 2021564198
(86)(22)【出願日】2019-04-29
(86)【国際出願番号】 CN2019084965
(87)【国際公開番号】W WO2020220188
(87)【国際公開日】2020-11-05
【審査請求日】2022-02-18
【前置審査】
(73)【特許権者】
【識別番号】518236797
【氏名又は名称】グラブタクシー ホールディングス プライベート リミテッド
【氏名又は名称原語表記】GRABTAXI HOLDINGS PTE. LTD.
【住所又は居所原語表記】3 Media Close, #01-03/06, Singapore 138498, Singapore
(74)【代理人】
【識別番号】100137095
【氏名又は名称】江部 武史
(72)【発明者】
【氏名】ファン, チン
(72)【発明者】
【氏名】ジャオ, ラン
(72)【発明者】
【氏名】ダイ, チェンチェン
(72)【発明者】
【氏名】デン, ジチャン
(72)【発明者】
【氏名】ジャン, ルイ
【審査官】甲斐 哲雄
(56)【参考文献】
【文献】特開2018-049336(JP,A)
【文献】特開2014-016290(JP,A)
【文献】米国特許出願公開第2007/0050128(US,A1)
【文献】米国特許出願公開第2018/0268324(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
G01C 21/00-21/36
(57)【特許請求の範囲】
【請求項1】
輸送関連サービスの1つ以上の関心地点をユーザーに推奨するための通信サーバ装置であって、
前記通信サーバ装置は、プロセッサとメモリとを備え、前記プロセッサの制御の下で、
ユーザーの位置を示すデータフィールドを含むユーザーデータの受信に応答して、さらに、輸送関連サービスに対応する前記ユーザーに関連する履歴データがないと判断する前記通信サーバ装置に応答して、
前記位置を含むマップを表すデータを検索し、
前記ユーザーのユーザー通信装置による受信のために、前記輸送関連サービスの推奨される出発地として前記マップ上の関心地点を決定するために、前記ユーザー通信装置を介して前記ユーザーに前記マップを提示するための前記マップを表すデータを送信し、
前記通信サーバ装置が、1つ以上のデータレコード内に輸送関連サービスに対応する履歴データがあり、前記履歴データが前記ユーザーに関連付けられていると判断したことに応答して、
前記履歴データに基づいて、前記輸送関連サービスの推奨出発地として第1の関心地点を決定し、
前記履歴データに基づいて、前記輸送関連サービスの推奨目的地として第2の関心地点を決定し、
前記第1の関心地点と前記第2の関心地点とが前記履歴データに基づいて互いに対をなし、
前記ユーザー通信装置による受信のために、前記第1の関心地点を示すデータと前記第2の関心地点とを示すデータとを送信するように、
メモリ内の命令を実行するように構成された、通信サーバ装置。
【請求項2】
前記通信サーバ装置が、前記履歴データがあると判断したことに応答して、さらに、時間を示すデータフィールドを含むユーザーデータを受信したことに応答して、
前記推奨目的地として前記第2の関心地点を決定するために、前記通信サーバ装置は、さらに、前記履歴データに基づいて、前記時間を含む所定の時間間隔で前記第1の関心地点と対をなす前記第2の関心地点を決定するように構成された、請求項1に記載の通信サ
ーバ装置。
【請求項3】
前記通信サーバ装置が、前記履歴データがあると判断したことに応答して、さらに、前記ユーザーの前記位置を示す前記データフィールドを含む前記ユーザーデータを受信したことに応答して、
前記通信サーバ装置は、前記第1の関心地点を決定するために、
前記履歴データに含まれる輸送関連サービスの1つ以上の履歴出発地を示すデータが あるかどうかを判断し、
前記1つ以上の履歴出発地を示す前記データがあると判断された場合、
前記1つ以上の履歴出発地を示す前記データに基づいて、前記ユーザーの前記位置 に最も距離が近い履歴出発地を前記第1の関心地点として定義し、
前記ユーザー通信装置による受信のために、前記履歴出発地を示すデータを送信し、
前記1つ以上の履歴出発地を示すデータがないと判断された場合、
前記履歴データに含まれる1つ以上の履歴目的地を示すデータを決定し、
前記1つ以上の履歴目的地を示す前記データに基づいて、前記ユーザーの前記位置 に最も距離が近い履歴目的地を前記第1の関心地点として定義し、
前記ユーザー通信装置による受信のために、前記履歴目的地を示すデータを送信するように構成された、請求項1または2に記載の通信サーバ装置。
【請求項4】
前記1つ以上の履歴目的地を示す前記データを決定するために、前記通信サーバ装置は、所定の履歴期間に関連する前記1つ以上の履歴目的地を示す前記データを決定するように構成された、請求項3に記載の通信サーバ装置。
【請求項5】
通信サーバ装置のプロセッサの制御下で、
ユーザーの位置を示すデータフィールドを含むユーザーデータを受信することに応答して、さらに、輸送関連サービスに対応する前記ユーザーに関連する履歴データがないと判断することに応答して、
前記位置を含むマップを表すデータを検索し、
前記ユーザーのユーザー通信装置による受信のために、前記輸送関連サービスの推奨される出発地として前記マップ上の関心地点を決定するために、前記ユーザー通信装置を介して前記ユーザーに前記マップを提示するための前記マップを表すデータを送信し、
1つ以上のデータレコード内に輸送関連サービスに対応する履歴データがあり、前記履歴データが前記ユーザーに関連付けられていると判断したことに応答して、
前記履歴データに基づいて、前記輸送関連サービスの推奨される出発地として第1の関心地点を決定し、
前記履歴データに基づいて、前記輸送関連サービスの推奨される目的地として第2の関心地点を決定し、
前記第1の関心地点と前記第2の関心地点とが前記履歴データに基づいて互いに対をなし、
前記ユーザー通信装置による受信のために、前記第1の関心地点を示すデータと前記第2の関心地点とを示すデータとを送信すること含む、輸送関連サービスの1つ以上の関心地点をユーザーに推奨するために通信サーバ装置において実行される方法。
【請求項6】
前記履歴データがあると判断したことに応答して、さらに、時間を示すデータフィールドを含むユーザーデータを受信したことに応答して、
前記第2の関心地点を決定するステップは、前記履歴データに基づいて、前記時間を含む所定の時間間隔で前記第1の関心地点と対をなす前記第2の関心地点を決定するステップを含む、請求項5に記載の方法。
【請求項7】
前記履歴データがあると判断したことに応答して、さらに、前記ユーザーの前記位置を示す前記データフィールドを含む前記ユーザーデータを受信したことに応答して、
前記第1の関心地点を決定することは、
前記履歴データに含まれる輸送関連サービスの1つ以上の履歴出発地を示すデータがあるかどうかを判断し、
前記1つ以上の履歴出発地を示す前記データがあると判断された場合、
前記1つ以上の履歴出発地を示す前記データに基づいて、前記ユーザーの前記位置に最も距離が近い履歴出発地を前記第1の関心地点として定義し、
前記ユーザー通信装置による受信のために、前記履歴出発地を示すデータを送信し、
前記1つ以上の履歴出発地を示すデータがないと判断された場合、
前記履歴データに含まれる1つ以上の履歴目的地を示すデータを決定し、
前記1つ以上の履歴目的地を示す前記データに基づいて、前記ユーザーの前記位置に最も距離が近い履歴目的地を前記第1の関心地点として定義し、
前記ユーザー通信装置による受信のために、前記履歴目的地を示すデータを送信することと、を含む、請求項5または6に記載の方法。
【請求項8】
前記1つ以上の履歴目的地を示す前記データを決定することは、所定の履歴期間に関連する前記1つ以上の履歴目的地を示す前記データを決定することを含む、請求項7記載の方法。
【請求項9】
通信サーバ装置と、少なくとも1つのユーザー通信装置、および前記通信サーバ装置と前記少なくとも1つのユーザー通信装置との通信を確立するために動作可能な通信ネットワーク機器と、を備えた、輸送関連サービスの1つ以上の関心地点をユーザーに推奨するための通信システムであって、
前記少なくとも1つのユーザー通信装置は、第1のプロセッサと第1のメモリとを備え、
前記少なくとも1つのユーザー通信装置は、前記第1のプロセッサの制御下で、処理を行うための前記通信サーバ装置による受信のために、前記ユーザーの位置を示すデータフィールドを含むユーザーデータを送信するように、前記第1のメモリ内の第1の命令を実行し、
前記通信サーバ装置は、第2のプロセッサと第2のメモリとを備え、
前記通信サーバ装置は、第2のプロセッサの制御下で、
前記少なくとも1つのユーザー通信装置によって送信された前記ユーザーデータを示すデータを受信したことに応答して、さらに、前記通信サーバ装置が輸送関連サービスに対応する前記ユーザーに関連する履歴データがないと判断したことに応答して、
前記通信サーバ装置は、
前記位置を含むマップを表すデータを検索し、
前記少なくとも1つのユーザー通信装置による受信のために、前記輸送関連サービスの推奨される出発地として前記マップ上の関心地点を決定するために、前記ユーザー通信装置を介して前記ユーザーに前記マップを提示するための前記マップを表すデータを送信し、
前記通信サーバ装置が、1つ以上のデータレコード内に輸送関連サービスに対応する履歴データがあり、前記履歴データが前記ユーザーに関連付けられていると判断したことに応答して、
前記履歴データに基づいて、前記輸送関連サービスの推奨出発地として第1の関心地点を決定し、
前記履歴データに基づいて、前記輸送関連サービスの推奨目的地として第2の関心地点を決定し、
前記第1の関心地点と前記第2の関心地点とが前記履歴データに基づいて互いに対をなし、
前記少なくとも1つのユーザー通信装置による受信のために、前記第1の関心地点を示すデータと前記第2の関心地点を示すデータとを送信するように構成された、通信システム。
【請求項10】
輸送関連サービスの1つ以上の関心地点をユーザーに推奨するための通信サーバ装置であって、
前記通信サーバ装置は、プロセッサとメモリとを備え、前記プロセッサの制御の下で、
前記ユーザーの位置を示す第1のデータフィールドと、前記ユーザーによって入力され、輸送関連サービスの出発地または目的地として前記ユーザーによってリクエストされた位置を少なくとも部分的に記述された情報を示す入力データを有する第2のデータフィールドと、を含むユーザーデータの受信に応答して、
前記入力データに基づいて、対応する複数の候補関心地点のデータを有する複数の候補データフィールドを含む1つ以上のデータレコードを生成し、
前記1つ以上のデータレコードにおいて、前記複数の候補データフィールドの各候補データフィールドについて、キーワード、領域、人気度、タイミング、距離のうち少なくとも2つの基準に対して少なくとも2つの基準データフィールドを生成し、
前記少なくとも2つの基準データフィールドの各データフィールドにおいて、候補関心地点に対応する前記基準に関連する個々のスコアを示すデータを生成し、
前記キーワードについて、前記個々のスコアは、前記情報と候補関心地点の名前を記述する1つ以上の単語との間の類似性に基づいて決定され、
前記領域について、前記個々のスコアは、前記ユーザーの前記位置を含む第1の地域と、前記候補関心地点を含む第2の地域との間の近接性に基づいて決定され、
前記人気度について、1つ以上の履歴データレコード内の履歴輸送関連サービスに対応する履歴データに基づいて、前記個々のスコアは、前記候補関心地点が前記履歴輸送関連サービスに対してリクエストされた位置として履歴的に選択された回数に基づいて決定され、
前記タイミングについて、1つ以上の履歴データレコード内の輸送関連サービスに対応する履歴データに基づいて、前記履歴データが前記ユーザーに関連付けられ、前記個々のスコアは、定義された時間に前記リクエストされた位置として前記ユーザーが前記候補関心地点を選択する確率に基づいて決定され、
前記距離について、前記個々のスコアは、前記ユーザーの前記位置と前記候補関心地点との間の距離に基づいて決定され、
前記各候補データフィールドについて、前記個々のスコアに基づいて、対応する前記候補関心地点についての結果スコアを生成し、
前記結果スコアを示すデータを処理し、
前記ユーザーのユーザー通信機器による受信のために、前記結果スコアを示す前記データの前記処理の結果に応じて、前記ユーザー通信機器を介して、前記複数の候補関心地点の提示のための前記複数の候補関心地点を示すデータを送信するように、メモリ内の命令を実行するように構成された、通信サーバ装置。
【請求項11】
前記結果スコアを示す前記データを処理するために、前記通信サーバ装置は、前記結果スコアを示す前記データに基づいて、前記複数の候補関心地点の前記結果スコアに従って前記複数の候補関心地点の順序を示すランキングデータを前記1つ以上のデータレコード内に生成し、
前記データを送信するために、前記通信サーバ装置は、前記ランキングデータに従った順序で、前記ユーザー通信機器を介して、前記複数の候補関心地点の提示のための前記複数の候補関心地点を示す前記データを送信するように構成された、請求項10に記載の通信サーバ装置。
【請求項12】
前記結果スコアを示す前記データを処理するために、前記通信サーバ装置は、前記結果スコアを示す前記データに基づいて、前記複数の候補関心地点の候補関心地点ごとに、前記結果スコアを、前記リクエストされた位置に対する前記候補関心地点の一致関連性を示す閾値と比較し、
前記データを送信するために、前記通信サーバ装置は、前記閾値以上であると判断された結果スコアを有する前記候補関心地点を示す前記データを送信するように構成された、請求項10または11に記載の通信サーバ装置。
【請求項13】
前記結果スコアを生成するために、前記通信サーバ装置は、前記個々のスコアの加重和によって前記結果スコアを生成するように構成された、請求項10乃至12のいずれか1項に記載の通信サーバ装置。
【請求項14】
前記少なくとも2つの基準は、前記領域を含み、
前記第1の地域および前記第2の地域が異なる国にあることを示すと判断された前記領域の前記個々のスコアに応じて、前記通信サーバ装置は、前記候補関心地点を除外するようにさらに構成された、請求項10乃至13のいずれか1項に記載の通信サーバ装置。
【請求項15】
通信サーバ装置のプロセッサの制御下で、
ユーザーの位置を示す第1のデータフィールドと、前記ユーザーによって入力され、輸送関連サービスの出発地または目的地として前記ユーザーによってリクエストされた位置を少なくとも部分的に記述された情報を示す入力データを有する第2のデータフィールドと、を含むユーザーデータの受信に応答して、
前記入力データに基づいて、対応する複数の候補関心地点のデータを有する複数の候補データフィールドを含む1つ以上のデータレコードを生成し、
前記1つ以上のデータレコードにおいて、前記複数の候補データフィールドの各候補データフィールドについて、キーワード、領域、人気度、タイミング、距離のうち少なくとも2つの基準に対して少なくとも2つの基準データフィールドを生成し、
前記少なくとも2つの基準データフィールドの各基準データフィールドにおいて、候補関心地点に対応する前記基準に関連する個々のスコアを示すデータを生成し、
前記キーワードについて、前記個々のスコアは、前記情報と候補関心地点の名前を記述する1つ以上の単語との間の類似性に基づいて決定され、
前記領域について、前記個々のスコアは、前記ユーザーの前記位置を含む第1の地域と、前記候補関心地点を含む第2の地域との間の近接性に基づいて決定され、
前記人気度について、1つ以上の履歴データレコード内の履歴輸送関連サービスに対応する履歴データに基づいて、前記個々のスコアは、前記候補関心地点が前記履歴輸送関連サービスに対してリクエストされた位置として履歴的に選択された回数に基づいて決定され、
前記タイミングについて、1つ以上の履歴データレコード内の輸送関連サービスに対応する履歴データに基づいて、前記履歴データが前記ユーザーに関連付けられ、前記個々のスコアは、定義された時間に前記リクエストされた位置として前記ユーザーが前記候補関心地点を選択する確率に基づいて決定され、
前記距離について、前記個々のスコアは、前記ユーザーの前記位置と前記候補関心地点との間の距離に基づいて決定され、
前記各候補データフィールドについて、前記個々のスコアに基づいて、対応する前記候補関心地点についての結果スコアを生成し、
前記結果スコアを示すデータを処理し、
前記ユーザーのユーザー通信装置による受信のために、前記結果スコアを示す前記データの前記処理の結果に応じて、前記ユーザー通信装置を介して、前記複数の候補関心地点の提示のための前記複数の候補関心地点を示すデータを送信することを含む、輸送関連サービスの1つ以上の関心地点をユーザーに推奨するために通信サーバ装置において実行される方法。
【請求項16】
前記結果スコアを示す前記データを処理するステップは、前記結果スコアを示す前記データに基づいて、前記複数の候補関心地点の前記結果スコアに従って前記複数の候補関心地点の順序を示すランキングデータを前記1つ以上のデータレコード内に生成することを含み、
前記データを送信するステップは、前記ランキングデータに従った順序で、前記ユーザー通信装置を介して、前記複数の候補関心地点の提示のための前記複数の候補関心地点を示すデータを送信するステップを含む、請求項15に記載の方法。
【請求項17】
前記結果スコアを示す前記データを処理するステップは、前記結果スコアを示す前記データに基づいて、前記複数の候補関心地点の各候補関心地点について、前記結果スコアを、前記リクエストされた位置に対する前記候補関心地点の一致関連性を示す閾値と比較することを含み、
データを送信するステップは、前記閾値以上であると判断された結果スコアを有する前記候補関心地点を示す前記データを送信するステップを含む、請求項15または16に記載の方法。
【請求項18】
前記結果スコアを生成するステップは、前記個々のスコアの加重和によって前記結果スコアを生成するステップを含む、請求項15乃至17のいずれか1項に記載の方法。
【請求項19】
前記少なくとも2つの基準は、前記領域を含み、
前記第1の地域および前記第2の地域が異なる国にあることを示すと判断された前記領域の前記個々のスコアに応じて、前記方法は、前記候補関心地点を除外することをさらに含む、請求項15乃至18のいずれか1項に記載の方法。
【請求項20】
通信サーバ装置と、少なくとも1つのユーザー通信装置、および前記通信サーバ装置と前記少なくとも1つのユーザー通信装置との通信を確立するために動作可能な通信ネットワーク機器と、を備えた、輸送関連サービスの1つ以上の関心地点をユーザーに推奨するための通信システムであって、
前記少なくとも1つのユーザー通信装置は、第1のプロセッサと第1のメモリとを備え、
前記少なくとも1つのユーザー通信装置は、前記第1のプロセッサの制御下で、処理を行うための前記通信サーバ装置による受信のために、前記ユーザーの位置を示す第1のデータフィールドと、前記ユーザーによって入力された情報を示す入力データを有する第2のデータフィールドと、を含むユーザーデータを送信するように、前記第1のメモリ内の第1の命令を実行するように構成され、前記情報は、前記輸送関連サービスの出発地または目的地として、前記ユーザーによってリクエストされた位置を少なくとも部分的に記述するものであり、
前記通信サーバ装置は、第2のプロセッサと第2のメモリとを備え、
前記通信サーバ装置は、前記第2のプロセッサの制御下で
前記少なくとも1つのユーザー通信装置によって送信された前記ユーザーデータを示すデータの受信に応答して、
前記入力データに基づいて、対応する複数の候補関心地点のデータを有する複数の候補データフィールドを含む1つ以上のデータレコードを生成し、
前記1つ以上のデータレコードにおいて、前記複数の候補データフィールドの各候補データフィールドについて、キーワード、領域、人気度、タイミング、および距離のうち少なくとも2つ基準に対して少なくとも2つの基準データフィールドを生成し、
前記少なくとも2つの基準データフィールドの各基準データフィールドにおいて、候補関心地点に対応する前記基準に関連する個々のスコアを示すデータを生成し、
前記キーワードについて、前記個々のスコアは、前記情報と候補関心地点の名前を記述する1つ以上の単語との間の類似性に基づいて決定され、
前記領域について、前記個々のスコアは、前記ユーザーの前記位置を含む第1の地域と、前記候補関心地点を含む第2の地域との間の近接性に基づいて決定され、
前記人気度について、1つ以上の履歴データレコード内の履歴輸送関連サービスに対応する履歴データに基づいて、前記個々のスコアは、前記候補関心地点が前記履歴輸送関連サービスに対してリクエストされた位置として履歴的に選択された回数に基づいて決定され、
前記タイミングについて、1つ以上の履歴データレコード内の輸送関連サービスに対応する履歴データに基づいて、前記履歴データが前記ユーザーに関連付けられ、前記個々のスコアは、定義された時間に前記リクエストされた位置として前記ユーザーが前記候補関心地点を選択する確率に基づいて決定され、
前記距離について、前記個々のスコアは、前記ユーザーの前記位置と前記候補関心地点との間の距離に基づいて決定され、
前記各候補データフィールドについて、前記個々のスコアに基づいて、対応する前記候補関心地点についての結果スコアを生成し、
前記結果スコアを示すデータを処理し、
前記ユーザーの
前記少なくとも1つのユーザー通信
装置による受信のために、前記結果スコアを示す前記データの前記処理の結果に応じて、前記
少なくとも1つのユーザー通信
装置を介して、前記複数の候補関心地点の提示のための前記複数の候補関心地点を示すデータを送信するように構成された、通信システム。
【請求項21】
請求項1乃至4のいずれか1項に記載の前記通信サーバ装置、および請求項10乃至14のいずれか1項に記載の前記通信サーバ装置のうち少なくとも1つの、輸送関連サービスの1つ以上の関心地点をユーザーに推奨する通信サーバ装置。
【請求項22】
前記通信サーバ装置のプロセッサの制御下で、
請求項5乃至8のいずれか1項に記載の方法を実行し、
請求項15乃至19のいずれか1項に記載の方法を実行する、輸送関連サービスの1つ以上の関心地点をユーザーに推奨するために通信サーバ装置で実行される方法。
【請求項23】
通信サーバ装置と、少なくとも1つのユーザー通信装置、および前記通信サーバ装置と前記少なくとも1つのユーザー通信装置との通信を確立するために動作可能な通信ネットワーク機器と、を備えた、輸送関連サービスの1つ以上の関心地点をユーザーに推奨するための通信システムであって、
前記通信サーバ装置は、請求項1乃至4のいずれか1項に記載の前記通信サーバ装置として構成され、
前記少なくとも1つのユーザー通信装置は、前記プロセッサの制御下で、処理を行うための前記通信サーバ装置による受信のために、前記メモリ内の命令を実行して、前記ユーザーの位置を示すデータフィールドを含むユーザーデータを送信するように構成され、
前記少なくとも1つのユーザー通信装置が、前記プロセッサの制御下で、処理を行うための前記通信サーバ装置による受信のために、前記ユーザーの位置を示す第1のデータフィールドと、前記ユーザーによって入力された情報を示す入力データを有する第2のデータフィールドと、を送信する、メモリ内の命令を実行するように構成され、前記情報は、前記輸送関連サービスの出発地または目的地として、前記ユーザーによってリクエストされた位置を少なくとも部分的に記述するものである、請求項10乃至14のいずれか1項に記載の前記通信サーバ装置、のうち少なくとも1つとして構成された、通信システム。
【請求項24】
請求項5乃至8、15乃至19、及び22のいずれか1項に記載の方法を実行する命令を含むコンピュータプログラム。
【請求項25】
プロセッサによって実行されると、前記プロセッサに、請求項5乃至8、15乃至19、及び22のいずれか1項に記載の方法を実行させる命令を記憶する非一時的記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は一般に、通信の分野に関する。本発明の一態様は、輸送関連サービスの1つ以上の関心地点をユーザーに推奨するための通信サーバ装置に関する。本発明の他の態様は、ユーザーに輸送関連サービスの1つ以上の関心地点を推奨するためのさらなる通信サーバ装置、ユーザーに輸送関連サービスの1つ以上の関心地点を推奨するための方法、ユーザーに輸送関連サービスの1つ以上の関心地点を推奨するための通信システム、およびユーザーに輸送関連サービスの1つ以上の関心地点を推奨するための通信サーバデバイスに関する。さらなる態様は、本明細書で説明される方法のうちのいずれか1つを実施するための命令を有するコンピュータプログラム製品、コンピュータプログラム、および非一時的記憶媒体に関する。
【0002】
本発明の一態様は、それに限定されないが、特に、輸送関連サービスの1つ以上の関心地点をユーザーに推奨するためのアプリケーションを有する。例えば、ユーザーは輸送関連サービス、例えば、乗り物を運ぶ輸送サービスについてリクエストまたは予約を希望する場合があり、開示される技術は異なるアクション/シナリオに対して、または予約の様々な段階で、予約の目的のために、輸送関連サービスに対応する出発地および/または目的地としての1つ以上の関心地点の推奨を提供することができる。ユーザーは予約を行うために、対応するアプリケーションまたは「App」を使用することができ、推奨される関心地点は検討および/または選択のために、Appを介してユーザーに提供または提示することができる。
【背景技術】
【0003】
トランスポートサービスに対するユーザーの問合せに応答して、問合せに関連するPOI(Point‐Of‐Interest)の検索を行う。しかしながら、現在のPOIサービスの品質は、他の要件や属性を考慮せずユーザーの位置に応じてPOIをフィルタリングするため、輸送サービスの既知のアプローチとして満足のいくものではない。
【発明の概要】
【課題を解決するための手段】
【0004】
本発明の態様は、独立請求項に記載されている。一部のオプション機能は、従属請求項に定義される。
【0005】
本明細書に開示される技術の実施形態は、有意な技術的利点を提供することができる。本技術は例えば、複数のデータソースから得られる複数のデータ/情報に基づいて、輸送関連サービスの1つ以上の関心地点(POI)をユーザーに推奨することを可能にすることができる。
【0006】
少なくともいくつかの実装形態では、本明細書で開示される技術が履歴データ、例えば、履歴輸送関連サービスに対応する出発地と目的地との1つ以上のペアに関するデータに基づいて、1つ以上の関心地点(POI)の推奨を提供することができる。
【0007】
少なくともいくつかの実装形態では、本明細書で開示される技術が履歴データと、地域(例えば、都市)内の少なくとも1つの目的地カテゴリにおける最上位の関心地点に対応するデータとに基づいて、1つ以上の関心地点(POI)の推奨を可能にする。
【0008】
少なくともいくつかの実装形態では、本明細書で開示される技術は、候補POIのための複数の基準に割り当てられた個々のスコアから決定され得る候補POIの結果スコアに基づいて、1つ以上の関心地点(POI)の推奨を提供することができる。少なくともいくつかの基準についての個々のスコアは、履歴データに基づいて決定されてもよい。
【0009】
少なくともいくつかの実装形態では、本明細書で開示される技術は、輸送関連サービスの予約中に、異なるアクション/シナリオのための1つ以上の関心地点(POI)の推奨を提供することができ、これらのアクションは順番に発生してもよい。
【0010】
例示的な実装形態では、本明細書で開示される技術の機能は、携帯電話などの携帯通信装置上で実行されるソフトウェアに実装されてもよい。本明細書で開示される技術の機能を実装するソフトウェアは、ユーザーがオンラインストアからダウンロードした「App」(コンピュータプログラム、またはコンピュータプログラム製品)に含まれてもよい。例えば、ユーザーの携帯電話上で実行する場合、携帯電話のハードウェア機能を使用して、携帯電話のトランシーバ構成要素を使用してユーザーに輸送関連サービスの1つ以上の関心地点(POI)を推奨するための安全な通信チャネルを確立するなど、以下に説明する機能を実装することができる。
【図面の簡単な説明】
【0011】
ここで、本発明を、例としてのみ、添付の図面を参照して説明する。
【
図1】
図1は、通信サーバ装置を含む例示的な通信システムを示す概略ブロック図である。
【
図2A】
図2Aは、輸送関連サービスの1つ以上の関心地点をユーザーに推奨するための通信サーバ装置を示す概略ブロック図である。
【
図2B】
図2Bは、輸送関連サービスの1つ以上の関心地点をユーザーに推奨するために、通信サーバ装置において実行される方法を示すフローチャートである。
【
図2C】
図2Cは、輸送関連サービスの1つ以上の関心地点をユーザーに推奨するための通信サーバ装置を示す概略ブロック図である。
【
図2D】
図2Dは、輸送関連サービスの1つ以上の関心地点をユーザーに推奨するために、通信サーバ装置において実行される方法を示すフローチャートである。
【
図2E】
図2Eは、輸送関連サービスの1つ以上の関心地点をユーザーに推奨するための通信サーバ装置を示す概略ブロック図である。
【
図2F】
図2Fは、データレコードを示す概略ブロック図である。
【
図2G】
図2Gは輸送関連サービスの1つ以上の関心地点をユーザーに推奨するために、通信サーバ装置において実行される方法を示すフローチャートである。
【
図2H】
図2Hは、輸送関連サービスの1つ以上の関心地点をユーザーに推奨するための通信サーバ装置を示す概略ブロック図である。
【
図2I】
図2Iは輸送関連サービスの1つ以上の関心地点をユーザーに推奨するために、通信サーバ装置において実行される方法を示すフローチャートである。
【
図3A】
図3Aは、様々な実施形態のPOI(point-of-interest)サービスの4つの主要なシナリオを示す。
【
図3B】
図3Bは、様々な実施形態のPOI(point-of-interest)サービスの4つの主要なシナリオを示す。
【
図3C】
図3Cは、様々な実施形態のPOI(point-of-interest)サービスの4つの主要なシナリオを示す。
【
図3D】
図3Dは、様々な実施形態のPOI(point-of-interest)サービスの4つの主要なシナリオを示す。
【
図4】
図4は、層ベースのウェブサービス構造体を示す概略図である。
【
図5】
図5は、POI(point-of-interest)サービスのためのシステムの概要を示す概略図である。
【
図6】
図6は、POI(point-of-interest)の時間分布のプロットの一例を示す図である。
【
図7A】
図7Aは、それぞれ、シナリオ予測、提案、検索、およびリバースジオにおける様々な実施形態のPOIサービスの性能を示す。
【
図7B】
図7Bは、それぞれ、シナリオ予測、提案、検索、およびリバースジオにおける様々な実施形態のPOIサービスの性能を示す。
【
図7C】
図7Cは、それぞれ、シナリオ予測、提案、検索、およびリバースジオにおける様々な実施形態のPOIサービスの性能を示す。
【
図7D】
図7Dは、それぞれ、シナリオ予測、提案、検索、およびリバースジオにおける様々な実施形態のPOIサービスの性能を示す。
【発明を実施するための形態】
【0012】
本技術はリアルタイムで関心地点(points-of-interest;POI)推奨、例えば、リアルタイムでGolangベースのPOI発見および推奨を提供することができる。
【0013】
輸送サービス(例えば、乗り物輸送サービス)の一態様は、ユーザーに、可能な限り少ない労力で、ユーザーの位置に基づいて乗車(ピックアップ)および/または降車(ドロップオフ)として所望のPOIを提供することであり、これは、予約ボタンをクリックする前にユーザーが画面上でクリックする時間によって測定することができる。地理ベースのサービスとして、POIの発見および推奨は、多くの幾何学的計算および高いトラフィック・スループットを含むことができる。POIの発見および推奨の高い可用性および安定性を確保することが重要である。本技術では、バックエンドシステムの安定性を確保するためにGolangベースのサービスアーキテクチャが採用されている。エラスティックサーチを利用して、データベース層上に何百万ものPOIデータを編成することができる。Redisは、キャッシュとしての各リクエストの応答時間を短縮するために使用できる。以下でさらに説明するように、Golangベースのサービスアーキテクチャを使用することができ、様々なシナリオに従って、エラスティックサーチおよびRedisなどの技術を展開することによって、オンライン上の課題に対処することができる。POIサービスは、画面上でクリックする時間が非常に短い場合に、平均して完了した予約の比率を高めるのに役立つ場合がある。
【0014】
最初に
図1を参照すると、様々な実施形態に適用可能な通信システム100が示されている。通信システム100は、通信サーバ装置102、第1のユーザー(またはクライアント)通信装置104および第2のユーザー(またはクライアント)通信装置106を含む。これらの装置102、104、106は、例えばインターネット通信プロトコルを実現するそれぞれの通信リンク110、112、114を介して、通信ネットワーク108(例えばインターネット)中または通信ネットワーク108に接続される。通信装置104、106は移動セルラー通信ネットワーク(mobile cellular communication network)を含む公衆交換電話網(PSTNネットワーク)のような他の通信ネットワークを介して通信することができるが、これらは分かりやすさの観点で
図1から省略されている。装置104、106と同様の1つ以上の他の通信装置が存在し得ることを理解されたい。
【0015】
通信サーバ装置102は、輸送関連サービス(transport-related service)の1つ以上のPOI(Point-of-interest)をユーザーに推奨するためのものであってもよい。
【0016】
通信サーバ装置102は、
図1に概略的に示すように単一のサーバであってもよいし、複数のサーバ構成要素に分散された通信サーバ装置102によって実行される機能を有していてもよい。
図1の例では通信サーバ装置102が1つ以上のマイクロプロセッサ(μP)116、実行可能命令120のロードのためのメモリ118(例えば、RAM(ランダムアクセスメモリ)のような揮発性メモリ)、通信サーバ装置102がプロセッサ116の制御の下で実行する機能性を規定する実行可能命令120を含むが、これらに限定されず、多数の個々の構成要素を含むことができる。通信サーバ装置102はまた、通信サーバ装置102が通信ネットワーク108を介して通信することを可能にする入出力モジュール122を含んでもよい。ユーザーインタフェース124はユーザー制御のために設けられ、例えば、ディスプレイモニター、コンピュータキーボードなどの1つ以上のコンピューティング周辺機器を含むことができる。通信サーバ装置102はデータベース(DB)126を含むこともでき、その目的は以下の説明から容易に明らかになる。
【0017】
ユーザー通信装置104は1つ以上のマイクロプロセッサ128、実行可能命令132のロードのためのメモリ130(例えば、RAMのような不揮発性メモリ)、ユーザー通信装置104がプロセッサ128の制御下で実行する機能を規定する実行可能命令132を含むが、これらに限定されず、多数の個々の構成要素を含むことができる。ユーザー通信装置104はまた、ユーザー通信装置104が通信ネットワーク108を介して通信することを可能にする入出力(I/O)モジュール134を含む。ユーザー制御のために、ユーザーインタフェース136が提供される。例えば、ユーザー通信装置104がスマートフォンまたはタブレットデバイスである場合、ユーザーインタフェース136は、多くのスマートフォンおよび他の携帯デバイスにおいて普及しているようなタッチパネルディスプレイを有してもよい。あるいは、例えば、ユーザー通信装置104がデスクトップまたはラップトップコンピュータである場合、例えば、ユーザーインタフェースはディスプレイモニター、コンピュータキーボード等の1つ以上のコンピューティング周辺機器を有してもよい。
【0018】
例えば、ユーザー通信装置106はユーザー通信装置104と同一または類似のハードウェアアーキテクチャを有するスマートフォンまたはタブレットデバイスであってもよい。
【0019】
ユーザー通信装置104および/またはユーザー通信装置106は、ユーザーへの輸送関連サービスの1つ以上の推奨関心地点(POI)に関する情報またはデータを受信するためのものとすることができる。
【0020】
図2Aは、輸送関連サービスの1つ以上の関心地点(POI)をユーザーに推奨するための通信サーバ装置202aを示す概略ブロック図を示す。通信サーバ装置202aはプロセッサ216aおよびメモリ218aを含み、通信サーバ装置202aはプロセッサ216aの制御下で、ユーザーの位置(例えば、現在の位置または予想された位置)を示すデータフィールド(例えば、緯度(lat)値および経度(lng)値を示すデータ)を含むユーザーデータの受信に応じて、メモリ218a内の命令を実行するように構成され、さらに、通信サーバ装置202aが、輸送関連サービスに対応するユーザーに関連する履歴データ(historical data)がないと判定したことに応じて、当該位置を有する地図を表すデータ255aを検索し、ユーザーのユーザー通信装置によって受信するために、輸送関連サービスの推奨出発地(recommended origin location)(またはピックアップ位置)として、マップ上に(単一の)関心地点の(例えば、ユーザーの所在地に基づく)決定のために、ユーザーの通信装置を介してユーザーにマップを提示するためのマップを表すデータ255aを送信し、通信サーバ装置202aが、1つ以上のデータレコードに輸送関連サービスに対応する履歴データがあると判断したことに基づいて、ユーザーに関連付けられている履歴データは、履歴データに基づいて、輸送関連サービスの推奨される出発地(またはピックアップ位置)として、(単一の)第1の関心地点を決定し、履歴データに基づいて、輸送関連サービスの推奨される目的地(またはドロップオフ位置)として、(単一の)第2の関心地点を決定し、過去の輸送関連サービスに対応して、第1の関心地点と第2の関心地点とをペアにし、ユーザー通信装置によって受信するために、第1の関心地点を示すデータ256aおよび第2の関心地点を示すデータ257aを送信する。
【0021】
プロセッサ216aおよびメモリ218aは(ライン217aによって表されるように)互いに結合されてもよく、例えば、物理的に結合されてもよく、および/または電気的に結合されてもよい。プロセッサ216aはプロセッサ116(
図1)の文脈で説明されたものであってもよいし、メモリ218aは、メモリ118(
図1)の文脈で説明されたものであってもよい。
【0022】
ユーザーデータはさらに、ユーザーの固有性(identity)を表す識別子(例えば、ユーザーID)を示す別のデータフィールドを含んでもよい。
【0023】
様々な実施形態では、通信サーバ装置202aが、履歴データが存在すると判定することに応答して、さらに、推奨される目的地として第2の関心地点を判定するために、時間(時点)(例えば、現在の時間(時点)または予定された時間(時点))を示すデータフィールドを有するユーザーデータ(ユーザーの位置を示すデータフィールドを有する同じユーザーデータであってもよい)を受信することに応答して、通信サーバ装置202aは履歴データに基づいて、第2の関心地点が時間を含む所定の時間間隔(例えば、1日のうちの数時間)に第1の関心地点と対にされることを判定するようにさらに構成されてもよい。時刻は例えば、予約が行われた時刻、または、輸送関連サービスの開始時刻であってもよい。
【0024】
以下の例に限定されないが、時間は午後3時05分であってもよく、例えば、過去の3時~3時30分、または3時~4時00分(例えば、過去24時間以上)の間隔で第1の関心地点と対になっている第2の関心地点は、推奨目的地(recommended destination location)として決定されてもよい。
【0025】
様々な実施形態では、通信サーバ装置202aが、履歴データがあると判定し、さらにユーザーの位置を示すデータフィールドを受信することに応答して、第1の関心地点を判定するために、通信サーバ装置202aは履歴データに含まれる輸送関連サービスの1つ以上の履歴出発地を示すデータがあるかどうかを判定するように構成されてもよく、1つ以上の履歴出発地を示すデータがあると判定された場合、1つ以上の履歴出発地を示すデータに基づいて、第1の関心地点としてユーザーの位置に距離が最も近い履歴出発地を定義し、ユーザー通信装置による受信のために、履歴出発地を示すデータを送信し、1つ以上の履歴出発地を示すデータがないと判定された場合、1つ以上の履歴出発地(または1つ以上の最後のドロップオフ先)を示すデータを判定する。履歴データに含まれる(LDF)は1つ以上の履歴目的地(historical destination location)を示すデータに基づいて、第1の関心地点としてユーザーの位置に距離が最も近い履歴目的地を定義し、ユーザー通信装置による受信のために、履歴目的地を示すデータを送信する。
【0026】
様々な実施形態では、1つ以上の履歴目的地を示すデータを決定するために、通信サーバ装置202aは所定の履歴期間(historical period of time)(例えば、過去24時間)に関連付けられた1つ以上の履歴目的地を示すデータを決定するように構成されてもよい。
【0027】
図2Bは、通信サーバ装置のプロセッサの制御下で、輸送関連サービスの1つ以上の関心地点をユーザーに推奨するために、通信サーバ装置において実行される方法を示すフローチャート250である。
【0028】
ユーザーの位置を示すデータフィールドを含むユーザーデータを受信し、さらに、輸送関連サービスに対応するユーザーに関連する履歴データがないと判断したことに応答して、251において、位置を有するマップのデータが検索され、252において、マップを表すデータがユーザーのユーザー通信装置によって受信されるために、ユーザー通信装置を介して、輸送関連サービスの推奨出発地としてマップ上の関心地点の決定のためにマップをユーザーに提示するために、マップが送信される。
【0029】
1つ以上のデータレコード内に輸送関連サービスに対応する履歴データがあると判定することに応答して、履歴データはユーザーに関連し、255において、履歴データに基づいて輸送関連サービスの推奨出発地として、第1の関心地点が決定され、256において、履歴データに基づいて、輸送関連サービスの推奨目的地として、第2の関心地点が決定され、第1の関心地点および第2の関心地点は履歴輸送関連サービスに対応して互いに対をなし、257において、第1の関心地点を示すデータおよび第2の関心地点を示すデータがユーザー通信装置によって受信されるために送信される。
【0030】
256において、履歴データが存在すると判定することに応答して、さらに、時間を示すデータフィールドを含むユーザーデータを受信することに応答して、本方法は、履歴データに基づいて、第2の関心地点が時間を含む所定の時間間隔において第1の関心地点と対になることを判定することを含むことができる。
【0031】
様々な実施形態では、255において、履歴データがあると判定することに応答し、さらに、ユーザーの位置を示すデータフィールドを含むユーザーデータを受信することに応答して、本方法は、履歴データに含まれる輸送関連サービスの1つ以上の履歴出発地を示すデータがあるかどうかを判定することと、1つ以上の履歴出発地を示すデータがあると判定された場合、1つ以上の履歴出発地を示すデータに基づいて、第1の関心地点としてユーザーの位置に距離が最も近い履歴出発地を規定することと、ユーザー通信装置による受信のために、履歴出発地を示すデータを送信することと、1つ以上の履歴出発地を示すデータがないと判定された場合、履歴データに含まれる1つ以上の履歴目的地を示すデータを判定することと、1つ以上の履歴目的地を示すデータに基づいて、履歴目的地を規定することとを含むことができる。第1の関心地点として、ユーザーの位置に距離が最も近い位置、およびユーザー通信装置による受信のために、履歴目的地を示すデータを送信する。
【0032】
様々な実施形態では、1つ以上の履歴目的地を示すデータを決定するために、本方法は、所定の履歴期間に関連する1つ以上の履歴目的地を示すデータを決定することを含むことができる。
【0033】
様々な実施形態はさらに、通信サーバ装置(例えば、202a、
図2A)を有する、輸送関連サービスのための1つ以上の関心地点をユーザーに推奨するための通信システムと、通信サーバ装置およびそれを介して相互の通信を確立するための少なくも1つのユーザー装置のために動作可能な少なくとも1つのユーザー通信装置およびネットワーク機器と、を提供することができる。ここで、少なくとも1つのユーザー通信装置は、第1のプロセッサと、第1のメモリとを含み、少なくとも1つのユーザー通信装置は、第1のプロセッサの制御下で、第1のメモリ内の第1の命令を実行して、処理を行うために通信サーバ装置によって受信されるために、ユーザーの位置を示すデータフィールドを含むユーザーデータを送信するように構成され、通信サーバ装置は第2のプロセッサと、第2のメモリとを含み、第2のプロセッサの制御下で、第2の命令を実行するように構成されている通信サーバ装置は、少なくとも1つのユーザー通信装置によって送信されたユーザーデータを示すデータの受信に応答して、さらに、通信サーバ装置が、輸送関連サービスに対応するユーザーに関連付けられた履歴データがない、と判断したことに応答して、位置を含むマップを表すデータを検索し、少なくとも1つのユーザー通信装置によって受信されるために、ユーザー通信装置を介してマップを提示するためのマップを表すデータをユーザーに送信し、マップ上の関心地点を輸送関連サービスの推奨出発地として決定し、通信サーバ装置が1つ以上のデータレコード内に輸送関連サービスに対応する履歴データがあると判断したことに応答して、ユーザーに関連付けられている履歴データは、履歴データに基づいて、輸送関連サービスの推奨出発地として第1の関心地点を決定し、履歴データに基づいて、輸送関連サービスの推奨目的地としての第2の関心地点を決定し、第1の関心地点および第2の関心地点は、関心対象は履歴輸送関連サービスに対応して互いに対をなし、少なくとも1つのユーザー通信装置による受信のために、第1の関心地点を示すデータと、第2の関心地点を示すデータとを送信する。
【0034】
なお、通信サーバ装置202a、フローチャート250の文脈で説明されている方法、およびこれに対応する通信システムは、互いに適用可能であることに留意する必要がある。
【0035】
通信サーバ装置202aの文脈で上述した技術、フローチャート250の文脈で説明した方法、および上述した対応する通信システムは、以下でさらに説明するアクション/シナリオ(action/scenario)「予測(Predict)」に対応することができる。さらに、前記技術は輸送関連サービスに対応する(ソフトウェア)アプリケーション(例えば、「App」)のアクティベーションまたは起動、またはアクティベーションまたは起動の検出(または決定)に応答して実行されてもよく、またはユーザーが輸送関連サービスのリクエストまたは予約を行うプロセスの開始時に実行されてもよい。
【0036】
図2Cは、輸送関連サービスの1つ以上の関心地点(POI)をユーザーに推奨するための通信サーバ装置202cを示す概略ブロック図である。通信サーバ装置202cは、プロセッサ216cおよびメモリ218cを含み、通信サーバ装置202cは、プロセッサ216cの制御下で、ユーザーの位置(例えば、現在の位置または予想された位置)を示す第1のデータフィールド(例えば、緯度(lat)値および経度(lng)値を示すデータ)を含むユーザーデータの受信に応答して、メモリ218c内の命令を実行するように構成され、目的地(またはドロップオフ位置)に対応するユーザーリクエストを示す第2のデータフィールドを含み、1つ以上のデータレコード内の輸送関連サービスに対応する履歴データにアクセスし、ユーザーに関連付けられている履歴データを含み、位置を含む地域(例えば、都市)において、少なくとも1つの目的地カテゴリ(例えば、ショッピングの目的地、食品店、交通ハブ等)における最上位の関心地点(例えば、最も人気度のあるPOI;上位3、上位5、または他の数)の数を示すデータにアクセスし、履歴データおよび上位関心地点の数を示すデータに基づいて、輸送関連サービスの目的地として推奨される一つ以上の関心の第1の関心地点を決定し、ユーザー通信装置による受領のために、一つ以上の第1の関心地点を示すデータ255cを送信する。
【0037】
プロセッサ216cおよびメモリ218cは(ライン217cによって表されるように)互いに結合されてもよく、例えば、物理的に結合されてもよく、および/または電気的に結合されてもよい。プロセッサ216cはプロセッサ116(
図1)の文脈で説明されてもよいし、メモリ218cは、メモリ118(
図1)の文脈で説明されてもよい。
【0038】
ユーザーデータはさらに、ユーザーの固有性(identity)を表す識別子(例えば、ユーザーID)を示す別のデータフィールドを含んでもよい。
【0039】
目的地に対応するユーザーリクエストを示す第2のデータフィールドは、輸送関連サービス(例えば、目的地の入力データフィールド)に対応する(ソフトウェア)アプリケーション(例えば、“App”)の入力ボックスまたは入力データフィールドをユーザーがクリックすることに対応してもよい。
【0040】
様々な実施形態の文脈では、履歴データが多数の履歴目的地を示すデータ、および/またはユーザーの1つ以上の好みを示すデータを含むことができる。
【0041】
様々な実施形態では履歴データがユーザーによって最も頻繁に使用されるいくつかの履歴目的地(例えば、最も頻繁に使用される3つの位置、最も頻繁に使用される5つの位置、または任意の他の数)を示すデータを含むことができ、履歴データにアクセスするために、通信サーバ装置202cはユーザーによって最も頻繁に使用される履歴目的地の数を示すデータにアクセスするようにさらに構成することができ、1つ以上の第1の関心地点を決定するために、通信サーバ装置202cは、ユーザーによって最も頻繁に使用される履歴目的地の数を示すデータと最上位の関心地点の数を示すデータとに基づいて、1つ以上の第1の関心地点を決定するようにさらに構成することができる。
【0042】
通信サーバ装置202cはさらに、出発地(またはピックアップ位置)に対応するユーザーリクエストを示すデータフィールドを含むユーザーデータ(上記と同じユーザーデータまたは別のユーザーデータであってもよい)を受信することに応答して、履歴データおよび位置に基づいて、輸送関連サービスの推奨出発地として1つ以上の第2の関心地点を決定し、ユーザー通信装置による受信のために、1つ以上の第2の関心地点を示すデータを送信するように構成されてもよい。
【0043】
履歴データは、多数の履歴出発地を示すデータを含むことができ、1つ以上の第2の関心地点は、履歴出発地の数に基づいて決定することができる。
【0044】
出発地に対応するユーザーリクエストを示すデータフィールドは、輸送関連サービス(例えば、出発地の入力データフィールド)に対応する(ソフトウェア)アプリケーション(例えば、「App」)の入力ボックスまたは入力データフィールドをユーザーがクリックしたことに対応してもよい。
【0045】
1つ以上の第2の関心地点を決定するために、通信サーバ装置202cは、ユーザーの位置に対して所定の距離内にある1つ以上の第2の関心地点を推奨出発地として決定するように構成されてもよい。
【0046】
通信サーバ装置202cは、さらに、1つ以上の第2の関心地点のそれぞれについて、ユーザー通信装置による受信のために、第2の関心地点とユーザーの位置との間の距離を示すデータを送信するように構成されてもよい。
【0047】
図2Dは、通信サーバ装置のプロセッサの制御下で、輸送関連サービスの1つ以上の関心地点をユーザーに推奨するために、通信サーバ装置において実行される方法を示すフローチャート260である。
【0048】
位置を示す第1のデータフィールドと、目的地を示すユーザーリクエストを示す第2のデータフィールドと、を含むユーザーデータを受信すると、262において、1つ以上のデータレコードに対応する輸送関連サービスに対応する履歴データがアクセスされ、264において、位置を有する地域における少なくとも1つの目的地カテゴリにおける最上位の関心地点の数を示すデータがアクセスされ、266において、履歴データと、最上位のランキングポイントの数を示すデータとに基づいて、輸送関連サービスに対して推奨される目的地としての1つ以上の第1の関心地点が決定され、268において、ユーザー通信装置によって受信される1つ以上の第1の関心地点を示すデータが送信される。
【0049】
様々な実施形態では、履歴データがユーザーによって最も頻繁に使用される多数の履歴目的地を示すデータを含むことができる。262では、ユーザーによって最も頻繁に使用される履歴目的地の数を示すデータがアクセスされ、266では、ユーザーによって最も頻繁に使用される履歴目的地の数を示すデータと、最上位の関心地点の数を示すデータとに基づいて、1つ以上の第1の関心地点が決定される。
【0050】
出発地に対応するユーザーリクエストを示すデータフィールドを含むユーザーデータを受信することに応答して、本方法は、履歴データおよび位置に基づいて、輸送関連サービスの推奨出発地として1つ以上の第2の関心地点を決定することと、ユーザー通信装置による受信のために、1つ以上の第2の関心地点を示すデータを送信することと、をさらに含むことができる。
【0051】
様々な実施形態では、本方法が推奨される出発地として、ユーザーの位置に対して所定の距離内にある1つ以上の第2の関心地点を決定することを含むことができる。
【0052】
様々な実施形態では、本方法が1つ以上の第2の関心地点のそれぞれについて、ユーザー通信装置による受信のために、第2の関心地点とユーザーの位置との間の距離を示すデータを送信することをさらに含むことができる。
【0053】
様々な実施形態は、ユーザーに輸送関連サービスの1つ以上の関心地点を推奨するための通信システムをさらに提供することができ、通信サーバ装置(例えば、
図2Cの202c)と、少なくとも1つのユーザー通信装置と、ネットワーク機器と、を有し、通信サーバ装置および少なくとも1つのユーザー通信装置が互いに通信を確立するように動作可能であり、少なくとも1つのユーザー通信装置が第1のプロセッサおよび第1のメモリを含み、少なくとも1つのユーザー通信装置は、第1のプロセッサの制御下で、第1のメモリ内の第1の命令を実行して、処理を行うために通信サーバ装置によって受信されるために、位置を示す第1のデータフィールドと、目的地に対応するユーザーリクエストを示す第2のデータフィールドと、を含むユーザーデータを送信するように構成され、通信サーバ装置は、第2のプロセッサおよび第2のメモリを含み、通信サーバ装置は、第2のプロセッサの制御下で、第2のメモリ内の第2の命令を実行するように構成される。少なくとも1つのユーザー通信装置によって送信されたユーザーデータを示すデータの受信に応答して、1つ以上のデータレコード内の輸送関連サービスに対応する履歴データにアクセスするステップであって、履歴データはユーザーに関連付けられ、位置を含む地理的エリア内の少なくとも1つの目的地カテゴリ内のいくつかの関心地点の最上位の数を示すデータにアクセスするステップと、履歴データと関心地点の最上位の数を示すデータとに基づいて、輸送関連サービスの推奨される目的地としての1つ以上の第1の関心地点を決定し、少なくとも1つのユーザー通信装置による受信のために、1つ以上の第1の関心地点を示すデータを送信する。
【0054】
通信サーバ装置202c、フローチャート260の文脈で説明した方法、および上述した対応する通信システムの文脈での説明は、互いに適用可能であることを理解されたい。
【0055】
通信サーバ装置202cに関連して上述した技術、フローチャート260に関連して説明した方法、および上述した対応する通信システムは、以下にさらに説明するアクション/シナリオ「提案(Suggest)」に対応することができ、さらに、これらの技術はシナリオ「予測」の後に、例えば、シナリオ「予測」から得られた結果が輸送関連サービスのリクエストまたは予約を行うユーザーにとって期待されるものではないかまたは満足のいくものではない場合、順次実行することができる。
【0056】
図2Eは、輸送関連サービスの1つ以上の関心地点(POI)をユーザーに推奨するための通信サーバ装置202eを示す概略ブロック図であり、
図2Fは、通信サーバ装置202eによって生成され得るデータレコード240を示す概略ブロック図である。
【0057】
通信サーバ装置202eは、プロセッサ216eおよびメモリ218eを含み、プロセッサ216eの制御下に、ユーザー(例えば、現在の位置された位置または予想された位置)の位置(緯度(lat)値および経度(lng)値を示すデータを示す第1のデータフィールドと、ユーザーによって入力された情報(輸送関連サービスの出発地または目的地として、ユーザーによってリクエストされた位置の少なくとも部分的に記述)を示す入力データを有する第2のデータフィールドと、を含むユーザーデータを受信することに応じて、メモリ218e内の命令を実行し、入力データに基づいて、対応する複数の関心地点候補に対してデータ243a、243b、243c~243nを有する複数の候補データフィールド242a、242b、242c~242nを有する1つ以上のデータレコード240を生成し、複数の候補データフィールド242a、242b、242c~242nの各々の候補データフィールドと、キーワード、領域、人気度、タイミング、距離の少なくとも2つの基準に対するそれぞれの基準データフィールド(非限定的な例として、候補データフィールド242aに対する基準データフィールド244aおよび246a、候補データフィールド242cに対する基準データフィールド244cおよび246c)と、距離と、に対して1つ以上のデータレコード240を生成し、それぞれの基準データフィールド(例えば244a、246a、244c、246c)の各基準データフィールドにおいて、対象の候補関心地点(非限定的な例として、基準データフィールド244a、246a、244c、246cに対するデータ245a、247c、245c、247c)に対応する基準に関連する個々のスコアを示すデータを生成する。
【0058】
キーワードについて、個人スコアは、情報と、候補関心地点の名前を記述する1つ以上の単語(例えば、フルネーム、部分名、頭字語(acronym))と、の間の類似性に基づいて決定される。領域の場合、個々のスコアはユーザーの位置を含む第1の地域(例えば、都市)と、対象地点の候補を含む第2の地域(例えば、都市)と、の間の近接性に基づいて決定される。人気度については、1つ以上の履歴データレコード内の輸送関連サービスに対応する履歴データに基づいて、個々のスコアは(例えば、任意の1つ以上のユーザーによって、すなわち、輸送関連サービスのリクエストを行うユーザーを含むだけでなく、(1つ以上の)他のユーザーの好みも考慮に入れて)履歴輸送関連サービスのリクエストされた位置として(例えば、候補関心地点は、履歴出発地として選択された時間の数(リクエストされた位置が出発地の場合)または履歴目的地として選択された時間の数(リクエストされた位置が目的地の場合)である)履歴的に選択された時間の数に基づいて決定される。タイミングについては、1つ以上の履歴データレコード(上述の履歴データレコードと同じ履歴データレコードであってもよい)内の輸送関連サービスに対応する履歴データに基づいて、個々のスコアは、定義された時間にユーザーによってリクエストされた位置(出発地または目的地)として選択される候補関心地点の確率(例えば、朝、夕方、または定義された期間中/時間中などに選択される候補関心地点の確率)に基づいて決定される。距離については、ユーザーの位置と候補関心地点との間の距離に基づいて、個々のスコアが決定される。
【0059】
通信サーバ装置202eは、各候補データフィールド242a、242b、242c、242nについて、(少なくとも2つの基準について決定された)個々のスコアに基づいて、対応する候補関心地点についての結果スコアを生成し、結果スコアを示すデータを処理し、ユーザー通信装置による受信のために、結果スコアを示すデータの処理の結果に従って、ユーザー通信装置を介して、複数の候補関心地点を提示するための複数の候補関心地点を示すデータ255eを送信するように構成される。様々な実施形態では、通信サーバ装置202eから送信されるデータ255eについて、複数の関心地点候補は、処理の結果に従って既に順序付けられていてもよい。
【0060】
プロセッサ216eおよびメモリ218eは(ライン217eによって表されるように)互いに結合されてもよく、例えば、物理的に結合されてもよく、および/または電気的に結合されてもよい。プロセッサ216eはプロセッサ116(
図1)の文脈で説明されてもよいし、メモリ218eは、メモリ118(
図1)の文脈で説明されてもよい。
【0061】
ユーザーデータはさらに、ユーザーの固有性(identity)を表す識別子(例えば、ユーザーID)を示す別のデータフィールドを含んでもよい。
【0062】
通信サーバ装置202eは時間(時点)(例えば、現在の時間(時点)または予想された時間(時点)または予定された時間(時点))を示すデータフィールドを含むユーザーデータ(第1および第2のデータフィールドを有する同じユーザーデータであってもよい)を受信してもよい。
【0063】
非限定的な例として、リクエストされた位置は8文字のストリングを有するフルネームによって表され、または記述されてもよく、入力された情報は名前の一部(例えば、(単に)フル8文字の最初の5文字、フルネーム(すなわち、8文字)、またはリクエストされた位置を表す頭字語を含んでもよい。
【0064】
y≧2(すなわち、2以上)である任意の数yの候補データフィールドが存在し得ることを理解されたい。
【0065】
結果スコアを示すデータを処理するために、通信サーバ装置202eは、結果スコアを示すデータに基づいて、1つ以上のデータレコード240において、複数の候補関心地点の結果スコアに従った複数の候補関心地点の順序を示すランキングデータ(例えば、結果スコアの降順)を生成し、データを送信するために、通信サーバ装置202eは、ランキングデータに従った順序で、ユーザー通信装置を介して、複数の候補関心地点の提示のための複数の候補関心地点を示すデータ255eを送信するように構成され得る。様々な実施形態では、通信サーバ装置202eから送信されるデータ255eについて、複数の関心地点候補は、ランキングデータに従って既に順序付けられていてもよい。
【0066】
結果スコアを示すデータを処理するために、通信サーバ装置202eは、結果スコアを示すデータに基づいて、複数の候補関心地点の各候補関心地点について、結果スコアを、リクエストされた位置に対する候補関心地点の一致関連性を示す閾値と比較するように構成されてもよく、データを送信するために、通信サーバ装置202eは、結果スコアが閾値以上であると判定された候補関心地点を示すデータ255eを送信するように構成されてもよい。
【0067】
結果スコアを生成するために、通信サーバ装置202eは、個々のスコアの加重和によって結果スコアを生成するように構成されてもよい。
【0068】
様々な実施形態では、少なくとも2つの基準が領域を含んでもよく、第1の地域および第2の地域が異なる国にあることを示すと判定された、地域に関する個々のスコアに応じて、通信サーバ機器202eは候補関心地点を除外する(または無視する)ようにさらに構成することができる。
【0069】
それぞれの基準データフィールド(例えば、244a、246a、244c、246c)を生成するために、通信サーバ機器202eは、それぞれの候補データフィールド242a、242b、242c~242nについて、キーワード、領域、人気度、タイミング、および距離のうちの少なくとも3つの基準のためにそれぞれの基準データフィールドを生成するように構成されてもよい。
【0070】
それぞれの基準データフィールド(例えば、244a、246a、244c、246c)を生成するために、通信サーバ機器202eは、それぞれの候補データフィールド242a、242b、242c~242nについて、キーワード、領域、人気度、タイミング、および距離の少なくとも4つの基準のためにそれぞれの基準データフィールドを生成するように構成されてもよい。
【0071】
様々な実施形態では、それぞれの基準データフィールド(例えば、244a、246a、244c、246c)を生成するために、情報が出発地としてリクエストされた位置を少なくとも部分的に記述していることに応じて、通信サーバ機器202eは、それぞれの候補データフィールド242a、242b、242c~242nについて、キーワード、領域、人気度、タイミング、および距離のすべての基準のためにそれぞれの基準データフィールドを生成するように構成されてもよい。
【0072】
図2Gは、通信サーバ装置のプロセッサの制御下で、輸送関連サービスの1つ以上の関心地点をユーザーに推奨するために、通信サーバ装置において実行される方法を示すフローチャート270である。
【0073】
ユーザーの位置を示す第1のデータフィールドと、ユーザーによって入力された情報を示す入力データを有する第2のデータフィールドと、を含むユーザーデータを受信することに応答して、272において、1つ以上のデータレコードが入力データに基づいて生成され、1つ以上のデータレコードは、対応する複数の候補関心地点のデータを有する複数の候補データフィールドを含む。274において、複数の候補データフィールドの候補データフィールドごとに、キーワード、領域、人気度、タイミング、距離の少なくとも2つの基準について、それぞれの基準データフィールドが、1つ以上のデータレコード内に生成される。276において、それぞれの基準データフィールドのそれぞれの基準データフィールドにおいて、対応する基準に関連付けられた個々のスコアを示すデータが候補関心地点について生成される。ここで、キーワードについて、個々のスコアは、情報と候補関心地点の名前を記述する1つ以上の単語との間の類似性に基づいて決定される。領域について、個々のスコアは、人気度について、ユーザーの位置を含む第1の地域と、候補関心地点を含む第2の地域と、の間の近接性に基づいて決定され、1つ以上の履歴データレコードにおける輸送関連サービスに対応する履歴データに基づいて決定され、個人スコアは1つ以上の履歴データレコードにおける輸送関連サービスに対応する履歴データに基づいて決定される。タイミングについて、候補関心地点が履歴輸送関連サービスについてリクエストされた位置として履歴的に選択される時間の数に基づいて決定され、個人スコアはユーザーに関連付けられている。候補関心地点は、定義された時間にリクエストされた位置としてユーザーによって選択される確率に基づいて決定され、その距離について、個々のスコアはユーザーの位置と候補関心地点との間の距離に基づいて決定される。278において、各候補データフィールドについて、個々のスコアに基づいて、対応する候補関心地点について結果スコアが生成される。280において、得られたスコアを示すデータが処理される。282において、ユーザー通信装置による受信のために、結果スコアを示すデータの処理の結果に従って、ユーザー通信装置を介して、複数の候補関心地点を提示するために、複数の候補関心地点を示すデータが送信される。様々な実施形態では、送信されるべき複数の候補関心地点を示すデータについて、複数の候補関心地点は処理の結果に従って既に順序付けられていてもよい。
【0074】
様々な実施形態では、280において、結果スコアを示すデータに基づいて、1つ以上のデータレコードにおいて、複数の候補関心地点の結果スコアに従って複数の候補関心地点の順序を示すランキングデータを生成することができ、282において、複数の候補関心地点を示すデータを、ユーザー通信装置を介して、ランキングデータに従って順序付けて、複数の候補関心地点の提示のために送信することができる。様々な実施形態では、送信されるべき複数の候補関心地点を示すデータについて、複数の候補関心地点はランキングデータに従って既に順序付けられていてもよい。
【0075】
様々な実施形態では、280において、結果スコアを示すデータに基づいて、複数の候補関心地点の各候補関心地点について、結果スコアを、リクエストされた位置に対する候補関心地点の一致関連性を示す閾値と比較することができ、282において、閾値以上であると判定された結果スコアを有する候補関心地点を示すデータを送信することができる。
【0076】
様々な実施形態では、278において、得られたスコアは個々のスコアの加重和によって生成されてもよい。
【0077】
様々な実施形態では少なくとも2つの基準が領域を含んでもよく、第1の地域および第2の地域が異なる国にあることを示すと判定された、地域に関する個々のスコアに応じて、本方法は、候補関心地点を除外することをさらに含むことができる。
【0078】
様々な実施形態では、274において、それぞれの候補データフィールドについて、キーワード、領域、人気度、タイミング、および距離のうちの少なくとも3つの基準について、それぞれの基準データフィールドを生成することができる。
【0079】
様々な実施形態では、274において、それぞれの候補データフィールドについて、キーワード、領域、人気度、タイミング、および距離のうちの少なくとも4つの基準について、それぞれの基準データフィールドを生成することができる。
【0080】
様々な実施形態では、274において、それぞれの候補データフィールドについて、リクエストされた位置を出発地として少なくとも部分的に記述する情報に応じて、それぞれの基準データフィールドを、キーワード、領域、人気度、タイミング、および距離のすべての基準について生成することができる。
【0081】
様々な実施形態は、通信サーバ装置(例えば、202e、
図2E)と、少なくとも1つのユーザー通信装置と、通信サーバ装置および少なくとも1つのユーザー通信装置が互いに通信を確立するように動作可能な通信ネットワーク機器と、を有し、ユーザーに輸送関連サービスの1つ以上の関心地点を推奨する通信システムをさらに提供することができ、少なくとも1つのユーザー通信装置は第1のプロセッサおよび第1のメモリを含み、少なくとも1つのユーザー通信装置は第1のプロセッサの制御下で、第1のメモリ内の第1の命令を実行して、処理のために通信サーバ装置によって受信されるために、ユーザーの位置を示す第1のデータフィールドと、ユーザーによって入力された情報(輸送関連サービスの出発地または目的地として、ユーザーによってリクエストされた位置を少なくとも部分的に記述)を示す入力データを有する第2のデータフィールドとを含むユーザーデータを送信するように構成され、通信サーバ装置は第2のプロセッサおよび第2のメモリを含み、通信サーバ装置は、第2のプロセッサの制御下で、第2のメモリ内の第2の命令を実行するように構成され、前記少なくとも1つのユーザー通信装置によって送信されたユーザーデータを示すデータを受信することに応答して、入力データに基づいて、対応する複数の候補関心地点についてのデータを有する複数の候補データフィールドを含む1つ以上のデータレコードを生成し、1つ以上のデータレコード内で、複数の候補データフィールドの各候補データフィールドについて、キーワード、領域、人気度、タイミング、および距離のうち少なくとも2つの基準についてのそれぞれの基準データフィールドを生成し、それぞれの基準データフィールドの各基準データフィールド内で、候補関心地点についての対応する基準に関連する個々のスコアを示すデータを生成し、キーワードについて、情報と候補関心地点の名前を記述する1つ以上の単語との間の類似性に基づいて個々のスコアが決定され、領域について、ユーザーの位置を含む第1の地域と、人気度を含む第2の地域との間の近接性に基づいて個人スコアが決定され、人気度について、1つ以上の履歴データレコード内の輸送関連サービスのリクエストされた位置として履歴的に選択される時間の数に基づいて個人スコアが決定され、タイミングについて、1つ以上の履歴データレコード内の輸送関連サービスに対応する履歴データに基づいて、履歴的に選択され、履歴データはユーザーに関連付けられ、個人スコアは指定された時間にリクエストされた位置としてユーザーによって選択される候補関心地点の確率に基づいて個人スコアが決定され、距離について、ユーザーの位置と候補関心地点との間の距離に基づいて個人スコアが決定され、各候補データフィールドについて、対応する候補関心地点についての結果スコアを生成し、個々のスコアに基づいて関心対象を処理し、結果スコアを示すデータを処理し、結果スコアを示すデータの処理結果に従って、ユーザー通信装置による受信のために、複数の候補関心地点の提示のための複数の候補関心地点を示すデータを、ユーザー通信装置を介して送信する。
【0082】
なお、通信サーバ装置202eの文脈における記述、フローチャート270の文脈で説明されている方法、および対応する前述の通信システムは、互いに適用可能であることを理解すべきである。
【0083】
通信サーバ装置202eの文脈で上述した技術、フローチャート270の文脈で説明した方法、および上述した対応する通信システムは以下にさらに説明するアクション/シナリオ「検索(Search)」に対応することができ、さらに、これらの技術はシナリオ「提案」の後に、例えば、シナリオ「提案」から得られた結果が輸送関連サービスのリクエストまたは予約を行うユーザーにとって期待されるものではないかまたは満足のいくものではない場合、順次実行することができる。
【0084】
図2Hは輸送関連サービスの1つ以上の関心地点をユーザーに推奨するための通信サーバデバイス202hを示す概略ブロック図であり、通信サーバデバイス202hは通信サーバ装置202aとして構成され、さらに、通信サーバ装置202cまたは通信サーバ装置202eのうちの少なくとも1つとして構成される。
【0085】
なお、通信サーバ装置202hは、通信サーバ装置202aとして構成されてもよく、その後(順次)、通信サーバ装置202cとしてさらに構成されてもよい。なお、通信サーバ装置202hは、その後(順次)、通信サーバ装置202eとしてさらに構成されてもよい。通信サーバデバイス202hは、その後(順次)、ユーザーの位置を含むマップを表すデータを検索し、ユーザーのユーザー通信装置による受信のために、マップ上の(単一の)関心地点の決定のために(例えば、ユーザーの位置に基づいて)、輸送関連サービスの推奨される出発地(またはピックアップ位置)として、ユーザー通信装置を介してユーザーにマップを提示するためのマップを表すデータを送信するようにさらに(連続的に)構成され得る。
【0086】
図2Iは通信サーバ装置のプロセッサの制御下で、ユーザーに輸送関連サービスの1つ以上の関心地点を推奨するために、通信サーバ装置において実行される方法を示すフローチャート290を示す。292において、フローチャート250の文脈で本明細書に記載された方法が実行される。294では、フローチャート260の文脈で本明細書に記載される方法またはフローチャート270の文脈で本明細書に記載される方法のうちの少なくとも1つが実行される。
【0087】
様々な実施形態では、フローチャート250の文脈で本明細書に記載された方法を実行することができ、その後、フローチャート260の文脈で本明細書に記載された方法を実行することができる。その後、フローチャート270の文脈で本明細書に記載される方法が実行されてもよい。その後、ユーザーの位置を含むマップを表すデータを検索することができ、マップを表すデータを、ユーザーのユーザー通信装置による受信のために送信して、マップ上の関心地点を輸送関連サービスの推奨出発地として決定するために、ユーザー通信装置を介してマップをユーザーに提示することができる。
【0088】
なお、様々な実施形態では、通信サーバ装置(例えば、202h、
図2H)と、プロセッサおよびメモリを含む少なくとも1つのユーザー通信装置と、通信サーバ装置および少なくとも1つのユーザー通信装置がそれを介して互いに通信を確立するために動作可能な通信ネットワーク機器と、を有し、輸送関連サービスのための1つ以上の関心地点をユーザーに推奨するための通信システムをさらに提供することができ、通信サーバ装置が通信サーバ装置202aとして構成され、少なくとも1つのユーザー通信装置が、前記プロセッサの制御下で、メモリ内の命令を実行するように構成され、当該少なくとも1つのユーザー通信装置は、ユーザーの所在地を示すデータフィールドを含むユーザーデータを、処理のために通信サーバ装置によって受信されるために送信する命令をメモリ内で実行し、通信サーバ装置は、前記少なくとも1つのユーザー通信装置が、前記プロセッサの制御下で、処理のために通信サーバ装置によって受信されるため、位置を示す第1のデータフィールドと、目的地に対応するユーザーリクエストを示す第2のデータフィールドと、を含むユーザーデータを送信する命令をメモリ内で実行する通信サーバ装置202c、または、前記少なくとも1つのユーザー通信装置が、前記プロセッサの制御下で、処理のために通信サーバ装置によって受信されるため、ユーザーの所在地を示す第1のデータフィールドと、ユーザーが入力した情報を示す入力データフィールドを有する第2のデータフィールドと、を含むユーザーデータを送信する命令をメモリ内で実行する通信サーバ通信装置202eの少なくとも1つとして構成され、前記情報は、輸送関連サービスの出発地または目的地としてユーザーによってリクエストされる所在地の少なくとも一部を記述した情報である。
【0089】
また、フローチャート250、260、270、290の文脈で本明細書に記載される方法のうちの少なくとも1つを実施するための命令を有するコンピュータプログラム製品が提供されてもよい。
【0090】
また、フローチャート250、260、270、290の文脈で本明細書に記載される方法のうちの少なくとも1つを実施するための命令を有するコンピュータプログラムが提供されてもよい。
【0091】
さらに、命令を記憶する非一時的記憶媒体を提供することができ、命令はプロセッサによって実行されると、プロセッサに、フローチャート250、260、270、290の文脈で本明細書において説明する方法のうちの少なくとも1つを実行させる。
【0092】
様々な実施形態の文脈では、履歴データが1つ以上の(履歴)データレコード((historical) data record)に格納されてもよい。
【0093】
様々な実施形態の文脈では、履歴データが1つ以上のデータベースに格納されてもよい。
【0094】
様々な実施形態の文脈では、履歴データが所定の期間の履歴データ(記憶された)、例えば、過去30日間の履歴データであってもよい。
【0095】
様々な実施形態の文脈では、ユーザー通信装置は、スマートフォン、タブレット、携帯/ポータブル通信装置、デスクトップまたはラップトップコンピュータ、端末コンピュータ等を含むことができるが、これらに限定されない。
【0096】
様々な実施形態の文脈では、輸送関連サービスは、乗り物輸送サービス(ride-hailing transportation service)を含んでもよく、または乗り物輸送サービスであってもよい。これには、例えば、カー・ヘイリング(car-hailing)、および(モータ)バイク・ヘイリング・サービス((motor)bike-hailing service)が含まれる。
【0097】
様々な実施形態の文脈では、輸送関連サービスが1つ以上の自律走行車(autonomous vehicle)を含むことができる。
【0098】
様々な実施形態の文脈では、「App」または「アプリケーション」がユーザー通信装置上にインストールされてもよく、装置上で実行するためのプロセッサ実行可能命令を含んでもよい。非限定的な例として、輸送関連サービスの予約は、Appを介して実行されてもよい。
【0099】
ここで、様々な実施形態または技術をさらに詳細に説明する。様々な実施形態は、App側(フロントエンド)としてのクライアント側と、サーバ側(バックエンド)とを含むことができる。
【0100】
本明細書で開示される技術の輸送サービスでは、ユーザーのピックアップおよびドロップオフを要求して、運転者とのマッチング、ルートの計画、料金の計算を行うことができる。POIサービスは、ユーザーの位置に従ってピックアップおよびドロップオフを推奨する役割を果たす。POIサービスの品質の1つの測定は、ピックアップおよびドロップオフに適切なPOIを見つけるために顧客(ユーザー)側からどれだけの労力を節約することができるかである。
【0101】
様々な実施形態のPOIサービスは、
図3A~3Dに示すように、予約フローに4つの主要なアクションまたはシナリオを含むことができる。これらのシナリオには、「予測(Predict)」、「推奨(Suggest)」、「検索(Search)」、および「リバースジオ(ReverseGeo)」が含まれる。
【0102】
「予測」シナリオに関する
図3Aを参照すると、ユーザーまたは乗客(PAX)が対応するAppを開くと、AppはPOI予測エンドポイントを呼び出して、Paxの履歴データおよび現在位置に基づいて予測ピックアップPOIおよび予測ドロップオフPOIを取得する。
図3Aでは、非限定的な例として、予測ピックアップPOI270が「セティアブディレジデンス(Setiabudi Residence)」として示されている。
【0103】
様々な実施形態では、予測アクションがAppを開く時点で実行される。「予測」アクションは常に実行され、Appを開いたとき、または予約注文を行うときに実行される最初のアクションである。
【0104】
「推奨」シナリオに関する
図3Bを参照すると、例えば、予測結果が期待通りでない場合、Paxは入力ボックス271をクリックすることができ、AppはPOI推奨エンドポイント(Suggest endpoint)を呼び出して、Pax履歴データ、現在位置、および都市人気度POIに基づいてPOIの推奨リスト272を取得する。
【0105】
「検索」シナリオに関する
図3Cを参照すると、例えば、提案された結果が期待通りでない場合、Paxは例えば、1つ以上のキーワード273をタイプ(typing)することによって情報を入力することができ、アプリは、POI検索エンドポイント(Search endpoint)を呼び出して、キーワードに基づいて、POIの一致リスト274を取得する。
【0106】
「リバースジオ(ReverseGeo)」シナリオに関する
図3Dを参照すると、例えば、提案された/検索結果が期待通りでない場合、Paxはマップ275に進み、PIN276を移動させて、POIを見つけるためにPOIリバースジオエンドポイント(ReverseGeo endpoint)を呼び出すことができる。
【0107】
それぞれのPOI予測、提案、検索、およびリバースジオエンドポイントはサーバ側(例えば、通信サーバ装置)に配置されてもよいし、言い換えると、予測、提案、検索、およびリバースジオシナリオに関連する処理がサーバ側で実行され、その後、結果がApp側のユーザーに返されてもよい。App側は処理の目的のために、Pax ID、緯度、経度などのうちの1つ以上を含む情報を提供することができる。
【0108】
要約すると、上記のアクションまたはシナリオは、ピックアップおよび/またはドロップオフのためのユーザーの所望のPOIを発見するために、ユーザーに順に提供または示されてもよい。ユーザーが画面をクリックする必要がある回数が少ないほど、POIが予約注文を生成するのが簡単になる。輸送サービス全体のための予約注文を生成することの一部として、POIサービスは高い可用性および安定性を必要とし、これは、システムに多くの課題を発生し得る。第1に、1つの課題は応答時間に関してサービス全体を安定に保ちながら、一日のピーク時に急増する同時多発的なリクエストをどのように処理するか、である。一方で、これは適切な数のサーバ(例えば、クラウドサーバ)が1日あたりの様々な時間帯に対して構成されるように、マシンを自動的にスケーリングする必要がある。一方、各同時リクエストのリソースは高可用性を保証するために、一部の障害がサービス全体に影響しないよう、適切にリソースが割り当てられた独立したスレッド(thread)で管理する必要がある。第2に、別の課題は、POIサービスの目標が、ユーザーが所望のピックアップおよび/またはドロップオフを得るために必要とする労力を節約することであるため、顧客が望むものをより正確に満たすことができるより良い推奨性能を提供するために、履歴データの量をどのように利用するかである。
【0109】
これらの課題に対処し、POIサービスを高度に利用可能かつ安定に保つために、以下で説明するように、いくつかの技術を展開することができる。
【0110】
エラスティックサーチ(Elasticsearch)は、POIデータを保存し、POIクエリを実行するために使用されている。Rtree、k-dツリー、または様々なクエリを可能にするための移動オブジェクトに特有のものなど、大量のジオメトリデータ(geometry data)を管理するための様々なインデックス(index)が提案されている。広く使用されているもう1つのインデックス方法は、地理的位置を短い文字と数字の文字列とにエンコードし、近くの場所が同様のプレフィックス(prefix)を共有するようにするジオハッシュ(Geohash)である。様々な実施形態では、内部プロバイダがPOIデータを記憶するためにエラスティックサーチを利用する。ユーザー位置のリクエスト(例えば緯度と経度で記述される)が到着すると、エラスティックサーチはジオハッシュを利用して、次のステップ処理のために与えられた位置に近い上位のPOIを返す。これにより、1台のマシンから、ペタバイトのデータを有する数百のサーバへ水平方向に拡張できる場合がある。数十億のPOIデータを用いて応答時間を安定に保つために、主要な検索式の時間コストを分析し、特定の最適化のためにボトルネックを決定することができる。
【0111】
Redisは、データベース、キャッシュ、メッセージブローカー、およびキューとして使用するための高速なオープンソースのメモリ内データストアである。Redisは例えば、通信サーバ装置において、サーバ側に配置されてもよい。様々な実施形態では、アマゾンエラスティックキャッシュ(Amazon Elasticache)をRedisに適合させて、POIデータをキャッシュし、様々なシナリオ/アプリケーション要件に応じて様々な方法でキャッシュキーを生成することができる。これは、背後にあるデータベースが処理できるものに対するクエリ/秒(QPS)の値を制御するのに役立つ場合がある。Redisは通常、関連するデータベース(mySQL、dynamoDB、エラスティックサーチなど)の前に配置されていることを理解しておく必要がある。一般的に、サーバ側(バックエンド)のロジックは、関連するデータベースから応答を取得するときにリクエスト結果をRedisに書き込む場合がある。次回同じリクエストが発生したときに、代わりにRedisから直接返信を取得できる。
【0112】
バックエンドアーキテクチャ(backend architecture)全体は、Golangに実装されている。その並列処理はゴールーチン(goroutine)およびチャネルに基づくので、各httpリクエストは、独立したゴールーチンに割り当てて処理することができる。それらの一部がパニック(panic)になったとしても、プロセス全体が影響を受けることはない。ゴールーチンは、非常に軽量で、開始および停止が容易であり、これにより、Golangは様々な実施形態のバックエンド言語としての安定性に関して他の言語よりも性能が優れている。
【0113】
履歴データの量を分析した後、異なるシナリオ/アプリケーションにおいて妥当なPOIスコアを提供し得るランキングモデルが導出される。また、「コールドスタート(Cold start)」の課題は、新規ユーザーに顧客体験を提供または保証するためのフォールバック(fallback)にも対処されてきた。
【0114】
本明細書で開示される技術のためのGolangベースのPOIサービスについて、オンラインPOI推奨および発見をサポートするためのアーキテクチャ、異なるシナリオにおけるPOI推奨、およびサービスのいくつかの結果を含めて、以下で詳細に説明する。
【0115】
マルチコアプロセッサが既に利用可能になった2009年にリリースされた言語として、「Go」は並行処理を前提に作られている。javaのヒープ(heap)から約1MBのメモリを消費するスレッドの代わりに、Goには約2KBのメモリを消費するゴールーチンがあり、数百万のゴールーチンをスピン(spin)させることができる。さらに、ルーチンはそれらの間で安全に通信し、ミューテックスロッキング(mutex locking)の使用を回避するためのチャネルを備える。GoはC/C++のようなコンパイル型言語である。また、ガベージコレクション(garbage collection)を使用して、javaなどのオブジェクトの割り当てと削除を行う。これにより、javaVMステップのバイトコード解釈が回避され、C/C++のような言語での変数の解放と割り当てる手間が省けるため、ハードウェアでの実行速度が保証される可能性がある。Goの構文は非常に安定している。これにより、Goで書かれたコードを容易に維持することができる。Goにはクラスも継承も存在しない。開発者はコードを容易に理解することができ、異なるコード部分は相互に深く影響しない。さらに、開発者は同じコードベースで共同作業を行うことができる。
【0116】
マイクロサービスは、疎結合サービスの集合としてアプリケーションを構造化するソフトウェア開発技術である。マイクロサービスアーキテクチャ(micro-service architecture)では、サービスはきめ細かく、プロトコルは軽量である。POIサービスは、様々な実施形態におけるシステム全体における1つのマイクロサーバである。拡大して見てみると、POIのようなマイクロサービスは、例えば、httpサーバ層472、ロジック層474、およびデータベース層476を有する層ベースのウェブサービス構造体470を示す
図4に表されているように、多層サービス構造体を利用する。層472のhttpサーバは、負荷バランス方式(load balance way)でユーザー側から論理層474にhttpリクエストを送信する役割を果たす。論理層474は、httpリクエストに従って論理を処理する役割を果たす。論理処理に関連するすべてのデータは、データベース層476に格納されてもよい。論理層474がコンピューティングリソース(computing resource)を使い果たすと、非限定的な例として、Amazon(登録商標)のASG(Auto Scaling Groups)などの水平スケーリングを広く使用することができる。論理層474およびデータ層(すなわち、データベース層476)は完全に分離されているので、特定の論理層インスタンスの障害がユーザーデータの損傷または欠落につながる可能性は低い。様々な実施形態のPOIサービスは、このようなサービスアーキテクチャに従う。
【0117】
分散システムの場合、そのCAP(一貫性、可用性、およびパーティション耐性(tolerance))が同時に満たされない可能性があるので、ウェブサービスはカスケード障害(cascading failure)を停止し、障害が避けられない複雑な分散システムにおける復元力を有効にする必要がある。POIサービスの場合、非限定的な例として、ヒストリックス(Hystrix)を使用して、回路ブレーカー(circuit breaker)を設定することによって、応答されるサービスの応答時間を有効化または保証することができる。
【0118】
ロジック層はデータ層からのユーザーデータを頻繁に要求するため、キャッシュは、各リクエストの応答時間を短縮するだけでなく、バーストワークロード(burst workload)によるデータベースのダウンを防ぐために広く使用されてもよい。使用する方法は2つある。1つはデータベース層の前にキャッシュ層を設定する方法で、もう1つは各ロジックインスタンス(logic instance)のメモリに個別のキャッシュを設定する方法である。様々な実施形態のPOIサービスのために、Redisは、データベース層の前にキャッシュとして用いられ、異なるシナリオ/アプリケーション要件に従ってキャッシュキーおよび有効期限を設定する。例えば、Amazon Elasticache for Redisを使用して、キャッシュモジュールを一から構築するのに比べて、弾性的なスケーリングを提供することができ、ダウンタイムサービスがほとんどないか、または最小限である、サービスの安定性の点で役立つ。
【0119】
様々な実施形態のオンラインPOI推奨におけるPOIサービスアーキテクチャおよびキャッシュの使用について、以下の非限定的な例によって説明する。
【0120】
図5は、POIサービスのためのシステム570の概要を示す概略図を示す。POIシステム570は4つの構成要素に分割することができる。第1に、API571aはミドルウェア層571bからの結果を有する4つのPOIユーザーシナリオ(例えば、予測、提案、検索、およびリバースジオ)をサポートするための層である。第2に、ディスパッチャ(Dispatcher)571cは、httpリクエストをプロバイダ571dに発送(dispatche)する。第3に、プロバイダ(Providers)571dはPOIプロバイダ(例えば、内部プロバイダ(Internal Providers)572aおよび/または外部プロバイダ(External Providers)572b)からPOIを取得し、それらをミドルウェア層(Middle wares)571bに返す層である。第4に、ミドルウェア571bは、プロバイダ層571dから返されたPOIを処理する層である。API層571a、ミドルウェア層571b、ディスパッチャ571cおよびプロバイダ層571dはサーバ側(例えば、通信サーバ装置で)に位置することができる。API層571a、ミドルウェア層571b、およびプロバイダ層571dについては、以下でさらに説明する。
【0121】
API571a:
予測、提案、検索、およびリバースジオの4つのエンドポイントがある。予測および提案は、Pax履歴データに基づいている。これはPax30日間の履歴データに基づいてプレディクタDB(Predictor DB)という名前のMySQL DBに保存される場合がある。ユーザーまたは乗客が対応するAppを開くと、AppはPOI予測エンドポイントを呼び出して、Pax(ユーザー)履歴データおよびユーザーの現在位置に基づいて、予測されたピックアップPOIおよび/または予測されたドロップオフPOIを得る。予測結果が期待通りでない場合、PaxはApp内の入力ボックスをクリックし、AppはPOI提案エンドポイントを呼び出して、履歴データ、ユーザーの現在位置、および都市の人気度POI(すなわち、ピックアップPOIおよび/またはドロップオフPOIに対応する都市内の人気度POI)に基づいて、POIの提案リストを取得する。提案の結果が期待通りでない場合、Paxはキーワードを入力してPOI検索エンドポイントを呼び出し、キーワードに基づいて一致するPOIのリストを取得する。提案結果が期待通りでない場合、Paxは、PINを移動してPOIを見つけるためにPOIリバースジオエンドポイント(POI ReverseGeo endpoint)を呼び出すマップに進むことができる。様々な実施形態の文脈では、用語「エンドポイント(endpoint)」は、コードで呼び出され得るモジュールを意味するか、または参照し得る。そのようなモジュールは、命令のセットを含むことができる。
【0122】
ミドルウェア571b:
受信したPOIの位置ID(識別子または識別)を異なるプロバイダ571dからユニークな形式の1つに正規化する、入力POIの不良POIをブラックリストに登録する、入力POIの重複POIを削除する、いくつかのフィールドに基づいて入力POIをランク付けし、提案エンドポイントと検索エンドポイントの両方の結果を取得する(予測およびリバースジオは1つのPOIのみを返すため、ランク付けを行う必要がない)、などの機能を持つミドルウェアがいくつかある。
【0123】
プロバイダ571d:
Pax位置に基づいて、対応する都市に関連するデータを取得することができ、その関連する都市構成を使用することができる。都市によって、使用するプロバイダを決定するための設定が異なる場合がある。通常、プロバイダには2つまたは3つのグループがあってもよく、同じグループ内で、検索リクエストがこれらのプロバイダに並列に送信されてもよい。同じグループ(例えば、第1のグループ)内のすべてのプロバイダに障害が発生した場合、または応答がない場合、プロバイダの第2(または後続の)グループにリクエストを送信する。非限定的な例として、構成に応じて、内部プロバイダ572aおよびGoogle(登録商標)(外部プロバイダ572b)は第1のグループとして設定され、Foursquare(登録商標)(外部プロバイダ572b)は第2のグループとして設定され、残りのプロバイダは第3のグループとして設定されてもよい。
【0124】
オンラインPOI推奨のキャッシュに関しては
図5にも見られるように、キャッシュは3つの層、すなわちAPI層571a、ミドルウェア層571b、およびプロバイダ層571dに配置することができる。キャッシュ設定については、以下でさらに説明する。
【0125】
簡単に述べると、API層571aはリクエストを送信し、ディスパッチャ層571cはリクエストをプロバイダ571dに送信する。プロバイダ571dが結果を送り返す。ミドルウェア571bは、結果を処理して、所望のものまたは必要なものを取得する。最後に、結果がユーザーに返される。キャッシュおよびデータベースを使用して、POI推奨のために過去のリクエストおよび結果を記憶することができる。
【0126】
API層571a:
httpリクエストがAPI層571aに入ると(例えば、サーバ573から)、最初のキャッシュ層は、url全体をキャッシュキーとして受け取るhttpキャッシュ574であり、キャッシュの存続時間(TTL)は、例えば、30秒に設定することができる。このキャッシュ設定は、検索シナリオ(
図3Cおよび対応する説明を参照)のために、同じ場所にいる近くのユーザーの重複したトライアルに使用することができる。提案(
図3Bおよび対応する説明を参照)および検索の両方は、距離キャッシュ(distance cache)577を使用して、過去のリクエストにおける応答結果を格納する。提案は(例えば、緯度(lat)、経度(lng)の形式で)Pax ID(またはユーザーID)および地域(または場所)をキーとして使用する。検索では、入力されたキーワードと場所(lat/lng)がキーとして使用される。キャッシュ577の生存時間(time-to-live;TTL)は例えば、1日に設定することができる。これにより、同じ領域内のユーザーが自分のレスポンスを共有できるようになる。「生存時間(time-to-live)」という用語は、キャッシュ内のデータの有効時間を意味する場合がある。無効なデータは使用できなくなる。
【0127】
プレディクタキャッシュ(Predictor cache)576という名前の別のキャッシュがあり、これは、各リクエストのピックアップまたはドロップオフをプレディクタDB(すなわち、データベース記憶装置)578に記憶することができる。過去30日間の履歴データは、以下でさらに説明するように、予測および推測のためにプレディクタDB578に格納することができる。プレディクタDB578へのリクエストが予測子キャッシュ576によって応答できる場合、背後にあるデータベース(すなわちプレディクタDB578)を照会する必要はない。
【0128】
httpキャッシュ574と、プロジェクタキャッシュ576および距離キャッシュ577の間には、サーバのグループが存在する場合がある(例えば、2つのサーバが575a、575bとして表現される)。
【0129】
プレディクタDB578はマイクロサーバのデータベース層(例えば、
図4のデータベース層476)に配置することができる。一般に、論理層474は、最初にプレディクタキャッシュ層576を訪れる。ミスが発生すると、プレディクタDB578が訪問またはアクセスされる。
【0130】
プレディクタDB578およびプレディクタキャッシュ576は、サーバ側、例えば通信サーバ装置に配置される。
【0131】
プロバイダ層571d:
リクエストがプロバイダ層571dに入ると、まず、各プロバイダのキャッシュにアクセスして応答キャッシュ583b(例えば、内部プロバイダキャッシュ581、Googleキャッシュ583a、Foursquareキャッシュ583c、および「その他」)を取得しようとする(ここで「その他」は、1つ以上の特定プロバイダを指す場合がある)。外部プロバイダ(例えば、Google583a、Foursquare583c、その他583b)のいずれか1つまたはすべてのTTLは、何日もかかる場合がある。内部プロバイダ572aからのデータを格納する内部プロバイダキャッシュ581のTTLは、10分とすることができる。これは、内部プロバイダ572a内の(例えば、発見されたPOIの追加および/または更新に関する)POIデータがより頻繁に更新され、新しいPOIデータが、より短いTTLでより迅速に有効になり得るためである可能性がある。TTLタイミングは、更新の頻度に応じて可変であってもよいことを理解されたい。また、
図5には、内部プロバイダ572aに対応するデータベース記憶装置(Data-base)582と、外部プロバイダGoogle、「その他」、およびFoursquareの対応するクラウドサーバ584a、584b、584cとが示されている。
【0132】
ミドルウェア層571b:
プロバイダ571dの反応がミドルウェア571bに入り、返されたPOIを処理する際に、ミドルウェアの機能を処理するのに役立つ様々なキャッシュが存在する。例えば、ユニバーサルキャッシュ(universal cache)(詳細キャッシュ(detailed cache)579cなど)はエラスティックサーチに保存され、POI詳細キャッシュ579cにはPOI詳細説明(POI名、カテゴリ、場所など)が含まれるため、TTLは1日になる場合がある。POIがブラックリストされているか否かに関するPOIステータスを記憶するために1日に設定されたTTLを有するメタキャッシュ(meta cache)579aがあってもよい。さらに、ランク579dおよびエントランス579bのためのそれぞれのキャッシュがあり、リクエストのためのランキングおよびエントランス情報(entrance information)を記憶することができる。一例として、「エントランス(entrance)」は車両に乗ったり降りたりするために、大型ショッピングモールや空港のドアなどの大規模な公共施設の利用可能な場所を示す。これらの場所での正確なピックアップおよびドロップオフに関するエントランス情報は、両方の顧客体験を大幅に改善することができる。
【0133】
図5にはまた、それぞれメタキャッシュ579a、エントランスキャッシュ579b、詳細キャッシュ579cに対応するデータベースストレージ580a,580b、580cが示されている。
【0134】
全体として、サーバは、リクエスト(複数可)を処理することができる。キャッシュには結果が保存され、データベースへのリクエストが増えすぎないようにしてもよい。データベースストレージには、ユーザーデータを保管できる。プロバイダのクラウドサーバは、プロバイダに送信されるリクエストに応答する場合がある。
【0135】
様々な実施形態のオンラインPOI推奨について、以下の非限定的な例によってさらに説明する。
【0136】
様々な実施形態では、移動されたPINに従ってリバースジオがPOIを返す。
【0137】
様々な実施形態では、シナリオ予測、検索、および推奨におけるPOI推奨は履歴データに基づいて実行されてもよい。POIサービスの目標は、ユーザーが所望のピックアップおよび/またはドロップオフを得るために必要とする労力を節約することであるので、予測、検索、および提案は、大量の履歴データを使用して、ユーザーまたは顧客が望むものをより正確に当てることができ、より良好な推奨性能を提供することによって、個別に実行されてもよい。提案および予測の場合、履歴データは、例えば、プレディクタDBなどのデータベースに格納され、データは異なるテーブルに提供され、管理され、候補POIはクエリによって取得することができる。検索の場合、POIランキングの合計スコアとして加重和を計算するために、例えば、名前キーワード、領域、人気度、タイミング、および距離など、いくつかの側面または考慮事項がある。これらの側面は、POI特性をより適切に説明し、ユーザーがターゲットPOIをより容易に見つけるのに役立つ場合がある。既知の技術における位置類似性のみを考慮することと比較すると、様々な実施形態のこの包括的なスコアは、ピックアップおよび/またはドロップオフとして対象POIを検索する際に、ユーザーにより良好な顧客体験を与えることができる。最も可能性の高い地点(例えば、ピックアップポイントを含む)の推奨について以下に説明する。
【0138】
検索
検索シナリオでは、ユーザーは入力ボックスまたは検索ボックスに1つ以上の単語を入力し、サービスがリターンとしてターゲットPOIを提供することを期待する。POIをランキング可能(rankable)にするために、各POIにスコアを割り当てることができ、スコアは、以下の要因または基準のうちの1つ以上によって決定することができる。
【0139】
キーワード:
これは、検索キーワードとPOI名またはPOI名の頭字語との間のスコアを測定する。各POIは、複数の頭字語を有することができる。限定的でない例として、キーワードマッチングスコアSKeywordは、式1に示されるように計算されてもよい。
【0140】
【0141】
ここで、sJはPOI名と検索キーワードのジャカール近似(Jaccard Similarity)であり、sAは、検索キーワードがPOI名または頭字語と完全に一致する場合は1を返し、それ以外の場合は0を返す。
【0142】
領域:
SRegionは、POI領域とPax(またはユーザー)領域間の近接性に基づいてスコアを測定する。SRegionのスコアは、POI領域とPax領域とが同じ場合は1に等しく、それ以外の場合は0に等しくなる(式2を参照)。
【0143】
【0144】
ここで、getRegion(.)は任意の位置(lat/lng)を入力として取り、その場所がある対応する都市を返す関数である。POIとPaxとが異なる国にある場合、POIは結果リストから除外される。したがって、POIはPaxと同じ国にあることが保証される。
【0145】
人気度:
SPopularity(*)は、POIがピックアップ/ドロップオフとして選択された回数に基づいてPOIの人気度をスコア化する。これは、以下のように定義することができる。
【0146】
【0147】
【0148】
ここで、CountPickupは、このPOIがピックアップポイントとして選択された回数、CountDropoffは、ドロップオフとして選択された回数、CountMaxは、結果セットのPOIがピックアップまたはドロップオフとして選択された最大回数である。
【0149】
タイミング:
POIのスコアは、Paxまたはユーザーがある時間帯に与えられたこのPOIにおいてピックアップまたはドロップオフを行う確率に基づいて定義される。例えば、朝方は、住宅エリアのPOIがピックアップポイントである可能性が高く、ドロップオフポイントである可能性が低い。POIのピックアップおよびドロップオフの時間分布はオフラインで事前に計算することができ、したがって、POIがピックアップ点またはドロップオフ点になる確率を自然に導出することができる。詳細スコアは、以下のように定義することができる。
【0150】
【0151】
【0152】
ここで、Distri
*(.)はPOIの時間分布、t
QはPaxのクエリ時間である。非限定的な例として、様々な実施形態では、POIの時間分布はマップ(
図6を参照)によって実施することができ、ここで、キーは時間(0:00から23:00までの時間、1日の対応する24時間を表す;
図6のX軸を参照)であり、値(
図6「頻度」を参照)はPOIが履歴内のピックアップまたはドロップオフポイントとして選択された比率であり、したがって、POIが所与のまたは定義された時間にピックアップまたはドロップオフポイントとして何回選択されたかに関連する。
【0153】
距離:
これは、POIとPaxの位置との間の距離に基づいてスコアを測定する。このファクタは、ピックアップ検索にのみ適用可能である。これは、以下のように定義することができる。
【0154】
【0155】
ここで、距離distは、例えば、km(キロメートル)で測定することができる。
次いで、最終スコアは、以下のように加重和によって計算することができる。
【0156】
【0157】
ここで、加重係数αi は、機械学習アルゴリズム(machine learnt algorithm)によって決定され、Fは上記で識別された一連の因子(set of factor)、すなわち、キーワード、領域、人気度、タイミング、距離である。そして、POIは、例えば、降順に、それぞれのスコアに従ってランク付けされてもよい。おすすめのPOIのみが、ユーザーまたはPaxにプレゼンテーションするためにアプリ画面に一覧表示される。
【0158】
提案
提案シナリオでは、対応するAppの入力ボックスをクリックすることによって、ピックアップおよびドロップオフのためのPOIの提案されたリストがPax(ユーザー)によって取得され得る。ピックアップは通常、Pax位置に近いPOIであり、一方、ドロップオフは通常、Paxが行く必要がある人気度のある場所であり得るので、ピックアップおよびドロップオフは別々に考慮される場合がある。
【0159】
ピックアップ:
ピックアップのために2つのソースを使用することができる。
【0160】
第一に、データベース(例えば、プレディクタDB)を使用することができ、その場合、データベースがPOIの優先傾向(preference)に関するテーブルを管理することによって、30日間の履歴データを保存することができる。これは、Pax IDと、対応する過去のピックアップとを格納する。これにより、過去の履歴ピックアップをPax IDによって照会することができる。
【0161】
第2に、POIサービスは、入力としてPax位置(lat/lng)を受け取り、構成に従って異なるプロバイダ(例えば、
図5のプロバイダ層571dを参照)を呼び出すことによって、距離に従って近くのPOIを返す「nearby」という名前の内部モジュールを有することができる。様々な実施形態では、構成は、サービスがリクエストを行うための異なるプロバイダの優先順位を定義する。例えば、
図5を参照すると、内部プロバイダ572aおよびGoogle(外部プロバイダ572bの一部として)を照会するプロバイダの第1のグループとして設定することができ、満足な結果がない場合、第2のグループ、例えば、(外部プロバイダ572bの一部としての)Foursquareを照会することができる。
【0162】
これらの2つのソースを考慮することによって、Paxの個人的な好みと、Pax位置とPOIとの間の距離と、の両方を考慮することができ、これにより、提案されるピックアップの精度を改善することができる。
【0163】
ドロップオフ:
ドロップオフのために2つのソースを使用することができる。
【0164】
第1に、Pax IDによって最も頻繁に使用されるドロップオフ(MFUドロップオフ)をデータベース(例えば、プレディクタDB)に格納する別のテーブルを使用することができる。これにより、最も頻繁に使用されるドロップオフをPax IDによって照会することができる。
【0165】
第2に、Redisのトップカテゴリを使用することができる。これは、様々な都市において、人気度の高い分類のPOI(例えば、食品、ショップモール、空港など)を格納し、都市IDによって照会することができる。
【0166】
これらの2つのソースを考慮することによって、Paxの個人的な好みと他の人の共通の好みの両方が示唆され、示唆されたドロップオフの精度を改善することができる。
【0167】
予測
予測シナリオでは、予約注文を満たすために、予測ピックアップおよび/または予測ドロップオフを提供することができる。同様に、ピックアップとドロップオフは別々に検討することができる。
【0168】
コールドスタート(Cold start):
古い予約履歴のない新しいPax(ユーザー)の場合、予測は位置(lat/lng)を使用して、コールドスタート問題(cold start problem)に対処または克服するための代替品(フォールバック;fallbackとしてリバースジオ(reverseGeo)を呼び出すことができる。リバースジオは、Paxの位置をマップ上のPINと見なして、Paxに最も近いPOIを見つける。
【0169】
ピックアップ:
いくつかの予約履歴を有するPaxの場合、ピックアップ予測のための2つのソース、例えば、最後のドロップオフファースト(Last Dropoff First;LDF)およびデータベース(例えば、プレディクタDB)内のテーブルが存在する場合がある。データベースに保存されているユーザーの過去のピックアップPOIを使用することができる。これは、Pax IDおよびwifi SSID(サービスセット識別子)を照会して、過去のピックアップPOIを取得することで実行できる。すなわち、過去に出現していたPaxの場所を、予測のピックアップとして推奨することができる。データベース(例えばプレディクタDB)に記録が見つからない場合は、LDFを使用してもよい。LDFは、過去24時間以内のPaxの最後のドロップオフ時間である。プレディクタDBおよびLDFの両方について、ユーザー位置に最も近いPOIが返される。すべてのPOIがある(または閾値)距離から外れている場合、リバースジオに依拠することができる。
【0170】
LDFはPaxの最後のドロップオフを取得するために、プレディクタDBとは異なるデータベース(予約DBなど)にアクセスする別の(マイクロ)サービスから取得される場合がある。予約DBは、MySQLに配置または保存される場合がある。予約DBは、例えば、通信サーバ装置において、サーバ側に配置されてもよい。予約DBは予約情報、例えば、予約コード、タイムスタンプ、乗客ID、ピックアップおよびドロップオフなどのうちの1つ以上を格納することができる。
【0171】
ドロップオフ:
ドロップオフ予測のために、1日の時間帯ごとに各乗客(またはユーザー)のピックアップとドロップオフとを対にするデータベース(例えば、プレディクタDB)内のテーブルを使用することができる。任意のPax IDおよび時間帯が与えられると、ピックアップおよびドロップオフの対は、クエリによって容易に取得され得る。同じピックアップと対になる過去のドロップオフは、Paxのドロップオフ予測として使用されてもよい。すなわち、ドロップオフ予測では、人々が毎日のルーチンに従う可能性が高いと仮定することができる。1日の同じ時間帯に過去の予約で選択されたPaxを同じドロップオフが推奨される場合がある。
【0172】
次に、実稼働環境におけるPOIサービスの性能について説明する。まず、生産環境設定と性能を測定するためのメトリクス(metrics)について説明し、次に、POIサービスのメトリクスによる性能結果について説明する。
【0173】
生産環境設定・計測メトリクス
POIサービスの構成は、Amazon c5.4xlarge EC2インスタンスである。c5.4xlargeインスタンスの場合、Amazonは16個の仮想CPUコアと32Gメモリを提供する。ストレージはEBS専用で、専用EBS帯域幅は3,500Mbpsである。また、ネットワーク性能のために最大10Gbpsの帯域幅が提供される。AmazonのElasticacheは、オンラインPOI推奨を実施するためのキャッシュに使用される。
【0174】
異なるシナリオ/アプリケーションにおけるPOIサービスの安定性を測定するために、リクエストを送信してからレスポンスが返されるまでの期間に相当する往復時間(round trip time;RTT)が示されている。RTTをより適切に説明するために、測定は95パーセンタイルおよび99パーセンタイルに関して行われる。ピーク時と非ピーク時との間のRTTの変動が少ないほど、システムはより安定である。
【0175】
図5を参照すると、システム内のキャッシュの使用により、キャッシュの有効性は、API571a、ミドルウェア571b、およびプロバイダ571d層内のキャッシュヒット率に関して測定される。API層571aについては、予測シナリオで使用されるプレディクタキャッシュ576は、非限定的な例として使用される。ミドルウェア層571bについては、ブラックリストチェック用のメタキャッシュ579aが非限定的な例として使用される。プロバイダ層571fについては、内部プロバイダ572aおよび外部プロバイダ572bの代わりに、内部プロバイダおよびGoogle用のキャッシュ581、583aがそれぞれ示されている。
【0176】
性能結果
POIサービスの性能は、上述の測定メトリクスに従って3つの態様で示され、説明される。まず、1日の全体的な性能を示す。次に、シナリオ予測、提案、検索、およびリバースジオの往復時間(RTT)の性能を示す。最後に、POIサービスにおけるキャッシュの使用法を示す。
【0177】
POIサービスの全体的な性能:
統計に基づいて、POIサービスの1秒あたりのクエリ(QPS)は、1日の間で異なる。午前7:00~午前9:00、午後17:00~午後20:00の時間帯をピーク時間と定義する。ピークQPS値は一般に、午後6:00付近に現れる。QPSは深夜に非常に低くなる。平均QPSは、インスタンスあたり約200である。CPU使用率は、予想通りQPSによって異なる。1日あたりの最大CPU使用率は60%未満に制御される。ゴールーチンに関しては、QPSが多いほど、生成されるゴールーチンが多くなり、CPU使用量が増加することになる。ゴールーチンの数の平均値は、インスタンスあたり約1.2kである。メモリ使用量は、インスタンスあたり約25Gの値で、一日中安定している。
【0178】
様々なシナリオ/アプリケーションにおけるPOIサービスの性能:
図7A~7Dは、それぞれ、シナリオ予測、提案、検索、およびリバースジオのRTTを示す。
図7A~7DのY軸は単位「ms」での往復時間(RTT)を表す。
図7A~7DのX軸のラベル「水16」は、ある月の新しい日の開始を示し、16日水曜日であることを指す。
【0179】
図7A~7Dでは、「警告(Warning)」および「CBオープン(CB Open)」として示されるそれぞれの破線は、それぞれ、サービス安全のための時間閾値、およびサービスがリクエストされた時間内にリクエストに応答できず、応答しないものとして扱われる可能性がある時間閾値を指す。
【0180】
観察され得るように、2つの実線が、
図7A~7Dの各々について示される。上の実線は「P99」、つまり統計データの99パーセンタイルを表し、下の実線は、「P95」、つまり統計データの95パーセンタイルを表す。
【0181】
図7Cの検索について観察され得るように、95パーセンタイル(95 Percentile)および99パーセンタイル(99 Percentile)に関するRTTは、それぞれ500msおよび730msである。RTTは、QPSが1日の時間と共にどのように変化しても安定である。さらに、
図7Aの予測、
図7Bの提案、および
図7Dのリバースジオの結果は、RTTに関して同様の安定性を示す。以下の表1に示すように、RTTの95パーセンタイル/99パーセンタイルはシナリオごとに異なる。検索(Search)およびリバースジオ(ReverseGeo)のロジックは、外部プロバイダ(例えば、GoogleまたはFoursquare)またはエラスティックサーチを照会することを含み、これにより、予測(Predict)および提案(Suggest)と比較してRTTが長くなる。
【0182】
表1は、さまざまなシナリオのRTTである。
【表1】
【0183】
POIサービスにおけるキャッシュの性能:
表2は、プレディクタDBキャッシュ576(API層571aの場合)、メタキャッシュ579a(ミドルウェア層571bの場合)、内部プロバイダキャッシュ581(内部プロバイダ572aの場合)、およびGoogleキャッシュ583a(外部プロバイダ572bの場合)の1日平均キャッシュヒット率(Cache hit ratio)を示している。観察さ得るように、予測値DBキャッシュ576およびメタキャッシュ579aにおける高いキャッシュヒット率は、データベースへの重複リクエストを最小化または回避するという観点から、キャッシュ使用の有効性を示している。プロバイダ層571dについては、内部プロバイダキャッシュ581のキャッシュヒット率が外部プロバイダのGoogleキャッシュ583aのそれよりもはるかに低い。これは、内部プロバイダが頻繁に更新され、そのキャッシュ581のTTLが外部プロバイダ572bよりもはるかに短いためである。
【0184】
表2は、異なる層のキャッシュのキャッシュヒット率である。
【表2】
【0185】
上述したように、POI(point-of-interest)推奨のための技術をリアルタイムで提供することができる。輸送サービス(乗り物輸送サービスなど)の場合、例えば、予約注文を(例えば、Appを介して)作成または生成するとき、ユーザーは1つ以上のアクションを実行して、ピックアップおよび/またはドロップオフのための所望のPOIを見つけることができる。これらのアクションは(i)予測ピックアップPOIおよび/または予測ドロップオフPOIがユーザーの履歴データまたは現在位置のうちの少なくとも1つに基づいて行われる「予測」と、(ii)ユーザーが入力フィールドをクリックして、ユーザーの履歴データ、現在位置、または関連する都市の人気度POIのうちの少なくとも1つに基づいてPOIの提案リストを取得する「提案」と、(iii)キーワードに基づくPOIの一致リストが提供されるように、ユーザーが情報、例えばキーワードを入力する「検索」と、(iv)ユーザーがマップに移動してPINを見つけることができる「リバースジオ」とを含むことができる。これらのアクションは互いに独立したものとすることができる。これらのアクションは任意の順序で発生する場合と、シーケンスの順序で発生する場合があり、例えば、「予測」が最初に実行され、続いて、予測結果が期待された「検索」でない場合に「提案」が実行され、提案結果が期待通りでない場合、および提案/検索結果が期待通りでない場合、「リバースジオ(リバースジオ)」が実行される。予約フローはPOIをピックアップまたはドロップオフとして見つけるために、予測/提案/検索/リバースジオを使用する順序で定義することができる。順序は、ユーザーの労力(画面/App上のクリック数で測定)をどれだけ節約または最小限に抑えられるかに基づいていてもよい。
【0186】
それでも、1つの予約注文ごとに4つのアクションのすべてを実行する必要はないことを理解されたい。言い換えれば、アクション、予測、提案、検索、リバースジオのうちのいずれか1つ、2つ、または3つ、またはすべては、ユーザーが輸送関連サービスの予約注文を行う過程で実行することができる。非限定的な例として、ユーザーは任意のアクションまたはステップをスキップして、任意のアクションを自由に使用することができ、例えば、予測の後に、ユーザーは提案および/または検索を経由せずに、リバースジオに直接ジャンプすることができる。
【0187】
様々な実施形態では、予測、提案、および検索のアクションは履歴データを使用することによって個別に実行され、所望のピックアップおよびドロップオフを得るためのより良い推奨性能を提供することができる。提案および予測の場合、履歴データは異なるテーブル内のデータベース、例えば、プレディクタデータベースに格納されてもよい。検索の場合、1つ以上の側面/基準、すなわち、名前キーワード、領域、人気度、タイミング、および距離を考慮して、POIランク付けの結果得られるスコア、例えば、結合スコアとしての加重和を計算することができる。
【0188】
検索の場合、加重和による最終スコアは各POIについての以下の基準のスコアを使用して計算されてもよく、POIは次に、スコアに従って降順でランク付けされ、推奨されるPOIのリストがユーザーに提供される。
(i)キーワード:検索キーワードとPOI名またはPOI名の頭字語とに基づいてスコアが提供され、類似性または一致するものがある場合にスコアが高くなる;
(ii)領域:スコアは、ユーザーの領域(例えば、国)とPOI領域との間の関連性または近接性に基づいて提供され、2つの領域が同じである場合には「1」のスコアを有し、それ以外の場合には「0」のスコアを有する(対応するPOIは、その後、検索リストから除外される);
(iii)人気度:POIがピックアップ(ピックアップ検索の場合)またはドロップオフ(ドロップオフ検索の場合)として選択された回数に基づいてスコアが提供され、POIが選択された回数が多いほどスコアが高くなる;
(iv)タイミング:ユーザーが特定のPOIにおいてピックアップまたはドロップオフを行う確率に基づいてスコアが定義され、輸送サービスが必要とされるその特定の時間にPOIにおいてピックアップ(ピックアップ検索の場合)またはドロップオフ(ドロップオフ検索の場合)を行う確率が高い場合、スコアが高くなる;
(v)距離(ピックアップ検索にのみ適用可能):POIとユーザーの位置との間の距離に基づいてスコアが提供され、距離が短いほどスコアが高くなる。
【0189】
提案の場合、(例えば、App内の)関連する入力フィールドをクリックすることによって、ピックアップおよびドロップオフのために提案されたPOIのリストが提供される。ピックアップは通常、ユーザー位置に近いPOIであるが、ドロップオフは通常、ユーザーが行く必要がある人気度のある場所であるため、ピックアップとドロップオフとは別々に考慮される。ピックアップに関しては、2つのソースが考えられる。すなわち、(i)過去のユーザーIDと対応するピックアップを格納するテーブルに、POIの優先傾向に関する30日間の履歴データを格納するデータベース(例えば、プレディクタデータベース)であり、ユーザーIDによって過去の履歴ピックアップを照会することを可能にする。(ii)ユーザー位置(緯度/経度)が入力として使用され、距離に応じて近くのPOIが提供される。したがって、ユーザーの個人的な好みと、ユーザーPax位置とPOIとの間の距離との両方を考慮することができ、それによって、提案されるピックアップの精度を向上させることができる。ドロップオフに関しては、2つのソースが考えられる。すなわち、(i)ユーザーIDによる最も頻繁に使用されるドロップオフ(MFUドロップオフ)に関するデータを別個のテーブルに格納するデータベース(例えば、プレディクタデータベース)であり、これは、ユーザーIDによって最も頻繁に使用されるドロップオフを照会することを可能にする。(ii)様々な都市において人気のあるPOI(例えば、食品、ショップモール、空港など)が分類されており、都市IDによって照会することができる。したがって、ユーザーの個人的な好みと一般的な共通の好みの両方を提案することができ、それによって、提案されるドロップオフの精度を向上させることができる。
【0190】
予測のために、ピックアップが予測されてもよく、および/または、ドロップオフが予約注文を満たすように予測されてもよい。提案と同様に、ピックアップとドロップオフは別々に考えることができる。ユーザーが履歴予約データを有するピックアップに関して、ピックアップ予測のために2つのソース、すなわち、最後のドロップオフファースト(LDF)と、データベース(例えば、プレディクタデータベース)内のデータを有するテーブルとを考慮することができる。LDFは、24時間以内のユーザーの最後のドロップオフ時間である。PaxのLDFがない場合は、データベース(プレディクタDB)に保存されているユーザーの過去のピックアップPOIが使用されることがある。これは、過去のピックアップPOIを取得するためにユーザーPax IDおよびwifi SSIDを照会することによって行うことができる。すなわち、ユーザーが過去に現れた場所を、予測のピックアップとして推奨することができる。ユーザーが過去の予約データを有するドロップオフに関して、1日の時間単位で各ユーザーのピックアップとドロップオフをペアにするデータベース(例えば、プレディクタデータベース)内のテーブルを使用することができる。ユーザーIDおよび期間が与えられると、ピックアップおよびドロップオフのペアは、クエリによって取得することができる。同じピックアップとペアになる過去のドロップオフは、ユーザーのためのドロップオフ予測として使用することができる。すなわち、ドロップオフ予測では、人々が毎日のルーチンに従う可能性が高いと仮定することができる。過去の予約で選択されたユーザーを、その日の同じ時間帯に同じドロップオフを推奨することができる。履歴予約データがない新規ユーザーの「コールドスタート」の文脈では、ユーザーの位置(緯度/経度)をマップ上のPINとして使用して、ユーザーに最も近いPOIを見つけることができる(上記の「リバースジオ」と同様)。
【0191】
また、上述したように、様々な実施形態のPOI(point of interest)は、Golangベースのマイクロサービスアーキテクチャを用いて構築することができる。オンラインの課題は、適切または独自のシナリオまたはアプリケーションに従って技術を展開することで対処することができる。POIサービスは適切なピックアップポイントおよび/またはドロップオフポイントを見つける際の乗客の労力を節約しながら、完了した予約の比率を増加させるのに役立つ場合がある。予測、提案、または検索のいずれかは、潜在的に、ユーザー(または乗客)の習慣または好みに従ってカスタマイズされ得ることが理解されるであろう。さらに、システムの内部モジュールの時間コストを最適化することができる。
【0192】
本発明は、例としてのみ記載されていることが理解されよう。添付の特許請求の範囲の精神および範囲から逸脱することなく、本明細書に記載の技術に様々な修正を加えることができる。開示された技術は、独立した方式で、または互いに組み合わせて提供され得る技術を含む。したがって、1つの技術に関して説明した特徴は、別の技術と組み合わせて提示することもできる。