1.は
じ め に
近年の SNS の普及に伴い,サービス利用者であるユー ザが,同時に情報を提供するユーザ投稿型のさまざまな サービスが運用されて,幅広く利用されている.料理分 野についても同様であり,以前は料理本や雑誌などの書 籍,あるいは,料理番組を見ることで料理のつくり方を 知る方法が一般的であったが,近年ユーザ投稿型レシピ サービス(以下レシピサービスとする)が普及してきて おり,料理をする際,あるいは料理の献立を検討する際 に,レシピサービスを調べるケースが増加している.実 際,クックパッドによる調査では,料理をする際に最も 参考にする情報源として,レシピサイトがあげられてい る*1. レシピサイトを利用するユーザの増加と同時に,レシ ピサイトに多数のレシピが投稿されるようになり,2018 年 8 月現在,クックパッド*2には約 295 万レシピ,楽 天レシピ*3には約 152 万レシピが投稿されており,多 種多様なレシピを参照できる. 多くのレシピ投稿ユーザが,自ら考案したレシピ,あ るいは既存のレシピをもとにしてアレンジを加えたレシ ピ(アレンジレシピ)を投稿し,それらを他のユーザに 伝えるというレシピサービスを本来の用途で用いる一方 で,ごく一部の悪意のあるユーザは,レシピ投稿数に応 じて得られるインセンティブなどを不正に獲得するとい う本来の用途とは異なる用途でレシピを投稿している. この場合は,より多くのインセンティブを容易に得るた めに,既存のレシピをそのままコピーしたり,一部を改 変するだけで投稿する戦略をとることが多い.実際に, 材料,調理手順,料理画像が,既存のレシピと完全一致 もしくはほぼ同一とみなせるオリジナリティがないレシ ピ(重複レシピ)が,同一のレシピデータベースに登録 されている [久保 16]. 重複レシピは,著作権侵害に当たる可能性があるだけ ではなく,レシピ検索結果の多様性を妨げたり,レシピ のレコメンダシステムのクオリティを下げるなど,レシ ピを検索するユーザに不利益をもたらす.したがって, 重複レシピや,重複レシピを投稿しているユーザを自動 的に検知し,それらをレシピデータベースから削除をす ることは非常に重要である.このような背景のもと,本 稿では,重複レシピにはどのような特徴があるか,そし てどのように重複レシピを自動的に検知するかについ て,紹介する. 重複レシピ検知タスクと類似するタスクとして,剽 窃レポート検知タスク [深谷 04, 小高 03, 高橋 07],重 複 Web ページ検知タスク [Henzinger 06, Manku 07, Theobald 08],重複 tweet 検知タスク [Tao 13, Zhang13]があげられる.剽窃レポート検知とは,オリジナ
ルのレポートや Web ページに記載されている情報をコ ピー・剽窃して生成された剽窃レポートを自動的に検知
重複レシピの自動検知によるユーザ投稿型
レシピサービスのユーザビリティ向上
Improving Usability in Recipe Services with Detecting Near Duplicate
Recipes
平手 勇宇
楽天株式会社楽天技術研究所Yu Hirate Rakuten Institute of Technology, Rakuten, Inc.
[email protected], http://rit.rakuten.co.jp/
関 洋平
筑波大学図書館情報メディア系Yohei Seki Faculty of Library, Information, and Media Science, University of Tsukuba. [email protected], http://cu.slis.tsukuba.ac.jp/
Keywords:
fraud detection, near duplicated recipe detection, similar food image detection, user behavior data analysis. 「料理情報の知的処理」 *1 クックパッド,料理に関する意識・実態調査を実施,https:// info.cookpad.com/pr/news/press_2013_0723(2018 年 9月取得) *2 https://cookpad.com *3 https://recipe.rakuten.co.jpすることを指し,教育の分野での適用が進められている. 重複 Web ページ検知は,Web クローラのクローリング を効率化することなどを目的とし,重複する Web ぺー ジや Web サイトを検知するタスクである.また,重複 tweet検知タスクは,オピニオンマイニングなど,ソー シャルデータを対象としたデータ解析の正確性を向上す ることを主な目的とし,冗長な tweet を検知するタスク である.しかしながら,重複レシピ抽出タスクは,レシ ピデータが,料理画像,料理タイトル,材料,調理手順 など,料理に特化した要素で構成された構造データであ る点において,これらの類似するタスクとは異なる.し たがって,重複レシピの抽出タスクにおいては,レシピ データの特性に特化した抽出手法を構築することが重要 である. 本稿では,以下のような構成をとる.2 章にて,実際 に投稿された重複レシピの例を示す.3 章にて,重複レ シピの抽出手法の概要を紹介する.4 章では,現存する 手法の課題点と,今後の方向性について議論する.
2.
重複レシピの例
本章では,具体的にどのような重複レシピが投稿され ているのか,重複レシピにはどのような傾向があるのか を,実際の例を用いて紹介する. 2・1 完全重複レシピ 完全重複レシピとは,図 1 に示すように,既存のレシ ピと材料,調理手順が完全に一致するレシピ,あるいは, 図 2 に示すように料理画像が一致するレシピを指す.完 全重複レシピは,登録済みのレシピ情報をコピーして生 図 1 材料・調理手順が一致しているレシピペアの例 図 2 料理画像が一致しているレシピペアの例成されるため,レシピのオリジナリティは存在しない. また,コピー元が他のユーザが投稿したレシピであった 場合には,著作権侵害に当たる可能性がある.そのため, 完全重複レシピは,レシピデータベースから除外すべき である. 2・2 部分重複レシピ 部分重複レシピとは,材料,調理手順,料理画像など が完全に一致しないものの,類似しているレシピのこと を指す.ただし,部分重複レシピといっても,既存のレ シピとの類似性が低く(改変の度合いが高く),明確な 差異がある場合には,そこにオリジナリティが存在する アレンジレシピと考えられるが,類似性が高い(改変の 度合いが低い)場合には,悪意をもって既存レシピがコ ピー・投稿されたと考えられる.そのため,部分重複レ シピにおいても,類似性が高い場合には,レシピデータ ベースからの削除を検討すべきである. ここで,島田らは [島田 17] において,テキスト情報(料 理タイトル,料理カテゴリー,材料,調理手順)を対象 とし,部分重複レシピにはどのような類似性があるのか を体系化し,部分重複レシピを,表 1 に示す四つのパター ンに分類した.さらに [島田 17] では,短時間に多数の レシピを投稿するユーザを対象に,表 1 のどのパターン の部分重複レシピを投稿したかについて調査した*4.そ の結果,図 3 に示すように,68.0%の部分重複レシピが, 「部分重複 B」に分類された.部分重複 B の典型的なパ ターンを図 4 に示す. また,料理画像に改変を施した部分重複レシピも存在 する.料理画像に改変を施す場合には,図 5 に示すよう に,元料理画像から色合いを変化させる,一部分の矩形 を切り取る,回転あるいは反転させるなどの手段がとら *4 部分重複レシピのパターンは,複数の判定者によって人手 で判定した.判定者 4 名の間の一致度(Fleiss’s kappa)は, 0.737であった. 図 4 部分重複 B のレシピ例:食材改変と,改変した食材に該当する調理手順に改変を施したレシピ 図 3 同一ユーザによって投稿された部分 重複レシピのパターン分布 [ 島田 17] 表 1 部分重複レシピのパターン [島田 17] 部分重複 A 材料に軽微な差異はあるものの,調理手順が完全に一致している部分重複レシピ 部分重複 B 材料に軽微な差があり,調理手順にオリジナリティがない変更が加えられている部分重複レシ ピ 部分重複 C 材料に軽微な差があり,かつ,調理手順にオリジナリティのある変更が加えられている部分重 複レシピ 部分重複 D 料理名・材料リスト・料理名・登録カテゴリーに異なりがあるが,調理手順に類似性が見られ る部分重複レシピ 図 5 料理画像が類似しているレシピペア
れる場合が多い.
3.
重複レシピ抽出手法
ここでは,2 章で示したような重複レシピを自動的に 抽出する手法を紹介する. 3・1 調理手順の文字列の類似性による重複レシピ抽出 アプローチ 久保らは [久保 16] において,テキスト情報の類似性 に着目することで重複レシピを抽出する手法を提案し た.レシピデータには,テキスト情報として,料理名, 材料,調理手順が存在するが,調理手順のテキストデー タを利用している.具体的な手法は,以下のとおりであ る. 1)各レシピに対して,調理手順を結合した文字列を 生成する. 2)生成した文字列から n-gram 文字列を抽出し,レ シピの n-gram 文字列集合を生成する. 3)レシピペアに対して n-gram 文字列集合の Jaccard 係数を計算する. 4)Jaccard 係数が高いレシピペアのうち,投稿時間 が遅いほうを重複レシピとする. なお,調理手順の記述に用いられる材料や調理方法, レシピ特有の言い回しには表記の揺らぎが存在する.そ こで,その特徴を用いて,重複レシピの見掛け上の差分 を容易につくる方法がよく用いられる.例えば,表 2 の 〈1〉,〈2〉のように,複数の材料や調理途中の中間生成 物を記号文字に置き換え,調理手順を簡潔に表現する方 法が幅広く使われているが,その記号文字列を異なる記 号に改変するケース,表 2 の〈3〉のように,調理手順 番号にずれが生じているが調理手順は同じであるケース がある.また,表 2 の〈4〉,〈5〉のように,文字列とし ては異なるが,同じ意味またはとても似ている材料・調 理手順であるケースがある.手順 1 の結合文字列を生成 する際に,これらの要素をノーマライズしておくと,よ り多くの重複レシピを抽出することができる. 3・2 料理画像の類似性による重複レシピ抽出アプローチ 料理画像の類似性も重複レシピを抽出するにあたり有 効な手掛かりとなる.基本的には,料理画像から特徴量 を抽出し,抽出した特徴量のコサイン類似度を計算する ことによって類似する画像を抽出する.特徴量生成には, SIFT特徴量[Lowe 04]などの静的な特徴量を利用する方 法が考えられるが,2 章で示したような改変が行われる ことを考慮し,画像認識モデルを用いると有効性が高い. [小 邦 18] で は, 学 習 済 み の Inception-v3 モ デ ル [Szegedy 16]を用いることで料理画像から特徴量を算出 している.また,Inception-v3 モデルをもとにして,クッ クパッドに登録されている料理画像およびその料理カテ ゴリー情報を学習させ,類似料理画像の検索性能を向上 させる取組みも報告されている*5. 3・3 レシピ投稿時間の局所性による重複レシピ抽出 アプローチ レシピ投稿時間の局所性,すなわちユーザがあるレシ ピを投稿してから,次のレシピを投稿するまでにどの程 度の時間をかけたのかという観点で,重複レシピを検知 するアプローチも有効である.これは,人が単位時間あ たりに生成できる情報量は限られているため,短時間に 多数のオリジナリティがあるレシピを投稿することは不 *5 レシピの画像検索に必要な技術,https://techlife. cookpad.com/entry/2018/08/28/162000(2018 年 9 月 6 日取得) 表 2 調理手順における類似表現 [久保 16] 記号文字列の 改変 〈1〉 片栗粉をまぶしたエビを両面焼き, 端っこで●も炒める. 片栗粉をまぶしたエビを両面焼き, 端っこで★も炒める. 〈2〉 お鍋にたっぷりお水を入れ①,②(ジャ ガイモは後で…)を入れ煮込む. お鍋にたっぷりお水を入れ【1】,【2】 (ジャガイモは後で…)を入れ煮込む. 調理手順 番号のずれ 〈3〉 7に 5 のホワイトソースを加え,さら に煮込みます. 6に 5 のホワイトソースを加え,さら に煮込みます. 調理方法の 変更 〈4〉 きゅうりを小口切りにし,塩少々(分 量外)をふり 5 分ほどおき,水気を絞 る. きゅうりを薄切りにし,塩少々(分量 外)をふり 5 分ほどおき,水気を絞る. 材料の変更 〈5〉 じゃが芋は小口切りにし水に 10 分さ らす. 新じゃがは小口切りにし水に 10 分さ らす 図 6 レシピ投稿間隔の分布可能であるという経験則に基づくものである. 図 6 に,楽天レシピにおける同一ユーザによるレシピ の投稿間隔の分布を示す.図 6 の左側(レシピ投稿間隔 が 120 秒以内)の領域に異常な分布を観測することがで き,実際に無視できない量のレシピがとても短い投稿間 隔で投稿されていることが確認できる.この値域に該当 するユーザ行動の典型的な例を表 3 に示す.表 3 に示す ユーザは,39 分間に 37 レシピを投稿している. このように短時間に多数投稿されたレシピは,オリジ ナリティが低い重複レシピである可能性が高い.[島田 17]や [小邦 18] では,重複レシピを抽出するための最初 のフィルタリング条件として,レシピ投稿間隔に関する 条件を適用させている. 3・4 複数アプローチの併用 3・1 ∼ 3・3 節において,料理手順の類似性,料理画像 の類似性,投稿時間の局所性による重複レシピ抽出アプ ローチを紹介したが,単一のアプローチによって,悪意 に基づく重複レシピであると決定付けることは困難であ るケースがある*6.このようなケースに対応するために, 3・1 ∼ 3・3 節で示した複数のアプローチを併用し,多角 的に評価することによって,悪質な重複レシピと結論付 けることが必要である.実際に [小邦 18] では,3・1 ∼ 3・3 節のすべてのアプローチを併用し,重複レシピを抽 出する手法を提案している.
4.
課題点と今後の方向性
3章で示したアプローチで数多くの重複レシピを抽出 することが可能であるが,以下に示すような課題がある. 【課題 1】文字列ベースの類似性に関する課題 調理手順のテキスト文字列が短いレシピを対象とし た場合,3・1 節の調理手順文字列の類似性による重 複レシピ抽出アプローチでは抽出されにくい.これ は,文字列長が短い場合,n-gram 文字列の集合に よる Jaccard 係数の値が小さくなる傾向があるから である. 【課題 2】アレンジレシピとの区別 オリジナリティのあるアレンジレシピは,レシピ データベースから除外すべきではない.そのため, オリジナリティのあるアレンジレシピと,オリジナ リティのない重複レシピの判別をする必要がある. アレンジレシピも,調理手順や調理画像が類似して いる場合があるため,両者の判別が難しい場合があ る. 課題 1 に対しては,Jaccard 係数以外の評価軸を適用 することで解決できる可能性がある.例えば,word2vec [Mikolov 13],doc2vec [Le 14] などの分散表現を適用す ることで,材料,単語,調理手順の文章などにベクトル を与え,そのベクトルをもとに,レシピの類似性を計測 するというアプローチが考えられる.さらには,料理画 像の特徴量も併用して,multimodal な判定器を構築す ることも可能であり,重複レシピの検知性能の向上が期 待できる. 課題 2 に対しては,レシピデータや,レシピ投稿側 のユーザ行動データだけではなく,レシピを検索,閲覧 するユーザの行動データを参照する方法が考えられる. ユーザのレシピページ訪問回数,滞在時間はユーザの当 該レシピへの興味度合いを推定する説明変数となり,レ シピのオリジナリティの定量化に寄与すると思われる. また,近年,レシピサイトでは,レシピ画像だけでは なく,調理手順を撮影した動画をアップロードできる機 能が提供されている.レシピデータの要素の一つとして 調理動画が加わった際に,重複レシピ抽出アルゴリズム がどうあるべきかについて,検討していく必要がある. 謝 辞 本研究の一部は,科学研究費補助金基盤研究 B(課題 番号 16H02913)の助成を受けて遂行された.◇ 参 考 文 献 ◇
[深谷 04] 深谷 亮,山村 毅,工藤博章,松本哲也,竹内義則:単 語の頻度統計を用いた文章の類似性の定量化─部分的類似性の 考慮─,信学論(D-2),Vol. J87-D-2, No. 2, pp. 661-672(2004) [Henzinger 06] Henzinger, M.: Finding near-duplicate web pages: A large-scale evaluation of algorithms, Proc. 29th Annual Int. ACM SIGIR Conf. on Research and Development in Information Retrieval(SIGIR’06), pp. 284-291(2006) [久保 16] 久保 遥,関 洋平:投稿型レシピサイトを横断した重複レシピの判別,第 8 回データ工学と情報マネジメントに関する フォーラム(DEIM 2016),C8-3(2016)
[Le 14] Le, Q. and Mikolov, T.: Distributed presentations of *6 レシピデータベースから削除するためには,「悪意がある」こ との証拠を投稿ユーザに提示する必要がある.悪意の証拠を用 意できない場合は,レシピデータベースからの削除が困難にな る場合がある. 表 3 短時間に多数のレシピを投稿するユーザの例 (12:55 ∼ 13:34 の 39 分間に 37 レシピを投稿) 投稿時間 料理名 2016/2/1 12:55 簡単フロランタン 2016/2/1 12:56 黒ゴマ味 の焼きおにぎり 2016/2/1 12:58 白菜の豆乳ポタージュ 2016/2/1 12:58 のチーズ焼きカレー … … 2016/2/1 13:31 ほうれん草とりんごのスムージー 2016/2/1 13:32 ストロベリーチョコラスク 2016/2/1 13:33 車麩の南蛮 2016/2/1 13:34 レトルトカレーでカレー鍋
sentences and documents, Proc. 31st Int. Conf. on Machine Learning(ICML 2014), pp. 1188-1196(2014)
[Lowe 04] Lowe, G. D.: Distinctive image features from scale-invariant keypoints, J. Computer Vision, Vol. 60, No. 2, pp. 91-110(2004)
[Manku 07] Manku, S. G., Jain, A. and Sarma, D. A.: Detecting near-duplicates for web crawling, Proc. 16th Int. Conf. on World Wide Web(WWW’07), pp. 141-150(2007)
[Mikolov 13] Mikolov, T., Sutskever, I., Chen, K., Corrado, G. and Dean, J.: Distributed representations of words and phrases and their compositionality, Proc. 26th Int. Conf. on Neural Information Processing Systems, Vol. 2, pp. 3111-3119(2013) [小高 03] 小高知宏,村田哲也,高 建斌,諏訪いずみ,白井治彦,高橋 勇,黒岩丈介,小倉久和:n-gram を用いた学生レポート評価手 法の提案,信学論(D),Vol. J86-D-1, No. 9, pp. 702-705(2003) [小邦 18] 小邦将輝,島田理紗子,平手勇宇,杉山一成,関 洋平: レシピの素性を用いた重複レシピ判別の検証,第 10 回データ 工学と情報マネジメントに関するフォーラム(DEIM 2018), J2-2(2018) [島田 17] 島田理紗子,小邦将輝,平手勇宇,関 洋平:重複する料 理レシピを判別するためのコーパスの構築,ARG Web インテ リジェンスとインタラクション研究会,第 11 回研究会,WI2-2017-25(2017)
[Szegedy 16] Szegedy, C., Vanhoucke, V., Ioffe, S., Shlens, J. and Wojna, Z.: Rethinking the inception architecture for computer vision, Proc. IEEE Conf. on Computer Vision and Pattern Recognition(CVPR), pp. 2818-2826(2016)
[高橋 07] 高橋 勇,宮川勝年,小高知宏,白井治彦,黒岩丈介: Webサイトからの剽窃レポート発見支援システム,信学論(D), Vol. J90-D, No. 11, pp. 2989-2999(2007)
[Tao 13] Tao, K., Abel, F., Hauff, C., Houben, G. J. and Gadiraju, U.: Groundhog day: Near-duplicate detection on twitter, Proc. 22nd Int. Conf. on World Wide Web(WWW’13), pp. 1273-1284 (2013)
[Theobald 08] Theobald, M., Siddharth, J. and Paepcke, A.: SpotSigs: Robust and efficient near duplicate detection in large web collections, Proc. 31st Annual Int. ACM SIGIR Conf. on Research and Development in Information Retrieval (SIGIR’08), pp. 563-570(2008)
[Zhang 13] Zhang, Q., Ma, H., Qian, W. and Zhou, A.: Duplicate Detection for identifying social spam in microblogs, Proc. 2013 IEEE Int. Congress on Big Data, pp. 141-148(2013) 2018年 10 月 22 日 受理