投稿

7月, 2019の投稿を表示しています

【論文紹介】Gaussian process factorization machines for context-aware recommendations (SIGIR2014)

イメージ
こんにちは、ぐぐりら(<a href="https://twitter.com/guglilac">@guglilac</a>)です。 今回は、Factorization MachinesにGaussian Processを組み合わせた、Gaussian process factorization machines for context-aware recommendations (SIGIR2014) を読んだので、まとめておきます。 ### 3行まとめ FMの交互作用の部分をGPに置き換えたGPFMを提案。context-awareな推薦に用いることができる。 またimplicit feedbackに対応するモデルとしてBPRにGPFMを適用したGPPWを提案した。 ### 論文リンク <a href="https://dl.acm.org/citation.cfm?id=2609623">Gaussian process factorization machines for context-aware recommendations</a> ### 問題意識 factorization machineでは交互作用を内積で扱っていて線形で表現力に乏しいので、non linearに拡張したものを考えたい。 matrix factorizationにGPを足してnon linearに対応したものがrelated workにあるが(NPMF: Probabilistic Matrix Factorization)これはcontext-awareではない。 今回のGPFMはNPMFのMFをFMに変えたものと言える. ### 関連研究 Factorization Machines (FM)とGaussian Process (GP)で構成されるので、その辺りの知識があると読みやすい。 FMについてはこちらのQiitaの記事で。 Field-awareなFactorization Machinesの最新動向(2019) - Qiita GPは自分も勉強し始めたぐらいなのですが、こちらの超入門記事を参考にどうぞ! この論文を読むのには問題な…

【論文紹介】RaFM: Rank-Aware Factorization Machines (ICML 2019)

イメージ
こんにちは、ぐぐりら(<a href="https://twitter.com/guglilac">@guglilac</a>)です。 今回はRaFM: Rank-Aware Factorization Machinesを読みました。 ICML2019の論文です。 証明が多かったので時間をかけて読みましたが、要点だけまとめようと思います。 細かい証明は興味を持った方は追ってみるといいと思います。 ### 論文リンク <a href="https://arxiv.org/abs/1905.07570">RaFM: Rank-Aware Factorization Machines</a> ### 3行まとめ 各特徴量に対して長さの異なる複数のembeddingを学習するようにFMを改良したRank-Aware Factorization Machines (RaFM)を提案。space complexity とtime complexityが特にrankと特徴のfrequencyが急激に変化する場合に従来のFMよりも効率が良いことを理論的に示した。また高速な学習アルゴリズムを提案し、同様の場合で特にFMよりも学習時間が短いことを示した。またpublic dataとindustrial dataで実験を行い、性能とモデルパラメータのtrade off効率が良いことを示した。 ### 問題意識 これまでのFMは、rank(embeddingの次元のことだと思う)がfixされている研究が多い。 これだと、training dataに頻繁に出てくる特徴はembeddingを学習しきれずunderfittingし、あまり出てこない特徴はembeddingのdimが大きすぎるので過学習overfittingを起こしてしまう。 それぞれの頻度にあった長さのembeddingを学習したいよね、という気持ちがある 実際に各特徴量の出現頻度をみてみると、次のようになっていて偏りがあることがわかる。 <div class="separator" style="clear: both; text-align: center;&qu…

ラプラス固有写像(Laplacian Eigen Map)をPythonで実装してみる

イメージ
こんにちは、ぐぐりら(<a href="https://twitter.com/guglilac">@guglilac</a>)です。 以前、教師なし次元削減の手法の一つであるLPP(Locality Preserving Projection)を実装するという記事を書きました。 PCA(Principal Component Analysis)とLPP(Locality Preserving Projection)をPythonで実装 今回は、そのカーネル版として、ラプラス固有写像(Laplacian Eigenmap)をpythonで実装してみる、という記事を書きたいと思います。 ラプラス固有写像とLPPの関係は詳しくは説明しません。 こちらの記事がピンポイントで説明してくれているので、参考にするといいかもしれません。 <a href="https://www.pillyshi.net/2015/07/08/%E5%B1%80%E6%89%80%E6%80%A7%E4%BF%9D%E5%AD%98%E5%B0%84%E5%BD%B1-locality-preserving-projection-lpp%E3%81%A8%E3%83%A9%E3%83%97%E3%83%A9%E3%82%B9%E5%9B%BA%E6%9C%89%E5%86%99%E5%83%8F-laplacian-eigenm/">局所性保存射影 (Locality Preserving Projection, LPP)とラプラス固有写像 (Laplacian Eigenmap) </a> ### ラプラス固有写像とは 全く説明なしだとあれなので、簡単に。 数式を使った詳しい説明は上の記事を参考にお願いします。 ラプラス固有写像もPCAやLPPと同じく教師なし次元削減の手法で、カーネルを用いて非線形次元削減へと改良したものになっています。 アイデアとしては、元のデータを特徴空間へと非線形変換して、その変換した先の空間で線形次元削減(PCAやLPP)をしてみよう、というものになります。 ただし、SVMなどで使われるカーネルトリックのように、特徴空間への非線形変換は陽には…

【論文紹介】attr2vec: Jointly Learning Word and Contextual Attribute Embeddings with Factorization Machines (NACCL2018)

