読者です 読者をやめる 読者になる 読者になる

Treasure Data Analytics 第5回 〜ブックレビューデータセットによるデータ解析入門(実践編2)

Treasure Data Analytics

 

前回の続きです。

5. 複数のノード・アクションをまたいだ分析

前回までは主に個々のノード・アクションのセグメント分析を行ってきましたが,ここからは,複数のノード・アクション(Query 的には複数のテーブルをまたがった記述に)をまたいだ解析を行っていきます。

5.1 過小/過大評価ユーザーおよび怠惰なユーザー(外れ値)の特定

ここではあるステータスから導かれる,外れ値とみなせるサンプルを特定してみましょう。

今回のようなレビューデータセットでは,例えば 10 段階評価の付け方であっても悪い評価を付けたがらないユーザーもいますし,めったに高評価を付けない辛口なユーザーもいます。もちろんこれらのユーザーは例外では無く,こういった多様性を考慮した上で解析を行っていくことは重要です。

ただ評価の付け方があまりにも偏っているユーザーに関しては外れ値として考慮した方が良いケースもあります。今回は以下の評価の付け方を持つユーザーを外れ値と見なして特定し,それを一種のセグメントと見なした上での解析を行って行くことにします。ここでは,

  1. そもそも偏ったユーザー(外れ値)が全体に関してどれくらいいるのか
  2. それらのユーザーの影響を大きく受け,過小/過大評価されていたブックの特定

 を行ってみることにします。

まずは「怠惰な」ユーザーを特定するために,以下で定義を与えておきます。

  • 通算 5 回以上の評価を行っているユーザーで,毎回同じ評価値しかつけないユーザーを「怠惰な」ユーザーと呼ぶ。

つまり 1〜10 までの評価レンジがあるのにも関わらずいつも 5 や 7 といった同じ評価値しか付けないユーザーは真剣に「評価」を行っていない外れ値サンプルとみなすということです。

また,常に一定の評価値以上/以下しかつけないユーザーも注目に値します。その定義として,ここでは

  • 常に 9 以上の評価値しかつけないユーザーを「過大評価」ユーザー,
  • 常に 5 以下の評価値しかつけないユーザーを「過小評価」ユーザー

と呼ぶことにします。

上記の定義で「9 以上」「5 以下」という閾値を決めるための手段としては 4.2 で見た「ユーザ当たりの評価平均の分布」を見るのが有効です。

f:id:doryokujin:20120629003817p:plain

図1:ユーザー当たりの評価平均値の分布。全体平均 7.6 を峰の中心とした正規分布に近い形を取ります。

この図を見ればわかるように,まずは平均的に 5 以下の評価を付けているユーザーはほとんどいないことがわかります。

ましてや「平均」ではなく,「常に」 5 以下を付けているユーザーとなればさらにマイノリティになります。平均的に 9 以上の評価値を付けているユーザーは結構いますが,さらに「常に」9 以上付けているユーザーも同様の考え方です。

それでは上記の 3 種類の偏った評価をするユーザーの人数を調べてみましょう。

Query 5.1.1

Result     :
+-------------+-----+
| rating_type | cnt |
+-------------+-----+
| ∀Const    | 137 |
| ∀Over 9   | 137 |
| ∀Under 5  | 64  |
+-------------+-----+

1 行目が常に同じ評価値をつけるユーザー,次が常に 9 以上の評価値をつけるユーザー,最後が常に 5 以下の評価値をつけるユーザーです。1.1 よりアクティブユーザーは 105,283 人でしたので,割合としては高々 0.1 % 前後です。

(a)「怠惰なユーザー」

さて,まず毎回同じ評価しかつけない「怠惰な」ユーザーはいつもどの評価値をつけているのか,またそこに傾向があるのかが気になる所です。さっそく確認してみましょう。結果を見ると面白いことに 5 と 10 の評価値に大きく偏っていることがわかります。

中間値である 5 と最高値である 10 につく傾向は,評価レンジが変わったときにもこの 2 点に偏るのかどうかは関心のあるところです。

Query 5.2.1

Result     :
+-------------+-----+
| book_rating | cnt |
+-------------+-----+
| 5.0         | 53  |
| 6.0         | 1   |
| 7.0         | 3   |
| 8.0         | 8   |
| 9.0         | 4   |
| 10.0        | 68  |
+-------------+-----+

f:id:doryokujin:20120702150942p:plain

図2:「怠惰な」ユーザーが付ける評価値の分布。面白い事に 5 と 10 に偏っていることがわかります。

