DEIM Forum 2016 C7-1

Cookpad のつくれぽ数の時間変動に基づく類似レシピ抽出法の提案
桐本 宙輝†

風間 一洋†† 和歌山大学 システム工学部 〒 640–8510 和歌山県和歌山市栄谷 930
E-mail: †{s171063,kazama}@sys.wakayama-u.ac.jp
あらまし

人間の生活は 1 日，1 週間，1ヶ月，1 年などの何らかの周期性を持つことが多く，それに食事を調理して食べるという日常的な行動も大きく影響される．本稿では，Cookpad で公開されているレシピのつくれぽ数の頻度変化を各周期に合わせて畳み込んだ特徴ベクトルを用いて，レシピの周期性の有無と，レシピ間の時間的特性の類似性を抽出する手法と，レシピのカテゴリ木の階層構造を利用してクラスタの内容を要約する手法を提案する．実際に，それらの特徴ベクトルを k-means 法でクラスタリングすることで，バレンタインデーのようなイベントや，夏のような季節，平日や休日などの生活パターンに関連したクラスタが抽出されることを示す．
キーワード

Cookpad, つくれぽ, 代表カテゴリ, クラスタリング, 周期性
ある一定の周期におけるレシピの時間的特性を表す特徴ベクト

1. は じ め にルを作成し，レシピ間の周期性の有無と時間的特性の類似性を（注 1）

インターネットや SNS の普及によって，Cookpad

や楽抽出する方法を提案する．

天レシピ（注 2） のようなユーザによるレシピ投稿サイトが活発に

また，時間的特性に基づいて抽出したクラスタのレシピは多利用されるようになった．中でも Cookpad は現在ユーザ数は

岐に渡るために，クラスタリング結果の妥当性を判定すること

5,000 万人，レシピ数は 224 万品を超えており，日々膨大な数が難しい．そこで，レシピのカテゴリ木の階層構造を利用してのレシピが投稿されている．

部分木として集約し，その部分木の根の直感的な名前を持つ代

Cookpad には，レシピを実際に作った感想を写真付きで投稿することで，レシピの作者への感謝の気持ちを示す「つくれぽ」という機能がある．レシピ数が 200 万品を突破した 2015
年 3 月 31 日時点のつくれぽの総数は 1,191 万件を超えており，非常に多くのユーザがつくれぽの機能を活用している．つくれ
ぽの投稿は，数あるレシピの中から最も適切なレシピを選び，

表カテゴリを用いることで，クラスタの内容をわかりやすく要約する手法を提案する．

2. 関 連 研 究
類似レシピの抽出と，データの時系列解析という 2 つの観点から，それぞれ関連する研究を紹介する．

そのレシピに基づいて実際に調理し，出来上がった料理に満足

2. 1 類似レシピの抽出して作者にわざわざ感謝の意を示すというコストの高い行動を，類似レシピの抽出方法に関しては様々な研究が存在する．

ユーザが意図的に起こしたことを意味する．そこで，レシピの花井らは，レシピに出現する調理法，料理名，食材，調味料

つくれぽ数は人気度を表す指標として利用でき，Cookpad はに基づいてクラスタリングすることで，類似レシピを抽出し2015 年 12 月時点でつくれぽ数が 1,000 件を超えたレシピ 933

た [1]．また，杉山らは，構造化された調理手順から，類似レシ品を殿堂入りレシピとして公開している．

ピが共有する調理手順と各レシピ間の差異を発見することで，投稿されたレシピには，年間を通して食卓に出る日常的なレシピもあれば，ある時期に集中して作られるレシピもある．

ある料理における典型的な調理手順と，各レシピの特徴をユー
ザに提示するシステムを提案した [2]．

例えば，夏ならアイス，冬なら鍋のような季節的なレシピや，これらの研究は，食材や調理手順のようなレシピの内容の類

バレンタインデーのチョコレート，お正月のお節料理のような似性に基づくアプローチである．それに対して，本研究はつく

イベント特有のレシピもある．提供する情報が一時的にしかれぽ数の頻度変化のような時間的特性に基づいて，作られる

参照されないようなニュースサイトのニュース記事と異なり，理由や状況，時期が類似するレシピを分類，推薦できる点や，

Cookpad のレシピは何度も繰り返し参照されることから，そユーザが特に価値があると認めたレシピや，類似レシピの中でのような特定の時間的状況に依存しているレシピのつくれぽは，も特に代表的なレシピを扱うことができる点が異なる．

毎年特定の季節や特定の日の直前に活発に投稿される傾向があ

2. 2 データの時系列解析

る．本稿では，食生活に存在する 1 週間，1ヶ月，1 年のようなTwitter データの時系列解析では，風間らは Twitter におけ周期性が，レシピのつくれぽ数の増加の度合いに大きく影響をる震災に関連した話題に用いられた単語を抽出し，それらの与えていると仮定して，レシピのつくれぽ数の時間的変化から，単語と他の単語との時系列的変化の類似性を Earth Mover’s

Distance で判定して，Twitter ユーザの話題や関心の変化を分（注 1）：http://cookpad.com/（注 2）：http://recipe.rakuten.co.jp/

析する手法を提案した [3]．大久保らは Web サーチエンジンの検索ログの各時間区間における検索語の個人内関連度と使用頻度系列の相関係数を用いて同一情報に対して用いた検索語をグ

次に，この頻度ベクトル fri を，次元数 C に畳み込んだベク

