# マルチラベル分類による材料推薦モデル

深澤 祐援 原島 純
クックパッド株式会社
\{yusuke-fukasawa, jun-harashima\}@cookpad.com
西川荘介
東京大学大学院情報理工学系研究科
sosuke-nishikawa@nii.ac.jp

## 1 はじめに

クックパッドなどの料理レシピサービスでは, ユーザがレシピを投稿できる．レシピを投稿する画面を図 1 に示す.まずタイトルを記入し，作り方， コツ・ポイント，材料の名前とその分量などを入力 する。これら全ての情報をユーザが入力するのは手間がかかる. 特にサイズの小さいスマートフォン 上で多くの情報を入力する作業はより負荷が高ま る. そうしたユーザに対して，レシピ投稿時に必要 な情報を補完できれば，レシピ投稿のハードルを下 げられる.

本研究ではこうした背景を元に，レシピタイトル を大力としてそのレシピに必要な材料を推薦する夕 スクを定義する。 そしてそのタスクを解くモデルを 提案する. クックパッドに存在するレシピのタイト ルと材料のデータを用いて，提案したモデルの性能 を報告する。また提案手法を用いた材料推薦機能を リリースし，オンライン上でモデルの評価を行った 結果も合わせて示す.

## 2 関連研究

料理に関連したドメインにおける推薦問題では, レシピの推薦が着目されることが多い. Khan らは レシピに使われている材料を入力として，栄養を考慮に入れたアンサンブルベースのトピックモデリン グによるレシピ推薦を提案している [1]. Gao らは 料理の画像から材料を推定し, siamese-network を構築してレシピを推薦している [2].

本研究が対象とする材料推薦の先行研究は，レシ ピの推薦を対象とした研究と比べるとそれほど多く ない. Park らは 2 つの材料を入力として，その組み 合わせがペアリングとして適しているかのスコアを

図1 クックパッドアプリ (Android) からレシピを投稿す る際の入力画面 (2021-01-04 時点)

出力するモデルを提案している．しかしレシピとの 関連性は着目されていない [3].

材料に関連した先行研究としては，Harashima ら による Seq2Seqを用いた材料名の正規化が挙げ られる [4]. また Yamaguchi らは Character-CNN と Bidirectional GRU を組み合わせた系列ラベリングモ デルを構築し，材料情報の中で材料に相当しない部分 (コメントなど)を検出している [5].

ニューラルネットワークが発展している昨今では 出力部分を柔軟に定義できるようになり，情報推薦 をマルチラベル分類とみなしてアプローチする例も 見られる. Zhang らは論文のレビュアーを推薦する

図 2 提案手法の概要

問題をマルチラベル分類問題として定式化している [6]. Chen らは一枚の画像を入力とし, その画像中 に存在する複数の物体のラベルを推薦するタスクを 対象としたモデルを提案している [7].

マルチラベル分類の性能を向上させる方法とし て，事前に学習させたラベル情報を活用するアプ ローチが存在する. Rousu らはラベルの階層構造を 考慮したアプローチを提案している [8]. Huang ら は ImageNet の各予測対象クラスについて事前に埋 め込み表現を学習させ，それを活用して未知クラス が含まれる画像分類問題への転移学習にアプローチ している [9].

## 3 提案手法

本研究では，レシピのタイトルを入力として適切 な材料を推薦するタスクに取り組む．学習データに はレシピタイトルとその材料が紐付いており，この データを元に学習したモデルが $k$ 個の材料予測結果 を出力する．具体例としては，「鮭とほうれん草の 奨油和風パスタ」というレシピタイトルから，その レシピで使われている「鮭」・「ほうれん草」・「にん にく」・「オリーブオイル」という材料を予測するタ スクとなる。

提案手法は図 2 のように表せる. 詳細を以下に 示す.
1.レシピタイトルを形態素に分割し，モデルに入力する

2. 各形態素をベクトル表現に変換する

3. 各形態素のベクトル表現の平均を算出し, レシ ピタイトルのベクトル表現 (300 次元) とする

