BigQueryを使ったレコメンド改善事例とその仕組み

pixiv運営本部、おすすめ改善チームのogaです。pixiv上で最近行った、イラストのレコメンド改善事例とその技術的な部分について紹介します。

概要

今回の取り組みでは、ブラウザ版pixivのトップページなどに表示しているイラストの「おすすめ作品」機能に対して、「最近投稿された作品を優先してレコメンドする」という変更を加えました。

この施策は以下の2点を期待して実施したものです。

  • 作品を閲覧しているユーザーが、投稿されたばかりのイラストをより多く見られるようになること
  • 作品を投稿しているユーザーが、最近投稿した作品への反応をより多くもらえるようになること

背景としては、ユーザーがトップページを訪問する際、同じ作品が何度も表示されているという状況がありました。

ある日におすすめ作品として表示されたイラストの、投稿時期別の割合を下に載せました。何ヶ月も前に投稿されたイラストが7割を占めていることがわかります。

新しく投稿された作品を優先的にレコメンドすることで、ユーザーの元により多くの作品が届くようにすることを狙っての施策でした。

レコメンドの仕組み

今回はBigQueryを使った推薦の仕組みを実装しました。

BigQueryはGoogleによるフルマネージドなデータウェアハウスのサービスで、社内では主にデータ分析用途で使われています。今回はこれを分析だけでなくイラストのレコメンドのスコア計算に使いました。

BigQueryを使った理由

社内では以前から使われているレコメンドの仕組みがあるのですが、サーバーとして常に起動しておく必要があったり、デプロイの手間があったり短い期間で試行錯誤するのにはあまり向いていないという問題がありました。

BigQueryなら計算に使うSQLを書き換えるだけで簡単にレコメンドの内容を変更できますし、データの読み込みにかかる時間や計算による負荷をあまり気にせずにレコメンドの計算ができるため試行錯誤しやすい、といった利点があります。もともとユーザーの行動ログをBigQueryに載せてあったので、それらを扱いやすい状況であったことも大きな理由の一つでした。

処理の流れ

具体的な処理の流れは以下の通りです。

  1. ユーザーの行動からイラストの類似度を計算する
  2. 結果をBigQueryからダウンロードしてpixivのDBに書き込む
  3. ユーザーが最近ブックマークしたイラストに対して推薦があれば表示する

1. ユーザーの行動からイラストの類似度を計算する

ユーザーが行ったイラストのブックマークのデータを使って、アイテムベースの協調フィルタリングをします。

イラストごとにユーザーのブックマークの情報からベクトルを作って、イラスト間でベクトルの類似度のスコアを計算します。この時にブックマークしたかどうかだけでなく作品につけられているタグの情報も使い、ブックマークしているユーザーと作品のタグのペアの情報が似ているものがレコメンドとして出てくるようにしました。

今回の施策では推薦元が全期間のイラスト、推薦先が直近1週間のイラストに絞ることで最近のイラスト優先のレコメンドを実現しました。この結果を既存のレコメンドと混ぜることで最近の作品がおすすめされやすくします。

おすすめのスコア計算としては、単純に共起頻度を使ったりコサイン類似度を計算したりと、いくつかの方法を試しました。

疑似コードを載せておきます。

2. 結果をBigQueryからダウンロードしてpixivのDBに書き込む

結果の行数が多いので、BigQueryから直接ダウンロードはできません。一旦Google Cloud Storageに書き出す必要があります。

Google Cloud Storageにエクスポートする際はサイズ制限を考慮し、複数のファイルに分割して出力する必要がありました。エクスポート先のファイル名に*を指定すると分割して連番で置き換えて出してくれるので便利です。

この後ダウンロードしてきた計算結果をMySQLに挿入します。現在は毎回全データを更新しているため、BigQueryでのクエリ実行時間よりも長い時間がかかってしまっています。

3. ユーザーが最近ブックマークしたイラストに対して推薦があれば表示する

ユーザーがおすすめを表示するページにアクセスしたときに、最近のブックマークに対するおすすめがあれば表示します。

同じような作品だけを表示してもユーザーにはクリックされづらくなくなるのか、単純にスコアの上位だけを表示するのではなく候補を多めに取ってきてランダムに表示したほうが効果が良かったです。

施策の結果

今回の変更の効果を調べるため、ユーザーを「最近投稿されたイラストを優先したレコメンドを表示するグループ」と「既存のままのレコメンドを表示するグループ」の2つに分けてクリック数などの変化を見ました。

結果としては意図通り、対象にした最近のイラストが表示される割合が増えました。

クリック数に悪影響が出る心配もありましたが、クリック数も上がっていました。

まとめ

  • BigQueryを使ったレコメンドの仕組みを導入しました
    • BigQueryにデータが集約されているので、SQLを書くだけで簡単に計算できました。
    • SQLの実行結果をDBに入れてサービス側から参照するだけのシンプルな仕組みになっています。
    • 実行が数分で終わるので、手元でいろいろなスコア付けやフィルタリングの条件を試せるようになりました。
  • 最近のイラストを優先しておすすめすることでユーザーのクリック数を増加させることができました
    • 単純におすすめされるイラストのバリエーションが増えたことによる効果もあるとは思いますが、より新鮮な作品をおすすめするという変更で、よりユーザーの行動を活発にできたことはよかったと思います。

宣伝

ピクシブではデータをWebサービスに生かすエンジニアを募集しています。

募集要項 / Wantedly

レコメンド改善に興味のあるエンジニアの方は、こちらからご応募ください! https://www.wantedly.com/projects/209847

pixivのHTTP/2有効化の軌跡

@catatsuyです。普段はpixivの技術的な改善や広告周りを見ています。今回はHTTP/2の話を紹介します。

HTTPS化とHTTP/2について

以前紹介したようにpixivは2017/4/18にHTTPS化を完了していました。

