daily thinking running

はてなのプロデューサー(86世代)として日々想い、走る日々。

「京都」の検索ワードで「小京都」を表示させない

2015年2月19日から10周年という記念イヤーに入っています。そこで2016年2月19日までに、10個の新機能と10個の既存の改善を提供しようと取り組んでいます。やっと残り1つとなりました。

b.hatena.ne.jp

その既存の改善の1つに「検索精度の改善」というものがあります。実際、はてなブックマークの検索はタグは非常に精度が良かったのですが、キーワード検索はあまり精度が良いものではなかったのです。一番わかり易いのが掲題のような「京都」と「小京都」をうまく区別付けられない例があったというものです。

 

改善を開始する前では、それを避ける手段として、検索する対象をうまくバラけさせることで、カバーしていました。「タグ」「本文」「タイトル」を分けて検索できるようにしていました。その場合、タグ、タイトルはそれぞれ「(読者/書き手のそれぞれの)人がつけている」という部分で精度が非常に高くでていました。一方で本文については、まとめといったジャンルが出てきたことで、一部の内容は当てはまるが本文の趣旨とはズレてしまうという例が増えていました。

また京都と小京都をうまく分別するのは非常に難しい問題です。例えば、偶然性の高い記事との出会いを求める場合、京都の検索結果に小京都を混ぜてしまうのも人と場合によっては正解になりえます。こういったものについては、常に正解がない問いではあるのですが、私たちのアプローチとしては「タグ」や「タイトル」といった1度人の手を通ったデータを活用することで、それぞれの検索ワードが持っている特性に合わせて、うまく提案するというアプローチを取るようにしています(秘伝のタレのような取り組みなので、こういったライトなブログではうまく書ききれず、モヤッとした感じですいません)。

 

加えて、2.5億ブックマークが検索の対象となり、これは常に増加するため、検索速度という問題を同時に改善しないといけません。できればアプリで利用したいので速度はPCよりも更に早い速度を求めます。そこで採用したのは新しい検索ミドルウェアを積極的に活用することでした。国内でも非常に早いタイミングで同ミドルウェアを導入し、その結果として現在多くの機能改善に活かせています。昨日書いたトピック機能についても同ミドルウェアを導入したことで実現できた機能の1つです。

こういった新技術の導入やはてなブックマークらしい、人間の活動を活かした検索ロジック、それを支えるインフラ基盤といった弊社の誇るエンジニアの活躍によって、検索ロジックは改善されました。実際に、私自身、改善前のキーワード検索はあまり精度が良くないことから、あまり利用していなかったのですが、改善後は最も気に入っている機能の1つとなっています。ソーシャルブックマークという他人が良いと判断した記事に限定して検索できることの有用性をしっかりと噛みしめることが出来るようになった改善でした。

 

もちろんまだまだ課題も残っています。速度はもっと早くしていきたいと思っています。加えて、もっと本文抽出の精度を上げたり、本文そのままではなく本文の主題を判断するような検索ができないか、更にもっと面白いレコメンドができないか(プッシュされて嬉しいレコメンドはないか)ということを常に考えています。なので何か検索したいと思った時はまずはGoogleで検索する前にはてなブックマークのアプリで検索するようにしています。

検索はGoogleという巨人がいるため、わざわざ強化していくには乏しい機能かもしれません。ただ、その一方で上記の考えからGoogleがアプローチしない方法に対しては改善が進まないことも多くあります。Googleに対抗するような検索機能を提供したいとは思いませんが、Googleが(対象ユーザーの規模など)様々な理由で実現できない検索機能については、はてなブックマークソーシャルブックマーク)と相性が良い場合においては、積極的に検討していきたいと思っています。

 

17/366