Oisix ra daichi Creator's Blog(オイシックス・ラ・大地クリエイターズブログ)

オイシックス・ラ・大地株式会社のエンジニア・デザイナーが執筆している公式ブログです。

SIGIR2019に参加しました!

みなさんこんにちは。オイシックス・ラ・大地のデータチームです。

今回は7/22(月) - 7/25(木)までフランスのパリでSIGIRというカンファレンスに参加してきたので、その報告をしたいと思います。

この記事のアウトラインは以下のような形です。 ​

  • SIGIRとは
    • 学会の様子
  • 論文紹介
    • 概要
    • 特徴
    • 活用案
  • まとめ

SIGIRとは

SIGIRとは「Special Interest Group on Information Retrieval」の略称で、世界中のトップクラスの情報検索研究者が参加する国際的に非常に有名なカンファレンスです。

情報検索分野である検索・レコメンドは弊社のビジネスの核に近く、より注力していきたいと思ったので参加しました。

学会の様子

カンファレンスは、科学技術博物館の一部のホールを借りて行っていました。

f:id:oitech:20190807193154j:plainf:id:oitech:20190807193409j:plain f:id:oitech:20190821175242j:plain

ちなみに街の様子は、こんな感じです。

ルーブル美術館! f:id:oitech:20190807193520j:plain

凱旋門! ​f:id:oitech:20190807193556j:plain

エッフェル塔! f:id:oitech:20190807193709j:plain

よく分からないフランス料理!(美味しかったです) f:id:oitech:20190807193733j:plain

とまあ、カンファレンスの息抜きがてら色々と巡りました。

次から、弊社で活用できそうだと思った論文をいくつか紹介していきます。

論文紹介

Relational Collaborative Filtering:Modeling Multiple Item Relations for Recommendation

概要

  • 既存のCollabotative Filteringの手法は、ユーザーが評価したり購入した情報をもとにitem同士のsimilarityを計算している
  • しかし、現実世界においては例えば、2つの映画の作品は同じ監督が作っていたり、2つで一つの製品になる補完的なitemも多数存在する

f:id:oitech:20190806102512p:plain

  • そこで、itemの関係を活用するためのRelationalなCollaborative Filteringを提案した

f:id:oitech:20190806102614p:plain

特徴

  • Relationalな情報をCollaborative Filteringに組み込むために、two-level neural attention mechanismを使用した
  • first-level attentionではitemとtarget itemのrelation type(関係性)を調べ、どのrelation typeがユーザーにとって好ましいかどうか識別し、second-level attentionでは、関連するitemのembeddingを用いて重みを出力する

f:id:oitech:20190806102643p:plain

  • 上図のように、first-levelとsecond-levelで得られた値を組み合わせ、MLP(多層パーセプトロン)に入力し予測を行う

活用案

弊社でも概要に書いたような問題設定、たとえば、異なるトマトでも同じ生産者さんが作っていたり、麻婆と豆腐を購入して麻婆豆腐を作ったりなど、が考えられます。 現在のレコメンドエンジンは商品の購入情報しか利用していないので、商品の関係性も考慮したロジックに代替することで、お客様の買い物体験がスムーズになるのではないかと思われます。 ​

Reinforcement Knowledge Graph Reasoning for Explainable Recommendation

概要

  • 既存のKnowledg Graphを用いたレコメンドでは、「精度向上のため」にKnowledge Graphの持つ情報を使っていた
  • しかし、この論文ではレコメンドに「解釈性を持たせるため」にKnowledge Graphを活用することを提案している
  • 活用の際に、強化学習アプローチを組み込むことでKnowledg Graphの探索の効率性や解釈性を担保している ​

特徴

下記のようなアーキテクチャで実現しているようです。 ​ f:id:oitech:20190806103155p:plain

  • 一番左のKnowledge Graph部では、状態s_tと取りうるaction space \bar{A}_t(u)を強化学習部のインプットとして渡す
    • また、userとitemから導かれるscore functionを強化学習部へ報酬としてフィードバックする
  • 真ん中の強化学習部では受け取ったインプットから、Knowledg Graph部へ取るべきアクションa_tを渡す
  • 一番右の推論部では、強化学習部で得られたポリシーをもとに解釈性の高いKnowledg Graphのパスを獲得し、レコメンドの対象となるitemを推薦する

活用案