4. レシピタイトルのベクトル表現を全結合層 (512 $\rightarrow 256 \rightarrow 300$ ) に入力する

5. 出力する材料クラスごとに事前に割り当てたべ クトル表現行列との内積を取る

6. 内積を取った値に sigmoid 関数を適用する. 得 た値を各材料クラスに対する確信度とする

7. 確信度が高い上位 $k$ 個を推薦結果として出力 する

提案手法では Huang ら [9] と同じく, 事前に学習 させた材料クラスごとの埋め込み表現を用いる. マ ルチラベル分類問題では出現する頻度の少ないクラ スを予測することが多い. 今回対象とする材料推薦問題でも出現頻度には大きな差がある. 提案手法で はクラスの埋め込み表現を明示的に与えることで， few-shot なクラスであっても適切に推薦できるモデ ルとなっている.

## 4 実験

提案したモデルの有効性を検証するためにベース ラインとの比較実験を行った.

## 4.1 実験設定

本実験ではクックパッドに投稿されたレシピデー タを用いる。レシピデータにはレシピタイトル，詳細文，そのレシピに使われた材料と分量一覧，レ シピの手順がユーザによって入力され紐付いてい る. 本研究ではレシピタイトルを入力とし，その レシピで用いられた材料名を予測対象として用い る.レシピタイトルは $\mathrm{MeCab}$ (IPA 辞書) [10] を用 いて形態素に分割した. 材料名は表記摇れしている ものを名寄せするなどの前処理を実施し，約 1100 クラスとなった．使用するデータは，材料が紐付 いているレシピを抽出した上でランダムに分割 し，学習データ:検証データ:テストデータ $=930,000$件:230,000 件:10,000 件とした.

## 4.2 比較手法

k-NN 材料クラスの予測を行うアーキテク チャとして近傍探索に基づくアプローチ (kNearestNeighbor: k-NN) との比較を行う. k-NNでは,
表 1 材料予測結果の例

 &  &  & 觡，酒，塩，コ \\

タイトルのベクトル表現を獲得するところまでは提案手法と同じである. ベクトル表現を獲得した後,近い値を持つタイトルを持つレシピを $\mathrm{k}$ 個取得す る. 取得した $k$ 個のレシピに紐づく材料を集計し,得られた出現数に基づいて上位 5 個の材料を推薦結果として表出する。

提案手法（IE なし） また提案手法について，材料クラスごとのベクトル表現との内積を取らない提案手法 (IngredientEmbedding: IE なし) も比較対象と する.

提案手法を含むこれら手法で用いる分散表現モデ ルは，予めクックパッドの全レシピデータにおける タイトル，手順テキストを対象に学習させた fasttext (300 次元のベクトルを学習するように設定しその他 パラメータはデフォルトで設定) [11]を用いる。な お, 提案手法 (IEなし), 提案手法は Adam[12] で最適化し，検証データに対する TopKCategoricalAccuracy が最良となるエポックで EarlyStop させたものを評価対象とする。

## 4.3 評価指標

各手法を評価するため、順序を考慮せず集合を評価する指標と、順序を考慮する指標を使用した. 前者には Precision と Recall、F1、HITS (予測したクラ ス $k$ 個のうち，いくつが正解したかの絶対数)を使用した。また、後者には MAP と MRR、NDCG を使用した. また，モデルの予測する材料クラスの偏り を見る指標として，全クラス数のうち予測したクラ スの重複を排除した数の割合を Coverage と定義し， その值についても確認した。

## 4.4 実験結果

表 2 に実験結果を示す。推薦されるアイテムの 幅広さを示す Coverage が最も高かったのは k-NN であったが，提案手法がそれ以外の全ての指標で 最も高い精度を記録した。提案手法についても Converage は 0.6 程度という値から，偏りのある推薦表 2 各評価指標における性能比較

 & 提案手法 \\

