レコメンドエンジンの概要

 今回も、かなり短い記事になりますが、レコメンドエンジンの仕組みに関する基礎知識を共有していきます!

目次

レコメンドエンジンとは?

 早速ですが、レコメンドと聞いて何を考えますでしょうか?
 色々と回答はありますが、レコメンドとはエンドユーザーにインサイト*1を気付かせるものになります。
 具体的にどういったものがレコメンドかというと、アパレルショップで、店員が来店顧客に「こんな商品おすすめですよ」と言っていることがあると思いますが、まさにこれがレコメンドです。このときに、店員は来店顧客の見た目からわかる性別やざっくりした年代を元に、同じ性別の方や年代の方がよく見られている商品や買われている商品、または売れ行き商品をオススメしているかと思います。この過程を少しだけ言い換えてみると、店員は、多くのエンドユーザーの過去の閲覧の履歴(閲覧履歴)や購入履歴をベースに算出したユーザーの属性に応じた商品毎の点数(スコア)をベースに、スコアの高いものからエンドユーザーにレコメンドをしていることになります。そして、この過程において、スコアをつけているのは各店員かもしれませんが、それを自動算出してくれているものがレコメンドエンジンになります。

デジタル領域におけるレコメンド

 ここまで、実店舗におけるレコメンドをベースに説明をしてきましたが、デジタル領域においてはどうでしょうか?Amazon楽天などのECサイトなどでよく見かけるかもしれませんが、デジタル領域にレコメンドの例として、サイト上に表示されている「あなたに似ている人はこんな商品を見てます」といったレコメンドや、「この商品を買っている人はこの商品も買ってます」といったレコメンドが有名です。正直、やっていることは実店舗(オフライン)であろうと、ECサイト(オンライン)であろうと、変わらないはずですが、オフライン、オンラインが変わっただけでイメージが出来なくなる方も多いなという印象ですので、まずはこれが同じものであることを認識して頂けると嬉しいと思っております。
 そして、デジタル領域においてレコメンドを実現することにより得られるメリットとしては、毎回どの商品を紹介するかを考える工数を抑えられることと同時に売上の向上に繋げられることになります。ただ、筆者としては売上の向上よりも圧倒的に工数の削減へのメリットがでかいと考えております。その理由としては、本来的にエンドユーザーにオススメする商品というのは本当にエンドユーザーのことをわかっていて、商品のことをわかっているセンスの良い人がおすすめする商品の方が圧倒的に効果があり、それをルール化したほうが良いのですが、それをやることが困難が故にレコメンドを使うケースが多いためです。そのため、繰り返しなりますが、レコメンドエンジンは本来的に売上が一番上がる方法ではなく、あくまでも及第点以上のオススメ商品を自動的に算出できるものだと考えて頂く方が良いかと思います。

レコメンドの計算の仕組み

 では、レコメンドではどのようにレコメンド商品を計算しているのでしょうか?
 以下にキャプチャを記載して、それに合わせて説明をしていきます。まず前述したように、過去のエンドユーザーたちの閲覧の履歴や購買の履歴を元にどの商品をオススメするのかを決めていくため、当然ですが履歴の明細データが必要となります。ここで履歴の明細としたのは、レコメンドにおいて商品をオススメする形になりますが、明細単位でない場合には商品の情報が入っておらず、レコメンドの計算が出来ないためです。そして、計算結果自体はエンドユーザー毎、若しくは商品毎に、どの商品にどの程度のスコアが付いているのかを表すようなデータとなりますが、そこに商品情報にて必要な項目を追加することによりレコメンドの計算結果は成立します。そのため、レコメンドのインプットには履歴明細商品情報の2つのデータが必要となります。
 その次に、レコメンドの計算結果に関しては、複数の計算方法を利用したものを最後に纏めてサイトレコメンドでの表示やメールレコメンドでの表示に利用することが多いため、基本的にはどのようなレコメンドエンジンでも最後のレコメンド表示用DBのようなDBを持つ形になります。ちなみに、その際にメインで利用するレコメンド計算結果をメインロジックやメインアルゴリズム、次点以降で利用するレコメンド計算結果をサブロジックやサブアルゴリズムと言ったりします。

