タグ

関連タグで絞り込む (241)

タグの絞り込みを解除

algorithmとAlgorithmに関するclavierのブックマーク (353)

  • レコメンドシステム入門 Javascriptで実装する|es

    レコメンド(推薦システム)に関して素晴らしい記事があったので訳してみました。訳に難があるが、そこはご勘弁ください。 プログラム実行してみると理解できると思います。入門者に打って付けの記事です。 以下、文。 インターネットの世界はレコメンドで溢れていますね。 Amazonのように商品を購入するeコマース・サイト、Facebookのようなソーシャルネットワーク、YoutubeやNetflixのようなビデオ/映画サイトなど。これらのサイトに共通するのは、あなたに新しいものを推薦するために、映画、商品と友人などの過去のデータを使うことです。 この記事では、レコメンド機能がJavaScriptで、どのように動くか簡単に紹介します。推薦システムを実現するための、異なるアプローチも見ていきます。最終的にはアルゴリズムを切り替えただけで、結果を出力できるようにします。映画評論家の小さいデータセットと、M

    レコメンドシステム入門 Javascriptで実装する|es
  • トピックモデルを俯瞰して学ぶ - ひつじの〜と 備忘録

    記事は,自然言語処理 Advent Calendar 2019 - Qiita です. はじめに 記事ではトピックモデルと呼ばれるモデル・分野の中で最も有名なLatent Dirchlet Allocation, 通称LDA*1 とその周りのトピックモデルに関して,どんな資料があるのか?,どういった研究があるのか? といったことに主眼をおいてトピックモデルの研究とかを昔していた私の独断と偏見によるリストアップを行いました. 私の頭は2017年くらいで止まっているので、間違っている点があったり、今の主流とは異なる可能性もありますが、 暖かくご指摘いただけると助かります. Latent Dirchlet Allocation[Blei+,03]を始めとするトピックモデルを学ぶに当たって 何が参考になるのか どういった研究があるのか? 実際にどうやって使うのか?(まだ出来てないよ・・・) と

    トピックモデルを俯瞰して学ぶ - ひつじの〜と 備忘録
  • 赤黒木の本質 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? この記事はデータ構造とアルゴリズム Advent Calendar 2019 16日目の記事です。 15日目は@minaminaoさんによる「すごいTrie」です。 17日目は@takilogさんによる「Fréchet距離の計算アルゴリズム」です。 はじめに この記事では有名なデータ構造である赤黒木がなぜあのようなトリッキーな定義になっているのかその質について解説します。 赤黒木の定義を見てトリッキーと思うかどうかは個人差あるかと思いますが、少なくとも僕が初めて赤黒木を学んだ時はなぜこのような定義になっているのか、そしてどうやって思い

    赤黒木の本質 - Qiita
  • よくやる二項係数 (nCk mod. p)、逆元 (a^-1 mod. p) の求め方 - けんちょんの競プロ精進記録

    1. 典型的な二項係数の求め方 競プロをしていると、「 mod 」を計算する場面にしばしば出くわします。最近では、 であることが多いですね。 mod の計算方法は、時と場合によって色んな方法が考えられますが、すぐ下で紹介する方法が最も頻繁に使用されています。多くの AtCoder のトッププレイヤーたちも使用している形式で、高速です。 使い方としては、最初に一度前処理として COMinit() を呼び出します。その後は、毎回 COM(n, k) 関数を呼べばよいです。 前処理 COMinit():計算量 クエリ処理 COM(n, k):計算量 1-1. mod の実装 この実装では、ACL (AtCoder Library) の modint を用いています。さらに下に、modint を使わない実装も載せています。 #include <iostream> using namespace s

    よくやる二項係数 (nCk mod. p)、逆元 (a^-1 mod. p) の求め方 - けんちょんの競プロ精進記録
  • Pythonで検索エンジンを自作する方法 Part.1 | ログミーBusiness

    2019年9月16、17日、日最大のPythonの祭典である「PyCon JP 2019」が開催されました。「Python New Era」をキャッチコピーに、日だけでなく世界各地からPythonエンジニアたちが一堂に会し、さまざまな知見を共有します。プレゼンテーション「入門 自作検索エンジン」に登壇したのは加藤遼氏。講演資料はこちら 検索エンジン自作の入門編 加藤遼 氏:普段はサーバサイドの開発やAPI、検索まわりをやっています。技術的にはPythonやElasticsearchがメインです。このセッションにこんなに人が来ると思っていなかったので、これだけ集まってくれて大変ありがとうございます。 ここに来たということは、みなさん検索に多少なりとも興味がある方だと思います。なのでちょっとだけ宣伝させてください。検索技術勉強会という勉強会のスタッフをやってます。これは特定のライブラリに関

    Pythonで検索エンジンを自作する方法 Part.1 | ログミーBusiness
  • 競技プログラマのための抽象セグメント木実装のすすめ - beet's soil

    午前起床!(素振り) はじめに 先にこっちを見て beet-aizu.hatenablog.com うし木(一点更新区間取得)について書きます おまけ なんだこれはたまげたなあ(わかる人にはわかる記事、わからない人にはわからない) beet-aizu.hatenablog.com 前提知識(C++) 厳密性や歴史的背景をガン無視しています。あんまりあてにしないでください。 雰囲気を掴むためと割り切って読んでもらえるといいと思います。 C++のバージョンは14を前提にしていますがそのうち17に上がりそう? struct is 何 競技プログラマならpairやtupleくらいは使ったことがあると思いますが、自分でそういうのを作るための機能です。 たとえば struct Node{ int fi,se; }; Node v; v.fi=0;v.se=1; みたいな感じで使えます。 つまり、大きな

    競技プログラマのための抽象セグメント木実装のすすめ - beet's soil
  • サービス特性にあった検索システムの設計戦略 - クックパッド開発者ブログ

    こんにちは!研究開発部ソフトウェアエンジニアの林田千瑛(@chie8842)です。あまりたくさん飲めないけど日酒が好きです。 クックパッドが提供するサービスの検索や推薦機能の構築・改善を行っています。 稿では、クックパッド体の検索改善や推薦システム構築の傍らで、新規サービスであるクックパッドマート向けの検索システムをつくったので、その際の設計や精度改善の工夫について書きます。 新規サービスクックパッドマートと検索 クックパッドマートは、生鮮品に特化したECサービスで、ステーションと呼ばれる場所に購入した品を届けてくれるという特徴をもっています。2018年夏にサービス開始して以来順調にユーザ数を伸ばしています。中でも商品検索機能は、クックパッドマートの追加機能として9月にリリースしました。 検索システムの要件 プロダクトチームの当初の要件は以下のとおりでした。 まずは 1ヶ月で リ

    サービス特性にあった検索システムの設計戦略 - クックパッド開発者ブログ
  • Implementing Dijkstra Algorithm in Go · Deploy Everyday

    Hi, I'm Jojo. Here I talk about my life and computer adventures. You can yell at me clicking in the icons below. Implementing Dijkstra Algorithm in Go 16 Oct 2019 I didn’t go through Computer Science, had a very early dropout. Since I started working in the tech space, I cared a lot about RESTful APIs, preventing systems to fail. Algorithms and data structures always seemed daunting and terrifying

  • 様々なrate limitアルゴリズム - Carpe Diem

    概要 インターネットに晒されているWebサービスでは TV等で紹介されたことによる大量流入 悪意ある人物からの攻撃 クライアントのバグに依る大量リクエスト など、来想定していた以上のトラフィックが来ることはよくあります。 単純にシステムを構築すると大規模トラフィックに対応できずシステムがスローダウンしてしまうため、何かしらrate limitをかけておいた方が良いです。 ただしrate limitと一口に入っても色々あるため、今回は主なrate limitアルゴリズムを紹介します。 Leaky bucket Leaky bucketはデータ転送レートを一定にする(=上限を設定する)アルゴリズムです。 下の図のように、様々な流量の水流がそのバケツに流れ込んでも小さな穴からは一定の水流が流れ出す仕組みです。 ref: What is the difference between token

    様々なrate limitアルゴリズム - Carpe Diem
  • go gc algorithm 101

    Go Conference 2019 Autumn

    go gc algorithm 101
  • 今更だけど、データ圧縮についてまとめてみたい | 株式会社PLAN-B

    bz2, xz, Deflate, gzip, zip, snappy, …データ圧縮に関しての名前です。 なんとなく見覚えがあるだけのものから、普段使いしているものまで色々あって、なんとなく使ってはいるけれど、それぞれどのような意図を持って使い分けたら良いのでしょうか。そもそもどんな違いがあるのでしょうか。 この違いがちゃんとわかっていたら、なんとなくかっこいい気がしませんか?というわけで、今回は圧縮アルゴリズムの歴史と、特性を追っていきたいと思います。 可逆圧縮と非可逆圧縮の違い圧縮をまず大きく大別すると、可逆圧縮と非可逆圧縮に分けられます。その名の通り、元に戻せる圧縮方法と、元には戻せない圧縮方法です。非可逆圧縮の用途には音声、画像や動画などの圧縮があります。 データとしてはわざと欠落させるけれど、人間の認識には影響の少ないようにするものがあります。用途、画像でよく使われるJPEGや

    今更だけど、データ圧縮についてまとめてみたい | 株式会社PLAN-B
  • 圧縮効率のよいカラムナフォーマット 〜 Yosegi や ORC のエンコード方式調査

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog 初めまして、2019年8月にヤフーのデータプラットフォームチームのインターンシップに参加した山添です。今回はインターンで検証を行ったカラムナフォーマットにおけるエンコーディング方式について紹介します。ブログでは、特に数値型のエンコーディング方式について、データ圧縮率への効用を確認します。 カラムナフォーマットとは 昨今のデータ社会では、ログデータや購買データ、位置情報データなどさまざまなデータがものすごいスピードで生み出されています。企業ではそのような大規模なデータを蓄えておく必要があります。 私たち学生の間で最も親しみのあるファイルフォーマットは、JSON や CSV などのテキストフォーマットだと思います。これらのフォーマッ

    圧縮効率のよいカラムナフォーマット 〜 Yosegi や ORC のエンコード方式調査
  • プログラミングコンテストでのデータ構造

    GPGPU Seminar (GPU Accelerated Libraries, 2 of 3, cuSPARSE)

    プログラミングコンテストでのデータ構造
  • Goptunaを使ったGo言語におけるベイズ最適化の活用 | Research Blog

    はじめに 形状のわからない関数(ブラックボックス関数)の最大値あるいは最小値を求める手法として、ベイズ最適化が広く利用されています。機械学習モデルのハイパーパラメーター最適化を中心に活用が進んでいますが、入力とそれに対する評価値さえ設計できればあらゆる問題に適用できます。 例えばFacebookでは、MLモデルのチューニングはもちろん、映像コーデックのエンコードパラメーター 1、AR/VRハードウェア設計、HHVM JITコンパイラのパラメーターチューニングにベイズ最適化を適用するため BoTorch や Axの開発を進めています (F8 2019の発表 Product Optimization with Adaptive Experimentation を参照)。 弊社では多くのサーバーシステムでGo言語が採用されていますが、サーバーのgoroutine数やキャッシュシステムのメモリーバ

  • [論文紹介]グラフニューラルネットワークによる推薦アルゴリズム - Qiita

    はじめに 昨今、サービスに推薦システムを導入することでUXを向上させることが多くなり、様々な推薦アルゴリズムが取り入れられております。学術界でも推薦は大きなテーマであり、様々なアルゴリズムが提案されております。 記事では、推薦をする際に、「メディア上で、どんな人とと繋がっているか、どのアイテムにライクをしたか、どんなページを閲覧しがちか」など、人やアイテムとのつながりを重視して推薦するSocial Recommendationの最新論文であるGraphRec[1]を紹介します。GraphRecは2019年にWeb系のTop Coferenceの一つであるWWWで採択された論文です。 GraphRecは、近年グラフ界隈を盛り上げているグラフニューラルネットワーク(以下GNNs)を用いております。GNNsでは、あるノードiの特徴量に近傍ノードの特徴量を足し合わせること(aggregation

    [論文紹介]グラフニューラルネットワークによる推薦アルゴリズム - Qiita
  • Google、「差分プライバシーライブラリ」をGitHubで公開

    Googleは9月5日(現地時間)、自社サービスの強化に使っている「differential privacy library」(差分プライバシーライブラリ)のオープンソース版をGitHubで公開した。 差分プライバシーを使うデータ分析は、個人データが識別されないようにしながら大規模なデータセットから学習できるようにするアプローチ。分析の結果から個人データを再識別することもできないよう保護できる。例えばヘルスケア分野で、様々な病院の患者の入院平均時間を比較したい場合、患者を個人として特定できない状態でデータを利用できる。 ライブラリはほとんどの一般的なデータサイエンス操作をサポートし、プライバシー保護を確実にするための「確率的差分プライバシーモデルチェッカーライブラリ」を含み、集約機能、プライバシー予算管理などの拡張用モジュールもある。 Googleは、例えばGoogleマップで検索したレ

    Google、「差分プライバシーライブラリ」をGitHubで公開
  • 分析の基礎(モデリング)/ Basics of analysis ~modeling~

    株式会社ブレインパッドの2019年新卒研修資料です。モデリングに関する基的な内容を扱っています。

    分析の基礎(モデリング)/ Basics of analysis ~modeling~
  • mimalloc のメモリ管理 - Qiita

    Microsoft の mimalloc は面白い割り切り方で、小さいソースコードで高速なアロケータを実装しています。 確保するメモリブロックのサイズを、 Small (~8KiB), Large (~512KiB), Huge (512KiB~) の3つに分類し、 Small と Large は同じアルゴリズムで管理し、 Huge は OS 任せにして、 Small と Large は同じアルゴリズムをうまく利用しています。 基礎 OSはpage (x86では基 4KiB) ごとにメモリをプロセスに割り当てています。 しかしアプリケーションではずっと小さいメモリブロックが必要になることが多くあります。また、必要になるたびに毎回OSからメモリを割り当ててもらうのはパフォーマンスも悪いです。 mimalloc やその他の malloc 実装 (以降 malloc と呼びます) は OS か

    mimalloc のメモリ管理 - Qiita
  • 動的計画法を実現する代数〜トロピカル演算でグラフの最短経路を計算する〜 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? トロピカル半環と呼ばれる代数構造上のトロピカル行列を利用すると動的計画法を使ってグラフの最短経路の距離を計算するという問題が単純な行列積で解けてしまうらしい。そんな噂12を聞きつけて我々はその謎を解き明かすべく南国(トロピカル)の奥地へと向かった。 トロピカルな世界に行くためにはまずは代数を知る必要がある。要するに群・環・体の話だ。しかしこの記事の目的は代数学入門ではないので詳しい話は他の記事3に譲るとし、さっそく半環という概念を導入する。それは 半環は以下の性質を満たす二つの二項演算、即ち加法(和)"$+$" と乗法(積)"$\cdo

    動的計画法を実現する代数〜トロピカル演算でグラフの最短経路を計算する〜 - Qiita
  • The Volcano/Cascades Optimizer

    This presentation describes the reasons why Facebook decided to build yet another key-value store, the vision and architecture of RocksDB and how it differs from other open source key-value stores. Dhruba describes some of the salient features in RocksDB that are needed for supporting embedded-storage deployments. He explains typical workloads that could be the primary use-cases for RocksDB. He al

    The Volcano/Cascades Optimizer