こんにちは、ピクスタ開発部の星直史です id:watasihasitujidesu です。 idがwatasihasitujidesuですけど、執事ではありません。エンジニアです。
PIXTAはプロ・アマ問わず、国内外のクリエイターから投稿された1,900万点以上の素材を販売しており、1点540円~の低価格と高品質・幅広い品揃えで、広告代理店・デザイン制作会社をはじめさまざまな業種のカスタマーにご利用されています。
1,900万点以上の素材は、1点ずつ複数のタグ情報を保持しており、そのデータはCloudSearchに格納し、高速な検索を実現しています。
また、今年の2月にはタイ語サイトをリリースしました。
今回はこれまで海外展開をしていく中で、CloudSearchを活用した各地域のローカライズに関して、PIXTAではどのようにシステムを対応しているかを書きます。
目次
- 日本ロケールと欧米ロケールの検索結果比較
- 地域別のスコアリング
- まとめ
日本ロケールと欧米ロケールの検索結果比較
PIXTAは海外ローカライズのために、居住地にあった素材の表示の仕方をしています。
上記の画像は人物カテゴリの検索結果です。
- 左が日本ロケールの人物カテゴリ検索結果
- 右が欧米向けロケールでの人物カテゴリの検索結果
同じ人物カテゴリでも、その地域に合わせた画像を表示するようにしています。
地域別のスコアリング
基本的な仕組みの概要を説明します。 例えば、東京で検索した場合の素材表示に使うスコアリングは、日本向け素材のものを中心に高めのスコアリングで表示させ、日本から遠い国の表示は加点具合を抑えているようにしている。
スコアリング結果は下記のようなイメージです。 日本素材: 200点 欧米素材: 20点
これを実現するために、素材に対してどこの地域の素材か?というデータを緯度経度で持たせています。
そして、検索したユーザーのIPを元に緯度経度を特定し、2点間の距離を求めます。
素材の地域 | 検索したユーザーからの距離 | |
---|---|---|
素材A | 日本 | 0km |
素材B | 中国 | 3,000km |
素材C | ヨーロッパ | 20,000km |
上記のような素材が存在する場合、 仮に東京から検索した際のスコアリングはA > B > Cの順に高いスコアリングになります。
具体的には、 CloudSearchのhaversin関数を使用しています。 カラムタイプをlatlonを指定し、そこに緯度経度情報を格納しhaversin関数で2点間の距離を導くクエリを作成、実現しています。
また、距離に応じて線形にスコアリングするのではなく、指数で累乗した数値を活用することで、中心地域周辺の素材がバリエーション豊富に集まるような工夫をしています。
これらのスコアリングは、方法はAWSドキュメント内の、Amazon CloudSearch での式の設定の項で、使用できる関数が記載されているので、 これらを参考にスコアリング式を定義することができます。
また最近繁体字サイトでは、この仕組みを利用して、ユーザーがどの地域の素材を優先して表示させるかを選択できるようにしています。これは、繁体字サイトでは、台湾の素材だけでなく、日本人素材、アジアの素材、欧米素材など、多彩なユーザーの要望に応えるためです。スコアの調整など継続して改善していく必要がありますが、今後、効果を測定して他言語でも提供していきたいと思っています。
まとめ
検索結果のスコアリングは非常に頭を悩ます問題だと思います。 ユーザーの行動やコンテンツの質をうまく数値化し、最適な検索結果を求めるのは終わりのない道だと思います。 今回の記事は海外対応時のスコアリングという、一部分の紹介ではありますが、少しでもみなさんの役にたてれば幸いです。