Travelokaはあまり聞き馴染みがないが,インドネシアのユニコーン企業でオンラインでの飛行機予約とホテル予約できるサービスを提供している企業とのことで,Booking.comとかと同じような会社かなと思う.この手のサービスはレコメンドと検索エンジンは重要なファクターになると思う.
Traveloka - Your Lifestyle Superapp
最近検索エンジンの開発に携わっているので,Query Understandingとかの技術はきちんと理解してユーザーが意図している結果や関連度の高い結果などを提供していきたいと思っている.
Travelokaでは,Query-Understanding-Engineの導入によって複雑なクエリを認識・理解できるようになり,クエリをより意味のある結果やレコメンデーションに変えることができているとのこと.
Query-Understanding-Engineを導入する前は,単一ワード(single-entity)に対しては,精度の高い結果を返すことができていた.それは単一ワードを目的としていて,それを推論するように開発していたから.なので,この場合複雑なクエリに対応することができない.
例えば,「Hotel Bali」のようなワードで検索した場合,「Hotel」(宿泊施設)と「Bali」(地理的位置)から構成されていることを認識することができないという状況.
古い検索エンジンでは,ユーザーの目的がバリ島にある宿泊施設を探すことであることを理解できなかったという.
検索されたワードそのものがヒットするものは返せたりするけど,ユーザーの求めている意図を反映した形で検索結果を返すのは難しいなと痛感している.今回の例だと,バリ島周辺のホテルを検索結果として返すのはもちろん,その周辺の施設やアクティビティーなど付随する要素も提案できると良いなと感じる.
Travelokaの古い検索エンジンの話は以下のブログにまとめられているとのことなので,時間があれば読んでみたい.
High Quality Autocomplete Search Part 1.
High Quality Autocomplete Search Part 2.
正しく,ユーザーのクエリを理解することができれば,それに関連したレコメンドも実施することができるため,ユーザーはより良い旅の準備をすることができるようになる.
この辺りの話を聞いても,検索⇄推薦は相互に良い影響を与えうるので,両面で発展させていきたいのとそれを支える基盤,システム,運用を総合的に考えられる視点を持って開発していきたいと思う.
クエリの文脈を理解する方法としては,機械学習や単純な場合はルックアップとルールを組み合わせるなどもあったり,それらの組み合わせなどトライアンドエラーで実践していくのが良さそうかなと感じた.あとはドメイン特有の方法などもある.
クエリ理解の実装については第二部で話があるみたいなので,明日はそちらを読みたい.