機械学習における解釈性に関する議論は枚挙に暇がないですが、弊社におけるレコメンドの解釈性はかなり重要なのではないかと思います。

何か調理する時の付け合せとしてなのか、買い足し用なのか、などレコメンドするコンテンツ(商品)だけでなくリーズニングがあることで、 この商品を買ってみようというお客様の動機付けに繋がってくると思うので、このモデルを活用できればレコメンドにぐっと奥行きが出てくるのではないかと思います。 ​

Lifelong Sequential Modeling with Personalized Memorization for User Response Prediction

概要

  • 既存のdeepなシーケンシャルなモデルは比較的最近のユーザーの行動から嗜好を捉えられる
  • しかし、ユーザーの嗜好は生涯を通じて固定的ではない
  • そこで、ユーザーの生涯の嗜好を捉えられるようなシーケンシャルなモデルを提案した論文 ​

特徴

  • 以下の3つを満たすようなLifelong Sequential Modelを提案
    • ユーザー行動パターンを効率的に保持できること
    • ユーザー本来の興味と一時的な嗜好に対応できること
    • ユーザー行動の変化に適応できること ​

f:id:oitech:20190806103419p:plain

  • また、上図にあるHPMN(Hierarchical Periodic Memory Network)を用いて、下図のように特定のperiodでメモリを更新していく

f:id:oitech:20190806103438p:plain​ ​

活用案

弊社でも概要に書いたような問題設定が当てはまります。 特に食の領域だと好きなものは年齢を重ねるごとに変わっていく場合が多いですし、一時的にある食べ物にハマることもあり得ます。 ですので、このモデルをうまく活用できれば、お客様のライフステージに合わせた商品の提案も可能になってくるのではないかと思います。 ​

Personal Knowledge Base Construction from Text-based Lifelogs

概要

中国のtwitterのテキストから、どこへ行った、何かを食べた、買ったなど、どのような行動をおこなっていたかなどのライフログイベントを推測し、個々人のナレッジベースを作成します。

  • 行動に無関係なデータも多く含まれること
  • 行動が必ずしも明示的に記載されるわけではないこと
  • 述語が省略されたり、解釈が曖昧になる場合があること

などの難しさがあります。

特徴

bidirectional LSTMとconditional random fieldを組み合わせた2層のモデルにより、 twitterコーパスを主語、述語、目的語、時間のライフログイベントにend-to-endで変換します。

  • 1層目では、テキスト内のライフログイベントの検知、ライフイベントの内容把握
  • 2層目では、1層目の出力結果を用いて、主語、述語、 目的語、時間の4要素に整理

を行っています。

f:id:oitech:20190827222028p:plain

この論文では18人のユーザーの25344のツイートから、137件のイベントが抽出されました。
曜日別にどのような行動をしていたかまとめたのが以下の図です。

f:id:oitech:20190827221734p:plain

活用案

現在Oisixではひとりひとりのお客様がどのような暮らしをしていて何を求めているかは、購入データなどの限られた情報から推測しています。
お客様の行動の情報からどのような暮らしをしているか推測し、

  • 忙しい生活の中で時間をかけずに美味しいものを作りたいお客様
  • 珍しい食材を使ってこだわりのメニューを作りたいお客様
  • 小さな子供が喜ぶ料理を作りたいお客様

などの個別のお客様の要望を推測し、もっと最適な提案ができるようにないかと思われます。

CROSS: Cross-platform Recommendation for Social E-Commerce

概要

中国のEコマースでは、amazonやアリババなどの従来のEコマースプラットフォームで購入するだけではなく、wechatなどのソーシャルメデイア上で商品の紹介や閲覧、購入が行えるようになっています。

Eコマースとソーシャルメディア上での行動の違いを分析したうえで、ユーザーとアイテムの関連性、ソーシャルメデイア上の友人関係を用いて、プラットフォームをまたぐレコメンド方法を提案しています。

特徴

事前分析として以下を行っています。

  • ソーシャルメディアでの購入が実際に行われていることの確認
  • ソーシャルメディアとEコマースでのユーザー行動の違い(一つの商品を購入するまでに閲覧商品数が、ソーシャルメディアの方が少ないことなど)
  • ソーシャルメディアの友人数とソーシャルメディア上での商品購入数は強い相関が見られたが、アプリでは弱い。

