この記事はエムスリーAdvent Calendar 2019 2日目の記事です。 エンジニアリンググループ AIチームの金山 (@tkanayama_)です。普段の業務では、医療従事者向けWebサイト m3.com のための推薦システムの開発・運用を担当しています。 今回は、 "Sampler Design for Bayesian Personalized Ranking by Leveraging View Data" [Ding et al., 2018] という論文を紹介します。これは、implicit feedbackの代表的な推薦システムBayesian Personalized Rankingを拡張して、「itemが表示されたがclickされなかった」という情報をうまく活用してitemの推薦ができるようにした論文です。 リスの画像です。 この記事の流れ まず、今回紹介したい論
Okapi BM25 はオープンソースの検索エンジンとして有名な Elasticsearch やそのエンジンである Apache Lucene で採用されている検索のランキングアルゴリズムです。 ランキング手法としては TF-IDF が有名ですが、BM25 は TF-IDF を改良した物と言えます。また一方で、BM25 は確率論をベースとしたモデルを採用した手法でもあります。多くの検索エンジンでデフォルトのランキングアルゴリズムとして採用されており、BM25 は「現代版 TF-IDF」と言えると思います。 BM25 は以下を主要なアイデアとして採用した手法になります。この記事では二回にわたってこれらを解説していきます。 条件付き確率を基礎としたスコアリング ロバートソン/スパルクジョーンズ重み付け関数 (IDF に相当) Binary Independence Model (BIM) El
こんにちは! バンダイナムコネクサスのデータ戦略部で機械学習PJTのPdMをしている高野です。 データ戦略部内の機械学習チームでは、グループ内の様々なプロダクトに機械学習機能を提供するためにML基盤や機械学習モデルの開発を行っています。 そこで今回の記事では、機械学習モデル開発の一貫で実施した対照学習を用いたコンテンツベースレコメンドの技術検証について紹介します。 レコメンド技術検証の概要 下記図のように、似たアニメの推薦を実現するために、アニメのシリーズ関係とあらすじデータを用いたコンテンツベースレコメンドの技術検証を行いました。 まずアニメのシリーズ関係ペアデータ(例:Aというアニメの1期、2期の関係性を表すペアデータ)をグループ内の動画プラットフォームサービスから取得します。 次にこのシリーズ関係ペアデータを用いて、東北大が提供している日本語学習済BERTモデルを対照学習でFine-
こんにちは、データサイエンス部の森田、大城、新規事業開発室の井口です。 もう気がつけば開催から一月経ってしまいましたが、今回の記事は 3/10 ~ 3/14 の 5 日間にわたって開催された言語処理学会第 31 回年次大会 (NLP2025) の参加レポートになります。 スポンサーしてます NLP2025 について 論文紹介 [P8-15] 逆プロンプトを用いたコールドスタート推薦 [A2-1] 大規模言語モデルにおける複数の指示追従成功率を個々の指示追従成功率から推定する [A5-4] プロンプトに基づくテキスト埋め込みのタスクによる冗長性の違い まとめ NLP2025 について 言語処理学会は人工知能の一分野である(自然)言語処理を専門とする学会です。近年は特に LLM の話題が多く、参加者の幅も広がっているようです。 昨年に引き続きオフライン・オンラインのハイブリッド開催となり、長崎
Spearman相関係数とSpearman Footruleに関しては、2つのランキングで要素がどのくらい移動したかを数値化したもので、上位k件での評価をすると不一致要素が発生しうる。もう一方のランキングに含まれない要素は距離計算不能となるのでその点でこの2つは今回の要件的には不適切です。上位を重視するという点については、nDCGは下位ほど減点することで相対的に上位に加点することになりますし、不一致要素も関連度0として扱えばよいので今回の要件をクリアしています。 nDCGとは? nDCG(Normalized Discounted Cumulative Gain)は、検索結果やレコメンデーションの品質の評価などに使われる指標です。 nDCGはDCGを正規化した指標で、理想のDCG(IDCG)で割ることで正規化しており、これにより検索クエリ同士比較しやすくなります。 \mathrm{nDCG
BERTやGPTなどの大規模言語モデルに基づく検索モデルは、様々なテストコレクションにおいて優れた性能を発揮し多くの注目を集めている。これまでに様々な検索モデルが提案されてきており、大規模言語モデルの情報検索への適用は、実サービスにおいても一般的なものとなっている。本講義では、大規模言語モデルを利用した…
Raggleの第2回コンペでアイデア賞をいただいたのでメモ。ありがとうございます〜 ソースコード 下記を参考に、Transformerモデル組み込みたいんやけど...と生成AIに相談してコード作りました。要件定義と手元デバッグ野郎でした。 解法のコア このツイートにほぼすべてが詰まっています。Twitter最高! TransformerではないEmbeddingモデルである、static-embedding-japaneseをベクトル検索に用いました。 著者のセコンさんもTwitterに書いてくださっていますが、CPUでも爆速でEmbeddingできます。 今回のコンペで使った文書のEmbeddingに使う時間を比較してみたところ、以下の通りでした。 モデル 時間 上記は 396chunks(1chunk, 1000文字ごとチャンク) での計測時間です。 ※ 各々のCPUのスペックやOpe
Precisionベースの測定指標はユーザにとってどれくらいレコメンド結果が望ましくないかを図る指標です。 確かに、レコメンドしたアイテムがユーザにとって望ましいかったのか、そうでなかったのかはAmazonで商品を評価するために☆をつけたり、Youtubeでgoodボタンやbadボタンを押したりといった、レコメンド結果に対する明示的な評価がないとわかりません。 MPRの定義MPRの定義は以下になります。 $$ MPR = \frac{\sum_{u \in U}\sum_{i \in l(u)} r_{u,i} \overline{rank_{u,i}}}{\sum_{u \in U}\sum_{i \in w(u)} r_{u,i}} $$ \( U \) はユーザの集合\( l(u) \) はユーザ \( u \) へのレコメンドしたアイテムの集合\( r_{u,i} \) はユーザ
この記事はランク学習(Learning to Rank) Advent Calendar 2018 - Adventarの2本目の記事です この記事は何? 前回の記事でランク学習の導入を紹介しました。 www.szdrblog.info この記事では、実際にランク学習ではどのような学習データを扱うのか、どんな特徴量を使うのか、どんな損失関数を最適化するのかを紹介したいと思います。 ランク学習における学習データ ランク学習における学習データは、よくある分類問題や回帰問題とはちょっとだけ形式が異なります。 前回の記事でチラッと紹介しましたが、ランク学習では「検索キーワード」・「検索キーワードに対応する検索結果リスト」が学習データとして与えられます。 もう少し形式的に言うと、個のサンプルを含んだ訓練データがあり、各サンプルは「検索キーワード」と「検索キーワードに対応する検索結果リスト」のペアです
検索における適合率 (Precision) と再現率 (Recall) 2008-01-17-1 [IIR] 「Introduction to Information Retrieval」[1] の輪講の第一回[2008-01-12-1]でちらっと話しましたが、第一章の 1.1 に Precision と Recall の説明があります(第八章でも出てきます)。 若干混乱しやすくややこしい話なので、ここで改めて解説します。 § Precision (適合率) とは、 全検索結果に対しての、 検索要求 (information need) を満たす検索結果の割合です。 例えば、 「MacBook Air の重量を知りたい」という検索要求を満たすために検索キー「MacBook Air 重さ」でウェブ検索した結果100件のうち、検索要求を満たす(重さが分かる)のが85件だとすると、 Precis
Wang, X., He, X., Wang, M., Feng, F. and Chua, T.S., 2019, July. Neural graph collaborative filtering. In Proceedings of the 42nd international ACM SIGIR conference on Research and development in Information Retrieval (pp. 165-174). どんな論文? 協調フィルタリングにおいて、ユーザーとアイテムの交互作用から埋め込み表現を獲得するために、二部グラフ構造を利用して埋め込みを伝搬させる Neural Graph Collaborative Filtering という手法を提案した論文。より高次の接続性を表現することができるモデルを作成し、既存手法を上回る性能を示した。
こんにちは、メルカリのAI/LLMチームで機械学習エンジニアをしているarr0wとshoです! 本テックブログでは、Vision-Language Modelの一つであるSigLIP [1]を、メルカリの商品データ(Image-Text Pairs)でファインチューニングし、メルカリの商品画像Embeddingの性能を大幅に改善したプロジェクトについて紹介します。 今回作成したSigLIPの性能を評価するために、商品詳細ページの「見た目が近い商品」のレコメンド機能でA/Bテストを実施しました。 この「見た目が近い商品」のレコメンド機能は、社内ではSimilar Looksと呼ばれています。作成したモデルをSimilar Looksの類似画像検索に適用し、既存モデルとの比較のためのA/Bテストを行いました。 そして、その結果として、主要なKPIにおいて以下のような顕著な改善が確認できました。
先日, @overlast さんから,DSIRNLP(データ構造と情報検索と言語処理勉強会 )という会にお誘いを頂きまして,以前から考えていたことをちょこっとお話してきました.当日の様子は, @mamoruk さんが togetter にまとめてくださっていますので,そちらもご覧ください. 第5回 データ構造と情報検索と言語処理勉強会 #DSIRNLP - Togetterまとめ 私の発表スライドは slideshare に置いておきました.いくつか直したいところがあるので,そのうち差し替えるかも. いまさら聞けない “モデル” の話 @DSIRNLP#5 from Koji Matsuda 他の方々がものっそい最先端な話ばかりのなか,私一人だけがひどくぼんやりとした内容でたいへん恐縮でしたが,問題意識を共有するきっかけを頂けたことに感謝しています. そもそもこの話をしようと思ったきっかけ
以下では、この表データは \(X\) という行列にまとめられているとします。上記テーブルに含まれる user_id 数を \(N_U\) , item_id 数を \(N_I\) とするとき、 \(X\) は \( N_U \times N_I\) 行列であり、その第 \(i\) 行は user_id として \(\mathrm{user}[i]\) を持つユーザーに、第 \(j\) 列 は item_id として \(\mathrm{item}[j]\) を持つアイテムに対応するとします。このマッピングのもと、 \(X\) の \(i\) 行 \(j\) 列の要素は、以下の式で与えられます。 $$ X_{ij} = \begin{cases} 1 & (\text{if } \mathrm{user}[i] \text{ and } \mathrm{item}[j] \text{ had
以前このブログでも紹介した『集合知プログラミング』を読みつつ、細々とデータマイニングの勉強を続けているこの頃です。それに関連して情報推薦についての研究動向についても調べていたりしているのですが、そうしていくうちに疑問に感じることがありました。 それは、情報推薦アルゴリズムの有効性を正しく評価できるのか?ということです。アルゴリズムというと、素数の判定やソートなどが思い浮かびますが、その場合の有効性はいかに少ない時間で計算結果を出せるかという、定量的な尺度で評価することが可能です。しかし情報推薦の場合は効率性ではなくユーザーの明示化できない欲求に応えることという数値化しにくい目的であるので、果たしてそこで導入されるアルゴリズムの有効性はそもそも評価できるのだろうか?と思うのです。 情報検索のアルゴリズムの場合は、適合率と再現率の2つの尺度によって評価することができます。適合率とは「検索結果中
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く