note_表紙

アプリ開発とAI技術活用の主戦場 Search&Discovery

こんにちは。
IT企業でデータ活用プロダクトの開発に従事しているrilmayerです。

この記事はアドベントカレンダー「Search&Discovery 全部俺」1日目の記事となります。このアドベントカレンダーでは、世間的にはまだあまり一般的ではない「Search&Discovery」と言う分野に関連する複数の記事を書いていきます。
このアドベントカレンダーを通してSearch&Discoveryの概念をぼんやりとでも形作っていければ嬉しいなと思っています。

さて、1日目のこの記事は「Search&Discovery」とはそもそも何か、そしてどのようなシーンで見受けられるか、そして今後のアドベントカレンダーの内容について書いていこうと思います。

あらゆるアプリで活用される「Search&Discovery」技術

多くの情報をアプリケーション上で取り扱うことができるようになった昨今、ほとんどのアプリケーションでは大量のアイテム(記事、商品、写真、音楽、動画、場所などなど)から、いかにユーザーを喜ばすことのできるアイテムを届けることができるかと言うことが大きな課題となっています。

その最たるアプリケーションがGoogleやYahoo!をはじめとする検索エンジンです。また、Amazonや楽天などECサイトもさることながら、TikTokやYoutubeといった動画プラットフォームでも同様の課題感が出てくることは想像に難くありません。

大量の情報を扱うWebアプリケーションが世界中で使われるようになってから現在に到るまで、ユーザーはアプリケーションに対して何らかの働きかけ、例えば「検索クエリを投げかける」ことによって欲しい情報を手に入れていました。
しかし、より近年では「パーソナライズ」や「推薦」といった言葉に代表されるように「特に意識して働きかけなくても」システムによって欲しい情報が提示されるのが一般的となってきました。
また、「セレンディピティー」や「結果の多様性」といった言葉で語られるような、「システムによって提供される情報の質」についても多種多様な軸で評価されるようになってきています。

GoogleのプロダクトマネージャーであるMichael Galvezもブログの中で、Googleが検索を通してただ単にユーザーの疑問に答えるのみならず、ユーザーが物事や考え方に対して新しい見方を発見すること(find new angles to ideas or things)も重要視していると語っています。

上記のような経緯を含めて、このアドベントカレンダーではSearch&Discoveryを「ユーザーが大量の情報(アイテム)から良いと思える出会いを支援するための技術や知識分野」としています。

エンジニアの職業としてのSearch&Discovery

そもそもSearch&Discoveryと言うアイディアを自分が知ったのは、エンジニアの求人を見ていた時でした。エンジニアの求人を見ていると「Search&Discovery」という文言を見ることがあります。例えば、以下のような求人です。

ElsevierのLead Software Engineer求人

スクリーンショット 2019-12-01 0.52.04

こちらはエルゼビアという本社がオランダにある学術出版事業の求人です。研究者や学習者が大量の学術論文や書籍等のSearch(検索)やDiscovery(発見≒推薦)を支援できるようなエンジニアを募集しているという求人です。
(画像:https://4re.referrals.selectminds.com/elsevier/jobs/lead-software-engineer-search-discovery-26473)

技術的な要求としては以下のようなものが求められています。(一部抜粋)
「Solr」や「Lucene」といった検索技術が求められています。

Nice to haves:
・Cloud development experience (AWS)
・Infrastructure automation tools (chef, ansible, puppet)
・Search technology experience (Solr, Lucene)

RobloxのSr. Software Engineer求人

スクリーンショット 2019-12-01 0.54.05

こちらはRobloxというアメリカのゲーム作成・配信プラットフォーム会社の求人です。多種多様なゲームをユーザーが探したり発見したりすることを支援するソフトウェアエンジニアです。
(画像:https://corp.roblox.com/careers/listing/?gh_jid=1890583

要求として以下のような記述があります(一部抜粋)。ここではレコメンダーシステム構築の経験が求められているようです。加えて大規模なデータの扱いも必要な模様です。

・Experienced building or working on a recommendation systems (a huge plus)
・Experienced working in a fast paced environment on agile/scrum environment with focus on robust design, architecture, TDD, rapid experimentation, A/B testing and metrics.
・Comfortable with big data frameworks such as map-reduce, spark, pig, hive etc..

ここでは2つの例しか出ていないのですが、Search&Discoveryの柱として「検索」や「推薦」と言う技術分野があると認識されているようです。(名前の通りですよね

学術的分野としてのSearch&Discovery

Search&Discoveryという学術分野は明確には存在していない模様です。しかし、その源流となる学術分野は存在しています。

もっとも大きな柱の1つが「情報検索(Information Retrieval)」と言う分野です。また「推薦システム(Recommender System)」と言う分野も一つの大きな柱です。
両者はその歴史や研究内容について異なる部分はあるものの、基本的には「ユーザーが持つニーズに合致する(適合=Relevance)アイテムをいかに提供できるか」と言う課題感の元で様々な研究が行われてきています。

厳密には検索と推薦を区分することは難しいのですが、ユーザーが持つニーズがシステムに対して明示的なもの(=例えば検索キーワードを入力するなど)を「情報検索」、非明示的なもの(ユーザープロフィールや行動履歴など)を「推薦」と捉えることもできます。また、プル型(ユーザーによる取り寄せ動作に基づく情報提供)を情報検索、プッシュ型(システム側を起点としてユーザーに情報提供)を推薦と捉えることもできます。
(Garcia-Molina, Hector, Georgia Koutrika, and Aditya Parameswaran. "Information seeking: convergence of search, recommendations and advertising." Communications of the ACM (Accepted) (2011).)

この辺りのより詳しい話は今後の記事で紹介していきたいと思います。

と言うことで、このアドベントカレンダーでは学術的な話は主に上記2つの分野を中心に紹介していく形になっていくと思います。

機械学習でリアルにお金を生み出せる分野はどこか

以下は2019年10月現在、世界の時価総額TOP10の企業です。

Apple、Microsoft、Amazon.com、Alphabet、Facebook、Berkshire Hathaway、Alibaba Group Holding、JPMorgan Chase、Tencent Holdings
Visa
(Data from:https://www.180.co.jp/world_etf_adr/adr/ranking/2019/10.htm)

上記のうち、半分以上の企業ではSearch&Discoveryが非常に重要な技術基盤となっていることが伺えます。以下は各企業でも検索技術や推薦技術が活用されているプロダクトの例です。

Apple(Apple Store:アプリ配信プラットフォームなど)
Microsoft(Bing:検索サイトなど)
Amazon.com(Amazon:ECサイトなど)
Alphabet(Google:検索サイトなど)
Facebook(Facebook:SNSなど)
Alibaba Group Holding(Alibaba:ECサイトなど)
Tencent Holdings(Tencent:SNS・ゲームなど)

このように、日夜活用され、大きな価値を産んでいる技術の1つがSearch&Discoveryとなります。

今後のトピック(予定)

今後は以下のようなトピックを予定しています。

・情報検索の基本
・推薦システムの基本
・ビジネス活用
・評価
・システムの設計・構築・運用・改善
・各種ソフトウェアなど(Lucene、Solr、Elasticsearch、Groonga・・・)
・機械学習の活用

ここまで、お読みいただきありがとうございました。
色々な記事を書きながらSearch&Discoveryについて理解を深めていければと思います!

この記事が気に入ったらサポートをしてみませんか?