Recall@5 & 0.38 & 0.48 & $\mathbf{0 . 4 9}$ \\
F1@5 & 0.37 & 0.47 & $\mathbf{0 . 4 8}$ \\
NDCG@5 & 0.43 & 0.54 & $\mathbf{0 . 5 5}$ \\
MAP@5 & 0.30 & 0.41 & $\mathbf{0 . 4 2}$ \\
MRR@5 & 0.71 & 0.83 & $\mathbf{0 . 8 4}$ \\
HITS@5 & 2.01 & 2.56 & $\mathbf{2 . 6 1}$ \\
Coverage & $\mathbf{0 . 7 8}$ & 0.50 & 0.64 \\

結果でないことが示された.

表 1 に各モデルの出力結果を示す. 1 例目につい て，k-NN は「真鯛」と「甘塩鮭」が同時に出てい る. モデルの性質上，魚系でベクトル表現が近いレ シピタイトルを取得した結果，「真鯛」のレシピと 「甘塩鮭」のレシピとが近かったことによるものだ と考えられる。

2 例目について, $\mathrm{k}-\mathrm{NN}$ ・提案手法 (IE なし) はいず れも「ディル」が当てられていない. 「ディル詰 め」というレシピがそもそもあまり多いものでは ないため，集計べースのモデルの場合「いわし」や 「オーブン焼き」などのキーワードに出現する材料 に引きずられた傾向が見られる。提案手法 (IE なし) については，「しお・こしょう」などといった出現数 の多い調味料に引きずられるきらいがあった.これ らに対して提案手法は，モデル内に組み込まれた材料クラスのベクトル表現によって，提案手法 (IE な し) と比較すると改善傾向が伺える。

3 例目について，前述したようにマルチラベル分類モデルは出現数の多いクラスに引きずられてしま う.この例ではその傾向が顕著に出ており，上位 5 つの出力結果が調味料ばかりに偏り主材料を出力で きていない。これに対して，k-NN は適切に主材料 を当てることができている.

## 4.5 オンライン評価と考察

最後に，ここまでオフラインテストで検証したモ デルについて，オンライン上で実際にユーザへ推薦
表 3 オンラインでの材料推薦結果

図 3 レシピ投稿画面でユーザに表出した材料推薦の様子

表 4 豆腐を例とした同一系統材料のレシピ出現頻度

結果を表出する検証を行った. 図 3 がユーザへ推薦結果を表出した画面である。 ユーザがレシピタイト ルを入力した後, 材料入力の位置までスクロールす ると推薦画面が表出する仕様とした. 2020 年 11 月初旬にデプロイしてから 2020 年 12 月末までの期間 を対象として，提案手法によって推薦された材料を ユーザが一度でも選択した割合の平均を計測したと ころ，14.97\%となった.

表 3 にユーザに推薦された材料とユーザによっ て選択された材料の例を示す。上から 2 つの例「超簡単！超時短！生チョコくるみタルト」や「ケンタ 味！カリカリのフライドポテト！」のように推薦材料の殆どが選択され，うまく機能しているケース も見られた. 一方で下から 2 つの例「驚きの美味し さ！塩麹とカレーの鶏唐揚げ」や「白身魚の和風レ モンマスタードソース」というレシピタイトルにつ いては，主材料である「鶏肉」や「白身魚」を推薦で きていないからか，推薦されたいずれの材料も選択 されなかった. このことから，調味料などの周辺材料を正しく推薦することよりも主材料を推薦するこ とがユーザにとって重要ではないかと考えられる。

また，改善点として材料ラベル間の共起関係に着目することが挙げられる。具体例として，同一種類 の材料が同時に出現する可能性は低いことがわかっ ている. 表 4 では「もめん豆腐」と「絹ごし豆腐」，及び「高野豆腐」が同じレシピに出現する分布を示 している.この表を見るとこれら材料が同時に出現する可能性が低いことがわかる. Chen らの提案手法 [7] では画像中にテニスラケットと人は同時に 写っていることが多いといった，物体ラベルに依存関係があることを示している。その関係性をグラフ 畳み込みニューラルネットワークで学習させ，その 重みを分類時に適用させるモデルを提案している.本タスクにおいても同様に，ラベル間の関係性を考慮するアプローチは有効だと考えられる。

