LIVESENSE Data Analytics Blog

リブセンスのデータ分析、機械学習、分析基盤に関する取り組みをご紹介するブログです。

線形回帰のギブスサンプリング - Bayesian Factorization Machinesのバイアス項の実装 -

今回から何回かに渡ってBayesian Factorization Machines(BFM)関連の記事を書いていこうと思います。まずは、基本となる連続値を目的変数としたBFMのギブスサンプリング実装について、3回に分けて説明します。BFMの技術要素は、(1)線形モデルのギブスサン…

Gale-Shapleyアルゴリズム実装の高速化

前回に続き今回もGale-Shapleyアルゴリズムを扱います。前回の記事で紹介した実装のボトルネックを把握し、少し改良することで計算量を大幅に削減します。コードはJuliaです。

Gale-Shapleyアルゴリズムの実装

今回は、マッチングアルゴリズムとして有名なGale-Shapleyアルゴリズムを扱います。今回の記事ではアルゴリズムをそのまま実装したものを紹介し、次回の記事で計算速度を考慮した実装を紹介します。なお、弊社サービス[knew](https://knew.jp)が始まった頃に…

二元分割表のベイズ推定 - 対数線形モデル

今回も二元分割表のベイズ推定ですが、今回は一般化線形モデルの一つである対数線形モデルを扱います。コードはRとStanです。

二元分割表のベイズ推定 - 総度数も与えられない場合

今回は前々回、前回の続きで二元分割表のベイズ推定を扱います。前々回は行和と列和のいずれかが与えられる場合、前回は総度数のみが与えられる場合でしたが、今回は総度数も与えられない場合です。コードはRとStanです。

二元分割表のベイズ推定 - 総度数のみが与えられる場合

今回は前回の続きで二元分割表のベイズ推定を扱います。前回は行和と列和のいずれかが与えられる場合でしたが、今回は総度数のみが与えられる場合です。コードはRとStanです。

二元分割表のベイズ推定 - 行和と列和のいずれかが与えられる場合

今回は、二元分割表のベイズ推定を扱います。実務のデータ分析ではクロス集計をよく使うと思いますが、その集計で得られた表を詳細に分析するときに使います。コードはRとStanです。

LKJ相関分布を利用したBPMF(Bayesian Probabilistic Matrix Factorization)の実装

こんにちは、リブセンスでデータサイエンティストをしている北原です。今回は事前分布にLKJ相関分布を利用したBPMF(Bayesian Probalibistic Matrix Factorization)を扱います。元のBPMF(Salakhutdinov et al. 2008)では因子行列の分散共分散行列の事前分布…

StanによるBPMF(Bayesian Probabilistic Matrix Factorization)の実装

こんにちは、リブセンスでデータサイエンティストをしている北原です。今回は5年ぶりにBPMF(Bayesian Probabilistic Matrix Factorization)を扱います。5年前は論文の内容をそのままギブスサンプリングで実装しましたが、今回は同じモデルをStanで実装しま…

LKJ相関分布を使った分散共分散行列のベイズ推定

こんにちは、リブセンスでデータサイエンティストをしている北原です。今回も分散共分散行列のベイズ推定を扱います。以前の記事で分散共分散行列の事前分布に逆Wishart分布を使うと、推定対象の分散が小さいときに推定バイアスが生じることを紹介しました。…

対応分析によるknewユーザーの結婚観分析

こんにちは、リブセンスでデータサイエンティストをしている北原です。今回は対応分析の利用事例として、紹介型マッチングアプリknewの結婚観の特徴を分析した結果を紹介します。対応分析は2カテゴリーの項目間の関係性を視覚的に把握する方法です。主に探索…

逆Wishart事前分布を使うときの推定バイアス

こんにちは、リブセンスでデータサイエンティストをしている北原です。今回も以前の記事に続き、分散共分散行列のベイズ推定を扱います。今回は、逆Wishart分布を事前分布として分散共分散行列を推定するときに生じる問題を取り上げます。分散共分散行列の事…

コレスキー分解を利用した相関係数のベイズ推定

こんにちは、リブセンスでデータサイエンティストをしている北原です。今回は、多変量正規分布の分散共分散行列を扱うときに有用であることが知られているコレスキー分解を取り上げます。 多変量正規分布を使ったモデリングをしたいことはよくありますが、複…

ベイズ推定を利用したT-Learnerの実装と簡易検証

こんにちは、リブセンスでデータサイエンティストをしている北原です。今回も前回に引き続きアウトカムが2値のHeterogeneous Treatment Effects(HTE)に関する簡単な検証実験を扱います。ベイズを利用してT-Learnerに事前知識を組み込むことで推定が改善され…

Metalearnerを使った2値アウトカムHeterogeneous treatment effectsの簡易検証

こんにちは、リブセンスでデータサイエンティストをしている北原です。今回はアウトカムが2値のHeterogeneous Treatment Effects(HTE)に関する簡単な検証実験を扱います。コードはRです。やりたいことはパラメトリックなモデルのみを使ってHTEを推定すること…

Stanによるレコメンデーション用Factorization Machinesの実装

こんにちは、リブセンスでデータサイエンティストをしている北原です。今回はStanを使ったレコメンデーション用FM(Factorization Machines)を扱います。 FMはシンプルなモデルなのでStanで簡単に実装することができます。しかし、レコメンデーションで使う場…

打ち切り・切断回帰のベイズ推定

こんにちは、リブセンスでデータサイエンティストをしている北原です。今回は小ネタで打ち切り・切断データの回帰モデルを扱います。弊社で扱っているデータの中には打ち切りデータになっているものがあり、そのようなデータから階層ベイズモデルを作ること…

転職ドラフトのデータ分析 - 年収非公開施策による提示年収の平均処置効果

こんにちは、リブセンスでデータサイエンティストをしている北原です。今回は転職ドラフトの年収非公開施策のデータ分析の一つとして行った、施策が提示年収に与えた平均処置効果推定の紹介です。今回の記事は過去に行った分析結果を因果推論手法で再確認す…

WebサービスのA/Bテスト代替手段としての観察データからの平均処置効果推定

こんにちは、リブセンスでデータサイエンティストをしている北原です。今回は平均処置効果の推定方法について紹介します。より具体的にはマッチングや重み付けといった共変量のバランシングを利用してバイアスの小さい推定をする方法を使い、複数得られた推…

Covariate Balancing Propensity Scoreの実装

こんにちは、リブセンスでデータサイエンティストをしている北原です。今回はCovariate Balancing Propensity Score(CBPS)の紹介をします。また、Rのmomentfitパッケージを利用したCBPSの実装も扱います。 CBPSは共変量のバランスも考慮して傾向スコアを算出…

一般化モーメント法による推定

こんにちは、リブセンスでデータサイエンティストをしている北原です。今回はRのmomentfitパッケージを使ってGeneralized Method of Moments(GMM、一般化モーメント法)を実行する方法について紹介します。 GMMはパラメータ推定法の一つで、主に計量経済学で…

転職ドラフトのデータ分析 - 階層ベイズによる提示年収のばらつき推定

こんにちは、リブセンスでデータサイエンティストをしている北原です。今回は以前の記事の続きで転職ドラフトの年収非公開施策のデータ分析について紹介します。階層ベイズを利用した推定を行います。 以前の記事では提示年収のばらつきをユーザー別標準偏差…

転職ドラフトのデータ分析 - 年収非公開施策の分析

こんにちは、リブセンスでデータサイエンティストをしている北原です。今回は2020年8月に開催された転職ドラフトの年収非公開施策の分析結果について紹介します。今回は一般向けの内容で、分析手法は集計のみを使いデータ分析の専門用語はほとんど使わずに説…

Factorization MachinesによるBayesian Personalized Rankingの実装

前回に続きコンテキストを扱えるFactorization Machines(FM)をモデルとした、Bayesian Personalized Ranking(BPR)(以下ではBPR-FMと略)を紹介します。今回はBPR-FMのモデルパラメータ推定の実装の話をします。実装にはJuliaを使います。モデルやアルゴリズム…

Factorization MachinesによるBayesian Personalized Ranking

今回から3回にわたって暗黙的評価データを使ったコンテキスト対応レコメンデーションの紹介をしようと思います。具体的には、コンテキストを扱えるFactorization Machines(FM)をモデルとした、Bayesian Personalized Ranking(BPR)を紹介します。今回はアル…

リブセンスの機械学習業務(2020年1月)

こんにちは、リブセンスで分析や機械学習関係の仕事をしている北原です。 今回は求職者に向けたリブセンスの機械学習業務の紹介です。 求職者に業務内容を理解してもらうのが目的の記事になっています。 各事業部で進められている機械学習プロジェクトなども…

UXデザインが総論賛成、各論疑問になる理由と、プロジェクト設計で意識したい3つの条件【後編】

テクノロジカルマーケティング部 データマーケティンググループにてUXリサーチャーをしている佐々木と申します。普段は、UXデザイン(以下、UXDと略記)に関するプロジェクトを事業部横断で支援する業務についております。 これまで前編として、"UXデザイン…

Livesense AnalyticsにおけるRedshiftの運用

データプラットフォームグループの松原です。 弊社各サービスのデータ分析基盤であるLivesense Analytics(以降LA)の開発、運用を行っています。 LAではデータウェアハウスとしてRedshiftを運用しており、社内から比較的自由に利用できる様にしています。 R…

CloudFormationでコンテナビルド用パイプラインをつくる

テクノロジカルマーケティング部の橋本です。 肩書的には分析基盤開発・保守を担当するエンジニアですが、近頃は基盤開発に限らず、データアナリストが推進するデータ活用施策をエンジニアの立場でサポートしており、施策実行のために必要となる周辺システム…

Factorization Machinesをレコメンデーションで使うときの評価推定値計算

こんにちは、リブセンスで統計や機械学習関係の仕事をしている北原です。今回はレコメンデーションで使う評価推定値計算の効率化に関する小ネタです。機械学習を実務で使うときのちょっとした工夫に関するお話です。実装にはJuliaを使います。 FM(Factorizat…