2021年10月5日
株式会社ニューズピックス CTO
高山 温
イギリス・カナダで物理を学んだ後に2012年にピクシブ株式会社に入社。同社では主にサーバーサイドエンジニアとして、チームリーダーや新規プロジェクトの立ち上げ担当を歴任。2016年12月から2019年12月まで、執行役員CTOとしてエンジニアリング組織づくりなどを務めた。2020年2月に株式会社ニューズピックスに入社。CTOとして経済ニュースアプリNewsPicksのUX改善、スケール、組織づくりなどを手掛ける。
株式会社ニューズピックス データサイエンティスト
北内 啓
1998年に株式会社NTTデータに入社、研究開発部門で自然言語処理、情報検索、テキストマイニングの技術開発に従事。その後約3年間のスタートアップを経て2014年11月にユーザベースに入社し、SPEEDA事業にてアルゴリズムによる新規機能開発や機能改善を担当。2017年4月からFORCASの分析機能の開発に取り組む。2018年1月から2021年6月までFORCASのChief AI Officerを担当。2020年5月からはNewsPicksの推薦アルゴリズムの開発にも携わっている。2021年7月より現職。好きなものは音楽、Apple製品、沖縄の海。
日本最大級の経済メディアプラットフォーム『NewsPicks』。高い取材力のオリジナル記事はSNSなどでも話題に上り、日々国内外の最新ニュースのキュレーションも行っている。
立ち上げから7年以上経ち、現在アプリのダウンロード会員数は約600万人を誇る。2020年10月にそのスマートフォンアプリ版が大幅なアップデートを実施した。
それまで総合トップ、マイニュース、ビジネス、経済など多様な「タブ」で構成されていたUIから、1つのフィード上でユーザーごとに読みたいニュースをレコメンドするダイナミックインターフェイスを採用。「ワンフィード」へと生まれ変わった。
意外にも、それまではほぼ「人力で」記事をレコメンデーションしていたというが、リニューアルに伴い機械学習を本格導入、推薦アルゴリズムを実装した。株式会社ニューズピックスCTOの高山温氏と、データサイエンティストの北内啓氏に、リニューアルとレコメンドエンジンの秘密を聞いた。
北内:それまでは総合トップ、政治経済、教育などたくさんの「タブ」を表示させることで、ユーザーにニュースを届けようと考えていました。アプリの上部に複数のタブを並べて、ユーザー自身に好きなニュースを選んでもらおうと考えていたんです。
北内:そのタブをすべて辞め、1つのフィードでユーザーごとに最適なコンテンツを届ける「ワンフィード」UIに変えました。今は、最新ニュースのキュレーションである「重要ニュース」、注目コメントとニュースを届ける「あなたへのおすすめ」、そのユーザーがよく見る「カテゴリ」、「検索キーワード」、NewsPicks編集部によるオリジナル記事、おすすめの番組などが1つのフィードに表示されるようになりました。
このフィードには、我々がレコメンドエンジンでおすすめする他媒体のニュースのほかに、ユーザー自身が表示させたいカテゴリを選択してカスタマイズできます。このリニューアルによって、個々のユーザーが自分の興味に応じたニュースフィードをつくれるようになりました。
ちなみに、機械学習の推薦アルゴリズムを組み込んだレコメンドエンジンが搭載されているのは、他媒体のニュース記事をおすすめする部分だけです。NewsPicksオリジナル記事のレコメンデーションは、これからですね。
北内:「総合トップ」以外のタブがあまり見られていなかったからです。以前はタブが複数あったため、アプリを立ち上げるとまず目に入る「総合トップ」タブでユーザーの目が止まりがちでした。
また、それまではパーソナライズの要素を、ほとんど入れられていなかったという課題もありました。つまりNewsPicks編集部のキュレーションチームと呼ばれる専門の編成スタッフがほとんど「人力で」記事をキュレーション、すなわち読者におすすめしていたんです。もちろん、このキュレーションという業務は今でも行われています。これは良質な記事を選べる「審美眼」を持ったメンバーが記事をセレクトすることで、良い記事がしっかりユーザーに届くという大きなメリットがあります。しかしそれだけでは、限界もありました。
高山:それまでは「すべてのユーザーが同じUIで、同じ並び順の記事を見ている」という状態。しかしNewsPicksの読者は日々増え、ユーザーの興味も多岐に渡ります。そろそろ「ユーザーそれぞれの興味に合わせて別々のNewsPicksを見ている」という世界観へ進化しなければならないと感じていました。
もちろん、「マイニュース」と呼ばれるごく一部のタブには以前からレコメンドエンジンが実装されていました。でもそれは、エンジニアの立場からすれば「できそうだから、つくってみた」という状態で。逆にいうと、それ以上のアルゴリズムになかなか昇華させられなかったんですね。それを今回、レコメンドをサービスの中心に据えると決め、数字を見て改善を続けてサービスの「強み」にするという覚悟をしたのです。
「人力からパーソナライズへ」を合言葉に、2020年10月のリリースへ向けて大幅なリニューアルを行いました。
高山:スマートニュースや日経新聞電子版、Googleニュースなどレコメンド主体のニュースメディアについては、技術もユーザー体験も両方参考にしていました。
高山:これは以前からそうなのですが、コミュニティの盛り上がりを狙いました。「NewsPicksでは、自分の興味関心に合った多様なニュースとコメントに出会える」という体験を提供したかった。それはリニューアル後の現在も、レコメンドを改善する中で提供しています。
NewsPicksのすごく良いところの1つは、あるニュースについて多様な立場の人がコメントできる点だと思います。ビジネスの第一線にいる方から、大学の研究者、ときにはそのニュースの当事者にいたるまで、いろんな人がコメントをするからコメント欄そのものが面白くなる。それがコミュニティの多様性や広がりに繋がります。
一方で特定の専門家による、その人ならではの知見が前面に出た濃いコメントがつく記事もあります。そこはコメント数は少ないかもしれませんが、深い学びがある。
レコメンドエンジンを実装して実現したかったのは、このニッチだけど濃いコミュニティをより一層盛り上げること。レコメンドエンジンを搭載したことで、より多様な記事とコメントがユーザーの目に触れるようになり、多様なNewsPicksを体験してもらえるようになりました。
北内:最初はキュレーションチームが選んだ「重要ニュース」を上の方に表示させ、画面内での比率も大きくしていました。アルゴリズムを考える際、「重要ニュース」のスコアに少し多めに加点していたんです。
ユーザーの反応を見て、途中から「重要ニュース」の占める比率を減らし、ニュースや広告記事、動画など様々なコンテンツが表示されるよう変えていきました。
NewsPicksって、一般的なニュースアプリと比べてユーザーの取るアクションの種類が豊富なんですよ。一般的なニュースアプリって、ニュースを「タップする」「読む」というこの2つのアクションがメインなんですね。
だけど、NewsPicksの場合は「タップする」「読む」に加えて、「いいね!する」「Pickする(他のユーザーにシェアする)」「コメントする」と全部で5種類のアクションがあります。「いいね!する」というアクションも、記事だけでなく、ユーザーのコメントにも可能です。
そういう点でいうと、NewsPicksは「ソーシャル」経済メディアと銘打っているだけあって、ユーザーのアクションがニュースメディアよりもTwitterやFacebookに近いんです。TwitterやFacebookは投稿を読むだけでなく、「リツイートする」「いいね!する」「リプライする」と多様なアクションがあり、どのアクションを取るのかは人それぞれです。もちろん、誰が・誰をフォローしている、といった人の繋がりも重要です。
今回のリニューアルでも、推薦アルゴリズムの中でこの多様なアクションをどう重み付けするかについて深く考え、ディスカッションしていきました。
北内:いろいろ試行錯誤した結果、2種類の重み付けをしました。
まず「タップする・読む・いいね!する」という行為は、流れてきた記事が何となく興味にハマったからすること。どちらかというと態度が「受け身」なんですね。「そのとき話題になっているから」くらいの関心度でも発露するアクションなんです。
例えば新型コロナウイルスのワクチンに関する記事や、パラリンピックに関する記事は興味のある人が多いのですが、それは能動的な興味というよりも、「世間で話題になっているから気になる」という人の方が多くて。
一方「Pickする・コメントする」という行為は、その記事に対する興味がより強くなければ生まれません。興味関心が非常に高いからこそ、多くのユーザーが見ているコメント欄で能動的に自分の考えを発信する。
すなわち「Pickする・コメントする」という行為は、そのユーザーのより本質的な思考を表現していることが多いように思います。いうなれば、行動としてのクオリティが高い、ということもできるんじゃないかと。そこで「Pickする・コメントする」という行為について、重くスコアリングするアルゴリズムを採用することにしました。
ちょうど7月にこのアルゴリズムの精度評価について実験したところ、それほど悪くない結果になりました。これはそれほど間違った選択ではなかったと思います。
高山:「誰がおすすめしている記事なのか」「誰と・誰が繋がっているのか」が、ユーザーの記事の好みや、記事の読み方(タップ率)に影響するところです。要は「誰が」その記事やコメントをおすすめしているのかが重要だということです。仮にユーザー全員が「NoName」で、ハンドルネームも何もない匿名ユーザーだったら、その記事をPickしたり、「いいね!」したりしない可能性すらあります。
そこで今回のリニューアルでは協調フィルタリングを使って「自分と似ているユーザー」の特徴を分析し、そのユーザーが読んだり、「いいね!」したりしている記事をレコメンドするようにしました。Amazonで買い物すると、「この商品を買った人はこのような商品を見ています」というレコメンドが出るでしょう。それと同じ原理ですね。
北内:要は「あなたがPickしたニュースをPickしたユーザーは、こんな記事をPickしています」というレコメンドを入れたということです。記事をレコメンドするとき「その記事を誰が読んだか、誰がPickしたのか」というデータを機械学習で分析し、レコメンドするようにしています。
これはコメント欄も同様です。ユーザーに、自分と同じコメントに「いいね!」している他のユーザーの「いいね!」したコメントをおすすめするアルゴリズムが実装されています。こちらも協調フィルタリングを用いています。
北内:そうですね。ユーザー同士の類似度や、「このユーザーは、このプロピッカー(ビジネスや経済、学術領域の専門的知見を持つコメンテーター)のコメントに必ず『いいね!』しているぞ」という人への興味・関心を分析しています。
高山:他のニュースメディアと比べて、取得できるデータがリッチなんですよね。そこがNewsPicksがソーシャル経済メディアであるゆえんですし、他媒体のレコメンドとは異なる部分。そこが難しくもあり、エンジニアとして面白いところだと思います。
高山:検討すべき要素が多岐にわたるところです。アルゴリズムの構築やデータ解析、UIなど考えるべきポイントはたくさんありますが、これらをすべてできる人はいません。それは僕自身もそうです。
CTOとしてチームをまとめて正しい方向に導くという役割を負っていることもあって、チーム全体の総合力を高めて課題解決のためにあらゆる角度から考え抜き、それがハマって結果に繋がると楽しいですよね。
北内:NewsPicksにはオリジナル記事もあれば、スポンサード記事もありますし、動画番組もあります。先ほどからお伝えしているようなコメントやPickなど、ソーシャルな要素もあります。
ニュース記事をレコメンドするアルゴリズムを考えるだけで良いなら、理論に従って実装すれば良い。けれど、Pickやコメントなど多様なコンテンツ・アクションが混在するアプリのユーザー体験を、レコメンドを使ってどう向上させるか──そこを考えるのが、技術者としてワクワクするところです。
そのために、協調フィルタリングのみならず、ルールベースのアルゴリズムも組み合わせています。例えば、他メディアのニュース記事については最初から協調フィルタリングでレコメンドの精度を高める。でもその他のNewsPicksオリジナル記事や動画番組も含めた表示順序については、まず(ユーザーの動きをもとにルールを人力で登録する)ルールベースで実装し、それから機械学習のアルゴリズムを入れて精度を高めていく。
どのようなアルゴリズムが最適なのか考えるとき、技術者だけで考えることはなく事業としての観点も重要なんです。そのときはコミュニティチーム(プロピッカーやコメントの内容などをマネジメントする部門)や、アプリ全体の改善を担うプロダクトマネジメントチームといったビジネスサイドとも連携し、議論しながら開発しています。
どのアルゴリズムが最適なのか考え抜くプロセスは、とてもクリエイティブだし、ものづくりそのものだと思います。
これから先もNewsPicksの中で新しい取り組みが行われるはずですが、それに柔軟かつできるだけ早く対応していくのがエンジニアとしての矜持として大切にしなければならないと思っています。私たちエンジニアもレコメンドエンジンを通じて、ユーザーの学びを「深める、広げる」というNewsPicksの世界観を広げていくことに貢献したいですね。
高山:NewsPicksの最大の特徴はコミュニティがあることです。実装されているアルゴリズムにさえ、コミュニティをより盛り上げられることが求められます。かといって、いたずらにコメント数やPick数が増えればいいというわけでもない。エンジニア自身が「そもそもコミュニティによい影響を与えるとはどういうことか?」と本質から考える必要がある。そこが面白いところですね。
取材・執筆:石川香苗子
撮影:rikichu chou
関連記事
人気記事