投稿

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

【論文紹介】VBPR: Visual Bayesian Personalized Ranking from Implicit Feedback (AAAI2016)

イメージ
こんにちは、ぐぐりら(<a href="https://twitter.com/guglilac">@guglilac</a>)です。 今回は<a href="https://arxiv.org/abs/1510.01784">VBPR: Visual Bayesian Personalized Ranking from Implicit Feedback</a>を読みました。 論文紹介記事です。 ### 3行まとめ implicit feedbackからランキング学習を行うBPRを、itemの画像情報を取り込んだMatrix Factorizationに適用したVisual Bayesian Personalized Ranking (VBPR)モデルを提案。画像情報を用いることでcold start問題をある程度緩和できる。 ### BPR implicit feedback(購買履歴やclickデータ、閲覧履歴など)を用いてranking学習を行う問題設定で使えるloss function。 logデータとして観測されたitem,userの組は観測されていないitemよりもそのuserに好まれているという仮定をおいて、そのように学習を行う。 詳しくはこちらの記事で書いています。 【論文紹介】BPR: Bayesian Personalized Ranking from Implicit Feedback (UAI 2009) BPRに組み合わせるモデル(preferenceを判定する部分)は、何でもよくて、 元論文ではMatrix Factorization (MF)とAdaptive kNNと組み合わせている。 今回のVBPRでは、画像情報を組み合わせたMFをBPRのlossで最適化している。 ### VBPR BPRの部分はそのままなので、preferenceを出力する部分(内部的にはそれぞれのitem, userのペアに対して一つのスコアを出力する)だけ説明します。 普通のMFはこんな感じのモデル。 <div class="separator" style="clear: both; t…

【論文紹介】BPR: Bayesian Personalized Ranking from Implicit Feedback (UAI 2009)

イメージ
こんにちは、ぐぐりら(<a href="https://twitter.com/guglilac">@guglilac</a>)です。 久しぶりのブログ更新です。 論文紹介記事です。 今回は少し古めですが、BPR: Bayesian Personalized Ranking (BPR)を読みました。 購買データやclickデータといったimplicit feedbackからランキングを学習する手法です。 <a href="https://arxiv.org/abs/1205.2618">論文リンク</a> ### 3行まとめ implicit feedbackでpersonalized ranking(item recomendation)を行うためのlossとしてBPR-OPTを提案。 rankingの指標であるAUCを近似したlossを直接最適化することでランキング作成を学習する。またbootstrap samplingを用いた勾配法である学習法としてLEARN-BPRを提案。従来のuser/item-wiseのupdateを行う勾配法より高速。 ### 問題設定とこれまでの手法 implicit feedback(購買履歴とかclickデータ)のみからranking学習をする。 logにはpositive labelのみ存在するため、 logに出ていないitemとuserの組み合わせは 1. ほんとうに興味がない 2. 興味はあるけどまだ買ってない の二つが混ざっている。 そのためこの未観測データをそのまま負例として扱う従来の手法では筋が悪い。 これまでの手法では、 観測できないデータをサンプルしてきてnegative labelとして扱って分類するので、 興味はあるけどまだ買ってない(user x item)を0と予測する。これではうまくいかない ### BPRの気持ち BPRでは、 履歴に出てきたitem Aとuser Bの組 履歴にないitem C とuser Bの組 については、「user Bが item Aを item Cより好む」 と仮定する。 出てきていない者同士、出てきた者同士はどちらをより好むかはわからないとする …

初めて一人旅した話(金沢・飛騨・名古屋)

