<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recommendation | Democratizing Data</title><link>https://chezo.uno/categories/recommendation/</link><atom:link href="https://chezo.uno/categories/recommendation/index.xml" rel="self" type="application/rss+xml"/><description>Recommendation</description><generator>HugoBlox Kit (https://hugoblox.com)</generator><language>en-us</language><copyright>©</copyright><lastBuildDate>Wed, 05 Aug 2026 19:55:00 -0700</lastBuildDate><image><url>https://chezo.uno/media/icon_hu_423f10ccd06de889.png</url><title>Recommendation</title><link>https://chezo.uno/categories/recommendation/</link></image><item><title>ブログの推薦用軽量embedding modelをBekkoに変えた</title><link>https://chezo.uno/post/2026-08-05-%E3%83%96%E3%83%AD%E3%82%B0%E3%81%AE%E6%8E%A8%E8%96%A6%E7%94%A8%E8%BB%BD%E9%87%8Fembedding-model%E3%82%92bekko%E3%81%AB%E5%A4%89%E3%81%88%E3%81%9F/</link><pubDate>Wed, 05 Aug 2026 19:55:00 -0700</pubDate><guid>https://chezo.uno/post/2026-08-05-%E3%83%96%E3%83%AD%E3%82%B0%E3%81%AE%E6%8E%A8%E8%96%A6%E7%94%A8%E8%BB%BD%E9%87%8Fembedding-model%E3%82%92bekko%E3%81%AB%E5%A4%89%E3%81%88%E3%81%9F/</guid><description>&lt;p&gt;前回の話はこちらにあるので見てほしい&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;今、このブログではBekko a25mで関連記事が出るようになっている。そこに至るまでの経緯を書いていこう。&lt;/p&gt;
&lt;p&gt;最新版のレポートはこちら&lt;/p&gt;
&lt;div class="sc-iframe"&gt;&lt;div style="overflow:auto;-webkit-overflow-scrolling:touch;border:1px solid #ddd;border-radius:6px;background:#fff;height:700px;"&gt;
&lt;iframe id="sc-iframe-d310ce10-0" src="https://chezo.uno/post/2026-08-04-%E3%83%96%E3%83%AD%E3%82%B0%E3%81%AE%E6%8E%A8%E8%96%A6%E7%94%A8%E8%BB%BD%E9%87%8Fembedding-model%E3%82%92bekko%E3%81%AB%E5%A4%89%E3%81%88%E3%82%88%E3%81%86%E3%81%A8%E3%81%97%E3%81%A6%E5%A4%89%E3%81%88%E3%82%8C%E3%81%AA%E3%81%8B%E3%81%A3%E3%81%9F/report" title="関連記事推薦のための埋め込みモデル比較" loading="lazy"
style="display:block;width:100%;border:0;height:100%;"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p style="margin-top:.25rem;font-size:.85em;text-align:right;"&gt;
&lt;a href="https://chezo.uno/post/2026-08-04-%E3%83%96%E3%83%AD%E3%82%B0%E3%81%AE%E6%8E%A8%E8%96%A6%E7%94%A8%E8%BB%BD%E9%87%8Fembedding-model%E3%82%92bekko%E3%81%AB%E5%A4%89%E3%81%88%E3%82%88%E3%81%86%E3%81%A8%E3%81%97%E3%81%A6%E5%A4%89%E3%81%88%E3%82%8C%E3%81%AA%E3%81%8B%E3%81%A3%E3%81%9F/report" target="_blank" rel="noopener"&gt;レポートを別タブで開く&lt;/a&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;h3 id="opus-5が設計する代理指標の罠"&gt;Opus 5が設計する代理指標の罠&lt;/h3&gt;
&lt;p&gt;正解ラベルのない推薦タスクなため、タグ・カテゴリ一致率という指標をOpus 5が提案した。この代理指標の重大な問題にOpus 5が気づいたため追加調査を行った。&lt;/p&gt;
&lt;p&gt;一致率の分母 |P| というのは、推薦された記事に依存して変わるのである。&lt;/p&gt;
&lt;p&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt=""
srcset="https://chezo.uno/post/2026-08-05-%E3%83%96%E3%83%AD%E3%82%B0%E3%81%AE%E6%8E%A8%E8%96%A6%E7%94%A8%E8%BB%BD%E9%87%8Fembedding-model%E3%82%92bekko%E3%81%AB%E5%A4%89%E3%81%88%E3%81%9F/20260805-201158_hu_e41d204e80d04f12.webp 320w, https://chezo.uno/post/2026-08-05-%E3%83%96%E3%83%AD%E3%82%B0%E3%81%AE%E6%8E%A8%E8%96%A6%E7%94%A8%E8%BB%BD%E9%87%8Fembedding-model%E3%82%92bekko%E3%81%AB%E5%A4%89%E3%81%88%E3%81%9F/20260805-201158_hu_9154f4f7fdaa8ee2.webp 388w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://chezo.uno/post/2026-08-05-%E3%83%96%E3%83%AD%E3%82%B0%E3%81%AE%E6%8E%A8%E8%96%A6%E7%94%A8%E8%BB%BD%E9%87%8Fembedding-model%E3%82%92bekko%E3%81%AB%E5%A4%89%E3%81%88%E3%81%9F/20260805-201158_hu_e41d204e80d04f12.webp"
width="388"
height="86"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;Bekko a25mは、タグ・カテゴリのついた記事を推薦しやすいという傾向が見られた。なので、再現率が上がり、分母が増えるから一致率が下がるという現象が発生していた。しかも、これをずっとOpus 5はHTMLに補足として書いていたのである！（人もLLMも真面目に読んでいなかった！）&lt;/p&gt;
&lt;h3 id="fable-5への切り替えとアノテーションツール"&gt;Fable 5への切り替えとアノテーションツール&lt;/h3&gt;
&lt;p&gt;これを改善するために、Fable 5に切り替え指標を提案してもらった。今回は、分母を固定する固定プール precision@k とペアワイズAUCを使って比較をした（詳細はレポートを見てほしい）。Top 3についてみると、Bekko a25mのほうが同等か良くなっていた。&lt;/p&gt;
&lt;p&gt;
&lt;figure id="figure-現行モデル対-bekko-a25m英語のp3は結局人手評価では"&gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt="現行モデル対 bekko-a25m"
srcset="https://chezo.uno/post/2026-08-05-%E3%83%96%E3%83%AD%E3%82%B0%E3%81%AE%E6%8E%A8%E8%96%A6%E7%94%A8%E8%BB%BD%E9%87%8Fembedding-model%E3%82%92bekko%E3%81%AB%E5%A4%89%E3%81%88%E3%81%9F/pasted-image-1785986516759_hu_9880b17b7184ec70.webp 320w, https://chezo.uno/post/2026-08-05-%E3%83%96%E3%83%AD%E3%82%B0%E3%81%AE%E6%8E%A8%E8%96%A6%E7%94%A8%E8%BB%BD%E9%87%8Fembedding-model%E3%82%92bekko%E3%81%AB%E5%A4%89%E3%81%88%E3%81%9F/pasted-image-1785986516759_hu_c6879e4ff7d86659.webp 480w, https://chezo.uno/post/2026-08-05-%E3%83%96%E3%83%AD%E3%82%B0%E3%81%AE%E6%8E%A8%E8%96%A6%E7%94%A8%E8%BB%BD%E9%87%8Fembedding-model%E3%82%92bekko%E3%81%AB%E5%A4%89%E3%81%88%E3%81%9F/pasted-image-1785986516759_hu_13e3435663831ad0.webp 662w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://chezo.uno/post/2026-08-05-%E3%83%96%E3%83%AD%E3%82%B0%E3%81%AE%E6%8E%A8%E8%96%A6%E7%94%A8%E8%BB%BD%E9%87%8Fembedding-model%E3%82%92bekko%E3%81%AB%E5%A4%89%E3%81%88%E3%81%9F/pasted-image-1785986516759_hu_9880b17b7184ec70.webp"
width="662"
height="631"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;figcaption&gt;
現行モデル対 bekko-a25m（英語のP@3は結局人手評価では）
&lt;/figcaption&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;しかし、タグ・カテゴリが付与されている記事は限られるし、同じタグがある記事数も限られるということを思い出し、タグの出現頻度分布を見たところ、やはり厳しいだろうとなった。&lt;/p&gt;
&lt;p&gt;実際のデータをみないといけないと思い、Claudeに比較とアノテーションのためのツールを作ってもらいブラウザで人手評価をした。ツールでは出力結果に（順位を除いた）差異があったものだけを評価するスタイルになっている。Fableはしれっとactive learningの手法を使ってきたのだ。実は一部出力に対する所見はOpus/Fableにも出してもらっていたが、自分でデータを見ることが大事というのを思い出し初心に帰ったのだ。&lt;/p&gt;
&lt;p&gt;
&lt;figure id="figure-アノテーションツール"&gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt="アノテーションツール"
srcset="https://chezo.uno/post/2026-08-05-%E3%83%96%E3%83%AD%E3%82%B0%E3%81%AE%E6%8E%A8%E8%96%A6%E7%94%A8%E8%BB%BD%E9%87%8Fembedding-model%E3%82%92bekko%E3%81%AB%E5%A4%89%E3%81%88%E3%81%9F/pasted-image-1785986620954_hu_d64b1d3d4a29a490.webp 320w, https://chezo.uno/post/2026-08-05-%E3%83%96%E3%83%AD%E3%82%B0%E3%81%AE%E6%8E%A8%E8%96%A6%E7%94%A8%E8%BB%BD%E9%87%8Fembedding-model%E3%82%92bekko%E3%81%AB%E5%A4%89%E3%81%88%E3%81%9F/pasted-image-1785986620954_hu_cc05af7453bf11b0.webp 480w, https://chezo.uno/post/2026-08-05-%E3%83%96%E3%83%AD%E3%82%B0%E3%81%AE%E6%8E%A8%E8%96%A6%E7%94%A8%E8%BB%BD%E9%87%8Fembedding-model%E3%82%92bekko%E3%81%AB%E5%A4%89%E3%81%88%E3%81%9F/pasted-image-1785986620954_hu_8d27acc57b57eef8.webp 733w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://chezo.uno/post/2026-08-05-%E3%83%96%E3%83%AD%E3%82%B0%E3%81%AE%E6%8E%A8%E8%96%A6%E7%94%A8%E8%BB%BD%E9%87%8Fembedding-model%E3%82%92bekko%E3%81%AB%E5%A4%89%E3%81%88%E3%81%9F/pasted-image-1785986620954_hu_d64b1d3d4a29a490.webp"
width="733"
height="760"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;figcaption&gt;
アノテーションツール
&lt;/figcaption&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;389記事中162記事を評価したところで打ち切ったのだが、それを元に評価をし直したところ、信頼区間の下限まで見ると自信はないが、top 3の指標の差は全部非負であった。&lt;/p&gt;
&lt;p&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt=""
srcset="https://chezo.uno/post/2026-08-05-%E3%83%96%E3%83%AD%E3%82%B0%E3%81%AE%E6%8E%A8%E8%96%A6%E7%94%A8%E8%BB%BD%E9%87%8Fembedding-model%E3%82%92bekko%E3%81%AB%E5%A4%89%E3%81%88%E3%81%9F/pasted-image-1785986885211_hu_499fd38e46714283.webp 320w, https://chezo.uno/post/2026-08-05-%E3%83%96%E3%83%AD%E3%82%B0%E3%81%AE%E6%8E%A8%E8%96%A6%E7%94%A8%E8%BB%BD%E9%87%8Fembedding-model%E3%82%92bekko%E3%81%AB%E5%A4%89%E3%81%88%E3%81%9F/pasted-image-1785986885211_hu_6f3116ab95484c4f.webp 480w, https://chezo.uno/post/2026-08-05-%E3%83%96%E3%83%AD%E3%82%B0%E3%81%AE%E6%8E%A8%E8%96%A6%E7%94%A8%E8%BB%BD%E9%87%8Fembedding-model%E3%82%92bekko%E3%81%AB%E5%A4%89%E3%81%88%E3%81%9F/pasted-image-1785986885211_hu_319adf17b80e61b6.webp 760w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://chezo.uno/post/2026-08-05-%E3%83%96%E3%83%AD%E3%82%B0%E3%81%AE%E6%8E%A8%E8%96%A6%E7%94%A8%E8%BB%BD%E9%87%8Fembedding-model%E3%82%92bekko%E3%81%AB%E5%A4%89%E3%81%88%E3%81%9F/pasted-image-1785986885211_hu_499fd38e46714283.webp"
width="760"
height="290"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;LLMから得られた所見も役に立った。&lt;/p&gt;
&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
&lt;p&gt;&lt;strong&gt;The Real Group の新譜紹介&lt;/strong&gt; → a25m は&lt;strong&gt;同じアーティスト&lt;/strong&gt;の 旧譜レビュー2件を並べる。現行は別アーティストのライブ告知を返した。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
&lt;p&gt;&lt;strong&gt;石田衣良「うつくしい子ども」の書評&lt;/strong&gt; → a25m は&lt;strong&gt;同じ著者&lt;/strong&gt;の 「アキハバラ＠DEEP」「愛がいない部屋」を並べる。現行は著者一致1件。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
&lt;p&gt;&lt;strong&gt;川崎Ruby会議01 の開催報告&lt;/strong&gt; → a25m は&lt;strong&gt;姉妹イベント&lt;/strong&gt;の 神奈川Ruby会議を最上位に。現行は毎月のミートアップ報告を返した。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;姉妹イベント、よくわかりましたね。著者やアーティストの重なりも見ており良いのでは、という気持ちになった。癖と言うか傾向の違いはあれど実用に足りうると言えるだろう。&lt;/p&gt;
&lt;p&gt;ブログ初期はほぼ日記だったので、雑多なテーマが多くタイトルからは想像できない記事も多かった。&lt;/p&gt;
&lt;p&gt;遠回りをしたけど、結局は人手でデータを見るのが大事なのであった。&lt;/p&gt;
&lt;h3 id="ciでembeddingする際の技術的なハードルの解決"&gt;CIでembeddingする際の技術的なハードルの解決&lt;/h3&gt;
&lt;p&gt;並行していくつかのGHAのCIで実行するための最適化を行った。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;モデルサイズが大きくなってもCIの実行時間を伸ばさないために、HFのモデルキャッシュをGHAでキャッシュする&lt;/li&gt;
&lt;li&gt;embedding時にメモリ上限に引っかからないために、バッチングを最適化&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これらにより、全452記事のembeddingがモデルDL込で3分8秒（キャッシュ利用時で2分51秒）と現実的な時間で動くことが確認できた。実際には、embedding vectorの計算は記事が追加されるごとに差分で実行されるので、もっと速くなる。&lt;/p&gt;
&lt;p&gt;つまり、運用上の懸念点がなくなったのである。&lt;/p&gt;
&lt;p&gt;こうして、Bekko a25mによる関連記事推薦が採用される運びとなった。&lt;/p&gt;
&lt;h3 id="prelims-cli-でbekko-a25mを使うには"&gt;prelims-cli でBekko a25mを使うには&lt;/h3&gt;
&lt;p&gt;v0.0.11からBekko a25mを &lt;code&gt;multilingual&lt;/code&gt; optionを渡すと使えるようになっている。&lt;/p&gt;
&lt;p&gt;詳細は
のPRを見てほしいが、設定としては以下のように書くだけである。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;permalink_base&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;/post&amp;#34;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;embedding_recommender&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;language&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;multilingual&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;topk&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;3&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;cache_db&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;.prelims_embedding_cache.db&amp;#34;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;ぜひ、試してみてほしい。感想お待ちしています。&lt;/p&gt;</description></item><item><title>ブログの推薦用軽量embedding modelをBekkoに変えようとして、変えれなかった</title><link>https://chezo.uno/post/2026-08-04-%E3%83%96%E3%83%AD%E3%82%B0%E3%81%AE%E6%8E%A8%E8%96%A6%E7%94%A8%E8%BB%BD%E9%87%8Fembedding-model%E3%82%92bekko%E3%81%AB%E5%A4%89%E3%81%88%E3%82%88%E3%81%86%E3%81%A8%E3%81%97%E3%81%A6%E5%A4%89%E3%81%88%E3%82%8C%E3%81%AA%E3%81%8B%E3%81%A3%E3%81%9F/</link><pubDate>Tue, 04 Aug 2026 20:03:00 -0700</pubDate><guid>https://chezo.uno/post/2026-08-04-%E3%83%96%E3%83%AD%E3%82%B0%E3%81%AE%E6%8E%A8%E8%96%A6%E7%94%A8%E8%BB%BD%E9%87%8Fembedding-model%E3%82%92bekko%E3%81%AB%E5%A4%89%E3%81%88%E3%82%88%E3%81%86%E3%81%A8%E3%81%97%E3%81%A6%E5%A4%89%E3%81%88%E3%82%8C%E3%81%AA%E3%81%8B%E3%81%A3%E3%81%9F/</guid><description>&lt;p&gt;このサイトでは、
している。prelims-cliはfrontmatterに色々と情報を付加できる
をCLIで動くようにしたものである。&lt;/p&gt;
&lt;p&gt;実装した当初、embedding modelを使った類似記事推薦をやってみたいと思ったが、当時使ったembedding modelではTF-IDFベースの手法に比べてイマイチな結果しか出なかったため諦めていた。&lt;/p&gt;
&lt;p&gt;時は流れ、
に「今どきはCPUでもサクサク動く軽量embedding modelがありますよ」と教えられてGitHub Actionsで動く
のであった。&lt;/p&gt;
&lt;p&gt;ruri-v3とgraniteが軽量だが性能が良いと言うので試してみたら、TF-IDFと比較してもレコメンド結果をざっと目視で見ても悪くない結果だったので採用した。なにより、sudachiの辞書をGHAからダウンロードするよりもembedding modelをダウンロードする方が速いのである。&lt;/p&gt;
&lt;p&gt;つい先週、seconさんが
という小型モデルをリリースしたという記事を読んだ。これは、ワンチャン日英大統一できないかなー、日英以外もサポートできないかなーと思って、Claude任せに実験をしてみた。三連休の最終日なのに。&lt;/p&gt;
&lt;p&gt;それで、出来た実験結果はこちら。&lt;/p&gt;
&lt;div class="sc-iframe"&gt;&lt;div style="overflow:auto;-webkit-overflow-scrolling:touch;border:1px solid #ddd;border-radius:6px;background:#fff;height:700px;"&gt;
&lt;iframe id="sc-iframe-f394093e-0" src="https://chezo.uno/post/2026-08-04-%E3%83%96%E3%83%AD%E3%82%B0%E3%81%AE%E6%8E%A8%E8%96%A6%E7%94%A8%E8%BB%BD%E9%87%8Fembedding-model%E3%82%92bekko%E3%81%AB%E5%A4%89%E3%81%88%E3%82%88%E3%81%86%E3%81%A8%E3%81%97%E3%81%A6%E5%A4%89%E3%81%88%E3%82%8C%E3%81%AA%E3%81%8B%E3%81%A3%E3%81%9F/report.html" title="関連記事推薦のための埋め込みモデル比較" loading="lazy"
style="display:block;width:100%;border:0;height:100%;"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p style="margin-top:.25rem;font-size:.85em;text-align:right;"&gt;
&lt;a href="https://chezo.uno/post/2026-08-04-%E3%83%96%E3%83%AD%E3%82%B0%E3%81%AE%E6%8E%A8%E8%96%A6%E7%94%A8%E8%BB%BD%E9%87%8Fembedding-model%E3%82%92bekko%E3%81%AB%E5%A4%89%E3%81%88%E3%82%88%E3%81%86%E3%81%A8%E3%81%97%E3%81%A6%E5%A4%89%E3%81%88%E3%82%8C%E3%81%AA%E3%81%8B%E3%81%A3%E3%81%9F/report.html" target="_blank" rel="noopener"&gt;レポートを別タブで開く&lt;/a&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;簡単に言うと、失敗である。&lt;/p&gt;
&lt;p&gt;理由はいくつかあるが&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;自分のサイトのブログ記事の関連に正解データがない&lt;/li&gt;
&lt;li&gt;代理指標として記事のタグ・カテゴリが同じものを推薦出来るかを見たが、タグ・カテゴリが付与されている数も少なかった&lt;/li&gt;
&lt;li&gt;そんな指標で測ったので、日英両方とも既存モデルに対して大幅な改善は得られなかった（指標の分解能が±5〜7ptで、比べていた差が2pt前後とおよそ誤差レベル）&lt;/li&gt;
&lt;li&gt;むしろ、レコメンドに使う文字列長を伸ばしたほうが、英語は改善した（データをみたら英語のほうが文字数が多い記事が多かった）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;figure id="figure-記事の文字数頻度分布"&gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt="記事の文字数頻度分布"
srcset="https://chezo.uno/post/2026-08-04-%E3%83%96%E3%83%AD%E3%82%B0%E3%81%AE%E6%8E%A8%E8%96%A6%E7%94%A8%E8%BB%BD%E9%87%8Fembedding-model%E3%82%92bekko%E3%81%AB%E5%A4%89%E3%81%88%E3%82%88%E3%81%86%E3%81%A8%E3%81%97%E3%81%A6%E5%A4%89%E3%81%88%E3%82%8C%E3%81%AA%E3%81%8B%E3%81%A3%E3%81%9F/pasted-image-1785900995846_hu_3b1269ab9019a69b.webp 320w, https://chezo.uno/post/2026-08-04-%E3%83%96%E3%83%AD%E3%82%B0%E3%81%AE%E6%8E%A8%E8%96%A6%E7%94%A8%E8%BB%BD%E9%87%8Fembedding-model%E3%82%92bekko%E3%81%AB%E5%A4%89%E3%81%88%E3%82%88%E3%81%86%E3%81%A8%E3%81%97%E3%81%A6%E5%A4%89%E3%81%88%E3%82%8C%E3%81%AA%E3%81%8B%E3%81%A3%E3%81%9F/pasted-image-1785900995846_hu_c6de2910326b2a7f.webp 480w, https://chezo.uno/post/2026-08-04-%E3%83%96%E3%83%AD%E3%82%B0%E3%81%AE%E6%8E%A8%E8%96%A6%E7%94%A8%E8%BB%BD%E9%87%8Fembedding-model%E3%82%92bekko%E3%81%AB%E5%A4%89%E3%81%88%E3%82%88%E3%81%86%E3%81%A8%E3%81%97%E3%81%A6%E5%A4%89%E3%81%88%E3%82%8C%E3%81%AA%E3%81%8B%E3%81%A3%E3%81%9F/pasted-image-1785900995846_hu_c2fc5aea9e7d0bc.webp 760w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://chezo.uno/post/2026-08-04-%E3%83%96%E3%83%AD%E3%82%B0%E3%81%AE%E6%8E%A8%E8%96%A6%E7%94%A8%E8%BB%BD%E9%87%8Fembedding-model%E3%82%92bekko%E3%81%AB%E5%A4%89%E3%81%88%E3%82%88%E3%81%86%E3%81%A8%E3%81%97%E3%81%A6%E5%A4%89%E3%81%88%E3%82%8C%E3%81%AA%E3%81%8B%E3%81%A3%E3%81%9F/pasted-image-1785900995846_hu_3b1269ab9019a69b.webp"
width="760"
height="314"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;figcaption&gt;
記事の文字数頻度分布
&lt;/figcaption&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;定性的にいくつか見比べても悪くはない感じではあったのだが、好みとしても既存モデルの傾向の方が良かったのもある。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;「homebrewを移動してiRubyが壊れたときに見直すポイント」 (tags: ruby)
&lt;ul&gt;
&lt;li&gt;ruri → 「Pythonの環境構築を自分なりに整理してみる」 (環境構築のトラブル)&lt;/li&gt;
&lt;li&gt;a25m → 「kawasaki.rb #008 を開催しました」 (Ruby)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;「新しいPyPIでMarkdownのドキュメントを使う」 (tags: python)
&lt;ul&gt;
&lt;li&gt;ruri → 「prelimsを使ってHugoの記事にレコメンドを追加する」 (tags: python)&lt;/li&gt;
&lt;li&gt;a25m → 「mecab-python3を捨ててnatto-pyにしよう」 (tags: nlp)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;1個目なんかは、環境構築系という意味では似ているなと感じる。2個目もHugoもMarkdownだしね、というので良いかなと感じた。&lt;/p&gt;
&lt;p&gt;こうしたことを鑑みて、日英は既存のモデルを維持することとし、他言語も計測できないのに入れてもなーということで諦めた。評価用の正解データがないと比較できないという当たり前の結果になった。Bekkoは速くて軽いのはとてもよいのだけど、a25mは既存のモデルよりは遅くかつ重かった(199 MB 対 ruri 37 MB / granite 52 MB)し、実験を進めるうちにGHAのcache等の改善もした結果、統一しなくてもいいかなという気持ちになってしまったのもある。&lt;/p&gt;</description></item></channel></rss>