昨今ブラウザで使える新しい技術はHTTPSが必須要件とされることが多くなりました。その中の代表格がHTTP/2です。HTTP/2自体はHTTPSを要求していませんが、実際にはHTTPSでなければブラウザ側で有効にならないため必須です。 HTTP/2に対応するメリットは他の詳しい記事を参照して欲しいですが、ざっくり以下のメリットがあります。

  • HPACKという仕様でハフマン符号を使ったHTTPヘッダーの圧縮ができる
  • 1コネクションで複数のリクエストとレスポンスを並列に扱うことができる
  • リクエストされる前にレスポンスを返すサーバプッシュという仕様があり、うまく使うとユーザーの待ち時間を短くできる

これらのメリットがあり、しかも最近はWebサーバー側の実装も進んだため、新しいバージョンにして設定で有効にするだけでHTTP/2が使えるようになるケースがほとんどです。HTTPS化したらとりあえず有効にしたいと考える人がほとんどでしょう。

しかしpixivの場合は1年以上HTTP/2を有効にしてきませんでした。今回は今まで有効にできなかった事情と有効にした話を紹介します。

HTTP/2のコネクション再利用の仕様について

これからドンドン使われていくSNIについて – catatsuy – Medium

個人のブログでも紹介しましたが、ここでも紹介します。

HTTP/2 のコネクション再利用について確認してみる - ブログのしゅーくりーむ

この記事で紹介されているように、HTTP/2ではコネクションを極力再利用して、高速に通信を行おうとします。その証明書を使用して通信できるか次第で、コネクションが再利用できるかどうかの判断を行い、コネクションを再利用する実装をしてもよい(MAY)ということになっています。

RFC 7540 - Hypertext Transfer Protocol Version 2 (HTTP/2)

RFC 7540の9.1.1節によると、TLSを使わず、名前解決の結果同じIPアドレスだった場合はコネクションを使い回していいと書かれています。TLSを使っている場合には、同じ証明書で通信が行えるならコネクションを使い回していいと書かれていて、名前解決については触れられていません。 TLSなしのHTTP/2通信を実装している主要ブラウザは存在しないため、このTLSを使わない場合の話は無視してよいです。そうなると同じ証明書で通信が行えるなら名前解決の結果を確認せずに通信を行ってもよいということになります。 実際に2017年の時点で確認した限り、Firefoxは同じ証明書で通信が行えるならDNSに登録されているかどうかを確認せずに通信を開始することが分かっています。

例えばnginxの場合、設定がないホスト名でリクエストが来た場合default_serverの設定が動きます。正しく設定していれば呼ばれないはずなので、あまり気にすることがない設定かもしれませんが、もし設定が存在しないホスト名でリクエストが来た場合はここの設定が動くためユーザーの期待しない挙動をしてしまいます。

これを防ぎたい場合は、RFC 7540の9.1.2節に書かれているステータスコード421を返すと解決できます。nginxならばdefault_serverの設定でステータスコード421を返すようにすればよいです。しかしこの対応にも問題はあります。折角HTTP/2にしたのにコネクションを使い回せず、コネクションを張り直すようになるので、パフォーマンスが悪化する恐れがあります。そのため私は421が大量に発生しうる構成ならば、そもそもHTTP/2は有効にしない方がよいと考えています。

pixivでのHTTP/2有効化への障壁

pixivは*.pixiv.netのワイルドカード証明書を保有しており、その証明書を使って様々なサービスを提供しています。pixivではサービスだけでなく画像や静的ファイルの配信にもこれまで使用していました。

画像サーバーの場合は、オリジナルサーバーにリクエストが極力行かないように前段でキャッシュを入れたくなります。そうなるとメモリーも必要ですし、キャッシュヒット率を考えれば投入も慎重にならざるを得ません。以上の理由から、画像サーバーのフロントサーバーは普通のアプリケーションサーバーのフロントサーバーとは性質が異なります。同じサーバーでレスポンスを返すようにするのは現実的ではありません。

またpixivの場合、現在は新宿・白河データセンターの2拠点で運用されています。新宿・白河間の通信を大量に発生させるわけにはいかないので、アプリケーションサーバーと同じ拠点にフロントサーバーを置く構成が社内では一般的です。そのため新宿にも白河にもアプリケーションのフロントサーバーが存在しています。例えば新宿のサーバーへのコネクションを使い回して、白河のサーバーから配信したいドメインのリクエストが来てしまうと当然正しく動きません。

これらの事情によりpixivではHTTP/2をこれまで有効にしてきませんでした。

有効化のためにやったこと

HTTP/2を有効にするために、静的ファイル・画像ファイルの配信で.pixiv.netのドメインを使用している箇所をなくしました。 嬉しい副作用として、ユーザーが無駄なCookieをリクエストに付与する問題も解決することができました。

有効にして

今のところ特にトラブルは起こっていません。サーバーグラフでは以下の変化が現れました。

  • CPU使用率が低下
    • SSLハンドシェイクの回数が減ったことが大きいと考えています
  • メモリ使用量が増加
    • 保持する必要があるコネクションが増加したことが大きいと考えています
  • 帯域使用量(特にin)が減少
    • HPACKによるもの

このようにサーバーのグラフからは基本的にユーザー側に嬉しい変化が見て取れます。

CPU使用率

メモリ使用率

帯域使用量

しかしパケットロスが多い環境ではHTTP/2の方が遅いことがあるそうです。日本国内ではほとんど問題ないと思いますが、中国や東南アジアのようにパケットロスが日常的に発生している環境もあります。 そのため環境によってはHTTP/2有効化は必ずしも嬉しくないかもしれませんが、pixivのように多くのURLにリクエストするサービスでは、コネクション再利用の恩恵が大きくユーザー体験向上に繋がると考えています。

HTTP/2の真の効果を得るにはまだ遠い