次にCROSS (Cross-platform Recommendation for Online Shopping in Social Media)と命名されたレコメンデーションモデルが提案されています。このモデルではCollective Matrix Factorizationを利用してユーザーとアイテムの関連性を求めています。

従来の方法( (b) SocialMF )ではユーザーの好きな商品は、他の全ての友人の好きな商品と似るという想定でした。
今回の方法( (c) CROSS(ours) )では、Eコマースアプリから得られるユーザー自身の嗜好の情報と、ソーシャルメディアでの友人関係から得られる友人影響を組み合わせています。

f:id:oitech:20190827235128p:plain

( (c) CROSS(ours) )の左側では、Eコマースアプリでのユーザー行列P(A)uと商品行列Qiから、Eコマースアプリでのユーザー-アイテム行列を得ます。

( (c) CROSS(ours) )の右側では、ソーシャルメディアの友人との関連を反映したユーザー行列PuTと、Eコマースと共通の商品行列Qiから、ソーシャルメディアの友人の影響を反映したユーザー-アイテム行列R*を得ます。

上記の2つから、ユーザー自身の嗜好の情報と、ソーシャルメディアでの友人関係から得られる友人影響を組み合わせた行列を得ています。

活用案

Oisixではアンバサダーをはじめとした多くのお客様に、Instagramや各種blogに食卓の写真などを投稿していただいております(ありがとうございます!!)。ソーシャルメディア上での購入は対応していませんが、これらのソーシャルメディアの情報をレコメンデーションに活用したいところです。

A Capsule Network for Recommendation and Explaining What You Like and Dislike

概要

最後に個人的に気になった論文を紹介します。 ​

  • Capsule Networkを用いて、ユーザーレビューから評価を予測する論文
    • Capsule NetworkはGeoffrey Hintonを中心に提案されたニューラルネットワーク
    • 従来のニューラルネットとの違いは、Capsule NetworkにおいてはニューロンがCapsuleに置き換えられ、またそれぞれの Capsuleの出力はスカラではなくベクトルであるという点
    • Capsule Networkは特徴間の相対的な位置関係も踏まえて学習することが可能
    • 詳しくはこちら

特徴

f:id:oitech:20190806104159p:plain

  • 上図のViewpoint and AspectExtraction部では、まず畳み込み層の上に重ねられたself-attentionによりレビューにおけるユーザーの着眼点(viewpoint)とアイテムの様相(aspect)の情報を抽出する
    • 例) viewpoint:「使いやすい」「コスパいい」、aspect:「カラフル」「高品質」
  • 次にSentiment Capsules部で、ユーザーの感情を識別するためのCapsle Networkをポジティブ用とネガティブ用で準備し、Routing by Bi-Agreement(CapNetで使われる手法みたいです)を用いてポジティブなCapsuleとネガティブなCapsuleを出力する
    • この出力されるベクトルは、ユーザーがどれくらいアイテムが好きかどうかを表し、またベクトル長はポジネガの感情それぞれの確率を表す
  • これらを総合してユーザーレビューから評価を予測する ​

活用案

弊社でもお客様のレビュー情報は多く蓄積されており、活用も期待されています。

しかし、レビュー内容は多岐にわたり「味には満足しているが、調理方法が難しい」や「サイズは小さいが、とても美味しい」など、 普通の機械学習では本当にその商品が好きかどうかの判断が難しい場合があるので、この手法の活用余地はあるのではないかと思います。 ​

まとめ

学会を通じて新しい手法はあまり見かけられず、既存手法を組み合わせていかに特定の問題設定を解決するかといった内容が多く見られました。

似たような問題設定が弊社でもあったので、うまく活用できれば面白そうだと感じるものもいくつかありました。 ​

また、出席したセッションに偏りがあるかもしれませんが、発表者はほとんど中国の学生の方で、積極的に他の参加者にも議論していくハングリーな姿勢に驚きました。 日本人の参加者は数えるほどしかおらず、世界との差を強制的に実感させられました。

弊社もpurple carrot社を子会社化したりなど、今後社内のグローバル化が加速すると思うので、英語で議論できるようにしたり、最新の手法についてキャッチアップできるよう工夫していきたいと思います!

データ分析者募集中!

hrmos.co

Oisix ra daichi Creator's Blogはオイシックス・ラ・大地株式会社のエンジニア・デザイナーが執筆している公式ブログです。

オイシックス・ラ・大地株式会社では一緒に働く仲間を募集しています