イメージ
こんにちは、ぐぐりら(<a href="https://twitter.com/guglilac">@guglilac</a>)です。 今回はattr2vecという、contextualな情報を取り込んだ単語の分散表現を得る手法の論文を読んだので、内容をまとめた記事を書こうと思います。 論文リンクはこちらです。 <a href="https://www.aclweb.org/anthology/papers/N/N18/N18-1042/">attr2vec: Jointly Learning Word and Contextual Attribute Embeddings with Factorization Machines - ACL Anthology</a> ### 3行まとめ GloVeを発展させた言語モデルであるattr2vecを提案。Gloveで用いられていたMatrix Factorizationの部分をFactorization Machinesに変えることで、contextualな情報を取り込んだword embeddingを獲得できる。得られたwordとcontextのembeddingをCNNに入れて文書分類させると、別々にGloVeで学習した場合より性能が高かった。 ### GloVe あるwindow幅で見たときにそれぞれのtarget wordの共起をとってきて共起行列を作る。 labelを共起の強さを表す何かにして(例えば共起回数をtarget wordからの距離の逆数で重み付けとか) Matrix Factorizationする。 得られた単語に関するlatent vectorが埋め込み。 Matrix Factorizationは追加の情報は入れられないので、ここだとcontexualな情報が入れられない。 ### 提案手法 contextualな情報を入れたword embeddingを学習する。 contextualな情報を入れる手法はいくつかあるけど、どれもad hocで、task specificなやり方であると。 さらに、contextの情報もwordと同じ空間にembedする手法はあまりない。…

【論文紹介】Deep Interest Evolution Network for Click-Through Rate Prediction (AAAI2019)

イメージ
こんにちは、ぐぐりら(<a href="https://twitter.com/guglilac">@guglilac</a>)です。 今回は、AAAI2019のDeep Interest Evolution Network for Click-Through Rate Predictionという論文の紹介記事になります。 いつもより自分のためのメモ書き感が強いですが、よろしくお願いします。 ### 3行まとめ user interestを考慮したCTR prediction modelはいくつかあるが、behaviorをinterestと捉えていて効果的にinterestのembeddingを取れていないこと、およびinterestの変化をtarget itemによらず同一のtrackとして取り出すという問題点があった。それらをauxiliary lossおよびAUGRUを用いて改善したDIENを提案。 ### 関連研究 * deep ctr model * user interest考慮 * 行動履歴を使ったもの あたりが挙げられていた deepを使ったCTR modelは、deepFMとかwide and deep、PNNなどが挙げられていて、今回の研究とは直接は関連しないので割愛。 user interestを考慮したものに、Deep Interest Network(DIN)がある。けど、sequencial behaviorを考えていない(未確認なのでこれも読んでみたい) 行動履歴を考えているもの+interestを考えているものもいくつかあって、ATRankとかが該当するらしく。 Two layer GRU Attentionとかも関連しそう ([[1804.09133] Improving Native Ads CTR Prediction by Large Scale Event Embedding and Recurrent Networks](https://arxiv.org/abs/1804.09133)) この辺からの差分はtarget itemごとに違ったinterest evolution trackが得られる、というところ。 行動履歴からus…

PCA(Principal Component Analysis)とLPP(Locality Preserving Projection)をPythonで実装

イメージ
こんにちは、ぐぐりら(<a href="https://twitter.com/guglilac">@guglilac</a>)です。 今回は教師なし線形次元削減の手法であるPrincipal Component Analysis(PCA)とLocality Preserving Projection(LPP)について書きます。最後にはPythonでの実装を載せて実験します。 ### 教師なし線形次元削減 教師ラベルなしで、データの次元を落とす手法です。 データの次元を落としたいという状況はよくあります。 機械学習のモデルに入力するデータの次元が大きすぎると性能に響きます。次元の呪いとか言われたりします。 他にも、例えばDeepなモデルを学習したあとの潜在表現を取り出して可視化したい、という場合にも次元削減が使えます。 一般にDeepなモデルで得られる潜在表現は次元が2とかではなくもう少し高次元なので、人間の目では見ることができませんが、今回紹介するPCAなどを使って2次元や3次元に圧縮することで可視化が可能になります。 ### PCA 教師なし線形次元削減の手法としてPCAは割と有名だと思います。 自分も今回勉強する前からPCAは知っていました。 PCAでは、データを分散が大きい方向を新たな軸としてデータを変換します。 いろんな値を取るような方向は情報が大きいよね、という気持ちです。 逆にどのデータも同じような値しか取らないような軸はあってもデータを表現するのに役立たないので、そういう軸は使いたくないですね。 アルゴリズムとしては 1. データから分散共分散行列をつくる 2. 固有値分解する 3. 固有値が大きい順に固有ベクトルを$m$個とってきて並べる 4. 3で作った行列$T$がPCAを行う線形変換の行列 $T$をデータにかければ低次元$m$の表現が得られます。 今回は自分で実装しますが、PCAはscikit learnにもあるので手軽に使えます。 ### LPP PCAでは単純にデータの中で広がりのある方向の軸を見つけてきてその軸で測る、ということをやっていました。 PCAの弱点として、 「もともとのデータのクラスター構造を壊してしまうことがある」 というこ…