上記の通りHTTP/2化による効果が現れましたが、HTTP/2の本当の効果を享受するためにはまだまだやることは山積みです。

  • 別サービスである https://comic.pixiv.net/https://sketch.pixiv.net/ に対してCORSなリクエストをpixiv内から飛ばすと421が返る恐れがある
    • 将来的には共通のフロントサーバーから返すようにしたいが、今回は許容
  • 静的ファイルの配信を別ドメインにしたのでHTTP/2の機能であるプッシュが使えない
    • 将来的には静的ファイルの配信はプッシュできるように同じドメイン上で配信したいが、HTTP/2有効化のために完全に別のドメインで提供
    • 今回の構成はHTTP/2有効化のための一時的な構成

引き続きの課題として取り組んでいきます。

最後に

従来のシステム構成はHTTP/2に適していない可能性があります。今までの常識にとらわれずに、HTTP/2時代において最適なシステム構成は何なのかを考えて改善していきたいところです。

We're Hiring!

ピクシブ株式会社では、真のHTTP/2環境を追い求め、改善していくことが好きなエンジニアを募集しています。

募集要項 / Wantedly

データ好きに捧ぐ。pixivのデータ活用事例と無限の可能性

こんにちは、クリエイタープラットフォーム事務局 局長補佐のjaggyです。サービスを横断したデータの分析や経営戦略の立案に関わる仕事をしています。

今回はピクシブのデータの特長と活用事例について紹介させていただきます。 これからデータを扱っていく方にとって、何か参考になれば幸いです。

他にはない独特のデータ

まずピクシブの保有するデータの概要とその特徴について説明します。

pixivには現在、3,000万人以上のユーザー登録があり、1日あたり250〜300万のアクティブユーザーがいます。pixivを開始してから10年以上経ちますが、その間に蓄積されたユーザーの行動ログは膨大な量にのぼります。

また、pixivは世界中からアクセスを集めるサービスでもあり、新規登録ユーザーの6割が海外ユーザーであるほどです。国内サービスとしては貴重な、グローバルなデータを多く保有しています。

加えて、ピクシブではSNSだけではない多種多様のサービスを展開しています。たとえば、ECサービス、wiki、マンガアプリ、決済アプリ、ライブ機能など、様々な要素に関してユーザーの行動ログを保有しています。

複数のサービスを「ポップカルチャー」という事業領域に限定して提供していることもピクシブの特徴として挙げられます。その結果として、サービスのみならずカルチャー自体の傾向までデータから読み取ることが可能です。

分析を支えるデータ基盤と活用の工夫

ピクシブでは、上記の複数サービスを通して得た大量のデータを使いやすくするために、色々な工夫を凝らしています。その大きな工夫の1つがGoogleが提供しているデータウェアハウスプロダクト「BigQuery」の活用です。

BigQueryの主な利点として以下の3点が挙げられます。

  • 分析用SQLの実行速度が速い
  • メンテナンスコストが安い
  • Google AnalyticsをはじめとするGoogle製品との連携が簡単

ピクシブではこうした特徴を持つBigQueryを利用することで、複雑な内容の分析を手軽に実行できる状態を作り上げています。

また他にも、「複数サービスのデータを一元管理したい」という意図でもBigQueryを活用しています。全てではありませんが、サービス単位で取得・保持しているユーザーの行動ログやDBデータをBigQueryに同期するようにしていっています。特筆すべきはGoogle Analyticsのデータで、pixivでは有料版のGoogleAnalyticsを利用しているのですが、有料版の場合Web画面上で設定するだけでBigQueryにデータを送り込むことができるため、開発コストをかけずにBigQueryにデータを集約することができています。

このように、とてもとても便利なBigQueryですが、エンジニア職もビジネス職も含む、社員のみんなが自由に使うには多少知識が必要になり、エンジニア以外にはとっつきづらい面もあります。BigQueryを活用するためには、SQLを書く必要があるからです。KPI等、日常的に参照するデータであればダッシュボードを用意するといったアプローチ(ピクシブでは、同じくGoogle製品である「Google Data Studio」を活用しています)を取ることもできますが、踏み込んだ分析を実施しようとすると、どうしてもSQLを書く必要性がでてきてしまいます。そこで、以下の3つのことを実践してみました。

  • 社員に向けて勉強会を開催(主に新卒・ビジネス職向け)。
  • 社員がよく使うSQLをリスト化して、コピペで使えるようなテンプレを作成。
  • Slackにて、各チームの分析担当の情報共有ができるChannelを作成。

Slack Channelは、情報共有の他、DMでやってくる各々の相談案件を一元化させる目的でも使用しています。今では主に3つの使われ方をしています。

  • 数値の取り方とSQLレビュー
    モチベーションに応じた最適なデータ取得方法(どのテーブルからデータを取得するのがよいか等)や、それを実現するためのSQLに関して相談したり、レビューしあったりします。
  • 結果の共有
    分析結果や、それに紐づく考察内容を共有し合っています。
  • 相談/駆け込み寺
    突発的な相談や依頼を受けています。今後のことを考え、SQLの書き方をレクチャーすることもあります。

これらの運用を半年以上続けてみたところ、かなりの数の方にBigQueryをうまく活用していただけるようになりました。

また、分析やユーザーの行動に興味のある社員が多いことから、門戸を広く開け、権限周りに強いルールを設けることはせずに全社員がBigQueryを利用することができるようにしています。

活用事例

では、実際のデータ活用事例を紹介していきます。

A/Bテストを用いた改善施策の効果検証

pixivでは、仮説に基づく施策を検証する際などに、A/Bテストを実施しています。

たとえば以前、各ユーザーのフォローアクション数増加を狙い、作品をブックマークしたタイミングでフォロー導線を表示する、というUI改修を実施したことがありました。その際50%のユーザーのみを対象に新UIを解放し、この施策によって実際にフォロー数が増加するかをテストしました。その結果、有意な差が生じることが明らかになり、無事全ユーザーを対象にリリースされた案件でした。

pixivというサービスには、自前で用意したA/Bテスト用の基盤が備わっています。アクセスしたタイミングで各ユーザーにA/Bテスト対象かどうかを判別するためのIDを付与し、そのユーザーの行動ログにもA/Bテスト用のIDを紐づける仕組みになっています。BigQuery上のログデータにもA/Bテスト用のIDをセットで保存しているため、A/Bテストのグループごとの各アクション数を簡単に取得・比較できるようになっています。