レコメンドの仕組み①
レコメンドの仕組み②

レコメンドの計算方法

 では、インプットから表示用DBの作成までの流れは分かったかもしれませんが、レコメンドの計算方法にはどんなものがあるのかという疑問が生じるかと思います。
 ちょっと今回は具体例から入れればと思います。例えばですが、よくECサイトで見るレコメンドにおいては、「あなたに似ている人はこんな商品を見てます」といった文言や「この商品を買っている人はこの商品も買ってます」という文言があります。そしてこの文言をもう少し詳細にしたほうが何をしているかのイメージがよりつきやすいかと思いますので、次のように詳細化してみます。

  1. 「あなたに閲覧の仕方が似ている人はこの商品も閲覧しています」
  2. 「あなたに閲覧の仕方が似ている人はこの商品も購買しています」
  3. 「あなたに購買の仕方が似ている人はこの商品も閲覧しています」
  4. 「あなたに購買の仕方が似ている人はこの商品も購買しています」
  5. 「この商品を閲覧している人はこの商品も閲覧しています」
  6. 「この商品を閲覧している人はこの商品も購買しています」
  7. 「この商品を購買している人はこの商品も閲覧しています」
  8. 「この商品を購買している人はこの商品も購買しています」

上に記載したものは、ユーザーベースのもの、アイテムベースのものに分類でき、更に、閲覧を英語にしたBrowseの頭文字のB、購買を英語にしたOrderの頭文字のOをそれぞれ使って以下のように分類することが出来ます。

  • ユーザーベースのもの(ユーザー相関)
  1. 閲覧閲覧相関(BB相関):「あなたに閲覧の仕方が似ている人はこの商品も閲覧しています」
  2. 閲覧購買相関(BO相関):「あなたに閲覧の仕方が似ている人はこの商品も購買しています」
  3. 購買閲覧相関(OB相関):「あなたに購買の仕方が似ている人はこの商品も閲覧しています」
  4. 購買購買相関(OO相関):「あなたに購買の仕方が似ている人はこの商品も購買しています」 
  • アイテムベースのもの(アイテム相関)
  1. 閲覧閲覧相関(BB相関):「この商品を閲覧している人はこの商品も閲覧しています」
  2. 閲覧購買相関(BO相関):「この商品を閲覧している人はこの商品も購買しています」
  3. 購買閲覧相関(OB相関):「この商品を購買している人はこの商品も閲覧しています」
  4. 購買購買相関(OO相関):「この商品を購買している人はこの商品も購買しています」

 ここで、相関という言葉を使いましたが、相関とは、関係がどのくらいあるかを表す言葉で、よく一緒に買われる/見られる商品があれば相関は高く、逆に全然一緒に買われる/見られることがなければ相関は低いというように表現します。加えて、この相関というのは統計の基礎知識として知っている方もいるかもしれませんが相関係数というものを計算して、どの程度類似しているのかを算出することが出来ます。
 そのため、多くのレコメンドエンジンで上記のようなユーザー相関やアイテム相関といったレコメンド計算方法を採用されております。
 それ以外のものとしては、よく見られるランキングや特定のアイテムを担当者のオススメで出すようなレコメンドなどもレコメンドエンジンの基本的な計算結果の算出方法として利用されております。*2

さいごに

 今回はレコメンドエンジンの基本的な仕組みを簡単にご紹介しましたが、重要なことは「レコメンドとは何か?」、「どんな仕組みでレコメンド商品を出しているのか?」、「計算方法にはどんなものがあるのか?」という部分です。ただ、あくまでも全量というよりはさわりとしての紹介になりますので、より細かいことは調べてみてください!
 一旦、今回は以上になります!

*1:インサイトとは、「自分自身も気づいていない隠れた心理」

*2:正直、担当者のオススメに関しては、計算しておりませんが。。笑