ループ化することで，検索のトレンドを抽出する手法を提案し

トル vri ,C を作成する．次元数 C は，1 週間の場合は C = 7，

た [4]．これらの研究では，東日本大震災という特別なイベント

1ヶ月の場合は C = 31，1 年の場合は C = 366 とする．月や年からの時間経過に伴う変化や検索語の一時的な流行などの現象の場合には日数が異なるので，次元数は大きい方に合わせる．

に着目しているが，本研究では，食生活という日常的な周期性

さらに，fri の時刻 t を vri の 0 ∼ C − 1 の範囲のインデックを持つ行動パターンに注目する点が異なる．

ス値に畳み込む関数を f old(t, C) とする．この関数は，C = 7

また，松林らは，アイテム購買履歴から作成した (ユーザ)×(時の場合は月曜日〜日曜日をそれぞれ 0 ∼ 6 に，C = 31 の場間)×(商品) という 3 次元のテンソルを，非負値テンソル因子

合はその月で何日目かを示す値 1 ∼ 31 をそれぞれ 0 ∼ 30 に，

分解 (NTF) することで，ユーザ単位の購買傾向と時系列特徴，

C = 366 の場合はその年で何日目かを示す値 1 ∼ 366 をそれ

商品購買傾向を合わせた分析を行うと共に，商品のランク比率

ぞれ 0 ∼ 365 に変換する．ベクトル vri ,C は以下のように計算を用いたグラフ可視化によりアイテム購買の季節性を確認しする．

た [5]．ただし，NTF により商品の購買データの潜在的な特徴をパターン抽出することはできても，抽出されたパターンの解釈は必ずしも容易ではない．これに対して，日常的に繰り返す vri ,C=

 vr(j)
i ,C

=

(0)

(1)

(C−1)