KPIのトラッキング

サービスを改善するための施策を複数打っていくなかで、KPIを設定することもあります。そうした際は、BigQueryからデータを定期的に集め、グラフを自動的に更新するような仕組みを構築することが多いです。また、常に視界に入るところに数値を置いておくことも重要です。主要な数値を定期的にSlackに通知するbotを運用していたりもします。

次に、サービスの機能への活用についてです。

男女別人気順検索

昨年11月に公開した、作品の検索結果を男性・女性がつけたブックマーク数順に並べかえる機能です。この機能の実装にあたり、およそ42億件ほどあるpixivのブックマークを再集計する必要がありました。BigQueryを利用しない場合、「稼働しているデータベースで再集計の処理を行うことになるため実現は難しい」と考えられていた機能だったのですが、 この時、BigQueryにブックマークのデータを全部入れていたおかげで、たったの2分で初期データの取得処理が終わりました。

プッシュ通知

プッシュ通知は、必要ないユーザーに送ってしまうと逆効果になってしまうため、無作為に送って良いものではありません。「直近でログインがあったか?」「ユーザーをいつフォローしたか?」などの複雑なユーザ行動ログ集計をBigQuery上で実行することで、プッシュ通知を送るべきユーザーを決定しています。

検索ランキング

去年公開した「創作アイディアページ」に掲載している検索ランキングも、日に一度BigQueryを叩いて生成しています。ここでは、行動ログからタグごとの検索回数を算出し、トップ10件を表示する仕組みにしています(実際にはさらに複雑な算出ロジックを用いています)。「今、pixiv上でどのジャンルが流行しているのか」を投稿ユーザーが手軽に把握できるようになっています。

今後の展望

レコメンド改善

新しいサービスが続々と登場し、ユーザーの可処分時間の奪い合いがより加速する中で、ユーザーとコンテンツのマッチングは今後より重要になっていきます。pixivでは、作品のブックマークや閲覧履歴を元にレコメンドを行っていますが、そのチューニングにpixiv独自のデータを利用することができると考えています。

たとえば、pixivに投稿されている作品にはタグがついており、タグには百科事典のデータが紐づいています。これらを解析することで、ユーザーの趣味・嗜好データを把握し、コンテンツとマッチングさせることで、より作品の閲覧などのアクティビティを活性化させることができると考えています。

出版社とのコンテンツ開発

また、pixivコミックではたとえば『ヲタクに恋は難しい』『幸色ワンルーム』など、多くの出版社と共同でコンテンツ開発・運営を行っています。pixivコミック上の行動ログやユーザーの趣味嗜好のデータを匿名化した上でマンガの読者データを分析し、コンテンツ開発に生かしていくといった活用法も可能でしょう。

経営戦略への参考に

データを経営戦略の参考とするため、ダッシュボードの形でサービス横断のデータ可視化に取り組もうとしています。現状、サービス毎のデータの可視化を、ある程度形にはできているものの、サービスを横断して、どのようにピクシブ関連サービスを利用しているかについてはまだ解析ができていません。各サービスの併用率やユーザーのLTVなど、サービスを横断したデータを可視化することで、より高いレベルで経営戦略に関わっていけると考えています。

データ分析基盤の改善

また、データ分析基盤にも改善の余地があると考えています。

たとえば、現在は分析処理を実行する際に、生のユーザー行動ログを直接参照しています。BigQueryを利用している恩恵として、そうした運用であっても速度面において困ることは少ないです。

とはいえ、長期のデータを参照しようとすると扱うデータが膨大になり、それに応じて費用も積み重なっていきます。また、行動ログのデータ形式は必ずしも扱いやすいものではないので、行動ログを予めより扱いやすい形で要約しておき、分析する際にはそちらを参照するようにしていきたいと考えています。

たとえば、ユーザーのアクセスログはURLベースで残していますが、「検索結果ページ」のPV数は「日毎に」どの程度あるか、という単位で値を集計し、別テーブルに保存しておく、といったものを想定しています。

分析に関わる業務フローの改善

数値に紐づく業務フローもまだまだ効率化の余地があると考えています。サービス改善施策を継続的に実施していくなかで、どのタイミングにおいてどの数値を確認すべきか、開発チーム間で共通認識を持っておくことで意思決定スピードを早めることが期待できます。また、施策のサイクルを回していく中で得られた知見を蓄積していくことで、施策運用の効率化を押し進めることも可能になると考えています。具体的にどういったフローで運用しているか、どのような試みをしているかにつていは、また別の機会に詳細を紹介させていただければと思っています。

以上、ピクシブでのデータ活用法を中心に、ピクシブでデータ分析解析をすることの魅力をご紹介しました。もし一緒にデータ使って仕事したい方がいらっしゃればぜひご連絡ください!データを肴にお酒を一緒に飲みましょう!

ピクシブでは一緒に働く仲間を募集しています。

上記に興味がある方、ぜひ応募してみてください。 データを肴に一緒にお酒を飲みましょう!

pixivの新しいターゲティング広告とその目指す世界

こんにちは!メディア事業部のyattyoです。 今回はpixivが新しい広告商材「pixiv Audience Targeting Ads」をリリースしたということで、部署の先輩であるkamonabeとyousanに新商材の内容や開発の経緯について聞いていきたいと思います!

本日はよろしくお願いします。まず、自己紹介からお願いします!

kamonabe: メディア事業部のkamonabeです。純広告やタイアップ商材の営業・販売・管理を行っています。

yousan: 同じくメディア事業部のyousanです。広告プロダクトの開発ディレクションを行っています。

今回リリースした「pixiv Audience Targeting Ads」とはどのような広告商材なのでしょうか?

kamonabe: 広告の掲載場所となる“プレイスメント”を担保した上で、配信対象ユーザーである”オーディエンス”をベースにターゲティングできる広告商材です。既存のバナー広告よりもユーザーと広告のマッチング精度を高めることができます。

