明示的にグラフ構造でないデータに対してもGraph Convolution Network(GCN)が使える!?
ドコモの久保田です。この記事では、データマイニングの国際会議であるKDD2020で開催されたThe Second International Workshop on Deep Learning on Graphs: Methods and Applications (DLG-KDD’20)に採択された私たちの論文"Time-aware GCN: Representation Learning for Mobile App Usage Time-series Data"を紹介します。論文はKDDのリンクのページからダウンロードできます。
KDD2020の投稿傾向
KDD2020のOpening1でResearch Trackのトピックごとの投稿論文数が報告されていましたが、上位2つが以下のトピックに関するものでした。
- Graph Mining 260本
- Representation Learning 168本
Research Trackの採択論文数217本から見ても多くのグラフ関連の論文や表現学習に関する論文が投稿されていたようです。
私たちの論文が採択されたのはKDD Workshopですが、Graph×Representation Learningというトレンドに乗った内容になっています。
どんなもの
時系列データをグラフデータとして捉えることでGCNを適用し時系列データのよりよい表現を獲得するというものです。
今回は、アプリログを用いて、アプリログのデータの特性を考慮した手法を提案しています。
普段スマホでアプリを利用しているとき、このようなことがありませんか?
- 通勤中に普段はTwitterを見てTikTokを見るが、なんとなくの気分で今日はTikTokから見始めた
- NewsPicksのアプリで気になった記事をEvernoteにメモするようにしているが、今日はNewsPicksを見ているときに友人からLINE通知が来てLINEを開いた
これらの例のように、通勤中にSNSを見るやNewsPicksを見た後にEvernoteにメモするというユーザの習慣に基づく長期的なアプリ利用のパターンは、あまり変化しないと考えられるが、短期的な利用はユーザの気分や通知等により変化する可能性があります。
よりよい表現を獲得するうえで、正確に時系列のパターンを学習するlong-short-term memory(LSTM)などの手法では対処できない可能性があります。
このような状況において、短期的なアプリ利用の変化による影響を軽減しつつアプリ利用に関するよりよい表現を獲得するために、GCNを用いた手法を提案しています。
提案手法
GCNを適用するためのグラフ構築
GCNを適用するには、グラフ構造のデータが必要であり、より良い表現を獲得するためにはアプリログから時系列情報を保持したグラフを構築する必要があります。これを実現するために、以下の手順でアプリ利用に関するグラフを構築します。
- アプリログからスライディングウィンドウを用いて$n$個のアプリを抽出(これをアプリ利用系列と定義)
- あるアプリ利用系列$S$に注目して、アプリをノード、アプリ間の利用時間間隔が$\Delta t_{\text{th}}$であれば、アプリ間にエッジを張ることでアプリ利用グラフを構築
よりよい表現を獲得できたかを評価
アプリログのより良い表現を獲得できたかを、次のアプリを予測するタスクとして定義します。また、次のアプリを予測するタスクをGCNで実現するためにグラフ分類問題として捉えることで実現します。
実験
実際のアプリログのデータセットを用いて評価を実施します。
ベースラインはLSTMと既存研究から時間差$\Delta t_{\text{th}}$以内の直前のアプリのみからエッジを張る手法(T-GCN-SEと定義)として実験を行いました。
時系列情報をどのように考慮してグラフを構築するかが精度に影響を与えると考え、アプリ間でエッジを張る時間差$\Delta t_{\text{th}}$を変化させて実験を行いました。
結果としては、ある程度の長さの時間差内のアプリ簡にエッジを張ることが有効であることが分かりました。
提案手法であるT-GCNがベースライン手法よりも精度が向上することを明らかにしました。
特に、accuracy@10では、LSTMと比較して3.6%の精度向上を確認しました。
実装
実装に関しては、Deep Graph Library(DGL)2を利用しました。Pytorchから使える点と、tutorialに事例が豊富に記載されていおり参考にしながら実装できたので、実装コストが低くかった点が魅力的でした。
最後に
KDD2020のTutorialや本会議にも参加していましたが、オンライン開催だったこともあり発表動画が好きなだけ見れたので良い部分もあったなと思いました。こういった学会発表などに関しても全面的に支援してくれる環境はとても恵まれているなと思います。これからも事業的に貢献し、学術的にも貢献があるような研究開発を実施していきたいですね(来年は本会議へ!)。
最後まで読んでいただきありがとうございました。
-
KDD2020のOpeningは以下のリンクから閲覧できます。 ↩