(vri ,C , vri ,C , . . . , vri ,C )(t)|f old(t,C)=j})i(t)|f old(t,C)=j}|isum({fr(2)|{fr

調理行動は 1 日，1 週間，1ヶ月，1 年のような定まった周期性

ここで，sum(S) は集合 S の要素の値の総和を求める関数でを持つことから，その周期性を活かして分析することで抽出結ある．

果の解釈が容易になるだけでなく，日常生活に密接したユーザ支援が容易になると考えられる．

最後に，つくれぽ数のスケールの影響を受けずに時間的特性だけで類似性を判定できるように，vri ,C をすべての要素の和が 1 になるように正規化して，レシピ ri に対する周期 C の特

3. レシピの時間的特性の類似性の分析

徴ベクトル pri ,C を求める．

3. 1 レシピの周期性
Cookpad には平日や週末，給料日前や給料日後，春夏秋冬，

 pri ,C

節句やクリスマスなどの特定の時期に作られるレシピが存在す p(j)
ri ,Cる．さらに，これらのレシピを様々なユーザが繰り返し作るこ

=
=

(0)

(1)

(C−1)

(pri ,C , pri ,C , . . . , pri ,C )

∑

(j)
vr ,C
i
C−1 (k)v
k=0 ri ,C(3)とで周期性が生じる．このような時間的特性はレシピが利用さ

この結果，pri ,C は，つくれぽの周期 C の各要素に相当する時れることで生み出されることから，レシピの内容からは必ずし点における生起確率を表すことになる．なお，以降では C = 7

も解るとは限らないので，レシピがいつどんな状況で作られたの場合の特徴ベクトルを週ベクトル，C = 31 の場合を月ベク

かを示すつくれぽ数の時間的変化を用いて推定を試みる．

トル，C = 366 の場合を年ベクトルと呼ぶ．

一般に，周期性を判定するためにはフーリエ変換やウェーブ

3. 3 特徴ベクトルの特徴と制限

レット変換が用いられることが多いが，つくれぽ数の頻度変化

レシピのつくれぽ総数が比較的多くても，つくれぽ数の頻度が比較的疎であるためにうまく処理できなかったり，任意の周ベクトルは疎であることが多いが，畳み込みにより作成された波数に適用できる代わりに周波数の特定が難しいなどの問題が特徴ベクトルは密になると同時に，時間的な特徴が強調される存在する．ただし，レシピの周期性は，そもそも人間の生活にという利点がある．これは頻度ベクトルを移動平均などの手法

おける 1 日，1 週間，1ヶ月，1 年単位の繰り返しから生じるこ

でスムージングして扱うよりも適切であると考えられる．

とを考慮すれば，つくれぽ数の時間的変化に存在する周期の種

ただし，この特徴ベクトルを用いる場合には，収集期間が周類は既知であり，逆にこれらの周期の合成として生まれている期より長くなければいけない．周期よりも短い場合は，データと考えることができる．

の不足のために特徴ベクトルの要素の多くが 0 となり，時間的

そこで，任意の期間のつくれぽ数の時間的変化を，1 週間，

特性の判定を正確に行うことができないので，複数の周期を用

1ヶ月，1 年という周期に合わせて畳み込んでから正規化した特いて分析することを想定した場合には，最長の周期以上でなけ

徴ベクトルを作成し，その距離に基づいて類似レシピを推薦しればいけない．つまり，本稿で用いる最長の周期は 1 年である

たり，クラスタリングする手法を提案する．

ことから，366 日以上の収集期間のレシピだけを対象とする．

3. 2 特徴ベクトルの作成

3. 4 レシピ間の時間的特性の距離の計算

まず，レシピの周期性を表す特徴ベクトルを作成する．本稿

周期 C を想定した場合の二つのレシピ ri と rj の時間的特性では使用するつくれぽの作成時間は 1 日単位なので，周期を 1の距離 dC (ri , rj ) は，それぞれの特徴ベクトル pri ,C , prj ,C の週間，1ヶ月，1 年の 3 種類とする．

間のユークリッド距離を用いて次のように計算する．

レシピ ri が期間 Tri のつくれぽの情報を持つ場合に，時刻
(t)

t(0 <
=t<
= Tri − 1) のつくれぽ数を fri として，次元数 Tri のv
uC−1
u ∑ (k)(k)dC (ri , rj ) = t(pri ,C − prj ,C )2

つくれぽ数の頻度ベクトル fri を次の式で表す．
(Tr −1)

fri = (fr(0), fr(1), . . . , fri i
i
i

(4)

k=0

この距離が小さいほど，二つのレシピの周期性が類似している

)

(1)

と見なす．

3. 5 レシピのクラスタリング

さらに，カテゴリ i を頂点とする部分グラフに登録されている

本稿では，周期 C を想定した場合の二つのレシピ ri と rj のレシピ数を Si ，カテゴリが付与されたレシピ総数を Sall とし

距離 dC (ri , rj ) を用いて，時間的特性が類似しているレシピ群て，RPi とレシピにカテゴリがランダムに付与されたと仮定しのクラスタリングを試みる．クラスタリング手法としては，一た場合の予測確率 EPi との比率 Ri を求める．

般的な k-means 法 [6] を用いる．k-means 法は単純なことから，レシピ間の類似度を時間的特性で分離できるかの確認に適していると言える．
各クラスタの時間的特性は，そのクラスタに含まれるレシピ

Si
Sall

(6)

RPi
EPi

(7)

EPi =
Ri =

の代表的な特徴を表す中心座標の特徴ベクトルをグラフとして一般にレシピはカテゴリ木中に局在するが，カテゴリ i の Ri

可視化することで表す．このグラフを見れば，クラスタに含まが 1 より大きいほど，その部分木にレシピが集中しているとみれているレシピはどのような季節や日によく作られるのか，あなす．さらに，レシピの存在するカテゴリから根の方向に移動

るいは年間を通して日常的に作られるのか，などを容易に把握した場合に，代表カテゴリとして妥当でないカテゴリに到達しできる．

た場合には Ri が有意に減少するので，その前のカテゴリで停止する．

4. クラスタ内容の要約抽出したクラスタの代表カテゴリリストを選出する手順を以

4. 1 レシピのカテゴリ階層の利用

下に示す．なお，T1 , T2 は定数である．

提案した特徴ベクトルの類似性は，レシピに含まれる単語や（ 1 ） クラスタに含まれるレシピのカテゴリ群からカテゴリ

食材名ではなく時間的特性に基づくことから，抽出されたクラi を取り出す．Ri ＜ T1 の場合は次のカテゴリ i を取り出す．カスタのレシピは多岐に渡り，クラスタの妥当性を判定すること

テゴリが存在しない場合は終了する．

は必ずしも容易ではない．

（ 2 ） カ テ ゴ リ i か ら 上 の 階 層 に 移 動 し な が ら ，Rj >=T1 ∧ Rj /Ri >Tを満たすカテゴリ
jを根まで探索する．
2=

そこで，レシピのカテゴリに注目する．Cookpad のレシピのカテゴリは約 1,100 個あり，投稿者を含むユーザによって推薦（ 3 ） 見つかった場合は根に最も近いカテゴリ j を，そうでされたカテゴリ候補を，クックパッド編集部が審査した上で登なければカテゴリ i を代表カテゴリリストに追加する．

録される．カテゴリは木構造であるが，図書分類法のような明（ 4 ）（ 1 ）に戻る．

確な基準がないことから，カテゴリ名の重複や異なる分類方針

なお，集約した代表カテゴリの数が多くなる可能性があるだの混在などの問題点が存在する反面，「おもてなし料理」や「夏けでなく，代表カテゴリを根とする部分木に登録されているレのさっぱりおかず」などの主観的で特徴がわかりやすい名称がシピ数が少ない場合には，クラスタ内容を表すためには適切で付けられており，これらの表現を用いればクラスタの内容をよないことが考えられるので，代表カテゴリのレシピ数で降順にり直感的に伝えることができる．

並び替えて，その上位の代表カテゴリでクラスタの内容を表現

ただし，このような表現はカテゴリ階層の比較的上位で使われているのに対して，大部分のレシピは食材名や料理名などの下位のカテゴリ名が付与されている．これはレシピの閲覧とい

する．

5. 評

価

う観点では特に問題はないが，クラスタ内容を単純にカテゴリ

5. 1 Cookpad データセット

名で表現すると，カテゴリ数が膨大になる上に，食材名や料理

Cookpad から提供された 1998 年 4 月 23 日から 2014 年 9名が大量に現れてクラスタの性質がよくわからないという問題

月 30 日までの 1,715,595 件のレシピから，つくれぽ数が 100が生じる．

件以上あり，つくれぽ投稿期間が 366 日以上の 11,507 件のレ

そこで，本稿では，Cookpad のカテゴリ木の階層構造を利用

シピを抽出して，評価に用いた．なお，レシピのレシピ ID，レ

して，複数のカテゴリをまとめて階層の上位の直感的なカテゴ

シピ名，カテゴリ，つくれぽ投稿日と投稿数だけを使用する．

リ名を持つ代表カテゴリで表すことで，クラスタの内容をわか

5. 2 クラスタの時間的特性の分析

りやすく要約する手法を提案する．

本稿では，つくれぽ数の時間的変化を周期に合わせて畳み込

4. 2 代表カテゴリ選出法

んでから正規化した特徴ベクトルを使用する．このベクトルの代表カテゴリはカテゴリ木の階層を根の方向に登って抽出す

各要素は周期の開始時点からの経過時刻におけるつくれぽの生るが，その停止判定には注目しているカテゴリを頂点とする部

起確率を表すことから，年ベクトルの場合は 1 月 1 日からの経分木にレシピが存在する確率を用いる．

過日数，月ベクトルの場合はその月の日，週ベクトルの場合はあるクラスタ中のカテゴリ i を頂点とする部分木に存在するカテゴリが付与されたレシピ数を Ci ，カテゴリが付与されたレシピ総数を Call とすると，部分木のレシピ存在確率 RPi は次の式で求められる．

RPi =

Ci
Call

曜日と特徴ベクトルの生起確率分布を照合することで，各レシ
ピの時間的特性を容易に分析できる．
同様に，各クラスタの特徴はクラスタの中心が最もよく表すと考えて，クラスタの中心座標の特徴ベクトルの生起確率分布
を用いれば，各クラスタの時間的特性を分析することができる．

(5)

なお，周期 C を想定した場合のクラスタ数 kC には，値を変え表 1 イベント性を示すクラスタのピーク日

クトルの場合と同様に特定の数日に集中する局所ピークや緩やピーク日

関連イベントかな盛り上がりが見られたものの，より複雑であった．代表的

1月1日

正月

1月7日

人日の節句

なクラスタの中心座標の月ベクトルの生起確率分布を図 2 に示

2月3日

節分

2 月 14 日

バレンタインデー

3月3日

ひな祭り

局所ピークを示すクラスタは，図 2(a) のようなピーク前後の

5月5日

こどもの日

増減がある 5 個のクラスタと，図 2(b) のように月末のピークをす．なお，グラフの横軸は月の 1 日からの経過日数，縦軸はその日のつくれぽの生起確率である．

10 月 31 日 ハロウィン

除くと生起確率の変動がほとんどないクラスタに分類できた．

12 月 25 日 クリスマス

前者のピーク日を調べると，表 1 に示したような年ベクトルの場合のピーク日と合致していることから，年ベクトルの生起確

表 2 季節性を示すクラスタのピーク日率のピーク値が高すぎるために，月ベクトルに畳み込んだ場合

盛り上がり時期

関連季節

4 月上旬〜6 月中旬

春

5 月下旬〜8 月中旬

春から夏

ピークは存在するものの，それ以外の日の生起確率がほぼ同じ

7 月上旬〜9 月下旬

夏であるという特徴を持っていた．

9 月中旬〜11 月下旬 秋

でも影響を受けているのでないかと推測できる．後者の場合は，

緩 や か な 盛 り 上 が り を 示 す ク ラ ス タ は ，図 2(c) の 上 旬 ，

11 月上旬〜3 月中旬 冬

図 2(d) の中旬，図 2(e) の下旬の 3 個あった．これらのクラ1 月下旬〜5 月上旬

スタは，一ヶ月の周期性を持っていると推測できる．

冬から春

5. 2. 3 週ベクトルを用いた場合て何度かクラスタリングを行い，特徴ベクトルや内容が類似しクラスタ数 k7 を 3 に設定して抽出されたクラスタは，どれもているクラスタが複数出現しない，つまり過分割されない範囲

緩やかな盛り上がりを示した．各クラスタの中心座標の週ベクの中の最大値を用いた．

トルの生起確率分布を図 3 に示す．なお，グラフの横軸は月曜

5. 2. 1 年ベクトルを用いた場合

日からの経過日数，縦軸はその日のつくれぽの生起確率である．

クラスタ数 k366 を 15 に設定して抽出されたクラスタは，特盛り上がりを見ると，まず週末である土曜日と日曜日の生起

定の数日に集中する局所的なピークを示すようなイベント性を確率が高いクラスタと低いクラスタに分けることができる．こ示すクラスタ，数ヶ月に渡る緩やかな盛り上がりを示すようなれから，時間的余裕のある休日と，忙しい平日とでは，異なる季節性を示すクラスタ，明確な周期性がないクラスタの 3 種類

料理を作っているのではないかと推測できる．さらに後者は平に分類できた．各種類ごとに代表的なクラスタの中心座標の年日である月曜日から金曜日までの期間の前半と後半に盛り上がベクトルの生起確率分布を図 1 に示す．なお，グラフの横軸はりがあるものに分けることができる．つまり，同じ平日でも，

1 月 1 日からの経過日数，縦軸はその日のつくれぽの生起確率

前半と後半では作る料理に違いがあるのでないかと推測できる．

である．

5. 3 代表カテゴリによる要約の分析

イベント性を示すクラスタは 8 個抽出された．これらのピー

次に，代表カテゴリによるクラスタの内容の要約が妥当であクの生起確率は他の日と比べて顕著であることから，そのクラるかについて分析する．なお，T1 = 3.0, T2 = 0.3 とした．こスタはピーク日の前後のイベントのためにだけ作られる料理のれは，全体と比較してあるクラスタで有意に出現し，なおかつ

レシピ群ではないかと推測できる．クラスタの生起確率がピー

代表カテゴリを決める際に過剰にカテゴリ木を登りすぎない数

クになる日と，そのピークに関連していると推測できるイベン

値として設定した．

トを表 1 に示す．例えば，図 1(a) は，2 月 14 日に最大のピー

年ベクトルでのクラスタリングにおいて抽出された，冬 (11クを示すことから，バレンタインデーと関係があるクラスタで

月上旬〜3 月中旬) の季節性を示したクラスタに対して，単純あると思われる．なお，周期の終わりの時点にも小さなピークにカテゴリを用いた場合と，代表カテゴリで集約した場合を比が見られるが，これは 12 月 25 日であることから，クリスマス

較する．それぞれのカテゴリに属するレシピ数で降順に並び替にも弱い関連があると思われる．

えて，その上位 10 件を表 3 に示す．なお，代表カテゴリにおけ

季節性を示すクラスタは 6 個抽出された．この盛り上がりにおける生起確率の変動は緩やかであることから，食材の入手時

るカテゴリ数とは，いくつのカテゴリを集約しているかを示す数である．

期や気候に関連した料理のレシピ群ではないかと推測できる．

単純にカテゴリを用いた場合は 5 位の「お餅活用レシピ」やクラスタの生起確率が盛り上がる時期と，その盛り上がりに関

9 位の「冬！おもてなし料理」でかろうじて冬に関するクラスタ

連していると推測できる季節を表 2 に示す．例えば，図 1(b) は，であると予測できるが，それ以外は食材が多く，どういった性

7 月上旬〜9 月下旬に盛り上がることから，夏に関係があるク質を持ったクラスタなのかよくわからない．一方で，代表カテラスタであると推測できる．ただし，1 月下旬〜5 月上旬に掛ゴリに集約した場合は野菜に関するカテゴリが「旬野菜（秋・けては，他のクラスタと比較して盛り上がりは小さかった．

冬）」にまとめられ，どの季節に関連しているのか一目瞭然で

5. 2. 2 月ベクトルを用いた場合
クラスタ数 k31 を 10 に設定して抽出したクラスタは，年ベある．
また，鍋に関するカテゴリは細分化されているので，単純に

(a) イベント性を示すクラスタ(b) 季節性を示すクラスタ

図1(c) 明確な周期性がないクラスタ

クラスタの年ベクトルの生起確率分布(a) 局所ピークがあるクラスタ (1)(b) 局所ピークがあるクラスタ (2)(c) 盛り上がりがあるクラスタ (1)(d) 盛り上がりがあるクラスタ (2)(e) 盛り上がりがあるクラスタ (3)(f) 明確な周期性がないクラスタ

図2(a) 盛り上がりがあるクラスタ (1)

クラスタの月ベクトルの生起確率分布(b) 盛り上がりがあるクラスタ (2)図3(c) 盛り上がりがあるクラスタ (3)クラスタの週ベクトルの生起確率分布

カテゴリを用いた場合は各カテゴリの頻度が低くなり，上位に

ただし，カテゴリが適切であれば，そのまま代表カテゴリと現れない．しかし，代表カテゴリとして「鍋もの」にまとめらして抽出される．例えば，「冬！おもてなし料理」がある．このれ頻度が高くなることで，このクラスタに鍋料理が多いというカテゴリは子カテゴリを持っておらず，親カテゴリは「おもて特徴がわかるようになる．

なし料理」で季節性を持たないことから，上位のカテゴリにま表 3 単純にカテゴリを用いた場合と代表カテゴリに集約した場合の比較
カテゴリ
順位 カテゴリ名

代表カテゴリ
レシピ数 代表カテゴリ名

レシピ数

カテゴリ数

1 白菜

64 旬野菜（秋・冬）

214

9

2 大根

64 鍋もの38

17

3 れんこん

29 その他のお菓子

36

54 フルーツのお菓子

23 人気のキャベツレシピ

2334

5 お餅活用レシピ

21 お正月の料理

23

5

6 里芋

17 パイ

21

4

7 ホットケーキミックスで作れるケーキ

16 ホットケーキミックスで作れるケーキ

16

1

8 かぶ

16 冬！おもてなし料理

15

1

9 冬！おもてなし料理

15 スポンジケーキ

15

3

10 アップルパイ

15 ぶり

12

1

とめられない．このような場合は，単一カテゴリでも代表カテ示す．お弁当に関する代表カテゴリが 2 つあるが，他はキャベゴリになる．

ツ料理，再現料理，子供向け料理と，ほとんどが日常的に作ら食材が単一で出現する例として，「ぶり」がある．これは，ぶれるレシピであった．唯一時間的特性を示すと思われる「運動りの旬は 12 月から 1 月で冬の季節性があるのに対して，その会のお弁当」カテゴリに含まれるレシピを調べたが，特に運動親カテゴリの「魚介のおかず」は様々な魚介類の親カテゴリに会に限定されるようなレシピはなく，「お弁当のメインおかず」

なっているため，明確な季節性が存在しないからである．

よりも凝ったレシピが含まれており，これも日常的に調理されこれらの結果から，カテゴリ木を登る際の停止判定は効果的に機能しており，妥当なカテゴリを代表カテゴリとして選出できていることが確認できた．また，代表カテゴリによるクラス
タの要約によって，クラスタの性質が容易に把握できるようになった．

ている可能性が高かった．

5. 4. 2 月ベクトルの場合
図 2 に示した各クラスタから抽出した代表カテゴリをレシピ数の降順に並び替えた上位 5 件を，表 5 に示す．
まず，局所ピークがあるクラスタについて分析する．図 2(a) に

5. 4 クラスタの内容の分析

示した 14 日付近にピークが現れるレシピで構成されたクラス

次に，抽出されたクラスタに対して代表カテゴリを部分グラ

タは「チョコレートのお菓子」という代表カテゴリに属するレフに含まれるレシピ数で降順に並び替えて，その上位 5 件の代シピが最も多く，それに他のお菓子が続いた．14 日にピークが表カテゴリ名からクラスタの内容を推測する．さらに実際にク出現していることを合わせて考慮すると，バレンタインデーのラスタに含まれるレシピを調べることで，その推測が正しいか

影響を受けていることは明らかである．他の明確なピークが現どうかを確認する．

れたクラスタの代表カテゴリも，年ベクトルで抽出されたイベ

5. 4. 1 年ベクトルの場合
図 1 に示した各クラスタから抽出した代表カテゴリをレシピ数の降順に並び替えた上位 5 件を，表 4 に示す．

ント性のあるクラスタの代表カテゴリと酷似していた．

5. 2. 2 で月末のピークを除くと生起確率の変動がほとんどないと述べた図 2(b) のクラスタは，「野菜を使ったのお菓子」と

まず，イベント性を示すクラスタの代表カテゴリを図 1(a) にいうカテゴリが上位に入っていた．これはハロウィン (10 月 31

示す．どの代表カテゴリもチョコレートやお菓子に関係して日) にかぼちゃを使ったお菓子が作られており，その影響で 31

いるが，表 1 のピーク日と各レシピの内容から，バレンタイン

日にピークが現れたと考えられる．一方で，平坦な部分を構成

デーに関連したクラスタであることがわかる．また，レシピ数

しているのはクラスタに含まれている大部分の日常的なレシピ

は 169，カテゴリ数は 37，代表カテゴリ数は 6 であり，少数のであると思われる．

代表カテゴリに集約されていることがわかる．4 位や 5 位に出

次に緩やかな盛り上がりがあるクラスタについて分析する．

現した代表カテゴリは属するレシピの数が非常に少なく，代表

図 2(c) のクラスタは「お餅」という代表カテゴリが出現していカテゴリとして適していないと判断できる．これらの特徴は，た．このクラスタのピークが上旬にあることからも，1 月の上

他のイベント性を示すクラスタも同様の傾向が見られた．

旬あたりにお餅を食べる習慣を反映していると言える．

次に，季節性を示すクラスタの代表カテゴリを図 1(b) に示

図 2(d) のクラスタはお菓子類の代表カテゴリが多く，2 番目

す．代表カテゴリは夏に関係しているものと冷たい麺料理に関に多い代表カテゴリが「チョコレートのお菓子」であった．この係しているものが存在するが，表 2 の関連季節が 7 月上旬からクラスタのピークが中旬にあることからも，バレンタインデー

9 月下旬であることと各レシピの内容から，夏に関連したクラの影響を受けている可能性が高い．しかし，バレンタインデー

スタであることがわかる．また，レシピ数は 438，カテゴリ数

に関しては前述した図 2(a) のクラスタが抽出されている．代表は 128，代表カテゴリ数は 47 であり，イベント性を示すクラカテゴリの内容でこれらを比較すると，図 2(d) の方は「チョコスタよりも多くの代表カテゴリに分散していることがわかる．

レートのお菓子」よりも「クッキー」の方が多いという点で異他の季節性を示すクラスタでも，同様の傾向が見られた．

なっている．このことから，普段から作られるが，バレンタイ

次に，明確な周期性がないクラスタの代表カテゴリを図 1(c) に

ンデーにやや盛り上がりをみせるようなお菓子のレシピがこの

表4

年ベクトルの場合の代表カテゴリ

図 1(a)
順位

代表カテゴリ

図 1(b)

図 1(c)

レシピ数

カテゴリ数 代表カテゴリ

レシピ数

レシピ数

カテゴリ数

1 チョコレートのお菓子103

11 旬野菜（夏）149

15 人気のキャベツレシピ

151

48

2 もっと料理を楽しむ36

23 夏に食べたい料理

21

13 お弁当のメインおかず

52

1

3 おもてなしデザート

9

4 そうめん17

3 再現レシピ

38

22

4 持ち寄り・プレゼント

2

2 夏！おもてなし料理

15

1 子どもが喜ぶ♪かわいいおかず

37

1

5 シリコンスチーマーでお菓子1

1 冷製・アイデアパスタ

10

3 運動会のお弁当

34

8

表5

月ベクトルの場合の代表カテゴリ

図 2(a)
順位

代表カテゴリ

カテゴリ数 代表カテゴリ

図 2(b)
レシピ数 カテゴリ数

代表カテゴリ

図 2(c)

レシピ数 カテゴリ数

レシピ数

カテゴリ数

1 チョコレートのお菓子

65

10 人気のキャベツレシピ

34

43 人気のキャベツレシピ

19

38

2 もっと料理を楽しむ

19

17 野菜を使ったお菓子

25

2 長ねぎ

10

1

3 おもてなしデザート

5

3 夏に食べたい料理

22

12 お餅

9

2

4 カップケーキ

4

1 オクラ

14

1 おから

9

1

5 ザッハトルテ

3

1 ヨーグルトのお菓子

9

1 子どものパーティ

81

図 2(d)

代表カテゴリ

図 2(e)

図 2(f)

1 クッキー79

5 人気のキャベツレシピ

38

44 人気のキャベツレシピ

106

48

2 チョコレートのお菓子

59

8 ピザ

16

1 再現レシピ

26

21

3 おもてなしデザート35

4 おもてなしの冷副菜

16

1 運動会のお弁当

23

8

4 ホットケーキミックスを使ったお菓子

34

4 スポンジケーキ

15

2 食材ひとつでおかず

18

1

5 人気のキャベツレシピ

26

39 秋におすすめ料理

14

12 中華料理

15

5

クラスタに分類されていると考えられる．このようなレシピは，り上がりがあるクラスタの代表カテゴリを比較すると，どちら

時間的特性でいえば図 2(a) のクラスタよりもこちらに近いのでも普段の食事やお弁当のレシピであったが，前半に「造り置き・

分類結果は妥当だが，1ヶ月内で中旬にピークがくるような周冷凍できるおかず」という代表カテゴリがあった．これは，週期性を持っているとは言えないので影響を取り除きたい．

の初めにおかずをまとめて作り置きをする食習慣がある家庭が

図 2(e) のクラスタは「スポンジケーキ」という代表カテゴリ

多いことを表していると思われる．また，同じお弁当のレシピが出現している．このクラスタのピークが下旬にあることからでも，平日前半は「運動会のお弁当」，後半は「お弁当」というも，クリスマスに関連している可能性が高いが，バレンタイン

違いがあった．これは平日の前半は凝ったお弁当を作るが，後デーの場合と同様にクリスマスもピークが顕著なクラスタが抽半は簡単なお弁当にする人が多いか，また凝ったお弁当のおか出されていた．そのため，この「スポンジケーキ」に属するレ

ずを平日の初めに作り置きしているのではないかと思われる．

シピも普段から作られるが，クリスマスにやや盛り上がりをみせるレシピであると思われる．

6. 考

察

明確な周期性がない図 2(f) のクラスタは，年ベクトルにおい時間的特性を用いたクラスタリングと，代表カテゴリを用いて明確な周期性がない図 1(c) の代表カテゴリと類似している．

たクラスタ要約によって，人間がレシピとそのカテゴリ名を見よって，これらは 1ヶ月内での時期に関係なく作られるカテゴ

ただけでは容易にわからないような特徴や関係を見出すことがリであると考えられる．

可能になった．例えば，同じ時期に作られる異なる種類の料理

上旬，中旬，下旬，そして明確な周期性がみられないクラスタの発見や，食材や調理法ではなく時期や料理される状況というに「人気のキャベツレシピ」が代表カテゴリとして現れている．

観点における妥当なカテゴリ分類はもちろん，「運動会のお弁

キャベツ料理は日常的に食卓に出るレシピが多いと 5. 4. 1 で述

当」と「お弁当」のような，「運動会」という分類意図とは異なべたが，月ベクトルにおいても頻出したことから，やはり日常る使い分けがなされている可能性を示唆している場合を発見す的なレシピが多く属するカテゴリであると推測できる．

ることが可能になった．

5. 4. 3 週ベクトルの場合
図 3 に示した各クラスタから抽出した代表カテゴリをレシピ数の降順に並び替えた上位 5 件を，表 6 に示す．

今回，図 1(a) に示したようなイベント性のあるクラスタのピーク日は対応するイベント日と一致したが，常に一致するとは限らないと思われる．この理由は，例えばバレンタインデー

まず，平日は一般的な料理やお弁当に関係する代表カテゴリのチョコレートは事前に作成して 2 月 14 日に渡すような前倒が，週末はお菓子や再現レシピに関係する代表カテゴリが抽出し要因があるからである．ただし，料理を作成した後日につくされていることがわかる．これは仕事や学校がなく時間的に余れぽを書くという遅延要因もあり，今回は偶然相殺されたと推裕のある週末に，お菓子を作ったり，手間が掛かる再現レシピ

測している．

に挑戦していると推測できる．
さらに，平日前半に盛り上がりがあるクラスタと，後半に盛「人気のキャベツレシピ」は，多くのクラスタの代表カテゴ
リとして登場していた．この代表カテゴリの階層は自身を含め表6

週ベクトルの場合の代表カテゴリ

図 3(a)
順位

代表カテゴリ

図 3(b)
レシピ数 カテゴリ数

代表カテゴリ

図 3(c)

レシピ数

カテゴリ数 代表カテゴリ

レシピ数

カテゴリ数

1 人気のキャベツレシピ

98

47 お弁当152

14 クッキー137

4

2 運動会のお弁当

30

11 鶏むね肉78

1 ホットケーキミックスを使ったお菓子

92

3

3 作り置き・冷凍できるおかず

23

1 人気のキャベツレシピ

73

47 おもてなしデザート

71

3

4 ヘルシーおかず

18

6 アレンジ豆腐料理

60

1 人気のキャベツレシピ

54

43

5 中華料理18

6 豚こま切れ肉31

1 再現レシピ

46

29て 4 段で，合計 49 個のカテゴリがあり，
「お肉」，
「野菜」，
「魚

クラスタリング手法についても改善の余地がある．現在は介」，「ごはんもの」などの食材カテゴリや，「主食」，「おかず」，

k-means 法を繰り返し行い最適なクラスタ数を発見的に決めて「副菜」といった食卓での役割のカテゴリ，「定番メニュー」といるので，x-means 法 [7] のような最適なクラスタ数を自動的いう日常的なレシピのカテゴリが存在し，カテゴリ木の他の部に算出する方法を用いる必要がある．

分と重複している名前が多かった．キャベツは一年中入手できまた，今回用いなかったデータに対して本手法を適用するこる一般的な野菜であることを考えると，そのレシピの多様性ととで，より多くの知見が得られると考えられる．例えば，今回

調理頻度の高さから，多くのクラスタに現れるのではないかとはつくれぽ数の時間的変化からレシピの時間的特性を表す特徴

思われる．

ベクトルを作成したが，つくれぽ数の代わりにレシピページに

なお，月ベクトルを用いた場合に，年ベクトルの影響も強く対するアクセス数を用いるといった方法がある．ページにアク現れるという問題が生じていた．提案手法ではつくれぽ数の時セスするという行為はつくれぽを投稿するのと比較してユーザ間的変化が複数の周期の合成によって表されていると仮定したにかかるコストが低いため，つくれぽほど明確にユーザがレシが，畳み込みだけでは個々の周期性を明確に分離することはでピの価値を認めたとは言えないが，データ数は格段に多く，特きない．そこで，特に 1ヶ月と 1 年のように周期が合致してい徴ベクトルが疎になりにくいメリットがある．

る場合に，畳み込みで時間的特性がより強く強調されやすい周また，代表カテゴリによるクラスタの要約は，他の木構造を期が短い方の特徴ベクトルで問題が顕在化したと思われる．た持つ分類にも適用でき，特にソーシャルメディアのようにユーだし，1 週間と 1 年のように周期が明らかにずれている場合は，

ザ自身がカテゴリ作成やカテゴリ付与を行う場合，分類の厳密

特にこのような問題は見られなかった．

性や妥当性，客観性はあまり期待できなくても，内容を直感的

7. お わ り に本研究では，1 年，1ヶ月，1 週間といった一定周期のつくれ
ぽ数の頻度変化からレシピの周期性の有無と時間的特性の類似性を抽出することが可能であり，人々の食生活はこのような周期に影響を受けていることを示した．

に伝えられる分類名が多く生み出されるような場合に効果的であると思われる．

謝辞

本研究では，クックパッド株式会社と国立情報学研究所が提供する「クックパッドデータ」を利用した．

つくれぽの頻度変化を分析したい周期に合わせて畳み込んだ
特徴ベクトルを用い，生起確率分布を可視化することは，時間的特性の類似性を判定するだけでなく，レシピやクラスタの時間的特性を直感的に理解するために有用であることがわかった．
例えば，生起確率分布を適切にデフォルメ・彩色してユーザに提示できれば，レシピやクラスタの理解を支援できる．
なお，今回は特徴ベクトルの類似性に基づいてクラスタリン
グしたが，あるレシピに対して時間的特性の類似したレシピを推薦することも可能であり，「日常生活の同じ時間的状況で料理を作る」という事実に基づいてレシピを推薦する，新しい種類の協調フィルタリングが実現できると考えている．ただし，従来のテキストや材料などの類似性に基づく場合より広範囲の推薦が可能であるために，一旦代表カテゴリとしてまとめてから，ユーザの目的に合致したものを優先的に表示するなどの工夫が必要であると思われる．
しかし，課題も残っている．月ベクトルにおけるクラスタリ
ングでは，1 年周期でのイベントの影響を強く受けていた．この影響を取り除き，1ヶ月内での特徴を抽出する方法を考える必要がある．

文

献[1] 花井俊介, 灘本明代. 酷似レシピ抽出のためのクラスタリング手法の提案. 第 6 回データ工学と情報マネジメントに関するフォー
ラム 2014(DEIM2014), 2014.
[2] 杉山祐一, 山肩洋子, 田中克己. 手順情報としてのレシピデータに対する類似レシピの要約と微小で重要な差異の発見. 第 5 回データ
工学と情報マネジメントに関するフォーラム 2013(DEIM2013),
2013.
[3] 風間一洋, 鳥海不二夫, 榊剛史, 篠田考祐, 栗原聡, 野田五十樹.
東日本大震災時の Twitter データを用いた単語間の関係の時系
列変化の分析. 人工知能学会全国大会論文集, 2012.
[4] 大久保雅且, 杉崎正之, 井上孝史, 田中一男. WWW 検索ログに基づくトレンド情報の抽出について. 情報処理学会研究報告デジタルドキュメント (DD), 1997.
[5] 松林達史, 幸島匡宏, 林亜紀, 澤田宏. 非負値テンソル因子分解を用いた購買行動におけるブランド選択分析. 人工知能学会論文
誌, Vol. 30, No. 6, pp. 713–720, 2015.
[6] J. MacQueen. Some methods for classification and analysis of multivariate observations. In Proceedings of the Fifth
Berkeley Symposium on Mathematical Statistics and Probability, Volume 1: Statistics, pp. 281–297, Berkeley, Calif.,
1967. University of California Press.
[7] Dan Pelleg, Andrew W Moore, et al. X-means: Extending
k-means with eﬃcient estimation of the number of clusters.
In ICML, Vol. 1, 2000.