投稿

6月, 2020の投稿を表示しています

Herokuで公開するFlaskアプリにステージング環境でのみBasic認証をかける

イメージ
こんにちは、ぐぐりら(<a href="https://twitter.com/guglilac">@guglilac</a>)です。 [趣味で開発しているアプリ](https://kanji-lyric.herokuapp.com/quiz)の検証のために、Heroku Pipelineを使って、ステージング環境を作ったのですが、ステージング環境は検索に出てきてほしくないので、ステージング環境のみBasic認証をかけました。 Railsでステージング環境のみBasic認証するという記事は多く見かけたのですが、今回はFlaskで書いており、少々調べて実装したため、知見をまとめておこうと思います。 [Heroku で既存の本番環境をコピーしてステージング環境を作る - Qiita](https://qiita.com/ken_c_lo/items/32998d9dd79a15b75c14)にはステージング環境に環境変数を設定すればできるって書いてあるけど、コメントにもあるようにさすがにアプリ側で処理を書かないとだめなはず。 今回アプリはFlaskを使って書いているので、 * [Flaskで Basic認証、Digest認証 - Qiita](https://qiita.com/msrks/items/7de68cde6c3ab9d5e177) * [FlaskでBasic認証 - Study03.net 対シンバシ専用](https://tell-k.hatenadiary.org/entry/20111005/1317781147) このあたりが検索するとでてきます。 最初、一つ目の記事に倣って`flask-httpauth`を使って、二つ目の記事に倣って`views.py`の全てのメソッドの前に実行するメソッドにデコレータをつけて認証を行うように書きました。 つまり、 ```python from flask_httpauth import HTTPBasicAuth app = Flask(__name__) auth = HTTPBasicAuth() users = { "user": "pass" } @auth.get_passwo…

【論文紹介】Relational Collaborative Filtering: Modeling Multiple Item Relations for Recommendation (SIGIR 2019)

イメージ
こんにちは、ぐぐりら(<a href="https://twitter.com/guglilac">@guglilac</a>)です。 論文紹介記事です。 SIGIR2020のaccepted papersが出てたので読もうかなと探していたのですが、その過程で見つけた2019の方の論文を読んだのでまとめます。 ### 概要 従来のCollaborative Filtering (CF)ではuserのinteractionの履歴からitem間の関係を学習して推薦を行っていたが、itemの著者やジャンルが共通しているといった直接的な関係を考慮できていなかった。 本研究ではitem間の複数種類の関係を考慮したRelational CFを提案した。RCFは二段階attention機構や知識グラフからのembedding学習とのマルチタスク学習の二点からなる。 ### リンク [Relational Collaborative Filtering: Modeling Multiple Item Relations for Recommendation](https://dl.acm.org/doi/10.1145/3331184.3331188) ### モチベーション 従来のCollaborative Filtering (CF)ではuserの購入履歴で共起したitemが類似している、という考えをベースに推薦を行います。 このitemを買った他の人はこれも買っているよ、といって推薦するわけです。 このようなitem同士の類似性を論文中ではcollaborative similarityと呼んでいます。 この類似性とは別に、他にも推薦に用いることができそうなitem同士の関係性はあるよね、というのが本論文のスタートになります。 論文中で挙げられている例では、映画を推薦するとしたときに、item Aとitem Bが同じ映画監督によって製作されているとか、同じジャンルであるなどの直接的な関係があります。 collaborative similarityではuserの購入履歴を経由した間接的な関係だけでしたが、映画推薦の例で出てきたような関係を考慮して推薦できると良さそうです。 購入履歴の他に、it…