【文献】
戸田 航史 Koji Toda,Webページ閲覧者の視線に基づいた情報探索モデルの提案 An Information Exploration Model based on Eye Movements during Browsing Web Pages,情報処理学会研究報告 Vol.2005 No.52 IPSJ SIG Technical Reports,日本,社団法人情報処理学会 Information Processing Society of Japan,第2005巻
【文献】
中道 上 Noboru Nakamichi,ユーザの振る舞いによるWebユーザビリティの低いページの検出 Detecting Low Usability Web Pages using Data of User's Behavior,ヒューマンインタフェース学会誌 Vol.8 No.1 Journal of Human Interface Society,日本,ヒューマンインタフェース学会 Human Interface Society,第8巻
(58)【調査した分野】(Int.Cl.,DB名)
コンピュータユーザインターフェイスを修正するための1つもしくは複数の推奨を生成するための前記凝視及び関連付けられたユーザアクティビティラベルを分析することをさらに含む、
請求項1〜7のいずれか1項に記載の方法。
前記凝視を複数のクラスタに分割することは、前記クラスタを構築するために、時間順で最初の凝視を含む最初のクラスタから開始し、時間順に並んだ前記凝視を処理することを含み、
前記最初の凝視の後、凝視の各々について、
前記凝視から直前の凝視までの距離が第1の所定距離より短い場合、直前の凝視を含むクラスタに凝視を追加し、
前記凝視から直前の凝視を含むクラスタの凝視のいずれかまでの距離が第2の所定距離より短い場合、前記凝視を前記クラスタに追加し、
前記凝視から直前の凝視までの距離が第1の所定距離以上であり、前記凝視から直前の凝視を含むクラスタの凝視のいずれかまでの距離が第2の所定距離以上である場合、前記凝視を含む新しいクラスタを生成する、
請求項1〜8のいずれか1項に記載の方法。
【発明を実施するための形態】
【0027】
実装のいくつかにおいて、開示の技術は、コンピュータインターフェイスとインタラクションする間のユーザのアクティビティに関する詳細な情報を提供する。実装のいくつかにおいて、開示の技術は、ユーザリサーチのために、もしくはユーザインターフェイスデザインフィードバックのためにアイトラッキングデータを分析し、もしくは、ユーザの注目に関する情報を用いたインテリジェントユーザインターフェイスシステムを提供する。
【0028】
実装のいくつかは、マーケティング資料などの印刷マテリアルの効果を評価するための開示された技術を使用する。これは、ユーザインターフェイスとインタラクションする場合にユーザが関わるアクティビティを理解するために有用である。この応用は、アイトラッキングデータ及びユーザ入力デバイス(例えば、マウス及びキーボード)から収集された情報を利用するユーザアクティビティを分類するためのシステム及び方法を記載する。
【0029】
分類技術は、直接、ユーザリサーチのアイトラッキングデータを分析するソフトウェアに組み込まれ、あるいは、インテリジェントユーザインターフェイスシステムに組み込まれて、使用され得る。印刷マテリアル及びユーザインターフェイスは、テキスト、図、ユーザインターフェイスコントロールなど、異なる種類の情報を含むことがよくある。これらの異なる種類の情報を調べる場合、ユーザの注視は異なる注視パターンを示す。これらのパターンは識別され、分類され得る。
【0030】
異なる情報コンテンツによって生成された領域と結合される場合、ユーザの注目及びアクティビティのより精細な評価が達成され得る。
【0031】
情報が豊富なビジュアルコンテンツ(ユーザインターフェイス、ウェブページ及び電子ドキュメントなど)を評価する場合、関心領域が生成されることがよくある。関心領域は、予測されるアイトラッキングエラー内でユーザの注目をロバストに計測することが可能な程度に十分大きい。
【0032】
アイトラッキングデータが、ユーザの注視と領域とを適切に関連付けることがたいへん困難となるため、小さい領域は避けられることがよくある。
【0033】
既存のシステムのいくつかでは、関心領域(ROI)は手によって生成されるが、表示されているコンテンツから(例えば、領域間のホワイトスペースの行及び列を用いて、)自動的に導出されてもよい。これらの領域は、異なる注視パターンを導き出すことを期待される異なる種類の情報を含んでもよい。ROIが自動的に生成されると、より大きくより一般的な領域がより小さくより詳細な領域を含むように、階層的に入れ子にされ得る。
【0034】
単独で使用される場合、キーストローク及びマウスイベントはユーザが注目しているものを適切に示さない。いくつかの場合、キーストローク及びマウスイベントはユーザの注目と同期しない。例えば、ユーザはマウスを位置付けし、テキストのピースを読み続け、次に、選択するボタンを見ずに、マウスをクリックするかもしれない。
【0035】
他の例では、ユーザはテキストを読んでいる間、もしくはページを検査している間、マウスを「停めて」いるかもしれない。従って、マウスに関する情報はユーザのアクティビティに関する情報を何ら提供しない。注視データはユーザが見ている場所を直接的に識別するので、注視データは、一般的に、キーストローク及びマウスイベントより、ユーザアクティビティの分類に適している。
【0036】
実装のいくつかにおいて、60以上の注視点が毎秒収集される。キーストローク及びマウスイベントによる補足的に注視データを補う開示の実装はよりよいデータを提供し得る。開示の技術は、印刷マテリアルもしくはウェブサイトの効果の評価など、ユーザリサーチのアイトラッキングデータを分析するソフトウェアにおいて使用され得る。これは、ユーザアクティビティ及び注目に関する詳細な情報を提供する。
【0037】
例えば、開示の実装は、ユーザが重要な情報のピースを読んでいるのか、読まずに情報の位置を単に見ているのか、判定し得る。開示の技術は、ユーザアクティビティ及び注目に関して、デザイナ及びユーザビリティエキスパートに貴重なフィードバックを提供する。
【0038】
実装のいくつかにおいて、アクティビティ分類はユーザアクティビティに関する詳細な情報を有するインテリジェントユーザインターフェイス(IUI)を提供する。分類は適切なアクションもしくは情報に関する推奨を生成するか、もしくは、タスク効率が向上するようにユーザインタラクションをカスタマイズし得る。例えば、ユーザが重要な指示を読んでいないことをシステムが検出すると、システムはユーザに指示を読むように警告し得る。もしくは、製品Xの販売プロジェクトに関連するテキストを読み、画像を調べているユーザを検出すると、システムはこのトピックに関連する同様のドキュメント及びテキストのセグメントを示唆することが可能である。
【0039】
実装のいくつかは、非効率的な振る舞いのパターンを検出し、特定のタスクを解決するより効率的な方法にユーザを導こうとするチューターシステムに開示の技術を使用する。
【0040】
目が比較的静止している場合及び脳が情報を処理している場合、目の動きは凝視に分類され、目が凝視点から移動する場合、サッカードに分類され得る。サッカードの継続時間は短く(例えば、80m秒より短い)、凝視はより長い(一般的に、250m秒程度であるが、80m秒〜100m秒程度に短い場合もある)。凝視識別アルゴリズムは注視データ点(例えば、毎秒60個収集される)を凝視及びサッカードにグループ化する。
【0041】
凝視の各々は継続時間及び位置(例えば、凝視の注視点の重心)を有する。凝視はグループ化され、凝視の位置、凝視と関連するユーザアクティビティ及び領域のコンテンツタイプによって領域と適合することが可能である。これにより、アイトラッキングデータのみを使用する場合よりもより詳細な分析が可能となる。
【0042】
本発明の実装は、任意の標準的な凝視識別アルゴリズムを使用可能である。2つの一般的な凝視検出アルゴリズムのカテゴリはばらつきベースアルゴリズム(凝視における注視点の広がりを計測する)及び速度ベースアルゴリズム(注視点間の速度を計測する)である。アルゴリズムの両方のタイプにおいて、凝視が検出されたか否か判定する閾値がある(例えば、ばらつき閾値より小さいもしくは速度閾値より小さい)。
【0043】
凝視の各々について、検出アルゴリズムは凝視の各々について位置及び継続時間を提供する。凝視に属さない注視データのサンプルは一般的に凝視検出アルゴリズムによって廃棄される。
【0044】
本発明の実装のいくつかは、標準アルゴリズムの下で凝視とみなされないであろう注視点セグメントを考慮するように、標準凝視検出アルゴリズムを拡張する。疑似凝視は凝視検出アルゴリズムの基準に適合せず、継続時間がサッカードとしては長い、連続的な注視データ点のグループとして定義され得る。多くの疑似凝視は、標準的な凝視アルゴリズムにとって許容可能であるより多いノイズを含む。しかしながら、擬似凝視はスムースな追跡(例えば、ディスプレイ上の移動するドットなどの動きに目が追随する場合)もしくは他の有益なイベント(ユーザがマウスを移動するもしくはタイピングする場合に加わるノイズなど)を説明してもよい。
【0045】
擬似凝視を維持する実装のいくつかは、注視点セグメントの各々に「有効性」を割り当てる。例えば、凝視の各々は有効性1を有し、擬似凝視は有効性0を有する。実装のいくつかにおいて、有効性は0(確実に無効)から1(確実に有効)までの連続する範囲に割り当てられる。実装のいくつかにおいて、たいへん低い見積もられた有効性(例えば、有効性が0.1より小さいもしくは0.25より小さい)を有する凝視は廃棄される。これらの実装において、拡張されたアルゴリズムは標準的なアルゴリズムよりも多くの凝視を維持するが、あるレベルではやはり廃棄される。
【0046】
説明を単純化するために、真の凝視のみを使用する実装について、用語「凝視」は真の凝視のみを示す。擬似凝視を含む実装について、用語「凝視」はより広く、真の凝視もしくは擬似凝視である注視点セグメントを含む。
【0047】
いくつかの例において、用語「無効凝視」は擬似凝視を識別するために使用される。実装は、凝視の際に、実行されているアクティビティに基づいて凝視の各々を分類する。この分類は、ヒューリスティックに行われてもよいし、もしくは、機械学習技術を用いることによって行われてもよい。いずれの場合でも、システムは凝視アクティビティクラスのモデルを利用する。凝視の各々について、凝視特徴の対応するセットが決定され、特徴はモデルと比較される。
【0048】
特徴のセットは凝視自身の特性(例えば、継続時間もしくは推定有効性)、凝視コンテキスト(例えば、前後の凝視からの距離)及びユーザインターフェイスデバイスによって提供される情報(例えば、凝視の間のもしくは付近のキーボード及びマウスイベント)を含むことが可能である。最も適切な適合アクティビティラベルが凝視に割り当てられる。
【0049】
実装のいくつかはアクティビティラベル「調べる」(理解するために意図的にコンテンツを見る)、「読む」、[ナビゲート」(マウスの移動を含み、要約するために情報の次のピースを探すもしくはUIの異なる部分に注意を移動する)、「パスに沿ってナビゲート」(新しい位置を示すグラフィックエレメントに追随する)、「選択」、[入力」を利用する。アクティビティ分類は、一般的に、注視から推測され得るアクティビティを含む。例えば、ページのどこかにある情報のピースを調べながらユーザがボタンをクリックすると、アクティビティラベルは「調べる」となる。
【0050】
実装のいくつかは、ユーザのウィンドウ内での(スクロールボックスをドラッグする、もしくは、スクロールホイールを回転することによる)スクロールに対応するアクティビティラベル「スクロール」を含む。実装のいくつかは、アクションを実行するかしないかについてユーザが判定していることを示す「ジャッジ」を含む。実装のいくつかにおいて、アクティビティ分類は、サポートベクターマシン(SVM)もしくはニューラルネットワークなどの標準機械学習方法を利用する。
【0051】
アクティビティ分類の後、同一のアクティビティに関わる連続的な凝視のグループが生成される。これらのグループは2つの連続する凝視の分類されたアクティビティをチェックすることにより生成される。アクティビティが同一であれば、凝視は同一のグループに入る。連続的に進行し、次の凝視のアクティビティラベルが同一である限り、凝視は同一のグループに入る。アクティビティラベルが同一でなければ、新しいグループが生成され、処理は継続される。
【0052】
ユーザが特定のアクティビティに関わっている場合、グループは期間を識別する。生成されるアクティビティグループはユーザインターフェイスの領域もしくは印刷ページに適切に適合しないかもしれないし、アクティビティの分類に誤りが生じるかもしれない。
【0053】
実装のいくつかは、位置及び時間順だけに基づく凝視をクラスタ化する並行ステップを含む。後のステップにおいて、クラスタ及びグループが比較され、調整される。実装のいくつかは凝視クラスタを求める。クラスタは近くに位置する連続する凝視を含む。一般的に、実装は、凝視の時間順が維持されることを要求する。
【0054】
実装のいくつかは、凝視パターンにおける「ドリフト」を許容する。例えば、ユーザが読む場合、凝視は明確に定義された中心点を有さず、左から右への短い距離を移動する。実装のいくつかは時間順に凝視を連続的に処理することによって凝視クラスタを構築する。
【0055】
最初のステップにおいて、まず、最初の凝視を含むクラスタが形成される。続くステップの各々で、新しい凝視が検討され、検討された最後の凝視及び最後の凝視を含むクラスタと比較される。新しい凝視は最後の凝視を含むクラスタに含められるか、もしくは新しい凝視が新しい凝視を開始させる。
【0056】
例えば、ユーザがページのテキストの部分を読んでいて、ページの他の領域に移動し、テキストの最初の部分に戻る場合、例えページの同一の位置であっても、後の凝視は最初の凝視と同一のクラスタに含まれない。新しい凝視が最後の凝視と第1の距離閾値内にある場合、新しい凝視はクラスタに追加される。
【0057】
新しい凝視が最後の凝視と第1の距離閾値内にない場合、新しい凝視からクラスタの凝視の各々までの距離が計算され、新しい凝視からクラスタの凝視までの最短距離が第2の距離閾値より短い場合、新しい凝視はクラスタに追加される。新しい凝視からクラスタの凝視までの最短距離が第2の距離閾値より短くない場合、新しい凝視は新しいクラスタを開始する。実装のいくつかにおいて、第1の距離閾値及び第2の距離閾値は等しい。
【0058】
実装のいくつかは併合及び調整ステップを含む。当該ステップにおいて、アクティビティグループ及び凝視クラスタは比較され調整される。アクティビティグループ及び凝視クラスタはセグメントタイプとみなされる。2つのセグメントタイプの境界は比較され、境界の各々を維持し、置き換え、除去することとコストとが関連付けられる。コストは、ヒューリスティックモデルに基づいて、もしくは、機械学習アルゴリズムから導出されるモデルに基づいて構築され得る。コストは、セグメントサイズ、セグメント数、セグメント内の凝視継続時間、セグメント周囲のアクティビティタイプ、ページ上の領域とセグメントの相対的位置、関連領域のサイズなどを含む多くのファクタに基づいてもよい。コストを最小化する構成が維持される。これにより、クラスタもしくはアクティビティグループへの調整が行われる。
【0059】
実装のいくつかにおいて、グループ及びクラスタの全体構成が共に評価される。全体的に最も適切な結果(例えば、コストが最も低い)を有する構成が選択される。他の実装において、境界一つ毎に調整が連続的に実行される。境界の各々は、コストファンクションもしくは他の経験則によって維持もしくは廃棄され、アルゴリズムは次の境界に移動する。
【0060】
実装のいくつかは境界を2つ以上ずつ処理するが、全ての境界を一度に処理しない。例えば、実装のいくつかはクラスタとアクティビティグループとが適合している境界の全てを識別する。次に、適合する境界の最も近いペアの間の全ての不適合の境界に調整処理が行われる。アクティビティのシーケンスのいくつかは、単一の凝視を見る場合、認識可能ではない高レベルアクティビティのサインであってよい。
【0061】
実装のいくつかにおいて、アクティビティのシーケンスは、より高いレベルのアクティビティを示すパターンを見つけるために分析され、より高いレベルのアクティビティに結合され得る。例えば、短期間(例えば、3〜4の凝視)リーディングを含む、テキストをスキミングするアクティビティには、テキストの新しい部分へナビゲートするための凝視及び他の短期間リーディングが続く。
【0062】
実装のいくつかは可能なより高いレベルのアクティビティを識別するためにストリングマイニング技術を利用する。アクティビティのモデルは保存され、以前求められ割り当てられたユーザアクティビティラベルと突き合わされる。アクティビティセグメントを解析することにより、突合せが行われる。この分析は、保存されたスキミングのサンプルもしくは他のより高いレベルのアクティビティを用いて効率的に実行され得る。
【0063】
実装のいくつかは、アクティビティのシーケンスを用いるだけでなく、継続時間などのアクティビティの特性(もしくは凝視の特徴)を用いて、適合を判定する。予め計算されたアクティビティシーケンスに加えて、実装のいくつかは自動的によく生じるシーケンスを識別する。
【0064】
実装のいくつかによれば、方法は1つもしくは複数のユーザインターフェイスデバイス(例えば、キーボード及びマウス)を用いてコンピュータユーザインターフェイスとインタラクションするユーザのユーザアクティビティを分類する。
【0065】
方法は、1つもしくは複数のプロセッサ及びメモリを有するコンピュータシステムで実行される。コンピュータシステムはユーザのアイトラッキングデータを受信する。アイトラッキングデータは時間順に並んだ凝視のシーケンスを含む。凝視の各々は複数の連続する計測された注視点の各々に対応する。凝視は、凝視検出アルゴリズムを用いて、未処理注視点データから識別される。凝視の各々は、対応する計測された注視点の各々に基づく継続時間及び位置を有する。
【0066】
シーケンスの凝視の各々について、コンピュータシステムは凝視の複数の特徴を判定する。特徴は1つもしくは複数の凝視の特性、前後の凝視に基づく1つもしくは複数のコンテキスト特徴、及び凝視の間もしくは凝視に近接する時間のユーザインターフェイスデバイスからの情報に基づく1つもしくは複数のユーザインタラクション特徴を含む。コンピュータシステムは複数の特徴によって凝視へのユーザアクティビティラベルを割り当てる。ユーザアクティビティラベルはユーザアクティビティラベルのセット(例えば、調べる、読む、ナビゲート、選択及び入力)から選択される。
【0067】
実装のいくつかは割り当てを実行するために機械学習を利用する(例えば、サポートベクターマシン(SVM)もしくはニューラルネットワーク)。コンピュータシステムは、次に、1つもしくは複数の推奨を行うために、凝視及び割り当てられたユーザアクティビティラベルを分析する。
【0068】
実装のいくつかによれば、方法は複数の別個の隣接する領域を含むページ(例えば、複数の領域を有する印刷ページもしくは複数の領域を有するユーザインターフェイスウィンドウ)を見るユーザのユーザアクティビティを分類する。方法は1つもしくは複数のプロセッサ及びメモリを有するコンピュータシステムで実行される。コンピュータシステムはユーザの(例えば、注視点の形態の)アイトラッキングデータを受信する。アイトラッキングデータから時間順に並んだ凝視のシーケンスを検出し得る。凝視は凝視検出アルゴリズムを用いて未処理注視点データから識別される。凝視の各々は対応する注視点の各々に基づく継続時間及び位置を有する。
【0069】
コンピュータシステムは複数のクラスタに凝視を分割する。クラスタの各々は時間順に並んだ凝視の連続するサブシーケンスを含む。加えて、コンピュータシステムは凝視の特徴もしくは特性(例えば、凝視自身の特性、凝視の各々のコンテキストを記述する特徴、及び凝視の間の1つもしくは複数のユーザインターフェイスデバイスの状態を示す特徴)のセットに基づいて凝視の各々に仮のユーザアクティビティラベルを割り当てる。ユーザアクティビティラベルはユーザアクティビティラベルの所定のセット(例えば、調べる、読む、選択、入力、ナビゲート、パスナビゲート)から選択される。
【0070】
コンピュータシステムは、凝視を複数のグループに分割するために同一の仮のユーザアクティビティラベルを割り当てられた連続する凝視をグループ化する。クラスタの各々に適合するグループの各々について、コンピュータシステムはグループの各々の凝視の各々に割り当てられた最終ユーザアクティビティラベルとして仮のユーザアクティビティラベルを維持する。
【0071】
コンピュータシステムは、不適合グループの凝視を含む非重畳改変グループセットを形成するために、領域を用いて、不適合グループと不適合クラスタとを調整する。改変グループの凝視の各々はユーザアクティビティラベルの所定のセットから選択される同一の最終ユーザアクティビティラベルを割り当てられる。コンピュータシステムは、1つもしくは複数の推奨を行うために凝視及び割り当てられた最終ユーザアクティビティラベルを分析する。
【0072】
同様の参照符号は図面全体に亘って対応する要素を参照する。
【0073】
図1Aは、本発明の実装のいくつかが動作する環境を例示する。
図1Aにおいて、ユーザ102は、コンピュータモニタ108に表示されているコンピュータユーザインターフェイス112とインタラクションしている。ユーザ102はユーザの目104でユーザインターフェイス112を見て、キーボード114及びマウス116などの1つもしくは複数のユーザインターフェイスデバイスを用いて、ユーザインターフェイスとインタラクションする。ユーザ102の目の動きを追跡するために、様々なアイトラッキングデバイスを使用することが可能である。例えば、実装のいくつかは、コンピュータモニタ108に装着可能な赤外線カメラ106及び赤外線光の組み合わせを含む。
【0074】
実装のいくつかは、赤外線光を利用しないカメラを使用する。一般的に、カメラは、最も適切に目を含むビューを取得するために、モニタの下方に装着されている。実装のいくつかは、カメラ106と別個の赤外線光とを利用するが、アイトラッキングの正確さを最高にするために、一般的に、カメラ106と赤外線光とは近接させられる。
【0075】
図1Bは、本発明の実装のいくつかが動作する
図1Aとは異なる環境を例示する。この実装において、ユーザ102は、コンピュータモニタ108に表示されているのではない印刷ページ120を見ている。この実装では、ユーザは、目の動きを追跡するための1つもしくは複数のデジタルイメージセンサを含む、特殊な眼鏡118を装着している。
【0076】
実装のいくつかにおいて、眼鏡118は、後述する分類タスクを実行するコンピューティングデバイスである。他の実装では、眼鏡118はデータを収集し、収集したデータを別個のコンピューティングデバイスに(例えば、WiFi接続を介して)転送する。実装のいくつかにおいて、眼鏡118は、目の動きを追跡するために使用される赤外線光を含む。アイトラッキング眼鏡の例は、トビーテクノロジー社のトビーグラスアイトラッカー(登録商標)を含む。
【0077】
印刷ページ120は、テキスト領域130−1及び130−3、及び画像領域130−2及び130−4を含む、複数の別個の領域130を含む。アイトラッキングには多くの異なる技術が使用されており、ここで開示される技術はいずれか特定のアイトラッキング技術に依存しない。
【0078】
アイトラッキングの技術の一つは、
図2A、
図2B及び
図2Dに例示する赤外線光の角膜反射を利用する。
図2A及び
図2Bは、グリント(明るい領域)204及び瞳孔202を含む同一の目104を例示する。
図2Aで、アイトラッキングデバイスは水平グリント位置206及び水平瞳孔位置208Aを識別し、瞳孔オフセット210Aを計算する。
【0079】
図2Bで、グリント204は同一の水平グリント位置206を有し、水平瞳孔位置208Bは変化している。新しい瞳孔オフセット210Bは
図2Aのオフセット210Aよりも長い。デバイスは、目104が見ている位置を追跡することが可能である。同様の技術を(図示しない)垂直方向のオフセットにも適用することが可能である。
【0080】
図2Dは、実際の人の同じ目104、瞳孔202及びグリント204を示す。
図2Cの上図は、アイトラッキングデバイスによって収集された未処理データを例示する。ユーザ102は、印刷ページ120上のもしくはユーザインターフェイスページ112上の領域442の部分210のテキストを読んでいる。
【0081】
アイトラッキングデバイスは、一般的に、一定頻度(例えば、60注視点毎秒)で計測値を収集し、瞬間的な注視点212を識別する。人の注視は、目が比較的静止している期間である凝視と、目がより早く動いている凝視と凝視との間の期間であるサッカードと、に分離することが可能である。経験的なデータに基づけば、凝視は、一般的にサッカードよりも長い。凝視は、最短継続時間が80ミリ秒〜100ミリ秒、一般的には、約250ミリ秒であり、サッカードは、一般的に80ミリ秒より短い。
【0082】
図2Cの下図に例示するように、凝視検出アルゴリズムは注視点212を採取し、凝視214を決定する。
図2Cの下図において、凝視214−1、214−2、214−3、214−4、及び214−5の5個がラベル付けされる。注視点212の全てが凝視214に割り当てられるのではない。例えば、
図2Cの下図の注視点212−1はいずれの凝視にも割り当てられない。
【0083】
凝視の注視点は時間的に連続している。凝視を識別するアルゴリズムは、一般的に、ばらつきベース(すなわち、凝視の注視点のばらつきはあまり大きくなり得ない)もしくは速度ベース(すなわち、連続する注視点の間の速度はあまり速くなり得ない)である。これらの技術の双方は、注視点がばらつきもしくは速度に使用される閾値に適合しない場合、いくつかのデータを廃棄するように導き得る。
【0084】
図3は、ユーザインターフェイスウィンドウもしくはウェブページ112の領域302を例示する。このウィンドウ112において、メニューバー302−1及びツールバー302−2があり、これらのバーは、一般的に、所定のタスクを実行するための小さいグラフィックアイコン(例えば、「保存」アイコンもしくは「印刷」アイコン)を含む。さらに、タイトル領域302−3、複数のボタン領域302−6、302−7、302−8、302−9を含む。ウィンドウの多くは、領域302−4、302−5、302−10、302−12などのテキスト領域を含む。ユーザインターフェイスウィンドウ112は、一般的に、領域302−11、302−13、302−14などのような画像領域を含む。領域302は、手動で識別されてもよいし、コンピュータアルゴリズムを用いて識別されてもよい。
【0085】
図4は、実装のいくつかによる、コンピュータデバイス400を例示するブロック図である。コンピューティングデバイス400は、デジタル画像センサ416を含むデスクトップコンピュータ、ラップトップコンピュータ、モバイルデバイス、もしくは、リモートセンサによって収集された凝視データ(もしくは未処理注視データ)へアクセス可能なサーバコンピュータであってよい。コンピューティングデバイス400は、一般的に、1つもしくは複数の処理ユニット(CPU)402、1つもしくは複数のネットワークもしくは他の通信インターフェイス404、メモリ418、及びこれらの構成要素を相互に接続する1つもしくは複数の通信バス412を含む。通信バス412はシステム構成要素間の通信を相互に接続し制御する回路(チップセットともいう)を含んでいてもよい。
【0086】
コンピューティングデバイス400は、ディスプレイデバイス408(例えば、ディスプレイスクリーン108)を含むユーザインターフェイス406及び入力デバイス/機構410(例えば、キーボード114、マウス116、タッチスクリーン、物理的ボタンなど)を含むユーザインターフェイス406を含んでもよい。
【0087】
実装のいくつかにおいて、コンピューティングデバイス400は、目の動きを追跡するために使用される赤外線光414を含む。コンピューティングデバイス400は、ユーザの目104の画像をキャプチャするために使用されるデジタル画像センサ416を含む。
【0088】
実装のいくつかにおいて、デジタル画像センサ416は赤外範囲の画像を撮影するが、他の実装では、デジタル画像センサ416はスペクトルの可視部分の画像を撮影する。実装のいくつかにおいて、赤外線光414及び/もしくはデジタル画像センサ416はコンピューティングデバイス400から離隔して配置されている。
【0089】
メモリ418は、DRAM、SRAM、DDR RAMもしくは他のランダムアクセスソリッドステートメモリデバイスなどの高速ランダムアクセスメモリを含む。また、メモリ418は、1つもしくは複数の磁気ディスクストレージデバイス、光ディスクストレージデバイス、フラッシュメモリデバイスもしくは他の不揮発性ソリッドステートストレージデバイスなどの不揮発性メモリを含んでもよい。メモリ418は、CPU402から離隔して配置される1つもしくは複数のストレージデバイスを含んでいてもよいが、必須ではない。メモリ418、もしくは、代替的に、メモリ418の不揮発性メモリデバイスは、コンピュータ可読記録媒体を含む。
【0090】
実装のいくつかにおいて、メモリ418は以下のプログラム、モジュール及びデータ構造もしくはプログラム、モジュール及びデータ構造のサブセットを記憶する。
●オペレーティングシステム420。オペレーティングシステム420は、様々な基本システムサービスを扱うためのプロシージャ及びハードウェア依存タスクを実行するためのプロシージャを含む。
【0091】
●通信モジュール422。通信モジュール422は、(有線もしくは無線の)1つもしくは複数の通信インターフェイス404及びインターネット、他のワイドエリアネットワーク、ローカルエリアネットワーク、メトロポリタンネットワークなどの1つもしくは複数の通信ネットワークを介して他のコンピュータシステムとコンピューティングデバイス400とを接続するために使用される。
【0092】
●ユーザインターフェイスモジュール424。ユーザインターフェイスモジュール424は入力デバイス410を介してユーザからコマンドを受信し、ディスプレイデバイス408のユーザインターフェイスオブジェクトを生成する。
【0093】
●ウェブブラウザ426。ウェブブラウザ426は、リソース、ウェブページ及びウェブアプリケーションへの通信ネットワークを介したユーザのアクセスを可能とする。
【0094】
●凝視検出モジュール428。凝視検出モジュール428は、注視点212を収集し(
図2Cの上図)、凝視214のセットを識別する(
図2Cの下図)。凝視検出モジュールは、一般的に、ばらつきアルゴリズムもしくは速度アルゴリズムを使用する。実装のいくつかにおいて、基本凝視検出アルゴリズムは凝視の各々に関連する有効性計測値を出力するように拡張される。実装のいくつかにおいて、拡張凝視検出アルゴリズムはより多くの「凝視」を出力する。擬似凝視が真の凝視と共に含まれるためである。
【0095】
●凝視分類モジュール430。凝視分類モジュール430については、
図5、
図8A〜8Dに関連して以下で詳述する。
【0096】
●凝視クラスタ化モジュール432。凝視クラスタ化モジュール432は、
図6、
図8A〜8Dに関連して以下で詳述する。
【0097】
●併合・適合モジュール434。併合・適合モジュール434は、凝視分類モジュール430によって決定される凝視グループ452と、凝視クラスタ化モジュール432によって決定されるクラスタ454と、を結合する。併合・適合モジュール434は、凝視クラスタ454及び凝視グループ452の間の不適合の調整を支援するために領域442を利用する。併合・適合モジュール434については、
図6、
図7A〜7D、
図8A〜8Dに関連して以下で詳述する。
【0098】
●アクティビティシーケンスモジュール436。アクティビティシーケンスモジュール436は、調整されたアクティビティ分類を利用し、より低いレベルのユーザアクティビティのより長いパターンに基づいて、より高いレベルのアクティビティを識別する(例えば、領域のテキストの他の部分への動きがところどころにあるリーディングの短いスティント(割り当てられた仕事)に基づいて領域442のテキストのユーザによるスキミングを識別する)。アクティビティシーケンスモジュール436は、
図6、
図8A〜8Dに関連して、以下で詳述する。
【0099】
●1つもしくは複数のデータベース438。データベース438は、ソフトウェアモジュール428、430、432、434及び436によって利用されるデータを保存する。データベース438は、ユーザ102によって閲覧される印刷ページ120、ウェブページ112、ユーザインターフェイスウィンドウ112、もしくは他のページを含む1つもしくは複数のページ440に関する情報を保存する。ページ440の各々は、1つもしくは複数の領域442を含み、領域442に関する情報はデータベース438に保存される。領域442は、ページ440の論理的な区画である。論理的な区画は、(
図1Bに例示する)印刷ページ120の領域130もしくは(
図3に例示する)ユーザインターフェイスウィンドウ112の領域302などのような、隣接し重畳しないページ440の部分である。領域442は、一般的に矩形であるが、矩形に限定されない。領域442は対象領域すなわちROIともいわれる。データベース438は、ユーザアクティビティラベル444の所定セット及びラベル444に関連する情報を保存する。
【0100】
実装のいくつかにおいて、ユーザアクティビティラベル444の所定セットは「調べる」、「読む」、「ナビゲート」、「入力」、「選択」を含む。これらは、低レベルアクティビティともいわれる。これらは、個別の凝視の間に生じることを記述しているからである。(アクティビティシーケンスモジュール436は、凝視のシーケンスに高レベルユーザアクティビティを割り当てる。)個別の凝視へのユーザアクティビティラベル444の割り当ては、
図5、
図8A〜8Dに関連して、以下で詳述する。
【0101】
データベース438は、凝視214を識別するために凝視検出モジュール428によって使用される注視点212を保存する。データベース438は、凝視検出モジュール428によって決定された凝視214を保存する。データベース438は、凝視の継続時間、凝視の位置(例えば、凝視を構成する注視点の重心)、及び凝視の有効性を含む凝視214の各々に関連する基本凝視特性446のいくつかを保存する。
【0102】
データベース438は、凝視214の各々に対応する凝視特徴448のセットを保存する。
図5、
図8A〜8Dに関連して詳述するように、凝視特徴は、凝視214の特性(例えば、継続時間)に固有であってよく、先行のもしくは後続の他の凝視(例えば、最近の凝視もしくは後続の凝視の継続時間)に基づいて求められてもよく、凝視に関連するユーザのインタラクション(例えば、凝視の間にマウスボタンが押された)を識別してもよい。
図5及び
図8A〜8Dは、凝視214にユーザアクティビティラベル444を割り当てるために特徴をどのように使用するかを示す。
【0103】
データベース438は、凝視分類モジュール430によって決定されたように、凝視214の各々に割り当てられたユーザアクティビティラベル450を保存する。データベース438は割り当てられたユーザアクティビティラベル450に基づく凝視グループ452を保存する。
【0104】
凝視グループ452の決定は、
図6及び
図8A〜8Dに関連して、以下で詳述される。データベース438は、凝視クラスタ化モジュール432によって決定される凝視クラスタ454を保存する。凝視クラスタは、
図6、
図8A〜8Dに関連して、以下で詳述される。
【0105】
上記識別された構成要素の各々は、1つもしくは複数の上記メモリデバイスに保存されてもよい。また、上記識別された構成要素の各々は、上記機能を実行するための命令セットに対応してもよい。命令セットは、1つもしくは複数のプロセッサによって実行され得る(例えば、CPU402)。上記識別されたモジュールもしくはプログラム(すなわち、命令セット)は別個のソフトウェアプログラム、プロシージャ、もしくはモジュールとして実装されなくてもよい。これらのモジュールの様々なサブセットが結合されてもよいし、様々な実装において再構成されてもよい。
【0106】
実装のいくつかにおいて、メモリ418は上記識別されたモジュール及びデータ構造のサブセットを保存する。さらに、メモリ418は、さらに、上記されていないモジュール及びデータ構造を保存してもよい。
【0107】
図4はコンピューティングデバイス400を示しているが、
図4は、ここで記述される実装の構造的な概要とういうよりは、1つもしくは複数のコンピューティングデバイスに存在してよい様々な特徴の機能的な記述を意図している。実用的には、また、当業者によって認識されるであろうように、別個に示されるアイテムは結合されてもよいし、アイテムのいくつかは別個にされてもよい。
【0108】
例えば、データ及びプロセスの全ては単一のデバイス400(例えば、ユーザのコンピュータ)に存在してもよいし、プロセスは2つ以上のコンピューティングデバイス400(例えば、未処理データを収集するために主に動作するユーザデバイス及び凝視の分析を行うバックエンドサーバ)に別個に存在してもよい。ここで記述される方法の各々は、コンピュータ可読記憶媒体に保存され、コンピューティングデバイス400の1つもしくは複数のプロセッサによって実行される命令によって制御されてもよい。図(
図5、
図6、
図7A〜7D、
図8A〜8D)に示される動作の各々は、コンピュータメモリもしくはコンピュータ可読記録媒体に保存されている命令に対応していてもよい。
【0109】
図5は、実装のいくつかに関連して個別の凝視214を分類するための凝視分類モジュール430によって実行されるプロセスを例示する。プロセスは開始され(502)、凝視214を検出する(504)。
【0110】
凝視は、位置及び継続時間を含む凝視基本特性446のいくつかを有する。位置は、一般的に、ユーザ102が閲覧しているページ440と相対的に特定される(例えば、ページ440の座標x及びy)。
【0111】
実装のいくつかにおいて、凝視基本特性446は有効性測定値を含む。実装のいくつかにおいて、有効性測定値は2値であることが適切であり、1は真の凝視を識別するために使用され、0は擬似凝視を示すために使用される。実装のいくつかにおいて、真の凝視である尤度を示す有効性測定値は連続的な範囲(例えば、0〜1)を有する。実装のいくつかにおいて、有効性は確率として特定される。
【0112】
凝視214の各々について、凝視214に関連する計測量もしくは計算量である凝視特徴448のセットが存在する。
【0113】
実装のいくつかにおいて、凝視特徴448の各々は3つのタイプの1つに分類される。凝視そのものの特性、凝視の周辺に基づく環境のいくつかを示す値、凝視の間の様々なユーザインターフェイスデバイスの状態を示す値、の3つである。第3のカテゴリは、一般的に、閲覧されているページ440が印刷ページ120である場合、関係ない。
【0114】
図5で、これら3つのタイプから特徴448を収集/計算することが並列的に示されている(506、508、510)が、これらは直列的に収集/計算されてもよい。凝視分類モジュール430は、凝視214自体に対応する特徴448である凝視特性セットを識別する(506)。
【0115】
これらの特性のいくつかは、凝視214の継続時間もしくは凝視214の有効性などのような凝視基本特性である。他の凝視特性は、凝視214に対応する注視点212間の平均距離を含む。一般的に、注視点の間の距離は直列的に連続する注視点間のみが計測される。
【0116】
実装のいくつかは、注視点の間の距離の分散を含む。他の凝視特性は、凝視の間計測された瞳孔サイズの分散である。実装のいくつかは、これらの特性のサブセットもしくは凝視の幅もしくは広がりなどの他の凝視特性による補足を利用する。
【0117】
凝視分類モジュール430は、以下のいずれかもしくは以下の変形を含む複数の凝視環境特徴を判定する(508)。
●凝視214から直後の凝視への距離
●凝視214から直前の凝視への距離
●直後の凝視の継続時間
●直前の凝視の継続時間
●先行する5個の凝視の連続する凝視間の平均距離
●先行する5個の凝視の連続する凝視間の距離の分散
●後続する5個の凝視の連続する凝視間の平均距離
●後続する5個の凝視の連続する凝視間の距離の分散
●先行する5個の凝視の連続する凝視間の最短距離
●先行する5個の凝視の連続する凝視間の最長距離
●後続する5個の凝視の連続する凝視間の最短距離
●後続する5個の凝視の連続する凝視間の最長距離
【0118】
これらの特徴448は、凝視214を分類する際に支援することが可能な先行する、もしくは、後続する凝視に関する様々な計測可能なファクタを例示する。凝視分類モジュール430は、凝視214の間の、もしくは、凝視214に近接する時刻のユーザインターフェイスデバイスの状態に基づいてユーザインタラクション特徴のセットを決定する(510)。ユーザインターフェイスデバイスは、一般的に、キーボード及びマウスなどのコンピューティングデバイス400の入力デバイス410を含む。
【0119】
以下の様々なサブセットを含む、ユーザインタラクション特徴が利用され得る。
●凝視の間のマウスカーソルの速度
●凝視の間の凝視へのマウスカーソルの平均距離
●凝視の間の凝視へのマウスカーソルからの距離の分散
●凝視の間のマウスカーソルと凝視との間の最短距離
●凝視の間のマウスカーソルと凝視との最長距離
●凝視の注視点の各々へのマウスカーソルからの平均距離(カーソルの位置は注視点の各々の計測と同一時点で識別される。)
●凝視の前の時間的に最も近いマウスイベントの際のマウスカーソルの位置と凝視の位置との間の距離
●凝視の後の時間的に最も近いマウスイベントの際のマウスカーソル位置と凝視の位置との間の距離
●凝視の間にマウスボタンが押されたか否か
●凝視の間にマウスボタンが押し下げられたか否か(すなわち、凝視の前にボタンが押され、凝視の少なくとも部分の間押し下げられていたか否か)
●凝視の間、マウスボタンが離されたか否か
●最近のマウスイベントと凝視の開始との間の時間長
●凝視の最後と凝視の後最も時間的に近いマウスイベントとの間の時間長
●最近のマウスイベントの際のマウスカーソルと凝視の位置との間の距離
●凝視の位置と凝視の後の次のマウスイベントの位置との間の距離
●凝視(中心)の位置と凝視の間マウスボタンが押されたときのマウスカーソルとの間の距離
●凝視の間のタイピング速度
●凝視の間にタイプされた文字数
●すぐ先行する5個の凝視の間の平均タイピング速度
●すぐ後続する5個の凝視の間の平均タイピング速度
【0120】
ユーザインタラクション特徴の上記リストは全てを網羅することを意図していない。上記リストは、凝視214を分類することに関連する可能性があるユーザインタラクションを計測する様々な特徴を例示している。クリック、マウスダウン、マウスアップなどの多岐に亘るマウスイベントがある。
【0121】
また、コンピュータマウスのいくつかは左及び右ボタンを含むため、特徴は2つのタイプのボタンの押下の間で区別され得る。さらに、コンピュータマウスの多くがスクロールホイールを含む。従って、特徴は、凝視の間にスクロールホイールが使用されたか否か、スクロールの長さなどを計測するために利用され得る。
【0122】
さらに、コンピューティングデバイスのいくつかはジョイスティックもしくは他の入力デバイスを利用する。例えば、アイトラッキングによるジョイスティックイベントの追跡は、ビデオゲームを評価するために有用であり得る。ビデオゲームを評価することは、静的な(もしくはほぼ静的な)領域を有するユーザインターフェイスを評価することよりも複雑である。ユーザインタラクション特徴は、ビデオストリームから検出されるジェスチャから導出され得る。
【0123】
実装は、特徴448の3つのカテゴリにおいて上記識別される特徴の全てまたはいずれかのサブセットを利用し得る。さらに、実装のいくつかは特徴448の全てもしくはサブセット、及び、明示的に上記されていないさらなる特徴448による補足を選択する。凝視特徴448の指定されたセットが識別され/決定されると、凝視分類モジュール430は凝視214にユーザアクティビティラベル444を割り当てる(512)。
【0124】
割り当てられたユーザアクティビティラベル450はユーザアクティビティラベル444の所定セットから選択される。実装のいくつかにおいて、凝視へのユーザアクティビティラベル444の割り当ては、機械学習アルゴリズムを利用する。入力特徴が既知であり、特徴の分類が既知である以前のデータのトレーニングセットを用いて、機械は比較的高精度に凝視を分類するためにトレーニングされ得る。
【0125】
実装のいくつかにおいて、機械学習はサポートベクターマシン(SVM)を利用する。実装のいくつかにおいて、機械学習はニューラルネットワークを利用する。実装のいくつかにおいて、ユーザアクティビティラベルは、機械学習ではなく、決定的アルゴリズムを用いて、凝視へ割り当てられる。機械学習を使用しない実装のいくつかは、より少ない凝視特徴448を使用する。
【0126】
図5に示すプロセスフローは、単一の凝視214の分類を例示する。ユーザアクティビティラベル444が凝視214に割り当てられると(512)、プロセスは終了する(514)。
図5に例示する基本プロセスは、以下で
図6に例示されるように、一般的に、多くの凝視に適用される。凝視特徴に基づく分類プロセスの詳細は繰り返されない。
【0127】
図6は、凝視214を分類するプロセスを例示する。
図6のプロセスは、2つに枝分かれするアプローチに
図5の方法を拡張する。プロセスが開始すると(602)、凝視のシーケンスを検出する(602)。
【0128】
上記したように、凝視を検出するプロセスは多くの既知アルゴリズムを利用することが可能である。実装のいくつかにおいて、既知のアルゴリズムは凝視の各々による有効性計測値を提供することにまで拡張される。
【0129】
図5に例示されるように、凝視分類モジュール430は、凝視214の各々に関連付けられている凝視特徴448を用いて、凝視214の各々にユーザアクティビティラベルを割り当てる(608)。ユーザアクティビティラベル444が凝視214の各々に割り当てられると、凝視分類モジュール430は、割り当てられたユーザアクティビティラベル450に基づいて重畳しないグループシーケンスに凝視214をグループ化する(610)。
【0130】
実装のいくつかにおいて、グループ化は、連続する凝視が同一のユーザアクティビティラベル450を有するか否かのみに基づいている。同一のユーザアクティビティラベルを有する場合、凝視214は同一のグループに含まれる。異なるユーザアクティビティラベルを有する場合、凝視214は異なるグループに含まれる。このプロセスは、凝視の区画を生成する。区画では、凝視の各々が必ず1つのグループに入りグループの各々の凝視は時間的に連続している。
【0131】
実装のいくつかにおいて、グループ化は、凝視が閲覧されているページ440の同一の領域442に位置しているか否かを考慮する。これらの実装において、割り当てられたユーザアクティビティラベルが同一であり、2つの凝視が同一の領域442に存在する場合のみ、2つの連続する凝視が同一のグループに配置される。条件に合致しない場合、凝視は異なるグループに配置される。このプロセスによって、凝視は分割される。凝視をグループ化する場合、領域を考慮しない実装よりもグループ数は大きくなる可能性がある。
【0132】
別個の独立したステップとして、凝視クラスタ化モジュール432は凝視セット214をクラスタ454に分割する(606)。実装のいくつかにおいて、クラスタ454は時間順に凝視を順次処理することによって形成される。まず、最初の凝視214が最初のクラスタ454であるとみなす。後続の凝視214の各々は、先行する凝視214を含む先行するクラスタ454に追加されるか、もしくは、新しいクラスタ454を開始する。
【0133】
実装のいくつかにおいて、後続の凝視214から直前の凝視までの距離が閾値より短い場合、次の凝視214は先行するクラスタ454に追加される。これは、一般的に左から右に読まれ、テキストの1つのセグメントを読む間の全ての凝視は共にクラスタ化されるべきである、ことによって説明される。その他の実装において、後続の凝視214が先行のクラスタ454の凝視のいずれかの距離の閾値より小さい場合、後続の凝視214は先行のクラスタ454に追加される。
【0134】
実装のいくつかは、先行するクラスタ454に後続の凝視214を追加するか否か判定するために2つのアイデアを結合する。まず、後続の凝視214が直後の凝視から第1の閾値距離範囲内であれば、後続の凝視は先行するクラスタ454に追加される。
【0135】
最初の計算に基づいて先行するクラスタに追加されないならば、凝視クラスタ化モジュール432は、後続の凝視214及び先行するクラスタ454の凝視のいずれかの間の最短距離を計算する。最短距離が第2の閾値距離よりも短い場合、後続の凝視214は先行するクラスタ454に追加される。後続の凝視214が2つのステップのいずれかに基づいて先行するクラスタ454に追加されない場合、新しいクラスタが開始される。新しいクラスタは、最初、後続の凝視のみを含む。
【0136】
このプロセスは、凝視セット全体にわたって順に継続される。凝視の各々について、1つのクラスタのみがあるものとみなされる。クラスタは時間的に連続する凝視を含む。従って、凝視の各々は、直前のクラスタに追加されるか、もしくは、新しいクラスタを開始する。このプロセスは、凝視の各々を1つのクラスタだけに含める。従って、クラスタは凝視の区画を形成する。
【0137】
凝視グループ452及び凝視クラスタ454が判定された後、併合・適合モジュール434はクラスタ454と領域443の環境におけるグループ452とを比較し、グループの最終セットを形成する。クラスタ454がグループ452と完全に適合する場合、グループは変更されない。また、グループの凝視の各々は、その割り当てられたユーザアクティビティラベル450を維持する。適合しないグループ及び適合しないクラスタについては、併合・適合モジュール434は差異に折り合いをつける。
【0138】
図7A及び
図7Bは、このプロセスの2つの例を示す。
図7Aにおいて、クラスタ数13は、テキスト1−1のラベルを付された単一の領域と一致する。しかしながら、行702と対応する凝視については、凝視は、元々ユーザアクティビティラベル「ナビゲート(navigating)」704に割り当てられていた。
【0139】
割り当てられたユーザアクティビティラベル704が正しくないと結論付ける複数の理由がある。クラスタが領域と一致しないだけでなく、行702の前及び後の割り当てられたユーザアクティビティラベルは「読む(reading)」と識別される。さらに、「ナビゲート」ラベルを有する凝視は1つだけである。従って、併合・適合モジュール434は、行702に対応する凝視を「読む」706と再分類する。
【0140】
図7Bにおいて、長いクラスタ番号23がある。クラスタ(テキスト(Text)1−5、リンク(Link)1−5、及びテキスト1−6)に関連する領域に割り当てられたユーザアクティビティラベル(領域テキスト1−5は「読む」、領域リンク1−5は「選択(selecting)」、領域テキスト1−6は「ナビゲート」)に基づいて、併合・適合モジュール434は領域及び割り当てられたユーザアクティビティラベルに対応する3つのクラスタにクラスタ番号23を分割する。
【0141】
行730及び732について、併合・適合モジュール434はクラスタ割り当て710(クラスタナンバー23)を新しいクラスタ712(クラスタナンバー23.1)に変更する。さらに、行734について、併合・適合モジュール434はクラスタ割り当て714(クラスタナンバー23)を新しいクラスタ716(クラスタナンバー23.2)に変更する。この例は、クラスタが、単一の凝視(例えば、行734に対応する凝視)を含むことが可能であることを示す。
【0142】
実装のいくつかにおいて、併合・適合モジュール434は凝視グループ452及び凝視クラスタ454の適合しない境界を処理する。これは、
図7C及び7Dに例示される。
図7C及び
図7Dは、
図7A及び
図7Bに示される同一の凝視クラスタ及び凝視グループを示す。例えば、
図7Cにおいて、クラスタ及びグループは、クラスタ及びグループが異なるとしても、750及び756に境界があることに合意する。問題は、グループの境界ではあるがクラスタの境界ではない、適合しない境界752及び754を維持するか、除去するかである。
【0143】
実装のいくつかにおいて、適合しない境界(例えば、752及び/もしくは754)の1つを維持するか除去するか決定するために、複数のファクタに基づくコスト/利益関数を使用する。境界752について、求められたグループを維持することは、利益である。しかしながら、境界を維持することがクラスタの分割及び領域の分割の双方を要求するかもしれない。コスト/利益分析においては、
図7Aに関連して上記したように、境界752及び754を廃棄することが適切である。
【0144】
図7Dにおいて、クラスタ及びグループは境界760及び766には合意するが、境界762及び764は適合しない。この場合、
図7Bに関連して上記したように、凝視が検出された領域は、境界762及び764の維持に有利に働く。含まれる領域の近接性、適合しない境界を維持するか廃棄するかに基づくグループの各々に含まれる凝視の数(例えば、大き過ぎず小さ過ぎないグループのプリファランス)及び境界の近傍で識別されたユーザアクティビティラベルなどの追加的なファクタがコスト/利益分析に含まれても良い。
【0145】
調整プロセスにおいて、割り当てられたユーザアクティビティラベルのいくつかは変更されてもよい。凝視グループが併合・適合モジュール434によって変更されない場合、グループの凝視の各々に割り当てられたユーザアクティビティラベルは維持される。例えば、
図7Bにおいて、クラスタは凝視グループに適合するように変更される。凝視グループは何れも変更されないので、割り当てられたユーザアクティビティラベルは全てそのまま残る。
【0146】
凝視グループが変更された場合、凝視のいくつかの割り当てられたユーザアクティビティラベルを変更してもよい。これは
図7Aに例示されている。行702の凝視に割り当てられたラベルは「ナビゲート」704から「読む」706に変更される。
【0147】
実装のいくつかにおいて、変更されたグループのユーザアクティビティラベルの割り当ては、以前割り当てられたユーザアクティビティラベルの「多数決」に基づく。例えば、
図7Aにおいて、変更されたグループは7つの凝視を有し、7つの凝視の内、6個がユーザアクティビティラベル「読む」を割り当てられている。この場合、行702の7番目の凝視には、「読む」706ユーザアクティビティラベルが割り当てられる。
【0148】
図6に戻ると、併合・適合モジュール434がグループ452とクラスタ454とを調整した後、凝視及び凝視に割り当てられたユーザアクティビティラベルが分析され推奨が生成される(614)。実装のいくつかにおいて、推奨はページのレイアウトに関連する(614)。
【0149】
実装のいくつかにおいて、推奨は、ユーザのために、リアルタイムに近い時間で提供される。例えば、アイトラッキング分析はユーザがコンピュータユーザインターフェイスを最適に使用していないことを示し、ユーザが行うべきことを指示する。
【0150】
実装のいくつかにおいて、併合・適合モジュール434はグループ452とクラスタ454とを調整した後、アクティビティシーケンスモジュール436はより高いレベルのアクティビティにユーザアクティビティを分類する(616)。凝視分類モジュール430は凝視の各々に個別にユーザアクティビティラベル444を割り当て、アクティビティシーケンスモジュール436はより高いレベルで分類されることが可能なより低いレベルのアクティビティのパターンを識別する。例えば、実装のいくつかは、目の動きの異なるパターンに基づいて、ユーザがコンテンツを読んでいるのか、目を通しているだけなのかを区別することが可能である。
【0151】
実装のいくつかにおいて、アクティビティ分類モジュール436は分析の凝視特徴446の1つもしくは複数を利用する。実装のいくつかにおいて、アクティビティシーケンスモジュール436は、分析において領域442を利用する。実装のいくつかにおいて、データベース438は、アクティビティシーケンスモジュール436がユーザアクティビティと比較するユーザアクティビティパターンのセットを保存する。実装のいくつかにおいて、以前のアクティビティパターンは、機械学習アルゴリズムへの入力として使用され、アクティビティシーケンスモジュール436は、トレーニングされた機械を高レベルアクティビティを分類するために使用する。
【0152】
図8A〜
図8Dは、実装のいくつかによる凝視を分類する(802)ためのフローチャート800である。処理は、1つもしくは複数のプロセッサ及びメモリを有するコンピューティングデバイス400によって実行される(804)。
【0153】
コンピューティングデバイス400は、1つもしくは複数のユーザインターフェイスデバイス(例えば、入力デバイス410)を用いて、コンピューティングデバイス400とインタラクションするユーザのアイトラッキングデータを受信する(806)。アイトラッキングデータは、時系列に並んだ凝視のシーケンスである。凝視214は、
図2C及び
図4に関連して上記したように、凝視検出モジュール428を用いて、未処理注視点212のシーケンスから判定される。
【0154】
実装のいくつかにおいて、ユーザインターフェイスデバイスはキーボード及びマウスを含む(808)。実装のいくつかにおいて、コンピューティングデバイス400は、
図3に例示したように、複数の別個の隣接する領域を有するページを表示する。
【0155】
図2C及び
図4に関連して上記したように、凝視の各々は、複数の隣接する測定された注視点の各々に対応する(812)。凝視検出モジュール428は、対応する測定された注視点212の各々に基づいて、継続期間及び位置の各々を凝視214に割り当てる(814)。凝視の注視点は時間的に連続しているため、実装のいくつかは、凝視の最初及び最後の注視点の間の時間差として継続時間を決定する。実装のいくつかにおいて、凝視の位置は重心である。
【0156】
コンピューティングデバイス400は、1つもしくは複数のユーザインターフェイスデバイスからユーザインタラクションデータ(816)も受信する。ユーザインターフェイスデバイスイベントについてのユーザインタラクションは、一般的に、イベントの時間及びイベントが何であるか(例えば、マウスの移動)の双方を含む。継続時間(例えば、マウス移動もしくはマウススクロール)を有するイベントについて、継続時間も、一般的に、インタラクションデータに含まれる。
【0157】
シーケンスの凝視の各々について(818)、凝視分類モジュール430は、複数の凝視の特徴を判定する(820)。ここで、「特徴」とは、凝視に対応する適切に定義された特性であり、量的に計測可能であってよい。
図5に関連して上記されたように、特徴は、凝視の直接的な特性である特徴、凝視のコンテキストに関する情報を提供する特徴、コンピューティングデバイスとのユーザインタラクションに基づく特徴、の3つのカテゴリに分類される。
【0158】
凝視の複数の特徴は、凝視の1つもしくは複数の特性を含む(822)。実装のいくつかにおいて、凝視の1つもしくは複数の特性は、凝視の継続時間、凝視に対応する連続計測注視点間の距離の変動、凝視の間に測定される人の瞳孔サイズの変動から選択される少なくとも1つの特性を含む(824)。凝視についての複数の特徴は、受信したユーザインタラクションデータに基づく1つもしくは複数のユーザインタラクション特徴も含む(826)。
【0159】
実装のいくつかにおいて、1つもしくは複数のユーザインタラクション特徴は、凝視の間のマウスカーソルの平均速度、凝視の間のマウスカーソル位置への凝視位置からの平均距離、凝視の間のマウスボタンの状態、及び、凝視の間にマウスボタンが押された場合の凝視位置とマウスカーソル位置との間の距離から選択される少なくとも1つのユーザインタラクション特徴を含む(828)。これについては、実装のいくつかが使用するユーザインタラクション特徴のより大きいリストを含む
図5に関連してより詳細に上記した。
【0160】
実装のいくつかにおいて、ユーザインタラクション特徴は、キーボードアクティビティに基づく特徴及びマウスアクティビティに基づく特徴の双方を含む(830)。実装のいくつかにおいて、複数の特徴は、凝視位置と直前の凝視位置との間の距離、凝視位置と直後の凝視位置との間の距離、直前の凝視の継続時間、及び、直後の凝視の継続時間から選択される1つもしくは複数のコンテキスト特徴を含む(832)。
【0161】
コンテキスト特徴のより拡張した例示的なリストは
図5に関連して提供される。凝視分類モジュール430は、複数の特徴を用いて、ユーザアクティビティラベルと凝視とを関連付ける(834)。ユーザアクティビティラベルは、ユーザアクティビティラベルの所定セットから選択される(836)。ラベルは、ユーザがコンピュータ画面(もしくは、他の実装では、印刷ページ)とインタラクションする一般的な方法で定義されるため、リストは一般的に小さい(例えば、9以下のラベルを含む)。例えば、実装のいくつかにおいて、ユーザアクティビティラベルの所定のセットは、調べる、読む、ナビゲート、選択、及び、入力、を含む。
【0162】
実装のいくつかにおいて、ユーザアクティビティラベルと凝視とを関連付けることは、サポートベクタマシンもしくはニューラルネットワークなどの機械学習を使用する(840)。これらの実装は、特徴セット(例えば、上記で識別された3つのタイプの40の特徴)を選択する。特徴の各々が、特徴ベクトルの成分(例えば、40の成分)に対応する。特徴及びユーザアクティビティの双方が既知であるトレーニングセットに基づいて、機械は、特徴と特定のユーザアクティビティとを相互に関連付ける方法を学習する。
【0163】
実施形態のいくつかにおいて、同じ割り当てられたユーザアクティビティラベルを有する連続する凝視はグループ化される(842)。従って、凝視は複数のグループに分割される。実装のいくつかにおいて、凝視は、第2の別個の技術を用いて、複数のクラスタにも分割される(844)。詳細は、
図6に関連して上記した。
【0164】
クラスタの各々は、時間順の凝視の連続的なサブシーケンスを含む(844)。実装のいくつかにおいて、複数のクラスタに凝視を分割することは、クラスタを構築するために時間順に凝視を処理することを含む(846)。処理は、時間順で最初の凝視を含む最初のクラスタから開始される。クラスタ化アルゴリズムは、一般的に、ユーザアクティビティラベルもしくはユーザアクティビティラベルを割り当てるために使用された特徴を利用しない。
【0165】
実装のいくつかにおいて、最初の凝視後の凝視の各々について(848)、3つのルールセットに基づいて、凝視前のクラスタに付加されるか、もしくは、新しいクラスタが開始される。凝視から直前の凝視までの距離が第1の所定距離より短い場合、直前の凝視を含むクラスタに凝視を付加する(850)。凝視から直前の凝視を含むクラスタのいずれかの凝視までの距離が第2の所定距離より短い場合、クラスタに凝視を付加する(852)。先の2つの状態のいずれも該当しない場合、凝視を含む新しいクラスタが生成される(854)。
【0166】
実装のいくつかにおいて、第1及び第2の所定距離が同じであり、その場合、2番目までのルールは単一のルールに纏められる。しかしながら、凝視が直前の凝視に近い可能性がより高いので、クラスタ化アルゴリズムは、実行効率を向上するために(距離のいずれかが閾値よりも短い場合、他の距離については計算する必要がない)、一般的に、直前の凝視までの距離をまず検討する。
【0167】
ユーザアクティビティラベルに基づいた凝視のグループ化及び凝視の近さに基づいたクラスタ化は、2つの別個の凝視の区画を形成する。多くの例において、グループ及びクラスタは相互に適合する。これにより、分類が適切である可能性が上昇する。しかしながら、グループ及びクラスタが適合しない場合、併合・適合モジュール434によって調整処理が実行される。詳細は、
図6、
図7A〜
図7Dに関連して上記した。
【0168】
実装のいくつかにおいて、クラスタの各々に適合するグループの各々について、グループの各々へのユーザアクティビティラベル割り当ては、グループの各々の凝視の各々に割り当てられた最終のユーザアクティビティラベルのまま、保持される(856)。実装のいくつかは、不適合グループからの凝視を含む非重畳改変グループセットを形成するために、領域を用いて、不適合グループと不適合クラスタとを調整する(858)。実装のいくつかにおいて、改変グループの凝視の各々は、同一の最終的なユーザアクティビティラベルを割り当てられる(860)(すなわち、改変グループの凝視の全ては互いに同一のラベルを有する)。
【0169】
ユーザアクティビティラベルはユーザアクティビティラベルの所定のセットから選択される(860)。(すなわち、所定のラベルセットが1つあり、所定のセットは凝視分類モジュール430及び併合・適合モジュール434の双方によって使用される。)実装のいくつかにおいて、不適合グループと不適合クラスタとを調整することは(858)、不適合境界セットを識別すること(864)を含む(862)。不適合境界セットの境界の各々は、グループ各々の境界ではあるがクラスタ各々のいずれかの境界ではないか、クラスタ各々の境界ではあるがグループ各々のいずれかの境界ではない(866)。不適合境界セットの境界の各々について、併合・適合モジュール434は、境界を維持するための維持コストの各々を計算し(870)、境界を除去するための除去コストの各々を計算する(870)。
【0170】
実装のいくつかにおいて、境界維持コスト及び境界除去コストは、改変グループのサイズ、改変グループの凝視継続時間、境界の両側の凝視に割り当てられたユーザアクティビティラベル、境界の両側の凝視に対応する領域、及び、領域のサイズ、から選択される複数のファクタに基づく(872)。併合・適合モジュール434は、次に、最も低いコストに基づいて境界を維持するか(874)除去する(874)。このプロセスは、
図6及び
図7A〜7Dに関して詳細に上記されている。
【0171】
不適合境界の全てが処理されると、併合・適合モジュール434は、不適合境界セットから維持される境界に基づいて改変グループのセットを識別する(876)。実装のいくつかにおいて、最終的なユーザアクティビティラベルは、改変グループの各々の凝視に以前割り当てられた最も優勢なユーザアクティビティラベルに基づいて改変グループの各々の凝視に割り当てられる(878)。(すなわち、多数決ルールアルゴリズム。)
【0172】
実装のいくつかにおいて、凝視及び関連付けられているユーザアクティビティラベルは、コンピュータユーザインターフェイスを修正するために1つもしくは複数の推奨を行うために分析される(880)。開示のクラスタ化及びグループ化技術は独立に適用され、その後、
図6、7A〜7D及び8A〜8Dに関連して上記されたように調整されているが、2つの技術は他の方法において、統合され得る。例えば、開示のクラスタ化アルゴリズムは、次の凝視を既存のクラスタに加えるか否か判定する場合に、領域及びユーザアクティビティラベルを利用するために、修正され得る。他の例として、クラスタ化アルゴリズムがまず適用され、クラスタ化及び領域情報が、凝視の各々を分類するために使用される特徴セットに含まれ得る。
【0173】
実装のいくつかにおいて、ユーザアクティビティを分類する代替的な方法は、1つもしくは複数のプロセッサ及びメモリを有するコンピュータシステムで、複数の別個の隣接する領域を有するページを見ているユーザのアイトラッキングデータを受信し、アイトラッキングデータは、時間順凝視シーケンスを含み、凝視の各々は計測された複数の注視点に対応し、凝視の各々は対応する計測された注視点の各々に基づく継続時間及び位置の各々を有し、凝視を複数のクラスタに分割し、クラスタの各々は凝視の連続するサブシーケンスを時間順に含み、凝視の特性セットに基づいて凝視の各々に仮のユーザアクティビティラベルを割り当て、ユーザアクティビティラベルはユーザアクティビティラベルの所定のセットから選択され、凝視を複数のグループに分割するために割り当てられた仮のユーザアクティビティラベルが同一である連続する凝視をグループ化し、クラスタの各々に適合するグループの各々について、グループの各々において凝視の各々に割り当てられた最終ユーザアクティビティラベルとして割り当てられた仮のユーザアクティビティラベルを維持し、領域を用いて、不適合グループからの凝視を含む非重畳改変グループのセットを形成するために、不適合グループと不適合クラスタとを調整し、改変グループの凝視の各々はユーザアクティビティラベルの所定のセットから選択される同一の最終ユーザアクティビティラベルを割り当てられる。
【0174】
実装のいくつかにおいて、複数のクラスタに凝視を分割することは、時間順に最初の凝視を含む最初のクラスタから開始して、クラスタを構築するために時間順に凝視を処理し、最初の凝視の後、凝視の各々について、凝視から直前の凝視までの距離が第1の所定距離よりも短い場合、直前の凝視を含むクラスタに凝視を追加し、凝視から直前の凝視を含むクラスタの凝視のいずれかまでの距離が第2の所定距離よりも短い場合、クラスタに凝視を追加し、2つの条件のいずれにも合致しない場合、凝視を含む新しいクラスタを生成する。実装のいくつかにおいて、仮のユーザアクティビティラベルを凝視の各々に割り当てるために機械学習を利用する。
【0175】
実装のいくつかにおいて、不適合グループと不適合クラスタとを調整することは、不適合境界セットを識別し、不適合境界セットの境界の各々はグループの各々の境界であるがいずれかのクラスタの境界ではないか、クラスタの各々の境界ではあるがいずれかのグループの境界ではなく、不適合境界セットの境界の各々について、境界を維持する維持コストの各々を計算し、境界を除去する除去コストの各々を計算し、もっとも低いコストを選択することに基づいて境界を維持するか除去し、不適合境界から維持された境界に基づいて改変グループのセットを識別し、改変グループの凝視に割り当てられた最も優勢な仮のユーザアクティビティラベルに基づいて改変グループの各々の凝視に最終的なユーザアクティビティラベルを割り当てる、ことを含む。
【0176】
実装のいくつかにおいて、境界維持コスト及び境界除去コストは、改変グループのサイズ、改変グループの凝視継続時間、境界の両側で凝視に割り当てられたユーザアクティビティラベル、境界の両側の凝視に対応する領域、領域のサイズを含むグループから選択される複数のファクタに基づく。実装のいくつかにおいて、ページは印刷ページである。実装のいくつかにおいて、ページはコンピュータユーザインターフェイスのウィンドウである。実装のいくつかにおいて、ユーザアクティビティを分類する方法は、ページのコンテンツを修正する1つもしくは複数の推奨を行うために凝視及び関連付けられているユーザアクティビティラベルを分析する、ことをさらに含む。
【0177】
上記は、説明を目的とし、特定の実装を参照して記述されている。しかしながら、上記の例示的な説明は網羅的であること、開示の精密な形態に発明を限定すること、を意図していない。多くの修正及び変更が、上記教示を鑑みて、可能である。実装は、発明の原理及び実際的な応用をもっとも適切に説明し、これにより、当業者が、発明及び考えられる特定の使用に適するように、様々な変更がされた様々な実装をもっとも適切に利用することを可能とするために、選択され、記述されている。