## 5 結論

本研究ではレシピタイトルを入力として適切な材料を予測するタスクに取り組んだ。またそれを解く モデルとして予め学習した材料クラスのベクトル表現を組み込んだマルチラベル分類モデルを提案し た. $\mathrm{k}$ 近傍探索モデルと比較した結果，提案手法の ほうがより正確に材料推薦ができること，また全体的に高い精度で材料推薦が可能であることが示され た. 今後の展望としては，材料ラベル間の共起関係 を考慮すること，調味料などの周辺材料の場合と主材料などの場合とで損失に対する重み付けを調整す るといったモデル改善を行っていくことが挙げられ る. さらにオンライン上での $\mathrm{AB}$ テストを実施する ことで実用観点におけるモデルの比較を行うことが 課題である.

## 参考文献

[1]Mansura A. Khan, Ellen Rushe, Barry Smyth, and David Coyle. Personalized, health-aware recipe recommendation: An ensemble topic modeling based approach. In Proceedings of the 4th International Workshop on Health Recommender Systems co-located with the 13th ACM Conference on Recommender Systems 2019, 2019.

[2]Xiaooyan Gao, Fuli Feng, Xiangnan He, Heyan Huang, Xinyu Guan, Chong Feng, Zhaoyan Ming, and Tat-Seng Chua. Hierarchical attention network for visually-aware food recommendation. IEEE Transactions on Multimedia, 2019.

[3]Donghyeon Park, Keonwoo Kim, Yonggyu Park, Jungwoon Shin, and Jaewoo Kang. Kitchenette: Predicting and ranking food ingredient pairings using siamese neural network. In Proceedings of the 28th International Joint Conference on Artificial Intelligence, 2019.

[4]Jun Harashima and Yoshiaki Yamada. Two-step validation in character-based ingredient normalization. In Proceedings of the Joint Workshop on Multimedia for Cooking and Eating Activities and Multimedia Assisted Dietary Management, 2018.

[5]Yasuhiro Yamaguchi, Shintaro Inuzuka, Makoto Hiramatsu, and Jun Harashima. Non-ingredient detection in usergenerated recipes using the sequence tagging approach. In Proceedings of the 6th Workshop on Noisy User-generated Text, 2020.

[6]Dong Zhang, Shu Zhao, Zhen Duan, Jie Chen, Yanping Zhang, and Jie Tang. A multi-label classification method using a hierarchical and transparent representation for paperreviewer recommendation. ACM Transactions on Information Systems, 2020.

[7]Z. Chen, X. Wei, P. Wang, and Y. Guo. Multi-label image recognition with graph convolutional networks. In Proceedings of 2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition, 2019.

[8]Juho Rousu, Craig Saunders, Sandor Szedmak, and John Shawe-Taylor. Kernel-based learning of hierarchical multilabel classification models. Journal of Machine Learning Research, 2006.

[9]He Huang, Yuan-Wei Chen, W. Tang, Wenhao Zheng, Qingguo Chen, Yao Hu, and Philip S. Yu. Multi-label zero-shot classification by learning to transfer from external knowledge. ArXiv, 2020.

[10]工藤拓, 山本薫, 松本裕治. Conditional random fields を 用いた日本語形態素解析. 情報処理学会研究報告. NL,自然言語処理研究会報告, 2004.

[11]Piotr Bojanowski, Edouard Grave, Armand Joulin, and Tomas Mikolov. Enriching word vectors with subword information. Transactions of the Association for Computational Linguistics, 2017.

[12]Diederik P. Kingma and Jimmy Ba. Adam: A method for stochastic optimization. In 3rd International Conference on Learning Representations, 2015.
 深澤 祐援 原島 純 クックパッド株式会社 \{yusuke-fukasawa, jun-harashima\}@cookpad.com 西川荘介 東京大学大学院情報理工学系研究科 sosuke-nishikawa@nii.ac.jp  