現在の広告業界におけるバナー広告は、いわゆる”純広告”のような、pixivの広告枠を1週間いくらで売買するというものから、ウェブならではのアドテクノロジーを活かして幅広いネットワークに対して配信する”運用型広告”にシフトしています。運用型広告は、特定のセグメントに属する”オーディエンス”に絞って広告を配信することで単純にプレイスメント配信よりも、ユーザーとのマッチング精度を向上して広告の効果改善を実現していくもので、そのセグメントの種類もより多様化してきていました。 ただ、運用型広告が広がる一方で、広告主にとっては自社の広告がどこで誰に表示されているのか分からない"ブランドセーフティ"や"アドフラウド"等の問題も近年では大きく取り上げられるようになってきています。また、決して”プレイスメント”の需要や価値がゼロになったわけではなく、依然として特定かつ任意の場所に広告を掲載するということに意義を感じる企業様は多くいらっしゃいます。

そういった背景から、広告が掲載されるpixivという”プレイスメント”を担保しつつ、運用型広告のようにオーディエンスベースでの複雑なセグメント配信によって広告商材としての精度を高めた「pixiv Audience Targeting Ads」を開発する運びとなりました。

yousan: しかしながら、多くの事業者が取得しているユーザーの性別・年齢等の汎用性のある情報だけでターゲティングをしていても、大量の情報を抱えているTwitterやFacebookなどに対して優位性を持つことはできません。 そこで他社のプロダクトと差別化する手段として、「pixivの独自データ」を使用したターゲティングを行うことを重要視しながら設計を進めていきました。

pixivは他のメディアでは取ることのできない、大量のイラスト閲覧データや投稿データなどのpixivにおけるユーザーの行動データを所有しています。それらを活用してユーザーの趣味嗜好や好きなアニメ、さらにその先の好きなキャラクターなどを読み取ることで、ユーザーひとりひとりに最適な広告を出すことができます。

なるほど、pixivでしかできない広告というのがポイントなんですね。 実際にこちらの商材を使用して効果を上げた事例や、こんな企業の方に使っていただきたいというイメージはありますか?

yousan:成功事例としまして、IPものに関する広告は非常に良い結果が出ています。あるアニメが好きなユーザーに、そのアニメのグッズの広告を配信する、というシンプルなターゲティングです。テスト配信した案件ではCTRが3倍以上になったものもありますし、ピクシブのECサービス「BOOTH」での案件ではLPへ遷移した後のCVRが2.5倍になり効果を実感しています。

また、特定のIPに限定せず、ユーザーの好きそうなジャンルで行ったターゲティングも良い結果を出すことができました。「このユーザーはファンタジーの世界観が好きだろうから、このファンタジー系アプリの広告を出してみよう」という形で、結果アプリの利用継続率が2倍以上に上がったものもあります。単純なクリック数だけでなくクリックの質の改善も見込めるので、pixivユーザーとの親和性が高いIPやゲーム系案件のプロモーションを行いたいクライアント様には、ぜひ使っていただきたいと考えています。

IPをお持ちのクライアント様は使わない手はないですね!! 「pixiv Audience Targeting Ads」はどのように開発されたのでしょうか?

kamonabe:話が出た去年の秋口ころから3ヶ月強の時間をかけて、エンジニアリソースも一時的に他部署から補強しながら開発しました。 「どのようなターゲティング項目にするのか?」「その手法はどうするのか?」などの話や、効果向上の為に自社アドサーバーを改修するための要件定義など、しっかり時間をつかって1から仕様策定を行いました。

では開発される際に苦労された点はありますか?

yousan: テストの初期の頃は人力で効果が高くなりそうなセグメント分けを予想して配信を行っていましたが、思ったように効果が出ないものもあり、試行錯誤を続けていました。この案件はこういうユーザーに刺さるだろう!と予想してターゲティングを行った結果、むしろ通常よりもCTRが落ちてしまったこともありました。 それらの改善策として、まず配信初期に学習期間を設け、多様なセグメントを網羅的に配信し、その中でより効果の高いセグメント項目にCTRを寄せていくというソリューションにたどり着きました。人が予想するセグメントだけではなく、しっかりと学習期間を設けつつシステムも併用することで、実績から帰納的に求めたもののほうが効果的なのだと思います。 また、機械的な学習を行うことで、効果の向上のみならず、そのセグメント項目を見てみると僕らでは予想もしない様な項目が上がってきて、かなり興味深い知見が得ることができました。 例えば、BL電子書籍案件においては、BLが好きな方から人気の高いコンテンツの二次創作作品をよく閲覧しているようなユーザーよりも、オリジナルの作品や特定のシチュエーションに特化したような作品を閲覧しているユーザーの方が比較的CTRが高い結果などがありました。

意外な結果ですね!ありがとうございます。では最後に、今後の展望について教えてください。

kamonabe: 広告業界全体の流れとして、データを使用することにより、広告主にとっては広告の無駄打ちを減らし、最大限に費用対効果を引き出しながら、ユーザーにとっても不利益な広告を出さない方向にシフトしています。私達もその流れに乗りながら、広告を出す側も見る側のどちらにもメリットがある広告を提供できればと思っています。それを実現していくための大きな一歩が今回の「pixiv Audience Targeting Ads」だと考えています。

またピクシブの今後の一つの目標として、個人で広告出稿を簡単に行うことができる、 Twitter広告のような、いわゆる「セルフサーブ型の広告」があります。

例えば同人活動をされているユーザーが自分たちの同人誌の販促のためにpixivに広告を出す、というようなものを考えています。

yousan: pixivはクリエイターが集まるプラットフォームであり、個人の力をよりエンパワーメントしたいと考えています。そんな中で私達ピクシブが広告を用いて何に貢献するかを考えた時、「クリエイターさんが、自分の作品をファンに伝えることを支えること」ではないかと思っています。

今まではビジネスモデル的にも大きな企業様からしか出稿いただけていなかったのですが、 個人のクリエイターさん達が自分の創作活動を疎かにしないで、自分の作品を安価で簡単に広められる世界を作り上げることが長期的な目標です。

