こんにちは。レトリバの飯田です。カスタマーサクセス部 研究チームに所属しており、論文調査やそのアルゴリズムを実行するスクリプトの実装などを行なっています。 今回は、Bag of Words(BoW)表現に於いて、これがTopicModelの最終形態ではないか?と私が思っているStructured Topic Modelの紹介と再現実装をpythonで行なったので、その紹介をします。
https://github.com/retrieva/python_stm
続きを読むこんにちは。レトリバの飯田です。カスタマーサクセス部 研究チームに所属しており、論文調査やそのアルゴリズムを実行するスクリプトの実装などを行なっています。 今回は、Bag of Words(BoW)表現に於いて、これがTopicModelの最終形態ではないか?と私が思っているStructured Topic Modelの紹介と再現実装をpythonで行なったので、その紹介をします。
https://github.com/retrieva/python_stm
続きを読むレトリバ製品企画部の田村(@masatam81)です。
1/15にレトリバセミナーにて「Functional CNN in Elixir」というタイトルでお話しました。
セミナーの内容としては、趣味や20%ルールで書いていたElixirでのDeep LearningフレームワークでConvolution2D/MaxPooling2Dまで使えるようになったので、関数型言語ならではの苦労や工夫・学びの共有といった感じでした。本記事は、そのフォローアップ記事です。当日はDeep LearningやElixirに詳しくない人もいたため、それらの簡単な説明も含めて、なるべく伝わるように話しました。
本記事ではDNNやCNN、Elixirの簡単な説明やConvolution2D、MaxPooling2D以外のレイヤーの話は省きます。その辺りの話は下記のYouTubeや関連書籍を見て下さい。動画ではNIFやMatrexに関しても少しだけ話しています。
スライドはこちらになります。
www.slideshare.net
また、本記事ではConvolution2D, MaxPooling2DのElixirでの実装で工夫した点にフォーカスして書きたいと思います。
セミナーでは最初に defstruct
で構造体を作り、 defprotocol
を利用して各レイヤーをLayerモジュールの継承関係のように扱う例を説明してから、それを関数型らしく修正した話をしましたが、今回の引用コードは修正後のコードを示します。
実装のベースになっている知識はオライリー・ジャパンの「ゼロから作るDeep Learning」です。元の処理に関する詳細な説明は、そちらをご覧下さい。
こんにちは。 リサーチャーの坂田です。 レトリバでは、 主に文書分類とNERに取り組んでいます。
tensorflow 2.0 では、 1系のときに"tf.contrib"以下にあったcrfが、 "tensorflow_addons"として分離されました。 現在、 tf.kerasのレイヤーとして使えるように開発が進められています。 今回は、 このcrfの最新のプルリクを試してみたという内容です。まだマージされていないものなので、色々と問題がありました。
CoNLL 2003というデータセットを使って、 NERのタスクでCRFを試しました.
続きを読むこんにちは。レトリバ製品開発部の@gumuncleです。
この記事は 11/20に行ったセミナーのフォローアップ記事です。
動画はこちらです。
スライドはこちらです。
今年10月に認定スクラムマスター研修を受講し認定スクラムマスターになりました。
トレーニング中は参加者と議論しながら能動的に参加でき非常に満足のいくものでした。
講師の人は Alan Cyment (@acyment) | Twitter さんでアルゼンチンからこのために飛行機で30時間かけて来日されたようです。
認定スクラムマスターはスクラムの入り口に到達できた!ということなので、これからも到達可能な理想郷であるスクラムを学び実践していきたいです。
こんにちは、レトリバのエンジニアの岩田です。最近はリバウンドに悩みながら音声認識エンジンの製品開発をしています。
今回は、音声分析ソフトウェアのPraatと、Praatで読み込んだり保存できる音声のアノテーションフォーマットTextGrid形式について紹介したいと思います。おまけとして、TextGrid形式のファイルを読み書きするライブラリ textgrid.hpp を簡単に実装したので紹介します。
続きを読むこんにちは。レトリバのリサーチャーの木村です。10/16(水)のRetrieva Engineer Casual TalkでRandom Featuresについて発表しました。これはそのフォローアップ記事になります。
動画はこちらです。
Random Features 〜Shift invariant kernelからGraph kernelまで〜 - Retrieva Engineer Casual Talk vol.3
スライドはこちらです。
カーネル法はデータ数についての計算量を必要とし、データ数が増えると直接用いることが困難であるという問題があります。 この問題に対し、カーネル関数を近似的に高速計算するための手法の一つとしてRandom Featuresがあります。 Random Featuresでは内積の期待値がカーネル関数値と一致するような特徴ベクトルを得ることが目的です。 このようにして得られた特徴ベクトルを用いて線形学習を行うことによって、近似的にカーネル関数を用いた非線形学習を高速に行うことができます。 セミナーでは最初に提案されたShift invariantカーネルに対する手法から、文字列、グラフ構造に対する手法まで紹介しました。
私は学生時代カーネル関数を厳密に高速計算するためのアルゴリズムを研究していたこともあり、とても楽しくこのテーマを調査することができました。 近年深層学習の圧倒的な盛り上がりの前にカーネル法の勢いはどちらかというと下火になっていますが、興味深い論文は毎年出てきているのでこれからも動向をチェックしていきたいと思います。
レトリバの今村です。2019年9月中旬、Answer Finder 2.1.0 をリリースいたしました。「Docker による提供形態の開始」が 2.1.0 の主な変更点となりますが、本記事ではその内容の設計の過程で得られた知見やハマりどころなどを紹介します。
レトリバ製品開発部で確立できた「Docker まわりの定石」に関する一種の備忘録的な内容となります。Answer Finder をはじめとして、レトリバの製品は Ruby on Rails アプリケーションがほとんどのため、本記事で紹介する Docker イメージは基本的には Rails アプリ提供用のものです。
続きを読む突然だがPixelflutというゲームを知っているか?
百聞は一見にしかずだ。 最初の10秒だけでいいから、まずはこれを見てくれ。
Pixelflut at the EasterHegg 2014 in Stuttgart
続きを読む