次に「怠惰な」ユーザーの年代別の割合を見てみます。評価を面倒くさがるユーザーは特定の年代に偏っているかもしれない,という仮説は検討の余地はありそうということで。

Query 5.2.2

Result     :
+------------+-----+-----------+------+
| generation | cnt | total_cnt | rate |
+------------+-----+-----------+------+
| 15         | 2   | 5543      | 0.04 |
| 20         | 12  | 17323     | 0.07 |
| 25         | 11  | 25913     | 0.04 |
| 30         | 12  | 26348     | 0.05 |
| 35         | 12  | 22995     | 0.05 |
| 40         | 11  | 17258     | 0.06 |
| 45         | 9   | 13756     | 0.07 |
| 50         | 4   | 12142     | 0.03 |
| 55         | 3   | 10377     | 0.03 |
| 60         | 3   | 7219      | 0.04 |
| 65         | 3   | 3982      | 0.08 |
+------------+-----+-----------+------+

結果テーブル 2 列目が年代別の人数ですが,主要な年代(20〜40)では同じくらいの人数であるように見えます。本来は,『年代別で「怠惰な」ユーザーのいる割合が異なるのか』という問題はテストを持って比較すべきですが,今回は各年代の全体数に関してサンプルが少なすぎる(多くても 0.08% しかない)という意味で妥当な比較は困難です。(テストの実践については改めて別の機会に紹介するつもりです。)

(b)「過小/過大評価ユーザー」

次の例として上述の過小/過大評価のユーザーからの評価をたくさん受けたために,その評価平均が過小/過大評価気味になっているブックを特定してみましょう。

※ なお,先ほどの評価が「常に 9 以上」「常に 5 以下」のユーザーでは少しサンプル数が少ないので「常に 8 以上」「常に 6 以下」の影響を取り除いたブックの平均評価値というのを考えることにします。

Query 5.1.2

Result : 
+-------------+-----+
| rating_type | cnt |
+-------------+-----+
| ∀Over 8   | 544 |
| ∀Under 6  | 115 |
+-------------+-----+
まずは毎回 8 以上の評価しかしないユーザーの影響を強く受け,他のブックと比較して相対的に高めの値となっているブック TOP20 を算出してみましょう。

Query 5.3.1

f:id:doryokujin:20120702223810p:plain

図3:上から順に過大評価ユーザーの影響を強く受けていたブックを並べています。青いバーが影響を除いた後の(低くなった)評価値,黄色が元の評価値との差分。

次に毎回 6 以下の評価しかしないユーザーの影響を強く受け,他のブックと比較して相対的に低めの値となっているブック TOP20 を算出してみましょう。

Query 5.3.2

f:id:doryokujin:20120702223832p:plain

図4:上から順に過小評価ユーザーの影響を強く受けていたブックを並べています。青いバーが影響を除くの(低かった)評価値,黄色が影響を除いた場合を加味することによる増加分。

5.2 評価数の多いブックに関する分析

評価数の多いブックは良くも悪くも話題性のあったブックで有り,かつそれなりの販売数が出ているものと推測できます。これらの本を特定し,その傾向(かっこよく言えば話題性/販売数の増加をもたらした原因)を見いだすのは自然な行為でしょう。

まずは評価数の多かったブックトップ 20 をリストアップしましょう。

Query 5.4.1