セルフサーブ型の広告を実現する上での課題は?

yousan: これは終わりがあるものではないのですが、広告効果をさらに改善することだと思っています。そのためにはセグメントの拡充や、最適なアルゴリズムの構築・自動化など、やることはたくさんあると思います。企業の広告主様と比べて、少額の配信であっても最大限の効果を引き出すためには、少量配信でかつ短期間であっても素早く必要な学習が行われて配信が最適化されることがより重要になってくると考えています。 また、それでいてプロダクトの使いやすさ、わかりやすさも非常に重要です。最終的にはクリエイターさんがいっさいマーケティングの勉強しなくても、効果の良い広告が簡単に出せる仕組みをつくる必要もあると考えています。

ユーザーがpixiv内でより簡単に作品を広めることができる世界が来るんですね!

kamonabe: そうですね。一般的に広告はあまりいいイメージを持たれませんが、運用の仕方によってはクリエイターさんにとってもユーザーにとって有益なものにもなります。例えば「pixivに投稿し、その作品を『pixivFACTORY』でグッズ化し、『BOOTH』で販売する。」というようなpixivサービスの一連のサイクルの中に、さらにpixiv内に広告掲載して認知を広めていくというフェーズが加わることにより、より強固にクリエイターさんを支えることができる。ユーザーにとっても興味を引く作品に出会う機会が増える。そういったことを広告からできることに価値があると思います。ここに関しては力を入れて進めていきたいですね。

すごく素敵な世界ですね!ありがとうございました。

今回ご紹介した「pixiv Audience Targeting Ads」を含む、各種広告のお問い合わせは
こちら
から。

また、ピクシブでは一緒に働ける仲間を募集中です!

pixivのタグからトレンドを探る!2017年下半期のタグ数推移・ランキングを公開

こんにちは!プロダクトマネージャーのjaggyです。 普段はPC・スマートフォン版pixivのサービス開発や方針決定を担当しています。特に最近では、サービスのドメイン理解やユーザーの把握のため、データ分析・解析に注力するようになりました。

その過程で、pixiv内での流行トレンドが可視化できるようになったので、みなさんにもご紹介したいと思います。

pixivのタグからトレンドがみえる

pixivでは、投稿された作品にタグをつけることができます。このタグは投稿者でなくても、誰でもつけることができます。また、そのタグから検索して作品をめぐるのがpixivでの楽しみ方の一つであるため、どのタグがよく見られたか= pixivのトレンドだと考えることができます。
今回のトレンド調査では、このタグの関連数値を手掛かりとして分析をしていきます。

また、pixivでの楽しみ方は、「作品を投稿すること」また「投稿された作品を閲覧すること」の2つがあります。タグの使い方にも表れているように、「投稿」するのと「閲覧」するのではユーザーの目的や体験が異なるため、人気タグの推移やランキングも変わります。

今回は、「投稿」体験と「閲覧」体験の二分野に分けて、2017年下半期での投稿作品に関するタグ推移を分析します。

pixivで人気のタグはアニメやゲームの名前が多い

まずは、投稿された作品におけるタグ推移から説明します。投稿される作品のトレンドは、各年で様々ですが、アニメやゲームの名前が多く、当時の人気コンテンツに大いに影響を受けやすい傾向があります。

投稿における人気タグ数は以下のように推移していました。見やすくするため、上位いくつかのタグを抜粋しています。

▪️投稿における人気タグ数の推移

※各週でのタグごとの投稿数の推移をグラフ化しています

▪️投稿におけるタグ数上位ランキング
1.Fate/GrandOrder
2.東方Project
3.艦隊これくしょん
4.アイドルマスターシンデレラガールズ
5.ポケモン
6.刀剣乱舞
7.けものフレンズ
8.初音ミク
9.おそ松さん
10.アズールレーン

根強い人気を誇る「Fate/GrandOrder」「東方Project」「艦隊これくしょん」が上位1〜3位を占めています。一時的にかなりの増加数を見せた「初音ミク」タグは、初音ミクが2017年で誕生10周年を迎えたこともあり、初音ミクの誕生日(2007年8月31日)に合わせての投稿だと考えられます。2017年秋からは「アズールレーン」も増え始めています。

2017年12月中旬より全体的にタグの数が増加しているのは、コミックマーケット93の開催で宣伝ツールとして該当タグをつけて、pixivに作品投稿するユーザーが多かったことと推測されます。

▪️閲覧における人気タグ数の推移

続いて、閲覧です。投稿体験におけるタグ推移とはまた違う動きになっていました。

※各週でのタグごとの検索ユーザー数をグラフ化しています

▪️閲覧におけるタグ数上位ランキング
1.Fate/GrandOrder
2.艦隊これくしょん
3.アズールレーン
4.刀剣乱舞
5.ポケモン
6.アイドルマスターシンデレラガールズ
7.ユーリ!!! on ICE
8.けものフレンズ
9.おそ松さん
10.宝石の国

9〜10月に「アズールレーン」が急上昇しましたが、「Fate/GrandOrder」が安定して首位を守りました。「アズールレーン」は11月後半より2番目に多いタグになりました。3位以降は「ユーリ!!! on ICE」「刀剣乱舞」「艦隊これくしょん」が順位をキープし続けています。

また、推移グラフでは「ユーリ!!! on ICE」が「刀剣乱舞」よりも数が多い傾向にありますが、ユニークユーザーでカウントしている上位ランキングでは、「刀剣乱舞」の方が多い結果となりました。このことから、「ユーリ!!! on ICE」は同じユーザーが多く検索・閲覧をしており、コアなファン層を抱えていると推測されます。

(参考)イベント名における人気タグ推移

最後におまけですが、イベント名でのタグも分析してみました。やはり夏冬のコミケ直前はかなり増えますね。

※各週でのタグごとの検索ユーザー数をグラフ化しています

タグトレンドはこう役立ててます

