numpy.typing.NDArrayの整理

概要 numpy.typing.NDArrayとは何か NDArrayを利用した型アノテーション まとめ 概要 numpy version=1.20からnumpy.typingが提供されています。 numpy.org 型アノテーションを記述する際に、numpy.ndarrayで指定するのと、numpy.typing.NDArrayで指定するの…

Vespaでベクトル検索によるマルチモーダル検索システムを実装する

この記事は何? マルチモーダル検索の流れ Vespaを利用したマルチモーダル検索の実装 実装する検索システムの概要 商品embeddingの管理方法 Embeddingの推論 Vespaのスキーマ設定 スキーマの定義 ランキングロジックの定義 Vespaへのデプロイとデータフィー…

育児支援ダッシュボードを支える技術

この記事はなに? 構成・実装 育児記録 室内の温湿度 現在の天気 ダッシュボード 取得情報のデータベースへの格納 ダッシュボードに何を掲出すべきか? まとめ 参考 この記事はなに? 以下の育児支援ダッシュボードの構築ポストに触発され、自分もダッシュボ…

VespaのParent/Child(document reference)で検索改善の幅が広がります

この記事は何? 「文書に紐づくカテゴリ×集計値」を利用した検索ランキング改善 Parent/Child機能の簡単な紹介 Parent/Child機能を実際に使ってみる さらなる応用 まとめ おまけ この記事は何? 情報検索・検索技術 Advent Calendar 2022 - Adventarの12日目…

ちょっとテクい検索ランキングをVespaで実現する

この記事は何? Vespaの準備 Vespaにおけるランキングロジックの実装(rank-profile) ちょっとテクい検索ランキング集 検索結果をランダムに並び替える 検索時の時刻を利用して並び替える 検索リクエスト時にランキングで利用する値を渡す クエリとドキュメ…

ライブラリ・アプリケーションでPythonのバージョンを指定したい

やりたいこと Pythonのプロジェクトはライブラリ・アプリケーションの2つに分けられます。ライブラリを提供する際に「Python >= 3.6のみ動作します」というように、Pythonのバージョンを指定したいときがあります。 アプリケーションについても「Python = 3.…

2021年の目標とかキャリアなど