Result : 
+------------+------------------------------------------------------------------+------+------------+------+--------+
| isbn       | title                                                            | year | rating_cnt | avg  | stddev |
+------------+------------------------------------------------------------------+------+------------+------+--------+
| 0316666343 | The Lovely Bones: A Novel                                        | 2002 | 707        | 8.19 | 1.53   |
| 0971880107 | Wild Animus                                                      | 2004 | 581        | 4.39 | 2.38   |
| 0385504209 | The Da Vinci Code                                                | 2003 | 487        | 8.44 | 1.67   |
| 0312195516 | The Red Tent (Bestselling Backlist)                              | 1998 | 383        | 8.18 | 1.69   |
| 0060928336 | Divine Secrets of the Ya-Ya Sisterhood: A Novel                  | 1997 | 320        | 7.89 | 1.63   |
| 059035342X | Harry Potter and the Sorcerer's Stone (Harry Potter (Paperback)) | 1999 | 313        | 8.94 | 1.43   |
| 0142001740 | The Secret Life of Bees                                          | 2003 | 307        | 8.45 | 1.49   |
| 0446672211 | Where the Heart Is (Oprah's Book Club (Paperback))               | 1998 | 295        | 8.14 | 1.45   |
| 044023722X | A Painted House                                                  | 2001 | 281        | 7.34 | 1.79   |
| 0452282152 | Girl with a Pearl Earring                                        | 2001 | 278        | 7.98 | 1.44   |
| 0316601950 | The Pilot's Wife : A Novel                                       | 1999 | 272        | 7.5  | 1.74   |
| 0671027360 | Angels & Demons                                              | 2001 | 269        | 8.1  | 1.6    |
| 067976402X | Snow Falling on Cedars                                           | 1995 | 256        | 7.81 | 1.87   |
| 0316769487 | The Catcher in the Rye                                           | 1991 | 243        | 7.69 | 2.22   |
| 0786868716 | The Five People You Meet in Heaven                               | 2003 | 242        | 8.02 | 1.79   |
| 0743418174 | Good in Bed                                                      | 2002 | 236        | 8.05 | 1.33   |
| 0345337662 | Interview with the Vampire                                       | 1993 | 230        | 7.78 | 1.73   |
| 0375727345 | House of Sand and Fog                                            | 2000 | 229        | 7.33 | 1.63   |
| 0312278586 | The Nanny Diaries: A Novel                                       | 2002 | 226        | 7.54 | 1.74   |
| 0156027321 | Life of Pi                                                       | 2003 | 226        | 8.03 | 1.79   |
+------------+------------------------------------------------------------------+------+------------+------+--------+

上記の結果で面白いのは,評価数 TOP20 の多くが全体平均と同じかやや高い平均値を持っている中で,2 位の「Wild Animus」だけが 4.39 という低評価を持っていることです。今度は平均値では無く分布を見てみることにしましょう。ここでは 2 位を含む TOP5 に限定します。

Query 5.4.2

f:id:doryokujin:20120702235350p:plain

図5:評価数の多いブック TOP5 の評価分布をシンメトリックなエリアチャートにて表現しています。それぞれ 評価値の最頻値は異なりますが TOP2 だけは明らかに分布の形が異なることがわかります。

この TOP2 の「Wild Animus」,Amazon のレビューを見てもひどい評価をたくさんもらっていることがわかります。今回のデータセットにはコメントなどの評価の内容を知るデータは含まれておりませんので,このデータ単体ではネガティブとなった原因までは追及できませんが,Amazon などのレビューコメントデータとは isbn で join できますので,それと併せてテキスト解析にまで持ち込むのも面白いかもしれません。

5.3 評価平均値の高いブックに関する分析

さて,5.2 と同じ枠組みで今度は評価平均値が高いブックを特定することも容易です。50 以上の評価数を持つブックを条件に,最も平均評価値の高い TOP20 を紹介しましょう。

Query 5.5.1

Result : 
+------------+----------------------------------------------------------------------------------+------+------+-----+--------+
| isbn       | title                                                                            | year | avg  | cnt | stddev |
+------------+----------------------------------------------------------------------------------+------+------+-----+--------+
| 0345339738 | The Return of the King (The Lord of the Rings, Part 3)                           | 1986 | 9.4  | 77  | 1.09   |
| 0439139597 | Harry Potter and the Goblet of Fire (Book 4)                                     | 2000 | 9.26 | 137 | 1.23   |
| 043936213X | Harry Potter and the Sorcerer's Stone (Book 1)                                   | 2001 | 9.21 | 53  | 1.15   |
| 0345339711 | The Two Towers (The Lord of the Rings, Part 2)                                   | 1986 | 9.12 | 83  | 1.21   |
| 0439136369 | Harry Potter and the Prisoner of Azkaban (Book 3)                                | 2001 | 9.08 | 133 | 1.25   |
| 0064400557 | Charlotte's Web (Trophy Newbery)                                                 | 1974 | 9.07 | 68  | 1.18   |
| 0439136350 | Harry Potter and the Prisoner of Azkaban (Book 3)                                | 1999 | 9.04 | 141 | 1.43   |
| 043935806X | Harry Potter and the Order of the Phoenix (Book 5)                               | 2003 | 9.03 | 206 | 1.33   |
| 0156528207 | The Little Prince                                                                | 1968 | 8.98 | 51  | 1.32   |
| 0590353403 | Harry Potter and the Sorcerer's Stone (Book 1)                                   | 1998 | 8.98 | 119 | 1.46   |
| 0441172717 | Dune (Remembering Tomorrow)                                                      | 1996 | 8.97 | 75  | 1.41   |
| 0439139600 | Harry Potter and the Goblet of Fire (Book 4)                                     | 2002 | 8.95 | 110 | 1.3    |
| 0446310786 | To Kill a Mockingbird                                                            | 1988 | 8.94 | 214 | 1.37   |
| 059035342X | Harry Potter and the Sorcerer's Stone (Harry Potter (Paperback))                 | 1999 | 8.94 | 313 | 1.43   |
| 0439064864 | Harry Potter and the Chamber of Secrets (Book 2)                                 | 1999 | 8.92 | 126 | 1.38   |
| 055321313X | Anne of Green Gables (Anne of Green Gables Novels (Paperback))                   | 1982 | 8.91 | 53  | 1.51   |
| 0440498058 | A Wrinkle In Time                                                                | 1998 | 8.88 | 81  | 1.16   |
| 0345348036 | The Princess Bride: S Morgenstern's Classic Tale of True Love and High Adventure | 1987 | 8.84 | 74  | 1.54   |
| 0345339703 | The Fellowship of the Ring (The Lord of the Rings, Part 1)                       | 1986 | 8.84 | 131 | 1.65   |
| 0812550706 | Ender's Game (Ender Wiggins Saga (Paperback))                                    | 1994 | 8.84 | 117 | 1.33   |
+------------+----------------------------------------------------------------------------------+------+------+-----+--------+

ハリーポッター,ロードオブザリングシリーズがこぞってランクインしているのが面白いところです。今回も TOP5 の評価値の分布を見てみることにしましょう。

Query 5.5.2

f:id:doryokujin:20120703013859p:plain

図6:評価平均が最も高かったブック TOP5 の分布。

5.4 評価平均値の高いブックに関する分析(出版年別)

今度も同じ枠組みで,出版年別(1994年〜2004年)における評価平均 TOP1 を見ていくとともにその分布を見ることにします。

Query 5.6.1

Result : 
+------+----------------------------------------------------------------------------+------+-----+--------+
| year | title                                                                      | avg  | cnt | stddev |
+------+----------------------------------------------------------------------------+------+-----+--------+
| 2004 | The Curious Incident of the Dog in the Night-Time (Vintage Contemporaries) | 8.59 | 51  | 1.24   |
| 2003 | Harry Potter and the Order of the Phoenix (Book 5)                         | 9.03 | 206 | 1.33   |
| 2002 | Harry Potter and the Goblet of Fire (Book 4)                               | 8.95 | 110 | 1.3    |
| 2001 | Harry Potter and the Sorcerer's Stone (Book 1)                             | 9.21 | 53  | 1.15   |
| 2000 | Harry Potter and the Goblet of Fire (Book 4)                               | 9.26 | 137 | 1.23   |
| 1999 | Harry Potter and the Prisoner of Azkaban (Book 3)                          | 9.04 | 141 | 1.43   |
| 1998 | Harry Potter and the Sorcerer's Stone (Book 1)                             | 8.98 | 119 | 1.46   |
| 1997 | Tuesdays with Morrie: An Old Man, a Young Man, and Life's Greatest Lesson  | 8.62 | 200 | 1.55   |
| 1996 | Dune (Remembering Tomorrow)                                                | 8.97 | 75  | 1.41   |
| 1995 | Ishmael: An Adventure of the Mind and Spirit                               | 8.46 | 94  | 1.58   |
| 1994 | Ender's Game (Ender Wiggins Saga (Paperback))                              | 8.84 | 117 | 1.33   |
+------+----------------------------------------------------------------------------+------+-----+--------+

Query 5.6.2

f:id:doryokujin:20120703020331p:plain

図7:評価平均が最も高かったブックTOP1の出版年別分布。年別に見るとTOP1のブックの評価分布が各々特徴を持っているのがおもしろい。


6. 同時参照されているブックペアに関する分析(共起分析)
多くのユーザーは複数のブックを読み,評価を行っているわけですので共起分析が可能です。例えばユーザーA がブック1,ブック2,ブック3 を読んでいるとすると,
  • (ブック1,ブック2)
  • (ブック1,ブック3)
  • (ブック2,ブック3)
というペアがそれぞれ共起したとして 1 カウントされます。この任意のペアについてユーザー全てで和(共起頻度)を取ります。ここで単純に共起度数の高いペアの上位を取ってくることも考えられますが,双方の出現頻度に対して非常に高い割合で共起しているペアがあったとしても,そもそも出現頻度の低いブックが含まれているとそのペアは上位には現れてきません。
今回は共起頻度から導かれる一種の「共起度合」を表す係数:Simpson 係数を計算することで一種の正規化を行い,出現頻度の低いブックペアでもその共起割合が大きければ上位に来るようにしました。
※ このクエリでは (book1, book2) と (book2, book1) の区別ができていませんので TOP20 を得る場合は LIMIT40 で指定する必要があります。以下の結果テーブルではペアとしての重複を省いて表示しています。
Result     :
+----------------------------------------------------+-------+------+----------------------------------------------------+-------+------+--------------+---------------------+
| title1                                             | year1 | cnt1 | title2                                             | year2 | cnt2 | intersection | simpson             |
+----------------------------------------------------+-------+------+----------------------------------------------------+-------+------+--------------+---------------------+
| The Firm                                           | 1992  | 529  | The Pelican Brief                                  | 1993  | 523  | 200          | 0.3824091778202677  |
| The Pelican Brief                                  | 1993  | 523  | A Time to Kill                                     | 1992  | 517  | 184          | 0.35589941972920697 |
| A Time to Kill                                     | 1992  | 517  | The Firm                                           | 1992  | 529  | 160          | 0.30947775628626695 |
| The Da Vinci Code                                  | 2003  | 883  | Angels & Demons                                | 2001  | 586  | 181          | 0.30887372013651876 |
| Wild Animus                                        | 2004  | 2502 | The Firm                                           | 1992  | 529  | 130          | 0.24574669187145556 |
| Angels & Demons                                | 2001  | 586  | Wild Animus                                        | 2004  | 2502 | 137          | 0.23378839590443687 |
| The Lovely Bones: A Novel                          | 2002  | 1295 | The Secret Life of Bees                            | 2003  | 615  | 143          | 0.23252032520325203 |
| The Pelican Brief                                  | 1993  | 523  | Wild Animus                                        | 2004  | 2502 | 120          | 0.2294455066921606  |
| Interview with the Vampire                         | 1993  | 506  | Wild Animus                                        | 2004  | 2502 | 116          | 0.22924901185770752 |
| Where the Heart Is (Oprah's Book Club (Paperback)) | 1998  | 585  | Divine Secrets of the Ya-Ya Sisterhood: A Novel    | 1997  | 732  | 134          | 0.22905982905982905 |
| The Lovely Bones: A Novel                          | 2002  | 1295 | The Pilot's Wife : A Novel                         | 1999  | 568  | 129          | 0.22711267605633803 |
| Wild Animus                                        | 2004  | 2502 | House of Sand and Fog                              | 2000  | 552  | 124          | 0.2246376811594203  |
| A Time to Kill                                     | 1992  | 517  | Wild Animus                                        | 2004  | 2502 | 116          | 0.22437137330754353 |
| The Joy Luck Club                                  | 1994  | 519  | The Lovely Bones: A Novel                          | 2002  | 1295 | 115          | 0.22157996146435452 |
| House of Sand and Fog                              | 2000  | 552  | The Lovely Bones: A Novel                          | 2002  | 1295 | 122          | 0.2210144927536232  |
| Wild Animus                                        | 2004  | 2502 | The Da Vinci Code                                  | 2003  | 883  | 195          | 0.22083805209513024 |
| Girl with a Pearl Earring                          | 2001  | 526  | The Lovely Bones: A Novel                          | 2002  | 1295 | 116          | 0.22053231939163498 |
| Where the Heart Is (Oprah's Book Club (Paperback)) | 1998  | 585  | The Lovely Bones: A Novel                          | 2002  | 1295 | 129          | 0.2205128205128205  |
| The Lovely Bones: A Novel                          | 2002  | 1295 | Divine Secrets of the Ya-Ya Sisterhood: A Novel    | 1997  | 732  | 161          | 0.21994535519125682 |
| The Lovely Bones: A Novel                          | 2002  | 1295 | The Red Tent (Bestselling Backlist)                | 1998  | 723  | 159          | 0.21991701244813278 |
+----------------------------------------------------+-------+------+----------------------------------------------------+-------+------+--------------+---------------------+
これらの結果はレコメンデーションなどでも活用されます。
 
最後に
今回はパブリックデータセットを使用してほんの入り口程度ですが,データ解析について具体的なクエリとともに説明しました。今回の特に「セグメント」を意識した解析はあらゆるデータセットに関して有効であり,かつ解析のスタートして非常に重要なフェーズとなりますので是非ともご自身のデータに対しても色々とセグメントを作って分布を眺めて見てください。新しいデータの「切り口」が見えてくるかもしれません。