イメージ
こんにちは、ぐぐりら(<a href="https://twitter.com/guglilac">@guglilac</a>)です。 初めての一人旅、せっかくだから覚えている間にだらだらと感想とかどこいったとか書いておこうかなと思う。 金沢、飛騨高山、名古屋に行ってきた。 ### まとめ だらだら書いてたら長くなったので、まとめると * グルメだけだったら東京にあるじゃん(愕然) * 疲れると本当に好きなところしか行かなくなる(行けなくなる) * 一人旅が楽しめる人はいろいろ興味がある人? * 全部一人でプランニングし、トラブル対処する経験が得られた ### きっかけ まず、なんで一人旅しようかと思ったのかだけど、一人旅自体にはもともと興味があった。 一人旅が好きな友達の話に当てられてっていうのが大きいのかもだけど、側からみた自由が羨ましかったのかなと思う。 ちょうど論文を書き終えて提出したので、残りの夏休みは旅行にでも行こうと思ったのがきっかけ。 もともとは弟と行こうと思ってたんだけど、金欠で断られ、友達を誘うも金欠で断られ、だったらまあ前から行ってみたかったし一人旅してみようかな、という流れだった。 そういう経緯があったのもあって、最初は弟が提案してきた「北陸日本酒のみ比べの旅」が原案だった。 それを下敷きに、コースを考えているうちにいつの間にか金沢、飛騨、名古屋旅行になった。 最初は新潟富山金沢福井、、、と考えていたし、3泊しようと思っていたのだけど、富山を経由するときになんかだるいなって思ってしまって、じゃあ最初から金沢に行けばいいんじゃね、ってなった。期間も1日削って二泊。 これは英断だったと今では思う。長すぎるとしんどい。 旅行のときは予約とかあまりこれまでしてこなくて、いつも周りの誰か任せで生きてきて、これじゃまずいよなあと思ったのも一人旅に踏み切ったきっかけ。やったことがあれば自分の性格上今後もちゃんとまわりと協力して計画を立てられると思ったので、一度まるまるやってみようかなと思った。これは成功した。何から何まで自分でやる経験は(少なくとも自分には)コンプレックスみたいなものを払拭するのに十分だったと思う。 もちろん予約やプランニングなど、初めてでうまくやりきれたわけではないと思…

歌詞の漢字だけ抜き出してタイトル当てる問題を出すTwitterのbotを作った

イメージ
こんにちは、ぐぐりら(<a href="https://twitter.com/guglilac">@guglilac</a>)です。 今回は、歌詞から漢字の部分だけ取り出して何の曲か当てる問題を出題し続けるbotを作りました。 最初はただ単に歌い出しをみて曲名を当てる、音無しイントロみたいなのを考えてたけど、twitterで最近漢字だけの歌詞で曲名当てるのをみて面白そうだったのでこっちにしました。 こんなかんじにツイートしてくれます。 [問題] 漢字だけで書かれたこの歌詞のタイトルは何でしょう?
夢未夢忘物取帰古思出埃払戻幸最後教言隠昏過去永遠昏以上傷日悲日苦愛胸残離苦匂雨降止帰今光暗闇背輪郭鮮明覚受止出会溢涙何何見知横顔今同様涙淋中忘心願今光自分思恋思息側嘘忘確日悲日苦愛胸...(米津玄師) #分かったらRT— 漢字歌詞クイズbot (@kanji_lyric) December 27, 2019 これはLemonですね。 完成したアカウントがこちら。 <a href="https://twitter.com/kanji_lyric">漢字歌詞クイズbot</a> 今回使ったコードがこちら。 <a href="https://github.com/habroptilus/lyric-bot"> habroptilus/lyric-bot</a> コメントとか皆無だしtodoとか消してないしなので参考程度でお願いします。 ### 作り方 使用したのは * PostgreSQL * python (tweetするのとdbいじるの) * heroku(無料枠でも10000レコードは使えるらしい) です。 ### PostgreSQL 最初はSQLite3を使おうと思って、というか開発環境で完成するまではSQLite3で書いていましたが、いざherokuにデプロイしようとしたら動かず、SQLite3は使えないという記事を見つけてしまったので、仕方なくそこからPostgreSQLに書き換えました。 初めて触ったので、`homebrew install postgresql`からでした。 基本的に…