Phil 12.23.20

Understanding journalist killings

  • Why do state authorities murder journalists? We show that the majority of journalists are killed in democracies and present an argument that focuses on institutional differences between democratic states. In democracies, journalists will most likely be targeted by local state authorities that have limited options to generally restrict press freedom. Where local governments are elected, negative reporting could mean that local politicians lose power and influence, especially if they are involved in corrupt practices. Analyzing new global data on journalist killings that identify the perpetrator and visibility of the journalist, we show that local-level elections carry an inherent risk, particularly for less visible journalists. Killings perpetrated by criminal groups follow a similar pattern to those by state authorities, pointing to possible connections between these groups. Our study shows that without effective monitoring and accountability, national democratic institutions alone are unable to effectively protect journalists from any perpetrator.

A very nice set of examples on using mysqldump

GPT Agents

  • Finished updating the db. Created update tables for Sim
  • Adding date info to the current (experiment 7) dataset – done!


  • Splitting out model construction code before tackling timing. Too much code in one file to work with

Phil 12.22.20

Next year, this date will be very symmetric. Is it going to be the last palandromic date for a while? like for about 1,000 years?

GPT-2 Agents:

  • Need to go through the “full” data, parse the date and ad that row as content once the ingest is done
  • Still adding phase 13 data
  • Still need to fix the embedding code
  • Nice chat with Mike D. about the whole concept. We’ll connect again after the holidays
  • 3:30 meeting – nope


  • Updating the ASRC box. The IDE and a bunch of plugins are all out of date – done!
  • Verifying that the yaw flip works. Yep! That is a thing of beauty:
Commanded and vehicle angles
  • Here’s the reaction wheel angular velocity. It’s a bit rough looking, which is curious, but I’m guessing that it has to do with clamping issues that I need to fix:
Reaction wheel angular velovities
  • Check stability on rotating cubes for quickstep and world.step
  • Start cleaning up simulator physics and data. I think that a text file to describe the tasks (start angle, end angle, real world time, time multiple, output file) would be nice, since we’re going to have to generate a lot of data.
  • Also, fix whatever is broken with the mouse controls
  • Need to look into headless runs


  • Really extended the deprogramming section to highlight the importance of diversity

Phil 12.21.20

Solstice! Now the days get longer!

Interfaces for Explaining Transformer Language Models

  • This exposition series continues the pursuit to interpret and visualize the inner-workings of transformer-based language models. We illustrate how some key interpretability methods apply to transformer-based language models. This article focuses on auto-regressive models, but these methods are applicable to other architectures and tasks as well.


  • Did a bigger run of terms, created a spreadsheet, and uploaded the db. It looks like some very interesting stuff
  • Adding phase 13 data
  • Need to fix the embedding code


  • 11:00 Meeting with Vadim
  • Need to start cleaning up the sim code


  • Finished deprogramming. Well, kinda. I need to wrap up better

Phil 12.18.20

It is feeling very dark and wintery as we near the winter solstice.

Struggling to get my changes committed. Sheesh

