機械学習

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つで、文書の並び順を予測する手法です。 ランク学習について日本語でま…

勾配ブースティング木を用いたランク学習手法:GBrankを実装した

この記事は何? GBrankのアルゴリズム GBrankの実装 回帰木の実装 GBrankにおける勾配ブースティングの学習の実装 実装の確認・実験 回帰木の実装の確認 GBrankの実装の確認 その他 この記事は何? ランク学習は様々な手法が提案されていますが、勾配ブース…

「ベイズ推論による機械学習入門」を読んだので実験してみた(その2)

この記事は何? szdr.hatenablog.com に引き続き、「ベイズ推論による機械学習入門」で紹介されているアルゴリズムを実装・実験していきます。www.kspub.co.jp 今回は4章の「ポアソン混合モデルにおける推論」で紹介されている、ポアソン混合モデルのための…

「ベイズ推論による機械学習入門」を読んだので実験してみた (その1)

この記事は何? ベルヌーイ分布の学習 カテゴリ分布の学習 ポアソン分布の学習 1次元ガウス分布の学習と予測 その他 この記事は何? 「ベイズ推論による機械学習入門」を読んでベイズ推論を理解した気がするので、本の3章で紹介されているアルゴリズムを実験…

Chainerでマルチタスクニューラルネットワークを実装した

注:この記事の実装は非効率的かもしれません. この記事は何? マルチタスク学習をニューラルネットワークに適用した研究がいくつか報告されています. 適用例として,Georgeら(2014)の研究では,タンパク質に対する化合物の活性予測にニューラルネットワー…

CNNモデル比較論文 "An Analysis of Deep Neural Network Models for Practical Applications"を読んだ

深層学習を用いた画像認識分野では様々なCNNのネットワーク構造が提案されており,ImageNetデータセット等を用いた予測精度比較が広く行われています. じゃあどのCNNモデルを使うべきなんだろう…と考えていましたが,最近こんなtweetが目に入りました.代表…

予測ランキング評価指標:NDCGの2つの定義と特徴の比較

この記事は何? 機械学習の応用例としてランキング予測があります. ランキング予測の例としてウェブページランキングがあります.GoogleやYahoo!のような検索エンジンでは,ユーザーが入力したクエリに対して適合度の高い順にウェブページをランキングし,…

正定値でないグラム行列を正定値に変換して学習すると精度は変化する?

この記事は何? カーネル法を用いた機械学習では,データセットに対するグラム行列を生成して学習を行いますが,非正定値カーネルを用いた場合やサンプル間の類似度をカーネルとして用いた場合は,得られるグラム行列が正定値にならない場合があります. 得…

スケーリングは訓練データだけでやる?テストデータも混ぜてスケーリングする?

この記事は何? 機械学習における前処理として,特徴量のスケーリングがあります. スケーリングの有無によって,予測器の性能が変化することがあります. スケーリングにも様々な手法があります.代表的なものとして,「最小値を0,最大値を1とする0-1スケ…

不均衡データに対する予測結果のAccuracyは簡単に上がってしまう

この記事は何? 機械学習における不均衡データの扱いは,学習時にも評価時にも注意する必要があります. 例えばSVMにおける学習では,クラス重みを事前に設定することで,不均衡データによるバイアスを軽減できます. 不均衡データに対する予測精度の評価に…

CNNとRankNetを用いた画像の順序予測(ラブライブ!のキャラクター順序予測を例に)

(Chainer Advent Calendar 2016 5日目です.この記事はTokyoTechLTで発表したものと同内容のものです.) この記事は何? 以前Chainer Advent Calendar 2015において,Chainerを用いたRankNet(ランク学習手法の1つ)の実装を紹介しました. 本記事では,RankNe…

z-scoreに変換しても相関係数は変わらない

この記事は何? 機械学習の前処理として特徴量のスケーリングを行うことがありますが,スケーリング手法の1つとしてz-score変換があります. z-scoreは平均が0,標準偏差が1となるようにスケーリングを行います,z-scoreを10倍して50を加えるとお馴染みの偏…

確率的勾配降下法によるRankSVMの実装

この記事は何? ランク学習のモデルの一つとしてRankSVMがあります.RankSVMには様々な最適化手法が提案されていますが,通常のSVMと比較して計算量が大きいため,大きなデータセットに適用するのは難しいと言われています.一方,D. SculleyによるLarge Sca…

線形回帰の実装

この記事は何? 線形回帰のpython(+ numpy)による実装例です. 数式 訓練データをとし,推定する重みベクトルをとすると,は以下の式で表されます. \begin{align} {\bf \hat{w}}=({\bf X}^T{\bf X})^{-1}{\bf X}^T{\bf y} \end{align} この式を実装するだけ…

ROC-AUCを最適化したいならRankSVMを使えば良いのでは?

この記事は何? 機械学習分野における予測精度の評価指標としてROC-AUCがよく用いられています. ROC-AUCは分類問題で用いられる評価指標ですが,ROC-AUCを直接最適化できるとお得です. 機械学習の一つにランキングを学習するランク学習という枠組みがあり…