ブックマーク / yamaguchiyuto.hatenablog.com (22)

  • 2017年まとめ - でかいチーズをベーグルする

    研究者からエンジニア転職 個人的にはかなり悩んだんだけど、結局これといった "かっこいい理由" みたいなものも特になくて、研究者だけじゃなくていろいろやってみたかったからという感じで転職してみた。研究者もエンジニアもどっちも楽しい! 論文が3出た 論文がIJCAIでファースト2、CIKMで学生さんファーストのポスターが1出た。とりあえず自分の研究者としての仕事は一旦ここまで。また機会を見て戻ってきたい。 When Does Label Propagation Fail? A View from a Network Generative Model @ IJCAI2017 論文 ラベル伝搬法がネットワーク生成モデルの一つである確率的ブロックモデルと理論的につながっていることを示し、ネットワーク生成モデルの見地からラベル伝搬法の性質を解析する論文。 When Does Label Pr

    2017年まとめ - でかいチーズをベーグルする
    yag_ays
    yag_ays 2018/01/01
  • Probabilistic Matrix Factorization を導出して Edward で実装する - でかいチーズをベーグルする

    Edward っていう確率モデリングのためのライブラリがよさげって話を聞いたので入門してみたら良かったという話。せっかくなので、行列分解を確率モデルとして定義した Probabilistic Matrix Factorization を実装してみた。 Edward – Home 行列分解 (Matrix Factorization) 前にも書いた気がするけど、行列分解ってのは N x M 行列 X を、適当な K に対して N x K 行列 U と M x K 行列 V(の転置)との積に分解する手法のこと。つまり、 となるような U と V 見つければOK。ここで、 と が近くなる( になる)というのは例のごとく二乗誤差で評価する。つまり、 が最小となるような U と V を求める。 は U の i 番目の(K次元)行ベクトルで、 は V の j 番目の(K次元)行ベクトルを表す。要素ごと

    yag_ays
    yag_ays 2017/07/14
  • 研究と開発のはざま - でかいチーズをベーグルする

    博士を取ってからの3年間はアカデミックで仕事をしていたけど、4月から民間企業に移ることにした。転職するかどうかそうとう悩んだわけだけど、その時に研究についていろいろと考えたのでちょっと書いてみたい。 工学では研究と開発の違いなんて無い 誰もが納得するような明確な違いは無いと思う。あったら教えて欲しい。 実際、ほとんどの研究(論文)が何かを開発しているし、それが世の中の役に立たないと評価されない。逆に、ほとんどのプロダクトには新規性(もしくは他のプロダクトとの差異)がある。確かに、工学において研究と呼ばれるものは開発と呼ばれるものより平均的には基礎的なことをやっているとは思うけど、とはいえ明確な線引は出来ない。 研究を神格化しすぎる風潮があるんじゃないかな。 「研究者です」というと「すごい!」と言われることがよくある。そう言ってもらえるのは嬉しいけど、べつにすごくないよ。99%の研究者は世の

    研究と開発のはざま - でかいチーズをベーグルする
    yag_ays
    yag_ays 2017/04/02
  • Tucker分解の導出と実装 - でかいチーズをベーグルする

    CP分解の次はTucker分解を導出して実装する。丁寧にTucker分解の導出を説明してる文献(Web含め)が全然なかったので、自分で書く。CP分解についてはある程度知ってる前提とする。CP分解についてはこちらから。 yamaguchiyuto.hatenablog.com まとめ Tucker分解とは ALSでTucker分解の更新式の導出 PythonでTucker分解を実装 人工データを使って実験 Tucker分解とは Tucker分解は、テンソルを1つのテンソル(コアテンソルと呼ぶ)と、それぞれのモードに対して一つずつの行列に分解する。 上の図の例では、もとのテンソルのサイズは IxJxK だけど、これをコアテンソルのサイズの RxSxT (R<=I, S<=J, T<=K) まで小さくしている。また、あとで説明するけど、行列 U、V、W は全て直行行列となるように分解する。このコ

    Tucker分解の導出と実装 - でかいチーズをベーグルする
    yag_ays
    yag_ays 2016/11/30
  • TransE [NIPS'13] を実装(と実験再現)した - でかいチーズをベーグルする

    Graph embedding を調べる上で避けては通れないっぽいTransEを実装して実験再現してみた。モデルがシンプルでカッコイイし実装も簡単だった。データもパラメータも公開されてて実験を再現できたのもポイント高い。 TransE NIPS'13で提案されたGraph embeddingをする手法。Google scholarで既に100以上引用されていろんな拡張モデルが提案されてる。論文は以下。 papers.nips.cc TransEはKnowledge graph(Freebaseとか)をベクトル空間上にembeddingする。入力としてKnowledge graphを与えると、全てのsubject, predicate, objectに対してそれぞれk次元のベクトルを出力する。ポイントは出力されたベクトル空間に構造があること。例えば、 v(Kei Nishikori) + v

    yag_ays
    yag_ays 2016/11/06
  • scikit-learn準拠で Label propagation とか実装した - でかいチーズをベーグルする

    scikit-learn準拠で Label propagation 的なアルゴリズム達を実装した。なんで実装したかというと、 グラフそのもの(隣接行列)を入力したい。 scikit-learnには既にsklearn.semi_supervised.LabelPropagationが実装されてるけど、これはグラフを入力するんじゃなくて、普通にサンプル数×特徴数のデータ行列を与えて、そこから類似度グラフを作るようになってる。これだと例えば手元にソーシャルグラフがあって、そのユーザ(ノード)の属性(興味とか)を Label propagation で推定するということができない。 ハイパーパラメータを楽に決めたい。 自分でグリッドサーチとかやるのはめんどくさいので、sklearn.grid_search.GridSearchCVとかを使いたい。そのためにsklearn準拠にした。 自分の研究成果

    scikit-learn準拠で Label propagation とか実装した - でかいチーズをベーグルする
    yag_ays
    yag_ays 2016/09/22
  • CMU教授直伝の論文の書き方 - でかいチーズをベーグルする

    CMUに留学している時にFaloutsos教授に教わった論文の書き方をまとめる。この書き方に従うことで論文の採択率がかなり上がった。今となっては自分的に当たり前のことだし、できる研究者の皆様は自然と守っていることも多いと思うけど良い論文を書きたいと思っている学生とかに参考にしてもらえたらと思う。ただし、Faloutsos教授に教えてもらったことを一旦自分で噛み砕いてからまとめたものなので自分の主観とかが混じってしまっているかもしれない。 主語が大きくならないように予め断っておくけど、この書き方はもちろんすべての論文に対して当てはまるわけじゃなくて以下の前提条件がある。 国際会議論文である データマイニング関連分野の論文である 論文誌とか卒論とかもっと長めの論文を書くときは当てはまらない項目もあるし、データマイニング関連分野以外の論文を書いたことが無いのでそれ以外の分野の論文に当てはまるかも

    CMU教授直伝の論文の書き方 - でかいチーズをベーグルする
    yag_ays
    yag_ays 2016/01/18
  • EMアルゴリズムでPLSAとSSNBを導出 - でかいチーズをベーグルする

    Machine Learning Advent Calendar 2015 の10日目です。 EMアルゴリズム自体の説明は溢れてるけど実際にEMアルゴリズムを使って何かを解いてみたっていう例題はGMM(Gaussian Mixture Model)以外あまり見ない気がする。なので今日は二つの例題を使って具体的にEMアルゴリズムを使ってみる。 導出してみるのはかの有名なPLSA(Probabilistic Latent Semantic Analysis)とあまり有名じゃないSSNB(Semi-Supervised Naive Bayes)。二つとも例題としてはかなり優秀だと思う。 論文 "Unsupervised learning by probabilistic Latent Semantic Analysis", JMLR, 2001 "Text Classification from

    EMアルゴリズムでPLSAとSSNBを導出 - でかいチーズをベーグルする
    yag_ays
    yag_ays 2016/01/12
  • Personalized PageRankとLabel Propagationが等価という話 - でかいチーズをベーグルする

    無向グラフの時のPersonalized PageRank*1とLabel Propagation*2(LGCとも呼ばれる)が質的に等価というお話。つまりLabel Propagationを計算したいときはPersonalized PageRankを計算すれば等価な結果が得られる。Personalized PageRankとLabel Propagationを知ってる人向けに書くのでわからない人はブラウザの戻るボタンを押してね。 まず、Label Propagationは以下のように書ける。 ただし、で、Wはデータ間の類似度行列、Dは次数の対角行列を示す。また、yはlabeled exampleのラベルを格納するベクトルで、positiveなら1、そうでなければ0を格納する(unlabeledも0)。αは0から1のパラメータ。この等式を満たすfが求められればLabel Propagati

    yag_ays
    yag_ays 2016/01/12
  • PAKDD2015で発表し(てもらっ)た - でかいチーズをベーグルする

    PAKDD2015に論文が通っていたので発表した。タイトルは"SocNL: Bayesian Label Propagation with Confidence"。自分で参加して発表したかったんだけどちょうど同じ日程でWWW2015が開催されていて、そっちでの発表もあったので、PAKDDには参加できなかった。残念。なので共著のFaloutsos教授の知り合いの方にかわりに発表してもらった。大変お世話になりました。 前回のAAAI2015に引き続き、今回の発表もグラフ上でのノード分類アルゴリズムの提案。やっぱりアルゴリズムを考えていろいろ解析するのは楽しい。今後もこういう研究をしていきたい。 SocNL: Bayesian Label Propagation with Confidence from Yuto Yamaguchi 概要 今回の発表はグラフ上でのノード分類アルゴリズムをベイズ推

    PAKDD2015で発表し(てもらっ)た - でかいチーズをベーグルする
    yag_ays
    yag_ays 2015/05/25
  • Predicting the Demographics of Twitter Users from Website Traffic Data (AAAI'15) を読んだ - でかいチーズをベーグルする

    AAAI2015のOutstanding paper award honorable mention。発表聞いた時は何でこれが賞とったのかな?と思ったけど実際論文読んだら結構面白かった。 概要 Twitterユーザのいろいろな属性(年齢、性別、人種、収入、学位、子持ち)を推定する。面白いのはQuantcastのデータを使うところ。QuantcastはあるWebページに訪れる人の年齢とか性別とかの割合を出してる。例えば「LinkedInに訪れる人達の何%は男性です」とか。ここから得られるWebページとTwitterのアカウントを結びつけて、それをフォローしてる人たちの属性を推定する。 具体的には、「あなたはespnとwiredをフォローしてるから男性ですね?」とか、「あなたはPlayStationとsteam_gamesをフォローしてるから18-24歳ですね?」とかいう推定をする。 Rese

    Predicting the Demographics of Twitter Users from Website Traffic Data (AAAI'15) を読んだ - でかいチーズをベーグルする
    yag_ays
    yag_ays 2015/02/07
  • AAAI2015一日目&二日目 - でかいチーズをベーグルする

    AAAI2015に参加中(TASAは何なのか知らない)。1,2日目はワークショップとチュートリアルと招待講演があった。例のごとくワークショップはパスしていくつかチュートリアルと招待講演を聞いて回った。 いろいろ聞いた感じだと、AIコミュニティはホントにいろんな分野の融合になっていて、扱う範囲が広すぎると思った。自分は元々AIの人間ではないので、知らない単語とか分野がかなり合って、いろいろ知れただけでも参加してよかったと思った。レセプションで話した人たちもみんな結構バラバラの分野から来てて面白かった。 以下参加したチュートリアルと招待講演のメモ。 The Future of (Artificial) Intelligence - Stuart Russell 最近シンギュラリティやばいとかニュースで話題になったりしてるから、しょうがないそれに対して答えてやろうという招待講演。 色々例を挙げて

    AAAI2015一日目&二日目 - でかいチーズをベーグルする
    yag_ays
    yag_ays 2015/01/28
  • Semantic Stability in Social Tagging Streams (WWW'14) を読んだ - でかいチーズをベーグルする

    WWW14から。次のWWW15はイタリアフローレンス!参加したい! 概要 Social tagging systems(FlickrとかDeliciousとか)においてリソース(Flickrなら写真、DeliciousならWebページ)に付けられたタグがどのように "Stable" になっていくかを分析。 Social tagging systemsではいろんな人が何のルールもなしに好き勝手タグ付けをするので、結果として意味を成さないめちゃくちゃなタグ付けになってしまいそうだけど、(多くの人が経験上分かるように)そうはならない。時間を追ってどんどんタグ付けされていくわけだけど、一定時間経つとあるリソースに付けられたタグの "割合" は変化しなくなる。こういう状況を "Stable" であるという。 例えば、Deliciousでgoogle.comは多分"search engine"とかそう

    Semantic Stability in Social Tagging Streams (WWW'14) を読んだ - でかいチーズをベーグルする
    yag_ays
    yag_ays 2015/01/03
  • scikit-learn準拠の学習器を作ってgrid searchとかcross validationする - でかいチーズをベーグルする

    Python Advent Calender 2014の19日目。 scikit-learnに準拠した学習器を自分で実装してscikit-learnに実装されているgrid searchとかcross validationを使えるようにするお話。Pythonの話というか完全にscikit-learnの話なんだけど、まあいいよね。 scikit-learnについてはこの辺がわかりやすいかな。 python機械学習ライブラリscikit-learnの紹介 はじパタlt scikit-learnで始める機械学習 scikit-learn準拠にするには? 全部下のページに書いてある。 Contributing — scikit-learn 0.15.2 documentation やること sklearn.base.BaseEstimatorを継承する 回帰ならRegressorMixin

    scikit-learn準拠の学習器を作ってgrid searchとかcross validationする - でかいチーズをベーグルする
    yag_ays
    yag_ays 2014/12/19
  • 半教師あり学習のモデル仮定 - でかいチーズをベーグルする

    Machine Learning Advent Calendar 2014の12日目。 最近半教師あり学習に興味があってちょっと勉強してみたのでそれについて書いてみる。自分が勉強した時に読んだ文献も下の方に書いたのでもし興味があれば。 半教師あり学習はラベル付きデータに加えてラベル無しデータも使って学習できるということですごく魅力的なんだけど、何も考えずに使うと教師あり学習より精度が落ちることがよくある。 ラベル無しデータはその名の通りどのクラスに属すかが分かっていないデータなので、何かしらの モデル に基いてそのデータがどのクラスに属するかを仮定してやらないといけない。つまりデータの分布(モデル)に仮定を置かないといけない。半教師あり学習をする上ではこれが 一番重要。 Introduction to Semi-Supervised Learningのp.15にもこう書いてある。 the

    半教師あり学習のモデル仮定 - でかいチーズをベーグルする
    yag_ays
    yag_ays 2014/12/12
  • CIKM2014五日目 - でかいチーズをベーグルする

    CIKM2014最終日。今日はワークショップとチュートリアルのみ。 午前と午後でチュートリアルを1つずつ聞く予定だったんだけど、午後のDeep learningのチュートリアルが満席で見れなかった。残念。大きい部屋使ってるワークショップがガラガラだったから部屋交換してくれればよかったのになぁ。いくら部屋が小さかったとはいえ、最終日でしかもチュートリアルとワークショップしかない日なのに満席になるなんてDeep learningすごい。 Tutorial 4: E-commerce Personalization at Scale - eBay E-commerceが大事だよー、personalization大事だよーっていう話から始まって、personalizationに関する論文の主な結果の紹介を延々としてた。ちょっと退屈だったからあまり追えてない。最後はSkylineTop-kについて

    CIKM2014五日目 - でかいチーズをベーグルする
    yag_ays
    yag_ays 2014/11/08
  • CIKM2014四日目 - でかいチーズをベーグルする

    CIKM4日目。会議の最終日。 今日は一番楽しみにしてたJeff Deanのキーノートがあった。さすがすごい面白かった。うわー、Deep Learningすげー、手出さんとこーって思った。Baiduの人はインダストリーセッションなのに延々とSGD(確率的勾配降下法)の高速化についてガチ理論の話をしててすごみがあった。 今日で会議は終わりだけどキーノートとチュートリアルとインダストリーは全体的にかなり面白かった。流行りのキーワードとしては Health care, Deep learning, Knowledge graphでしたね完全に。こういう場に来ると業界の第一人者が何を重要だと思っていて、どんなことをしているのかをざっと眺めることができるからホントに良い。 僕から言えるのは一つだけ。ランチの後にもコーヒーを出してくれるとありがたい! Keynote 3: Deep Learnin

    CIKM2014四日目 - でかいチーズをベーグルする
    yag_ays
    yag_ays 2014/11/08
  • CIKM2014で発表した - でかいチーズをベーグルする

    CIKM2014で発表してきた。タイトルは "Online User Location Inference Exploiting Spatiotemporal Correlations in Social Streams" 。質疑終わった後もオフラインでけっこう質問もらえていい感じだった。国際会議の醍醐味ですね―。あとで「お前の過去の論文読ませてくれ」っていうメールも来た。嬉しいね。 Web上(ソーシャルメディアも含めて)のリソースの位置情報に関する研究はかなり流行ってる印象。今回のCIKMでもLocWebっていうワークショップも開かれてた。自分が今回扱ったソーシャルメディアユーザの位置推定だけに限っても下に挙げるようにかなりたくさんの論文が発表されてる(まだまだある)。 論文 Online User Location Inference Exploiting Spatiotemporal

    CIKM2014で発表した - でかいチーズをベーグルする
    yag_ays
    yag_ays 2014/11/08
  • CIKM2014三日目 - でかいチーズをベーグルする

    CIKM2014三日目。会議二日目。 キーノートとインダストリートーク二つ聞いたけど、どこもかしこもKnowledge Graph!って感じだった。この前のKDDでもそうだったけど、すごい流行ってるな。みんなWebからエンティティを抽出しましょう!エンティティをつなげましょう!的な話をしてる。アカデミックで流行ってるというよりはインダストリーで流行ってる印象かな。 バンケットはさすが中国ご飯も美味しかったし、いろんなパフォーマンスを見せてくれた。何を見せてくれてるのかあんまりよくわかんなかったけど中国ゴマとかすごかった。よくある国別の参加者数とか論文数は発表されなくて、簡単なトピックごとの投稿数くらいが発表されただけだった。採択率20.9%。今年は少し高いのかな。あとベストペーパーが発表された。賞もらいたいっすねー。 Best paper "Cross-Device Search," G

    CIKM2014三日目 - でかいチーズをベーグルする
    yag_ays
    yag_ays 2014/11/06
  • CIKM2014二日目 - でかいチーズをベーグルする

    CIKM2014二日目。今日から会議が始まる。 正直なところ、国際会議ですべきことは個々の論文発表を聞くことじゃないと改めて痛感した。20分間発表聞くなら論文のイントロとまとめ読んだほうがいい気がした。口頭発表でアルゴリズムの詳細の説明をしないでくれ―、頼む―って感じだった。説明するのは解いた問題についてと貢献と基アイデアだけで十分。それで面白そうと思ったら論文読みますので。。。 明日は自分の発表だから十分気をつけなくては。 今日の当たりはIndustry sessionのLIBSVMの人のトーク。機械学習のソフトウェアと作る時はいかにシンプルに作るかが重要ってことを面白エピソードを交えつつ紹介してた。Simple or dieって感じですかね。座右の銘にしよう。 レセプションはCIKM CUPの表彰だけあって他は何もなく終わった。TsinghuaからCMUの同じグループに来てる人が2

    CIKM2014二日目 - でかいチーズをベーグルする
    yag_ays
    yag_ays 2014/11/05