タグの分析からみるpixivのトレンド、どうでしたか?その時々の作品トレンドが目に見えてわかって面白いですよね。僕自身も興味深く思いながら分析していました。

タグトレンドは、pixivの運営面でも参考にしていることが多く、例えばイラストコンテストの企画やコミケで販売する画集に役立っています。 例えば、去年の夏コミではFate/GrandOrderを、冬コミではアズールレーンを題材としています。

また、アニメ放映のあとはタグ数が急激に伸びることも多く、ブームの参考にしていることもあります。 例えば、「ポプテピピック」が急上昇してきた時には、pixivのメディア「pixivision」で「急上昇ワード」として記事を出したりもしました。

→pixivで話題の「ポプテピピック」とは? イラストもご紹介!!【急上昇ワード】

サービス開発でもこのデータは生かされていまして、例えば投稿者が次に描く作品の参考にしてもらえるように、創作アイディアページ上で検索ランキングとして今の流行りや閲覧者の多いコンテンツの情報を伝えています。

pixivが持つデータの面白いポイント

pixivでは、ユーザーの趣味・嗜好や年齢・性別などのデータを利用したコンテンツや広告のレコメンドをしていますが、pixivは下記のようなデータの優位性を持っています。

・アニメ、漫画などのサブカル領域に特化したユーザーの行動データ
・作品の閲覧データ、投稿データなど
・国内外からの幅広いアクセス
・日本だけでなく、海外からのアクセスも多いため、世界中の流行可視化が可能

これらの特性を生かしたデータ分析、または解析にまつわるノウハウや奥深さについては、また別の機会にお話したいと考えています。それでは、また!

働きやすい環境があるから、プライベートも仕事も両立できる|ピクシブエンジニアとして新卒入社した理由

こんにちは!広報・ブランディングをしてますmatsuriです。
今回は、16年にエンジニアとして新卒入社したsestaにピクシブに入社したきっかけやキャリアビジョンを聞いてみたいと思います。

よろしくお願いします!いま、sestaはどんな仕事をしていますか?

pixivの投稿者にフォーカスを当てたチームで、機能の改善や企画の運用をしています。
仕様を決めて他のメンバーへのタスクの割り振りをしたり、また実際にコードをかいたりもしています。

ピクシブには去年新卒で入社したんでしたよね。

はい、一昨年の春に入社しました。入社前の夏から半年間、アルバイトとして働いていたので、実質3年目になります。

入社前にアルバイトをする新卒社員は毎年いますよね!では、ピクシブに興味を持ったきっかけなど教えてください。

僕が良いなと思ったのは、ピクシブでのエンジニアの働く環境です。企画や仕様の段階から入っていき、どういうものを作るかを一緒に決めていけるところに魅力を感じました。

また、エンジニア同士のコミュニケーションが活発なところも良いなと感じました。業務に関することはもちろん、業務外のことでも話しやすそうだと感じることが多くあります。みんな、ものを作ることが好きで、誰かを楽しませようとしているという共通点があることに気づきました。

社風や働き方に魅力を感じたのですね。入社前に社風を知るきっかけなどあったのですか?

採用に関するイベントでも、ピクシブの社員と話す機会がありましたし、会社見学や面接の時にも社風を知ることができました。

選考の過程で受けるインターンシップに私が参加した時には、勉強会で発表している人が面白い上に、質疑応答でも不明点などを気軽に発言しやすく、議論も活発的になっていく様子をみて、コミュニケーションのしやすさを実感しました。

GitHub上での発言が盛り上がることはよくある光景ですが、勉強会でこんなに多くのエンジニアが意欲的に発言しているのはなかなか見ないので驚きました。

こういった環境であれば、自分が何を作るか、何をやるべきかがわかった上で開発ができるし、それが自分の成長にも繋がると考えました。

働きやすさは子育てのしやすさに繋がる

「社員の働きやすさ」は、会社としても重視していますよね。

ピクシブでは、基本的に各チーム内でタスクの調整が完結するので、それが働きやすさに繋がっているのだと思います。また「優しい人」採用といった「人の良さ」を重要視して採用をしていたりもするので、チーム内でもコミュニケーションしやすいのは色々と助かっています。

たとえば、私には2歳になったばかりの娘がいるのですが、子どもに熱があって行けなくなった時には、自宅作業しやすいようなタスクを先に済ませるような相談ができますし、嫌な顔をされたこともありません。 社員全体が若いので子どもがいない人の方が多いのですが、「大変そうだね、大丈夫だよ」って言ってくれたりもして、なんて優しいんだと。(笑)

こうした環境が子育てのしやすさに繋がり、また働きやすさを感じています。

チームでマネジメントできることが、子育てにも影響しているのですね。

はい、やはり仕事の時間をどう使うか次第だと思うので。私は家庭のこともちゃんと協力したい思いがあるので、どう働くかをチームの中で任されていることに良さを感じています。

どこにいっても通用するエンジニアを目指したい

sestaの今後のキャリアビジョンについて聞かせてください。

どこでもやっていけるエンジニアになりたいと思っています。具体的には、働いている企業だけではなく、どこにいっても通用するスキルを磨いていきたいなと。

どこにいっても通用するスキルですか?

エンジニアと言っても仕事の幅は広く、例えば一つの機能を追加するときに、要件定義からできる人もいれば、コードを書くことに特化した人もいます。エンジニアとして何を求められるかは企業によって様々だと思いますが、ピクシブはエンジニアがユーザー体験の設計から携われる上に、一人ひとりがコードを書けます。

ユーザーの体験と、機能の実装との両方から俯瞰的に考えて開発に参加できるエンジニアだと、どこでもやっていけると思っているのでは、と考えています。

なるほど、いいですね。

いま、新卒で入って2年目でプロジェクトのリーダーやらせてもらうなど、何事にも挑戦させてもらっていますが、今後は、例えば新規プロジェクト立ち上げの時には「sestaをチームに入れておけば、とりあえず良いよね」って思われるようなエンジニアになりたいと考えています。

