技術

piaproの作品推薦機能(ブクマつながり)をリニューアル

LINEで送る
Pocket

弊社のCGM型コンテンツ投稿サイト「piapro(ピアプロ)」にて、提供している作品推薦機能(愛称:ブクマつながり)をリニューアルいたしました。

■機能説明

「ブクマつながり」とは、ピアプロユーザーが作品をブックマークしたデータを基に、他にもこんな作品がオススメ!と他の作品を推薦する機能です。

■技術解説

一般的に推薦機能を実現するためには、作品同士の類似度を計算する手法が利用されます。作品をブクマしているユーザーの集合を調べ、作品ごとにその集合がどのくらい類似しているかを計算し、最終的に閲覧中の作品と類似度の高いものを表示する、という手順です。

上記のような計算によってこれまでもブクマつながりが表示されていましたが、「もっとpiaproにあった推薦方法はないか」と考えながら計算方法を改善し、新しい推薦エンジンを作りました。

主な変更点は次の二点です。

  1. 処理の高速化
    通常、作品同士の類似度の大きさを計算しようとすると「作品数 × 作品数 /2」の数の関係を計算する必要があります。作品数が少ない場合はこれでも十分に計算できるのですが、100万以上の作品を有する piapro では、この計算が簡単に終わらないほど大変な量になっていました。
    そこで今回利用したのが、Locality Sensitive Hashing (LSH) という手法※1。似たものが同じ値になるようなHash関数を利用することで、Hash値が同じものを検索すれば似た作品のリストを得られるという便利な特徴を持っています。
    計算量の多さから、これまで限られた期間のブクマを抜き出して類似度を計算していたのですが、高速化によって全サービス期間で計算できるようになりました。それによって、以前に投稿された作品でもつながりを認識できるようになりました。
  2. ブクマ数による偏りの少ない推薦手法
    新しく作った推薦エンジンでは、類似度が高いだけではなくブクマ数による偏りが少ないような推薦をおこなっています。
    これまでの手法では「推薦される作品がブクマの多いものに集中する」という特性がありました。そのような偏りが問題にならないサービスも多いのですが、piaproではできるだけ多くの作品に出会えるようなサービスにしたいとの思いから、幾つかの計算方法をテストし、最もブクマ数の偏りが少なく多様な作品が推薦される方法を採用しました※2。

機能を使用してみて何か気になった点があった場合、ぜひご意見としてお聞かせください!
ご意見・ご感想はこちら>>

これからもpiaproをよろしくお願い致します。
http://piapro.jp/

※1 Indyk, P., Motwani, R., Approximate nearest neighbors: towards
removing the curse of dimensionality, Proceedings of the thirtieth
annual ACM symposium on Theory of computing, (1998).
※2 石岡, 人気に対して中立な推薦のための類似度関数の評価, 人工知能学会全国大会, (2016).