こんにちは。Sitecore開発担当の山田です。

この度、技術ブログにレコメンド機能(おすすめ記事)を導入いたしました。記事の最後に追加されているのでぜひ確認してみてください。

この機能は、訪問者が過去に読んだ記事に応じておすすめの記事を表示します。例えば「デザイン」関連の記事をたくさん読んでいる人には、デザインに関する記事をおすすめします。

実はこのレコメンド機能は外部サービスや機械学習を使用しておらず、とてもシンプルな仕組みで動作しています。
今回はこのレコメンド機能の仕組みについて簡単に解説したいと思います。

レコメンドの仕組み

このレコメンド機能では、各記事の特徴を示す単語(いわゆる「タグ」と呼ばれるものです)をもとにおすすめ記事を作成しています。訪問者が過去に読んだ記事のタグを集計し、それに大きく関連している記事をおすすめの上位に表示するようになっています。

ここからは図を使用して説明します。まず訪問者が過去に閲覧した記事の間近数件を取得します。今回の例では、間近3件の記事を使用することにします。

次にそれぞれの記事のタグを取得します。記事の特徴を表す単語であればどんな値を使っても問題ありません。この技術ブログでは、記事がもっているTagsフィールドとCategoryフィールドをタグとして扱っています。

タグが取得できたら、次にそれぞれのタグの数を集計します。

これで訪問者が興味のある記事の傾向がつかめました。簡単にまとめると「Sitecoreに関連する記事に一番興味があり、デザインやマーケティングが含まれている記事にも少し興味がある」といった感じでしょうか。

具体的な実装については小難しい話になるので割愛しますが、こういった特徴を持っている記事をすべての記事から探しておすすめ記事として表示しています。

実際にはおすすめの精度を上げるために上記以外の工夫もしていますが、大まかな仕組みは以上です。

関連記事としての活用

今回ご紹介したレコメンド機能と関連記事とでは、少し意味合いが異なります。

このレコメンド機能は 訪問者が閲覧中の記事に加えて、その訪問者が過去に読んでいた記事 をもとに一覧を作成します。一方で関連記事は 訪問者が閲覧中の記事のみ に基づいて一覧を作成する機能です。

しかし、先ほど説明した仕組みを応用することで関連記事の機能を実現することができることにお気づきでしょうか?

説明で「間近3件の記事」としていたところを「間近1件の記事」と読み替えてみてください。間近1件の記事とはつまり、訪問者が閲覧中の記事のことです。その記事だけに基づいて作成されたおすすめ記事は、すなわち関連記事と同じ意味合いになります。

このように、先ほど説明した仕組みを使うことで訪問者の興味を反映したレコメンド機能だけでなく、関連記事の機能としても利用することができます。

おわりに

Sitecoreでおすすめ記事を実現する場合、表示したい記事を手作業で設定する方法がよく用いられます。今回ご紹介した方法と比較してどちらが優れているというわけではなく、用途に合わせて使い分けることが大切です。

手動で設定する方法では「この記事もぜひ読んでほしい」といったコンテンツ製作者の提案を表示できますし、今回の方法では訪問者の行動や興味を反映させたおすすめ記事を表示することができます。

もちろんどちらにもメリット・デメリットがあるので、おすすめ記事の導入をお考えの方はぜひご相談ください。

以上、最後まで読んでいただきありがとうございました。