注意点として、レコメンドシステムでユーザーの購入数や閲覧数を用いている場合、これらは0または正の値しか取り得ないため、コサイン類似度は0~1の範囲となります。ユークリッド距離とコサイン類似度に差が出る場面2点と原点が一直線上にある場合この場合、コサイン類似度は1であり区別がつかないほど類似していることになりますが、ユークリッド距離はしっかりあります。-1(角度180°)となります。レコメンドシステムではなぜコサイン類似度が用いられる?あるECサイトはPCパーツ、Tシャツの2つの商品カテゴリだけを扱っています。ユーザーが何に関心があるかを各カテゴリの購入点数で表すことにしました。各ユーザーの特徴は2次元のベクトルで表されます。ここで、3人のユーザーのベクトルは次とします。12ユークリッド距離3点間のユークリッド距離を求めてみます。コサイン類似度コサイン類似度も求めてみます。比較さて、ユーザーAは「PCパーツに興味があるヘビーユーザー」、ユーザーBは「PCパーツに興味があるライトユーザー」、ユーザーCは「Tシャツに興味があるライトユーザー」と解釈できます。ここでユーザーBにレコメンドする商品は何が良いでしょうか?ユークリッド距離に基づけば、距離BCが比較的小さいですので、Cがよく買っているTシャツを勧めることになります。一方でコサイン類似度に基づけば、cos(AOB)が比較的大きいですから、Aがよく買っているPCパーツを勧めることになります。大雑把に言えば、ユークリッド距離は要素の絶対値に強く影響され、ユーザーの利用頻度(ライトユーザーかヘビーユーザーか)で分ける傾向があります。コサイン類似度は要素の絶対値を無視して商品のカテゴリで分ける傾向があります。ECサイトではカテゴリを重視したほうが良いレコメンドができるという考えからコサイン類似度が採用されやすいわけです。上の例ではBさんにPCパーツを勧めることになるでしょう。コサイン類似度を採用するメリットAさんがPCマニアで、よく高級キーボードを買っていたとします。BさんもPCには興味がありますが、そんなに高いキーボードは買ったことがありません。Bさんに高級キーボードをレコメンドすれば、興味が増してよりヘビーなユーザーに成長してくれるかもしれません。すればECサイトとしても儲かります。コサイン類似度を採用するデメリットAさんが重度のPCマニアで、よくCPUグリスや水冷用クーラントを買っていたとします。このような商品をライトユーザーであるBさんに勧めるのはいかがでしょうか?それよりも無難にTシャツを勧めておいたほうが買ってくれる可能性が高いかもしれません。あとがきただし、「ECサイトでは絶対にコサイン類似度」とは言い切れません。どんな距離の指標を採用するかは、何を重視するかによります。ユーザーの購入履歴ではなく閲覧履歴を使ったほうが良い場合もあるでしょう。「車を買った人にまた車を勧める」なんてアルゴリズムはナンセンスですから、カー用品やキャンプ用品を勧めたほうが良いでしょう。レコメンドシステムは売上に直結しますから、適切なデータ解析に基づいた判断が必要になります。高校数学の美しい物語コサイン類似度は2本のベクトルがどれくらい同じ向きを向いているのかを表す指標です。文書のクラスタリングなどに用いられます。論理この記事を書いた人Taniguchi専門は数学と統計。GAFAでの実務経験を買われIT企業からのオファーが殺到している。毎日がトリック・オア・お酒。人生で一度は進化系統樹を描いてみたいですよね。glTFは3Dモデルのファイルフォーマットの一つです。「ここ10年で最高」といった大胆な比較級で毎年波紋を呼ぶボジョレー・ヌーボー。「身長-体重=110が標準体型」というスペ110理論があります。PrologをPythonで再現しながら学んでいきます。多項式近似や深層学習よりも数理モデルが適している例2020/09/082023/03/27無料パッケージ「vcopt」チュートリアル「vcclick」チュートリアル「vcscraping」チュートリアル「vcracing」チュートリアル有償アプリ「vcStitching」チュートリアル遠隔オーダーメイド靴はこちら来店不要のフルオーダーメイド靴「Shoe-Craft-Terminal」GAカレー停止中GAカレーの概要フォローする質問やコメントはSlackでお気軽にSlackに参加するYoutubeでライブ配信していますYoutubeを見る勉強会でコードを配布していますconnpassを見るTwitterでも情報を発信していますTwitterをフォローするタイトルとURLをコピーしました。