2020年あっという間でした。 あっという間をただただ繰り返していくと、人生が本当にあっという間に終わってしまう気がします。 せめて、2021年にやりたいことをメモしておいて、2021年が終わったタイミングで何を達成したのか(または達成できなかったのか…

2020年買って良かったものたち

今年何にお金使ったんだっけ…を振り返り。2019年末に引っ越したというのもあり、2020年は必要な家具・家電を買い足していく年でした。 家電 食器洗い乾燥機 NP-TCM4 Panasonic ドラム式洗濯機 ES-H10D-WR シャープ 冷蔵庫 SJ-PD28E-T シャープ ロボット掃除…

「情報検索:検索エンジンの実装と評価」2章 基本技術

この記事は何? 転置インデックス 検索アルゴリズム 準備 フレーズ検索 next, prevの実装について ランキング検索 ベクトル空間モデル 近接度ランキング 論理検索 評価 有効性の評価 テストコレクションの構築 効率の評価 まとめ この記事は何? adventar.or…

「情報検索:検索エンジンの実装と評価」1章 イントロダクション

この記事は何? 情報検索とは何か 情報検索の例 情報検索の応用分野 情報検索の専門用語 性能評価に関する専門用語 電子テキストの取扱い ターム分布 言語モデル テストコレクション オープンソースIRシステム まとめ この記事は何? adventar.org「情報検索…

【Python】フィルタを利用してSlackに通知するログを振り分ける

この記事は何? Slack通知用ハンドラの定義 Slackに通知するログを振り分ける ログレベルでSlackに通知するログを振り分けるのは? 参考 この記事は何? PythonでログをSlackに通知したいとき、logging.handlers.HTTPHandlerを継承したSlackHandlerのようなS…

【Python】Mixinクラスの継承先でインスタンス変数の定義を強制したい

Mixinクラスのメソッドの中で、インスタンス変数にアクセスしたいとします。例えば、インスタンス変数nameにアクセスするMixinクラスHelloMixinを考えます。 class HelloMixin: def hello(self): return f"hello {self.name}" HelloMixinを継承した、MyClass…

Search Engineering Tech Talk 2019 Autumnに登壇しました

はじめに どんな発表をしたの? 登壇の経緯は? 発表の内容と話しきれなかったこと ランキングモデルとリアルタイムな予測 ランキング学習における特徴量の注意 ランキングモデルの更新 ランキング学習試したいんだけど、何から始めれば良い? ランキング学…

ランク学習 Advent Calendar 2018 まとめ

この記事はランク学習(Learning to Rank) Advent Calendar 2018 - Adventarの15本目の記事です この記事は何? ランク学習 Advent Calendar 2018 をゴリゴリやってきました。 adventar.orgもう書くネタ無い。。。ので、まとめ・ランク学習を勉強するにあた…

RankSVMで得られたランクモデルをSolrにデプロイしてみる

この記事はランク学習(Learning to Rank) Advent Calendar 2018 - Adventarの14本目の記事です この記事は何? 検索エンジンの有名どころとしてSolrが挙げられますが、Solrにはランク学習によるランキングモデルで文書をランキングする機能があります。Lea…

PyTorchを用いたListNetの実装

この記事はランク学習(Learning to Rank) Advent Calendar 2018 - Adventarの13本目の記事です この記事は何? ニューラルネットワークを用いたランク学習の手法として、ListNet*1が提案されています。以前下の記事で、同じくニューラルネットワークを用い…

PyTorchを用いたRankNetの実装

この記事はランク学習(Learning to Rank) Advent Calendar 2018 - Adventarの12本目の記事です この記事は何? ニューラルネットを用いたランク学習の手法として、RankNet*1*2という手法が2005年に提案されています。 RankNetの提案自体は10年以上前ですが…

SIGIR Learning to Rank sessionから見るランク学習研究の動向(4)

この記事はランク学習(Learning to Rank) Advent Calendar 2018 - Adventarの11本目の記事です この記事は何? 以下の記事の続編です。szdr.hatenablog.comszdr.hatenablog.comszdr.hatenablog.comこの記事ではSIGIR 2016・2017・2018のランク学習に関する…

SIGIR Learning to Rank sessionから見るランク学習研究の動向(3)

この記事はランク学習(Learning to Rank) Advent Calendar 2018 - Adventarの10本目の記事です この記事は何? SIGIR 2013 Personalized ranking model adaptation for web search Ranking document clusters using markov random fields A novel TF-IDF w…

SIGIR Learning to Rank sessionから見るランク学習研究の動向(2)

この記事はランク学習(Learning to Rank) Advent Calendar 2018 - Adventarの9本目の記事です この記事は何? SIGIR 2010 Learning to efficiently rank Ranking for the conversion funnel How good is a span of terms?: exploiting proximity to improv…

SIGIR Learning to Rank sessionから見るランク学習研究の動向(1)

この記事はランク学習(Learning to Rank) Advent Calendar 2018 - Adventarの8本目の記事です。 この記事は何? SIGIR 2007 A Support Vector Method for Optimizing Average Precision Ranking with Multiple Hyperplanes A Regression Framework for Lea…

SVM-rankを使ってRankSVMをサクッと試してみる

この記事はランク学習(Learning to Rank) Advent Calendar 2018 - Adventarの7本目の記事です。 この記事は何? 以下の記事でランク学習手法の1つであるRankSVMを紹介しました。 szdr.hatenablog.comこの記事では、SVM-rankというRankSVMライブラリを紹介…

RankSVMの気持ちをざっくりと理解してみる

この記事はランク学習(Learning to Rank) Advent Calendar 2018 - Adventarの6本目の記事です。 この記事は何? ランク学習の手法は数え切れないくらい提案されていますが、2018年現在のランク学習研究でもbaselineとして使われている手法として、RankSVM…

ランク学習ってどこで使われてるの?

この記事はランク学習(Learning to Rank) Advent Calendar 2018 - Adventarの5本目の記事です。 この記事は何? 前回までの記事でランク学習とは何か、どうやって学習・評価するのかを紹介してきました。 この記事では、実際にランク学習がどこで使われて…

ランク学習と検索結果の精度評価指標

この記事はランク学習(Learning to Rank) Advent Calendar 2018 - Adventarの4本目の記事です。 この記事は何? 前回の記事で、LightGBMを用いたランク学習によるランキングモデルを作りました。 www.szdrblog.info 機械学習モデルを作ったら、次にやるべ…

LightGBMでサクッとランク学習やってみる

この記事はランク学習(Learning to Rank) Advent Calendar 2018 - Adventarの3本目の記事です。 この記事は何? 1本目・2本目の記事で、ランク学習の大枠を紹介しました。www.szdrblog.infowww.szdrblog.infoこの記事では、実際にランク学習を動かしてみよ…

ランク学習ってどうやって学習するの?学習データ・特徴量・損失関数

この記事はランク学習(Learning to Rank) Advent Calendar 2018 - Adventarの2本目の記事です この記事は何? 前回の記事でランク学習の導入を紹介しました。 www.szdrblog.info この記事では、実際にランク学習ではどのような学習データを扱うのか、どん…

ゼロから始めるランク学習

この記事はランク学習(Learning to Rank) Advent Calendar 2018 - Adventarの1本目の記事です この記事は何? 「ランク学習」をご存知でしょうか?ランク学習は機械学習の枠組みの1つで、文書の並び順を予測する手法です。 ランク学習について日本語でま…

確率変数の比の分布における平均と分散をデルタ法で求める

この記事は何? そもそもデルタ法とは 2変数のデルタ法 確率変数の比の分布における平均と分散 その他 参考 この記事は何? Yandexが出したA/Bテストに関する論文 (R. Budylin, WSDM 2018) を眺めていたら、以下のような式が出てきました。 この式は、確率変…

対応のないt検定における正規性の仮定とサンプルサイズ

この記事は何? false positive rateの確認 まとめ この記事は何? 2つの母平均の差の検定を行うとき、まずは対応のないt検定(unpaired t-test)を考えると思います。 対応のないt検定には以下の仮定が存在します。 母集団が互いに独立に正規分布に従う(独…