GPT Agents

  • Found a way to plot 3d lines in plotly (
  • It could be nice to adjust the alpha values of all the non-trajectory points too. It looks like you use the opacity argument (from the api)
  • Need to set up a TwitterDBtoEmbedding class. I clearly don’t want to try and plot millions of points
  • Really nice results at the meeting today. We tried [“USA is “, “China is “, “Chinavirus is “, “COVID-19 is “, “Coronavirus is “], and got nice, distinct results! Fixing the code so that the first results are kept as “trimmed”
  • Need to change the embedding code so that the least squares are performed on the prior rotated points


  • 10:00 meeting with Vadim


  • Finish decapitated army, start deprogramming

Phil 12.17.20

Scraped the ice/snow that fell last night off the driveway

The espresso machine that I thought had been broken turns out to have been a victim of the Trader Joe’s espresso? I had noticed with my hand pump that Wegmans espresso was far easier, so I pulled the machine from the basement and tried it with that. Success! Crema! Life is good.


  • Went over what I wrote yesterday and it was better than I thought it was! Fixed a few things and started on the decapitated army trope. Also pinged Matthew to chat about cults


  • Got a response back from Frank with the algorithms. Vadim already has these, and he’s really like to get the code
  • 10:00 Meeting with Vadim
  • Need to see how fast we can make the yaw flip run and use that as a basis for speeding up the entire sim. Need to see if the Panda3d simulation step is adjustable. Long discussion on that. We’re going to try a few experiments and see what we can come up with by tomorrow
  • Need to set up a 24-hour sim with a yaw flip in the middle
  • Need to set up a 365-day sim with 2 yaw flips

ML Group

  • 3:30 meeting
  • Run against actual data as well
  • See if it’s possible to draw lines between nodes of selected words
  • Look up words and highlight
  • Tensorflow 2.x: Neural Structured Learning (NSL) is a new learning paradigm to train neural networks by leveraging structured signals in addition to feature inputs. Structure can be explicit as represented by a graph or implicit as induced by adversarial perturbation.

Phil 12.16.20


I have broken some of my GPT code. Started upgrading various things, like Tensorflow. The most recent version of Numpy seems to be broken, so I had to install an older version. Also, it looks like it’s time for a CUDA update. Here’s the list of work so far

  • Installed TF 2.4.0
  • Downgraded Numpy to 1.19.3 from 1.19.4
  • cuda_11.0.2_451.48_win10.exe
  • The problem seems to be related to tf.random.set_seed(), which used to work with an int. Now it needs some other kind of 32-bit int? Can’t seem to pass it in from the surrounding call any more, so I’m calling it in the main for the moment


  • Got some writing on language models that’s… ok


  • Verified that the code is working. It was an error in the ordering of the quaternion multiplication.
  • Need to set up a meeting with Frank(?) to set the parameters on the RWs. Isaac has sent an email introduction.
  • Need to see how fast we can make the yaw flip run and use that as a basis for speeding up the entire sim. Need to see if the Panda3d simulation step is adjustable
  • Need to set up a 24-hour sim with a yaw flip in the middle
  • Need to set up a 365-day sim with 2 yaw flips


  • Technical ‘kickoff meeting’. Spend some time talking to Peter, who is the technical lead about how our data will be generated and evaluated


  • Late for the 5:00 meeting due to shoveling snow. Sent T some resources on Qualitative research in HCI

Phil 12.15.20

Rolls-Royce’s Aletheia Framework is a practical toolkit that helps organizations to consider the impacts on people of using artificial intelligence prior to deciding whether to proceed. It looks across 32 facets of societal impact, governance and trust, and transparency and requires executives and boards to provide evidence that these have been rigorously considered.

10:00 – 1:00 Meeting with Mike D


  • Finish least-squares transform of embeddings to see what it looks like
  • I don’t see a straightforward way to produce and use a 4×4, so I’m starting with quaternions. Translation could be averaging the position of the points to calculate the center of the point cloud. The offset could be applied before the angle finding
  • I wound up using scipy.spatial.transform.Rotation. To apply the results of the matrix directly. Here’s the relevent code:
from scipy.spatial.transform import Rotation as R
import numpy as np

kv = we.create_embedding_from_query("select content from table_output where experiment_id = 2 and probe = '{}' and tag = 'tweet';".format(probe), key_list)

# calculate the rotations to map one embedding onto the other
mapping = False
if len(kv_list) > 0:
    kv0 = kv_list[0]
    intersect = list(set(kv.index2word) & set(kv0.index2word))
    primary = []
    secondary = []
    for w in intersect:
        pi = kv0.index2word.index(w)
        si = kv.index2word.index(w)
    A, res, rank, s = np.linalg.lstsq(primary, secondary, rcond=None)
    r = R.from_matrix(A)
    mapping = True
  • And it seems to work pretty well! Different embeddings seem to line up pretty well, and the February embedding seems to be farther away from the July embedding, with words like “Mike” and “Pence” in Feb, and coronavirus and @govcuomo in July
  • I can also do this with the regular data as well. Just limit the number of returns
  • 2:00 Meeting with Mike
  • 3:30 Meeting COVID meeting


  • Back to trying to figure out what’s going on.
  • Ok, I made some(?) progress. One of the really important things is for the rotation not to overshoot. If it does, there is a lot of oscillation as the algorithm overshoots, then overshoots as it comes back:
  • But when you fix that, everything looks pretty good!
  • Vadim thinks he may have fixed it, based on the behavior between the calculated and ‘physical’ vectors?


  • 4:30 resource discussion

Phil 12.14.20

I’m very conflicted about global warming in the winter. We just had a lovely weekend, where temperatures reached 60F. That’s very bad, but it sure feels nice. Didn’t stop me from getting my annual load of carbon offsets from the UN


  • 2:00 Meeting with Vadim

GPT Agents

  • Need to do some 3D embeddings in Gensim and display them.
  • Try doing a least-squares to rotate two embeddings to align with each other.
  • If that works, try seeing if embeddings from each month can be aligned in a reasonable way and what they look like
  • 3:00 meeting with Sim to work on similarity matrix

Phil 12.11.20

Post this ride for tomorrow

Word embeddings quantify 100 years of gender and ethnic stereotypes (2018 paper)

  • Word embeddings are a popular machine-learning method that represents each English word by a vector, such that the geometry between these vectors captures semantic relations between the corresponding words. We demonstrate that word embeddings can be used as a powerful tool to quantify historical trends and social change. As specific applications, we develop metrics based on word embeddings to characterize how gender stereotypes and attitudes toward ethnic minorities in the United States evolved during the 20th and 21st centuries starting from 1910. Our framework opens up a fruitful intersection between machine learning and quantitative social science.


  • Made some good progress on influence and started dominance
  • 2:00 meeting with Michelle


  • Sent Vadim a note about catching up. Looks like 2:00 on Monday
  • More Plotly
  • I know it’s dumb, but I figured out how to do a favicon and webpage title. It’s quite simple. Put the favicon file in a folder called “assets” in the same directory as the Dash code. Setting the title is even easier. Add a “title=’my title'” to the dash.Dash() call:
app = dash.Dash(__name__, title = 'Interactive!')
  • It looks like it is very important to load the data before interacting. Updating global data is bad.


  • Got 3D scatterplots working as well. Next I need to do some 3D embeddings in Gensim and display them. After that, try doing a least-squares to rotate two embeddings to align with each other. If that works, Try seeing if embeddings from each month can be aligned ina reasonable way and what they look like
  • Also, set up matrix distance code for Monday

Phil 12.10.20

High-Dimensional Data Analysis with Low-Dimensional Models: Principles, Computation, and Applications (textbook preprint)

  • The problem of identifying low-dimensional structures of signals or data in high-dimensional spaces is one of the most fundamental problems that, through a long history, interweaves many engineering and mathematical fields such as system theory, signal processing, pattern recognition, machine learning, and statistics.

Diverse Beam Search: Decoding Diverse Solutions from Neural Sequence Models

  • Neural sequence models are widely used to model time-series data. Equally ubiquitous is the usage of beam search (BS) as an approximate inference algorithm to decode output sequences from these models. BS explores the search space in a greedy left-right fashion retaining only the top-B candidates – resulting in sequences that differ only slightly from each other. Producing lists of nearly identical sequences is not only computationally wasteful but also typically fails to capture the inherent ambiguity of complex AI tasks. To overcome this problem, we propose Diverse Beam Search (DBS), an alternative to BS that decodes a list of diverse outputs by optimizing for a diversity-augmented objective. We observe that our method finds better top-1 solutions by controlling for the exploration and exploitation of the search space – implying that DBS is a better search algorithm. Moreover, these gains are achieved with minimal computational or memory over- head as compared to beam search. To demonstrate the broad applicability of our method, we present results on image captioning, machine translation and visual question generation using both standard quantitative metrics and qualitative human studies. Further, we study the role of diversity for image-grounded language generation tasks as the complexity of the image changes. We observe that our method consistently outperforms BS and previously proposed techniques for diverse decoding from neural sequence models.


  • Presentation today at 11:40! Getting ORA-LITE running on the laptop – done. Now being nervous. Yay! Done. Good questions, too!

Phil 7.9.20

Center for Informed Democracy & Social – cybersecurity (IDeaS)

  • The overarching goal of the IDeaS Center at Carnegie Mellon University is to enhance social cyber-security to preserve and support and informed democratic society. The challenge today is that disinformation, hate speech, information warfare, and propaganda are amplified by cyber-technology like social media. We must remain informed, thoughtful members of our communities and countries, despite online and informational challenges.

Social Cybersecurity Working Group Focused on:

  • The science to characterize, understand, and forecast cyber-mediated changes in human behavior, social, cultural and political outcomes,
  • The science and engineering to build the cyber-infrastructure needed for society to persist in its essential character in a cyber-mediated information environment under changing conditions, actual or imminent social cyber-threats

Glamorous Toolkit is the moldable development environment. It is a live notebook. It is a flexible search interface. It is a fancy code editor. It is a software analysis platform. It is a data visualization engine. All in one.

This looks pretty interesting. Need to spend some time digging deeper. Friday?

“The antibody response to the virus has been shown to be transient and these antibodies start to wane after 3 to 4 months,” he said, adding that at 6 months they are “mostly undetectable” in many people who were infected early on in the epidemic,” (via Reuters)


  • 11:30 – 12:10 New Adaptive Sampling Techniques to Optimally Augment Complex Simulation Models
  • 12:10 – 12:50 Influence Planning Product
  • 12:50 – 1:30 Risk Management for irregular Events
  • 2:00 – 3:00 Social Cybersecurity
  • 3:40 – 4:20 Community Resilience Indicator Analysis

4:00 Meeting with Matthew?


  • 5:00 Meeting

Phil 12.8.20

Chuck Yeager died today. He was born in 1923. Here’s what was flying the year he was born:

And here’s what is about to fly as early as tomorrow:

Social cybersecurity: an emerging science

  • With the rise of online platforms where individuals could gather and spread information came the rise of online cybercrimes aimed at taking advantage of not just single individuals but collectives. In response, researchers and practitioners began trying to understand this digital playground and the way in which individuals who were socially and digitally embedded could be manipulated. What is emerging is a new scientific and engineering discipline—social cybersecurity. This paper defines this emerging area, provides case examples of the research issues and types of tools needed, and lays out a program of research in this area.
  • In today’s high tech world, beliefs opinions and attitudes are shaped as people engage with others in social media, and through the internet. Stories from creditable news sources and finding from science are challenged by actors who are actively engaged in influence operations on the internet. Lone wolfs, and large propaganda machines both disrupt civil discourse, sew discord and spread disinformation. Bots, cyborgs, trolls, sock-puppets, deep fakes, and memes are just a few of the technologies used in social engineering aimed at undermining civil society and supporting adversarial or business agendas. How can social discourse without undue influence persist in such an environment? What are the types of tools and theories needed to support such open discourse?
  • Today scientists from a large number of disciplines are working collaboratively to develop these new tools and theories. There work has led to the emergence of a new area of science—social cybersecurity. Herein, this emerging scientific area is described. Illustrative case studies are used to showcase the types of tools and theories needed. New theories and methods are also described.


  • Email to Dr. Carley – done!
  • Really nice talk by Dr. Michiel Deskevich at OptTek:
  • Information Warfare panel. Started with Gerasimov, which is pretty cool


  • 3:30 Meeting
    • Need to set up a meeting with Sim to tag-team together a cosine similarity for the GPT embedding.
      • I think it can be lazy, and calculate the CS as it goes.
      • Save the current distance matrix out as a csv, and read it in the next time, so that it continues to grow
      • Can use the training corpora to create a set of words as a baseline matrix
      • For words that have more than 1 embedding, have subsequent distance be specified in the matrix as “foo”, “foo1”, … “fooN”. That lets distance calculations be performed between the variants, and also to point back at the correct usage easily

Phil 12.7.20


5:00 Meeting with Naveen

I looked into the Association of Computational Linguistics as a possible venue for the chess paper. Aside from being a bit shorter (8 pages), the difference between the ACL papers that I looked at and an mine seems to be mostly the amount of explicit math in the description of the algorithm. Here are some examples from 2020 that I think are in roughly the same area:

Adjusting the citations to include some ACL papers (like the last one should be straightforward). The page count will have to be evaluated once the template is made public. Here’s the 2020 template:



  • 3:00 Meeting with Vadim

Phil 12.4.20

UMBC now has a subscription to PolicyMap, a GIS tool that allows users to create maps, tables, and reports from a variety of datasets ranging from demographics, income, health, education, more. Maps can be created as single sheets or with multiple layers from the zip code / block level to worldwide.

Users can create individual accounts to save, share, and print work. A suite of tutorials is available to help both new and experienced users work with the tool effectively.

This is a lot of fun, and not related to anything: The Siege of Gondor, Part I: Professionals Talk Logistics


  • More Plotly

GPT Agents


  • Working on Attention
  • Downloaded some seaturtle data from here:
  • Changed over to storks, because I can’t find any example of a female seaturtle choosing a new beach
  • 2:00 Meeting with Michelle

Phil 12.3.20

It’s been a year since we heard about COVID-19 for the first time. Let’s see how things are going. First, the selection of countries that I’ve been tracking:

Ouch. Germany and Finland seem to be doing well in Europe, but the rest… It looks like it’s going to be a bad winter. I think it is interesting how countries like France, Italy and Switzerland that seemed to have things under control are now at USA levels of deaths per million.

Let’s see how the US is doing:

The hard-hit eastern states still look a lot like the parts of Europe that are still on top of the spread. Georgia, Mississippi, and the Dakotas look very bad. Washington and California, which were hit early, are still experiencing very low rates. I guess we’ll see how this chart looks in January. If there is a Thanksgiving-related surge, we should see it by then.


  • Work on attention


  • 10:00 Meeting with Vadim. Pymoo is much better to install than Pyomo. It’s API seems more straightforward too. Vadim is working on figuring out the examples
  • 2:00 Meeting. Just a quick status
  • Status report
  • Long chat with Aaron

GPT-2 Agents

  • The generated HTML file to make that chart is huge, btw. It’s 2.9MB.
  • And it’s slooooooow if you just use fig.write_html(‘file_name.html’, auto_open=True) is much faster. Ok. That means the figures can be saved as dynamic pages, which is kind of cool.
  • Got dash running, which set up a server for your interactive graphs. Not really sure which one is better, though I’m guessing that data can be live inside dash graphs. I don’t think this will matter too much with the embedding charts, but it’s good to know
  • Hot-reloading is cool, and works with data or text changes. And the management of the html is nice. It appears to be based on a React engine and it’s nice to not have to care!
  • CSS-type styling works! If you make an error in the code, the program bails with an error message
  • 3:30 Meeting – cancelled