また所属しているチームの話でいうと、クリエイターが楽しくものづくりをもっとできるようになったらいいなと思っています。ものづくりの楽しさを広めたいし、ものづくりのハードル低くしたいなと。そしてさらに、クリエイターが増えたらいいなとも思います。

私自身も作ることが好きで、自転車つくったり、あと最近は庭を作ったりしてます。

庭ですか!?

ちょうど去年一軒家を買いまして、その庭を自分で作ってるんです。タイル買ってきて敷いたりしてますよ(笑)

すごい(笑)今回インタビューしながら、プライベートの時間もとても大切にしてるのが伝わってきました。

自分の将来のビジョンでいうと、キャリアも家庭も大事なんですよね。どちらも自分が一生かけて付き合い続けるものなので。

プライベートも重視したいし、仕事のスキル向上も重視したい。それをどちらも叶えられる環境をとても魅力に思っています。

ありがとうございました!

一緒に創作活動を盛り上げてくれる人を募集中

ピクシブでは創作活動がより楽しくなるようなサービスを開発してます。自分自身がものづくりが好きだったり、人の活動を応援することに興味がある方はお気軽にwantedlyからメッセージください。一緒に盛り上げていきましょう!!

19年度新卒エンジニア採用募集要項
中途採用ウェブバックエンドエンジニア募集要項 / Wantedly

pixivの基盤ノウハウ大公開!PHPカンファレンス2017登壇レポート

技術基盤チームのうさみ(@tadsan)です。

pixivはPHPカンファレンス2017にスポンサーおよび、私を含めた2名(山際、うさみ)が本セッション(25分枠)に登壇いたしました。

企業ブース

ピクシブ株式会社はシルバースポンサーとしてPHPカンファレンス2017に協賛いたしました。当日はメインホールに企業ブースを設置し、実際のpixiv開発の様子をライブコーディングで披露して居りました。

「大規模WebサイトのURL刷新の方針と実装」

技術基盤チームの山際はWebサイトのURL設計と刷新の方針について話しました。

pixivは2007年から開始されたWebサービスです。イラストを投稿するサービスという点では現在まで一貫していますが、現在までの間には大小の絶え間ない変化があり、pixivが開発された当初のURL設計と現在のページ構成には乖離が生じている箇所も少なくありません。

良いURL設計の指針としてWebの発明者であるティム・バーナーズ=リーのHypertext Style: Cool URIs don't change. (和訳: クールなURIは変わらない)があります。これが書かれたのは1998年のことですが、pixivがリリースされた時点でも十分に認識されたとは言い難い状況です。

pixivがリリースされてから現在までの間にもRuby on RailsなどのWebアプリケーションフレームワークの普及などの要因があり、RESTなどの概念が普及してきました。

URLを取り巻く状況としては近年Safariがアドレスバーに完全なURLを表示しなくなるなどの変更がありました。しかしながらSNSでのページのシェアにおいては現在でもURLが広く利用されているため、簡潔でわかりやすいURL設計の価値は小さくありません。

過去のURLがリンク切れにならないような配慮は当然のことですが、URLを刷新することはpixivユーザーの皆様をはじめとして、多くの影響を与える事柄です。一度変更してしまうと、再度変更することはまた混乱を及ぼしてしまいます。そのため、慎重に検討しながら作業を進めています。

pixivはこれまでもURLルーティングを改善するための取り組みを行ってきました。よろしければ、こちらの記事も併せてお読みください。

「ここで差がつくエラー処理」

同じく技術基盤チームのうさみ(@tadsan)はPHPのエラー処理について話しました。

tadsan.fanbox.cc

2007年に誕生したイラストコミュニケーションサービスpixiv(www.pixiv.net)はフレームワークなしのPHPで構築されました。現在でもpixivとコードベースを共有するいくつかのWebサービスも基本的には既製のフレームワークに載せず、薄いフレームワーク的な機能を共有しています。

そのような経緯から、pixivのエラー処理は基本的に自前で実装していました。今回の発表はpixivでの実装および、それを改善するための取り組みで得られた知見をまとめたものです。

本来、エラーの発生はユーザーに迷惑をお掛けすることなので避けるべきことです。しかし現実には想定外のバグやページによっては外部サービスの突然の応答不能などによって処理を正常に続行できない状況が生じます。

基本的にはエラーの発生は開発・運営側の手落ちなのでエラーが発生しにくい仕組み作りが肝要ですが、今回は「PHPにおいてエラーが発生する原因と種類」「起こってしまったエラーを処理する方法」について、PHPの仕様とライブラリにフォーカスを当てて紹介しました。

内容としては健全なpixivは健康なPHPに宿る〜モダンPHPを保つ7つの鍵 - pixiv insideおよびWEB+DB PRESS Vol.96(PDF版)で紹介した内容を更新したものです。

今回触れなかった点として、プログラムにおけるエラーの基本的な概念についてはメルカリの中野拓さん(@Hiraku)がPHPカンファレンス福岡2017で話したPHPのエラーと例外再入門がとても参考になるので、是非お読みください。

pixivではエラーを記録するためにFluentdを使った独自のログ収集基盤(fluentdによる大規模キュー設計 // Speaker Deck)を利用していますが、汎用的な方法に使える方法としてWebサービスのRollbarと、Fusicの小山健一郎さん(@k1LoW)が開発したfaultline (PHPカンファレンス福岡2017でfaultlineについて発表してきました #phpconfuk - Copy/Cut/Paste/Hatena)を紹介しました。

まとめ

ピクシブ株式会社では今後も日々の開発で得られた知見をカンファレンスや技術イベントなどでコミュニティに積極的に共有していきます。

ピクシブ東京オフィスおよび福岡オフィスではpixiv Nightやpixiv Technology Talksとして定期的に技術イベントを開催しています。

また、ピクシブ株式会社ではPHPのみならず、Ruby, Go, Scalaなどのさまざまな技術領域で共に活躍するエンジニアを募集しています。詳しくは採用情報をご覧ください。