HOW TO TD(User Engagement)Treasure Data User Engagement

Treasure Data Analytics 第3回 〜ブックレビューデータセットによるデータ解析入門(準備編)〜

ホーム » Treasure Data Analytics 第3回 〜ブックレビューデータセットによるデータ解析入門(準備編)〜

この記事は最終更新から3年以上が経過しています。最新情報は担当のカスタマーサクセスにご確認ください。

はじめに

前回まで Treasure Data Cloud Warehouse の紹介をしていましたが,今回からはパブリックデータを利用したデータ解析のユースケースを紹介して行きます。またこの紹介を持って td コマンドの使い方にも慣れてもらえればと思っています。

Book-Crossing Dataset

今回は Web 上に公開されているパブリックデータセット:Book-Crossing Dataset を扱います。Book-Crossing Dataset には以下の 3 テーブルからなるブックレビューデータです:

  • (S-1) “users”: ユーザーデータ(user_id, age, country,…)
  • (S-2) “books”: ブックデータ(isbn, book_title, authour, year_of_publication,…)
  • (A-1) “ratings”: レビューデータ(user_id, isbn, book_rating)

※ (S-1) や (S-2) の S は”Status”,(A-1) の A は”Action” を意味しています。

これらの生データは以下の様になっています(実際にインポートするデータはカラム名および項目数を変更してあります):

# users
'UserID';'Location';'Age'
'1';'nyc, new york, usa';NULL
'2';'stockton, california, usa';'18'
# books
'ISBN';'BookTitle';'BookAuthor';'YearOfPublication';'Publisher';'ImageURLSizeS';'ImageURLSizeM';'ImageURLSizeL'
'0195153448';'Classical Mythology';'Mark P. O. Morford';'2002';'Oxford University Press';'http://images.amazon.com/images/P/0195153448.01.THUMBZZZ.jpg';'http://images.amazon.com/images/P/0195153448.01.MZZZZZZZ.jpg';'http://images.amazon.com/images/P/0195153448.01.LZZZZZZZ.jpg'
'0002005018';'Clara Callan';'Richard Bruce Wright';'2001';'HarperFlamingo Canada';'http://images.amazon.com/images/P/0002005018.01.THUMBZZZ.jpg';'http://images.amazon.com/images/P/0002005018.01.MZZZZZZZ.jpg';'http://images.amazon.com/images/P/0002005018.01.LZZZZZZZ.jpg'
# ratings
'UserID';'ISBN';'BookRating'
'276725';'034545104X';'0'
'276726';'0155061224';'5'

これらのデータセットに対してより明白な見通しを事前に立てておくために,「ステータス」と「アクション」という分類を考えてみることにします。

  • ステータスログ:ユーザーやモノの「状態」を表すログ
  • アクションログ:ユーザーやモノの「行動」を表すログ

ステータスログとは,ユーザーやモノの現在の状態を表す情報を持ったテーブルを指します。今回の Book-Crossing Dataset におけるステータスログは “users” と “books” テーブルとなります。前者はユニークID: “user_id” 持つユーザーの情報を含むテーブルで,「年齢 (“age”)」「居住国 (“country”)・地域 (“location1″,”location2”)」というステータスを持っています。後者はユニークID: “isbn” を持つブックの情報を持つテーブルで「タイトル(“book_title”)」「出版年 (“year_of_publication”)」「著者 (“book_author”)」「出版社 (“publisher”)」などといったステータスを持っています。

一方アクションログとは「登録」や「購入」「評価する」「メッセージを送る」といった行動に関するテーブルです。また,アクションもステータスを持っている場合があります。今回は “rating” テーブルがそれに該当し,(カラムに明示してないですが)「評価する」という1種類のアクションが内在しています。このアクションには行動主体となるユーザーの “user_id” と対象となるブックの “isbn” の他に「評価ポイント (“book_rating”)」というステータスを持っています。

一般にアクションログには 行動主体(ユーザー)と対象(モノ・ユーザー,行動主体と同じ場合もある)が存在し,オプションとしてステータスが付与されています。

Data Set と Property Graph

(※ 余談なので読み飛ばして問題ありません)

解析対象となる一連のデータセットの多くは,上記の「アクション」「ステータス」「行動主体」「対象」という概念を利用して “Property Graph” によるグラフ表現が可能です。「行動主体」と「対象」になり得るユーザーやモノはノード,各アクションはエッジで表現します。ノードの持つ属性情報がステータスに当たります。また前述の通りエッジにも属性を持たせることができ,これもステータスと呼ぶことができます。

図1:Book-Crossing Dataset の Property Graph による表現。ノードとエッジおよびそれらの属性を表す key-value 集合から構成されます。図1では “user” と “book” という2種類のノードがあり, “user” (行動主体)からの “review” というアクションを介して “book” (対象)とつながっています。また “user”, “book” はそれぞれステータスを持っており,”review” というエッジにも “book_rating” ( = 評価ポイント∈ [0,10])と呼ばれるステータスを持っています。

図2:複数のアクションを持つ Property Graph の例。この場合は “user” と “book” のステータスを表すテーブルに加え,”add_to_list”, “review”, “buy”, “comment” というアクションを表すテーブルが解析対象となるデータセットとなります。

Property Graph はデータセットの構造をわかりやすく表現する事に加えて,一連のデータ操作:「検索」「判別・分類」「推薦」といったものをグラフ上の操作にマッピングして扱うことができます。この特徴に関しては他の機会で紹介します。

UserEngagement事務局

ユーザーの皆さまへのお知らせや、Treasure Data UserEngagementのサイト運営を担当する事務局アカウント。 記事にコメントをいただけると中の人が喜びます。
Back to top button